对于应用程序(*)我正在开发我需要动态生成和静态页面的混合。使用wiki会很酷,这样一旦第一次访问动态页面,它就会变成一个静态页面,可以被用户注释,就像任何其他静态wiki页面一样。
换句话说,我想覆盖消息“此主题尚不存在”(或其他)的任何输出a)以wiki格式生成新内容并将其存储在数据库中然后b)解析和显示该文字。
哦,这应该是递归的 - 创建的页面可能有更多动态生成页面的链接等等。
我将根据其名称生成动态页面(包括类别/命名空间信息到某个任意深度)。
最后一件事 - 通过批处理脚本预先创建一些动态页面也是很好的(但不是必需的)(主要是因为这些页面可能需要一些时间来生成)。 / p>
所以我的问题是哪个wiki软件最容易修改/编写一个插件来执行此操作?
(*)想象一下一个coredump分析器(想想gdb),你会看到一个转储列表(可能存储在某个远程机器上)。您单击转储,它会为您提供一个线程列表。你单击一个线程,它会给你堆栈。单击堆栈框架,它会显示内存。单击一个内存字,它会在该地址显示内存页面,依此类推。
在导航转储时,您可以添加有关问题的说明,以便以后为您提供帮助,或者与可能也在查看转储的同事共享。
几个月后,转储可能已从远程计算机上消失(占用大量空间来存档所有这些转储)但现在您遇到了类似的问题。您可以将最近转储中的堆栈跟踪中的一个函数名称输入到wiki搜索框中,然后检索有关上一次出现的已保存信息。
更新:感谢所有答案。我实际上可能会使用MediaWiki。看起来我可以创建一个ArticleViewHeader extension,然后可以调用doEdit来创建页面(如果它尚不存在)。有VirtualPage extension似乎做了类似的事情。
答案 0 :(得分:2)
我已经看到pmwiki完成了这项工作。
答案 1 :(得分:1)
我发现tiddlyWiki相当有趣
答案 2 :(得分:1)
Trac也是这样做的。
答案 3 :(得分:1)
Perspective是另一个。它是一个基于.Net的开源wiki。
答案 4 :(得分:1)
Tiddlywiki是最好的维基之一。以下是如何以编程方式创建一个繁琐的
var t=store.createTiddler("Hello") if (!t) return false; var txt=t.text+"something to apdsdsddpend"; var who=config.options.txtUserName; var when=new Date(); store.saveTiddler(t.title,t.title,txt,who,when,t.tags,t.fields);
这将创建一个新的名字标题为hello并且内容为ap ...
如果您想在添加上述文字后在编辑模式下打开tiddler,请添加此代码
var title = notetitle; story.displayTiddler(null, title); config.commands.editTiddler.handler(null, null, title);
希望它有所帮助。
tiddywiki也接受查询字符串
实施例: http://www.tiddlywiki.com/#open:HelloThere open:title打开具有指定标题的tiddler start:safe切换到安全模式 search:text执行搜索指定的文本 tag:text显示标记有指定标记的tiddlers newTiddler:title在编辑中打开具有指定标题的新tiddler 模式 newJournal:titleFormat打开指定的新tiddler DateFormatString:#newJournal:“YYYY MMM DD”
答案 5 :(得分:0)
您问题的直接答案是:几乎任何OpenSource Wiki都应该可以轻松修改 - 选择您最熟悉的一个(维基或语言)。
我知道如果我正确理解您的问题,jspwiki会提供此功能。它目前在apach孵化器。查看JspWiki's Sandbox。