本家 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ブラウザで開かれれば成功です。
マクロの中身¶
1Option Explicit
2
3Dim objWshShell
4Dim objFso
5Dim objFile
6Dim inFileName
7Dim objParentFolder
8Dim parentfolder
9Dim makebat
10Dim objFolder
11Dim bat
12Dim WshScriptExec
13
14Set objWshShell = CreateObject("WScript.Shell")
15Set objFso = CreateObject("Scripting.FileSystemObject")
16
17Function getParentFolder()
18 inFileName = ExpandParameter("$F")
19 If objFso.FileExists(inFileName) = True Then
20 Set objFile = objFso.GetFile(inFileName)
21 getParentFolder = objFile.ParentFolder
22 End If
23End Function
24
25
26Function existsMakebat(parentfolder)
27 bat = true
28 Do until (bat = false)
29 makebat = parentfolder & "\make.bat"
30 set objFolder = objFso.GetFolder(parentfolder)
31 If objFso.FileExists(makebat) Then
32 objWshShell.CurrentDirectory = parentfolder
33 existsMakebat = makebat
34 exit function
35 ElseIf objFolder.IsRootFolder Then
36 existsMakebat = false
37 bat = false
38 exit function
39 Else
40 parentfolder = objFolder.ParentFolder
41 End If
42 loop
43End Function
44
45
46Function main()
47 parentfolder = getParentFolder
48 makebat = existsMakebat(parentfolder)
49 if makebat = false Then
50 msgbox "makeに失敗しました", 16, "Result"
51 Elseif makebat = null Then
52 msgbox "makeに失敗しました", 16, "Result"
53 Else
54 Set WshScriptExec = objWshShell.Exec("make.bat html")
55 Do While (WshScriptExec.Status = 0)
56 objWshShell.run "ping -n 2 localhost", 0, True
57 loop
58 objWshShell.run("_build\html\" & ExpandParameter("$g") & ".html")
59 msgbox WshScriptExec.StdOut.ReadAll, 64, "Result"
60 End If
61End Function
62
63
64main
65
66
67Set objWshShell = nothing
68Set objFso = nothing
69Set objFile = nothing
70Set objFolder = nothing
71Set WshScriptExec = nothing
さ~て、明日のSphinxアドベントカレンダーは?¶
明日は @grimroseさん が 担当 です。手順書を作成した時の過程を書かれるそうです。楽しみですね!