任意のパスから参照する方法を探した。
成果物
AsciiDoctor.CSS.Stylesheet.Setting.201705171236
前回まで
今回
CSSを外部化して任意の相対パスから参照する方法を模索した
内容 | パス |
---|---|
外部CSSを参照する | ./stylesheet/set |
CSSを使わない(デフォルトも。HTMLのみ) | ./stylesheet/unset |
内容 | パス |
---|---|
adocファイルより下位ディレクトリのCSSを参照する | ./stylesheet/set/ref_child |
adocファイルより上位ディレクトリのCSSを参照する | ./stylesheet/set/ref_parent |
内容 | パス |
---|---|
上位CSSを参照するときrootからAsciiDoctorを実行する(失敗) | ./stylesheet/set/ref_parent/run_root |
上位CSSを参照するときadoc同一パスからAsciiDoctorを実行する | ./stylesheet/set/ref_parent/run_this |
内容 | パス |
---|---|
属性にてCSS参照パス設定する | .../byAttribute/ |
コマンド引数にてCSS参照パス設定する | .../byCommand/ |
どの方法を使うか
おそらく実際にサイトを作るときは以下のような構造になる。
このことから、/stylesheet/set/ref_parent/run_this/byCommand/
の方法を使って動的に相対パスを渡してasciidoctor
コマンドを実行することになるだろう。
rbenv exec asciidoctor -a linkcss -a stylesheet=test.css -a stylesdir=../../../../../css/ test.adoc
全ファイル一括処理するために
- ルートディレクトリから
.adoc
ファイルを検索する - 1のパスへ
cd
コマンドで移動する - 上記の
asciidoctor
コマンドを実行してHTMLを出力する- ルートからの相対パスで
-a stylesdir=
に渡す値を決める
- ルートからの相対パスで
- 全
.adoc
ファイル分くりかえす
この手順で全HTMLを同一の外部CSS参照させることができるはず。