====== 命名空间 ====== 命名空间(Namespace)的概念,你可以简单理解它就是一个“文件夹”。 在dokuwiki中,命名空间依靠 '':'' 来分隔,不过你偶尔也可以使用 ''/'' 来代替冒号。 如果你有几个相同名称的页面(文件),它们都叫“start”,那么你可以通过不同的命名空间(文件夹)来存放和找到它们。 [[start|同级空间上的start]] [[:start|主页上的start]] [[:template:start|模板空间上的start]] 那么我们该如何确定它们的位置呢? 有下面的几种方法—— **如果目标页面与当前页面处于同级空间(同文件夹),那么可以直接使用目标的名称来调用:** ''%%[[start|同级空间的start]]%%'' [[start|同级空间的start]] **如果目标页面在根命名空间中,则必须使用定位符号来定位:** ''%%[[:start|主页上的start]]%%'' [[:start|主页上的start]] **如果目标页面在其他的命名空间(其他文件夹)中,那么就必须指定目标的空间及名称:** ''%%[[:template:start|模板页面中的start]]%%'' [[:template:start|模板页面中的start]] ''%%[[/template/start|使用斜杠也可以解析]]%%'' [[/template/start|使用斜杠也可以解析]] ===== 相对位置概念 ===== 其实上面的代码 ''%%[[:template:start]]%%'', 你使用 ''%%[[template:start]]%%'' 时会发现一样有效, 这其中就涉及了相对路径的概念。 就如同文件夹一样,如果你未定义一个准确的路径,那么wiki脚本会在相对应的位置来搜寻目标页面。 首先它会搜索当前命名空间下是否有指定的命名空间或者页面,然后是同级的命名空间,最后是根命名空间。 所以,如果当前的命名空间下也有着一个名叫 ''template:'' 的命名空间的话,那么省略 '':template:'' 就会造成定位错误。 请一定要小心这种错误的发生,尽量使用完整的定位符来指向命名空间及页面! 另外,你也可以使用如 ''..:'' 来指向当前命名空间的父空间,不过除非必要,请尽量少用这种格式! ===== 多级命名空间 ===== 每个命名空间下还可以生成更多的命名空间, 比如我想在 playground 命名空间再创建一个 test 空间,并建立一个 temptest 页面, 就可以先创建:''%%[[:playground:test:temptest]]%%'' 这个链接,点击后就可以创建文件了, 或者在浏览器中直接访问 ''/playground/test/temptest'' 这个地址。 效果:zuiyou: [[:playground:test:temptest]]