refactor: code refactor
This commit is contained in:
parent
84ed5530ca
commit
c95aa1b613
3
.gitignore
vendored
3
.gitignore
vendored
@ -4,6 +4,3 @@ node_modules
|
|||||||
/build
|
/build
|
||||||
/public/build
|
/public/build
|
||||||
.env
|
.env
|
||||||
|
|
||||||
# TODO: remove the following line
|
|
||||||
posts/*.mdx
|
|
@ -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>
|
||||||
|
@ -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 && (
|
||||||
|
@ -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
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
18
posts/helloworld.mdx
Normal file
18
posts/helloworld.mdx
Normal 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;
|
||||||
|
}
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user