Content Widgets

以內容區塊形式提供的文章小工具:提示框、手風琴、分頁標籤、步驟、產品框、嵌入、程式碼、卡片、引用、目錄和最新文章。

外掛

Content Widgets

以內容區塊形式提供的文章小工具:提示框、手風琴、分頁標籤、步驟、產品框、嵌入、程式碼、卡片、引用、目錄和最新文章。

  • 分類: widgets
  • 狀態: 可用
  • 版本: 1.0.4
  • 價格: 未知
  • 來源: 官方外掛註冊表
  • 安裝方式: 註冊表沙盒外掛
  • 核實日期: 2026-10-21

說明

Content Widgets

線上示範: emdashhq.com/blog/widget-gallery — 全部十九個小工具在同一篇文章中渲染。

為 EmDash 網站提供的一組文章小工具:提示框、手風琴、分頁標籤、清單、按鈕、YouTube 和 iframe 嵌入、產品/評測框、引用語、事實表、自動目錄、系列導覽,以及即時的「最新文章」列表。

每個小工具都是一個 blocks 欄位的區塊類型,因此編輯可以把它們放進任何基於區塊的欄位——頁面內容、部落格文章本文、登陸頁——只要你的結構允許。

包含內容

十九種區塊類型,全部以 widget_ 為前綴:Prose、Notice、Accordion、Tabs、Checklist、Steps、Button、YouTube、Embed、Image、Code、Product box、Link cards、Pull quote、Facts table、Table of contents、Series nav、Latest posts 和 Divider。

運作原理

沙盒外掛無法提供 Astro 渲染元件,因此這些小工具以區塊類型 JSON + 現成的 Astro 元件的形式,散佈在套件的 site/ 目錄中。你只需把它們複製到網站中一次;外掛透過元件在程序內呼叫的兩個公開路由,提供共用的執行階段行為(YouTube 的隱私模式、聯盟揭露文字、文章查詢)——沒有 HTTP 往返。

外掛還新增了一個記載每個區塊欄位的 Widget catalog 管理頁面,以及一個包含確切安裝步驟和設定狀態的 Setup guide 頁面。

安裝

安裝

1. 安裝外掛

從 EmDash 外掛註冊表安裝 @bitdoze.com/emdashhq-widgets,或將其作為檔案相依項目連結,並在 astro.config.mjs 的 sandboxed: 下註冊:

import widgetsPlugin from "emdashhq-widgets";

emdash();

外掛會要求 content:read 和 schema:read——請核准它們,這樣 Latest posts 小工具和 posts 路由才能運作。靜態小工具無需它們即可渲染。

2. 把區塊類型加入你的結構中

把 site/block-types/*.json 複製到你的 seed 檔案的 blockTypes 陣列中(或在運作中的網站上,把每個檔案的內容 POST 到 /_emdash/api/schema/block-types),然後在應該接受它們的 blocks 欄位的 allowedTypes 中列出這些類型——例如 pages.content 或 posts.body。

3. 註冊渲染器

把 site/components/*.astro、site/components/config.ts、site/components/icons.ts、site/widget-components.ts 和 site/WidgetBlocks.astro 複製到你的專案中,然後要麼為僅用於小工具的欄位渲染 WidgetBlocks:

要麼把 widgetComponents 展開到你現有的對應表中:

const blockComponents = defineBlockComponents();

4. 設定

設定位於 Plugins → Content Widgets → Settings:

  • Privacy-enhanced YouTube embeds — 從 youtube-nocookie.com 提供播放器(預設開啟)。
  • Affiliate disclosure — Product box 小工具內的小字說明行;留空則隱藏。
  • Posts collection — Latest posts 小工具和 posts 路由的預設集合。

常見問題

常見問題

為什麼我必須複製檔案,而不是由外掛來完成? 沙盒外掛執行在隔離的執行階段中,無法註冊 Astro 渲染元件。site/ 目錄提供了外掛作者自己使用的同樣的區塊類型 JSON 和元件,因此安裝就是向你的儲存庫一次性複製——之後這些小工具就和你自己的任何區塊類型一樣運作。

不安裝外掛,這些小工具能運作嗎? 靜態的可以——Prose、Notice、Accordion、Tabs、Checklist、Button、Embed、Quote、Facts、TOC 和 Series 只需要區塊類型和元件。YouTube、Product box 和 Latest posts 會讀取外掛設定或路由;沒有外掛時,它們會退回到預設值(無 Cookie 開啟、無揭露文字、空清單)。

YouTube 小工具會設定 Cookie 嗎? 在訪客點擊封面之前,不會載入任何播放器。使用預設的隱私設定時,播放器來自 youtube-nocookie.com,即使那時也不會設定追蹤 Cookie。

Latest posts 如何建立它的清單? 該元件在程序內呼叫外掛的公開 posts 路由(沒有 HTTP 請求)。該路由依由新到舊列出已設定集合中已發布的項目,並根據集合的 urlPattern 解析每個項目的公開 URL。

我能重新設計這些小工具的樣式嗎? 可以——每個元件都使用 wgt-* 類別,並讀取你的設計權杖(--color-brand、--color-surface 等),同時帶有中性的後備值。覆蓋這些類別或權杖,即可符合你的佈景主題。

這些小工具也能在一般頁面內使用嗎? 可以。把 widget_* 類型加入任何 blocks 欄位的 allowedTypes 中——頁面、文章或其他任何內容。

更新日誌

更新日誌

1.0.4

  • 無 JavaScript 的分頁標籤:標籤會降級為頁內錨點,每個面板都保持可見。啟用 JS 後,它們會升級為真正的分頁標籤,支援方向鍵、Home/End 和漫遊式 tabindex。
  • 文件:圖庫示範連結帶有 UTM 參數。

1.0.3

  • Product box:修正了沒有圖片時的版面把內容擠進窄欄的問題;現在只有設定了圖片時才會渲染媒體欄
  • Product box 重新設計樣式:等寬字型的揭露行、價格標籤、優缺點的勾號/叉號標記,以及與網站按鈕一致的按鈕樣式
  • 網站圖示集新增了用於缺點欄的 x 圖示

1.0.2

  • 文件:說明中連結到線上的小工具圖庫示範文章

1.0.1

  • 註冊表列表素材:外掛圖示、橫幅和螢幕截圖
  • 文件修正:說明和更新日誌中的 19 個區塊清單

1.0.0

  • 首次發布:19 種 widget_* 區塊類型(prose、notice、accordion、tabs、checklist、steps、button、YouTube、embed、image、code、product、link cards、quote、facts、table of contents、series nav、latest posts、divider)
  • site/ 下的區塊類型 JSON 和自包含的 Astro 元件
  • 用於共用設定(YouTube 隱私模式、聯盟揭露、文章集合)的公開 config 路由
  • 列出最新已發布項目及其解析後 URL 的公開 posts 路由
  • Block Kit 管理頁面:小工具目錄和設定指南