org-mode → Markdown → はてなブログ投稿の実験 まとめ
Table of Contents
Org 8.x のMarkdown がうまくいかない
M-x org-md-export-as-markdown (C-c e m M)
でOrg 文章をMarkdown形式に変換できる。
はてなブログもMarkdown 記法に対応しているので、これをそのまま貼り付けるだけで記事が投稿できる。
下は Org 8.x でその出力テストを行ったもの。
スケジュールやTODOリストなど、後半部分は記事の構成要素にならなさそうなので、言及しない。 他、記事を書くにあたって問題になりそうな不備を洗い出してみた。
- (おそらく)空白行を挟まずにリストを作成すると、それをリストと認識しない
- 表の体裁が崩れている (列グループ化が適用されていない)
- 内部リンクが機能していない
- 脚注のリンクが機能していない
Org 9.x に上げると殆ど解決した
どうしてこうなるのか・・・を考える前に Org-mode のバージョンを上げたら大体は解決しました。
ぱっと見たところ不備は残りこれくらい。
- 表の列グループ化が適用されていない → 使う機会が少なそうなので、今回はスルー
- new! ソースコードが適用されていない
残った問題
ソースコードが適用されていない (+ハイライトしたい)
リファレンスのタグ付けの部分が悪さをしていたらしい。 以下は正常に出力された。
' #+BEGIN_SRC emacs-lisp -n
' (save-excursion
' (goto-char (point-min)))
' #+END_SRC
↑org ↓出力
1 (save-excursion
2 (goto-char (point-min)))
欲を言えばシンタックスハイライトしたい。 そこで、コードの部分をMarkdown記法で埋め込む方法をとってみる。
' #+BEGIN_EXPORT html
' ```python
' def hello():
' str = "Hello World"
' print(str)
'
' # Hello!
' hello()
' ```
' #+END_EXPORT
↑org ↓出力
def hello(): str = "Hello World" print(str) # Hello! hello()
#+BEGIN_EXPORT html ... #+END_EXPORT
で囲まれた部分はMarkdownエクスポートの際、
そのまま出力される。このブロックはOrg-mode のEasy Template機能で <h [TAB]
で呼び出せる。
```python ... ```
はMarkdown記法。ソースコードの言語名を指定することで、はてなブログが
対応している言語はシンタックスハイライトしてくれる。
痒いところに手が届かないところは直Markdownで
画像やURLリンク(埋め込み形式)も Markdown直打ちで対応したほうが見栄えの調節が便利だったりする。
' #+BEGIN_EXPORT html
' <img src="https://orgmode.org/img/main.jpg" width=200>
'
' [https://www.google.co.jp/:embed]
' #+END_EXPORT
↑org ↓出力