Scrapbox:Markdownの表示
ということは…
と考えて、探してみた。
けど見つからない。
URLを読み込んで表示することのできるサービスが見つからない。
Scrapbox のURL を渡せそうなものはみつからなかった。
代わりに、ブラウザ拡張を見つけたよ。
mdファイルをWebブラウザに渡すと、ブラウザがレンダリングして表示するしくみ。
↓下の赤い所をクリックすると、MarkdownファイルのURLへ移動し、ブラウザ(Chrome)がレンダリングして表示する。
code:cp.md
設定ファイル(iniファイル)を扱うConfigParserモジュールについて調べてみました。
### INIファイルとは
* Windows の設定ファイルとして考案された
* Windows以外でも設定ファイルのフォーマットとして利用される
* テキスト形式
* 容易に編集が可能(ぶっ壊すのも簡単)
* 拡張子には「.ini」が付く。
* セクション、キー、キー項目(プロパティ)から構成される
### Python におけるINIファイルの扱い
Python には標準でINIファイルの読み書きができるモジュール、ConfigParserが用意されています。
### サンプル Python2版(check_config.py)
で、サンプルとして作ったのが次のツールです。Python 2.7で実行。
`check_config.py
# -*- coding: utf-8 -*-
'''
check_config.py
設定ファイル(ini file)をチェックするユーティリティ
注意!
エラーチェックはいい加減です。
'''
import ConfigParser
import os
import sys
def show_config(ini):
'''
設定ファイルの全ての内容を表示する(コメントを除く)
'''
for section in ini.sections():
show_section(ini, section)
return
def show_section(ini, section):
'''
設定ファイルの特定のセクションの内容を表示する
'''
for key in ini.options(section):
show_key(ini, section, key)
return
def show_key(ini, section, key):
'''
設定ファイルの特定セクションの特定のキー項目(プロパティ)の内容を表示する
'''
print '%s.%s =%s' % (section, key, ini.get(section, key))
return
def set_value(ini, section, key, value):
'''
設定ファイルの特定セクションの特定のキー項目(プロパティ)の内容を変更する
'''
ini.set(section, key, value)
print 'set %s.%s =%s' % (section, key, ini.get(section, key))
return
def usage():
sys.stderr.write("Usage: %s inifile [section [key value]]\n" % sys.argv0) return
if __name__ == '__main__':
argc = len(sys.argv)
if argc == 1:
usage()
sys.exit(1)
# 設定ファイル読み込み
ini = ConfigParser.SafeConfigParser()
if os.path.exists(INI_FILE):
ini.read(INI_FILE)
else:
sys.stderr.write('%s が見つかりません' % INI_FILE)
sys.exit(2)
if argc == 2:
show_config(ini)
elif argc == 3:
show_section(ini, sys.argv2) elif argc == 4:
show_key(ini, sys.argv2, sys.argv3) elif argc == 5:
set_value(ini, sys.argv2, sys.argv3, sys.argv4) # ファイルに書き出す(注意!現状だとコメントや改行を消してしまいます)
f = open(INI_FILE, "w")
ini.write(f)
f.close()
else:
usage()
sys.exit(3)
sys.exit(0)
`
### 使い方
まー、ソースコードを見れば分かると思いますがw
`console:
python check_config.py
`
引数の指定が無い場合。
usage()(使い方)を表示。
UNIXコマンドのお約束的作法ですね。
`console:
python check_config.py inifile
`
引数がひとつだった場合。
第1引数には、INIファイルのファイル名を指定します。
inifileの内容を表示。
`console:
python check_config.py inifile section
`
引数が2つだった場合。
第2引数には、INIファイルのセクション(section)を指定します。
inifileの特定のセクション(section)の内容を表示。
`console:
python check_config.py inifile section key
`
引数が3つだった場合。
第3引数には、INIファイルの特定セクションのキー項目(key)を指定します。
inifileの特定のセクション(section)の特定のキー項目(key)内容を表示。
`console:
python check_config.py inifile section key value
`
引数が4つだった場合。
第4引数には、INIファイルの特定セクションのキー項目に対して変更する内容(value)指定します。
この操作のみINIファイルを書き換えます。
inifileの特定のセクション(section)の特定のキー項目(key)を内容valueに変更。
コードブロック記法なので、こんなこともできる。
code:cp.md
### サンプル Python3版
いまどきPython2版ばかリではアレなんで、Python3版も用意しました。
Python 3.5で実行。
* ConfigParser → configparser と名称変更
* print文が変わった
* 文字コードの扱いが変わった
`check_config.py
# -*- coding: utf-8 -*-
'''
check_config.py
設定ファイル(ini file)をチェックするユーティリティ
注意!
エラーチェックはいい加減です。
'''
import configparser
import os
import sys
def show_config(ini):
'''
設定ファイルの全ての内容を表示する(コメントを除く)
'''
for section in ini.sections():
print ("+ section + "")
show_section(ini, section)
return
def show_section(ini, section):
'''
設定ファイルの特定のセクションの内容を表示する
'''
for key in ini.options(section):
show_key(ini, section, key)
return
def show_key(ini, section, key):
'''
設定ファイルの特定セクションの特定のキー項目(プロパティ)の内容を表示する
'''
print (section + "." + key + " = " + ini.get(section, key))
return
def set_value(ini, section, key, value):
'''
設定ファイルの特定セクションの特定のキー項目(プロパティ)の内容を変更する
'''
ini.set(section, key, value)
print (section + "." + key + " = " + ini.get(section, key))
return
def usage():
sys.stderr.write("Usage: " + sys.argv0 + " inifile [section [key value]]\n") return
if __name__ == '__main__':
argc = len(sys.argv)
if argc == 1:
usage()
sys.exit(1)
# 設定ファイル読み込み
ini = configparser.SafeConfigParser()
if os.path.exists(INI_FILE):
ini.read(INI_FILE, encoding='utf8')
else:
sys.stderr.write(INI_FILE + " が見つかりません")
sys.exit(2)
if argc == 2:
show_config(ini)
elif argc == 3:
show_section(ini, sys.argv2) elif argc == 4:
show_key(ini, sys.argv2, sys.argv3) elif argc == 5:
set_value(ini, sys.argv2, sys.argv3, sys.argv4) # ファイルに書き出す(注意!現状だとコメントや改行を消してしまいます)
with open(INI_FILE, "w", encoding='utf8') as f:
ini.write(f)
else:
usage()
sys.exit(3)
sys.exit(0)
`
表示例
https://gyazo.com/ae5a6359b3d23c40a88fcaf8c857a7a8
とりあえず、過去のMarkdown を持ってくるにはこれで十分かも。
でも、特定のブラウザに依存するのは良くないので、適切なWebサービスがあるといいな。
Scrapbox-howto.icon
Scrapbox-tips.icon