Slipwayサイトでページと投稿を作成する
Slipwayサイトは、フロントマターのブロックを持つMarkdownファイルです。レイアウトが残りの部分(タイトル、見出し、目次、日付、言語切り替え)を自動的に処理します。スキーマに従ってフロントマターを記述し、本文はプレーンなMarkdownで記述します。サイトにAGENTS.mdがある場合は、それを最初に読んでください。このスキルと異なる部分は、AGENTS.mdが優先されます。
1. ベースラインを取得する
テーマのチェックを一度だけ、サイトの外のフォルダに取得します。
git clone --depth 1 https://github.com/arminazimi/slipway "$HOME/.slipway"
cd "$HOME/.slipway" && npm ci && cd -
何かを変更する前にセクション6を実行し、出力を保持します。その出力に新しい問題や発見事項が追加されなくなった時点で、編集は完了です。
2. レイアウトとファイルを選択する
| 作成するもの | layout | ファイル |
|---|---|---|
| プレーンページ(about, contact) | page | <folder>/<page>.md、/<folder>/<page>.html で配信 |
| サイドバー付きドキュメントページ | doc | 任意のフォルダ、多くの場合 docs/<page>.md、permalink が必要 |
| 日付付き投稿 | post | _posts/<date>-<slug>.md、<date> は YYYY-MM-DD |
| ランディングページ | home | index.md |
投稿のファイル名はその日付とアドレスです。タイトルを変更するにはtitleを設定し、ファイル名を変更しないでください。docページは、_data/navigation.ymlのdocsリストがそのpermalinkにリンクしている場合にのみサイドバーに表示されます。読みやすい順序で追加してください。search.json、feed.xml、sitemap.xml、404.md、tags.md、archive.mdは作成しないでください。これらは既に存在し、フロントマターがあり、意図的に本文がありません。
下書き、予約投稿、および編集について:下書きは_drafts/<slug>.mdに置き、名前に日付を含めません。GitHub Pagesは_drafts/をビルドしません。jekyll serve --draftsは今日の日付でプレビューします。予約投稿は、YYYY-MM-DDのファイル名が未来の日付である通常の投稿です。GitHub Pagesはその日付に自動的に公開し、jekyll serve --futureは早期にプレビューし、ページに「Scheduled」と表示します。公開済みの投稿に大幅な編集を加えた後は、updated: YYYY-MM-DD(ファイル名の日付と同じ形式)を追加します。投稿には「edited on」と表示され、フィード、サイトマップ、構造化データには最終更新日として報告されます。
3. スキーマからフロントマターを入力する
すべてのキー、その型、および許可される値は、reference/front-matter.mdに記載されており、チェックで使用されるスキーマから生成されています。使用するレイアウトに対してリストされているキーのみを使用してください。
titleは必須であり、空であってはなりません。レイアウトはこれをページ見出しとして表示します。descriptionを追加:検索結果とリンクプレビュー用の1文。tagsとcategoriesはリスト:tags: [release, notes]。- 投稿の
authorは_data/authors.ymlのキー、または複数の著者に対するキーのリスト:author: [ada, sam]。そのキーがそのファイルに存在しない場合は、先にそこに著者を追加してください。 - 投稿の
seriesは、それをシリーズに含めます。すべてのパートでまったく同じ名前を使用します:series: Writing for the web。パートは日付順に並べられます。 permalinkは/で始まります。デフォルト言語の投稿では省略します。サイトの設定がアドレスを設定します。- サイトのデフォルト言語(
_config.ymlのlang)以外のページ、および翻訳があるすべてのページにlangを設定します。 homeのみ:cta_textとcta_urlは一緒に使用するか、まったく使用しません。variantは外観を選択します:editorial(デフォルト)、landing(それぞれtitleを持つfeaturesを追加)、blog、またはdocs(_data/navigation.ymlのdocsリストからのカード)。:を含む値、またはYAMLが特別に扱う文字([、{、*、&、!、#、|、>、@、バッククォート)で始まる値は引用符で囲みます。
4. 本文を書く
- プレーンなMarkdownのみ。Liquidは使わないでください。コードブロック内でも
{{ }}や{% %}は使用しないでください。レイアウトがLiquidで行うことをすべて追加します。 - セクションは
##で開始します。h1はタイトルです。本文内の#見出しは2つ目のh1になります。 - 見出しレベルを順序通りに保ちます(
##、次に###)。これにより、目次と「Edit with your agent」ボタンがすべてのセクションを見つけられます。 - 他のページへのリンクは、ファイルではなくアドレスで行います:
[Install](/docs/install/)、[About](/about.html)。 - 画像は
assets/に配置します。各画像に代替テキストを設定します:。 - より広いページにするには、フロントマターで
width: narrow、wide、またはfullを設定します。代わりに1つのブロック(テーブル、画像、図)を広げるには、クラスsl-wide(最大64rem)またはsl-bleed(端から端まで)を持つHTML要素で囲みます:<figure class="sl-wide"><img src="/assets/map.png" alt="A map of the route"></figure>。docレイアウトはセクションをそのカラムに保持します。 - コードブロックには言語を指定します(
```yaml)。そうすることで、ハイライト表示され、右から左のページでも左から右に読まれます。
スキーマに合格する例:
- examples/doc-page.md:
docページ。 - examples/post.md:タグ付きの投稿。
- examples/post-fa.md:同じ投稿のペルシア語版。
各ファイルの最初のコメントには、そのファイルの保存場所が示されています。
5. 翻訳を追加する
- 言語が
_config.ymlのslipway.languagesに含まれている必要があります。code、name、および/faのようなprefixが必要です。言語がない場合は、追加する前に確認を取ってください。すべてのページの切り替えが変わります。 - 元のページに
translation_keyがない場合は、plain-markdownなどのtranslation_keyを設定し、lang(lang: en)がない場合はlangを設定します。切り替えは両方で翻訳を見つけます。翻訳にも同じtranslation_keyを設定します。これにより、言語切り替えとサイトマップで2つがリンクされます。 langを言語コードに設定し、permalinkをプレフィックス下のアドレスに設定します:/fa/plain-markdown/。- ファイルの保存場所:ページはプレフィックスフォルダ(
fa/about.md)に配置します。投稿は_posts/に独自のスラッグ(_posts/2026-10-20-plain-markdown-fa.md)で残ります。 title、description、tags、および本文を翻訳します。layout、日付、コード、コマンド、URL はそのままにします。- サイトにその言語のヘッダーメニューがある場合(
_data/navigation.ymlのmain_fa)、そこにもページを追加します。
右から左の言語(fa、ar、he、ur)は、lang から右から左のレイアウトを取得します。direction や dir は設定しないでください。ペルシア語のテキストでは、ペルシア語の ی と ک を使用し(アラビア語の ي と ك は使用しない)、میشود のような単語にはゼロ幅非接合子を使用し、ペルシア語の句読点(، と ؟)を使用します。コマンド、ファイル名、およびコードはバッククォートで囲みます。これらは文の中で左から右のままになります。
6. 編集をチェックする
サイトフォルダから、スキーマに対してすべてのページの設定とフロントマターをチェックします。
node "$HOME/.slipway/tools/theme/validate.mjs" .
各問題は file:line key: message (allowed: ...) として出力されます。その行で許可された値を使用して修正し、再度実行します。次に、サイトに Gemfile がある場合は、サイトをビルドします。
bundle exec jekyll build
すべてのエラーと警告を読み、それが示すファイルで修正します。次に、ソースとビルドに対して doctor を実行します。これは、エージェントが編集可能な仕様(AGENTS.md、content-schemas.json(サイトに存在する場合、指定されたスキーマに対してフロントマターを検証します)、ソースマップ、および編集プロンプト)に対してサイトをチェックします。
node "$HOME/.slipway/packages/doctor/bin/slipway.mjs" doctor . --build _site
その結果をベースラインと比較します。あなたのファイルを指定する結果は、修正すべきものです。Gemfile がない場合は、--build なしで doctor を実行し、プッシュ後に Pages ビルドのログを読みます。
禁止事項
- ページに Liquid(
{{ }}または{% %})を絶対に配置しないでください。 - reference/front-matter.md にリストされていないフロントマターキーを絶対に追加しないでください。
- 1つの翻訳でのみ
translation_keyを変更しないでください。それを共有するすべてのページを変更するか、まったく変更しないでください。 - 公開されたページや投稿のタイトルを変更するために、名前を変更したり移動したりしないでください。
titleを設定してください。そのアドレスはファイル名またはpermalinkであり、リンクが壊れます。 _site/を編集したり、フロントマターがあって本文がないページを削除したりしないでください。- 1つのページの外観を変更するために、テーマのレイアウトやインクルードを編集しないでください。

