refactor: code refactor

This commit is contained in:
Andrea 2023-03-15 17:27:11 +01:00
parent 84ed5530ca
commit c95aa1b613
No known key found for this signature in database
GPG Key ID: 4594610B9C8F91C5
6 changed files with 30 additions and 13 deletions

3
.gitignore vendored
View File

@ -4,6 +4,3 @@ node_modules
/build /build
/public/build /public/build
.env .env
# TODO: remove the following line
posts/*.mdx

View File

@ -1,6 +1,6 @@
export function EmptyState() { export function EmptyState() {
return ( return (
<div className="mt-5 flex flex-col items-center"> <div className="mt-5 mx-5 flex flex-col items-center">
<div className="mb-5 font-bold"> <div className="mb-5 font-bold">
I haven't post anything yet! So here's a pic of my cat I haven't post anything yet! So here's a pic of my cat
</div> </div>

View File

@ -3,11 +3,11 @@ import { Link } from "@remix-run/react";
type PostProps = { type PostProps = {
filename: string; filename: string;
title: string; title: string;
publishedAt: string; published: string;
description: string | null; description: string | null;
}; };
export function Post({ title, description, filename, publishedAt }: PostProps) { export function Post({ title, description, filename, published }: PostProps) {
return ( return (
<div className="mx-5 md:mx-0 md:w-1/2 lg:w-1/3"> <div className="mx-5 md:mx-0 md:w-1/2 lg:w-1/3">
<div className="p-5 border-gray-600 border-2 rounded-lg"> <div className="p-5 border-gray-600 border-2 rounded-lg">
@ -17,7 +17,7 @@ export function Post({ title, description, filename, publishedAt }: PostProps) {
{title} {title}
</span> </span>
<span className="ml-2">{`(${new Date( <span className="ml-2">{`(${new Date(
publishedAt published
).toLocaleDateString()})`}</span> ).toLocaleDateString()})`}</span>
</div> </div>
{description && ( {description && (

View File

@ -6,15 +6,17 @@ import codeHikeTheme from "shiki/themes/one-dark-pro.json";
type FrontMatter = { type FrontMatter = {
title: string; title: string;
description: string; description: string;
publishedAt: string; published: string;
}; };
export const getMdxFile = async (file: string) => { export const getMdxFile = async (file: string) => {
return bundleMDX<FrontMatter>({ return bundleMDX<FrontMatter>({
source: (await readFile(`./posts/${file}.mdx`)).toString(), source: (await readFile(`./posts/${file}.mdx`)).toString(),
mdxOptions() { mdxOptions(options) {
return { return {
rehypePlugins: [...(options.rehypePlugins ?? [])],
remarkPlugins: [ remarkPlugins: [
...(options.remarkPlugins ?? []),
[ [
remarkCodeHike, remarkCodeHike,
{ {
@ -36,7 +38,7 @@ export const findPosts = async () => {
filename: string; filename: string;
})[] = []; })[] = [];
for (const file of files.filter((file) => file.endsWith(".mdx"))) { for (const file of files.filter((file) => file.endsWith(".mdx"))) {
const { frontmatter } = await bundleMDX({ const { frontmatter } = await bundleMDX<FrontMatter>({
source: (await readFile(`./posts/${file}`)).toString(), source: (await readFile(`./posts/${file}`)).toString(),
mdxOptions() { mdxOptions() {
return { return {
@ -59,11 +61,11 @@ export const findPosts = async () => {
filename: file.replace(".mdx", ""), filename: file.replace(".mdx", ""),
description: frontmatter.description, description: frontmatter.description,
title: frontmatter.title, title: frontmatter.title,
publishedAt: frontmatter.publishedAt, published: frontmatter.published,
}); });
} }
return posts.sort((a, b) => return posts.sort((a, b) =>
new Date(a.publishedAt) > new Date(b.publishedAt) ? -1 : 1 new Date(a.published) > new Date(b.published) ? -1 : 1
); );
}; };

View File

18
posts/helloworld.mdx Normal file
View File

@ -0,0 +1,18 @@
---
title: Hello, world
published: 2023-03-15
description: The hello world post
---
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
```c
int main(int argc, char** argv) {
return 0;
}
```