テーマ
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 形式はプラグインにも使われます。