feat: add FrontMatter CMS, biome, translation, etc.

* add Frontmatter CMS

* add biome

* update

* update

* fixed & add docs

* fix translation.ts

* fix translation
This commit is contained in:
L4Ph
2024-01-21 13:54:41 +09:00
committed by GitHub
parent f9a78b3e3b
commit 197d524b53
42 changed files with 2714 additions and 12795 deletions

View File

@@ -5,7 +5,7 @@ import MainGridLayout from "../layouts/MainGridLayout.astro";
import { getEntry } from 'astro:content'
import {i18n} from "../i18n/translation";
import I18nKey from "../i18n/i18nKey";
import Markdown from "../components/misc/Markdown.astro";
import Markdown from "@components/misc/Markdown.astro";
const aboutPost = await getEntry('spec', 'about')

View File

@@ -1,9 +1,9 @@
---
import {getCategoryList, getSortedPosts} from "../../../utils/content-utils";
import MainGridLayout from "../../../layouts/MainGridLayout.astro";
import ArchivePanel from "../../../components/ArchivePanel.astro";
import {i18n} from "../../../i18n/translation";
import I18nKey from "../../../i18n/i18nKey";
import {getCategoryList, getSortedPosts} from "@utils/content-utils";
import MainGridLayout from "@layouts/MainGridLayout.astro";
import ArchivePanel from "@components/ArchivePanel.astro";
import {i18n} from "@i18n/translation";
import I18nKey from "@i18n/i18nKey";
export async function getStaticPaths() {

View File

@@ -1,9 +1,9 @@
---
import { getCollection, getEntry } from "astro:content";
import MainGridLayout from "../../layouts/MainGridLayout.astro";
import ArchivePanel from "../../components/ArchivePanel.astro";
import {i18n} from "../../i18n/translation";
import I18nKey from "../../i18n/i18nKey";
import MainGridLayout from "@layouts/MainGridLayout.astro";
import ArchivePanel from "@components/ArchivePanel.astro";
import {i18n} from "@i18n/translation";
import I18nKey from "@i18n/i18nKey";
---
<MainGridLayout title={i18n(I18nKey.archive)}>

View File

@@ -1,10 +1,9 @@
---
import {getSortedPosts} from "../../../utils/content-utils";
import MainGridLayout from "../../../layouts/MainGridLayout.astro";
import ArchivePanel from "../../../components/ArchivePanel.astro";
import {i18n} from "../../../i18n/translation";
import I18nKey from "../../../i18n/i18nKey";
import {getSortedPosts} from "@utils/content-utils";
import MainGridLayout from "@layouts/MainGridLayout.astro";
import ArchivePanel from "@components/ArchivePanel.astro";
import {i18n} from "@i18n/translation";
import I18nKey from "@i18n/i18nKey";
export async function getStaticPaths() {

View File

@@ -1,9 +1,9 @@
---
import MainGridLayout from "../../layouts/MainGridLayout.astro";
import TitleCard from "../../components/TitleCardNew.astro";
import Pagination from "../../components/control/Pagination.astro";
import {getSortedPosts} from "../../utils/content-utils";
import {getPostUrlBySlug} from "../../utils/url-utils";
import MainGridLayout from "@layouts/MainGridLayout.astro";
import TitleCard from "@components/TitleCardNew.astro";
import Pagination from "@components/control/Pagination.astro";
import {getSortedPosts} from "@utils/content-utils";
import {getPostUrlBySlug} from "@utils/url-utils";
export async function getStaticPaths({ paginate }) {
const allBlogPosts = await getSortedPosts();
@@ -17,18 +17,35 @@ const {page} = Astro.props;
<!-- 显示当前页面。也可以使用 Astro.params.page -->
<MainGridLayout>
<div class="flex flex-col gap-4 mb-4">
{page.data.map(entry =>
<TitleCard
entry={entry}
title={entry.data.title}
tags={entry.data.tags}
category={entry.data.category}
published={entry.data.published}
url={getPostUrlBySlug(entry.slug)}
image={entry.data.image}
description={entry.data.description}
></TitleCard>
)}
{page.data.map((entry: { data: { draft: boolean; title: string; tags: string[]; category: string; published: Date; image: string; description: string; }; slug: string; }) => {
// ここで draft が true の場合は何もレンダリングしない
if (import.meta.env.PROD && entry.data.draft) {
return null;
}
return (
<TitleCard
entry={entry}
title={entry.data.title}
tags={entry.data.tags}
category={entry.data.category}
published={entry.data.published}
url={getPostUrlBySlug(entry.slug)}
image={entry.data.image}
description={entry.data.description}
draft={entry.data.draft}
></TitleCard>
);
})}
</div>
<Pagination class="mx-auto" page={page}></Pagination>
</MainGridLayout>
</MainGridLayout>
<script>
if (import.meta.env.DEV) {
console.log("開発環境");
} else {
console.log("本番環境");
}
</script>

View File

@@ -1,19 +1,21 @@
---
import { getCollection } from 'astro:content';
import MainGridLayout from "../../layouts/MainGridLayout.astro";
import ImageBox from "../../components/misc/ImageBox.astro";
import MainGridLayout from "@layouts/MainGridLayout.astro";
import ImageBox from "@components/misc/ImageBox.astro";
import {Icon} from "astro-icon/components";
import PostMetadata from "../../components/PostMetadata.astro";
import Button from "../../components/control/Button.astro";
import {i18n} from "../../i18n/translation";
import I18nKey from "../../i18n/i18nKey";
import {getPostUrlBySlug} from "../../utils/url-utils";
import License from "../../components/misc/License.astro";
import {licenseConfig} from "../../config";
import Markdown from "../../components/misc/Markdown.astro";
import PostMetadata from "@components/PostMetadata.astro";
import Button from "@components/control/Button.astro";
import {i18n} from "@i18n/translation";
import I18nKey from "@i18n/i18nKey";
import {getPostUrlBySlug} from "@utils/url-utils";
import License from "@components/misc/License.astro";
import {licenseConfig} from "src/config";
import Markdown from "@components/misc/Markdown.astro";
export async function getStaticPaths() {
const blogEntries = await getCollection('posts');
const blogEntries = await getCollection('posts', ({ data }) => {
return import.meta.env.PROD ? data.draft !== true : true;
});
return blogEntries.map(entry => ({
params: { slug: entry.slug }, props: { entry },
}));