Repository navigation
Releases: dsgarage/ReviewExtention
Release list
ReviewExtention v0.1.3 - Standard Parameter Processing HotFix
ReviewExtention v0.1.3 - Standard Parameter Processing HotFix
🎯 修正内容
Issue #30と#31で要求されていたRe:VIEWの標準第3パラメータ処理に対応しました。これにより、Re:VIEWの標準的な記法でwrap/fold機能を使用できるようになりました。
📝 解決した問題
Issue #30/#31: Re:VIEWの標準パラメータ処理への対応
- 以前:
//listnum[id][caption wrap=80](キャプション内埋め込み) しか動作しない - 現在:
//listnum[id][caption][wrap=80,lang=ruby](標準第3パラメータ) が正常動作 - 互換性: 既存のキャプション埋め込み方式も引き続き利用可能
🆕 追加機能
1. 標準Re:VIEW第3パラメータサポート
// 基本的なwrap指定
//list[id][キャプション][wrap=80]
// 複数オプション指定
//list[id][キャプション][wrap=on,fold=on,foldmark=↩]
// 言語指定との組み合わせ
//list[id][キャプション][wrap=80,lang=ruby]
// 行番号付きリスト
//listnum[id][キャプション][wrap=80,lineno=on,fontsize=small]
2. 後方互換性の維持
// 従来の記法も引き続き動作
//list[id][キャプション wrap=80,fold=on]
3. 適切な優先順位処理
- 第3パラメータのオプションがキャプション埋め込みより優先
- 既存プロジェクトへの影響なし
🔧 技術的改善
Compiler拡張の強化
parse_caption_options()関数でキャプション内オプションを解析list_block()/listnum_block()ハンドラーの拡張- 標準Re:VIEW記法との完全な整合性を実現
処理フロー
- 第3パラメータ解析:
wrap=80,lang=rubyを解析 - キャプション解析: 後方互換性のため既存方式もサポート
- 優先順位適用: 第3パラメータ > キャプション埋め込み
- LaTeXビルダー連携: Issue #28の修正と組み合わせて完全動作
🧪 テスト内容
新規テストファイル追加
test-project/articles/test-standard-parameters.re に包括的なテストケースを追加:
- ✅ 標準第3パラメータ構文
- ✅ 複数オプション組み合わせ
- ✅ 言語指定との併用
- ✅ 後方互換性
- ✅ 優先順位処理
- ✅ 複雑なオプション組み合わせ
📦 アップグレード方法
既存プロジェクトでの適用
# 最新版を取得
git pull origin main
git checkout v0.1.3
# 必要なファイルをプロジェクトにコピー
cp lib/ruby/tags/list.rb your-project/lib/ruby/tags/記法の移行(任意)
従来の記法:
//list[id][キャプション wrap=80,lang=ruby]
標準記法(推奨):
//list[id][キャプション][wrap=80,lang=ruby]
🌟 利用例
Before (v0.1.2まで)
//listnum[example][長いコード wrap=80,lineno=on,lang=ruby]{
def very_long_method_name_that_should_be_wrapped_automatically
# コード内容
end
//}
After (v0.1.3から)
//listnum[example][長いコード][wrap=80,lineno=on,lang=ruby]{
def very_long_method_name_that_should_be_wrapped_automatically
# コード内容
end
//}
🔗 関連修正
このHotFixは以下の修正と連携して動作します:
- v0.1.2: Issue #28のLaTeX language parameter処理修正
- v0.1.1: LaTeX自動折り返し機能修正
- v0.1.0: 基本的なwrap/fold機能実装
👥 影響範囲
- 直接影響: Re:VIEWの標準記法でwrap機能が利用可能
- 互換性: 既存の記法は完全に保持
- 破壊的変更: なし
🙏 謝辞
Issue #30/#31の詳細な要求と検証にご協力いただいた皆様に感謝いたします。
ReviewExtention v0.1.2 - Issue #28 HotFix
ReviewExtention v0.1.2 - Issue #28 HotFix
🔧 修正内容
Issue #28で報告されていたLaTeX listings言語パラメータの処理問題を修正しました。英語コードの折り返し機能が正常に動作するようになりました。
🐛 解決した問題
Issue #28: 英語コードの折り返し機能が動作しない
- Re:VIEWが
wrap=80などのオプションをそのまま言語パラメータとしてLaTeX listingsパッケージに渡していた Couldn't load requested languageエラーが発生し、PDFのビルドに失敗- 日本語テキストは正常に折り返されるが、英語コードブロックで問題が発生
📝 変更点
修正
- LaTeX listingsの言語パラメータ処理を改善
- オプション(wrap, fold, lineno等)と実際の言語を適切に分離
- language パラメータには実際の言語(ruby, python等)のみを渡すよう修正
- options は
\lstsetパラメータに適切に変換
技術的詳細
parse_language_options()関数でパラメータ解析を実装create_options_from_hash()でオプション構造体を生成- 各list関数(list, listnum, emlist, cmd)でオプション解析処理を追加
✅ 動作確認
修正前
//list[test][英語コード][wrap=on,lang=ruby]{
def very_long_method_name_that_should_be_wrapped_automatically
//}
→ LaTeX Error: Couldn't load requested language
修正後
//list[test][英語コード][wrap=on,lang=ruby]{
def very_long_method_name_that_should_be_wrapped_automatically
//}
→ 正常にビルド、適切な行折り返しとシンタックスハイライト
📦 アップグレード方法
既存プロジェクトでの適用
# 最新版を取得
git pull origin main
git checkout v0.1.2
# 必要なファイルをプロジェクトにコピー
cp lib/ruby/builders/latex/list.rb your-project/lib/ruby/builders/latex/
cp lib/ruby/tags/list.rb your-project/lib/ruby/tags/
cp sty/review-custom.sty your-project/sty/🧪 テスト結果
- 英語コードブロックの自動折り返し動作
- 日本語コードブロックの継続動作(回帰テストOK)
- 複数オプション(wrap+lang+lineno)の組み合わせ動作
- LaTeX listingsエラーの解消
👥 影響範囲
このHotFixは以下の機能に影響します:
- 直接影響(改善): 英語コードブロックの折り返し表示
- 間接影響(安定性向上): LaTeX PDFビルドの成功率向上
- 回帰テスト: 既存の日本語コード表示は変更なし
🙏 謝辞
Issue #28の詳細な報告とテスト協力をいただいた皆様に感謝いたします。
v0.1.1 - LaTeX Wrap Hotfix
ReviewExtention v0.1.1 - LaTeX Wrap Hotfix
🔧 修正内容
v0.1.0でRuby拡張によるwrap/fold機能を実装しましたが、LaTeX出力での自動折り返しが実際には動作していませんでした。このホットフィックスにより、PDFでの長い行の自動折り返しが正しく機能するようになりました。
📝 変更点
修正
- LaTeX自動折り返し(breaklines)の実効性を修正
review-custom.styでグローバル\lstset設定を適用breaklines=trueが確実に有効になるよう設定- 折り返し記号(↩)が正しく表示されるよう設定
- 環境再定義による競合を回避
ファイル変更
sty/review-custom.sty: LaTeX listings設定の修正CHANGELOG.md: 変更履歴の追加
✅ 動作確認
- PDFで長い行が自動的に折り返される
- 赤い矢印(↩)が折り返し位置に表示される
- test-projectでのPDFビルド成功
📦 アップグレード方法
既存のプロジェクトでv0.1.1の修正を適用する場合:
# 最新版を取得
git pull origin main
git checkout v0.1.1
# スタイルファイルをプロジェクトにコピー
cp sty/review-custom.sty your-project/sty/🙏 謝辞
問題を報告いただいたユーザーの皆様に感謝いたします。
ReviewExtention v0.1.0 - Ruby Hybrid Pipeline
ReviewExtention v0.1.0
🎉 初回リリース
ReviewExtention v0.1.0 をリリースしました!このバージョンでは、Re:VIEW 5.8 向けの Ruby 拡張によるハイブリッドパイプラインを実装し、長年の課題であった wrap/fold オプションと #@mapfile 機能を完全にサポートしました。
✨ 主な機能
📝 コードブロック拡張(//list)
- wrap/fold オプション: 長い行の自動折り返し
wrap=on: 自動折り返し有効化wrap=80: 80桁での厳密な折り返しfold=on: 折り返し機能有効化foldmark=↩: カスタム折り返し記号
- 行番号表示:
lineno=onで行番号を表示 - その他のオプション:
indent: インデント設定fontsize: フォントサイズ調整filename: ファイル名バッジ表示lang: シンタックスハイライト言語指定
📁 外部ファイル参照
- #@mapfile: 外部ファイルの安全な取り込み
- #@maprange: マーカーによる範囲指定取り込み
- セキュリティ機能:
- 200KB のファイルサイズ制限
- 拡張子ホワイトリスト
- パストラバーサル攻撃防止
- プロジェクトルート外アクセス禁止
🏗️ ハイブリッドパイプライン
- アーキテクチャ: JS前処理 + Ruby Builder
- 責務分担:
- JS: 入力正規化とメタデータ付与
- Ruby: 最終レンダリング(PDF品質確定)
- 統一ビルド: MCP と手動ビルドで同一パイプライン
📦 インストール
git clone https://github.com/dsgarage/ReviewExtention.git
cd ReviewExtention🚀 使い方
Makefile ターゲット
# JS前処理のみ
make preprocess
# フルパイプライン(JS→Ruby→PDF)
make pdf
# Rubyのみ(デバッグ用)
make pdf-nopre
# テストプロジェクトビルド
make test-pdfRe:VIEW プロジェクトでの利用
review-ext.rbをプロジェクトにコピーlib/ruby/ディレクトリをコピー- Re:VIEW コマンド実行時に自動的に拡張が読み込まれます
📋 動作要件
- Re:VIEW 5.8.0 以上
- Ruby 2.7 以上
- Node.js 18 以上(JS前処理使用時)
- TeX Live 2022 以上(PDF生成時)
🔧 解決した Issue
📚 ドキュメント
🤝 コントリビューション
Issue や Pull Request を歓迎します!
バグ報告や機能要望は Issues までお願いします。
📄 ライセンス
MIT License
🙏 謝辞
Re:VIEW 開発チームの皆様に感謝いたします。