本家 Sphinx Advent Calendar 2012 10日目 ~サクラエディタから make html~
9日目の 波田野さん ( @tcsh )から受け取りました。
ドキュメント作成の歴史を紐解きながら、ドキュメントの構造化~システマティックなドキュメント作成への期待を語られていて興味深く感じました。
さて 本家 Sphinx Advent Calendar 2012 の10日目です。全部俺版とは別に投稿したいと思います。
サクラエディタとマクロ
最近では Vim や Sublime Text 2 、 Emacs だとかが流行っているらしいですが、Windows使ってるなら サクラエディタ でしょう。
仕事柄、色々な現場に入るのですが、どこでも サクラエディタ は必ず使われています。かくいう私も10年程 サクラエディタ を使っておりました。 第3日目 Sphinxドキュメントを書く道具 も参照して頂けると幸いです。
makeからブラウザ確認までを1動作で
- タイトルの通りです。サクラエディタで編集する際に 編集 -> make html -> ブラウザを起動して確認 ..... というサイクルの手間を少し省く事ができます。
使い方
これ をダウンロードし、任意のディレクトリに配置します。
例:
C:\tools\Editor\macro\build_and_browsing.vbs
設定 -> 共通設定 -> マクロ タブにて マクロ一覧 にマクロを配置したディレクトリを指定します。
マクロの登録一覧の空欄の部分を選択します。初めて登録するならば 0 を選択しましょう。
名前 に任意の名前を付けます。とりあえず make html としておきましょう。
File にてドロップダウンメニューからマクロのファイルを選択します。
設定 をクリックします。
マクロ一覧 の 0 に make html が登録された事を確認します。
キー割り当て タブをクリックします。
種別 を 外部マクロ にします。
make html をクリックします。
任意のキーを割付して下さい。
例 Alt + B を設定する場合
- 割付 を押下します。
- 機能に割り当てられているキー に Alt+B が、 機能に割り当てられている機能 に make html が表示されている事を確認し OK をクリックします。
プロジェクト 内のreSTファイルをサクラエディタで開き、おもむろに割付したキー(例では Alt+B )を押しましょう。
make html の結果がポップアップされ、編集している reSTファイル のhtmlがWebブラウザで開かれれば成功です。
マクロの中身
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | Option Explicit
Dim objWshShell
Dim objFso
Dim objFile
Dim inFileName
Dim objParentFolder
Dim parentfolder
Dim makebat
Dim objFolder
Dim bat
Dim WshScriptExec
Set objWshShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
Function getParentFolder()
inFileName = ExpandParameter("$F")
If objFso.FileExists(inFileName) = True Then
Set objFile = objFso.GetFile(inFileName)
getParentFolder = objFile.ParentFolder
End If
End Function
Function existsMakebat(parentfolder)
bat = true
Do until (bat = false)
makebat = parentfolder & "\make.bat"
set objFolder = objFso.GetFolder(parentfolder)
If objFso.FileExists(makebat) Then
objWshShell.CurrentDirectory = parentfolder
existsMakebat = makebat
exit function
ElseIf objFolder.IsRootFolder Then
existsMakebat = false
bat = false
exit function
Else
parentfolder = objFolder.ParentFolder
End If
loop
End Function
Function main()
parentfolder = getParentFolder
makebat = existsMakebat(parentfolder)
if makebat = false Then
msgbox "makeに失敗しました", 16, "Result"
Elseif makebat = null Then
msgbox "makeに失敗しました", 16, "Result"
Else
Set WshScriptExec = objWshShell.Exec("make.bat html")
Do While (WshScriptExec.Status = 0)
objWshShell.run "ping -n 2 localhost", 0, True
loop
objWshShell.run("_build\html\" & ExpandParameter("$g") & ".html")
msgbox WshScriptExec.StdOut.ReadAll, 64, "Result"
End If
End Function
main
Set objWshShell = nothing
Set objFso = nothing
Set objFile = nothing
Set objFolder = nothing
Set WshScriptExec = nothing
|
さ~て、明日のSphinxアドベントカレンダーは?
- 明日は @grimroseさん が 担当 です。手順書を作成した時の過程を書かれるそうです。楽しみですね!