Marcdown関連のツールあれこれ(2018.5.3)

2018.5.5追記

Summary

MacDownでドキュメントを書いて、pandocで.mdを.htmlに変換することにすれば、備忘録のメモを作る効率が格段にアップするはず。 pandocでGutHub2.cssを使って一括変換するmd2html.pyを作成。 かなり備忘録作成作業が効率化出来たはず。

関連記事: Pandocを利用して複数のMarkdownファイルをhtml形式に変換するPythonスクリプト(2018.5.5)

MacDownのインストール

PreferenceでTerminalの項目を指定するとコマンドラインからファイルを開くことができる
MacDown icon

.mdファイルのMacDownへの連付けは.mdファイルを右クリックして “Get Info” –> “Open With:”で開くときに用いるアプリを選択し、 “Change All”ボタンで全部のファイルに反映。

MacDown icon

Pandocのインストール

$ brew install pandoc

Pandoc利用の注意点

PandocによるMarkdownからhtmlへの変換(github風)

MacDownが使用しているスタイルファイルは~/Library/Application Support/Macdown/Styles/にあり、GitHub.cssGitHub2.cssなどが選択可能。 それらを指定して使えるほか、GithubにもGiuhub風のスタイルファイル(GitHub-like CSS for pandoc standalone HTML files)にgithub-pandoc.cssなどがある。

$ pandoc -f markdown -s --self-contained -t html5 -c ./GitHub2.css -o ./outfile.html infile.md

一括変換用のPython3スクリプト

コマンドラインからファイルを指定すると.mdファイルだけを.htmlに変換するPythonスクリプトを作成した。 カレントディレクトリの.mdファイルを指定して.htmlに変換するには、コマンドラインから下記のように指定して実行する。

実行方法

$ md2html.py ./*.md

第一引数のファイル名の拡張子が’.css’の場合には、そのファイルをスタイルファイルとして使用する。.cssファイルが第一引数に指定されていない場合、さらにMacDownがインストールされていて~/Library/Application Support/Macdown/Styles/GitHub2.cssが存在すればそれを使い、なければスタイルファイルは用いない。スタイルファイル./github-pandoc.cssを指定する場合は以下のようにして実行。

$ md2html.py ./github-pandoc.css ./*.md

ソースコード

Pandocを利用して複数のMarkdownファイルをhtml形式に変換するPythonスクリプト(2018.5.5)に更新版あり

#!/Usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
import os

# To use the style file provided with MacDown
CSS_name = '~/Library/Application Support/MacDown/Styles/GitHub2.css'
#CSS_name = './github-pandoc.css'

# Check if the first arg specifies a .css file
name,ext = os.path.splitext( os.path.basename(sys.argv[1]))
if ext.lower() == '.css':
    CSS_name = sys.argv[1]

CSS_name = os.path.expanduser(CSS_name)

file_names = sys.argv[1:]
for ifile in file_names:
    dir = os.path.dirname(ifile)
    name,ext = os.path.splitext( os.path.basename(ifile))
    #print(ext)
    if ext.lower() == '.md':
        #print('Source: '+ifile)
        ofile = os.path.join(dir, name+'.html')
        print('pandoc -f markdown -s --self-contained -t html5 -c "'+CSS_name+'" -o "'+ofile+'" "'+ifile+'"')
        os.system('pandoc -f markdown -s --self-contained -t html5 -c "'+CSS_name+'" -o "'+ofile+'" "'+ifile+'"')
    else:
        print('Skip: '+ifile)

Back to Index