開發 DokuWiki popup plugin
緣起:
實在受夠 DW 欠缺一個真正的 popup plugin 了!
用 HTML 做,也不難啊!(但看來至少一定要附 JS)
- 然後,透過 plugin:inlinejs,把範例 HTML + CSS + JS 放到任何一個 DW 頁面上,也能順利呈現啊!
- 而且我測試過了,popup 內的文字,也可以打入自訂的文字及任何 HTML 元素
那麼,就試試把它做成 plugin,大幅簡化輸入?
- 當然,比較簡單的方法,似乎是把 JS 放到 conf/userscript.js 中就可以用了26)
目標
- 簡單的輸入語法
- popup 內使用一般 DW markup 而非 HTML
- 從
getElementById
變為getElementByClassName
?
參考
- 開發 DW plugin 一般要點:
-
- pseudo-plugin
實做
20200321 準備開始。
20200322 把最基本的 CSS + JS 做成 pseudo-plugin,
搭配類似像這裡面的 HTML 標記碼(而非 DokuWiki 自身語法)
→ 最粗略的 v0.1 Release Original basic method, working · GJRobert/dokuwiki-plugin-popup
然後開始實做 syntax:拿 plugin:ruby 的 syntax.php 來改,目前想先用 [按鈕]^^泡泡內容^^
這樣的語法。
20200323 這個 commit 初步成功,但有多個要修改的問題,而且目前想用的語法似乎會和連結語法 [[...]]
衝突,可能需要改。
3/23 晚上,改成了 [^按鈕文字^]^^泡泡內容^^
然後又改用 [^按鈕文字^](^泡泡內容^)
,暫時可能會先用這個,再來可能要先處理別的問題了 ☞ Issues · GJRobert/dokuwiki-plugin-popup,我可能要想辦法做個表把這些 issue 排個優先順序
20200324 來研究 plugin:folded 的 /syntax,並參考 devel:syntax_plugins
- 看來
getType()
應該用formatting
或container
的
20200325
- 先把按鈕的 div 改為 span 試試 → inline ✅(GitHub 自動把 Issue #5 close 掉了!真神奇 )
- 如果變 inline 的話,就一定需要適當的 style 來顯示 button 了
- 突然想到,以前 TiddlyWiki 的 popup,可以設成只需 hover、不需 click ∴這次我可能也可以考慮是否要調整成不一樣的行為;樣式方面,如果只要 hover 的話,可能不一定要做成有陰影的按鈕
20200330
- 昨天承 3/24,試著開始修改
getType()
等,想解決容納其他 DW 語法的問題,但參考發現要改的甚多 ∴暫時改到一半,留在 master branch 裡 ☞ #3 1 hour ago - 語法不好啃,改改 style 總行了吧?→ 開 styles branch 並試做基本樣式,再 merge 到另兩個 branch = close 掉 #9 Proper style for button
20200331
- 再找找看其他可資參考的 plugin:
- abbr 似乎不是我要的 ∵它產生的也是 HTML <abbr> tag,裡面應該是裝不了 DW 語法
- DW 內建 footnote 功能其實挺不錯的,要是可以擴充就好了
↑嗚 好幾支 core script 要看喔,主要在 /inc/parser 裡的樣子,handler、lexer、parser、renderer、xhtml 等 .php 可能都有"@@
" - autotooltip?← 應該不行,它的 getType() 也是
substition
討論區