====== 用表單自動新增 DW 頁面 ======
===== 工具 =====
bureaucracy plugin
action 用 template,並附:
* 範本頁路徑
* 可以是一整套 namespace!:o
* 也可以是該 namespace 原本就有的範本
* 所建頁面的位置、前綴
* 頁面名稱要引入多個其他欄位資訊時,所用的分隔符(所以頁面名稱也可以結合多個欄位的輸入資訊!:o)
action template [template] [destination] [separator]
那範本有何格式?☞ https://www.dokuwiki.org/plugin:bureaucracy#creating_templates
* 另可能也要參考 DW 內建的範本機制 FIXME
表單 FIXME:
條件式 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 這頁裡),新增下面的表單:
* 驚嘆號 ''!'' 表示該欄位非必填
* ''@'' 表示該欄位的值會被代入依 template 自動建立的頁面名稱中。在本例中,只會用到下面''頁面名稱後綴:''這欄所輸入的字串,所以到時候如果有輸入的話,頁面名稱就會變成 ''diary/某年/某月/某日-字串''
* template 後面指用 ''_'',就是使用 diary: 下找到的範本,本例就會是上面已建好的 diary:tree_template
* 頁面名稱格式:
* 如果用 ''diary:%Y:%m:%d''((日期格式依:[[https://www.php.net/manual/en/function.strftime.php|PHP: strftime - Manual]])) 就會一律是當天日期(v1 用的,但其實這不是我要的
* 如果用:''diary:@DATE(@@日期:@@,%%Y/%%m/%%d)@'',就可以順利吃到 ''日期:'' 選擇器中輸入的日期,然後自動分拆成 ''年/月/日'' 的資料夾層級,太棒了!我順利建了一個 1778/07/14「Long Live America」的推文。
後續改良:
* 條件式選擇格式是 tweet 或一般日記
* 勾選「今天」的話,直接建立 ''diary:%Y:%m:%d'',就不用選日期
↑哇,''addpage'' 只能用來選擇「額外」增加頁面,不是用來取代原本 ''action template'' 那邊新增的頁面啊
這樣做出來的表單比之前用的方法和 plugin 靈活多了,表單更完整!
也比我做成 iOS shortcut 的方式更方便!(因為 shortcut 只能逐步接受輸入內容,只要一步錯就得重來;表單的好處是都下好再離手)
{{tag>未完成}}