用表單自動新增 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 這頁裡),新增下面的表單:

<form>
action template _ diary:%Y:%m:%d -
date "日期:"
textbox "頁面名稱後綴:" @ !
textbox "標題:"
textarea "內文:" !
textbox "標籤:" !
submit
</form>
  • 驚嘆號 ! 表示該欄位非必填
  • @ 表示該欄位的值會被代入依 template 自動建立的頁面名稱中。在本例中,只會用到下面頁面名稱後綴:這欄所輸入的字串,所以到時候如果有輸入的話,頁面名稱就會變成 diary/某年/某月/某日-字串
  • template 後面指用 _,就是使用 diary: 下找到的範本,本例就會是上面已建好的 diary:tree_template
  • 頁面名稱格式:
    • 如果用 diary:%Y:%m:%d1) 就會一律是當天日期(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
輸入您的意見. 允許使用維基語法:
U O N E M
 
  • 上一次變更: 2020/09/01 01:20
  • (外部編輯)