Communityコーディング&開発github.com

arminazimi/slipway-content

Slipwayサイトでページ、ドキュメントページ、または投稿を作成・編集し、別の言語に翻訳して、フロントマタースキーマとslipway doctorのチェックを通過させるスキルです。

slipway-content とは?

このスキルは、Slipwayサイトでコンテンツを作成・編集・翻訳するための包括的なガイドです。Slipwayは、Markdownファイルとフロントマターを使用して構築された静的サイトジェネレーターであり、タイトル、見出し、目次、日付、言語切り替えなどのレイアウトを自動的に提供します。このスキルでは、まずテーマのベースラインを取得し、各ページタイプ(page、doc、post、home)に適したレイアウトとファイルの選択方法を説明します。次に、スキーマに従ってフロントマターを入力し、プレーンなMarkdownで本文を記述する方法、翻訳の追加手順、そして最終的なチェック方法をカバーしています。このスキルは、公式リファレンスやサンプルファイルへのリンクも提供し、ユーザーがスキーマに準拠した高品質なコンテンツを作成できるように支援します。主にClaude Codeやその他のAIエージェント向けに設計されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/arminazimi/slipway/tree/HEAD/skills/slipway-content

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

プレビュー

スキル README より

A chart of build times
slipway-content preview

ドキュメント

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
ランディングページhomeindex.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/ に配置します。各画像に代替テキストを設定します:![A chart of build times](/assets/build-times.png)。
  • より広いページにするには、フロントマターで 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)。そうすることで、ハイライト表示され、右から左のページでも左から右に読まれます。

スキーマに合格する例:

各ファイルの最初のコメントには、そのファイルの保存場所が示されています。

5. 翻訳を追加する

  1. 言語が _config.yml の slipway.languages に含まれている必要があります。code、name、および /fa のような prefix が必要です。言語がない場合は、追加する前に確認を取ってください。すべてのページの切り替えが変わります。
  2. 元のページに translation_key がない場合は、plain-markdown などの translation_key を設定し、lang(lang: en)がない場合は lang を設定します。切り替えは両方で翻訳を見つけます。翻訳にも同じ translation_key を設定します。これにより、言語切り替えとサイトマップで2つがリンクされます。
  3. lang を言語コードに設定し、permalink をプレフィックス下のアドレスに設定します:/fa/plain-markdown/。
  4. ファイルの保存場所:ページはプレフィックスフォルダ(fa/about.md)に配置します。投稿は _posts/ に独自のスラッグ(_posts/2026-10-20-plain-markdown-fa.md)で残ります。
  5. title、description、tags、および本文を翻訳します。layout、日付、コード、コマンド、URL はそのままにします。
  6. サイトにその言語のヘッダーメニューがある場合(_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つのページの外観を変更するために、テーマのレイアウトやインクルードを編集しないでください。

関連スキル