コンテンツにスキップ

Contributing(貢献ガイド)

embedded-rust.com への貢献に興味を持っていただきありがとうございます。 このページでは、crate データの追加記事(Markdown)投稿を中心に、PR(Pull Request)までの流れを説明します。


  • 新しい crate を一覧に追加する
  • 既存 crate の説明やリンクを更新する
  • 互換性、注意点、導入例などを追記する
  • 入門ガイド、手順書
  • デバッグ手法や運用ノウハウ
  • 既存記事の改善(誤字、構成、追記)
  • リンク切れ修正
  • 表現の改善(初心者向けに言い換え)
  • コード例の最新化

  • Git
  • Node.js >= 24(サイトのビルド・プレビュー用)
  • pnpm(パッケージマネージャ)
  • 任意: Rust(コード例の検証に便利)
  1. GitHub 上でリポジトリを fork
  2. ローカルに clone
Terminal window
git clone https://github.com/<your-account>/embedded-rust-com.git
cd embedded-rust-com
Terminal window
pnpm install
Terminal window
pnpm dev

このサイトでは、crate 情報を src/content/crates/ 以下に 1ファイル = 1 crate の JSON で管理します。

src/content/crates/<crate-name>.json

  1. 既存の JSON(例: defmt.json)をコピー
  2. 内容を新しい crate に合わせて編集
  3. ビルドして検証
Terminal window
pnpm build

Zod スキーマによる検証がビルド時に実行されます。不正データはビルドエラーになります。

3.3 JSON スキーマの主要フィールド

Section titled “3.3 JSON スキーマの主要フィールド”
フィールド必須説明
namestringYescrate 名(crates.io と一致)
descriptionJastringYes日本語での説明
categoriesstring[]Yesカテゴリ ID(先頭要素が主要カテゴリ)
repositorystringYesリポジトリ URL
cratesIostringYescrates.io URL
maturityenumYesexperimental / alpha / beta / stable / mature
maintenanceenumYesactively-developed / passively-maintained / …
targetsstring[]Yes対象ターゲット
noStdbooleanYesno_std 対応

完全なフィールド定義は src/schemas/crate-schema.ts を参照してください。


  • Dev Tips: src/content/docs/dev-tips/<topic>.md
  • 技術比較: src/content/docs/other-tech/<topic>.md
  • リファレンス: src/content/docs/reference/<topic>.md
---
title: 記事タイトル
description: 記事の要約
categories: ['Dev Tips']
tags: ['embedded', 'rust']
relatedCrates: ['defmt', 'probe-rs']
difficulty: beginner
draft: false
---
  • draft: false のまま PR を出してください
  • difficultybeginner / intermediate / advanced のいずれか

コードブロックには言語指定(必須)

Section titled “コードブロックには言語指定(必須)”
#![no_std]
#![no_main]
Terminal window
rustup target add thumbv7em-none-eabihf
[dependencies]
cortex-m = "0.7"
  • 出力ログは必要最小限に
  • OS 依存(Linux / macOS / Windows)は分けて書く
  • 公式ドキュメントや docs.rs を優先
  • サイト内リンクは相対パスを推奨

Terminal window
git checkout -b add-defmt-tip
Terminal window
git add src/content/crates/my-new-crate.json
git commit -m "feat: add my-new-crate to crate catalog"

PR 本文には次を含めてください。

  • 何を追加/修正したか(要約)
  • 動作確認したこと(ローカルプレビュー、ビルド成功など)
  • 影響範囲(既存ページの編集有無)

  • frontmatter がある(draft: false
  • コードブロックに言語指定がある
  • 手順が再現可能(前提・環境・コマンドが揃っている)
  • 初心者が詰まりそうな点に補足がある
  • 外部リンクが妥当(一次情報、リンク切れなし)

  • 「この内容はここに書いて良い?」→ Issue で相談が最短です
  • 既存記事の書きぶりに合わせるのが一番安全です
  • 小さな PR ほど歓迎です(レビューが軽く、早くマージできます)