Markdownと参考文献

Common Lispはこの本[1]で学びました。という話がしたいわけではなくて、Markdownで書いているときに「参考文献ってどうやって書くんだっけ?」と思って調べたことの備忘録です。

一般的に参考文献は脚注を付けるバンクーバー方式か、括弧で著者名と出版年を書くハーバード方式の2つがあるみたいです。[2]後者は文系の書き方かな?ネットだと前者が多いですかね?ということでバンクーバー方式を採用しましょう。

Markdownでの脚注の記法は

文章[^1]

[^1]: 脚注

のように書くみたいですね。

VSCodeのMarkdown All in Oneはまだ対応していないみたいですけど。

でも、書きたいのは脚注じゃなくて参考文献です。脚注と参考文献を分けない派もあるみたいですけど、見やすくするために分けましょう。Wikipediaなんかはページによってまちまちなんですが、脚注で書名と具体的なページを書いて、書名が参考文献へのリンクになっているのが多いですかね?これが便利そうなので採用します。別に誰かに指定されているわけではないので、見やすそうなのを採用していきます。

そういえば、脚注が補足なのか、文献へのリンクなのか跳ぶ前にわかると便利そうですが、それは後で考えましょう。

参考文献の書き方は SISTスタイル、MLAスタイル、APAスタイルとあるみたいですが[2]、SISTスタイルに『』を付けたものが見やすそうなので採用です。

おれおれマークダウンなのでHTMLに展開しなければならないのですが、シンプルに

[^1]を<a href="#footnote_1"><sup>[1]</sup></a>
[^1]:を<a id="footnote_1">[1]</a>

みたいな感じでしょうか?

脚注の書き方をぐぐっていて気が付いたのですが、PandocというHaskellで書かれたツールがあるんですね。Pandoc拡張Markdownというなかなかに強力そうな書式で書けるみたいです。拡張性もあるみたいですけど、きれいに書きたいわけではないので、泥臭くてもなんでもできるRubyで書いておいたほうがいいのかと思っています。

ブログを書き終わってからおれおれマークダウンの実装をしているんですが、

[^3]: [ただの大括弧][link](#link)[^2]

\[\text{MathJax test}\frac{a}{b}\]

というのの解釈がめんどくさかったです。強引に書きましたけど。

    elsif md = line.match(/^\[\^([^\]]*)\]:(.*)/) then
        line = "<li><a id='footnote_#{md[1]}'>[#{md[1]}]</a>:" << parse_line(md[2]) << "</li>"
  line.gsub!(/\[([^\]]*)\]\(([^\)]*)\)/) {
    "<a href='#{$2}'>#{$1}</a>"
  }
  line.gsub!(/\[\^([^\]]*)\]/) {
    "<a href='#footnote_#{$1}'><sup>[#{$1}]</sup></a>"
  }

で、

# 脚注
[^1]: [『LISP 1』](#LISP1)と[『LISP Ⅱ』](#LISP2)  
[^2]: [『引用・参考文献の書き方』](#ritsumei)  
[^3]: [ただの大括弧][link](#link)[^2]

\[\text{MathJax test}\frac{a}{b}\]

# 参考文献
- <a id="LISP1">P.H. ウィンストン (著)、B.K.P. ホーン (著)、白井 良明 (翻訳)、安部 憲広 (翻訳)、井田 昌之 (翻訳)『LISP(Ⅰ)(原書第3版)』[第3版]培風館、1991年</a>
- <a id="LISP2">P.H. ウィンストン (著)、B.K.P. ホーン (著)、白井 良明 (翻訳)、安部 憲広 (翻訳)、井田 昌之 (翻訳)『LISP(Ⅱ)(原書第3版)』[第3版]培風館、1991年</a>
- <a id="ritsumei">立命館大学図書館 レファレンス係『引用・参考文献の書き方』2022-3、https://www.ritsumei.ac.jp/lib/pub/d08/010/14_quote.pdf</a>

が以下のようになって完成…していると思う。

ついでにAmazonのテスト。

脚注

\[\text{MathJax test}\frac{a}{b}\]

参考文献

Amazon

コメント

このブログの人気の投稿

五十音配列付き新下駄配列

WSLでの親指シフトはどうやらMozcで実現可能と気がつくまで

親指シフト新下駄配列の可能性