Lua
コード周りは一旦これでおしまい。 さて、前回はテンプレートファイルに"Source Code R"のようなスタイルを追加し、CodeBlockはその外側にこのスタイルを持ったDivを配置することで、生成されたdocxの見た目に影響なく、元となった言語情報を保存することを…
まずはdocxにする際に細工をする。 さて、前回の考察の結果として、docx生成時にCodeBlockの言語情報が失われているので再生しようがないため、docx生成時になんとか情報を残す方法を考えねばならぬことがわかりました。 やろうと思えば色々とデータをdocxフ…
CodeBlockまわりが面倒くさい… さて、前回の続きです。CodeBlock周りの扱いをどうにかしないといけないのですが…長くなりそうなので複数回にまたがる予定です。 前回の記事にも訂正を入れましたが、docxからMarkdownに変換する際、スタイルがSource Codeにな…
VSCodeのExtensionってお手軽に作れますね… VSCodeの使いこなしが足りないと思ってちょっと最近 C&R出版のこの本を読んで使い方を学んでいます。 www.c-r.com これの最後に自作の拡張を登録するというのがあったのでやってみました。ひとまず自分がまだわか…
備忘録です 昨日数時間かけてLuaフィルタ中で使用できる各種モジュール、ログを生成してみるとか色々やってみましたが、現時点Pandoc 2.9.2 ではLuaフィルタの内部からPandocの実行時のオプション、引数その他を得る方法はなさそうです。 いくつかの情報、例…
Luaフィルタのマニュアルではわかりづらいのですが… 前回の記事でLuaのフィルタを書いていて実際に自分がハマったのでメモ。 Luaフィルタのマニュアルには各要素(BlockとかInlineとかのアレ。適切な訳語わからず)について、「Lua type reference」と「Modu…
ただし、custom-styleがない場合はそのまま出力する。 Codeに対してもattributeをあてられるので、idとかclassとかattributesをつけられるので、こんな感じで、標準入力からpandocに送ってみる。今回使うのはcustom-styleのみだけども、idとかで処理を追加す…
Pandoc 2.7.4になったらもう少し色々出来る…。 Rのslackで書いたやつです。単純に相対パスで書かれたものを絶対パスに書き直すだけであれば、下記のようなLua filterでいけます。ただし、windows環境だとC:\は/はじまりじゃないので/がついてしまいますね。p…
復活させてもらおうかしらん? Pandocはバージョン2.6からtask_listsオプションが使えます。 pandoc.org それ以前はnozmaさんの記事のようにLua filterを使用して対応していました。 qiita.com なのですが、本家で対応できたからいいよねということで?Lua f…
このIssueはPandocの理解度upに参考になる…かも。 このIssue、現時点でopenなのですが、初見だとなかなか面白い挙動なので見ておくと良いです。 github.com これを、以下のようにplain2をつくって渡してあげるとmb1とmb2は同じになります。1度でも参照して…
Luaモジュールと見せかけてほとんどHaskell pandoc.utils.normalize_dateという関数がある。これは日付っぽい文字列を受け取って、日付の形に返してくれる。 こいつの仕様がよくわからなかったので調べた。関数自体はLua filterのページのここに書いてある。…
とてもシンプル 文中のCodeやCodeBlockは対象外にすると決めてしまえば、以下のシンプルなコードで対応できます。 function Str(e) text = e.text text = string.gsub(text, '.', '。') text = string.gsub(text, ',', '、') return(pandoc.Str(text)) end…
Pandocにも質問用のメーリングリストがある ここね。 groups.google.com PandocのGitHubのIssueはBug reportやFeature requestをする場であって、個別の、書き方がわからない系の質問をする場所ではないので、困ったら↑のメーリングリストに書いてみましょう…
自分向けメモ ひとまず適当なLuaフィルタを書く。下記みたいに。1回回ればよいのでDocでいいんじゃないかな。 function Doc(e) for k,v in pairs(pandoc.pandoc) do print(k) end end これを任意のファイルを入力に、出力を任意の形式にして--lua-filterで先…
簡単に書けるものなら色々作れそう。 さて、PandocのLuaフィルタについて少しずつ調べているのですが、簡単なものであればもう書けそうなので順次書いていく。 たとえば以下のような関数を作ってLuaフィルタとして使用する。 function Str(elem) if elem.tex…
Luaの文法がまだ覚えきれていないのでまずはそっちを固めるべき ひとまず、公式のマニュアルを読んだ。 pandoc.org 例はココにあるらしいが、まだ読んでいない。 github.com また、通常のフィルターも少しだけ目を通したが、フィルタの実行環境を持っていな…
いきなりeight queenのコードが出てきた。 なんかほとんど説明なくeight queenのコードが出てきたので早速写経して動作を確認した。1発完動はなく、1文字typoがありましたが。 関数の定義や呼び出しなどなど色々な要素が詰まったコードなので、もう少し文法…
Luaはいろんなところに使われているんだな。 ということで、重い腰を上げてLuaを勉強しようと思う。あまりLuaについての書籍は発行されておらず、特に和書はない。少し前のであればあるのだが、まぁ新しいものが良かろうということで(といってもこれも数年…