xyzzyからpukiwikiを検索する
ひらメソッドでソースを読んでいると、不便だったのでxyzzyからpukiwikiを検索できるようにした。
xyzzyの音 検索とxyzzy で選択範囲 (セレクション) を Google 検索を参考に.xyzzyに以下を追加する。
;pukiwiki (defun search-pukiwiki (&optional str) (interactive) (unless str (setq str (read-string "pukiwiki: "))) (long-operation (let ((url (concat "http://192.168.100.2/wiki/index.php?cmd=search&type=ANDq&word=" (si:www-url-encode str)))) ;───────────────────── ; 1. 標準ブラウザを使う場合 (shell-execute url t) ; 2. browser.dll & browserex.l を使う場合 ;(bx::navigate url) ; 3. www-mode を使う場合 ;(www-open-url url) ; 4. 指定したブラウザを使う場合 ;(call-process (concat "C:/usr/local/MozillaFirebird/MozillaFirebird.exe " url)) ;───────────────────── ))) (defun search-pukiwiki-selection () (interactive) (search-pukiwiki (if (pre-selection-p) (selection-start-end (beg end) (buffer-substring beg end)) nil))) (add-hook '*post-startup-hook* #'(lambda() (insert-menu-item *app-popup-menu* 0 nil "pukiwiki" 'search-pukiwiki-selection nil)))
pukiwikiはデフォルトだと負荷対策のためPOSTでしか検索できないので、GETで検索できるようにplugin/search.inc.phpを書き換える必要がある。
// Allow search via GET method 'index.php?plugin=search&word=keyword'
// NOTE: Also allows DoS to your site more easily by SPAMbot or worm or ...
+define('PLUGIN_SEARCH_DISABLE_GET_ACCESS', 0); // 1, 0
-define('PLUGIN_SEARCH_DISABLE_GET_ACCESS', 1); // 1, 0
<form action="$script?cmd=search" method="get"> <div> + <input type="hidden" name="cmd" value="search" /> <input type="text" name="word" value="$s_word" size="20" />
参考:pukiwikiのBugTrack
pukiwikiは1.4.7です。