ReVIEWアイデア (kmuto)
構成
- bin内のコマンドが相対パス指定なのはgit版を使うには便利なんだけど、ディストリビューションパッケージにしづらい。簡単に共存させるにはどうしたらいいだろう。
- configure、make install 的なのがほしいかも。
- Windows対応。
- Unix系じゃないと、ひどくつまらない無駄な労力が多いので、正直やる気が…問題ありそうな箇所のロジックを分離しやすくするのがよさそう。
- 文字コード問題
- ASCII、UTF-8以外のを明示的に蹴る? BOM、改行コードの処理。
- Windows系の作業者を考えるとSJIS+DOS改行ってなかなか捨てづらい。
- gem問題
- コア機能について外部gemに頼るのは継続して反対。
- Ruby 1.8ステはまぁいいかという気になってきている。とはいえ、「買ってきたMacOS Xそのままで動く」ようにはしたいんだよなぁ。マベリックさんでは1.9になってるんだっけ?
- 暗黙の静的ファイルはカレントよりもどこか別に置いたほうがいいんじゃないかなぁとか。
- とはいえ、互換性を考えると結局残さざるを得ないか。
- カレントの暗黙の静的ファイルというものが増えるとトラブルになる。たとえばlocale.yamlは気付かずに前にトラブった経験あり。
コマンド
- review-validateを廃止してreview-compileでシンタックスチェックをもっと厳にしたい。
- コマンドのつもりじゃない という箇所もあるので、warningとerrorをはっきりさせる。warningを無視するquietモード、warningをerrorにするstrictモードもあったほうがいいか
- 全体にコマンドオプションがわかりづらい。
- --enable-*, --disable-*
- -cオプションはcheckよりもconfigに使いたいなぁ
- yamlからなるべく取るようにする
- review-index, review-vol, review-check, review-checkdep, review-preprocの挙動整理。review-compileにまとめる?
- funnyな英語の修正
パーサ、構文
- PART,PREDEF,CHAPS,POSTDEFというのはCHAPSから後付けで追加していった関係上、使いにくい。エラーハンドリングも怪しい。1つのファイルのカタログにしたい。シンタックスは?
- なるべく日本語固有の文字列は静的に埋め込まず、ロケールファイルで設定したいところ
- 付録の処理、今のは気にいってない
- 付録はA、B、C、と採番したい
- CHAPSの普通のと同じようにしつつ、キャプション系がちゃんとA-1とかにならないと、とか
- 自分で作るものではAPPENDIXは使ってなくて、フィルタ処理で変換させており、汚い
- 互換性を持たせながらオプション指定を拡張するのがやりづらい
- //tag[options...][既存の… だとビルダの書き換えがしんどいなぁ。今のコマンドを最終にして、最後の[]に付ける?
- //tag{options}[...] だとインラインタグとの区別がしづらいか?
- とはいえ、オプション指定に複雑化させすぎるとTeXの二の舞
- AHFormatterで作る場合だと特に図版では後付けで上配置下配置とか拡縮とか指定したくなりそう。
- 箇条書きに仮題多い
- 数値入れ子
- 数値箇条書き、ナカグロ箇条書き、dl説明箇条書き を入れ子にした原稿がやっぱり多いので、ad-hoc対応だけでは限界
- dl環境(:)の構文が頭痛い。とりあえず、「頭にスペースを入れる」のほうだけにする。
- 行頭に:が入る普通の文はケースとしてありえる。地の文と区別しやすいReVIEWの中で、箇条書きだけは地の文に埋もれやすいので、なるべく区別しやすいようにしたい。
- 箇条書きに複数段落や図表がくっつく
- コラムの終わり強制タグはad-hocすぎて気にいらない
- pygments
- 機能自体はとても有用なのだが…
- require成功可否ではなく、ON/OFFフラグにしたい
- pygmentsとインラインタグとの相性が悪い
- リスト
- 行番号リストの開始番号指定
- リスト中にタブを入れたら警告したい(リスト内でタブは禁止)。
- インラインタグのネスト
- ただこれはあまりやられると、実際のバックエンドで困ることになる
- ブロックタグのネスト
- ブロックを増やすよりはコラムを拡張したほうがよかったのではないか、という話もあるが、手遅れ感ある。note内で箇条書きとかよくある
- 表
- セル結合
- セル内で複数段落や箇条書きなどを入れたいときにad-hoc感満載
- とはいえ、InDesignではセルは横セル数固定でないとハマる。あまりトリッキーな表の書き方は広まってほしくない(受け取っても組めなくなる)。
- tsize問題。達人組とInDesign組とでよく競合する。
- タグ名で後から考えるといくつか気にいらないのがある…iconとかindepimageとか。
- indepimageは特に画像不在エラー時の処理がださい
- タブ1つ区切りにしてくれない人が多いので、IDGXMLだと困る。処理を見直してIDGXMLでも綺麗に処理できるようにするか…。区別が超むずい
- セルの前後にスペースを入れるパターンはあり得るので、スペース文字の処理はいろいろ危険
- 空セルなのか、連結セルなのかの区別が困難
- 画像
- 多数のファイルがごそっとimagesに入るのは管理しづらい。reファイル名単位化はできるがなんか問題があったので使ってない
- 自分ところではimages-html, images-idとか作って変換時にimagesにsymlinkさせているが、ダサい。symlinkは好きだけど。
- images/builder/reファイル/* を最優先にできるように?
- 同じファイルに対して別名で用意しないとダメというのはイマイチだよねー
- iconをアイコンに使うときに同じファイル名指定するとwarning出まくるのはダサい
- 拡張子優先度は見直しが必要?
- 自動拡張子判断自体は、たとえばhtml版とInDesign版とで全然違う図版ファイルを使わないといけないので必須
- 紙面化で白埋めのためにこの範囲を移動する/した、というのはReVIEW側で何かできるかねぇ。紙優先なのは仕方がないとして、ePUB化したときにはそれがfunnyな結果に変わってしまうのがちょっと嫌。かといってコンテンツに手を入れるのはやりたくない。
HTML/ePUB(htmlbuilder, review-epubmaker*)
- review-epubmaker-ngでreview-epubmakerを置き換えたい。
- 現行review-epubmakerはいろいろひどいので捨てたい。
- 何かブロッカーはある?
- zipの呼び出しがダサい。zlibはgemなしにRubyのコアライブラリで使えるっけ?
- -ng版のHTML静的目次の生成がバグってる。
- レベルがばらばらの見出しから入れ子を作るロジックが難しい。
- エスケープが怪しいところがありそう。もっとテストユニットが必要。
- erb絡みでテンプレートファイルを固定している部分がちょっと嫌げ
- ハイパーリンク指定箇所の拡張子を設定可能にしたい
- ハイパーリンクラベルの指定がいまいち。見出しの下に//labelだとずれることになるし
- 「空段落」の表現がけっこうめんどくさい
- headlineに入れているID、ブック全体を1つのファイルにしようとすると衝突してまずい(AHformatterなど)。IDルールを検討
- CSSの指定方法がイクナイ
IDGXML
- 表の扱いが大変
- セル結合は後処理じゃないと困難。trがないので、1つでもずれるとまずいことになる
- セル幅計算
- 実はポイント値変換をしくじっている(アメリカ式にしてしまって、ちょっと想定値とずれる)のだが、いまさら直すと大ダメージ。yamlで可変にするか…
- ケイ幅によってセル幅指定してもずれるんだよね。難しい
- ダーシの文字が変わるのってREXMLの問題だっけかな
- 自分で使うときはnolfinxml前提にして後でフィルタでなんとかしてるけど、「とりあえず流し込める」レベルにするために標準でもなるべく不要改行作らない出し方にしたい
テキスト(topbuilder)
- 対応してないタグがけっこうある
- 余分な空行ができやすい
TeX
- review-pdfmakerの再構築をしたほうがよさそう。
ドキュメント
- manマニュアルが必要。英語
- 英語ドキュメント
- config.yamlの説明がいろいろ悪かったり、review-epubmaker-ng対応が必要だったり
リリース
- 3ヶ月ごとの29の日にgithubでクリティカルなバグが出ていなければ自動リリース、とかできない?
- Changelogをまとめる
- Changelogのfunnyな英語を直してくれる
- 緊急手動リリースもしやすくしないと?
名前
- いろいろ言われるけど、過去に採択に足る候補は出ていないし、変える気はなし。
- マークアップ言語体系としての「reviewml」のほうを使う? あまり好んではいないけど
- がっつり改変した後に「ReVIEW2」という俗称にするのはありかなぁ。好みではない
Last modified : 2013/12/23 11:30:17 JST