ちょっと JavaScript コードを書く機会が増えてきそう。 そうなると、Perl コードを書く時には perltidy が手放せないように、JavaScript ソースコードフォーマッタが必要だ。 なのでとりあえず検索してよくひっかかってきた JS Beautifier を使ってみることにした。
JavaScript で書かれたバージョンと Python で書かれたバージョンがあって、後者の方はそのままコマンドラインからの呼び出しできるようになっているので、それを使うようにしてみる。
手元の環境だと Python の dev 系のファイルがインストールされていなくて setup.py が通らないので、Python からマルっと入れた。
$ tar zxvf Python-2.7.3.tgz $ cd Python-2.7.3 $ ./configure --prefix=$HOME/local/python-2.7.3 $ make $ make altinstall
で Python をインストールしたら JS Beautifier をインストール。
$ git clone https://github.com/einars/js-beautify.git $ cd js-beautify/python $ $HOME/local/python-2.7.3/bin/python2.7 setup.py install
$HOME/local/python-2.7.3/bin/js-beautify がインストールされる。PATH の通ったところにシンボリックリンクしておく。
あとは Emacs から実行できるように設定。
(defun js-beautify-region() "Run js-beautify on the current region." (interactive) (save-excursion (shell-command-on-region (point) (mark) "js-beautify -i" nil t)))
を設定しておいて、整形したいところをリージョン選択してから M-x js-beautify-region を実行するとその範囲を整形してくれる。
ちょっと使ってみた範囲では、大外ししてインデントメチャクチャとかは無かった。perltidy ほど賢くない感じだけれど、これで一貫したスタイルで書けるようになるのでいい感じかな。
reveal.js でスライド作ったんだけれど、そういえばと思って Firefox と Internet Explorer で表示確認したらまともじゃなかった。Google Chrome で確認しながら作っていたので気がつかなかった。むむむ。もしかしたら HTML 的にシンタックスエラーがあって崩れている部分があるのかもしれないけれど。
あと Windows 上で Python スクリプトを(そのまま、あるいは実行可能ファイル(exe)化して)動かすのがちょっと流行っているので、GHC インストールした。Haskell の。Windows 版の GHC は MinGW 使ってるのか。インストールは基本アーカイブを展開するだけ OK。
MkDocs の mkdocs-callouts プラグインを使うことで Python-Markdown の Admonition 拡張の書式ではなく Obsidian の callout 書式で書けるようになった。
A#photography
— Naney (@Naney) July 4, 2022
Lomo LC-A Minitar-1 Art Lens#Minitar #Minitar1 pic.twitter.com/xFJm6j803S
Obsidian vault の中の一部を Obsidian Publish サイトとして公開し、同じ vault の別の一部を MkDocs を使って静的サイト生成している。
MkDocs サイト向けノートから Obsidian Publish サイト向けノートへ Obsidian 内でリンクしている場合は、静的サイト生成したページから Obsidian Publish サイト上へページへのリンクにしたい。と思って MkDocs Roamlinks Plugin をちょっといじってみた。
Python の言語仕様、モジュール・パッケージ仕様、 MkDocs のプラグイン仕様とかほぼ分かっていない。とりあえず MkDocs Roamlinks Plugin の細心リリースの ZIP ファイルを GitHub からダウンロードして展開し、モジュール名を変えて
/usr/local/bin/python3.9 setup.py develop
し MkDocs サイトの mkdocs.yml で読み込むプラグイン名を変えたら読み込んでくれるのを確認した。あとは、まあなんとなくな感じで。 docs_dir 内で見つからなかったら Obsidian Publish しているフォルダ内を探し、見つかったら公開 URL へのリンクになるようにした。
動いたのでヨシ。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。