Astro 統合
@cosense-toolbox/astro を使うと、Cosense 記法の .csn / .csnx ファイルを Astro のページや content collection に組み込めます。インストールと設定
Astro プロジェクトに統合を追加します。
Shellbun add @cosense-toolbox/astro
JavaScriptimport cosense from "@cosense-toolbox/astro"import { defineConfig } from "astro/config"export default defineConfig({ integrations: [ cosense({ components: "./src/components/cosense.ts", pageUrl: (page) => `/posts/${encodeURIComponent(page.slug)}/`, tagUrl: (tag) => `/tags/${encodeURIComponent(tag)}/`, lint: { unresolvedLinks: "error" }, }), ],})components には .csnx で使うコンポーネントを default export するファイルを指定します。ページ URL とタグ URL の規則は、サイトに合わせて設定してください。ページと記事
src/pages に .csn / .csnx を置くと、ファイルの場所がそのまま URL になります。レイアウトを使うページは、先頭の frontmatter で Astro の .astro ファイルを指定します。
Cosense X---layout: ../layouts/Page.astro---このサイトについて本文を Cosense 記法で書きます。記事として管理する場合は、
astro:content の glob loader で .csn / .csnx を読み込みます。記事の title、slug、tags などは、frontmatter と本文から得られます。リンクグラフは
virtual:cosense-x/graph から参照できます。ブログの一覧、関連記事、タグページを組み立てる例は Astro ブログの実例 にあります。リンク切れの検査
lint を設定すると、ページ内の [ページ名] がサイトに存在するかビルド前に検査できます。unresolvedLinks: "error" ならリンク切れでビルドが失敗し、warning ならログに報告します。エディター上の診断と同じ判定を使います。CI でもビルドを実行すれば、ローカルと公開時の検査をそろえられます。
Cosense の画像とファイル
統合は Cosense にアップロードした画像とアイコンをビルド時に取得し、サイト内のファイルに置き換えます。Cosense の画像 URL は別オリジンのページから直接読めず、リダイレクト URL も期限付きのためです。
非公開プロジェクトのファイルを取得する場合は PAT を設定します。取得した画像は生成サイトに含まれるため、公開してよいファイルだけを対象にしてください。
さらに詳しく
シンタックスハイライト、コード行番号、表のセル内の記法、Svelte コンポーネント、content collection の設定は Astro 統合の README をご覧ください。