やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Python3.6.1のvenvにMarkdownパッケージをインストールする

Markdown→HTML。

前回まで

  1. GitHub Flavored Markdown(GFM) をローカルで書いて閲覧したい
  2. PythonでMarkdownからHTMLを生成するためのパッケージ仮想環境を用意する

Markdownインストー

インストールしたい仮想環境を有効化する

前回作ったshスクリプトで仮想環境を有効化する。

source venv_markdown.sh
(markdown) {UserName}@{MachineName} /{カレントディレクトリパス} $

先頭に(markdown)と表示されていれば仮想環境が有効化されている。

確認

念のためPythonのバージョンも確認する。

$ pyenv version
3.6.1
$ python -V
Python 3.6.1
$ pip -V
pip 9.0.1 ...  (python 3.6)

pip

pip install markdown

すんなりインストールされた。

$ pip install markdown
Collecting markdown
  Using cached Markdown-2.6.8.tar.gz
Installing collected packages: markdown
  Running setup.py install for markdown ... done
Successfully installed markdown-2.6.8

import確認

インタプリタを起動する。

$ python
>>> import markdown

何もエラーが出なければ成功。インストール前にimportしようとすると以下のエラーが出る。

ImportError: No module named 'markdown'

動作確認

結論

GitHubはてなブログの書式が変換されないものがいくつかあった。

  • コードブロック
  • テーブル

f:id:ytyaru:20170527093609p:plain

ソースコード

$ python test.py

test.py

import markdown

class MarkdownTest(object):
    def __init__(self):
        pass
    def Run(self):
        md = markdown.Markdown()
        html = md.convert(self.__GetMarkdown())
        print(html)
        with open('test.html', mode='w', encoding='utf-8') as f:
            f.write(html)

    def __GetMarkdown(self):
        return """
# 見出し1

## 見出し2

### 見出し3

#### 見出し4

##### 見出し5

##### 見出し6

* 順序なしリスト1
    * 順序なしリスト2
        * 順序なしリスト3
            * 順序なしリスト4
                * 順序なしリスト5
                    * 順序なしリスト6
                        * 順序なしリスト7
                            * 順序なしリスト8
                                * 順序なしリスト9
                                    * 順序なしリスト10

`python`なら自動化に自信が持てます。

!python3

encoding: utf-8

import os.path print(os.path.abspath(os.path.dirname(file)))

* [Pythonドキュメント](https://docs.python.jp/)で学習する
* [![GitHub](http://www.google.com/s2/favicons?domain=github.com "GitHub")](https://github.com/)に成果を残す

abc|def
---|---
123|456
ABC|DEF

"""

if __name__ == "__main__":
    m = MarkdownTest()
    m.Run()

変換結果

<h1>見出し1</h1>
<h2>見出し2</h2>
<h3>見出し3</h3>
<h4>見出し4</h4>
<h5>見出し5</h5>
<h5>見出し6</h5>
<ul>
<li>順序なしリスト1<ul>
<li>順序なしリスト2<ul>
<li>順序なしリスト3<ul>
<li>順序なしリスト4<ul>
<li>順序なしリスト5<ul>
<li>順序なしリスト6<ul>
<li>順序なしリスト7<ul>
<li>順序なしリスト8<ul>
<li>順序なしリスト9<ul>
<li>順序なしリスト10</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><code>python</code>なら自動化に自信が持てます。</p>
<p>```python</p>
<h1>!python3</h1>
<h1>encoding: utf-8</h1>
<p>import os.path
print(os.path.abspath(os.path.dirname(<strong>file</strong>)))

abc|def ---|--- 123|456 ABC|DEF

# 別解

* [http://papaeye.tumblr.com/post/27705803009/markdown-%E5%87%A6%E7%90%86%E7%B3%BB%E3%81%AE%E6%AF%94%E8%BC%83]

Markdownエンジンは色々あるらしい。

# 所感

実用できないレベル。次回はpy-gfmをインストールする。