Bloggerの記事をMarkdownで記述してPandocでHTML変換する。Git2.7.4をWindowsXPにインストール
Blogger https://www.blogger.com/ というGoogle運営の無料ブログでMarkdownを使う方法はある。ローカル環境でMarkdownで執筆し、ローカル環境でMarkdown→HTML変換して、そのHTMLをBloggerの記事欄に入力すればいいのだ。Markdown→HTML変換にはPandocコマンドを使うため、bashの動作するターミナルがほしい。PortableGitを導入するとbash環境が手に入る。
WindowsXPにGit 2.xはインストールできないか調査したところ、Git 2.7.4まではインストールできた。
PortableGit 2.xでgit-bash.exeを実行できるか
新しめのPortableGit 2.x をWindowsXPで実行すると、E:\PortableGit2\git-bash.exe
起動したとき「ProcedurePoint CancelSynchronousIo (Vista以降のAPI) が kernel32.dllに見つからない」と出て動作しない。 git-bash.exe
ではなくgit-cmd.exe
起動なら
E:\PortableGit2>git --version
git version 2.10.2.windows.1
E:\PortableGit2>ls
'ls' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
gitだけは動作するがlsとかが使えない。bashシェルが使えないと個人的には使いにくいので、git-bash.exe
が動作するバージョンを求めて探索。
PortableGit2.xの過去バージョンを調査
https://github.com/git-for-windows/git/releases をさかのぼり、WindowsXPでgit-bash.exe
が動作するPortableGit2.xを探す。ちなみにMSYS2のもととなるCygwinは2.5.2(2016-06)がXP対応の最終版で2.6.0test(2016-07)からXP非対応なのだが関係あるだろうか?
- PortableGit-2.10.2-32-bit.7z.exe (2016-11)
- →「ProcedurePoint CancelSynchronousIo (Vista以降のAPI) が kernel32.dllに見つからない」と出て動作しない。
- PortableGit-2.9.3.2-32-bit.7z.exe (2016-08)
- →「ProcedurePoint RtlGetNtVersionNumbers がntdll.dllに見つからない」というエラーでWindows2000では動作しない。
- PortableGit-2.9.3-32-bit.7z.exe (2016-07)
- →ProcedurePoint RtlGetNtVersionNumbers ntdll.dll
- PortableGit-2.8.4-32-bit.7z.exe (2016-06)
- →ProcedurePoint RtlGetNtVersionNumbers ntdll.dll
- PortableGit-2.8.2-32-bit.7z.exe (2016-05)
- →ProcedurePoint RtlGetNtVersionNumbers ntdll.dll
- PortableGit-2.8.1-32-bit.7z.exe (2016-04)
- →ProcedurePoint RtlGetNtVersionNumbers ntdll.dll
- PortableGit-2.8.0-32-bit.7z.exe (2016-03)
- →ProcedurePoint RtlGetNtVersionNumbers ntdll.dll
- PortableGit-2.7.4-32-bit.7z.exe (2016-03, git2.7の最終版)
- →動作する。
- PortableGit-2.6.4-32-bit.7z.exe (git2.6の最終版)
- →動作する。
- PortableGit-2.5.0-32-bit.7z.exe (previewではない正式な、最初のバージョン)
- →動作する。
PortableGit 2.7.4インストール
C:\home\bin\PortableGit2
に2.7.4をインストール。 git-bash.exe
は動作している。
Administrator@win2000 MINGW32 /$ pwd
/
Administrator@win2000 MINGW32 /$ echo $HOME
/c/Documents and Settings/Administrator
Administrator@win2000 MINGW32 /$ echo $PATH
/c/Documents and Settings/Administrator/bin:/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/mingw32/bin:/usr/bin:/c/Documents and Settings/Administrator/bin:/c/WINNT/system32:/c/WINNT:/c/WINNT/System32/Wbem:/usr/bin/vendor_perl:/usr/bin/core_perl
フォルダーを新規作成。
C:\home\bin\PortableGit2\home
C:\home\bin\Pandoc
ファイルを新規作成。 C:\home\bin\PortableGit2\bash.bat
bash.bat
@echo off
set HOME=C:\home\bin\PortableGit2\home
set PATH=%PATH%;C:\home\bin\Pandoc
start C:\home\bin\PortableGit2\git-bash.exe
このbatのショートカットアイコンをデスクトップに置く。[右クリック→プロパティ]で[実行時の大きさ] を「最小化」にする。[アイコンの変更] で C:\home\bin\PortableGit2\git-bash.exe
を指定する。
Administrator@win2000 MINGW32 ~$ pwd
/home
Administrator@win2000 MINGW32 ~$ echo $HOME
/home
vimは起動した。makeコマンドとかwgetコマンドは存在しない。
Pandoc
このページで使用させていただいている Blogger https://www.blogger.com/ というGoogle運営の無料ブログは、Markdownでの記事執筆は未サポートで、HTMLで記事執筆せねばならない。しかしMarkdownを使う方法はある。
ローカル環境でMarkdownで執筆し、ローカル環境でMarkdown→HTML変換して、そのHTMLをBloggerの記事欄に入力すればいいのだ。
「Markdown→HTML変換ツール」として便利なのがPandocだ。利点として
- GitHub Flavored Markdownのソースコードタグの記述を使える。
- ソースコードのSyntax Highlight可能。
- PHP Markdown ExtraのHTMLのdefinitionタグ (<dl>, <dt>, <dd> タグ)の記述をサポート。GitHub Flavored Markdownの範囲を超えて使っていいのか疑問もあるが自分で<dl>とかタグ入力するよりラクだし見やすいので使っていこう。
- Windows2000/XPでも使えるバイナリーを提供。Linuxでも使用可能。
のような特徴がある。
導入方法
https://github.com/jgm/pandoc/releases/latest でwindows版 pandoc-1.19.2.1-windows.msi
を取得。インストールする必要はないので http://pandoc.org/installing.html を参考にexeを取り出す。 [start-ファイル指定して実行-cmd]
C:\Users\star>mkdir "%TEMP%\pandoc"
C:\Users\star>r:
R:\>dir *msi
2017/04/18 22:35 22,293,504 pandoc-1.19.2.1-windows.msi
R:\>start /WAIT msiexec.exe /a pandoc-1.19.2.1-windows.msi /qn targetdir="%TEMP%\pandoc"
R:\>echo %TEMP%
C:\Users\star\AppData\Local\Temp
すると C:\Users\star\AppData\Local\Temp\pandoc\Pandoc
にファイルあり。このexeを、先ほどのbash.batでPATH通した C:\home\bin\Pandoc
に配置。
Administrator@WIN2000 /e/Pandoc$ pandoc ../README.md -o README.html
で変換を確認した。
出力するHTMLに <html><head>..</body></html>
のようなheader/footerもHTMLに含めるには -s
が必要。しかし今回はBloggerの記事入力欄に転記するHTMLなのでheader/footerは なしでよい。
--self-contained
とするとHTMLに画像埋め込みが可能。 http://sky-y.github.io/site-pandoc-jp/users-guide/ これもいつか役に立ちそうだ。
ちなみにBloggerでソースコードのSyntax HighlightのCSS指定するには [Blogger - Theme - Customize - Advanced - AddCSS] に以下のCSSを追加した。 https://stackoverflow.com/questions/41039084/pandoc-and-source-code-highlighting-disable-embedded-styles-when-exporting-to-h
wget
wgetは「wget windows」検索して http://gnuwin32.sourceforge.net/packages/wget.htm でBinariesを取得。bin/wget.exe
を配置してPATH通す。→動作しない。Dependenciesも取得・展開し、bin/*.dll
もC:\home\bin\Pandoc
に配置すれば動作した。
C:\home\bin\Pandoc
とは別にフォルダーを用意したほうがいいかもだが面倒なのでまとめて配置。
nkf
文字コード変換ツール nkf は http://www.vector.co.jp/soft/dl/win95/util/se295331.html で取得して、vc2005\win32(98,Me,NT,2000,XP,Vista,7)ISO-2022-JP\
にあるnkf.exe
をC:\home\bin\Pandoc
に配置。
ヘルプを見る
MINGW32 /z/home/Dropbox/tmp/blogspot$ nkf --help | less
BOMつきUTF-8.txtをBOMなしUTF-8.txtにする (input: W8, output:w80)
[/r/201705]$ nkf -W8 -w80 test1.txt > test2.txt
表示設定
PortableGit2.xはMSYS2ベースなので、ターミナルはminttyが使われている。フォント設定を変更できる。ウィンドウ左上を右クリック→Option。[Text-Font] RictyDiscordに変更。
lsすると、ディレクトリー(フォルダー)名が青くて、背景色の黒に近く、視認が難しい。minttyでは個別の色変更はできないようだ。lsしたとき色を使わないようにする。
Administrator@win2000 MINGW32 /$ alias
alias ll='ls -l'
alias ls='ls -F --color=auto --show-control-chars'
Administrator@win2000 MINGW32 /$ vi ~/.bashrc
alias ls='ls -F --show-control-chars'
いったんexitでminttyを終了する。bash.batのショートカットアイコンをダブルクリックでmintty起動。 Warningが出て、~/.bash_profile
を自動作成してくれた。
0 件のコメント:
コメントを投稿