粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

WSL2上のDockerを用いてAsciidocの文書,スライドを書く

9/6 メモ吐き出し。

3行まとめ

  • WSL2上で動かすDockerはいいぞ
  • Windowsだと設定が面倒なAsciidocも簡単に使えるぞ

ということです。

Docker on WSL2はいいぞ

自前の環境を汚さずになにか作業したい場合,Dockerは非常に便利なツールです。

WSL1やDOSネィティブの環境でDockerを使おうとした場合,従来はHyper-Vが必要(Windows Homeでは無理)だったのですが,WSL2のUbuntu環境を立てることで,Ubuntu上でaptからDockerをインストールできます。

qiita.com

Docker on Windowとの比較としては

  • CLIですべてやりたいことができる
  • コマンドプロンプトからでもwsl <Linuxのコマンド>とやればWSL2のコマンドを実行できるので文法の違いに困らない

というのがあります。

例えばDockerの-vオプションなどで現在のフォルダ名を教える時,以下のような違いがあってちょっと困りますがそういった違いをあまり気にせずに良くなります。

Ubuntu上でaptを用いたりDockerで構築した環境をWindowsから簡単に流用できるというのが非常に使い勝手が良いと感じます。

なぜAsciidocを使うのか

AsciidocとはMarkdownのようなマークアップ言語で,Latexのようにコンパイルをはさみはしますが,整った文章を生成することが出来ます。

f:id:ossyaritoori:20200906015726p:plain
こんな見た目

一時期話題になったAWSの講義資料なんかもAsciidocで書いてあると思われ,非常に美しい体裁となっているのがわかります。

tomomano.gitlab.io

利点は大体ここに書いてあります。

qiita.com

Asciidoc文章の所感

下記の参考文献にもあるが表現力と記述の簡略性を鑑みると

という関係にあります。要はLatexほど面倒には書かずにMarkdownに書けない文章を書くということを目指します。

今の所特に顕著に差があるのは,

などだと思います。

Asciidoc スライドの所感

Deck.jsやRevealjsにも対応しているのでAsciidocの文章はスライド形式にもすることが出来ます。

asciidoctor.org qiita.com

自分はあまりRevealjsにピンとこなかったので簡易スライド作成手段としてはまだMarkdown&Marpが使いやすいと思っていますが, Asciidoc文章をシームレスにプレゼン資料に変更できるのは十分に有用であるとは認識しています。

ossyaritoori.hatenablog.com

Asciidoc を使う

今回はDocker推しですが簡単な文章ならVSCode拡張機能でも使えます。

qiita.com

一部図表や,数式の記述にパッケージのインストールが必要になるためここではDocker上で文章を書く方法について書きます。

Asciidocのイメージをインストール

正式な方法もあるでしょうが,最新版が単純にほしければ一度走らせようとするだけでOKです。

docker run -it --rm asciidoctor/docker-asciidoctor 

github.com

これで環境がたつので例えばUbuntuからあるディレクトリにあるファイルをコンパイルするには

docker run -it -v <your directory>:/documents/ asciidoctor/docker-asciidoctor asciidoctor <sample.adoc>

とすればhtmlに変換されたドキュメントが生成されます。

asciidoctor-pdfというコマンドを使えばPDFも作れますが,あんまりきれいではないのでhtmlのままにしてブラウザの印刷機能で印刷をかけることが自分は多いです。

先程のコマンドをコマンドプロンプトから走らせようとすると

wsl docker run -it -v $(pwd):/documents/ asciidoctor/docker-asciidoctor asciidoctor sample.adoc

となります。簡単でしょう?

Revealjsのプレゼン資料を作る

この辺はまだ自分でも調査中です。

恐らくスタンダードな見た目にしようとしたら以下のような感じになると思われます。

wsl docker run -it -v $(pwd):/documents/ asciidoctor/docker-asciidoctor asciidoctor-revealjs -a revealjsdir=https://cdnjs.cloudflare.com/ajax/libs/reveal.js/3.9.2 slide_sample.adoc

f:id:ossyaritoori:20200906021809p:plain
シンプルで動きのあるスライドが作成できますが使い所が意外とない。

Gitlab CIと連携して静的なページを作成する。

この辺の話です。正直以下の記述以上に今の自分で言えることはないですが紹介までに。

qiita.com

まとめ

文章作成系とDockerの相性はめっちゃいいと思います。

Pythonの解析のところでも書きましたが,ある特定の作業にしかその環境を使わない場合,Dockerを使ってやるが非常にコスパがいいです。

最近のお気に入りはROSのGUI環境をDockerでたてちゃうやつとかでしょうか。

Docker上でGUIのROS1/ROS2を一瞬でセットアップする方法 - Qiita

容量とメモリをそれなりに食うのと,今の所WSL2がPCデバイスを認識できていないのがネックと言ったところでしょうか。