【发布时间】:2011-04-11 00:13:12
【问题描述】:
维基百科如何为其文章实现“编辑此部分”功能,其中用户只能编辑文章的一部分,而不是整篇文章?我试过自己爬过mediawiki的代码,但我理解起来有点密集。这是我的猜测(但只是猜测):
用户点击文章中的[编辑]。这链接到常规编辑页面,但在 URL 中通过 GET 传递了一个附加参数,指定要编辑的部分。如果没有这个额外的参数,Mediawiki 通常会简单地向用户呈现一个编辑整个页面的表单。但是指定要编辑的部分会导致 Mediawiki 仅提取该部分并将其呈现以供编辑。
让我感到困惑的是 Mediawiki 如何解析各个部分?据我了解,MW 不会单独存储这些部分 - 它会将每个版本的页面的每个完整版本存储为一大块文本(除了大量元数据)。 MW 是否只是查找 H1、H2、H3、... 标签,并在呈现页面时使用这些标签将文本拆分为区域?当用户保存修改后的部分时,它是否会查看当前版本,将文本重新解析为部分,然后将新版本“注入”到当前版本的副本中,然后将其保存为新版本?
我假设我对 MediaWiki 的理解被大大简化了,但我只是想大致了解一下。
谢谢!
【问题讨论】:
标签: php parsing content-management-system mediawiki