共和国の自動化 その2 記事作成

2018.03.14

以前は, ウェブサイトの記事書くのを楽にするために記事作成スクリプトを実装していた. でもやっぱりそれでも面倒なことがいろいろあった. 例えばソースコードのハイライト. プログラミングを扱うサイトではハイライトによってコードが読みやすくなることは重要で, 何が予約語で何が関数で何が文字列・数値データなのかがひと目で分かれば, プログラムの構造を素早く理解することにもバグ予防にも役に立つわけだ. もうひとつの面倒な例は数式だ. 私のサイトは地形生成とかセルオートマトンのようなシミュレーションそしてゲーム作成などをメインにしているから, それらの作り方を紹介する上で数式は欠かせないわけだ. この2つを自分で実装するのはとても面倒.

ある日, マークダウンを使えば記事作成が楽になるから使おうと決心して, マークダウンエディタ(Linuxでも動くやつ)を探していて, ついにRemarkable というソフトに遭遇した. これを見た瞬間, これは神ソフトだ. 私がやりたかったことを全部できるやつだと確信した. なんとマークダウンのスクリプトをリアルタイムでプレビューしてくれるし, Mathjaxにも対応しているために数式をTexのように綺麗に表示することも出来る.

\[\sum ^{\infty} _{k=1} \frac{1}{k^2} = \frac{\pi ^2}{6}\]

ほらこんな感じに. ちゃんと数式が綺麗に表示されるのだ. そして当然ながらコードハイライト機能highlight.jsも付いている.

#include <stdio.h>

int main(void){
    printf("ソビエト社会主義共和国連邦");
    return 0;
}
public class codetest{
    public static void main(String str[]){
        System.out.println("技術的特異点へ前進せよ");
    }   
}

ね? いろんな言語に対応してちゃんとハイライトしてくれる. まじで労働英雄. レーニン勲章もらってもおかしくないぐらい素晴らしいソフト.

というわけで, これから私は自分のサイトの記事をRemarkableを使って作ることにした.以前作っていた記事作成スクリプトは開発中止にします. さあ, みんなもRemarkableをつかって作業効率をあげよう! 生産力拡大だ! テクノロジーへ帰依せよ! 技術的特異点へ前進せよ!

なんで私は今までこのようなテクノロジーを使っていなかったのか

いや, なんていうかさ, Mathjaxとかhighlight.jsってWebサービスじゃん. ネットの向こうにある他人のサービスに頼るじゃん. だから向こうの都合でサービス終了とかした場合にこっちは数式とかコードをちゃんと表示できなくなる可能性があるんだよね. だから今までそういうものを使うのをためらっていたわけ. でもやっぱり便利さには替えられないので使うことを決意した.

記事作成の流れ

  1. 画像素材を作成する.
  2. Remarkableで原稿を書く.
  3. htmlに出力する.
  4. このサイトの形式に合うようにhtmlを変換する.

これらの作業は全部私のPC上で行っている. サーバー上ではなく.

実はhtml出力するときにでてくるものは, そのままじゃ共和国のスタイルに合うように変換するにはいろいろと難がある. そしてMathJaxがclaudflare版になっていないという問題もある. これをなんとかしないといけない.

Remarkableはオープンソース (MITライセンス)でしかもPythonで実装されているから, ソースコードを見ればどこをどう変えればいいのかがわかる. だから3のhtml出力の際に便利な形で出力されるようにソースコードを変えれば4の変換も比較的楽にできるのである.

次回はRemarkableの挙動の変更の仕方を紹介する予定だ.