用表單自動新增 DW 頁面
工具
bureaucracy plugin
action 用 template,並附:
- 範本頁路徑
- 可以是一整套 namespace!
- 也可以是該 namespace 原本就有的範本
- 所建頁面的位置、前綴
- 頁面名稱要引入多個其他欄位資訊時,所用的分隔符(所以頁面名稱也可以結合多個欄位的輸入資訊!)
action template [template] [destination] [separator]
那範本有何格式?☞ https://www.dokuwiki.org/plugin:bureaucracy#creating_templates
- 另可能也要參考 DW 內建的範本機制
表單 :
條件式 addpage?
參考
https://www.dokuwiki.org/plugin:bureaucracy#action_modes
實做
在 GHS 站上做一個快速新增 tweet 的表單:
我準備把日常 tweet 都放到 :diary namespace 下,所以先做個範本
範本:
==== @@標題:@@ ==== @@內文:|@@ {{tag>published @@標籤:|@@}}
- 我已經有用 templatepagename plugin 把 diary: namespace 的頁面範本改名為 tree_template 了,所以就直接先編輯 diary:tree_template
內文:|
、標籤:|
裡面的|
(pipeline),是用來讓欄位留空時,該處直接顯示空白內容(v2→3 才發現要這樣做),而不是顯示無意義的「內文:」
然後,在任何一頁(比方說就在 diary 這頁裡),新增下面的表單:
<form> action template _ diary:%Y:%m:%d - date "日期:" textbox "頁面名稱後綴:" @ ! textbox "標題:" textarea "內文:" ! textbox "標籤:" ! submit </form>
- 驚嘆號
!
表示該欄位非必填 @
表示該欄位的值會被代入依 template 自動建立的頁面名稱中。在本例中,只會用到下面頁面名稱後綴:
這欄所輸入的字串,所以到時候如果有輸入的話,頁面名稱就會變成diary/某年/某月/某日-字串
- template 後面指用
_
,就是使用 diary: 下找到的範本,本例就會是上面已建好的 diary:tree_template - 頁面名稱格式:
- 如果用
diary:%Y:%m:%d
1) 就會一律是當天日期(v1 用的,但其實這不是我要的 - 如果用:
diary:@DATE(日期:,Y/m/%%d)@
,就可以順利吃到日期:
選擇器中輸入的日期,然後自動分拆成年/月/日
的資料夾層級,太棒了!我順利建了一個 1778/07/14「Long Live America」的推文。
後續改良:
- 條件式選擇格式是 tweet 或一般日記
- 勾選「今天」的話,直接建立
diary:%Y:%m:%d
,就不用選日期
↑哇,addpage
只能用來選擇「額外」增加頁面,不是用來取代原本 action template
那邊新增的頁面啊
這樣做出來的表單比之前用的方法和 plugin 靈活多了,表單更完整!
也比我做成 iOS shortcut 的方式更方便!(因為 shortcut 只能逐步接受輸入內容,只要一步錯就得重來;表單的好處是都下好再離手)
1)
日期格式依:PHP: strftime - Manual
討論區