首页 > 解决方案 > 为单独的项目/产品内容页面使用命名空间

问题描述

我有许多应用程序,我想用 MediaWiki 编写产品手册材料。

我可以在 myorganization.com 中为每个应用程序安装一个 wiki 作为子域,例如wiki.app.myorganisation.com/wiki/Some_Title和/或创建一个 WikiFarm,每个站点都有自己的LocalSettings.php但这似乎很快就会变得混乱为每个产品手册维护多个配置和数据库。

命名空间似乎是要走的路,并且似乎在细粒度安全方面带来好处,例如为App1贡献内容的用户可能不应该为App2贡献内容。

这意味着在wiki.myorganization.com/wiki/中单独安装 MediaWiki ,手册页以应用程序名称和页面标题为前缀,例如wiki.myorganization.com/wiki/SomeApp:Some_Titlewiki.myorganization.com/wiki/OtherApp :Some_Title

这将确保User_Management两个应用程序产品手册中需要存在的主题/标题可以共存。这也意味着所有组织产品知识的单一中央存储库。

此外,我选择 MediaWiki 作为它的 API。最终目标是能够在应用程序本身中呈现来自 MediaWiki 的内嵌产品手册内容。我不确定将每个应用程序的手册页分离到它们自己的命名空间中是否会为查询/检索此内容带来任何挑战?

我很想听听更有经验的 MediaWiki 用户的想法和/或他们的建议。

非常感谢。

标签: mediawiki

解决方案


考虑自定义命名空间的数量限制为 9900个这一事实。

另请注意,在 中存在某些每个命名空间的MediaWiki 设置LocalSettings.php包括命名空间声明本身。有扩展名SpecialNamespaces,但自 2009 年以来一直没有更新。

我建议另一种解决方案:将所有页面存储在主命名空间中。将与同一产品相关的页面分组为描述产品的主页的子页面(为主命名空间启用它们)。

可以通过保护页面来限制对每个产品的编辑访问,这不是通过 web 完成的LocalSettings.php,尽管您需要为每个产品定义保护级别用户组;但后者也必须用于命名空间保护。尽管我怀疑您是否真的为每个产品配备了单独的产品经理;所以你可能真的只需要几个用户组。


推荐阅读