Skip to content

既定の設定を Action に持たせ、各文書で .include しなくても効くようにする - #11

Merged
5ym merged 2 commits into
masterfrom
default-setup
Oct 3, 2026
Merged

5ym merged 2 commits into
masterfrom
default-setup

Conversation

@5ym

@5ym 5ym commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

今まで各文書の先頭に書いていた .include {_setup.qd} を要らなくする。

変えたこと

  • _setup.qd を Action 同梱の既定の設定にした (_ 始まりなので、このリポジトリでは変換されない)。中身は A4・paperwhite (latex)・日本語・BIZ UDP明朝 / M PLUS 1 Code
  • 入力 default-setup (既定 true) を足した。有効なときは、_setup.qd を先頭に足した写しを同じフォルダに .seisho.<名前>.qd として作って変換し、終わったら消す。同じフォルダに作るので、画像などの相対パスはそのまま使える
  • 文書の中で同じ関数を呼べば上書きできる (後に書いたほうが効く)。.include {_setup.qd} が残っている文書でもそのまま動く
  • README・docs/spec.md・sample.qd を合わせた

確かめたこと

手元の Quarkdown 2.6.3 で、--strict 付きでコンパイルした:

  • 既定の設定だけを足した文書 (academic のレポートから .include を外したもの)
  • .include {_setup.qd} が残った文書に、既定の設定を足したもの (二重になる場合)
  • sample.qd に既定の設定を足したもの

マージ時の push で、このリポジトリのワークフロー (uses: ./) が sample.qd を PDF にする。

🤖 Generated with Claude Code

https://claude.ai/code/session_01USCeESvgLneCai7g8399GM

- _setup.qd を Action 同梱の setup.qd にし、default-setup (既定 true) のとき
  各文書の先頭に足した写しを同じフォルダに作って変換する
- 文書の中で同じ関数を呼べば上書きできる
- sample.qd から .include {_setup.qd} を外す

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01USCeESvgLneCai7g8399GM
@claude

claude Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Claude finished @5ym's task in 27s —— View job


レビュー結果

  • 差分と周辺コードの確認
  • レビュー投稿

全体: 方針 (同じフォルダに一時コピーを作り、相対パスを保つ) は妥当で、README・spec・sample も揃っています。指摘は 2 点です。

  1. 不具合 (要確認): _setup.qd → setup.qd の改名で、_ 始まりの除外から外れます。このリポジトリのワークフローでは setup.qd 自体が変換対象になり、不要な setup.pdf ができる見込みです (action.yml:71 にインライン)。
  2. 軽微 (要確認): 変換が失敗したとき .seisho.*.qd が作業ツリーに残ります。また先頭に 6 行足されるため、--strict のエラー行番号がずれます (action.yml:153 にインライン)。

セキュリティ上の問題は見当たりません。github.action_path は信頼できる値で、ファイル名もクォートされています。テストはこのリポジトリに無く、PR 本文の手元確認が代わりです。setup.qd が変換対象になる件は、その確認では見つからない種類の問題です。

Comment thread action.yml
base=$(git show "$PDF:convertdone.txt")
# _ で始まるファイル(_setup.qd など)は単体では変換しない
# _ で始まるファイル(.include で読む分割用)は単体では変換しない
list() { git diff --name-only --diff-filter="$1" "$base" "$SRC" | grep -E '\.qd$' | grep -v '\(^\|/\)_' || true; }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

不具合 (要確認): _setup.qd を setup.qd に改名したため、_ 除外 (grep -v '\(^\|/\)_') に掛からなくなります。このリポジトリ自身のワークフロー (uses: ./) では、マージ時の push で setup.qd が変更扱いになり、setup.pdf (中身のほぼ空の PDF) が pdf ブランチに作られる見込みです。default-setup により先頭に自分自身が二重に足されます。

対応案: setup.qd を _setup.qd のまま Action 同梱にする、または list() の除外に setup.qd を足す、あるいは置き場所を .github/ などに移す。

Comment thread action.yml
--out "$out" --out-name document
mv "$out/document.pdf" "${f%.*}.pdf"
rm -rf "$out"
[ "$in" = "$f" ] || rm -f "$in"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

軽微 (要確認): quarkdown c が失敗した場合 (--strict は失敗し得ます)、ここに届く前にステップが落ちるため .seisho.<名前>.qd が作業ツリーに残ります。後続の cleanup でブランチを戻す際に邪魔にならないか確認してください。trap などで消すと安全です。また先頭に設定が 6 行足されるので、エラーメッセージの行番号が文書とずれます。

- setup.qd だと _ 始まりの除外から外れ、このリポジトリで setup.pdf が作られる
- 変換が途中で落ちたときに残る .seisho.*.qd を restore で消す
- 先頭に足した行のぶんエラーの行番号がずれることを仕様に書く

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01USCeESvgLneCai7g8399GM
@claude

claude Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Claude finished @5ym's task in 15s —— View job


再レビュー結果 (最新コミット 3c39542)

前回の 2 点はどちらも解消されています。

  • setup.qd が変換対象になる件: 同梱の設定を _setup.qd のままにしたので、_ 始まりの除外 (action.yml:71) に掛かります。setup.pdf はできません。
  • 失敗時に .seisho.*.qd が残る件: restore working tree ステップ (if: always()) の先頭で find . -name '.seisho.*.qd' -delete を実行します。変換が途中で落ちても、ブランチを戻す前に写しが消えます。変換が成功したときは、ループ内で rm -f "$in" しているため、git add . に写しが混ざることはありません。

残っている点 (軽微・対応は任意): 先頭に設定が足されるぶん、--strict のエラー行番号が文書の行とずれます。今の _setup.qd の行数ぶん (前回は 6 行と書きました) 引けば元の行になります。README か spec に一言あると親切です。

セキュリティ: 問題は見当たりません。github.action_path は信頼できる値で、変数はクォートされています。

テスト: このリポジトリにテストはありません。PR 本文の手元確認と、マージ後の uses: ./ による sample.qd の変換が代わりです。

問題無しです。

@5ym
5ym merged commit 188c559 into master Oct 3, 2026
1 check passed
@5ym
5ym deleted the default-setup branch October 3, 2026 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant