Author Archives: admin
DokuWiki简介及插件推荐
DokuWiki简介
一个简洁的Wiki系统,使用PHP+文本数据库,安装配置都比较简单,基本符合「够用就好」原则。唯一感觉不爽的就是媒体管理器,很不顺手。
在以往的工作实践中,常用它来进行公司内部的交流与协作,有效保障了信息的沟通。
官网地址是 http://www.dokuwiki.org,有中文界面,可以在左侧选择。
安装
下载、解压,浏览器访问后提示 「Setup Error」,选择 「 run the installer」继续。
一般来说,如果权限没问题的话,就会进入到 安装工具 页面,右上角可以更改语言为简体中文。
填写名称、超级用户帐号、内容发布许可协议等信息后保存继续即可。
配置
简单说一下管理页:
- 用户管理器:添加和管理用户
- ACL管理器:修改用户/组对于页面和命名空间的权限
- 插件管理器:可以在这里更改插件,支持远程下载安装
- 配置设置:关于Dokuwiki的设置,如模版、显示等设置项,一些插件安装后的设置项也在这里
模版
也就是常说的 主题,下载后解压到 lib/tpl 目录,然后在 管理 - 配置设置 中进行选择即可。
更多的主题可以在 官网的 Extensions页 找到
插件
插件可以通过 管理 - 插件管理器 进行安装,这里介绍几个个人比较喜欢的:
用Dokuwiki的BlogTNG插件写博客(一)
之前写过用BLOG套件写博客的,但BlogTNG在很多方面更有优势。经过较长时间的沉寂后,BlogTNG的开发再度开始,现在已经可以使用并且在很多方面超过了原有的BLOG套件。
先大概介绍下BlogTNG:
- 使用SQLite存储元数据,比如标签、评论等。文章本身仍然以Dokuwiki的文本文件形式存储
- 基本使用更为统一、简单
- 灵活性
- Feed更合理,不会在文章内容修改后重复生成Feed
- 没有评论过滤机制,需要验证码弥补
- 目前没有按时间归档功能
- 不能方便的按照分类组织内容,不是没办法,只是麻烦,不如不用
- 在国际化方面还有些混乱,不方便翻译
安装和配置
插件网址:http://www.dokuwiki.org/plugin:blogtng
需要sqlite支持,对于debian/ubuntu安装php5-sqlite
sudo aptitude install php5-sqlite
插件本身的安装和其他一样
为了防止SPAM,请务必安装验证码插件:http://www.dokuwiki.org/plugin:captcha
在管理-》配置设置-》Blogtng插件设置里有一些选项可以调节,比如:
- comments_allow_web:允许评论者填写个人网站
- comments_subscription:允许订阅评论
- comments_forbid_syntax:评论中禁止的语法插件,我全部禁止了
- send_linkbacks:自动发送linkback
注意上面的英文是每个选项的简要描述,也就是上面那行灰色的字,节约空间
基本使用
既然是基本使用,那么就不说BlogTNG的概念、结构和一些细节了,直接以例子来说明最常用的功能
首页——文章列表
<blog newform></blog> <blog list> cache 0 </blog> <blog pagination></blog>
上面第一个标签<blog newform></blog>显示一个创建新文章的表单,中间的标签显示所有文章的列表并禁用缓存,最后的标签<blog pagination></blog>显示分页
文章编辑
在首页显示的表单里写上文章标题,点击“创建”即可开始写文章了。在编辑区下面的“Tags”文本框里可以为文章指定标签,用逗号分隔
现在差不多具备一个基本博客的样子了,可以多创建几篇文章做测试。
其他常用功能
标签云和最新评论,参见我的博客侧栏。这需要特殊的主题,支持侧栏嵌入其他wiki页面的。你可以自己找这样的主题,比如 http://www.dokuwiki.org/template:arctic
以arctic主题为例
最新评论
装好后在侧栏点“sidebar”,然后创建这个页面,写入
<blog recentcomments></blog>
标签云
稍微有些麻烦……仍然编辑sidebar页面,写入
<blog tagcloud> target tagcloud </blog>
target表示点击一个标签后,用来显示文章列表的页面,这里是tagcloud。保存后可以看到标签云已经显示出来了,现在点击任何一个标签都将跳转到tagcloud页面,编辑这个页面,写入
<blog list> tags </blog> <blog pagination></blog>
其他
样式方面,除了默认的评论样式可能需要调整,其他的默认就很好。
如果你还想要更灵活的使用,可能要自己多摸索了。一者是“博客”和“模板”的概念,一者是能制作或者找到一个灵活的主题。因为BlogTNG还没最终开发完成,有些功能只能通过修改代码使用,没有相应的设置选项,模板的功能也可以通过代码里提供的函数扩充。
Dokuwiki 手动清理缓存
Dokuwiki糊里糊涂地用了一年多,前两天忽然发现整个dokuwiki文件夹大得吓人,居然有130多MB,而我这个wiki站也就不到10个的页面。巡视一圈,冗余文件集中在 data/cache 缓存文件夹中,dokuwiki靠高速缓存提高页面加载速度,不过我的缓存文件实在太多了,居然有80多MB(大概因为时间太久了吧)
那么,开删!cache文件夹是不能删的,里面的1、2、3、a、b、c什么的全删掉好了,反正删掉之后还会重建。剩下那些文件暂时不明,我查了一些外文资料:
- _dummy 似乎是一个跟版本号相关的文件
- messages.txt 似乎包含一些升级信息
- purgefile 好像是检验缓存时间的时间戳
- sitemap.xml.gz 就不说了
理论上这些文件都会在特定的时候重建的——不过我全都删了,目前只通过调整设置里的google sitemap生成时间重建了sitemap.xml.gz(缺省值是0,也就是不生成sitemap),其他文件的暂时还没见到,不过似乎也没什么问题。
Dokuwiki官方维基有一条加?purge=true参数的方法,不过那只是强制重建缓存(估计重建之后还是要冗余到一起吧)
http://www.example.com/namespace/page?purge=true
还有一条是禁用缓存,在每个页面加上
~~NOCACHE~~
这个还没试,感觉禁止缓存的方法太偏激了吧,如果只是为了太多的冗余文件那就定期删一删呗。
其实原本只是想找一个自动定期清理缓存的插件,可惜没找到,关于Dokuwiki的中文讨论实在是太少太少了啊……以上只是初心者折腾的个人经验。
DokuWiki格式语法说明
DokuWiki 支持一些简单的标记语言, 以尽最大可能使文档看上去更友好。本页面包含了所有你在编辑页面时可能用到的语法的说明。如果需要查看本页源码,只需要点击页面顶部或者底部的 编辑本页 按钮即可。
如果您是初尝Wiki,那么可以使用 Wiki砂箱 来尽情挥洒。
通过快捷按钮,您可以更方便地使用这些标记。
注:本文档由 jiayq84@gmail.com 根据DokuWiki 2005.2.6版本的语法说明翻译。
如果您发现什么问题,请您发信告知,谢谢!
基本文本格式
DokuWiki支持 粗体, 斜体, 下划线 以及 等宽体 等格式。当然,您也可以 混合使用 所有这些格式。
DokuWiki支持 **粗体**, //斜体//, __下划线__ and ''等宽体'' 等格式。 当然,您也可以 **__//''混合使用''//__** 所有这些格式。
可以使用 下标 和 上标。
可以使用 <sub>下标</sub> 和 <sup>上标</sup>。
您也可以使用 删除线 标记某些信息。
您也可以使用 <del>删除线</del> 标记某些信息。
段落 是由空行所建立的。如果您想 强制建立新行 而不建立段落,您可以使用两个连续的反斜杠+空格或是回车作为标记。请看样例:
这是一些有着换行标记的文字。
请注意反斜杠只在回车符之前
或者在
一个空格之前的时候才有效。 \\而这样就并不起作用。
这是一些有着换行标记的文字。\\ 请注意 反斜杠只在回车符之前\\ 或者在\\ 一个空格之前的时候才有效。 \\而这样就并不起作用。
请只在必须的时候才使用强制的换行标记。
链接
DokuWiki支持多种形式的链接。
外部链接
外部链接会被自动地识别: http://www.google.com 或者简单地写作 www.google.com – 当然您也可以为链接设置名字: 链接到google. 类似这样的电子邮件地址: andi@splitbrain.org 也可以被识别。
DokuWiki支持多种形式的链接。外部链接会被自动地识别: http://www.google.com 或者简单地写作 www.google.com - 当然您也可以为链接设置名字: [[http://www.google.com|链接到google]]。 类似这样的电子邮件地址: <andi@splitbrain.org> 也可以被识别。
内部链接
内部链接可以用方括号创建。您可以只给出链接的地址:wiki:pagename,也可以附加上链接的名字:我的链接。Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。
内部链接可以用方括号创建。您可以只给出链接的地址:[[pagename]], 也可以附加上链接的名字:[[pagename|我的链接]]。 Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。
您可以通过在页面名中使用冒号的方式来使用 命名空间。
您可以通过在页面名中使用冒号的方式来使用 [[wiki:namespaces|命名空间]]。
如果您需要关于命名空间(namespaces)的更详细的信息,请参见 wiki:namespaces。
您也可以链接到一个网页内部的某一节,只需要将该节书签的名称以一个#号分隔加在网页的地址后面即可。这是一个连向 本节 的链接。
这是一个连向 [[syntax#internal|本节]] 的链接。
注:
- 到 已存在页面 的链接和到 未存在页面 的链接,其外观是不同的。
- 默认情况下,DokuWiki不使用 CamelCase 来自动建立链接,(CamelCase类似于PmWiki中的WikiWord)。但是也可以在 设置文件 中启用它。 Hint: If DokuWiki is a link, then it’s enabled.
- 当一节的标题改变时,该节的书签也会改变,因此,请不要太依靠网页内的链接。
Wiki间链接
DokuWiki支持 Wiki间链接 ,即到其他wiki的链接。例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接: Wiki
DokuWiki支持 [[interwiki|Wiki间链接]] ,即到其他wiki的链接。 例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接: [[wp>Wiki]]
Windows共享文件夹
Windows共享文件夹,例如 this 也可以被识别。请注意,这只在内部 局域网 等环境中才可能被成功访问。
Windows共享文件夹,例如 [[\\server\share|this]] 也可以被识别。
注:
- 出于安全原因,只有在微软IE浏览器上才能够直接访问Windows共享文件夹。
图像链接
您也可以用图像来作为一个内部或者外部的链接,只需同时使用链接和图像的语法,如下所示:
[[http://www.php.net|{{wiki:dokuwiki-128.png}}]]
请注意:在链接名中使用语法,只有显示图像的语法会被识别,请不要使用其它语法。
脚注
您可以使用两个连续小括号来添加脚注1)。
您可以使用两个连续小括号来添加脚注((看这里,这是一个脚注))。
标题段落
您可以使用最多达5层的标题来使您的页面更富结构性。如果您使用了三个以上的标题,那么DokuWiki会自动在页面上生成一个名为“本页目录”的标题列表。当然,您也可以关闭这项特性,只需在编辑时在页面里加入 ~~NOTOC~~ 字样即可。
H3标题
H4标题
H5标题
==== H3标题 ==== === H4标题 === == H5标题 ==
您可以通过连续的4个以上“-”号来创建一条水平分割线:
图像和其它文件
您可以使用双大括号来在页面中加入 图像 。您还可以选择是否指定图像的显示大小。
原始大小: {{wiki:dokuwiki-128.png}}
指定宽度: {{wiki:dokuwiki-128.png?50}}
指定宽度和高度: {{wiki:dokuwiki-128.png?200*50}}
重新指定宽度和高度的外部图像: {{http://de3.php.net/images/php.gif?200x50}}
使用左方或者右方的空格,您可以选择对齐方式:
{{ wiki:dokuwiki-128.png}}
{{wiki:dokuwiki-128.png }}
{{ wiki:dokuwiki-128.png }}
当然,您也可以指定一个图像的名字,将鼠标移到图像上可以看到效果。
{{ wiki:dokuwiki-128.png |这是图像的名字}}
如果您指定的文件名(无论是外部的还是内部的)不是一个图像(gif,jpeg,png),那么它将被显示为一个链接。
列表
Dokuwiki支持带编号或不带编号的列表。要使用列表,在文字前加入两个空格,然后使用*标志不带编号的列表,用-标志带编号的列表。
- 列表
- 第二项
- 下一层
- 第三项
- 带编号的列表
- 第二项
- 用缩进表示更深的层
- 完了
* 列表
* 第二项
* 下一层
* 第三项
- 带编号的列表
- 第二项
- 用缩进表示更深的层
- 完了
表情符号
DokuWiki会将一些常用的 表情符号 转换为图像。除了默认的表情符号以外,您也可以在 smiley 文件夹中放入更多的表情图,然后在 conf/smileys.conf 中设置它们即可。下面是Dokuwiki包含了的表情图像:
😎
😯
🙁
🙂
=)
:-/
:-\
😕
😀
😛
:-O
:-X
😐
😉
^_^
❓
❗
LOL
FIXME
DELETEME
印刷样式
DokuWiki可以将特定字符转换为印刷时所用的样式。下面是可以识别的这类字符的列表:
→ ← ↔ ⇒ ⇐ ⇔ » « – — 640×480 © ™ ® “He thought ‘It’s a man’s world’…”
-> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r) "He thought 'It's a man's world'..."
请注意:在配置文件中可以禁用这类自动转换。
表格
DokuWiki可以用简单的语法创建表格。
标题1
标题2
标题3
(1,1)
(1,2)
(1,3)
(2,1)
展宽的单元格
(3,1)
(3,2)
(3,3)
表格的每一行都以分隔符 | (普通行)或者 ^ (标题行)作为开头和结束。
^ 标题1 ^ 标题2 ^ 标题3 ^ | (1,1) | (1,2) | (1,3) | | (2,1) | 展宽的单元格 || | (3,1) | (3,2) | (3,3) |
要水平合并单元格,只需要将后一个单元格设置为空即可,如上面演示的一样。请确保每一行有相同数量的单元格分隔符!
竖直的标题列也是可以实现的:
标题1
标题2
标题3
(1,2)
(1,3)
标题4
不再合并单元格
标题5
(2,2)
(2,3)
可以看到,单元格前面的分隔符决定了单元格的格式。
| ^ 标题1 ^ 标题2 ^ ^ 标题3 | (1,2) | (1,3) | ^ 标题4 | 不再合并单元格 | | ^ 标题5 | (2,2) | (2,3) |
注:垂直合并单元格尚未实现。
您可以对齐表格的文字。只需要添加多余两个的空格在您需要对齐的方向的反向即可:如果需要右对齐,在左边添加两个空格;反之,则在右边添加。在两边均添加空格可以实现中间对齐。
有对齐的表格
右对齐
居中
左对齐
左对齐
右对齐
居中
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
下面是源文件中的格式:
^ 有对齐的表格 ^^^ | 右对齐| 居中 |左对齐 | |左对齐 | 右对齐| 居中 | | xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
无格式区块
您可以在文章中插入无格式区块,在这些区块中Wiki语法将不起作用。可以有三种方法:在行前加两个以上的空格(前面做样例时用的方法),或者可以使用 Code 或 file 标记。
这是一段被code包围的区块,其中的空格都被保留了:像 <-这样
和code是类似的。不过您可以用这个来表示您引用了一个文件的内容。
要让Wiki语法解释完全失效,可以用 nowiki 标签包围整个区块,或者也可以简单地使用双百分号标记 %%。
这是一段完全没有Wiki语法解释的文字,例如:http://www.splitbrain.org , **粗体**,虽然按照语法书写,但是它们并没有被解释。
如何使用这些标记,请查看这一段的源文件。
语法
DokuWiki 可以将源代码作语法高亮以增加可读性。它使用称作 GeSHi 的通用语法高亮工具(Generic Syntax Highlighter)——所有被GeSHi支持的语言都可以在DokuWiki中得到高亮。使用code标记的方法和上面是类似的,不过需要指定使用的语言,例如: <code java>。
/**
* The HelloWorldApp class implements an application that
* simply displays "Hello World!" to the standard output.
*/
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //Display the string.
}
}
现在,DokuWiki可以支持的语言有: actionscript, ada, apache, asm, asp, bash, caddcl, cadlisp, c, c_mac, cpp, csharp, css, delphi, html4strict, java, javascript, lisp, lua, nsis, objc, oobas, pascal, perl, php-brief, php, python, qbasic, smarty, sql, vb, vbnet, visualfoxpro, xml
嵌入HTML和PHP
您可以使用 html 或者 php标记在文档中嵌入HTML或PHP的代码。例如:
<html> 这是 <font color="red" size="+1">HTML</font> 代码。 </html>
这是 HTML 代码。
<php> echo '由PHP生成的logo:'; echo '<img src="' . $_SERVER['PHP_SELF'] . '?=' . php_logo_guid() . '" alt="PHP Logo !" />'; </php>
echo '由PHP生成的logo:'; echo '<img src="' . $_SERVER['PHP_SELF'] . '?=' . php_logo_guid() . '" alt="PHP Logo !" />';
请注意: HTML和PHP嵌入的功能默认情况下是被禁用的,因此,您可能无法看到上面的代码运行的结果而只能够看见源代码,这取决于DokuWiki站点的设置。(?)
1) 看这里,这是一个脚注
Dokuwiki通过LDAP服务器认证
Dokuwiki通过连接LDAP服务器进行认证登;一、配置所需环境:;1、安装完成并且配置正确的LDAP服务器;2、下载并安装最新的dokuwiki,并进行安装;3、确保服务器PHP已安装LDAP扩展;二、配置Dokuwiki采用LDAP认证登陆;1、打开插件管理器;2、安装Authldap插件,勾选authlda;3、进行配置设置;4、具体配置参数;其中参
Dokuwiki通过连接LDAP服务器进行认证登陆
一、配置所需环境:
1、 安装完成并且配置正确的LDAP服务器。
2、 下载并安装最新的dokuwiki,并进行安装。
3、 确保服务器PHP已安装LDAP扩展。
二、配置Dokuwiki采用LDAP认证登陆。
1、打开插件管理器
2、安装Authldap插件,勾选authldap选项。
3、进行配置设置
4、 具体配置参数
其中参数解释:
Ldap://192.168.1.141:389 要连接认证服务器服务器的地址 ou=Wiki,dc=mofang,dc=com 要查询用户信息的dn地址 ou=Wiki,dc=mofang,dc=com 要查询用户组信息的dn地址
version=3 协议版本
(&(uid=%{user})(objectClass=posixAccount)) ① (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))② ①、② 此两项可使用默认值
5、 修改Dokuwiki登陆认证方式为authldap方式
管理员 @Manager 此用户组为LDAP服务器中的组。
至此,可以通过LDAP服务器中的用户进行验证登陆。
三、LDAP服务器端数据实例
1、LDAP服务器中目录结构
2、结构解释 Common中的test数据可以登录wiki,但是test只是普通用户。 Manager中存在两个用户admin和censor,此组中的用户为管理员,可以进行dokuwiki设置 3、数据LDIF文件 # LDIF Export for dc=mofang,dc=com
# 服务器
: My LDAP Server (127.0.0.1)
# 搜索范围: sub
# 搜索过滤器: (objectClass=*)
# 条目总数: 7
#
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on June 14, 2013 6:29 pm # Version: 1.2.3
version: 1
# 条目 1: dc=mofang,dc=com
dn: dc=mofang,dc=com
dc: mofang
description: this is a test
o: company
objectclass: dcObject
objectclass: organization
# 条目 2: ou=Wiki,dc=mofang,dc=com
dn: ou=Wiki,dc=mofang,dc=com
objectclass: organizationalUnit
objectclass: top
ou: Wiki
# 条目 3: cn=common,ou=Wiki,dc=mofang,dc=com
dn: cn=common,ou=Wiki,dc=mofang,dc=com
cn: common
gidnumber: 501
objectclass: posixGroup
objectclass: top
# 条目 4: cn=test,cn=common,ou=Wiki,dc=mofang,dc=com dn: cn=test,cn=common,ou=Wiki,dc=mofang,dc=com cn: test
gidnumber: 501
givenname: test
homedirectory: /home/users/test
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: test
uid: test
uidnumber: 1002
userpassword: {MD5}CY9rzUYh03PK3k6DJie09g==
# 条目 5: cn=Manager,ou=Wiki,dc=mofang,dc=com dn: cn=Manager,ou=Wiki,dc=mofang,dc=com
cn: Manager
gidnumber: 500
objectclass: posixGroup
objectclass: top
# 条目 6: cn=admin,cn=Manager,ou=Wiki,dc=mofang,dc=com dn: cn=admin,cn=Manager,ou=Wiki,dc=mofang,dc=com cn: admin
gidnumber: 500
givenname: admin
homedirectory: /home/users/admin
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn:admin;uid:admin;uidnumber:1000;userpassword:{MD5}ISMvKX;#条目7:cn=censor,cn=Manage;gidnumber:500;givenname:censor;homedirectory:/home/user;objectclass:inetOrgPerso;objectclass:pos
sn: admin
uid: admin
uidnumber: 1000
userpassword: {MD5}ISMvKXpXpadDiUoOSoAfww==
# 条目 7: cn=censor,cn=Manager,ou=Wiki,dc=mofang,dc=com dn: cn=censor,cn=Manager,ou=Wiki,dc=mofang,dc=com cn: censor
gidnumber: 500
givenname: censor
homedirectory: /home/users/censor
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: censor
uid: censor
uidnumber: 1001
userpassword: {MD5}idUqt4LZ2p9dxzj56Q3PxA==
用 DokuWiki 打造个人知识管理系统
因为要学的东西很多,因此这段时间一直在考虑建立一个个人知识管理系统,以便更好的梳理自已的学习内容,同时也便于分享,所以最终决定用 Wiki 的形式来打造这一项目。
# 为什么选择 Wiki 来进行知识管理?
Wiki 提供了一种很好的文档格式化功能,可以很好的建立自己的知识体系。同时 Wiki 本来就适用于知识的共享及协同合作,这样既可以分享给别人,也可以让其他的朋友来一起帮助你。
另外,在线的 Wiki 系统可以让你随时随地都能访问及更新自己的知识库,限制性比较少。所以在经过多番比较及Twitter 上许多推友的推荐后,最终选择 DokuWiki 来打造个人知识管理系统。
# 关于 DokuWiki
DokuWiki是一个用 PHP 语言编写的开源wiki引擎程序,它的特点是不需要数据库,采用文本文件直接存储、功能全面,提供丰富的插件及模版支持,简单易用,非常适合中小团队和个 人网站知识库的管理。
官方主页: http://www.dokuwiki.org
下载: http://www.splitbrain.org/projects/dokuwiki
其它一些特性:
- DokuWiki可以与多种CMS程序进行整合,例如WordPress、XOOPS、PostNuke等。
- DokuWiki的新近版本完全支持UTF-8编码保存内容,因而支持正文中的中文及多语种输入。
- 使用类似mediawiki的文本编辑,支持快捷键。支持段落编辑,能自动产生文章目录。
- wiki语法完善,自动产生条目链接,允许图片上传、外部链接等。
- 支持无限版本记录,支持彩色版本差异功能
- 支持页面锁定(只读)。通过ACL插件,还可以控制用户对页面及名字空间的访问权限
- 支持最近更新的RSS及ATOM发布
- 支持namespaces以对文章类型进行分类等等。
# 安装和使用
因为无需数据支持,所以它的安装非常简单,上传后执行根目录下的 install.php 文件就可以了,具体的使用方法可参阅这篇 ” DokuWiki 使用指南 “
# 其它
这是我用DokuWiki 打造个人知识管理系统 : http://w.riku.me/
利用 DokuWiki 编写的一篇文档:如何使用 SSH Tunnel ( 隧道 ) ? ( 注:如果你无法访问 Twitter ,也许这篇文章会对你有用。)
Dokuwiki重写url配置
最近在配置Dokuwiki,碰到url重写的问题,经过研究,过程记录如下:
默认情况下,DokuWiki不做任何的URL重写,它的原始URL是这样的: http://wiki.yes2.me/doku.php?id=page 这样默认的URL不利于有些搜索引擎不收录,而且也不易于记忆 通过设置DokuWiki的配置设置里面的高级设置的userwrite配置选项它可以支持两种URL重写方法:
一个是利用服务器的mod_rewrite,
另一个是在DokuWiki内部自己处理URL重写。
下面是userewrite选项值的列表及其对应的URL格式:
- 默认值没有URL重写 http://wiki.yes2.me/doku.php?id=wiki:syntax
- htaccess服务器处理 http://wiki.yes2.me/wiki:syntax
- DokuWiki处理 http://wiki.yes2.me/doku.php/wiki:syntax
使用服务器处理 先在/wiki/conf/dokuwiki.php中设置:
$conf[‘userewrite’] = 1;
Apache服务器开启Rewrite功能
apache的URL重写是使用mod_rewrite模块。在apache的配置文件中添加如下这行:
LoadModule rewrite_module modules/mod_rewrite.so 然后使用mod_rewrte的指令来配置URL重写规则。这些规则可以放在apache的全局配置文件内,也可以放在DokuWiki的根目录下的.htaccess文件内,事实上DokuWiki已经为了写好了这些规则放在.htaccess.dist中,修改删除部分“#”注释即可 内容如下:
RewriteEngine on
RewriteBase /
RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L]
RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L]
RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L]
RewriteRule ^$ doku.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) doku.php?id=$1 [QSA,L]
在RewriteBase / 这一行,你需要根据实际情况做修改成指向你的DokuWiki目录的路径,Dokuwik就在站点根目录或者已经使用子域名解析到相应目录时,需将.htaccess 文件中的 RewriteBase /行使用首字符“#”将其注释
Dokuwiki 侧边栏配置
Dokuwiki 侧边栏配置
默认的模版 dokuwiki,支持侧边栏。
- (1)配置里有个 sidebar 侧边栏的页面名称,这里填写 页面路径
- (2)创建这个页面。
此时,侧边栏就出来了。
当同级命名空间下有相应的侧边栏页面,则使用此页面。
相关插件
simplenavi
根据访问者权限列出所有命名空间,默认自动展开当前页面所属空间,不能折叠此空间。
命名空间页面链接自动指向:start页。
{{simplenavi>}}
可以指定起始空间:{{simplenavi>some:namespace}}
simpleindex
根据访问者权限列出所有命名空间,默认自动关闭所有命名空间。
<simpleindex> 可以指定排除的空间:<simpleindex ns1,ns2>
indexmenu
基于dtree,
navi
利用一个页面中的链接生成导航。自动根据当前页面展开命名空间。
Sidebar Template
自动加载本命名空间的sidebar页面。展示形式跟Dokuwiki的站点地图一样。
NsToC
列出指定命名空间的标题,可以指定标题的层级。场景:比如图书的目录等。
其他
pageindex,catlist, dir, nspages, pagequery
Dokuwiki插件:Wrap
Dokuwiki插件:Wrap
好久没更新了,继续写Dokuwiki的东西……
在我看来,此插件应属Dokuwiki使用中的必备用品之一,绝对值得关注。它主要扩充了排版功能,可以取代以前许多旧的插件。如果你曾经是Osmond的读者,应该对作者介绍一些诸如box、color之类的插件有印象,现在它们的功能都可以用wrap来完成。
更重要的是,用wrap,你可以轻松进行自定义
安装就不多说了,网址:http://www.dokuwiki.org/plugin:wrap
基本语法
总共有两种类型:以大写的<WRAP></WRAP>包围的生成区块元素,即<div></div>;以小写的<wrap></wrap>包围的生成行内元素,即<span></span>。
第一种:
<WRAP classes width :language> 区块元素内容 </WRAP>
第二种
<wrap classes width :language>行内元素内容</wrap>
其中classes指定元素的类(class),width给定一个宽度,language指定语言。在自定义中,最为常用的就是class了,语言一般不用考虑。
用法
说了这么多,估计你仍然不知道怎么用,我当时也不知道。幸好wrap的作者提供了非常完备有用的示例文件。把lib/plugins/wrap下面的example.txt的内容复制到一个wiki页面里就可以随时参考了。这里举几个例子
比如三栏排版
<WRAP column 30%>第一栏</WRAP> <WRAP column 30%>第二栏</WRAP> <WRAP column 30%>第三栏</WRAP>
column用来实现多栏排版,默认是左对齐的(CSS属性为float:left)。30%指定列的宽度,也可以用绝对宽度,如200px。
再如产生一个带圆角的漂亮盒子
<WRAP box 50% round></WRAP>
box和column类似,但是预定义了更多样式,默认是有背景色的。这里round指定要带圆角。
column和box有一个特殊的作用,实现对表格宽度的控制,比如占据50%的宽度(column和box中的表格默认都是100%宽度的)
<WRAP column 50%> ^表头^ |表内容| </WRAP>
再如产生一个带下载图标的圆角盒子(不少网站都用这种效果……)
<WRAP download round 200px> //**下载**// </WRAP>
自定义
非常简单,用语法
<WRAP div_test></WRAP>
就会产生代码
<div class="wrap_div_test"></div>
只需要对wrap_div_test类定义CSS就行了。
<WRAP div_test 300px></WRAP>
限定了产生的<div>块的宽度