JURIA @Wiki
WikiTitleViewer2.ahk
最終更新:
juria
-
view
WikiTitleViewer2.ahk
- ひとりWiki で作成した EUC-JP なページファイル名を Shift_JIS に変換して一覧表示。
- ページ(ファイル)名ダブルクリックでメニュー表示
- サーチウインドウでページ名をインクリメンタルサーチ、ページ(ファイル)名ダブルクリックまたは [ENTER] キーでメニュー表示
関連記事:@あれこれ-2009年2月
2009-02-14
- サーチウインドウでは [ENTER] キーでもメニュー表示できるようにした
2009-02-13
- サーチウインドウ表示時はメインウインドウを非表示で最小化するようにした
2009-02-12
- 第3版
; migemo.ahk の組み込み #Include %A_ScriptDir%\migemo.ahk ; ひとりwiki のデータフォルダ datadir = E:\HTML\PukiWiki ; ひとりWiki のパス htwiki = path\to\htwiki.exe ; Wiki to HTML のパスとコマンドラインオプション wiki2html = path\to\wiki2html.exe /n livedoorWiki ; Yet Another あふこまんどのパス yaafxcmd = path\to\yaafxcmd.exe ; メインリストウインドウ Gui, 1:Destroy Gui, 1:Font, , Comic Sans MS Gui, 1:Font, , M+2VM+IPAG circle ;Comic Sans MS Gui, 1:Add, ListView, x1 y1 w360 h201 -Multi AltSubmit vTitle gTitle, name|Creat Date|file Gosub list Gui, 1:Font, S8, Comic Sans MS Gui, 1:Add, Button, w60 h24 x118 y+1 Default gSearch, &Search Gui, 1:Add, Button, w60 h24 x+4 gClose, &Exit App Gui, 1:Add, StatusBar, gStatusBar SB_SetParts(40) ; ステータスバーの分割幅指定 num() ; ステータスバーにファイル総数を表示 Gui, 1:Show, x232 y205 w362 h252 Center, Wiki Title Viewer Return ; ひとりWiki のページ(ファイル)名を Shift_JIS で一覧表示 list: Loop, %datadir%\*.txt { name = %A_LoopFileFullPath% SplitPath, name , , , , str ; ファイル名を2文字ごとに分割、頭に % を付加 sj := RegExReplace(str, ".{2}", "%$0") ; nkf32.dll をロード hModule := DllCall("LoadLibrary", Str, "path\to\nkf32.dll") ; % に続く 16 進数を文字(shift_jis)に変換 DllCall("nkf32.dll\SetNkfOption", "Str", "-s --url-input") DllCall("nkf32.dll\NkfConvert", "Str", sj, "Str", sj) ; 開放 DllCall("FreeLibrary", UInt, hModule) ;作成日 filetime = %A_LoopFileTimeCreated% ; FormatTime, filetime, %filetime%, ShortDat LV_Add("" , sj, filetime, A_LoopFileName) LV_ModifyCol(1,"Sort Auto") LV_Modify(1,"Select Focus") } Return ; migemo サーチ結果表示ウインドウ Search: Gui, 1:Minimize GUI, 1:Hide Gui, 2:Destroy Gui, 2:+ToolWindow Gui, 2:Font, , Comic Sans MS Gui, 2:Add, Edit, x1 y1 vEdit gMatch w297 Gui, 2:Font, , M+2VM+IPAG circle ;Comic Sans MS Gui, 2:Add, ListView, x1 y27 w360 h201 -Multi AltSubmit vResult gResult, name|file Gui, 2:Font, , Comic Sans MS Gui, 2:Add, Button, w60 h23 x+2 y2 gSearchCancel, &Cancel ; デフォルトボタン非表示で Enter に動作割り当て Gui, 2:Add, Button, Hidden Default gButtonMenu, menu Gui, 2:Add, StatusBar, gStatusBar2 Gui,2:Default SB_SetParts(40) ; ステータスバーの分割幅指定 MigemoOpen(A_ScriptDir "\dict\migemo-dict") Gui, 2:Show, x232 y205 w362 h252 Center, Wiki Title Search Return ; migemo インクリメンタルサーチ Match: GuiControlGet, Ed,, Edit len := StrLen(Ed) MigemoSet(Ed) Gui,1:Default count := LV_GetCount() Gui,2:Default LV_Delete() GUIControl, -Redraw, Result Loop, %count% { Gui,1:Default LV_GetText(str, A_Index, 1) LV_GetText(p, A_Index, 3) name =%str% Loop, Parse , str, `n`r { if(len > 0) { ifInString, A_LoopField, %Ed% { Gui,2:Default LV_Add("" , str, p) num() } else if(MigemoMatch(A_LoopField) && len > 1) { Gui,2:Default LV_Add("" , str, p) num() } } if(len = 0) GUIControl, +Redraw, Result } } Gui,2:Default LV_ModifyCol(1,"Sort AutoHdr") LV_Modify(1,"Select Focus") GUIControl, +Redraw, Result Return ; 項目ダブルクリック Title: i := 1 Gosub, event Return Result: i := 2 Gosub, event Return event: if A_GuiEvent = DoubleClick { Gui,%i%:Default LV_GetText(line, A_EventInfo, 1) if (i = 1){ LV_GetText(filepath, A_EventInfo, 3) } else{ LV_GetText(filepath, A_EventInfo, 2) } SB_SetText(filepath, 2) menu() } ; ファイル操作メニュー menu() { global Menu, context, Add, エディタで開く(&E), editor Menu, context, Add, ひとりWikiで開く(&W), htwiki Menu, context, Add, あふで開く, afx(&A) Menu, context, Add, HTML を出力(&H), wiki2html Menu, context, Show Menu, context, DeleteAll Return editor: Run, %datadir%\%filepath% ExitApp htwiki: Run, %htwiki% %datadir%\%filepath% ExitApp afx: Run, %yaafxcmd% -p %datadir%\%filepath% ExitApp wiki2html: StringSplit, filename, filepath, . Run, %comspec% /c %wiki2html% %datadir%\%filepath% > "%datadir%\%line%.html",,HIDE ExitApp } Return ; サーチウインドウの[ENTER]に割り当て ButtonMenu: Selected := LV_GetNext(0, "F") LV_GetText(line, Selected, 1) LV_GetText(filepath, Selected, 2) SB_SetText(filepath, 2) menu() Return ; ステータスバーにファイル総数を表示 num() { global num := LV_GetCount() SB_SetText(A_Space num, 1) } StatusBar: StatusBar2: Return SearchCancel: 2GuiEscape: 2GuiClose: Gui, 2:Destroy Gui, 1:Restore Return Close: GuiEscape: GuiClose: MigemoClose() ExitApp
-
添付ファイル