測試開發
附astro部落格範本安裝畫面
npm create astro@latest -- --範本部落格
我們啟動應用程式
npm run dev
從 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中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在Node.js中發起HTTP請求有三種常用方式:使用內置模塊、axios和node-fetch。 1.使用內置的http/https模塊無需依賴,適合基礎場景,但需手動處理數據拼接和錯誤監聽,例如用https.get()獲取數據或通過.write()發送POST請求;2.axios是基於Promise的第三方庫,語法簡潔且功能強大,支持async/await、自動JSON轉換、攔截器等,推薦用於簡化異步請求操作;3.node-fetch提供類似瀏覽器fetch的風格,基於Promise且語法簡單

JavaScript的數據類型分為原始類型和引用類型。原始類型包括string、number、boolean、null、undefined和symbol,其值不可變且賦值時復制副本,因此互不影響;引用類型如對象、數組和函數存儲的是內存地址,指向同一對象的變量會相互影響。判斷類型可用typeof和instanceof,但需注意typeofnull的歷史問題。理解這兩類差異有助於編寫更穩定可靠的代碼。

JavaScript開發者們,大家好!歡迎閱讀本週的JavaScript新聞!本週我們將重點關注:Oracle與Deno的商標糾紛、新的JavaScript時間對象獲得瀏覽器支持、GoogleChrome的更新以及一些強大的開發者工具。讓我們開始吧! Oracle與Deno的商標之爭Oracle試圖註冊“JavaScript”商標的舉動引發爭議。 Node.js和Deno的創建者RyanDahl已提交請願書,要求取消該商標,他認為JavaScript是一個開放標準,不應由Oracle

Promise是JavaScript中處理異步操作的核心機制,理解鍊式調用、錯誤處理和組合器是掌握其應用的關鍵。 1.鍊式調用通過.then()返回新Promise實現異步流程串聯,每個.then()接收上一步結果並可返回值或Promise;2.錯誤處理應統一使用.catch()捕獲異常,避免靜默失敗,並可在catch中返回默認值繼續流程;3.組合器如Promise.all()(全成功才成功)、Promise.race()(首個完成即返回)和Promise.allSettled()(等待所有完成)

CacheAPI是瀏覽器提供的一種緩存網絡請求的工具,常與ServiceWorker配合使用,以提升網站性能和離線體驗。 1.它允許開發者手動存儲如腳本、樣式表、圖片等資源;2.可根據請求匹配緩存響應;3.支持刪除特定緩存或清空整個緩存;4.通過ServiceWorker監聽fetch事件實現緩存優先或網絡優先等策略;5.常用於離線支持、加快重複訪問速度、預加載關鍵資源及後台更新內容;6.使用時需注意緩存版本控制、存儲限制及與HTTP緩存機制的區別。

JavaScript的事件循環通過協調調用棧、WebAPI和任務隊列來管理異步操作。 1.調用棧執行同步代碼,遇到異步任務時交由WebAPI處理;2.WebAPI在後台完成任務後將回調放入相應的隊列(宏任務或微任務);3.事件循環檢查調用棧是否為空,若為空則從隊列中取出回調推入調用棧執行;4.微任務(如Promise.then)優先於宏任務(如setTimeout)執行;5.理解事件循環有助於避免阻塞主線程並優化代碼執行順序。

事件冒泡是從目標元素向外傳播到祖先節點,事件捕獲則是從外層向內傳播到目標元素。 1.事件冒泡:點擊子元素後,事件依次向上觸發父級元素的監聽器,例如點擊按鈕後先輸出Childclicked,再輸出Parentclicked。 2.事件捕獲:設置第三個參數為true,使監聽器在捕獲階段執行,如點擊按鈕前先觸發父元素的捕獲監聽器。 3.實際用途包括統一管理子元素事件、攔截預處理和性能優化。 4.DOM事件流分為捕獲、目標和冒泡三個階段,默認監聽器在冒泡階段執行。

JavaScript數組中,除了map和filter,還有其他強大且不常用的方法。 1.reduce不僅能求和,還可計數、分組、展平數組、構建新結構;2.find和findIndex用於查找單個元素或索引;3.some和every用於判斷是否存在或全部滿足條件;4.sort可排序但會改變原數組;5.使用時注意複製數組避免副作用。這些方法使代碼更簡潔高效。
