私たちは自らドキュメントサイトを作り上げました。

2026/01/13 11:49

私たちは自らドキュメントサイトを作り上げました。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

(欠落していた詳細を含む)**

Tangled のドキュメントは、単一の

DOCS.md
ファイルから Pandoc の
chunkedhtml
出力形式で生成される軽量な JavaScript‑free 静的サイトです。結果として得られるページには、自動生成された目次が含まれ、モバイル環境ではスクリプトなしで折りたたみ表示されます。また、ビルドパイプラインは Nix(
runCommandLocal
)を使用して Pandoc を実行し、Tailwind CSS でスタイリングし、カスタムテンプレート (
docs/template.html
) を利用しています。検索機能はブラウザの「ページ内検索」に限定されており、簡易フォームでドキュメント領域への Google 検索をリダイレクトすることができます。全サイト検索が必要な場合には、
chunkedhtml
ではなく 単一ページエクスポート(no
chunkedhtml
)も利用可能です。

チームは Mintlify、Docusaurus、MkDocs、MdBook など他のドキュメントエンジンを評価し、そのシンプルさと低オーバーヘッドから Pandoc を選択しました。モノレポおよび Nix デプロイメントは Tangled の既存インフラ(Colmena + nginx)に合わせて構築されています。デプロイは

nix flake update tangled
を実行した後、
nix run nixpkgs#colmena -- apply
で行います。

Pandoc の Markdown エンジンと Tangled 内で使用される Goldmark にはレンダリング上の差異があります。ドキュメント量が増大する場合は、TigerStyle と呼ばれるカスタム静的サイトジェネレーターを導入し、より大きなコンテンツに対応できるようになる可能性があります。

このアプローチにより、ユーザーは軽量で高速なドキュメントを最小限の依存関係で利用でき、Tangled のインフラストラクチャをシンプルかつ保守しやすく保つことができます。将来的には TigerStyle などのツールによりスケーラビリティと開発者体験が向上する可能性があります。

本文

最近、ドキュメントを整理して https://docs.tangled.org に公開しました。Pandoc だけで作成しています。いくつかの理由から、Pandoc を使って静的サイトを自前で構築する方が、小規模プロジェクトには十分です。


要件

  • モノレポ内に存在
  • JavaScript は不要:テキストのみのページ集合は JS がなくても閲覧できるべきです。
  • 検索性:多くのドキュメントエンジンは検索機能をバンドルしないため、
    Ctrl+F
    か外部検索を使うケースがほとんどです。
  • 低複雑度:ビルド・テスト・デプロイが簡単であること。
  • スタイル適用の容易さ

エコシステム評価

いくつかのドキュメントエンジンを検討しました。

エンジン備考
Mintlifyホームページからは AI に重点を置いている印象。
Docusaurus生成サイトは見栄えが良いですが、React SPA であるため過剰かもしれません。
MkDocsJS を無効にしても動作しますが、
mkdocs.yml
で TOC を管理するのが面倒です。
MdBook
SUMMARY.md
で TOC を制御する必要があります。

MkDocs と MdBook は機能拡張を考えると今後も検討対象に残ります。


Pandoc の活用

Pandoc は柔軟なマークアップ変換ツールです。「chunkedhtml」出力形式はドキュメントサイト生成に最適です。デフォルト設定で Markdown ファイルを変換すると、次のようになります。

  • ドキュメント構造から自動生成される TOC
  • 各セクションが個別ページになる

Pandoc を自社ニーズに合わせて調整する手順は簡単です。

  1. Markdown を一つにまとめ
    DOCS.md
  2. デフォルトテンプレートを変更:TOC をすべてのページに配置し、サイドバー化 (
    docs/template.html
    )
  3. Tailwind の prose クラスを挿入:tangled.org と docs.tangled.org で一貫した表示を実現

ドキュメント生成は次のコマンドで行います。

pandoc docs/DOCS.md \
    -o out/ \
    -t chunkedhtml \
    --variable toc \
    --toc-depth=2 \
    --css=docs/stylesheet.css \
    --chunk-template="%i.html" \
    --highlight-style=docs/highlight.theme \
    --template=docs/template.html

JavaScript を使わないサイドバー

モバイルで折りたたみ可能な TOC は多くのエンジンが JS で実装します。MkDocs は

:checked
擬似クラスを利用したチェックボックストリックで対応しています。

他のアプローチは次の通りです。

  • <details>
    /
    <summary>
    :機能するものの、サイドバー外をクリックしても折りたたまれません。
  • Popover API:サイドバーコンポーネントに最適です。

Popover を使った例は以下の通りです。

<button popovertarget="toc-popover">Table of Contents</button>

<div id="toc-popover" popover class="fixed top-0">
  <ul>
    Quick Start
    <li>…</li>
    <li>…</li>
    <li>…</li>
  </ul>
</div>

TOC は独立してスクロールでき、サイドバー外をクリックすると閉じます。画面幅が大きい場合は常に表示され、小さいデバイスのみで折りたたみ機能が有効です。


検索

現在サイトにはネイティブ検索機能はありません。https://htmx.org に触発され、検索バーは Google へリダイレクトするだけの実装にしています。

<form action="https://google.com/search">
  <input type="hidden" name="q" value="+[inurl:https://docs.tangled.org]">
  …
</form>

ドキュメントが単一ページで扱いきれないほど大きくなる場合は、別の検索手段を検討します。


ビルドとデプロイ

Tangled の全サービスは Nix と Colmena を使って構築・配備しています。ドキュメントサイトをビルドする簡易的な Nix デリベーションは次のようになります。

runCommandLocal "docs" {} ''
  …
  ${pandoc}/bin/pandoc ${src}/docs/DOCS.md …
  …
''

NixOS のマシンでは nginx がサイトを提供します。

services.nginx = {
  enable = true;
  virtualHosts = {
    "docs.tangled.org" = {
      root = "${tangled-pkgs.docs}";
      locations."/" = {
        tryFiles = "$uri $uri/ =404";
        index = "index.html";
      };
    };
  };
};

Colmena を使ったデプロイは次のように行います。

nix run nixpkgs#colmena -- apply

サイトを更新するには、まず

nix flake update tangled

で Tangled フレーク入力を最新化し、再デプロイをトリガーします。


備考

自前構築によりメインサイトと同じスタイルでドキュメントサイトを整えることが容易になりました。ただし Pandoc の Markdown レンダリングと Tangled で使われている Goldmark の間にはまだ差異があります。将来的には独自の静的サイトジェネレータ―TigerStyle!―を作る方向も検討しています。

同じ日のほかのニュース

一覧に戻る →

2026/01/14 5:45

**ゲームズ・ワークショップ、スタッフのAI使用を全面禁止 経営陣はテクノロジーに興味津々でない** - 同社は従業員が業務上人工知能ツールを利用することを一律で禁じる方針を採用しました。 - 経営層は知的財産の安全性や創造的コントロールへの影響を懸念していると述べています。 - 業界内では注目が集まっても、上級経営者はAIがデザイン・生産フローに与えるメリットに対し慎重な姿勢を保ち続けています。

## Japanese Translation: **改善された概要** Games Workshop は、コンテンツ制作と設計プロセスにおける生成型 AI ツールの使用を正式に禁止しました。この方針では、厳格な監視下で数名の上級マネージャーのみが AI を実験できるようになっていますが、その可能性についてはまだ誰も興奮していません。外部コンペティションへの参加を含む不正使用は禁止されており、企業はデータ準拠・セキュリティ・ガバナンスを監視し、AI/ML エンジンがデバイスに自動インストールされるのを防止する必要があります。 GW の禁止措置は知的財産権を保護し、人間クリエイターを尊重するとともに、上級スタッフによる限定的な調査を許可しています。この決定は、より広い文脈の中で行われました。GW は *Warhammer 40,000* や *Age of Sigmar* などのフラッグシップテーブルトップタイトルを所有し、高品質のコデックス本・ミニチュア・アニメーションを販売しており、最近は新規採用で Warhammer Studio を拡大しました。Displate の作品に関する最近の紛争―Displate がそのアートワークが AI によって生成されたと否定し、「赤旗」を人為的なミスに帰せたケース―は、ファンが生成型 AI アートに対して反発していることを示しています。特に Warhammer の美学に大きな影響力を持つアーティスト John Blanche の存在がその背景にあります。 今後も GW はデータ準拠とセキュリティの監視を継続します。上級マネージャーは AI の可能性を探るかもしれませんが、内部方針の変更や外部圧力が変わらない限り、広範な採用は見込めません。この禁止措置により GW は Genvid、EA、Square Enix など AI を積極的に導入している競合他社に比べて遅れを取ることになり、ゲーム開発の競争ダイナミクスが変わる可能性があります。これは生成型 AI の統合に対する業界全体の慎重な姿勢を反映しています。

2026/01/14 2:10

**チューリップ・クリエイティブ・コンピュータ** - 芸術と技術のユニークな融合 - 革新的なビジュアル体験を設計 - 鮮やかなカラーパレットと最先端ハードウェアを組み合わせる

## 日本語訳: **Tulip CC** は低電力で手頃な価格のセルフコンテインドポータブルコンピュータで、オープンソースの音楽ワークステーションとしても機能します。ESP32‑S3マイクロコントローラを中心に構築され、MicroPython を実行し、AMY ステレオ 120 ボイスシンセサイザーエンジン(加法/減法/F‑M 合成、サンプラー、Karplus–Strong、アナログフィルタ、シーケンサー、ドラムマシン、パッチエディタ)とキャパシティブ・マルチタッチ対応のタッチスクリーンディスプレイを備えています。 デバイスは 8.5 MB の RAM(MicroPython 用 2 MB、OS 用 1.5 MB、残りがグラフィックスフレームバッファ)と 32 MB のフラッシュ(うち 24 MB が使用可能)、Wi‑Fi、USB キーボード/マウス/MIDI、I²C/Grove/Mabee コネクタをセンサーや周辺機器用に搭載し、組み込みの pico/nano スタイルエディタ(構文ハイライトと REPL)も備えています。グラフィックスは LVGL によって処理されます:テキストフレームバッファ 128 × 50(ANSI 256 色)、スキャンラインあたり最大 32 スプライト(32 KB ビットマップメモリ)、1024 × 600 の背景フレームバッファでスクロール、PNG ローディング、デフォルト 30 FPS、解像度調整可能、256 色。 電力消費は 5 V で 575 mA(中程度の輝度)で、LiPo、18650、または USB バッテリーパックに対応しています。追加ソフトウェア機能として、ネイティブチャット/ファイル共有 BBS「TULIP ~ WORLD」、MIDI 入出力コールバック、およびクリエーションの共有用 Web バージョンがあります。 Tulip CC は市販ユニット、DIY ハードウェアキット、フル機能の Web アプリ、またはネイティブデスクトップアプリ(Mac/Linux/WSL)として入手可能です。開発リソース—完全な API ドキュメント、チュートリアル、Discord コミュニティ、およびオープンソース GitHub リポジトリ—が提供されており、埋め込みデバイスとデスクトップ環境の両方で動作するために貢献が必要です。将来のファームウェア更新では、合成モジュールの拡張、LVGL を介したグラフィックス解像度の向上、および電力効率の改善がコミュニティの入力を受けて行われる可能性があります。

2026/01/14 1:22

「二つの頭(=複数の視点)が一つより優れているのでしょうか?」

## Japanese Translation: ## 要約 コイントスの結果を時折だけ報告する人々がいる場合、報告者数が奇数であると予測精度が向上し、さらに1人追加して偶数にすると追加効果は得られないという点が主旨です。 シミュレーションと解析的な検証から次のように示されています:正直な友人(80 % 正解率)を1人だけ持つ場合、2人目を加えても精度は80 %のままであり、合意しても不一致が相殺されるため利益がありません。3人目が参加すると精度は90 %に上昇し、4人目が加わると再び90 %に戻ります。このパターンは奇数回報者ごとに繰り返されます。 この発見はコンドルセートの陪審理論を反映しており、偶数規模のグループでは多数決が引き分けになる可能性があるため、新たな情報を提供しないことを説明しています。著者は、創造的執筆プロジェクトを開催するプログラミングリトリート「Recurse Center」でベッティングシミュレーションを実行している際にこの現象に気付きました。 今後の研究では、この傾向がより複雑な投票設定や大規模グループでも維持されるかどうかを検証することが期待されます。グループサイズと偶奇性が意思決定品質に与える影響を理解することで、クラウドソーシングサイト、陪審制度、または人間の判断を集約するあらゆるプラットフォームの設計者が、不必要な偶数参加者を追加しないよう助けることができます。

私たちは自らドキュメントサイトを作り上げました。 | そっか~ニュース