Presentation at Vivliostyle meetup, Aug. 31, 2019
Markdown原稿の複雑化と締め切りのはざまで〜多分これが一番早いと思います〜2019/8/31 Vivliostyle開発者とユーザーの集い@spring_raining
View Slide
あなた誰● 緑豆はるさめ○ Twitter: @spring_raining● 4月新卒入社のフロントエンドエンジニア● 時間を見つけてVivliostyleにコントリビュート● フォントと深層学習に興味があります
宣伝: Vivliostyle合同誌● VivliostyleをはじめとしたCSS組版をフィーチャーした合同誌● vivliostyle.org で無料で読めますhttps://vivliostyle.org/samples/● Vol.2 参加者募集中!!!!
Markdown+CSS組版やっていくぞ!!!!
締切3日前
原稿終わらない…Markdown→HTML変換後の謎の作業…何もしてないのにレイアウトが壊れた…
受け入れるしか無い…本当に?
さかのぼって考える原稿が終わらなかったレイアウト崩壊BAD END早く原稿を書く効率的に原稿を書けるワークフローを用意しておくレイアウトの問題にできるだけ早く気づく制作期間
Markdownが足りないもの複雑な紙面を表現するための書式・文法他のファイルの参照(1ファイルからしか作れない)Remarkを使ってMarkdownを拡張Pugとの併用で複数Markdownをまとめる
Markdownを拡張?● Remark: JavaScriptによるMarkdownパーサ● 変換中の文書をAST(抽象構文木)で得られるのでプラグインが書きやすい○ Pandocと同じ方法
たとえばこんなことが出力されるHTML構造を変更 Markdownに新しい文法を追加
Pug● HTMLに変換できるテンプレートエンジン● include で外部ファイルを読み込み● JavaScriptで用意したトランスパイラをPugのフィルター機能で呼び出し→ Remarkを使ってPugファイルの中にMarkdownを埋め込める!● もちろんフィルターも自作可能
フィルター使用例● define-keywordとrender-indexというフィルタを用意● 定義されたキーワードとそのページを巻末の索引に出力
紙面組版に立ち向かう● (前提) CSSによる紙面レイアウトは大変● 試行錯誤のための時間をたっぷり取ることをおすすめします● 原稿が終わってからではなく、原稿執筆と並行してプレビューを確認することでレイアウト崩壊の芽を摘む● CSSプリプロセッサの導入個人的にStylusを使っているけど好きなのを使えばいいと思いますhttps://2019.stateofcss.com
緊急回避手段を用意する● レイアウトが壊れる原因がわからないとき (わかったけど時間的制約で解決が難しいとき) のためにとりあえず回避する手段● (例) なぜかこの図だけページの下にはみ出てしまう…原因不明…強制的に改ページして解決!!!!
まとめ● 早く書けば早く終わります(それはそう)● Remarkプラグイン, Pugフィルターの実装は意外とかんたん○ JavaScript, Node.jsの学習テーマとしてもちょうど良い● 締切は待ってくれないけど本を出す機会は何度でもある○ とりあえず今完成させれば次回リベンジできる!技術書典7までお互いがんばりましょう!