niszetの日記

アナログCMOS系雑用エンジニアが頑張る備忘録系日記

Haskell

ghcupでstackをinstallしたら stack upgradeしてはいけない

Pandocを見ているときに気づかぬうちにやっていたぽいね。 VSCodeでHLSがうまく動かないな…と思って調べていて気づいたのでメモ。 ただし、「HLSが動かないな…」と思っていたのは勘違いであったが、よく考えると一周回って勘違いじゃなくなったのでそれもメ…

(Pandoc) docx出力の脚注の区切り文字をテンプレートから反映させる修正をしています。

マージされたら褒めてくれ。 issueはこれ。 github.com そういえば、テンプレートから反映されないなコレ…ってことでここ2-3日うにょうにょHaskell書いてPRを投げました。 github.com さてどうなるかなー… 今回のことでまた理解が深まったので、ODT形式の方…

(Pandoc)OpenDocument形式出力でsyntax highlightingを(ただしインラインCodeかつODTではない)

簡単とは思っていなかったけどやっぱり大変…。 ODT形式の出力はシンタックスハイライトに対応できていません。そのため、これに対応するべくPandocの修正を試みています。 とりあえずissue建てた。 github.com PRを1個出していて、これはOpenDocument形式で…

(Pandoc)ODT出力にtoc-depthが設定できるようにしました

修正は2行だけ Pandocの、ODT形式での出力をdocx形式での出力と同程度のコトが出来るようにしたく、調査等をしています。 とりあえず手が付けられそうなtoc-depthの修正を試みました。 修正自体は2行だけなのですが、PR出すのは初めてなので色々手間取りまし…

(Pandoc) MS Word (docx) 出力でも --number-sections オプションに対応している(メモ)

仕様を追い切れていないが…。 Pandoc 2.10.1 から docx の出力で --number-sections オプションがサポートされました。 これをodtにも入れたいなぁと思ってコードを見ていましたが、Writerにべったり依存なのでコードをかなり追わないといけないなということ…

(Haskell)Pandocコード読み: make-reference-files.hs

とりあえずわかるところを増やしていく。 今日読んでいるのはコレ。 github.com コレはreference.docxなどのテンプレート(正確にはtemplateは別にあるので、referenceと呼んだ方が良さそうだが)を作るためのHaskellのコード。 これは単体で実行できる(mai…

(Pandoc) docx -> md への逆変換のメモ。メタデータについて

メタデータに関して PandocによるMarkdownからdocxへの変換は、Titleなどのドキュメントの見た目やooxml中で定義されているタグがあるような項目だけでなく、任意のメタデータを出力ファイルに入れることが可能です。たとえば、RMarkdownで出力した場合はout…

Haskellの勉強中(勉強記録メモ)

昨日の続き。 昨日書いたコードに対して、showをいじってみる。 instance Show Atom where show s = "Hoge" などとすると、Atom型は常に"Hoge"と表示される。このとき、元々の定義、newtype Atom = Atom String deriving Show の deriving ... は消しておく…

Haskellを書き始める(勉強進捗メモ)

初心者なので…。 昨日ふと思い立って書き始めた。やはり読むのと書くのでは全然違う。知ってることと出来ることは違うように。 この記事はどこで躓いていたのかを記すだけのメモ的な日記です。あとで振り返るため。なので、有益なことは書かれていません。 …

(Pandoc) Jira Writerを読む(自分用メモ)

これが一番シンプルなのでは?と思ったので。 docxは仕様が複雑なので、もっと簡単なファイルフォーマットでReader/Writerを学ぼうと思ったところ、最近追加されたJiraのWriterがわかりやすそうだったのでこれにした。Readerはまだない。 たぶん、ほかのtext…

入門HaskellプログラミングをLESSON15あたりまで読んだ

ページ数でみてもまだ全体の1/4くらい…。 さて、Haskellの本がどんどんと手元に集まってきて、勉強中です。 今は翔泳社の入門Haskellプログラミングを読んでます。 www.shoeisha.co.jp この本は手を動かして学ぶ方向が強いです。既に他のプログラミング言語…

HaskellのIDEとしてVSCodeを使えるようにしたかった…(失敗)

エラーメッセージがとても不親切…。 下記の記事を見て、HaskellのIDEにHIEを使えればと思って半日ほど見ていたのですがうまくいかなかった… qiita.com 途中で terminateProcess: permission denied (Permission denied) って出て止まってしまうんですよねぇ……

(Pandoc) east_asian_line_breaksの実装を読む

Haskell自体を理解していく…。 当たり前かもですが、Pandocの各オプションに対して対応する関数が存在します。そのため、各オプションに対応する関数を少しずつ読むことでHaskellとかPandocの理解が深まるのでは?ということでやっていく。今回はeast_asian_…

(Pandoc) pandoc.utils.normalize_date あるいはparseTimeMの話

Luaモジュールと見せかけてほとんどHaskell pandoc.utils.normalize_dateという関数がある。これは日付っぽい文字列を受け取って、日付の形に返してくれる。 こいつの仕様がよくわからなかったので調べた。関数自体はLua filterのページのここに書いてある。…

(Pandoc) pandoc.types は Pandoc2.7.4から

マニュアルの方が先行している PandocのLua filterのページにはpandoc.typesモジュールを使ってPandocのVersionオブジェクト ^[厳密にはオブジェクトではないかも] を扱えるといった記述がありますが、実際はバイナリで配布されているPandoc2.7.3ではこれは…

PandocのIssueとPR投げてマージされたはなし

記念?に…。 大した話ではないのですが、先日PandocにPull Request送って無事にマージされたので記念の日記。 PRはこれ。 github.com PandocはLuaのフィルタが使えますが、このLuaまわりはほとんど一人でメンテしているようで(大体の機能が実はそうなのかも…

(メモ)最近のHaskellを学びたい…

自分用の後で読む系のメモです。 Twitter徘徊してて、すごいHな本を読む際に、あれは良本だけどそのあとアップデートしないといけない知識があるということがわかったので、あとで読むためのメモ。7末に入門Haskellプログラミングって本が出るらしいのでそれ…

Pandocを手元でビルドする(メモ)

速攻で忘れていくのでメモ。 さて、Windows環境でもPandocは問題なくビルドできます。自分だけのPandocを作って快適なPandocライフを!とかできるわけです(ちゃんとIssueとPRを出せ) 取り急ぎメモ。 下記Haskell Platformをダウンロードしてインストールす…

Haskellの勉強を始めた

すべてはPandocの理解のために… 実際に書けるようになる必要はあまりなくて、Haskellで書かれたPandocの挙動をそのソースから理解できるようにしようというのがモチベーションです。なので、Pandoc中で使われていない記述などは特に学ばなくていいかなと思っ…