DokuWiki

It's better when it's simple

用户工具

站点工具


zh:namespace_templates

命名空间模板

Dokuwiki 支持脚手架。有时您可能想要让某个命名空间内的页面都具有独特并且相同的页面布局。例如:在叫做 address 的命名空间内预置需要填充数据的空表格。这就可以使用“命名空间模板”轻松搞定。

当一个页面生成,DokuWiki 就会查找是否有模板文件存在,如果有就在编辑窗口内显示。模板就是包含一些维基标记的 .txt 文件.

模板文件

可用两种模板文件:

  • _template.txt,这种用于当前命名空间。
  • __template.txt (两个前置下划线),这种是与 _template.txt 的区别就是除了可用于当前命名空间外,还可用于所有命名空间(如下所述,可继承)。

如果命名空间内两种(可继承的与普通的)模板都有,则采用普通的。

创建模板文件的一种方式是

  1. 在维基中将您想要定制的模板内容保存到相关命名空间
  2. 通过 FTP 或者 WebDAV 将该页面重命名为 _template.txt,然后
  3. 就没有然后了。1)

语法

未见内容就是标准的维基标记文本。

替换模式

您可以模板文件内使用一些替换模式使模板更加动态化。

@ID@ 页面的 ID 全称
@NS@ 页面的命名空间
@CURNS@ 页面命名空间的最后部分
@!CURNS@ 同上,但是第一个字符大写
@!!CURNS@ 同上,但是所有单词的第一个字符都大写
@!CURNS!@ 同上,但是所有字符大写
@PAGE@ 页面名称(没有命名空间和被下划线取代的空格的 ID)
@!PAGE@ 同上,但是第一个字符大写
@!!PAGE@ 同上,但是所有单词的第一个字符都大写
@!PAGE!@ 同上,但是所有字符大写
@FILE@ 页面名(没有命名空间,下划线连接的 ID)
@!FILE@ 同上,但是第一个字符大写
@!FILE!@ 同上,但是所有字符大写
@USER@ 创建页面的用户 ID
@NAME@ 创建页面的用户名
@MAIL@ 创建页面的用户邮件地址
@DATE@ 会话开始的日期和时间
%a %d-%m-%y 等 例如 Thu 06-12-12. strftime 使用占位符替换的页面创建时间
%% 字面量 % 符号出现在模板里

通过维基编辑模板

您不能通过 DokuWiki 编辑 _template.txt(只有部分人可通过内置文件系统(通常是管理员可通过 FTP 系统或者 WebDAV 系统)可以编辑这些文件)。有三种方式可编辑这些文件:

  • 最容易的方式是使用 TemplatePagename 插件:可以改变默认的模板名 _template__template 为其他名字。例如:c_templatei_template。这些文件被认为是普通的可编辑维基页面,因为它们不是以下划线开头。
  • 或者通过设置符号链接

通过符号链接可编辑的模板

注意:本部分内容适用于 Linux 服务器,但是不能在 Windows 系统使用。

这种方式可以将模板存储在特定的命名空间,然后为 DokuWiki 做一个符号链接即可。您也可以删除特定的符号链接,那么模板就不能编辑了。

  1. 创建一个叫做 “templates” 的命名空间,或者叫成其他名字也可以。
  2. 在此命名空间内,创建您想要的可编辑的模板
  3. 按照上面给处的说明,将 _template.txt 做硬链接2)到正确的您的模板命名空间内的模板页面。现在您应该已经可以使用维基界面来编辑模板了。

另一种方式是在目录内创建自身符号链接。所以您可以在自己的命名空间内为 template.txt 创建一个到 _template.txt 的符号链接。

cd /var/www/html/dokuwiki/data/pages/namespace/something
ln -s _template.txt template.txt

要使这些软连接运行正常,您需要注意服务器上该目录 FollowSymLinks 参数设置。

注释:本部分内容用于 Windows 服务器,不能用于 Linux 系统。

在服务器上打开命令行窗口(cmd.exe),查看您的模板所在目录。使用 MKLINK 命令创建符号链接。

cd c:\inetpub\wiki\data\pages\namespace\something
mklink template.txt _template.txt

插件

插件可以扩展模板功能。

  • TemplatePagename 插件可以通过配置管理器改变 _template__template 的名字。默认值为 c_templatei_template。本插件可以让您将常见的维基页面变为可通过维基界面修改的模板。
  • TemplateByName 插件扩展模板的
    • ~yourpagename.txt 名字可为页面名 yourpagename (在当前命名空间内)
    • ~yournamespace.txt 用于子命名空间 yournamespace 下的所有页面
    • 以及更深层命名空间的变体以及其他一些模板(例如:起始页)。

只有通过文件系统才可编辑的所有插件。

  • NewPageTemplate 插件通过添加一个 URL 参数使所有存在的维基页面加载为模板。页面需要授权可用。
  • Snippets 插件为编辑器工具条添加一个按钮——在编辑页面的时候可以很容易地插入模板。显示模板需要在一个默认叫做 snippets 的页面列出。
  • Headerfooter 插件会在页面需要显示时添加标题文字或者页脚到页面。Plugin adds header text or footer text to pages only when they are displayed.
1)
注意:这些模板只会对命名空间内新创建的页面有效。
2)
软连接好像不行,查看下面的 FollowSymLinks 的注释
zh/namespace_templates.txt · 最后更改: 2021-05-15 05:00 由 hfl

除额外注明的地方外,本维基上的内容按下列许可协议发布: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki