Dokuwiki 使用技巧整理

– 相同 Name Space 新增頁面設定預設內容方式

– 特定 Name Space 採用自己的板型設定方式

  1. 可以在 main.php 內修改 code 增加 if ($explodednamespace[0] == “namespace1”) {include tpl1.php} 這樣的方式來解決
  2. 安裝 Multitemplate for DokuWiki 來解決

實際修改 main.php 的方式(只改標題)

實際安裝 Multitemplate 程序(結果有問題)

– 清除特定頁面 Cache 方式

  1. – 在頁面網址後面加上 ?purge=true 要求將該頁面的 cache 清除掉

..

Exp. http://www.example.com/namespace/page?purge=true
  1. – 在頁面內加入 NoCache 語法(似乎沒用)

..

NoCache 語法 ~~NOCACHE~~

– 新增/異動 dokuwiki 內容頁面整合方式

– 匯出 wiki 頁面的方式

– 備份 Dokuwiki 的方式

– Dokuwiki 每頁統計點閱次數方式

以 UTF8 编码命名文件名

建议选择 safe 方式命名文件名。

经测试,以下修改源码以适应 utf-8 命名方式兼容性也不好。

// 修改\inc\pageutils.php中utf8_encodeFN、utf8_decodeFN两个函数   function utf8_encodeFN($file,$safe=true){
    global $conf;
    //if($conf['fnencode'] == 'utf-8') return $file;
  if($conf['fnencode'] == 'utf-8'){
		if(eregi('win', PHP_OS)){
			$file=mb_convert_encoding($file,"CP936","UTF-8");
		}
		return $file;
	}   if($safe && preg_match('#^[a-zA-Z0-9/_\-\.%]+$#',$file)){
        return $file;
    }   if($conf['fnencode'] == 'safe'){
        return SafeFN::encode($file);
    }   $file = urlencode($file);
    $file = str_replace('%2F','/',$file);
    return $file;
}   function utf8_decodeFN($file){
    global $conf;
    //if($conf['fnencode'] == 'utf-8') return $file;
	if($conf['fnencode'] == 'utf-8'){
		if(eregi('win', PHP_OS)){
			$file=mb_convert_encoding($file,"UTF-8","CP936");
		}
		return $file;
	}   if($conf['fnencode'] == 'safe'){
        return SafeFN::decode($file);
    }   return urldecode($file);
}

DokuWiki安装在Windows 上

安装DokuWiki服务器的要求

  • 具有PHP 支持的Web 服务器
  • 首选Apache
  • 对PHP的要求
  • 基于某些安全考虑强烈建议使用PHP 4.3.10及其以上的版本
  • 使用libGD2 的PHP’s GD 扩展 — 可选项
  • 建议运行于PHP的 Safe Mode
  • 建议运行于PHP的 register_globals=off 模式.

DokuWiki 的目录结构

dokuwiki
|-- bin
|-- conf                        ---  存放配置文件
|   |-- acl.auth.php.dist         --- acl.auth.php(ACL 控制配置文件)的默认发布 *
|   |-- acronyms.conf             --- 用于定义首字母缩写词,以便当鼠标移动到这些词时显示解释信息
|   |-- dokuwiki.php              --- DokuWiki 的主配置文件 *
|   |-- entities.conf             --- 用于定义实体字符 **
|   |-- interwiki.conf            --- 用于定义 interwiki,以便使用简单的方式书写 URL **
|   |-- local.php.dist            --- local.php(本地配置文件)的默认发布 *
|   |-- mediameta.php             --- 定义用于 media manager 的 meta data 配置 *
|   |-- mime.conf                 --- 定义 mimetypes 的配置文件 *
|   |-- msg                       --- 一个标志文件,用于判断当前版本是否为最新 *
|   |-- mysql.conf.php.example    --- mysql.conf.php(mysql 用户认证的配置文件)的默认发布 *
|   |-- smileys.conf              --- 用于定义“笑脸”的配置文件 *
|   |-- users.auth.php.dist       --- users.auth.php(文本用户认证的配置文件)的默认发布 *
|   |-- wordblock.conf            --- 用于配置不允许书写的 URL **
|   `-- words.aspell.dist         --- words.aspell(拼写检查配置文件)的默认发布 *
|-- data                        ---  存放文档数据
|   |-- attic                     ---  存放版本信息
|   |-- cache                     ---  数据缓存
|   |-- index                     ---  存放内部索引
|   |-- locks                     ---  用于存放编辑页面时的锁定文件
|   |-- media                     ---  存放图片等
|   |-- meta                      ---  存放 meta 以便系统读取这些信息生成页面
|   |-- pages                     ---  存放 wiki 页面
|   `-- tmp                       ---  临时目录
|-- inc                         ---  DokuWiki 的 Include 目录
|   |-- auth                      --- 存放不同方式的用户认证脚本
|   |-- geshi                     --- 使用 geshi 进行代码加亮显示
|   |-- lang                      --- 多语言支持
|   |   |-- en
|   |   |-- fr
|   |   |-- zh
|   |   `-- zh-tw
|   `-- parser                    --- DokuWiki 的核心解析器
`-- lib
    |-- exe
    |-- images
    |-- plugins                   ---  存放插件的目录
    |   |-- acl
    |   |-- config
    |   |-- importoldchangelog
    |   |-- info
    |   |-- plugin
    |   `-- usermanager
    |-- scripts
    |-- styles
    `-- tpl                       ---  存放模版的目录
        `-- default

DokuWiki安装在Windows

在Windows环境下要运行Dokuwki,你可以:

  • 直接下载 Apache、PHP,安装之后配置 Apache+PHP

安装步骤

  • 配置支持PHP的Web服务器
  • 下载 最新版的DokuWiki
  • 将下载文件dokuwiki-YYYY-MM-DD.tgz 解压
  • 复制内容到Web文档根目录

小贴士:

若你希望以http://wiki.mytest.net 域名访问WIKI站,将dokuwiki-YYYY-MM-DD 目录里的内容复制到Web文档根目录

若您希望以http://mytest.net/dokuwiki 域名访问WIKI站,首先将dokuwiki-YYYY-MM-DD 目录改名为dokuwiki,然后将dokuwiki目录复制到Web文档根目录

Dokuwiki安装

Dokuwiki的安装是很简单的,无需修改任何文件,只需要解压缩然后填入一些基本信息就可以了。当然,这在很大程度上和它不需要数据库有关。想想如果要MySQL,那要增加多少步骤。

下载

在官方网站下载最新的稳定版:http://www.splitbrain.org/projects/dokuwiki ,然后解压缩到你的网站目录下,比如/var/www/dokuwiki。

修改权限

修改权限以使Web服务器对文件有相应的读写权限。

  • 对于Linux系统,假设Web服务器的用户和组是www-data,那么执行

sudo chown www-data:www-data -R /var/www/dokuwiki
  • 如果是Windows的系统,可以右键打开文件夹的属性,找到“权限”选项卡,然后对Web服务器的用户组赋予相应权限。(这是XP的操作。VIsta和Win7没用过,不知道改没改)

安装

现在在浏览器中输入地址,比如http://localhost/dokuwiki ,应该可以看到Dokuwiki的界面了。如果出现错误,一般是权限有问题。不过这并不是装好了,你还没有自己的账户,也不能进行任何配置。

要真正完成安装,在浏览器中输入,比如http://localhost/dokuwiki/install.php ,这会打开安装页面。先在右上角的“Choose your language”后面的下拉列表中选择“zh”,将页面变成中文。

现在开始安装配置:

  • 维基名称:你wiki的名字,比如我的是Lainme’s Blog

  • 启用ACL(推荐):即启用权限控制,这个保持默认(选中状态)

  • 超级用户:输入超级用户的用户名

  • 全名:超级用户的全名,和上一个一样就行

  • E-Mail:超级用户的电子邮件地址

  • 密码:超级用户的密码

  • 请再输一次:再次输入密码

  • 初始的ACL政策:全局权限控制策略,在下拉列表中选择一个合适的

    • 开放的维基(任何人都有读、写、上传的权限)

    • 公开的维基(任何人都有读的权限,只有注册用户才有写和上传的权限)

    • 关闭的维基(只有注册用户才有读、写、上传的权限)

填写完成后按“保存”完成安装。现在再次进入http://localhost/dokuwiki ,可以在右下角看到有个“登录”按钮,同时标题栏也变成了你设定的网站名称。

为了安全,最好删除目录下的install.php文件。虽然Dokuwiki自身也有保护,install.php已经不能再次运行,不过还是以防万一吧。

Mantis 與 Dokuwiki 整合作法

– dokuwiki 部份

  1. 先安裝好 dokuwiki,可參考 DokuWiki安裝程序
  2. 安裝完成後的 dokuwiki 環境假設網址是 http://192.168.11.250/dokuwiki 實體路徑 /var/www/html/dokuwiki
  3. 更改 dokuwiki 系統設定檔 /var/www/html/dokuwiki/conf/local.protected.php (如果改 local.php 透過網頁介面更改就會不見)

    <?php /* for intergrating with Mantis */ define( 'MANTIS_ROOT', '/var/www/html/mantis/' ); define( 'MANTIS_URL', 'http://localhost/mantis/' ); ?>
  4. 建立 mantis 認證程式碼 /var/www/html/dokuwiki/inc/auth/mantis.class.php

    <?php /**
     * Mantis auth backend
     *
     * Uses external Trust mechanism to check against Mantis'
     * user cookie.
     *
     * @author    Victor Boctor (http://www.futureware.biz)
     */   require_once( MANTIS_ROOT . 'core.php' );   class auth_mantis extends auth_basic { /**
       * Constructor.
       *
       * Sets additional capabilities and config strings
       */ function auth_mantis(){ $this->cando['external'] = true; }   /**
       * Authenticates the user using Mantis APIs.
       */ function trustExternal($user,$pass,$sticky=false){ global $USERINFO; global $conf;   if ( auth_is_user_authenticated() ) { // okay we're logged in - set the globals $USERINFO['pass'] = current_user_get_field( 'password' ); $USERINFO['name'] = current_user_get_field( 'username' ); $USERINFO['mail'] = current_user_get_field( 'email' );   $t_project_name = getNS( getID() ); $t_project_id = project_get_id_by_name( $t_project_name ); $t_access_level = access_get_project_level( $t_project_id ); $t_access_level_string = strtoupper( get_enum_to_string( config_get( 'access_levels_enum_string' ), $t_access_level ) );   $USERINFO['grps'] = array( $t_access_level_string );   $_SERVER['REMOTE_USER'] = $USERINFO['name']; $_SESSION[$conf['title']]['auth']['user'] = $USERINFO['name']; $_SESSION[$conf['title']]['auth']['info'] = $USERINFO;   return true; }   // to be sure auth_logoff();   return false; }   /**
       * Logout from Mantis
       */ function logOff(){ auth_logout(); }   /**
       * Retrieves the user data of the user identified by                                                                                                                                                        
       * username $user. This is used, e.g., by dokuwiki's
       * email notification feature.
       */ function getUserData( $user ) { $userData = false; $mantis_uid = user_get_id_by_name( $user ); if ( $mantis_uid ) { $userData['username'] = user_get_field( $mantis_uid, 'username' ); $userData['mail'] = user_get_field( $mantis_uid, 'email' );   $t_project_name = getNS( getID() ); $t_project_id = project_get_id_by_name( $t_project_name ); $t_access_level = access_get_project_level( $t_project_id , $mantis_uid ); $t_access_level_string = strtoupper( get_enum_to_string( config_get( 'access_levels_enum_string' ), $t_access_level ) );   $userData['grps'] = array( $t_access_level_string ); }   return $userData; } } ?>
  5. 修改權限檔 /var/www/html/dokuwiki/conf/acl.auth.php

    : * @ALL 0 * @VIEWER 1 * @REPORTER 2 * @DEVELOPER 8 * @MANAGER 8 * @ADMINISTRATOR 8
  6. 增加 Mantis Syntax Plug-in /var/www/html/dokuwiki/lib/plugins/mantis/syntax.php

    mkdir /var/www/html/dokuwiki/lib/plugins/mantis
    cd /var/www/html/dokuwiki/lib/plugins/mantis
    vi syntax.php
    <?php /**
     * Mantis Plugin: Hyperlinks references to Mantis Issues
     * 
     * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
     * @author     Victor Boctor (http://www.futureware.biz)
     */  
      if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once(DOKU_PLUGIN.'syntax.php');   /**
     * A plug-in that hyper links references to Mantis issues.  References
     * to Mantis issues should use the following format: ~~Mantis:123~~.
     *
     * All DokuWiki plugins to extend the parser/rendering mechanism
     * need to inherit from this class
     */ class syntax_plugin_mantis extends DokuWiki_Syntax_Plugin {   /**
         * return some info
         */ function getInfo(){ return array( 'author' => 'Victor Boctor', 'email' => 'vboctor at users . sourceforge . net', 'date' => '2006-05-18', 'name' => 'Mantis Issues Plugin', 'desc' => 'Support References to Mantis Issues', 'url' => 'http://www.futureware.biz', ); }   /**
         * What kind of syntax are we?
         */ function getType(){ return 'substition'; # typo is intentional  }   /**
         * What about paragraphs?
         */ function getPType(){ return 'normal'; }   /**
         * Where to sort in?
         */ function getSort(){ return 156; }  
      /**
         * Connect pattern to lexer
         */ function connectTo($mode) { $this->Lexer->addSpecialPattern('~~Mantis:[0-9]+~~', $mode, 'plugin_mantis'); }  
      /**
         * Handle the match
         */ function handle($match, $state, $pos, &$handler){ $match = substr( $match, 9, -2 ); // strip "~~Mantis:" from start and "~~" from end return array( strtolower( $match ) ); }   /**
         * Create output
         */ function render($format, &$renderer, $data) { if ( $format == 'xhtml' ) { $renderer->externallink( MANTIS_URL . 'view.php?id=' . $data[0], $data[0] ); return true; } return false; } } ?>
  7. 透過 dokuwiki 原本設定介面來更動 /var/www/html/dokuwiki/conf/local.php
    1. Use access control lists → 打勾(應該已經打勾)
    2. Authentication backend → mantis(上面的步驟完成才會出現 mantis 選項)
    3. Default group → VIEWER
    4. Superuser → @ADMINISTRATOR
    5. 確認 /var/www/html/dokuwiki/conf/local.php 內應該要出現以下的設定值

      $conf['useacl'] = 1; $conf['authtype'] = 'mantis'; $conf['defaultgroup'] = 'VIEWER'; $conf['superuser'] = '@ADMINISTRATOR';
經過以上的設定,只要在 mantis 內登入, dokuwiki 也會依據 mantis 的身份權限出現在 dokuwiki 系統內

– mantis 部份

  1. Mantis 設定檔啟用 dokuwiki 整合定義 /var/www/html/mantis/config_inc.php

    : : #####################  # Wiki Integration  #####################  # Wiki Integration Enabled?  $g_wiki_enable = ON;   # Wiki Engine  $g_wiki_engine = 'dokuwiki';   # Wiki namespace to be used as root for all pages relating to this mantis installation.  $g_wiki_root_namespace = 'mantis';   # URL under which the wiki engine is hosted.  Must be on the same server.  $g_wiki_engine_url = $t_protocol . '://' . $t_host . '/%wiki_engine%/';
  2. 其餘相關檔案 /var/www/html/mantis/core/wiki_api.php、wiki_dokuwiki_api.php、html_api.php 以及 /var/www/html/mantis/wiki.php 在 1.1.1 版本已經包含在內,不需要自己額外再建立
經過這樣的設定,Mantis 的檢視 Bug 頁面就會出現 wiki 可以直接連結整合的項目 

Dokuwiki插件与主题推荐

Dokuwiki插件与主题推荐

只是一个列表和简要的功能介绍,具体使用看相关文档

主题

Vector是模仿Wikipedia/Mediawiki最新样式的主题,自定义比较能力强。另外其实Dokuwiki现在的默认主题非常不错,也很适合写博客。

如果希望自己写,可以参考这里的文档以及Dokuwiki提供的一个初始模板

插件

外观

  • wrap:几乎涵盖大多数外观、排版上的要求。

交互

  • discussion:添加评论功能,需要pagelist插件的支持。
  • disqus: 添加评论功能,使用 DISQUS 的服务。
  • avatar:使用gravatar头像,多用于评论里的头像显示
  • captcha:验证码

标签

  • tag:用标签来组织内容
  • tagentry:在编辑栏下提供所有标签的列表,方便选择
  • cloud:标签云

导航

  • indexmenu:功能强大。但我不喜欢它默认的样式,又懒得去改。
  • indexmenu2:功能也不错,相对indexmenu略微逊色点
  • pagequery:前面两个主要用于生成树状结构的导航,这个完全不一样,非常值得一看。
  • simpleindex: 生成类似内置索引的简单导航,仅适用于顶层命名空间。
  • simplenavi: 生成一个简单的导航。

其他

还有很多看起来非常不错的,例如画图、化学、图片/视频浏览等,不过自己没用过。

DokuWiki 设置

为DokuWiki添加登录功能

DokuWiki的登录功能默认是关闭的,您可以通过配置local.php,users.auth.php,acl.auth.php这三个文件来设置DokuWiki的登录功能。

具体设置方法请见下面的说明:以本机调试为例。

DokuWiki的安装

  1. 首先去wiki官方网站去下载一个最新版本。
  2. 将下回来的文件解压,并传到站点根目录下的dokuwiki1)文件夹中。
  3. 在浏览器中输入类似“www.example.com/dokuwiki/index.php”格式的网址,就可以访问wiki了。

DokuWiki的配置

DokuWiki默认的首页为Python 俱乐部页,现在首页里没有任何内容,页面也是英文的。下面我们来配置几个参数,让我们的wiki更符合我们的要求。

配置local.php 全局设置

在conf目录下,找到local.php.dist,这个文件即local.php的样本,将其复制一份,重命名为:local.php。

local.php采用utf-8编码存储,使用支持utf-8编码的文本编辑器打开,内容见下(为了查看方便,去掉了一部分注释,请仔细对照):

  • 原选项前含有“//”注释符号,若想使相应选项生效,必须去掉注释符。
$conf['title'] = 'My Wiki';              //wiki页面的标题,即页面右上方的标题。
$conf['useacl'] = 1;                     //启用ACL管理。0-不启用;1-启用。见下:
  • 使用acl权限审核。acl-Access Control Lists(访问控制列表)。有两个选项:0-关闭权限审核,1-开启权限审核。
  • 如果想添加用户登录功能,必须开启权限审核。
$conf['superuser'] = 'admin';            //超级用户(管理员)登录名。
$conf['authtype'] = 'plain';             //这里使用plain(简单)验证方式。

常用的三种登录验证方式:

  * plain-使用配置文件,conf/acl.auth.php存储用户名及密码资料。
  * ldap-使用ldap主机的用户资料来做使用者验及提供用户身份。
  * mysql-使用mysql数据库资料存储用户资料。
  //require_once ("mysql.conf.php");        //如果你不使用MySQL数据库,那么就请保持这一行的注释状态,或干脆删除该行。

接下来,根据情况,添加如下内容:

$conf['lang'] = 'zh';                    //wiki的界面语言。默认为“en”,中文请改为“zh”。
$conf['youarehere'] = 1;                 //显示you are here导航。0-不显示,1-显示。
$conf['defaultgroup'] = 'user';          //默认用户组。
$conf['htmlok'] = 1;                     //是否支持html标记。0-不支持,1-支持。
$conf['phpok'] = 0;                      //是否支持php脚本。0-不支持,1-支持。
$conf['openregister'] = '0';             //是否允许用户注册。0-不允许,1允许。

至于local.php文件配置完成。

配置acl.auth.php 权限管理

acl.auth.php中存储用户组及页面权限信息。在conf目录下,找到acl.auth.php.dist,这个文件即acl.auth.php的样本,将其复制一份,重命名为:acl.auth.php。

默认的acl.auth.php文件内容如下:

# acl.auth.php
<?php exit()?>
# Don't modify the lines above
#
# Access Control Lists
#
# Editing this file by hand shouldn't be necessary. Use the ACL
# Manager interface instead.
#
# If your auth backend allows special char like spaces in groups
# or user names you need to urlencode them (only chars <128, leave
# UTF-8 multibyte chars as is)
#
# none   0
# read   1
# edit   2
# create 4
# upload 8
# delete 16
*               @ALL        8

注意,这个权限表由下往上是相互包含的,即如果你为一个用户组设置上传权限,那么上传权限以上的权限,读取,编辑,建立等是自动添加的,一定要注意。按此编辑用户组权限如下:

  *	@admin	255                   //为admin用户组分配全部权限。255这个权限值是专为admin用户组准备。
  *	@user	8                     //为user用户组分配上传以下的权限。
  *	@ALL	1                     //为所有人,即浏览者分配读取权限。
  playground:playground	@ALL	2     //为playground:playground页面分配编辑权限。

配置users.auth.php 用户配置

users.auth.php中存储用户组及页面权限信息。在conf目录下,找到users.auth.php.dist,这个文件即users.auth.php的样本,将其复制一份,重命名为:users.auth.php。

默认的users.auth.php文件内容如下:

# users.auth.php
# <?php exit()?>
# Don't modify the lines above
#
# Userfile
#
# Format:
#
# user:MD5password:Real Name:email:groups,comma,seperated

最后一行,即user:MD5password:Real Name:email:groups,comma,seperated即添加单个用户配置的标准格式。

user                     -->用户名
md5password              -->采用md5加密的密码
real name                -->真实姓名
email                    -->电邮地址
groups                   -->用户组

各个权限项之间用:分隔。举例如下,用户名:admin,密码:admin,真实姓名:tr.c,电邮地址:tr.c@huobao0911.com,用户组admin

admin:21232f297a57a5a743894a0e4a801fc3:tr.c:tr.c@huobao0911.com:admin

生成md5编码

用记事本编辑以下文本行,存储为md5.php,在服务器上调试此文件,生成相应文本的md5编码:

<form action="" method="post" name="form1">
  <input type="text" name="textfield">
  <input type="submit" name="Submit" value="create">
</form>
<?php
echo $_POST["textfield"];
echo "<br>";
echo md5( $_POST["textfield"]);
?>

至此,DokuWiki的登录设置完成。

DokuWiki Plugin 精選

– 版面相關

– yalist

– box

<box 80% round orange|a title> the box contents</box>
<box 50% left blue>the box contents</box|a caption>
<box 60% round #f99 #fc9 #fcc #f60|title>the box contents></box|caption>
  • 呈現範例

a title

the box contents

the box contents

a caption

title

the box contents>

caption

– styler

– note

– include

– columns

– Translation

設定說明

– source

– code2

因為 code3 在中文字顯示會有太小不清楚的問題, 在短時間內我又無法調整好 style.css, 所以就直接改用這個 code2 的方案

如果對 code3 還是有興趣者, 可以點這裡參考以下是調整 code3 的處理方式(調整之後, 在 FireFox 還是會出現行距太高的問題.)

點這裡看基本語法

1|h 點這裡可看 code2 的 Sample|h

<?php # 13:09 2007/10/29 # Update by Jonathan Tsai #  require_once("twitter.conf.php");   # 設定傳入參數改以 p_ 開頭變數表示 import_request_variables('gp', 'p_');   $username = ($p_username!="")?$p_username:$username; $password = ($p_password!="")?$p_password:$password; : : ?>

– 操作功能

– rss

– addnewpage

– alphaindex

– indexmenu

– tag

– searchresults

{{search>"關鍵字" @namespace}}
{{backlinks>wiki}}

– Page Redirector

~~REDIRECT>namespace:page~~

– Folded

點這看使用說明(也用 block 方式展示)

– Select

<select 我的最愛> tech:menu|技術分享資訊 start:software:list|推薦免費軟體

http://blog.ichiayi.com|Jonathan’s Blog http://www.google.com|Google http://docs.google.com | Google Office </select>

  • 語法如下:
<select 我的最愛>
tech:menu|技術分享資訊
start:software:list|推薦免費軟體

http://blog.ichiayi.com|Jonathan's Blog
http://www.google.com|Google
http://docs.google.com | Google Office
</select>

– BookmarkMe

  • 使用說明:
    1. 安裝後預設是每頁底下都會出現這個加入書籤的工具列
    2. 透過管理選單的系統設定將 「Display social bookmarks」打勾拿掉
    3. 在需要顯示的頁面加入這語法

      ~~BOOKMARKME:on~~

  • 增加推推王黑米書籤網站說明
    1. – 編輯 lib/plugins/bookmarkme/bookmark.ini|

..

funp   http://funp.com/push/submit/add.php
hemidemi  http://www.hemidemi.com/user_bookmark/new?title=%title%&amp;url=%permalink%
  1. 將 funp 與 hemedemi 的代表小圖檔放入 lib/plugins/bookmarkme/img/ 內命名為 funp.gif 與 hemidemi.gif 2)
  2. 在 管理選單的系統設定 內「Enable bookmarking for」底下加上 funp,hemidemi 這個兩個定義名稱, 中間用“,”隔開

– Keyboard

– CAPTCHA

– 應用類型

– s5

~~SLIDESHOW~~

– Ditaa

<ditaa name=test>

+--------+     /--------\
|  Test  +---->| Test 2 |
+--------+     \--------/

</ditaa>

<ditaa name=test>

+——–+ /——–\

Test +—→ Test 2

+——–+ \——–/

</ditaa>

安裝後要修改實際 java 與 jar 路徑

– graphviz

FIXME

– contact

– poll

– AV Bar Chart

1000|A:500,B:50,C:250,D:1000

<barchart>1000|A:500,B:50,C:250,D:1000</barchart>

– doodle

<doodle [disable] [single] [login]| [id]>
^ [choice] ^ [choice] ^ ... ^
</doodle>
  • disable : 表示不可以投票(只能看結果)
  • single : 表示單選(不指定就是複選)
  • login : 使用 login name (沒有 login 只能看無法投票)

– freemind

參數說明與呈現範例

– abc

– googlemap

25.027459,121.475862,宜家男的髮藝造型

<googlemap width="300px" height="300px" lat="25.027459" lon="121.475862" type="map" zoom="16">
25.027459,121.475862,宜家男的髮藝造型
</googlemap>

– youtube

– flowplay

– mp3play

– AutoViewer

語法與範例:

– imstatus

– 系統管理

– googleanalytics

– Loglog

– Statistics

– superacl

– Bad Behaviour

– 待評估項目

DokuWiki简介及插件推荐

DokuWiki简介及插件推荐

字数476 阅读5348 评论4 喜欢3

DokuWiki简介

一个简洁的Wiki系统,使用PHP+文本数据库,安装配置都比较简单,基本符合「够用就好」原则。唯一感觉不爽的就是媒体管理器,很不顺手。

在以往的工作实践中,常用它来进行公司内部的交流与协作,有效保障了信息的沟通。

官网地址是 http://www.dokuwiki.org,有中文界面,可以在左侧选择。

安装

下载、解压,浏览器访问后提示 「Setup Error」,选择 「 run the installer」继续。

一般来说,如果权限没问题的话,就会进入到 安装工具 页面,右上角可以更改语言为简体中文。

填写名称、超级用户帐号、内容发布许可协议等信息后保存继续即可。

配置

简单说一下管理页:

  • 用户管理器:添加和管理用户
  • ACL管理器:修改用户/组对于页面和命名空间的权限
  • 插件管理器:可以在这里更改插件,支持远程下载安装
  • 配置设置:关于Dokuwiki的设置,如模版、显示等设置项,一些插件安装后的设置项也在这里

模版

也就是常说的 主题,下载后解压到 lib/tpl 目录,然后在 管理 - 配置设置 中进行选择即可。

更多的主题可以在 官网的 Extensions页 找到

插件

插件可以通过 管理 - 插件管理器 进行安装,这里介绍几个个人比较喜欢的:

  • imgpaste:在编辑器直接粘贴就可以插入剪贴板中的图片,可以用来快速上传截图。
  • Note:可以在页面中插入醒目的提示文字,有几种默认图标和样式。

dokuwiki之使用与教程

dokuwiki是个很好的WIKI,不用数据库,用文本存储数据,转移方便。

今天再次使用Dokuwiki搭建一个wiki,用于介绍法格产品,专门摆放法格锅具、法格电器、法格橱柜的信息。

发现很多用法已经忘记了,特此记录,博客一可用来表达心情,二可用来记录

dokuwiki的安装

1,用了纯粹空间的unzip.php但是没成功,不知道怎么回事,少的数目文件能解压,多文件就不能解压,难道dreamhost做了空间限制?查看后发现有很多语言文件,在inc lib目录下,点开到里面找lang目录,只保留了en zh二个目录文件,就是英文和中文,凭我这智商,能看懂这二个就不错了。用cutftp上传,成功。原来 文件太多,传到后来就出错

2,现在安装了

很简单,在目录后打入install.php,比方http://www.zjtianxiang.com/bk是我FTP上去的目录,那么安装 就在浏览器里打入http://www.zjtianxiang.com/bk/install.php.在页面右侧选择语言为:ZH,马上看见熟悉的汉字出来了,依次选择,你站点的名字,人们是否可以访问你的站点,这里我选择ACL,因为我要搭一个,一部分可以任何人访问 ,一部分只有部分用户可以访问的站点。安装完后,安全起见要删掉install.php文件.另外,这里所做选择可以在管理里面,有更详细的控制

dokuwiki做一个可控的wiki

说到控制,先要说到命名空间和页面。

命名空间代表一组页面的集合,比方饮料,下面可以包括茶、咖啡、可乐。

而具体的 绿茶,就是个页面了,比方绿茶是什么的页面

但是绿茶还可以再分的,比方龙井、毛尖,所以也可以把绿茶既做为命名空间,也做为页面,但是在wiki中写法不同。

写一个饮料的命名空间是这样的:

[[:饮料:茶]]前面一个:饮料 代表一个命名空间,茶代表一个页

[[:茶:龙井]]就是个茶的命名空间了

那为什么要去做命名空间呢?

因为当他形成一个命名空间时,可以对一个命名空间给权限,这样就起到了访问控制。

加几个用户名,把这个用户名做到一组,比方work,这样做的好处,用过linux都知道,只需对组给权限就可以了,会简单的多

管理员登录–》下面管理—》访问控制–》进入后

选择左侧刚才 做的命名空间,(注意,命名空间前面有+号,页面没有)到右侧输入组的名字,比方刚才 的work.

然后在下面会出现一个权限,越往上越大,最大是删除,一般到上传就可以了。万一删除就不好了。再点确定。

下面会有给各组的权限。

这样就有了一个别人能看主页面,work工作组能访问编辑 饮料 页面组的维基了。

以此交流。

Dokuwiki 升級方式

環境說明

  • 原本 dokuwiki 安裝的路徑為 /var/www/html/dokuwiki
  • 預計更新成 2009-02-14 的版本

確認目前版本

cd /var/www/html/dokuwiki
cat VERSION
2007-06-26b

產生新版本與原有版本差異檔

cd /tmp
mkdir WikiUpgrade
cd WikiUpgrade
wget http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2007-06-26b.tgz
wget http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2009-02-14.tgz
tar -xzf dokuwiki-2007-06-26b.tgz
tar -xzf dokuwiki-2009-02-14.tgz
diff -Naur dokuwiki-2007-06-26b dokuwiki-2009-02-14 > doku.diff

備份原本檔案與升級

備份原本檔案

cd /var/www/html
tar -cf dokuwiki.tar dokuwiki/
gzip dokuwiki.tar
  • 備份檔案就是 dokuwiki.tar.gz

測試升級

cd /var/www/html/dokuwiki
patch -p1 </tmp/WikiUpgrade/doku.diff --dry-run

正式升級

cd /var/www/html/dokuwiki
patch -p1 </tmp/WikiUpgrade/doku.diff

清除更版訊息

cd /var/www/html/dokuwiki/data/cache
echo "" > messages.txt

這樣要求升級的訊息就會消失