本文へスキップ

章 9 · 部 III · 実践

Postextへの貢献

Postextのコミュニティに参加し、プロジェクトに貢献する方法

更新日 2026-09-245分enescazhjaar

かんたんな説明

Postextはボランティアのコミュニティがつくっていて、だれでも手伝えます。プログラマーである必要はありません。テストや説明文書づくり、翻訳、デザインや印刷についての知識を伝えることでも力になれます。このページでは、チームの進め方、とくに手が足りないところ、最初の一歩の踏み出し方を説明し、最後にプロジェクトの長期的な目標を紹介します。

Webにこれまでなかった組版エンジンを、みんなでつくる。

Postextはコミュニティ主導のオープンソースプロジェクトです。何十年も手つかずだった問題、つまりWebでプロの組版を実現するという問題に取り組んでいます。大きな目標であり、1人の力では足りません。

プロジェクトはまだ若いものの、もう白紙ではありません。組版パイプラインの中核、文書形式、設定の仕組みはすでにリリースされています。それでも未決の設計判断は数多く残っており、いま参加する人はプロジェクトの方向に実際に影響を与えられます。参加するよい機会を待っていたなら、いまがそのときです。

貢献するのにプログラマーである必要はありません。コードを書く人、誌面をデザインする人、タイポグラフィに詳しい人、さまざまなブラウザーでテストする人、ドキュメントを書く人、内容を翻訳する人、Webでの出版物のあり方についてアイデアを持っている人。どなたにも活躍の場があります。

#貢献する理由

世界中の出版系の開発現場は、同じ問題を抱えています。CSSは組版のためにつくられていません。段末そろえ、オーファンとウィドウの防止、障害物を回り込むテキストの流し込み、脚注の配置は、どれもネイティブには用意されていません。どのチームもこれらの問題を一から解決し、保守に手間がかかり共有もできない、もろい場当たり的な仕組みをつくっています。

Postextはこの状況を変えようとしています。独自のツールとしてではなく、共有されるオープンな標準としてです。世界中の出版社、雑誌、新聞、書籍プラットフォーム、開発チームが採用し、その上に積み上げていける、高品質な組版エンジンを1つつくることを目指しています。

そうした標準は、1人の人間や1つの会社ではつくれません。さまざまな伝統を持つタイポグラファー、PDFの専門家、アクセシビリティの専門家、右から左に書く文字を扱う開発者、雑誌をレイアウトするデザイナー、描画性能を最適化するエンジニアの視点が必要です。出版の世界は多様です。それに応えるツールの背後にも、多様なコミュニティが求められます。

#進め方

調整はすべてGitHub上で行います。非公開のチャンネルも、閉じたメーリングリストも、密室での決定もありません。すべてが公開され、検索でき、だれでも参加できます。

  • Issues:バグ報告、機能の要望、個別の作業のための場所です。何かに取り組みたいなら、ここから始めてください。
  • Pull Requests:コードによる貢献のための場所です。コードを書く前に、まずIssueを立てて進め方を話し合ってください。
  • Discussions:アイデア、設計についての議論、質問など、個別のバグや作業ではないものすべてのための場所です。考えをそのまま声に出せる場です。

これは意図したものです。すべてが1か所にあれば、だれでもあらゆる決定の背景をたどれますし、新しく加わった人も経緯を読むことができます。

典型的な貢献の流れアイデアはIssueかDiscussionとして始まり、議論を経てPull Requestになり、レビューを受け、最後にマージされます。good first issueのラベルが付いたIssueは、初めての人の入り口です。1Issue問題やアイデア2Discussion方針と設計3Pull Requestコードレビュー4マージdevelopへgood first issue最適な入り口
アイデアからマージまで:4つの段階が、すべてGitHub上で公開されています。

#協力できる分野

このプロジェクトには、さまざまな種類の専門知識が必要です。とくに貢献が役立つ分野をいくつか挙げます。

#コードとアルゴリズム

  • 組版のレイアウトアルゴリズム:Knuth-Plassによる両端そろえのエンジン、段末そろえ、最適な段落の改行、種類ごとのリソース番号付け、フロートの配置。
  • PDF生成:低レベルのPDF構築、フォントの埋め込み、カラーマネジメント、単色の図のためのリソースのバイト列の扱い。
  • テキストの描画:canvasによる描画、SVG出力、SVGの単色への色変換(diagramStyle.singleInk)、フォントメトリクス。
  • パフォーマンスの最適化:計測キャッシュの層と、リサイズのたびにリアルタイムで使える速さを組版エンジンに保たせること。

#SandboxとUI

Sandbox(ブラウザーで動く編集環境)は、それ自体がかなりの規模のReactアプリケーションに育っています。対話的な表エディターと画像・SVGのアップロードを備えたリソースパネル、フォントパネル、エンジンの隅々までを12のグループで扱うデザインパネルがあります。コントロールはBase UIのプリミティブ(packages/postext-sandbox/src/ui/)の上に組まれ、axe-coreでWCAG 2.1 AAへの適合を確認しています。新しいコントロールもこれらを再利用し、どの入力欄もラベルで名前が付き、ヘルプテキストで説明されるようにしてください。UIの文字列はすべて厳格な国際化(i18n)の規約に従っていて、Sandboxパッケージとwebアプリのロケールカタログにまたがる5つのファイルを通してラベルとして配線されます。フロントエンドやUXの作業で貢献するなら、ここが活躍の場です。

#デザインとタイポグラフィ

  • エディトリアルデザインの専門知識:雑誌、新聞、書籍をレイアウトした経験があれば、レイアウトが成功する(あるいは失敗する)理由についての知識はとても貴重です。コードは必要ありません。
  • 組版の伝統:プロジェクトはラテン文字に限らず、さまざまな言語と表記体系の組版の慣習を尊重すべきです。

#ドキュメントとコミュニティ

  • ドキュメント:ドキュメントの改善、拡充、保守。わかりやすいドキュメントがあるかどうかで、人が採用するプロジェクトになるか、見捨てるプロジェクトになるかが分かれます。
  • 翻訳:ドキュメントは現在、英語とスペイン語の2言語です。ほかの言語も歓迎します。
  • テスト:さまざまなブラウザー、OS、エッジケースでのテスト。崩れるレイアウトを見つけることは、うまくいくレイアウトをつくることと同じくらい価値があります。

#フォーマットとスキーマの設計

フォーマットはもう白紙ではありません。::resourceブロック、:refインライン参照、そしてtableStyle、captionStyle、diagramStyleの設定セクションはすでにリリースされています。いま必要なのは、確立したフォーマットを壊さずに発展させる作業です。

  • 文書の文法:傍注や、リソース以外を対象とする相互参照はまだ未解決の課題で、どれも技術の問題であると同時に設計の問題でもあります。
  • 設定スキーマ:仕組みが大きくなっても、プロには十分に強力で、初めての人には十分に単純であり続けるようにすること。
協力できる分野の一覧4つの区画に、それぞれ具体的な例を挙げています。コードとSandboxのUI、デザインとタイポグラフィ、ドキュメントとコミュニティ、フォーマットとスキーマです。postextコードとSandbox UIKnuth-PlassとフロートPDFと描画計測キャッシュSandbox UIとi18nデザインとタイポグラフィエディトリアルデザイン組版の伝統雑誌と新聞ラテン文字以外の文字ドキュメントとコミュニティドキュメントの改善翻訳ブラウザー間のテスト新しい人のサポートフォーマットとスキーマ::resourceと:refディレクティブ設定スキーマ脚注と傍注相互参照
コードに触れなくても、多くの面で貢献が実際の違いを生みます。

#はじめ方

リポジトリーのクローン、依存関係のインストール、テストの実行といった実際の準備は、CONTRIBUTING.mdに書かれています。機械的な手順はまずそちらを見てください。

準備ができたら、具体的な行動を3つ、負担の軽いものから順に紹介します。

  1. Discussionsで自己紹介する:何に取り組んでいるのか、なぜここに来たのかを書いてください。基本的すぎる質問というものはありませんし、あなたが加わったことをコミュニティに知らせるいちばん早い方法です。
  2. good first issueに取り組む:現実的な入り口になるように選ばれたIssueで、隠れた過去の経緯を知っている必要はありません。
  3. ドキュメントを新しい言語に翻訳する:現在、ドキュメントは英語とスペイン語で書かれています。3つ目の言語が加われば、いま取り残されている読者にとって大きな贈り物になります。

コードを書くつもりなら、まずIssueを立てて進め方を話し合ってください。作業の重複を避けられますし、最初に少し話しておくことで全員の時間の節約になります。

#次に読むもの

本格的に取りかかる前に全体像をつかむには、次のページが役立ちます。

  • アーキテクチャー:組版パイプラインがどう構成され、各サブシステムがどこにあるか。
  • 文書形式:貢献者が拡張していく、拡張Markdownの文法。
  • Sandbox:ほとんどの変更をいちばん簡単に確かめ、試せる場所。

#コミュニティ

Postextはまだ初期の段階にあり、だからこそいまは特別な時期です。いま参加する人は、コードを書くことにとどまらず、慣習や優先順位、文化そのものを形づくることになります。

このプロジェクトが大切にしていること:

  • 速さより、よく考えた設計。速くリリースすることより、抽象化を正しくすることのほうが重要です。タイポグラフィは何世紀もかけて磨かれてきました。私たちも正しくするために時間をかけられます。
  • 巧妙さより、わかりやすさ。読みやすく筋道をたどりやすいコードには、見事でも不透明なコードより高い価値があります。
  • 縄張りより、協力。コードベースのどの部分にも持ち主はいません。アイデアは、だれが提案したかではなく、その中身で評価されます。

貢献した人は全員、その貢献が認められます。このプロジェクトは、よりよくするために時間を使うことを選んだ人たちがいるから存在しています。

#ビジョン

Postextは、Web上の出版物のための標準的な組版エンジンになることを目指しています。出版社、雑誌、新聞、書籍プラットフォームがプロの組版を必要とするときに、手に取るツールです。

出版系の開発に携わり、こうしたレイアウトの問題を独力で解決してきた方へ。これは、ほかの人たちと一緒に、一度きちんと解決しようという誘いです。