如何更改dokuwiki 插件上的title的小图标

支持一些简单的标记语言, 以尽最大可能使文档看上去更友好。本页面包含了所有你在编辑页面时可能用到的语法的说明。如果需要查看本页源码,只需要点击页面顶部或者底部的 编辑本页 按钮即可。
如果您是初尝Wiki,那么可以使用
来尽情挥洒。
通过,您可以更方便地使用这些标记。
注:本文档由
根据DokuWiki 版本的语法说明翻译。
如果您发现什么问题,请您发信告知,谢谢!
DokuWiki支持 粗体, 斜体, 下划线 以及 等宽体 等格式。当然,您也可以 混合使用 所有这些格式。
DokuWiki支持 **粗体**, //斜体//, __下划线__ and ''等宽体'' 等格式。
当然,您也可以 **__//''混合使用''//__** 所有这些格式。
可以使用 下标 和 上标。
可以使用 &sub&下标&/sub& 和 &sup&上标&/sup&。
您也可以使用 删除线 标记某些信息。
您也可以使用 &del&删除线&/del& 标记某些信息。
段落 是由空行所建立的。如果您想 强制建立新行 而不建立段落,您可以使用两个连续的反斜杠+空格或是回车作为标记。请看样例:
这是一些有着换行标记的文字。
反斜杠只在回车符之前
一个空格之前的时候才有效。 \\而这样就并不起作用。
这是一些有着换行标记的文字。\\ 请注意
反斜杠只在回车符之前\\
或者在\\ 一个空格之前的时候才有效。 \\而这样就并不起作用。
请只在必须的时候才使用强制的换行标记。
DokuWiki支持多种形式的链接。
外部链接会被自动地识别:
或者简单地写作
- 当然您也可以为链接设置名字: . 类似这样的电子邮件地址:
也可以被识别。
DokuWiki支持多种形式的链接。外部链接会被自动地识别:
或者简单地写作
- 当然您也可以为链接设置名字: [[|链接到google]]。
类似这样的电子邮件地址: &andi@splitbrain.org& 也可以被识别。
内部链接可以用方括号创建。您可以只给出链接的地址:,也可以附加上链接的名字:。Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。
内部链接可以用方括号创建。您可以只给出链接的地址:[[pagename]],
也可以附加上链接的名字:[[pagename|我的链接]]。
Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。
您可以通过在页面名中使用冒号的方式来使用 。
您可以通过在页面名中使用冒号的方式来使用 [[wiki:namespaces|命名空间]]。
如果您需要关于命名空间(namespaces)的更详细的信息,请参见 。
您也可以链接到一个网页内部的某一节,只需要将该节书签的名称以一个#号分隔加在网页的地址后面即可。这是一个连向
这是一个连向 [[syntax#internal|本节]] 的链接。
的链接和到
的链接,其外观是不同的。
默认情况下,DokuWiki不使用
来自动建立链接,(CamelCase类似于PmWiki中的WikiWord)。但是也可以在
中启用它。 Hint: If DokuWiki is a link, then it's enabled.
当一节的标题改变时,该节的书签也会改变,因此,请不要太依靠网页内的链接。
DokuWiki支持
,即到其他wiki的链接。例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接:
DokuWiki支持 [[interwiki|Wiki间链接]] ,即到其他wiki的链接。
例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接: [[wp&Wiki]]
Windows共享文件夹,例如
也可以被识别。请注意,这只在内部
等环境中才可能被成功访问。
Windows共享文件夹,例如 [[\\server\share|this]] 也可以被识别。
出于安全原因,只有在微软IE浏览器上才能够直接访问Windows共享文件夹。
您也可以用图像来作为一个内部或者外部的链接,只需同时使用链接和图像的语法,如下所示:
[[http://www.php.net|{{wiki:dokuwiki-128.png}}]]
请注意:在链接名中使用语法,只有显示图像的语法会被识别,请不要使用其它语法。
您可以使用两个连续小括号来添加脚注。
您可以使用两个连续小括号来添加脚注((看这里,这是一个脚注))。
您可以使用最多达5层的标题来使您的页面更富结构性。如果您使用了三个以上的标题,那么DokuWiki会自动在页面上生成一个名为“本页目录”的标题列表。当然,您也可以关闭这项特性,只需在编辑时在页面里加入 ~~NOTOC~~ 字样即可。
==== 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包含了的表情图像:
可以将特定字符转换为印刷时所用的样式。下面是可以识别的这类字符的列表:
>> << – — 640&480 (C) (TM) (R)
“He thought &#039;It&#039;s a man&#039;s world&#039;…”
-& &- &-& =& &= &=& && && -- --- 640x480 (c) (tm) (r)
&He thought &#039;It&#039;s a man&#039;s world&#039;...&
请注意:在配置文件中可以禁用这类自动转换。
DokuWiki可以用简单的语法创建表格。
展宽的单元格
表格的每一行都以分隔符 | (普通行)或者 ^ (标题行)作为开头和结束。
| 展宽的单元格
要水平合并单元格,只需要将后一个单元格设置为空即可,如上面演示的一样。请确保每一行有相同数量的单元格分隔符!
竖直的标题列也是可以实现的:
不再合并单元格
可以看到,单元格前面的分隔符决定了单元格的格式。
| 不再合并单元格 |
注:垂直合并单元格尚未实现。
您可以对齐表格的文字。只需要添加多余两个的空格在您需要对齐的方向的反向即可:如果需要右对齐,在左边添加两个空格;反之,则在右边添加。在两边均添加空格可以实现中间对齐。
有对齐的表格
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
下面是源文件中的格式:
有对齐的表格
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
您可以在文章中插入无格式区块,在这些区块中Wiki语法将不起作用。可以有三种方法:在行前加两个以上的空格(前面做样例时用的方法),或者可以使用 Code 或 file 标记。
这是一段被code包围的区块,其中的空格都被保留了:像
和code是类似的。不过您可以用这个来表示您引用了一个文件的内容。
要让Wiki语法解释完全失效,可以用 nowiki 标签包围整个区块,或者也可以简单地使用双百分号标记 %%。
这是一段完全没有Wiki语法解释的文字,例如:http://www.splitbrain.org , **粗体**,虽然按照语法书写,但是它们并没有被解释。
如何使用这些标记,请查看这一段的源文件。
可以将源代码作语法高亮以增加可读性。它使用称作
的通用语法高亮工具(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 &#123;
public static void main&#40;&#91;&#93; args&#41; &#123;
.out.println&#40;&Hello World!&&#41;; //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的代码。例如:
这是 &font color=&red& size=&+1&&HTML&/font& 代码。
这是 HTML 代码。
echo &#039;由PHP生成的logo:&#039;;
echo &#039;&img src=&&#039; . $_SERVER[&#039;PHP_SELF&#039;] . &#039;?=&#039; . php_logo_guid() . &#039;& alt=&PHP Logo !& /&&#039;;
'由PHP生成的logo:';
'&img src=&' . $_SERVER&#91;'PHP_SELF'&#93; . '?=' . &#40;&#41; . '& alt=&PHP Logo !& /&';
请注意: HTML和PHP嵌入的功能默认情况下是被禁用的,因此,您可能无法看到上面的代码运行的结果而只能够看见源代码,这取决于DokuWiki站点的设置。(?)
wiki/syntax.txt & 最后更改:
00:13 由 xiaole
除额外注明的地方外,本维基上的内容按下列许可协议发布:支持一些简单的标记语言, 以尽最大可能使文档看上去更友好。本页面包含了所有你在编辑页面时可能用到的语法的说明。如果需要查看本页源码,只需要点击页面顶部或者底部的 编辑本页 按钮即可。
如果您是初尝Wiki,那么可以使用
来尽情挥洒。
通过,您可以更方便地使用这些标记。
注:本文档由
根据DokuWiki 版本的语法说明翻译。
如果您发现什么问题,请您发信告知,谢谢!
DokuWiki支持 粗体, 斜体, 下划线 以及 等宽体 等格式。当然,您也可以 混合使用 所有这些格式。
DokuWiki支持 **粗体**, //斜体//, __下划线__ and &#039;&#039;等宽体&#039;&#039; 等格式。
当然,您也可以 **__//&#039;&#039;混合使用&#039;&#039;//__** 所有这些格式。
可以使用 下标 和 上标。
可以使用 &sub&下标&/sub& 和 &sup&上标&/sup&。
您也可以使用 删除线 标记某些信息。
您也可以使用 &del&删除线&/del& 标记某些信息。
段落 是由空行所建立的。如果您想 强制建立新行 而不建立段落,您可以使用两个连续的反斜杠+空格或是回车作为标记。请看样例:
这是一些有着换行标记的文字。
反斜杠只在回车符之前
一个空格之前的时候才有效。 \\而这样就并不起作用。
这是一些有着换行标记的文字。\\ 请注意
反斜杠只在回车符之前\\
或者在\\ 一个空格之前的时候才有效。 \\而这样就并不起作用。
请只在必须的时候才使用强制的换行标记。
DokuWiki支持多种形式的链接。
外部链接会被自动地识别:
或者简单地写作
- 当然您也可以为链接设置名字: . 类似这样的电子邮件地址:
也可以被识别。
DokuWiki支持多种形式的链接。外部链接会被自动地识别:
或者简单地写作
- 当然您也可以为链接设置名字: [[|链接到google]]。
类似这样的电子邮件地址: &andi@splitbrain.org& 也可以被识别。
内部链接可以用方括号创建。您可以只给出链接的地址:,也可以附加上链接的名字:。Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。
内部链接可以用方括号创建。您可以只给出链接的地址:[[pagename]],
也可以附加上链接的名字:[[pagename|我的链接]]。
Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。
您可以通过在页面名中使用冒号的方式来使用 。
您可以通过在页面名中使用冒号的方式来使用 [[wiki:namespaces|命名空间]]。
如果您需要关于命名空间(namespaces)的更详细的信息,请参见 。
您也可以链接到一个网页内部的某一节,只需要将该节书签的名称以一个#号分隔加在网页的地址后面即可。这是一个连向
这是一个连向 [[syntax#internal|本节]] 的链接。
的链接和到
的链接,其外观是不同的。
默认情况下,DokuWiki不使用
来自动建立链接,(CamelCase类似于PmWiki中的WikiWord)。但是也可以在
中启用它。 Hint: If DokuWiki is a link, then it&#039;s enabled.
当一节的标题改变时,该节的书签也会改变,因此,请不要太依靠网页内的链接。
DokuWiki支持
,即到其他wiki的链接。例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接:
DokuWiki支持 [[interwiki|Wiki间链接]] ,即到其他wiki的链接。
例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接: [[wp&Wiki]]
Windows共享文件夹,例如
也可以被识别。请注意,这只在内部
等环境中才可能被成功访问。
Windows共享文件夹,例如 [[\\server\share|this]] 也可以被识别。
出于安全原因,只有在微软IE浏览器上才能够直接访问Windows共享文件夹。
您也可以用图像来作为一个内部或者外部的链接,只需同时使用链接和图像的语法,如下所示:
[[http://www.php.net|{{wiki:dokuwiki-128.png}}]]
请注意:在链接名中使用语法,只有显示图像的语法会被识别,请不要使用其它语法。
您可以使用两个连续小括号来添加脚注。
您可以使用两个连续小括号来添加脚注((看这里,这是一个脚注))。
您可以使用最多达5层的标题来使您的页面更富结构性。如果您使用了三个以上的标题,那么DokuWiki会自动在页面上生成一个名为“本页目录”的标题列表。当然,您也可以关闭这项特性,只需在编辑时在页面里加入 ~~NOTOC~~ 字样即可。
==== 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包含了的表情图像:
可以将特定字符转换为印刷时所用的样式。下面是可以识别的这类字符的列表:
>> << – — 640&480 (C) (TM) (R)
“He thought &#039;It&#039;s a man&#039;s world&#039;…”
-& &- &-& =& &= &=& && && -- --- 640x480 (c) (tm) (r)
&He thought &#039;It&#039;s a man&#039;s world&#039;...&
请注意:在配置文件中可以禁用这类自动转换。
DokuWiki可以用简单的语法创建表格。
展宽的单元格
表格的每一行都以分隔符 | (普通行)或者 ^ (标题行)作为开头和结束。
| 展宽的单元格
要水平合并单元格,只需要将后一个单元格设置为空即可,如上面演示的一样。请确保每一行有相同数量的单元格分隔符!
竖直的标题列也是可以实现的:
不再合并单元格
可以看到,单元格前面的分隔符决定了单元格的格式。
| 不再合并单元格 |
注:垂直合并单元格尚未实现。
您可以对齐表格的文字。只需要添加多余两个的空格在您需要对齐的方向的反向即可:如果需要右对齐,在左边添加两个空格;反之,则在右边添加。在两边均添加空格可以实现中间对齐。
有对齐的表格
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
下面是源文件中的格式:
有对齐的表格
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
您可以在文章中插入无格式区块,在这些区块中Wiki语法将不起作用。可以有三种方法:在行前加两个以上的空格(前面做样例时用的方法),或者可以使用 Code 或 file 标记。
这是一段被code包围的区块,其中的空格都被保留了:像
和code是类似的。不过您可以用这个来表示您引用了一个文件的内容。
要让Wiki语法解释完全失效,可以用 nowiki 标签包围整个区块,或者也可以简单地使用双百分号标记 %%。
这是一段完全没有Wiki语法解释的文字,例如:http://www.splitbrain.org , **粗体**,虽然按照语法书写,但是它们并没有被解释。
如何使用这些标记,请查看这一段的源文件。
可以将源代码作语法高亮以增加可读性。它使用称作
的通用语法高亮工具(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 &#123;
public static void main&#40;&#91;&#93; args&#41; &#123;
.out.println&#40;&Hello World!&&#41;; //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的代码。例如:
这是 &font color=&red& size=&+1&&HTML&/font& 代码。
这是 HTML 代码。
echo &#039;由PHP生成的logo:&#039;;
echo &#039;&img src=&&#039; . $_SERVER[&#039;PHP_SELF&#039;] . &#039;?=&#039; . php_logo_guid() . &#039;& alt=&PHP Logo !& /&&#039;;
'由PHP生成的logo:';
'&img src=&' . $_SERVER&#91;'PHP_SELF'&#93; . '?=' . &#40;&#41; . '& alt=&PHP Logo !& /&';
请注意: HTML和PHP嵌入的功能默认情况下是被禁用的,因此,您可能无法看到上面的代码运行的结果而只能够看见源代码,这取决于DokuWiki站点的设置。(?)
&m&S(f)(t)=a_{0}+sum{n=1}{+infty}{a_{n} cos(n omega t)+b_{n} sin(n omega t)}&/m&
&m 16&delim{lbrace}{matrix{3}{1}{{3x-5y+z=0} {sqrt{2}x-7y+8z=0} {x-8y+9z=0}}}{ }&/m&
&m 32&delim{|}{{1/N} sum{n=1}{N}{gamma(u_n)} - 1/{2 pi} int{0}{2 pi}{gamma(t) dt}}{|} &= epsilon/3&/m&
&m 16&delim{|}{matrix{2}{2} {{1,1} {1,2} {2,1} {2,2}}}{|}&/m&
&m 16&delim{lbrace}{matrix{3}{3} {{1} {2} {3} {4} {5} {6} {7} {8} {9}}}{rbrace}&/m&
&m 24&J_T ∝ V_T e^{-A sqrt{Φ}s}&/m&
<img src="http://phylab./lib/exe/fetch.php?w=&h=&cache=cache&media=cache_mathplugin%3amath_922.5_ddd2db02ee50.png" style="vertical-align:-77.5 display: inline-" alt="delim{|}{{1/N} sum{n=1}{N}{gamma(u_n)} - 1/{2 pi} int{0}{2 pi}{gamma(t) dt}}{|} <= epsilon/3" title="delim{|}{{1/N} sum{n=1}{N}{gamma(u_n)} - 1/{2 pi} int{0}{2 pi}{gamma(t) dt}}{|}
howtos/trainning/playground.txt & 最后更改:
12:52 由 whyx
除额外注明的地方外,本维基上的内容按下列许可协议发布:15585人阅读
Dokuwiki编辑器问题
1:Dokuwiki环境搭建
1.1:Dokuwiki自带安装文件
安装文件入口:/install.php
界面安装很方便
1.2:Dokuwiki自带zh-cn包
2:直接拷贝图片到编辑器
2.1:自带编辑器介绍
自带编辑器不支持所见所得,依靠一些标签来建立目录和页面排榜,尽管标签很强大,但是对于初学者或者不熟悉的人来说,比较麻烦.
2.2:更换流程及需求分析思考
思考: 要将编辑器改为所见所得,那么就两种方法,修改原先的编辑器或者更换编辑器.
2.2.1:去网上插件模板找找,是否存在这样的编辑器
2.2.2:更换为其他编辑器
2.2.3:修改原先的编辑器
我去网上找了,界面的插件倒确实不少,甚至有把FCK作为插件整合进来的,但是依然缺少一个功能就是将图片拷贝到编辑器里.
如果是自己编写这样的编辑器,显然代价太高最终决定是更换编辑器
2.3:更换编辑器为xheditor
2.3.1:将xheditor下载下来,并放入dokuwiki目录下的/lib文件夹下,新建一个目录叫xheditor-1.1.14(目前最新版本为1.1.14)
2.3.2:替换/inc/form.php里的函数form_wikitext(attrs)
function form_wikitext($attrs) {
// mandatory attributes
unset($attrs['name']);
unset($attrs['id']);
return '&textarea name=&wikitext& id=&wiki__text& '
.buildAttributes($attrs,true).'&'.DOKU_LF
.formText($attrs['_text'])
.'&/textarea&';
function form_wikitext($attrs) {
// mandatory attributes
unset($attrs['name']);
unset($attrs['id']);
return '&textarea id=&elm1& rows=&15& cols=&80& style=&width:100%& name=&wikitext&&'.DOKU_LF
.formText($attrs['_text'])
.'&/textarea&';
即:采用xheditor编辑器.
2.3.3:在/lib/tpl/dokuwiki/main.php添加xheditor包
&script type=&text/javascript& src=&&?php echo DOKU_BASE;?&lib/xheditor-1.1.14/xheditor-1.1.14-zh-cn.min.js&&&/script&
2.3.4.在/inc/parser/xhtml.php里更改cdata函数
function cdata($text) {
$this-&doc .= $this-&_xmlEntities($text);
}替换程序:
function cdata($text) {
$this-&doc.=$
替换原因是:因为以前是纯字符编辑器,会将一些特殊符号进行过滤,比如:&&等等.而替换之后的xheditor本身已经做了一次过滤了,再次过滤就会导致字符&变成&lt,因此去掉这段之后,就只过滤一次
2.3.5.添加js代码
$(function(){
$('#elm1').xheditor({
localUrlTest:/^https?:\/\/[^\/]*?(xheditor\.com)\//i,
remoteImgSaveUrl:'&?php echo DOKU_BASE;?&lib/xheditor1-saveremoteimg.php?prefix=&?php echo DOKU_BASE;?&'
配置php后台上传路径
2.3.6:配置php截图上传代码:
/lib/xheditor-1.1.14/demos/saveremoteimg.php.在文件底部修改代码:
for($i=0;$i&$urlC$i++){
$localUrl=saveRemoteImg($arrUrls[$i]);
if($localUrl)$arrUrls[$i]=$localU
echo implode('|',$arrUrls);
for($i=0;$i&$urlC$i++){
$localUrl=saveRemoteImg($arrUrls[$i]);
if($localUrl)$arrUrls[$i]=$localU
foreach($arrUrls as $key=&$vo){
$arrUrls[$key]=$_GET['prefix'].'lib/xheditor-1.1.14/demos/'.$
echo implode('|',$arrUrls);
2.3.7:将上传的图片去掉多余的”符号
图片上传,发布之后.在调用图片时,会多一个中文”符号,需要修改语言包/inc/lang/zh/lang.php
$lang['doublequoteopening'] = '“';
$lang['doublequoteclosing'] = '”';
$lang['doublequoteopening'] = '';
$lang['doublequoteclosing'] = '';
3:编辑器新加插入代码功能
3.1:/lib/tpl/dokuwiki/main.php更新js代码
同之前的上传整合起来:
&script type=&text/javascript&&
jQuery(pageInit);
function pageInit()
var allPlugin={
Code:{c:'btnCode',t:'插入代码',h:1,e:function(){
var _this=
var htmlCode='&div&&select id=&xheCodeType&&&option value=&html&&HTML/XML&/option&&option value=&js&&Javascript&/option&&option value=&css&&CSS&/option&&option value=&php&&PHP&/option&&option value=&java&&Java&/option&&option value=&py&&Python&/option&&option value=&pl&&Perl&/option&&option value=&rb&&Ruby&/option&&option value=&cs&&C#&/option&&option value=&c&&C++/C&/option&&option value=&vb&&VB/ASP&/option&&option value=&&&其它&/option&&/select&&/div&&div&&textarea id=&xheCodeValue& wrap=&soft& spellcheck=&false& style=&width:300height:100& /&&/div&&div style=&text-align:&&&input type=&button& id=&xheSave& value=&确定& /&&/div&';
var jCode=jQuery(htmlCode),jType=jQuery('#xheCodeType',jCode),jValue=jQuery('#xheCodeValue',jCode),jSave=jQuery('#xheSave',jCode);
jSave.click(function(){
_this.loadBookmark();
_this.pasteHTML('&pre class=&prettyprint lang-'+jType.val()+'&&'+_this.domEncode(jValue.val())+'&/pre&');
_this.hidePanel();
_this.saveBookmark();
_this.showDialog(jCode);
editor=jQuery('#elm1').xheditor({
plugins:allPlugin,
tools:'Cut,Copy,Paste,Pastetext,|,Blocktag,Fontface,FontSize,Bold,Italic,Underline,Strikethrough,FontColor,BackColor,SelectAll,Removeformat,|,Align,List,Outdent,Indent,|,Link,Unlink,Anchor,Img,Flash,Media,Hr,Emot,Table,|,Source,Print,Fullscreen,Code',
loadCSS:'&style&pre{margin-left:2border-left:3px solid #CCC;padding:0 1}&/style&',
localUrlTest:/^https?:\/\/[^\/]*?(xheditor\.com)\//i,
remoteImgSaveUrl:'lib/xheditor-1.1.14/demos/saveremoteimg.php?prefix=&?php echo DOKU_BASE;?&',
upLinkUrl:&&?php echo DOKU_BASE;?&lib/xheditor-1.1.14/demos/upload.php?immediate=1&prefix=&?php echo DOKU_BASE;?&&,
upLinkExt:&zip,rar,txt&,
upImgUrl:&&?php echo DOKU_BASE;?&lib/xheditor-1.1.14/demos/upload.php?immediate=1&prefix=&?php echo DOKU_BASE;?&&,
upImgExt:&jpg,jpeg,gif,png&,
upFlashUrl:&&?php echo DOKU_BASE;?&lib/xheditor-1.1.14/demos/upload.php?immediate=1&prefix=&?php echo DOKU_BASE;?&&,
upFlashExt:&swf&,
upMediaUrl:&&?php echo DOKU_BASE;?&lib/xheditor-1.1.14/demos/upload.php?immediate=1&prefix=&?php echo DOKU_BASE;?&&,
upMediaExt:&wmv,avi,wma,mp3,mid&
3.2加入css和图片
3.2.1:css因为只有一句话,只是为了新增”插入代码”功能的一个小图标而来,因此,可以选择把这个css插入其他css里,而不必新建一个文件.我选择插入的css是:/lib/ style/screen.css:新增css:.btnCode {
background:transparent url(../images/code.gif) no-repeat 16px 16
background-position:2px 2}
3.2.2:将小图标 按照css添加路径放入对应css同级目录下的images文件夹内,作为插件插入代码的小图标.
4:编辑器代码高亮功能
4.1:引入google插件prettify.js插件
在/lib/tpl/dokuwiki/main.php里引入prettify.js和对应的css
&script type=&text/javascript& src=&&?php echo DOKU_BASE;?&lib/xheditor-1.1.14/demos/prettify/prettify.js&&&/script&
&link href=&&?php echo DOKU_BASE;?&lib/xheditor-1.1.14/demos/prettify/prettify.css& type=&text/css& rel=&stylesheet&&
4.2:调用prettify.js
这里需要注意,调用prettify.js需要放在xheditor编辑器textarea的后面,放前面会无效.
新增js代码:
&?php tpl_content() ?&
&script type=&text/javascript&&prettyPrint();&/script&
4.3:修改css文件
引入代码高亮插件后,&pre&标签在dokuwiki下,会嵌套,导致样式会出现两个边框.
在prettify.css最后面,新增css
新增css文件:
pre pre{box-shadow:border:0margin:0;padding:0;}
span{font-style:}
4.4:修改”/”符号出现
原本的dokuwiki里,文本会过滤掉/符号(这个我试过了,即便是最原始的安装好dokuwiki后,在编辑器里只要存在”/”符号,都会被过滤掉.根据wiki语法文档,/会被认为是字体斜体的标志)
而我们的代码里,经常会出现”//”代表注释,因此,需要修改dokuwiki代码.
修改文件/inc/parser/lexer.php:
function split($subject, &$split) {
if (count($this-&_patterns) == 0) {
if (! preg_match($this-&_getCompoundedRegex(), $subject, $matches)) {
if(function_exists('preg_last_error')){
$err = preg_last_error();
switch($err){
case PREG_BACKTRACK_LIMIT_ERROR:
msg('A PCRE backtrack error occured. Try to increase the pcre.backtrack_limit in php.ini',-1);
case PREG_RECURSION_LIMIT_ERROR:
msg('A PCRE recursion error occured. Try to increase the pcre.recursion_limit in php.ini',-1);
case PREG_BAD_UTF8_ERROR:
msg('A PCRE UTF-8 error occured. This might be caused by a faulty plugin',-1);
case PREG_INTERNAL_ERROR:
msg('A PCRE internal error occured. This might be caused by a faulty plugin',-1);
$split = array($subject, &&, &&);
$idx = count($matches)-2;
list($pre, $post) = preg_split($this-&_patterns[$idx].$this-&_getPerlMatchingFlags(), $subject, 2);
$split = array($pre, $matches[0], $post);
return isset($this-&_labels[$idx]) ? $this-&_labels[$idx] :
function split($subject, &$split) {
if (count($this-&_patterns) == 0) {
if (! preg_match($this-&_getCompoundedRegex(), $subject, $matches)) {
if(function_exists('preg_last_error')){
$err = preg_last_error();
switch($err){
case PREG_BACKTRACK_LIMIT_ERROR:
msg('A PCRE backtrack error occured. Try to increase the pcre.backtrack_limit in php.ini',-1);
case PREG_RECURSION_LIMIT_ERROR:
msg('A PCRE recursion error occured. Try to increase the pcre.recursion_limit in php.ini',-1);
case PREG_BAD_UTF8_ERROR:
msg('A PCRE UTF-8 error occured. This might be caused by a faulty plugin',-1);
case PREG_INTERNAL_ERROR:
msg('A PCRE internal error occured. This might be caused by a faulty plugin',-1);
$split = array($subject, &&, &&);
$idx = count($matches)-2;
list($pre, $post) = preg_split($this-&_patterns[$idx].$this-&_getPerlMatchingFlags(), $subject, 2);
if(substr($this-&_patterns[$idx].$this-&_getPerlMatchingFlags(),0,5)=='(\/\/'){
$pre='//'.$
$split = array($pre, $matches[0], $post);
return isset($this-&_labels[$idx]) ? $this-&_labels[$idx] :
这一步只是会把/不解析,但是仍然会转换为斜体,在修改文件/Inc/parser/xhtml.php:
function emphasis_open() {
$this-&doc .= '&em&';
function emphasis_close() {
$this-&doc .= '&/em&';
function emphasis_open() {
//$this-&doc .= '&em&';
function emphasis_close() {
//$this-&doc .= '&/em&';
这个&em&标签就是斜体,会默认将/和/之间的字符都带上这个,把这个给注释掉.OK.解决
5:效果显示图:
4.1:插入代码:
4.1.1:插入界面
4.1.2:插入整体效果图
4.1.3:发布之后效果图
4.2:截图拷贝:
4.2.1:随意截图
4.2.2:发布效果
5.1:一款好的内容查询是多么的重要,因为有的时候是使用call_user_func,或者那个调用的函数就是一个变量,根本无法按ctrl&#43;追踪,只能在调用那个方法的时候把这个变量输出,然后在用zend自带的内容查询遍历文件夹
5.2:编辑器中文界面是原本就有的,只需要选择对应语言包就可以了
5.3:遗憾的是,我感觉自己并没有很完美的修改它的程序,尽管我的确只是单单修改了斜体这个功能,而没有影响其他功能.但是我原本是想直接修改传入正则那段,因为去掉了匹配斜体那段正则,我觉得才是比较完美的作法.因为Doku_LexerParallelRegex类是比较独立的,正则都是传入的.但是当我打印正则时,实在是太庞大了,所以最终我还是放弃了这个思路.
5.3.1:图片插入那块,也是全靠编辑器的功劳,我至今也不理解他能把内存的图片拷贝到编辑器的原理(尽管官网说他是漏洞,庆亮说是一个对象操作,我查查资料研究下.
5.3.2:代码高亮那块是采用Google的prettify.js,那块实际上是用js来修改源代码,在一些关键字的地方加上一些标签和css属性,于是就产生了高亮,关于这块,我是比较担心兼容性问题的(单个页面不担心,但是wiki也引入一堆js,但是目前看来,我测试了几次,都没什么问题,那应该不会出现了)
6:完整版下载地址:http://download.csdn.net/detail/zouhao619/5014447
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
(3)(3)(1)(3)(1)(2)(2)(5)(5)(2)(3)(2)(15)(1)(5)(3)(2)(3)(2)(9)(8)(3)(2)(2)(2)(6)(3)(10)(14)(5)(3)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 dokuwiki markdown 的文章

 

随机推荐