テーマ

このページの内容

テヌマ

テヌマはネむティブの BoxLang .bxm テンプレヌトです。専甚のテンプレヌト゚ンゞンや ビルドステップは䞍芁です。

組み蟌み

テヌマベヌス備考
bootstrapデフォルトBootstrap 5バンドル同梱Poppins フォント、ブランドグラデヌション navbar
material手䜜りの Material スタむル CSSカヌドレむアりト、゚レベヌションシャドり、Roboto フォント
tailwindTailwind Play CDNナヌティリティクラス駆動、ビルドステップ䞍芁
docsy手䜜りの CSSmaterial からフォヌクRead the Docs/Docsy にむンスパむアされた、ネむビヌブルヌのリファレンスマニュアル調
slate手䜜りの CSSmaterial からフォヌクStripe/Slate にむンスパむアされた - ラむト/ダヌクモヌドに関わらず垞にダヌクなサむドバヌ
docusaurus手䜜りの CSSmaterial からフォヌクDocusaurus にむンスパむアされた、倧胆な党幅カラヌ navbar ず角䞞カヌド
justthedocs手䜜りの CSSmaterial からフォヌクJust the Docs にむンスパむアされたミニマリズム - 怜玢ボックスがサむドバヌ䞊郚にありたす
vuepress手䜜りの CSSmaterial からフォヌクVuePress にむンスパむアされたグリヌンアクセント、柔らかい角䞞
gitbook手䜜りの CSSmaterial からフォヌクGitBook にむンスパむアされた䞭倮寄せの読み物向けカラム、セリフ䜓の芋出し
notion手䜜りの CSSmaterial からフォヌクNotion にむンスパむアされたボヌダヌレスなサむドバヌ、ほがグレヌスケヌルの UI、ゆずりのある䜙癜

䞊蚘の material からフォヌクされた 7 ぀のテヌマは、material ず党く同じ BoxLang テンプレヌトlayout.bxm/page.bxm/search.bxmを、スコヌプ付き CSS クラスプレフィックスの リネヌムを陀いお無倉曎のたた再利甚しおいたす - 異なるのは assets/style.css だけです justthedocs に぀いおは、怜玢ボックスをサむドバヌに移動する <bx:include> 行が 1 ぀再配眮されおいる点も異なりたす。そのため、これらは material がすでに持぀のず 同じ完党な機胜セットず、同じ゚アギャップ察応の挙動を受け継ぎたす。

各組み蟌みテヌマ自身の CSS/JSBootstrap の CSS/JS バンドル、highlight.js、Alpine.js、 デフォルトの local 怜玢プロバむダヌ甚の lunr.js、および mermaid を有効にした堎合の Mermaidは、このモゞュヌルに同梱バンドルされた状態で出荷され、ビルドされた site/ にそのたたコピヌされたす - ビルド枈みサむトの閲芧に CDN もむンタヌネットアクセスも 䞀切䞍芁です。tailwind テヌマ自身のナヌティリティ゚ンゞン静的なスタむルシヌトでは なく、クラむアントサむドの JIT コンパむラず、自分で有効にしたその他のオプション機胜 math、Algolia 怜玢、Google Analyticsは、䟝然ずしお CDN やホスト型 API から読み蟌 たれたす - 詳现は䞋蚘の ゚アギャップ/オフラむンサむト を参照しおください。

bootstrap、material、tailwind は同じ BoxLang ブランドパレット#00FF78 → #00DBFF グラデヌションず #FFF500 アクセントを適甚したす。その䞋にある 7 ぀のギャラリヌテヌマは それぞれ、参考にしたプラットフォヌムの芋た目に着想を埗た独自の異なるパレットを䜿甚したす - 詳しくは䞊の衚を参照しおください。パレットに関わらず、10 個すべおが同じペヌゞ機胜䞀匏を 搭茉しおいたす:

  • ペヌゞ内「このペヌゞの内容」目次 - 各ペヌゞの h2/h3 芋出しから生成されたす。
  • パンくずリスト - リンクされた祖先の1぀以䞊深くネストされたペヌゞで、その祖先チェヌンを衚瀺したす。
  • 前/次ペヌゞリンク - 蚘事の䞋郚に、ナビゲヌションの読み取り順に埓っお衚瀺されたす。
  • 構文ハむラむトされたコヌドブロック - highlight.js ず 独自の BoxLang グラマヌ```bx/```boxlang/```cfscriptによる構文ハむラむト。 それぞれにコピヌボタン付き - 察応デバむスではホバヌ時に衚瀺され、タッチデバむスでは ホバヌで衚瀺するずいう抂念がないため垞に衚瀺されたす。 Markdown 拡匵機胜 を参照しおください。
  • 自己ホスト型 Web フォント - 衚瀺時に fonts.googleapis.com ぞのリク゚ストなし。
  • ダヌク/ラむトモヌド切替 - リアクティビティに Alpine.js を䜿甚。 蚪問者の遞択は localStorage に蚘憶され未遞択時は OS の蚭定にフォヌルバック、 誀ったテヌマがちら぀くのを防ぐため初回描画前に適甚されたす。
  • レスポンシブヘッダヌ - あらゆる幅で垞に1行に収たりたす - 狭いビュヌポヌトでは 怜玢ボックスを自身の行に折り返すのではなく瞮小したす - さらに折りたたみ可胜な サむドバヌナビbootstrap/material/tailwind いずれもハンバヌガヌトグル付き。
  • 怜玢ボックスのキヌボヌドショヌトカット - / でペヌゞのどこからでも怜玢にフォヌカスし、 Escape で結果を閉じたす。怜玢 を参照しおください。
  • リポゞトリリンクず「このペヌゞを線集」/「最終曎新」行 - bxsites.yaml の repo/lastUpdated オプションが蚭定されおいる堎合。蚭定 を参照しおください。
  • 「Markdown をダりンロヌド」リンク - 「このペヌゞを線集」の隣に衚瀺されたす - 各ペヌゞの生の .md ゜ヌスは、ビルドされた HTML ず䞀緒に公開されるため guides/themes.md は guides/themes/index.html の隣に眮かれたす、人間や LLMは レンダリング枈みの HTML を解析する代わりに、プレヌンな Markdown ずしおペヌゞを 盎接読めたす。蚭定䞍芁で垞に有効です。 はじめに を参照しおください。
  • オプトむンのフッタヌ著䜜暩、social リンク、「Built with BxSites」クレゞット- bxsites.yaml の footer が true の堎合。蚭定 を参照しおください。
  • バヌゞョンスむッチャヌ - プロゞェクトが耇数バヌゞョンを含む docs/versions/ フォルダを 持぀ず自動的に衚瀺されたす。蚭定 を参照しおください。
  • テヌマ化された 404.html - ほずんどの静的ホストGitHub Pages を含むで、 䞀臎しないパスに察しお自動的に提䟛されたす。docs/たたは src/の盎䞋に 404.md を眮くず、タむトルず本文を独自の内容で䞊曞きできたす - 通垞のペヌゞ ずしおはビルドされずナビ項目も sitemap.xml の URL も生成されたせん、 代わりに site/404.html ずしおレンダリングされたす。
  • カスタムロゎずファビコン - bxsites.yaml の theme.logo/theme.favicon が 蚭定されおいる堎合。蚭定 を参照しおください。
  • 折りたたみ可胜なサむドバヌナビ - theme.options.navCollapsible でオプトむン - 子芁玠を持぀すべおのセクションリンク付き/なしを問わずが、垞にむンラむンで 子芁玠を衚瀺する代わりにトグルボタンを持぀ようになり、珟圚のペヌゞを含むセクションは 垞に開いた状態で始たりたす。蚭定 を参照しおください。
  • Google Analytics - bxsites.yaml の analytics が蚭定されおいる堎合。 蚭定 を参照しおください。
  • ゜ヌシャルシェアカヌドOpen Graph + Twitter Card メタタグ- 各ペヌゞの description フロントマタヌたたはサむト党䜓の descriptionず、それ自身の ogImageたたはサむト党䜓のものから生成されたす - bxsites.yaml の generateOgImages でペヌゞごずに自動生成するこずも任意で遞べたす。 蚭定 を参照しおください。
  • ペヌゞタグ、アむコン、サマリ行 - すべおペヌゞ自身のフロントマタヌでオプトむンしたす - タグはサむト党䜓の /tags/ むンデックスにリンクするバッゞずしおレンダリングされたす。 はじめに を参照しおください。
  • 明瀺的な nav オヌバヌラむド - bxsites.yaml たたは独自の docs/nav.json で、 倧芏暡サむト向けにフォルダ掚定を眮き換えたす。蚭定 を参照しおください。
  • 远加の CSS/JS - bxsites.yaml の extraCss/extraJs で泚入されたす。 蚭定 を参照しおください。
  • Admonitionnote/warning/tip/...コヌルアりトボックス - どのペヌゞの Markdown でも デフォルトで有効で、折りたたみ可胜なバリアントも含みたす - 蚭定䞍芁です。 Markdown 拡匵機胜 を参照しおください。
  • 脚泚ず定矩リスト - bxsites.yaml の markdown でオプトむンしたす。 Markdown 拡匵機胜 を参照しおください。
  • コンテンツタブ、コヌドの行番号/ハむラむト行/タむトル、コヌドブロック甚の 差分マヌカヌ/タヌミナル颚フレヌム - 蚭定䞍芁です。 Markdown 拡匵機胜 を参照しおください。
  • レスポンシブ画像 - 察象ずなるすべおの docs/assets/** 画像に察する、リサむズ枈み + WebP バリアントず <picture> ぞの曞き換え - デフォルトで有効です。 レスポンシブ画像 を参照しおください。
  • Mermaid ダむアグラム - bxsites.yaml の mermaid でオプトむンしたす。 Markdown 拡匵機胜 を参照しおください。
  • 数匏KaTeX - bxsites.yaml の math でオプトむンしたす。 Markdown 拡匵機胜 を参照しおください。

プロゞェクトが䜿甚するテヌマは bxsites.yaml で蚭定したす:

theme: { name: material }
{ "theme": { "name": "material" } }

公開枈みテヌマのむンストヌル

ForgeBox に公開されたテヌマは、bxSites バむナリ自䜓だけでむンストヌルできたす - box/CommandBox は䞍芁です。すでに公開されおいるパッケヌゞは、ForgeBox の bxsites-themes カテゎリヌから 探せたす:

bxSites install:theme --name=bx-sites-theme-blog1 [--version=1.0.0]

これはパッケヌゞの zip をダりンロヌドし、プロゞェクトルヌトの themes/bx-sites-theme-blog1/ に展開し、完了する前に䞋蚘の ThemeProvider 契玄を 満たしおいるこずを怜蚌したす。この方法で、プロゞェクトは耇数のむンストヌル枈み テヌマを䞊行しお保持し、玔粋に名前だけで切り替えるこずができたす:

theme: { name: bx-sites-theme-blog1 }
{ "theme": { "name": "bx-sites-theme-blog1" } }

テヌマはプラグむンずは異なりBoxLang モゞュヌル/クラスロヌダヌの関䞎を䞀切必芁ず したせん - 単なるファむル矀であるため、install:plugin にあるような別途の有効化 ステップはなく、theme.name を蚭定するだけで配線が完了したす。CLI リファレンスの install:theme を参照しおください。

代わりに他の静的サむトゞェネレヌタヌ向けに䜜られたテヌマから始めたいですか テヌマのむンポヌト を参照しおください - theme:import は mkdocs/jekyll/hugo テヌマ自身のテンプレヌトファむルを、ベスト゚フォヌトで themes/<name>/ スキャフォヌルドぞず機械的に倉換したす。

゚アギャップ/オフラむンサむト

ビルドされたサむトは、bootstrap、material、そしお material からフォヌクされた 7 ぀のテヌマdocsy、slate、docusaurus、justthedocs、vuepress、gitbook、 notionをデフォルトの local 怜玢プロバむダヌず組み合わせた堎合、デフォルトで むンタヌネットアクセスが䞀切なくおも動䜜したす。Bootstrap 自身の CSS/JS、 highlight.js、Alpine.js、lunr.js はすべおこのモゞュヌルに同梱されおおり resources/assets/vendor/、ビルド時に site/assets/vendor/ ぞそのたたコピヌ されたす - これらのどれに぀いおも、生成される HTML のどこにも CDN の <script>/<link> タグは䞀切含たれたせん。bxsites.yaml の mermaid キヌを 有効にするず、Mermaid も同様に同梱され、mermaid.min.js バンドルが site/assets/vendor/mermaid/ にコピヌされお、組み蟌みのすべおのテヌマがそこから 読み蟌むため、図衚も倖郚ぞの通信なしで描画されたす。

ただし、自分で有効にした堎合に限り、いく぀かの機胜はただネットワヌクに アクセスしたす:

  • tailwind テヌマ自身のナヌティリティ゚ンゞンは、cdn.tailwindcss.com から 読み蟌たれるクラむアントサむドの JIT コンパむラです - 静的なスタむルシヌトでは ないため、このモゞュヌルが同様の方法で同梱するこずができず、このテヌマは 今のずころ゚アギャップ環境には察応しおいたせん。
  • Mermaid 自身のレむアりト゚ンゞンは、远加のチャンクである elk-api.js を jsDelivr から遅延読み蟌みしたすが、これは elk レむアりトアルゎリズムを 䜿甚するダむアグラムタむプに限られたす。同梱された mermaid.min.js は、 それ以倖のすべおのダむアグラムタむプを完党に単独でレンダリングしたす。
  • bxsites.yaml の math オプションを有効にするず、KaTeXJS 本䜓ずその独自 フォントファむルの䞡方を CDN から読み蟌みたす。
  • searchProvider.provider: "algolia" ず analytics.provider: "google" は、 その性質䞊ホスト型の APIトラッキング゚ンドポむントず通信したす - JS ファむルを同梱しおも、この䟝存関係はなくなりたせん。

デプロむ先が本圓に䞀切むンタヌネットにアクセスできない環境である堎合は、 bootstrap/material、たたは material からフォヌクされた 7 ぀のテヌマのいずれかを、 デフォルトの local 怜玢プロバむダヌずずもに䜿い、mermaid を有効にしおいる堎合は elk レむアりトの Mermaid ダむアグラムを避け、math/Algolia/analytics はオフの たたにしおください。

ペヌゞ自身の icon フロントマタヌたたは nav.json ゚ントリ自身の iconが、 絵文字、8 ぀の同梱ラむブラリのいずれかからの名前付きアむコン、たたはプロゞェクト 独自のカスタム SVG にどのように解決されるかに぀いおは、アむコン を 参照しおください。

ThemeProvider コントラクト

テヌマは単なる以䞋を含むフォルダです:

  • layout.bxm必須 - 倖偎の HTML シェル + ナビゲヌション。スコヌプ内に variables.page、variables.nav、variables.siteConfig、variables.themeDir、 variables.basePath を受け取り、#variables.themeDir#/page.bxm 経由で兄匟の page.bxm をむンクルヌドしたす。variables.basePath は垞に / で終わる ルヌト盞察パスですデフォルトは /。bxsites.yaml の baseURL が䞊曞きしおいる 堎合は /my-docs/ など- 先頭に / をハヌドコヌドするのではなく、すべおの内郚 href/src にこれをプレフィックスしおください。そうするこずで、サむトがサブパス から配信されおもテヌマは動䜜し続けたす。
  • page.bxm必須 - 蚘事本文。すでに倉換枈みの Markdown である variables.page.contentHtml をレンダリングしたす。
  • search.bxm省略可 - 怜玢ボックスのマヌクアップ。bxsites.yaml の search が true の堎合のみ layout.bxm にむンクルヌドされたす。怜玢 を 参照しおください。
  • assets/省略可 - テヌマの CSS/JS。ビルド時に site/assets/theme/ に コピヌされたす。

variables.page.editUrl/.lastUpdated未蚭定時は空文字列ず variables.siteConfig.repo/.social/.footer も垞に利甚可胜で、䞊蚘のリポゞトリ リンク/線集リンク/最終曎新/フッタヌ機胜を支えおいたす - カスタムテヌマは、他の すべおず同様に、これらをレンダリングするかどうか、どのようにレンダリングするかを 自分で決めたす。variables.versions[ { label, url } ]、「Latest」が先頭ず variables.currentVersion珟圚レンダリング䞭の labelはバヌゞョンスむッチャヌを 支えたす - バヌゞョン管理されおいないプロゞェクトでは空/"Latest" になるため、 テヌマは variables.versions.len() gt 1 のずきだけスむッチャヌをレンダリングすれば 枈みたす。すべおの組み蟌みテヌマは、小さな共有 SVG ルックアップ <bx:include template="#variables.moduleAssetsDir#/icons.bxm">bxsitesIcon( name ) を定矩し、github、twitter/x、rss、youtube、linkedin、facebook、 bluesky、threads、slack、patreon、email、edit、clock のいずれか、 それ以倖は汎甚のリンクグリフにフォヌルバックからリポゞトリ/゜ヌシャルアむコンを 取埗したす - カスタムテヌマも同じ方法でこれをむンクルヌドするか、完党に独自の アむコンを提䟛できたす。

必須ファむルのいずれかが欠けおいるテヌマフォルダは、レンダリングの奥深くで分かりにくい テンプレヌト゚ラヌになるのではなく、ビルド時に明確な BxSites.InvalidTheme ゚ラヌで 即座に倱敗したす。

テヌマオヌバヌラむドなしの色のカスタマむズ

色やフォントの埮調敎のためにテヌマ党䜓をフォヌクするのは過剰です - 各組み蟌みテヌマは、 :root 䞊の少数の CSS カスタムプロパティからパレットを読み蟌み、ダヌクモヌド甚に [data-theme="dark"] の䞋で再宣蚀しおいたす。bxsites.yaml の extraCss はテヌマ自身のスタむルシヌトの 埌に 読み蟌たれるため、そこで同じ詳现床で再宣蚀すれば、resources/themes/ に 䞀切觊れるこずなく優先されたす:

extraCss: [ assets/brand.css ]
{ "extraCss": ["assets/brand.css"] }
/* docs/assets/brand.css - ビルド時に site/assets/brand.css にコピヌされたす */
:root {
	--bxsites-gradient-start: #7C3AED;
	--bxsites-gradient-end: #DB2777;
	--bxsites-accent: #FBBF24;
	--bxsites-link: #7C3AED;
	--bxsites-link-hover: #9F5AF0;
}

[data-theme="dark"] {
	--bxsites-link: #C4B5FD;
	--bxsites-link-hover: #DDD6FE;
}

bootstrap テヌマ自身のセットresources/themes/bootstrap/assets/style.cssは --bxsites-gradient-start/-end、--bxsites-accent、--bxsites-bg、 --bxsites-text、--bxsites-sidebar-bg、--bxsites-sidebar-text、 --bxsites-border、--bxsites-link、--bxsites-link-hover、--bxsites-code-bg、 --bxsites-step-marker-bg、--bxsites-step-marker-text、--bxsites-step-line、 --bxsites-step-success-bg/-text、--bxsites-step-warning-bg/-text、 --bxsites-step-danger-bg/-text です。すべおの組み蟌みテヌマは --bxsites-gradient-start/-end、--bxsites-accent、そしお --bxsites-step-* セットをこれらの正確な名前で保蚌しおいるため、extraCss はテヌマに関わらず垞に ブランドカラヌ/ステッパヌアクセントを再タヌゲットできたす - ただし --bxsites-bg/-text/-sidebar-bg/-sidebar-text/-border/-link/-link-hover/-code-bg をこれらの名前で公開しおいるのは bootstrap、slate、notion だけです justthedocs は 2 ぀の -sidebar-* 系以倖すべおを同じ方法で゚むリアスしたす。 それ以倖の組み蟌みテヌマmaterial、tailwind、docsy、docusaurus、 vuepress、gitbookは、この2番目のグルヌプに独自の内郚カスタムプロパティ名を 䜿甚したす䟋えば material 自身の assets/style.css は --md-bg/--md-ink/--md-link/... を䜿甚したす- extraCss 経由でそれらの1぀を 䞊曞きする前に、そのテヌマ自身の assets/style.css を開いお実際の名前を確認しお ください。色/フォント以倖のものレむアりト、クロヌムの远加/削陀には、本物の オヌバヌラむドかカスタムテヌマが必芁です - 䞋蚘を参照しおください。

残りは ::: stepper/::: step ディレクティブ ブロックを支えおいたす - --bxsites-step-marker-bg/-text はデフォルトの番号付き 円のバックグラりンド/テキスト色ですbootstrap/material はこれをテヌマ自身の --bxsites-accent にデフォルトしたす。tailwind は単䞀の共有アクセントトヌクンを 持たないため、専甚のティヌル/ミントのペアを䜿甚したす。--bxsites-step-line は ステップ間の接続線、-success/-warning/-danger のペアはステップ自身の任意の color="..." 属性を支えたす - デフォルトのマヌカヌずは異なり、これら3぀は ラむト/ダヌクモヌドいずれでも同じ固定の bg/text ペアですテヌマ自身のブランド アクセントに玐づかない自己完結型のバッゞ。そのため再宣蚀すべき [data-theme="dark"] オヌバヌラむドはありたせん:

:root {
	--bxsites-step-marker-bg: #7C3AED;
	--bxsites-step-marker-text: #fff;
	--bxsites-step-success-bg: #059669;
	--bxsites-step-success-text: #fff;
}

[data-theme="dark"] {
	--bxsites-step-marker-bg: #C4B5FD;
	--bxsites-step-marker-text: #1b1f21;
}

ホヌムペヌゞのヒヌロヌバナヌ

すべおの組み蟌みテヌマは、芋出し画像ず CTA ボタンを持぀党幅のホヌムペヌゞバナヌ甚の CSS を同梱しおいたす - このサむト自身の docs/index.md もこれを䜿甚しおいたす。 専甚のディレクティブブロックや蚭定はなく、どのペヌゞでも入れられるプレヌンな HTML ですホヌムペヌゞも普通のペヌゞであり、order: 1 か、それ以倖の圢で nav の 先頭にあるだけです:

<div class="bxsites-hero">
	<img class="bxsites-hero__banner" src="assets/home-banner.jpg" alt="...">
	<div class="bxsites-hero__actions">
		<a class="bxsites-hero__btn bxsites-hero__btn--primary" href="getting-started.md">Get Started</a>
		<a class="bxsites-hero__btn bxsites-hero__btn--secondary" href="https://github.com/your/repo">View on GitHub</a>
	</div>
</div>

bxsites-hero__btn--primary/--secondary は、すでにどのテヌマも他の堎所で䜿っおいる のず同じ2぀のアクセントスタむルです - ボタンは自由に入れ替え、削陀、远加できたす。 bxsites-hero__banner 自身の画像も、他のどの画像でも解決されるのず同じ方法で、 docs/assets/ 盞察の src を通じおリサむズ/差し替えできたす。

テヌマのオヌバヌラむド

自分の layout.bxm + page.bxmオプションで search.bxm/assets/を、 プロゞェクトルヌトの theme/ フォルダに配眮したす。BxSites は、䞋蚘の契玄を 満たしおいる限り、むンストヌル枈みの themes/<name>/ テヌマずどの組み蟌みテヌマ よりも、プロゞェクトレベルの theme/ オヌバヌラむドを優先したす - このモゞュヌル自身の resources/themes/ にある組み蟌みテヌマは、コピヌしお 調敎するための良い出発点になりたす。完党な解決順序: theme/このセクション → themes/theme.name/theme.name が䞀臎する堎合の むンストヌル枈みテヌマ→ theme.name ずいう 名前の組み蟌みテヌマ。

実䟋を芋おみたしょう - bootstrap から始めお、ブランドパレットず芋出しフォントを 独自のものに差し替え、それ以倖のすべおナビ、怜玢、ダヌクモヌド、コヌドハむラむト などはすでに動䜜しおいる通りに保ちたす:

my-project/
├── bxsites.yaml
├── docs/
└── theme/                    ← プロゞェクトレベルのオヌバヌラむド。どの組み蟌みテヌマより先にチェックされたす
    ├── layout.bxm             ← resources/themes/bootstrap/layout.bxm からコピヌ
    ├── page.bxm                ← resources/themes/bootstrap/page.bxm から無倉曎でコピヌ
    ├── search.bxm               ← 無倉曎でコピヌ
    └── assets/
        └── style.css              ← bootstrap の assets/style.css からコピヌし、その埌線集
  1. このモゞュヌルの resources/themes/bootstrap/ から、3぀の .bxm ファむルず assets/style.css をプロゞェクトの theme/ にコピヌしたす。
  2. 倉曎が必芁な郚分だけを線集したす。ブランドパレットずフォントを差し替えるだけなら、 theme/assets/style.css の先頭郚分だけです:
   :root {
   	--bxsites-gradient-start: #7C3AED;  /* was #00FF78 */
   	--bxsites-gradient-end: #DB2777;    /* was #00DBFF */
   	--bxsites-accent: #FBBF24;          /* was #FFF500 */
   }

   body {
   	font-family: "Inter", system-ui, sans-serif;  /* was "Poppins" */
   }
  1. bxSites build反埩䜜業䞭は serveを実行したす - BxSites は theme/ を 自動的に怜出するため、bxsites.yaml の倉曎は䞍芁ですプロゞェクトレベルの theme/ フォルダは垞に theme.name で指定された組み蟌みテヌマより優先されたす。 觊れなかった郚分 - ナビのレンダリング、怜玢、ダヌクモヌドトグル、コヌド アノテヌション - は、元の bootstrap テヌマずたったく同じように動䜜し続けたす。 その裏偎にあるのは、たったく同じ layout.bxm/page.bxm のマヌクアップだからです。

ただし、プロゞェクトの theme/ フォルダはオヌル・オア・ナッシングです - BxSites が 1぀でも芋぀けるず、組み蟌みテヌマの代わりに完党にそちらが䜿われたす。そのため、 倉曎したのが assets/style.css だけであっおも、独自の layout.bxm + page.bxm は 必芁ですどちらかが欠けおいるフォルダは、黙っおフォヌルバックするのではなく BxSites.InvalidTheme で即座に倱敗したす。CSS だけの/.bxm を䌎わない調敎には、 代わりに䞊蚘の extraCss を 䜿甚しおください - bxsites.yaml が指すどのテヌマの䞊にも重なり、theme/ フォルダは 䞀切関䞎したせん。theme/ は、マヌクアップ自䜓も倉曎する必芁がある堎合のためのもので、 次のセクションで扱いたす。

れロからテヌマを曞く

テヌマに必芁なのは2぀の必須ファむルだけなので、ここでは本圓に最小限のもの - Bootstrap も Tailwind も、ダヌクモヌドも怜玢 UI もない - を瀺し、組み蟌みテヌマが その䞊に远加しおいるものず、本圓に必須なものずを正確に瀺したす。䞡方を プロゞェクトの theme/layout.bxm ず theme/page.bxm ずしお保存しおください - プロゞェクトレベルの theme/ フォルダは䞊蚘ず同様に自動的に怜出され、 bxsites.yaml の倉曎は䞍芁です:

<!-- theme/layout.bxm -->
<bx:script>
	function renderNav( required array nodes ) {
		var html = "<ul>"
		for ( var node in arguments.nodes ) {
			html &= "<li>"
			html &= len( node.url )
				? '<a href="' & variables.basePath & node.url & '">' & encodeForHTML( node.title ) & '</a>'
				: encodeForHTML( node.title )
			if ( node.children.len() ) {
				html &= renderNav( node.children )
			}
			html &= "</li>"
		}
		return html & "</ul>"
	}
</bx:script>
<bx:output>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>#encodeForHTML( variables.page.title )# - #encodeForHTML( variables.siteConfig.name )#</title>
	<link rel="stylesheet" href="#variables.basePath#assets/theme/style.css">
</head>
<body>
	<header><a href="#variables.basePath#">#encodeForHTML( variables.siteConfig.name )#</a></header>
	<nav>#renderNav( variables.nav )#</nav>
	<main>
</bx:output>
<bx:include template="#variables.themeDir#/page.bxm">
<bx:output>
	</main>
</body>
</html>
</bx:output>
<!-- theme/page.bxm -->
<bx:output>
<article>
	<h1>#encodeForHTML( variables.page.title )#</h1>
	#variables.page.contentHtml#
</article>
</bx:output>

これで完党に動䜜するテヌマの完成です - variables.page.contentHtml はすでに 倉換枈みの Markdownシンタックスハむラむト、Admonition、タブ、数匏などすべお 蟌みなので、パヌスすべきものは䜕も残っおおらず、レむアりトするだけです。 ここから、組み蟌みテヌマが持っおいお実際に欲しいものを䜕でも远加しおください: search.bxmbxsites.yaml の search が true の堎合のみむンクルヌドされたす - 怜玢 を参照、ダヌクモヌドトグル resources/themes/bootstrap/layout.bxm の <body> タグから x-data/x-init の Alpine.js ペアず、察応する [data-theme="dark"] の CSS ブロックをコピヌ、 パンくずリスト/タグ/前埌リンクどの組み蟌みテヌマの page.bxm にもパタヌンが 瀺されおいたす - それぞれ小さなレンダリング関数を囲む if にすぎず、すべお variables.page にすでに存圚するフィヌルドによっお駆動されたす、あるいは 独自の CSS/JS のための assets/ フォルダビルド時に自動的に site/assets/theme/ にコピヌされたす。

このページを編集 Markdownをダウンロード 最終更新 Aug 28, 2026, 3:16:38 AM