typressAn editorial workshop.

テーマ

typress のテーマは型付き React コンポーネントの集合です。テンプレート文字列ではなく、Layout / Home / Single / Page / Archive / NotFound という 6 つのコンポーネントを実装するだけで完成します。

同梱テーマ

  • typress.default — 「editorial workshop」風、ペーパー+オックスブラッド

テーマ切替

管理画面の「テーマ」から適用ボタンを押すと、再認証ダイアログが出てパスワード(と TOTP)を要求されます。これは ADR-005 の方針で、すべての破壊的操作に再認証を要求するためです。

自作テーマの開発

themes/ 以下に新しいワークスペースパッケージを作り、@typress/theme-sdk の defineTheme で 6 コンポーネントを返します。

import { defineTheme } from "@typress/theme-sdk";

export default defineTheme({
  manifest: { id: "com.example.minimal", displayName: "Minimal", version: "0.1.0" },
  Layout, Home, Single, Page, Archive, NotFound,
});

.tpkg のパックと署名

テーマは ed25519 署名された .tpkg として配布します。署名鍵は管理画面の「信頼済みキー」に登録した公開鍵に対応する秘密鍵で行います。

# 鍵生成 (1 度だけ)
bun tools/tpkg/src/main.ts keygen --label dev

# テーマをビルドしてパック
bun build themes/my-theme/src/index.tsx \
  --target=bun --format=esm \
  --outfile=themes/my-theme/dist/index.js
bun tools/tpkg/src/main.ts pack themes/my-theme
bun tools/tpkg/src/main.ts sign themes/my-theme/com.example.my-theme-0.1.0.tpkg --key dev

管理画面の「テーマ → .tpkg をインストール」から、.tpkg ファイルをアップロードすると署名検証 → SHA-256 記録 → 配置の流れで取り込まれます。同じ .tpkg 形式はプラグインにも使われます。