哪个 wiki 会让我在单击其链接时动态创建一个页面?

Posted

技术标签:

【中文标题】哪个 wiki 会让我在单击其链接时动态创建一个页面?【英文标题】:Which wiki will let me dynamically create a page when its link is clicked? 【发布时间】:2008-10-13 07:23:34 【问题描述】:

对于我正在开发的应用程序 (*),我需要动态生成的页面和静态页面的混合。使用 wiki 会很酷,一旦第一次访问动态页面,它就会变成静态页面,用户可以像任何其他静态 wiki 页面一样对其进行注释。

换句话说,我想用 a) 生成 wiki 格式的新内容并将其存储在数据库中然后 b) 解析和显示该文本。

哦,这应该是递归的——创建的页面可能有链接到更动态生成的页面等等。

我将根据其名称生成动态页面(包括任意深度的类别/命名空间信息)。

最后一件事 - 通过批处理脚本预先创建一些动态页面也很好(但不是必需的)(主要是为了提高性能,因为这些页面可能需要一些时间来生成)。

所以我的问题是哪个 wiki 软件最容易修改/编写插件来做到这一点?

(*) 想象一个 coredump 分析器(想想 gdb),你会看到一个转储列表(可能存储在某个远程机器上)。您单击转储,它会为您提供线程列表。您单击一个线程,它会为您提供堆栈。您单击堆栈帧,它会显示内存。您单击一个内存字,它会显示该地址处的内存页,依此类推。

在浏览转储时,您可以添加有关您发现的问题的注释,以便日后为您提供帮助或与可能也在查看转储的同事分享。

几个月后,转储可能已从远程计算机上消失(需要大量空间来归档所有这些转储),但现在您遇到了类似的问题。您将最近转储中堆栈跟踪中的一个函数名称输入到 wiki 搜索框中,然后检索有关上一次事件的保存信息。

更新:感谢所有答案。我实际上可能会选择 MediaWiki。看起来我可以创建一个ArticleViewHeader extension,然后可以调用doEdit 来创建该页面(如果它尚不存在)。有一个 VirtualPage extension 似乎做了类似的事情。

【问题讨论】:

【参考方案1】:

我已经看到使用 pmwiki 完成此操作。

【讨论】:

【参考方案2】:

我觉得tiddlyWiki 很有趣

【讨论】:

【参考方案3】:

Trac 也这样做。

【讨论】:

【参考方案4】:

Perspective 是另一个。这是一个基于 .Net 的开源 wiki。

【讨论】:

【参考方案5】:

Tiddlywiki 是最好的 wiki 之一。以下是如何以编程方式创建一个整洁的程序

var t=store.createTiddler("你好") 如果(!t)返回假; var txt=t.text+"要 apdsdsddpend 的东西"; var who=config.options.txt用户名; var when=new Date(); store.saveTiddler(t.title,t.title,txt,who,when,t.tags,t.fields);

这将创建一个新的 tiddly,名称为 hello,内容为 ap...

如果您想在添加上述文本后以编辑模式打开 tiddler,请添加此代码

var 标题 = 注释标题; 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"

【讨论】:

【参考方案6】:

您的问题的直接答案是:几乎所有开源 Wiki 都应该易于修改 - 选择您最熟悉的一个(wiki 或语言)。

如果我正确理解您的问题,我知道jspwiki 提供了开箱即用的此功能。它目前在 apaches 孵化器中。检查JspWiki's Sandbox。

【讨论】:

以上是关于哪个 wiki 会让我在单击其链接时动态创建一个页面?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript/PHP 重定向

在该选项卡中单击分页链接时如何激活选项卡?

获取当前滚动位置并将其作为带有链接的变量传递?

如何使用 bootstrap/adminlte 在链接单击时动态生成模式对话框?

如何以角度2刷新页面

在 JSF 2.0 中动态创建输入字段并将其链接到支持 bean