Skip to content

Commit

Permalink
Merge pull request #105 from Yoshino-Yukitaro/develop
Browse files Browse the repository at this point in the history
パフォーマンスの調整など
  • Loading branch information
Yoshino-Yukitaro authored Sep 16, 2024
2 parents dd4e916 + 502e352 commit 317c90c
Show file tree
Hide file tree
Showing 23 changed files with 330 additions and 58 deletions.
221 changes: 221 additions & 0 deletions .astro/astro/content.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
declare module 'astro:content' {
interface Render {
'.mdx': Promise<{
Content: import('astro').MarkdownInstance<{}>['Content'];
headings: import('astro').MarkdownHeading[];
remarkPluginFrontmatter: Record<string, any>;
}>;
}
}

declare module 'astro:content' {
interface RenderResult {
Content: import('astro/runtime/server/index.js').AstroComponentFactory;
headings: import('astro').MarkdownHeading[];
remarkPluginFrontmatter: Record<string, any>;
}
interface Render {
'.md': Promise<RenderResult>;
}

export interface RenderedContent {
html: string;
metadata?: {
imagePaths: Array<string>;
[key: string]: unknown;
};
}
}

declare module 'astro:content' {
type Flatten<T> = T extends { [K: string]: infer U } ? U : never;

export type CollectionKey = keyof AnyEntryMap;
export type CollectionEntry<C extends CollectionKey> = Flatten<AnyEntryMap[C]>;

export type ContentCollectionKey = keyof ContentEntryMap;
export type DataCollectionKey = keyof DataEntryMap;

type AllValuesOf<T> = T extends any ? T[keyof T] : never;
type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf<
ContentEntryMap[C]
>['slug'];

/** @deprecated Use `getEntry` instead. */
export function getEntryBySlug<
C extends keyof ContentEntryMap,
E extends ValidContentEntrySlug<C> | (string & {}),
>(
collection: C,
// Note that this has to accept a regular string too, for SSR
entrySlug: E,
): E extends ValidContentEntrySlug<C>
? Promise<CollectionEntry<C>>
: Promise<CollectionEntry<C> | undefined>;

/** @deprecated Use `getEntry` instead. */
export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>(
collection: C,
entryId: E,
): Promise<CollectionEntry<C>>;

export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>(
collection: C,
filter?: (entry: CollectionEntry<C>) => entry is E,
): Promise<E[]>;
export function getCollection<C extends keyof AnyEntryMap>(
collection: C,
filter?: (entry: CollectionEntry<C>) => unknown,
): Promise<CollectionEntry<C>[]>;

export function getEntry<
C extends keyof ContentEntryMap,
E extends ValidContentEntrySlug<C> | (string & {}),
>(entry: {
collection: C;
slug: E;
}): E extends ValidContentEntrySlug<C>
? Promise<CollectionEntry<C>>
: Promise<CollectionEntry<C> | undefined>;
export function getEntry<
C extends keyof DataEntryMap,
E extends keyof DataEntryMap[C] | (string & {}),
>(entry: {
collection: C;
id: E;
}): E extends keyof DataEntryMap[C]
? Promise<DataEntryMap[C][E]>
: Promise<CollectionEntry<C> | undefined>;
export function getEntry<
C extends keyof ContentEntryMap,
E extends ValidContentEntrySlug<C> | (string & {}),
>(
collection: C,
slug: E,
): E extends ValidContentEntrySlug<C>
? Promise<CollectionEntry<C>>
: Promise<CollectionEntry<C> | undefined>;
export function getEntry<
C extends keyof DataEntryMap,
E extends keyof DataEntryMap[C] | (string & {}),
>(
collection: C,
id: E,
): E extends keyof DataEntryMap[C]
? Promise<DataEntryMap[C][E]>
: Promise<CollectionEntry<C> | undefined>;

/** Resolve an array of entry references from the same collection */
export function getEntries<C extends keyof ContentEntryMap>(
entries: {
collection: C;
slug: ValidContentEntrySlug<C>;
}[],
): Promise<CollectionEntry<C>[]>;
export function getEntries<C extends keyof DataEntryMap>(
entries: {
collection: C;
id: keyof DataEntryMap[C];
}[],
): Promise<CollectionEntry<C>[]>;

export function render<C extends keyof AnyEntryMap>(
entry: AnyEntryMap[C][string],
): Promise<RenderResult>;

export function reference<C extends keyof AnyEntryMap>(
collection: C,
): import('astro/zod').ZodEffects<
import('astro/zod').ZodString,
C extends keyof ContentEntryMap
? {
collection: C;
slug: ValidContentEntrySlug<C>;
}
: {
collection: C;
id: keyof DataEntryMap[C];
}
>;
// Allow generic `string` to avoid excessive type errors in the config
// if `dev` is not running to update as you edit.
// Invalid collection names will be caught at build time.
export function reference<C extends string>(
collection: C,
): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>;

type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
type InferEntrySchema<C extends keyof AnyEntryMap> = import('astro/zod').infer<
ReturnTypeOrOriginal<Required<ContentConfig['collections'][C]>['schema']>
>;

type ContentEntryMap = {
"post": {
"0h2p5w7rfh.md": {
id: "0h2p5w7rfh.md";
slug: "0h2p5w7rfh";
body: string;
collection: "post";
data: InferEntrySchema<"post">
} & { render(): Render[".md"] };
"4d4y1g2up.md": {
id: "4d4y1g2up.md";
slug: "4d4y1g2up";
body: string;
collection: "post";
data: InferEntrySchema<"post">
} & { render(): Render[".md"] };
"4sdndar2n.mdx": {
id: "4sdndar2n.mdx";
slug: "4sdndar2n";
body: string;
collection: "post";
data: InferEntrySchema<"post">
} & { render(): Render[".mdx"] };
"fw7_gmrn2w.md": {
id: "fw7_gmrn2w.md";
slug: "fw7_gmrn2w";
body: string;
collection: "post";
data: InferEntrySchema<"post">
} & { render(): Render[".md"] };
"kvc56ubf4.md": {
id: "kvc56ubf4.md";
slug: "kvc56ubf4";
body: string;
collection: "post";
data: InferEntrySchema<"post">
} & { render(): Render[".md"] };
"m2juo4dy7c.mdx": {
id: "m2juo4dy7c.mdx";
slug: "m2juo4dy7c";
body: string;
collection: "post";
data: InferEntrySchema<"post">
} & { render(): Render[".mdx"] };
"rkmss30pwd1.mdx": {
id: "rkmss30pwd1.mdx";
slug: "rkmss30pwd1";
body: string;
collection: "post";
data: InferEntrySchema<"post">
} & { render(): Render[".mdx"] };
"rwft75ng_3.md": {
id: "rwft75ng_3.md";
slug: "rwft75ng_3";
body: string;
collection: "post";
data: InferEntrySchema<"post">
} & { render(): Render[".md"] };
};

};

type DataEntryMap = {

};

type AnyEntryMap = ContentEntryMap & DataEntryMap;

export type ContentConfig = typeof import("../../src/content/config.js");
}
3 changes: 2 additions & 1 deletion .astro/types.d.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/// <reference types="astro/client" />
/// <reference path="integrations/_inox-tools_astro-when/types.d.ts" />
/// <reference path="integrations/_inox-tools_astro-when/types.d.ts" />
/// <reference path="astro/content.d.ts" />
Binary file modified bun.lockb
Binary file not shown.
1 change: 0 additions & 1 deletion plop-templates/blog/index.md.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,4 @@ createdAt: {{createdAt}}
description: "キャッチコピー"
link: https://yukky-sandbox.dev/post/{{pathname}}
pubDate: {{createdAt}}
layout: "../../../layouts/PostLayout.astro"
---
9 changes: 6 additions & 3 deletions plopfile.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
import { format } from "@formkit/tempo";

export default function (plop) {
const today = new Date();
const pathname = `${today.getFullYear()}-${today.getMonth() + 1}-${today.getDate()}-${today.getMilliseconds()}`;
const createdAt = format(today, "YYYY-MM-DD");
const pathname = `${createdAt}-${today.getMilliseconds()}`;

plop.setGenerator("blog", {
description: "blog post",
prompts: [],
actions: [
{
type: "add",
path: `src/pages/post/${pathname}/index.md`,
path: `src/content/post/${pathname}.md`,
templateFile: "plop-templates/blog/index.md.hbs",
data: {
createdAt: `${today.getFullYear()}/${today.getMonth() + 1}/${today.getDate()}`,
createdAt,
pathname,
},
},
Expand Down
13 changes: 7 additions & 6 deletions src/components/organisms/PostCards.astro
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
import PostCard from "../molecules/PostCard.astro";
import { getCollection } from 'astro:content';
interface Frontmatter {
title: string;
Expand All @@ -9,19 +10,19 @@ interface Frontmatter {
date: number;
}
const posts = await Astro.glob('../../pages/post/**/*.{md,mdx}')
const posts = await getCollection('post');
---

<article class="w-full py-5">
<h1 class="text-center text-4xl font-bold py-5 dark:text-white">記事一覧</h1>
<div class="md:rounded-3x dark:bg-neutral-700 p-5">
{
posts.sort((postA, postB) => { return new Date(postA.frontmatter.createdAt) < new Date(postB.frontmatter.createdAt) ? 1 : -1 }).map((post) => (
posts.sort((postA, postB) => { return new Date(postA.data.createdAt) < new Date(postB.data.createdAt) ? 1 : -1 }).map((post) => (
<PostCard
title={post.frontmatter.title}
description={post.frontmatter.description}
createdAt={post.frontmatter.createdAt}
url={post.url}
title={post.data.title}
description={post.data.description}
createdAt={post.data.createdAt}
url={`/post/${post.slug}`}
/>
))
}
Expand Down
14 changes: 14 additions & 0 deletions src/content/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { defineCollection, z } from "astro:content";
const blogCollection = defineCollection({
type: "content",
schema: z.object({
title: z.string(),
createdAt: z.string().date(),
description: z.string(),
link: z.string(),
pubDate: z.string().date(),
}),
});
export const collections = {
post: blogCollection,
};
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
title: "転職して1ヶ月が経過した"
createdAt: 2023/6/11
createdAt: "2023-06-11"
description: "転職して1ヶ月が経過したため、転職活動中のことや今感じていること・思っていることをまとめてみます!"
link: https://yukky-sandbox.dev/post/0h2p5w7rfh
pubDate: 2023/6/11
layout: "../../../layouts/PostLayout.astro"
pubDate: "2023-06-11"
---

## はじめに
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
title: "2023年の目標50本"
createdAt: 2023/1/9
createdAt: "2023-01-09"
description: "今年の目標を50本立てました!!達成できるように頑張ろう!!"
link: https://yukky-sandbox.dev/post/4d4y1g2up
pubDate: 2023/1/9
layout: "../../../layouts/PostLayout.astro"
pubDate: "2023-01-09"
---

## MUST
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
---
title: "Cloudflareでbun使えないじゃん!!!と思ったらBuild Systemが古いだけでした"
createdAt: 2023/12/3
createdAt: "2023-12-03"
description: "Cloudflareでbunが使えないと思ってnカ月。。原因はBuild System Versionが1のままなことでした。。。 "
link: https://yukky-sandbox.dev/post/4sdndar2n
pubDate: 2023/12/3
layout: "../../../layouts/PostLayout.astro"
pubDate: "2023-12-03"
---

import { Image } from "astro:assets";
import buildSystemVersionPng from "./_build_system_version.png";
import { Picture } from "astro:assets";
import buildSystemVersionPng from "../../images/post/4sdndar2n/_build_system_version.png";

Cloudflareでbunが使えないと思ってnカ月。。原因は`Build System Version`が1のままなことでした。。。

<Image
<Picture
src={buildSystemVersionPng}
formats={["avif", "webp"]}
alt="Build System Versionが1のままだった"
width={974}
height={405}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
title: "初めての投稿~このブログを作った経緯~"
createdAt: 2022/12/19
createdAt: "2022-12-19"
description: "このブログの初めての投稿です。このブログを作った経緯とか、これから何に使うのかとかについて説明しています。今後ともよろしくお願いします。"
link: https://yukky-sandbox.dev/post/fw7_gmrn2w
pubDate: 2022/12/19
layout: "../../../layouts/PostLayout.astro"
pubDate: "2022-12-19"
---

## はじめに
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
title: "isucon13で無力さを実感したので来年に向けてできることをまとめていく(随時更新)"
createdAt: 2023/12/3
createdAt: "2023-12-03"
description: "来年のisuconに向けた自分用のメモです。今年はほとんど何もできなかったけど次こそは、、!"
link: https://yukky-sandbox.dev/post/kvc56ubf4
pubDate: 2023/12/3
layout: "../../../layouts/PostLayout.astro"
pubDate: "2023-12-03"
---

## はじめに
Expand Down
Loading

0 comments on commit 317c90c

Please sign in to comment.