一、我指的wiki式链接效果是:
1,自动用文章的标题生成URL,例如文章标题为“wolfram”,则该页面的URL自动生成为http://example.com/wiki/wolfram(链接形式可以自定义,也可以手动改);
2,以[[]]标记包括起来的文字自动变成真正的链接,例如[[wolfram]]变成http://example.com/wiki/wolfram(其中[[]]的标记可以自定义,链接形式可以自定义);
3,点击[[链接]]的时候,如果存在该标题的文章,则转到该文章页;如果不存在该标题的文章,则转到搜索或创建页面,页面标题已自动填好(可根据用户权限设定)。
4,对中文支持良好,链接中可以有中文。
二、用到的drupal模块:
主要的模块是pathauto、custom filter、wikitools。
此外,作为pathauto的依赖模块,还必须开启path模块(drupal核心自带)和token模块。
为了达到最好的效果,实现对搜索引擎和用户友好的链接结构,最好还开启global redirect模块。
三、关于pathauto:
pathauto模块的作用是根据一定规则自动生成页面的URL。其实不仅是在wiki风格中,对其他类型的站点和页面而言,这个功能也是非常有用的。
pathauto模块的设置,是在path模块的设置页面上添加了一页Automated alias settings。可设置的很多,可以自己试验看看。
一般只要设置Node path settings。这里会列出所有的内容类型(content type),可以给不同的内容类型设置不同的URL规则。
在想要的类型中填入[title-raw],该类型的node便会自动以文章标题作为URL。可以带路径,比如填入 wiki/[title-raw],生成的便是本文开头所说的链接了。
也可以用其他信息做URL,比如作者、时间等,在Replacement patterns中有详细的清单。
一般来说,这里的设置只对设置后新建的node有效,之前创建的node不受影响。勾选Bulk generate aliases for nodes that are not aliased,可以为之前创建的、现在还没有路径别名(path alias)的node批量设置URL。
四
下文将写写为什么不用某些著名的提供类似wiki功能的模块,比如freelinking、Flexifilter等。然后再写我用的这几个模块的用法,估计要连载好几天了。 :)
本文作者:Betty | 本文地址: https://myfairland.net/achieve-wiki-style-link-in-drupal/
本站文章除特殊标明者外均为原创,版权所有,如需转载,请以超链接形式注明作者和原始出处及本声明
不懂,那就沙发一下!
[…] 比如说freelinking。freelinking能基本实现上述wiki式链接的第2、3点功能,即[[]]自动变成链接,点击链接能转到文章,文章不存在则创建。freelinking几乎无需设置,使用方便。然而,它有一个巨大的缺点:URL不能自己设置,必须带有freelinking字样。 […]
太强大了
[…] 继续在drupal中实现wiki风格的话题。 […]
囧 难道博主是女的?
[…] 今天介绍一下drupal的wikitools模块。如果要实现wiki风格的链接效果,又不想用freelinking的话,那么这个wikitools模块基本就是必需的了。 […]
原来我也搞过这个,后来搞到一半就不玩了,还是觉得不是特别符合自己需要。看了不少别人写的资料也不得要领
@jan:
呃,其实我搞的不是wiki,只是wiki风格的链接形式……
[…] 因为这种内部链接的优势,其他内容管理系统(CMS)也纷纷采纳了这种风格。我就写过一系列文章讲述如何在drupal中实现Wiki风格的链接。 […]
请问在运用模组customfilter时,
想过滤wiki连接,
/\[\[(.+)\]\]/
当输入[[连接1]]和[[连接2]]时,过滤后成了
连接1]]和[[连接2
这个摸样,可能是把两个[[ ]] 之间的都看成一个了,
请问有没有办法把它分开呢? 期待您的回复啊!
改成这个正则表达式试试:
/\[\[([^\n]+?)\]\]/
谢谢Betty
实践证明,准确有效,呵呵,再次感谢
[…] 参见我以前写的 drupal实现wiki风格的链接效果 技术文章 ← 日本人写的中国饮食安全攻略 看的我都有点汗颜了 /* */ […]