首頁 > web前端 > js教程 > 測試開發

測試開發

Mary-Kate Olsen
發布: 2024-12-27 14:39:11
原創
694 人瀏覽過

附astro部落格範本安裝畫面

Test Dev.to

npm create astro@latest -- --範本部落格

我們啟動應用程式

npm run dev

Test Dev.to

從 Astro 5 開始,引入了內容層 API,該工具允許您在網站構建期間從任何來源加載數據,並通過簡單、安全類型的 API 訪問它。

此 API 可以靈活地處理來自各種來源的內容,例如本機 Markdown 檔案、遠端 API 或內容管理系統 (CMS)。透過使用特定模式定義內容“集合”,您可以有效地建立和驗證資料。此外,內容層 API 還提高了內容較多的網站的效能,加快了建置時間並減少了記憶體使用量。

https://astro.build/blog/astro-5/

Astro 的內容層 API 將 dev.to 貼文整合到您的網站中

您可以使用 Astro 的內容層 API 將 dev.to 貼文整合到您的網站中。雖然 dev.to 沒有特定的載入器,但您可以建立一個自訂載入器來使用其 API 並將貼文儲存在 Astro 的內容集合中。

要實現此目的,請按照以下步驟操作:

1.配置對dev.to API的訪問

DEV_TO_API_URL=https://dev.to/api/
DEV_API_KEY=tu_clave_de_api
登入後複製

2. 建立一個函數來取得帖子

在專案的 src/lib/ 資料夾中,建立一個 getArticles.js 文件,其中包含以下函數來取得貼文:

const { DEV_API_KEY, DEV_TO_API_URL } = import.meta.env;

export async function fetchArticles() {
  const res = await fetch(`${DEV_TO_API_URL}articles/me/published`, {
    headers: {
      "api-key": DEV_API_KEY,
    },
  });
  const data = await res.json();
  return data;
}
登入後複製

3.在Astro中定義集合

在 src/content.config.ts 中,使用內容層 API 為 dev.to 貼文定義一個集合:

import { glob } from 'astro/loaders';
import { defineCollection, z } from 'astro:content';
import { fetchArticles } from "../lib/getArticles";

const blog = defineCollection({
    // Load Markdown and MDX files in the `src/content/blog/` directory.
    loader: glob({ base: './src/content/blog', pattern: '**/*.{md,mdx}' }),
    // Type-check frontmatter using a schema
    schema: z.object({
        title: z.string(),
        description: z.string(),
        // Transform string to Date object
        pubDate: z.coerce.date(),
        updatedDate: z.coerce.date().optional(),
        heroImage: z.string().optional(),
    }),
});

const devTo = defineCollection({
  loader: async () => {
    const articles = await fetchArticles();
    return articles.map((article) => ({
      id: article.id.toString(),
      slug: article.slug,
      body: article.body_markdown,
      data: {
        title: article.title,
        date: new Date(article.published_at),
        tags: article.tag_list,
        summary: article.description,
        image: article.social_image,
      },
    }));
  },
});

export const collections = { blog, devto };

登入後複製

以上是測試開發的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板