Pandoc
じゃあ、作ってみよう。 headerA headerB header1 A1 B1 header2 A2 B2 こういう表を作る。セル内での改行はいったん後回しだ。 1行目を作る。ヘッダ行になる。 local row1 = pandoc.Row( { pandoc.Cell({}), pandoc.Cell({pandoc.Plain("headerA")}), pando…
前回、表を作ってみようとしたが、pandocの表には今まで触れてないTypeがいきなりわんさか出てくるのでよくわからない。なので、まずLuaで自由に表を作ってみる練習をしたい。 前回、markdownの表を食わせてみてわかったざっくりとした構造はこんな感じだ。 …
次は表をやってみよう こんな表を作ってみた。 これのbox noteのJSONは割愛するけど、構造としてはこんな感じである。 table table_row table_header paragraph table_header paragraph text("headerA") table_header paragraph text("headerB") table_row t…
さて、次に対応する重要な機能として、箇条書きのネストに対応したい。 まず、box noteでネストさせると、こんな画面とJSON ASTになる。 { "type": "bullet_list", "content": [ { "type": "list_item", "content": [ { "type": "paragraph", "content": [ {…
前回作ったLuaのスクリプトをいじっていくにあたって、やってる途中に壊していないかを簡単に確認できるようにしたい。 要するに単体テストが実行出来るようにしたい。 とはいっても、このスクリプトはpandocに組み込まれているLuaインタプリタでしか動かな…
もう少し、複雑なドキュメントを変換してみよう。 このbox noteのJSON ASTを抜粋するとこんな感じである。 { "doc": { "type": "doc" }, "content": [ { "type": "heading", "attrs": { "level": 1, "guid": "m3hfvv22" }, "content": [ { "type": "text", "…
ちょっと勉強はいったん置いて、pandocを実際に動かしてみたい。 まず、動いたかどうかをどうやって確認するのかだが、何らかの出力をしないことには確認できない。要するにどうやってprintfデバックするのかということだ。 というわけで、伝統と格式のHello…
pandoc.jsonライブラリをみていこう。 Module pandoc.json Fields null これはなんだろうかと思ったんだけども、JSのnullをpandoc.json.nullと表記するということかと思う。nilとは違うものなんだな、たぶん。 Functions decode 引数にJSONの文字列を与える…
Lua Filterの続き。Pandoc Moduleから。 Pandoc Module pandocというグローバル変数で提供されてる機能は大きく2つ。以下、2つについて Element creation ASTの要素の作成に使うもの。 Exposed pandoc functionality Luaからpandocの機能を触れるようにした…
さて、次はpandocなんちゃらというライブラリについて理解しないといけないはずだ。 その説明はLua Filterのドキュメント(https://pandoc.org/lua-filters.html)にあるらしい。とても長い。つらい。流し読んでいこう。 pandoc.org Introduction ここでフィル…
引き続き、Luaのリファレンスを読んでいく。4章、5章はC言語とのインターフェースの話なので飛ばして、今回は6章の標準ライブラリを読んでいく。 Luaでは、「標準ライブラリ」と呼ばれるものはすべてCで実装されている。つまり、可変長引数は受け付けないこ…
引き続き、Luaのリファレンスを流し読んでいく。3章から。 3.1 字句規則 文字列リテラルの例が面白いので引用しとく。以下、全部同じ内容の文字列になると。 a = 'alo\n123"' a = "alo\n123\"" a = '\97lo\10\04923"' a = [[alo 123"]] a = [==[ alo 123"]==…
Luaについてざっくり学んでみたい。少なくともtableの扱い方がわからないと、コードが書けないように思う。 どうやら、Luaの学習にはこのリファレンスが良さそうだ。翻訳された方に感謝したい。有り難すぎて、まだ1文字も読んでないのに発作的にBOOTHで購入…
戯れにPandocのCustom Readerのドキュメント(https://pandoc.org/custom-readers.html)を読んでみる。 Introduction Pandocはいろんなフォーマットのテキストを読み込めるけど、標準にないものは自分で読込アダプターを作れる。 それはCustom Readerと呼ばれ…