事例#
Ox Content は、さまざまな使い方を示す実行可能な例と小さなソーススニペットを提供します。個別の事例ページは英語です。ヘッダーの locale switcher で戻れます。
組み込み機能の小さなスニペットは、リポジトリの examples/builtin-features/ にあります。
連携の例#
Vue 連携#
@ox-content/vite-plugin-vue を使って、Markdown に Vue 3 コンポーネントを埋め込みます。
import { oxContentVue } from "@ox-content/vite-plugin-vue";
export default defineConfig({
plugins: [
vue(),
oxContentVue({
components: "./src/components/*.vue",
}),
],
});
React 連携#
@ox-content/vite-plugin-react を使って、Markdown に React コンポーネントを埋め込みます。
import { oxContentReact } from "@ox-content/vite-plugin-react";
export default defineConfig({
plugins: [
react(),
oxContentReact({
components: "./src/components/*.tsx",
}),
],
});
Svelte 連携#
@ox-content/vite-plugin-svelte を使って、Markdown に Svelte 5 コンポーネントを埋め込みます。
import { oxContentSvelte } from "@ox-content/vite-plugin-svelte";
export default defineConfig({
plugins: [
svelte(),
oxContentSvelte({
components: "./src/components/*.svelte",
}),
],
});
Solid 連携#
@ox-content/vite-plugin-solid を使って、Markdown に Solid コンポーネントを埋め込みます。
import { defineConfig } from "vite";
import solid from "@solidjs/vite-plugin";
import { oxContentSolid } from "@ox-content/vite-plugin-solid";
export default defineConfig({
plugins: [
oxContentSolid({
components: "./src/components/*.tsx",
}),
// Solid's JSX is compile-time only, so this plugin runs after
// oxContentSolid() and needs the Markdown extensions.
solid({ extensions: [".md", ".markdown", ".mdx"], compiler: "native" }),
],
});
プラグインの例#
コード注釈#
カスタム属性と互換記法の両方を使える、オプトインのコードブロック注釈です。
oxContent({
highlight: true,
codeAnnotations: {
notation: "both",
},
});
パッケージマネージャータブ#
パッケージマネージャータブをオプトインし、ひとつの npm コマンドを書いて vp/pnpm/bun/npm/yarn のインストールタブとして描画します。
<pm>npm install -D vite</pm>
unplugin mdast ブリッジ#
Ox Content のネイティブパーサーの上で、カスタム mdast プラグインと既存の remark/unified プラグインを動かします。互換境界とブリッジの性能メモも文書化しています。
unplugin markdown-it トークンブリッジ#
まず markdown-it プラグインを動かし、その結果のトークンストリームを下流の unified プラグインから読みます。
ジェネレーターの例#
ソースドキュメント生成#
JSDoc/TSDoc コメントから API ドキュメントを自動生成します。
oxContent({
docs: {
src: ["./src"],
out: "docs/api",
include: ["**/*.ts"],
},
});
OG 画像の例#
OG Viewer#
すべてのページの Open Graph メタデータをプレビューする開発ツールです。開発中は /__og-viewer で使えます。
カスタム OG 画像テンプレート#
カスタムテンプレートでページごとの Open Graph 画像を生成します。任意の frontmatter データを props として渡せます。
oxContent({
ogImage: true,
ogImageOptions: {
template: "./og-template.ts",
},
});
その他の例#
Code Play#
@ox-content/code-play によるオンデマンドのサンプル実行です。stdio、stderr、config、provenance、timing のビューアー付きです。ドキュメントページ上のライブフェンスに加え、スタンドアロンの Vite アプリは examples/code-play です。
プレイグラウンド#
Markdown パースを試す対話的な Web プレイグラウンドです。
Vite SSG#
Vite を使った静的サイト生成の例です。
組み込み MDX#
.mdx では MDX が既定でオンです。静的 HTML、island プレースホルダー、
実行されない ESM、評価されない {expression} を示します。隣の .md は
GFM のままです。実行可能なアプリは
examples/mdx
です。
事例を動かす#
リポジトリを clone して依存関係を入れます。
git clone https://github.com/ubugeeei-prod/ox-content.git
cd ox-content
vp installpnpm installbun installnpm installyarnリポジトリ root から事例を動かします。
vp run integ-vue
vp run ssg-vite
vp run mdx
vp run plugin-markdown-it
vp run --filter ./examples/code-play devpnpm run integ-vue
pnpm run ssg-vite
pnpm run mdx
pnpm run plugin-markdown-it
pnpm --filter ./examples/code-play devbun run integ-vue
bun run ssg-vite
bun run mdx
bun run plugin-markdown-it
bun --filter ./examples/code-play devnpm run integ-vue
npm run ssg-vite
npm run mdx
npm run plugin-markdown-it
npm --workspace ./examples/code-play run devyarn integ-vue
yarn ssg-vite
yarn mdx
yarn plugin-markdown-it
yarn workspace ox-content-code-play-example dev