关于Wiki:如何保护MediaWiki文章的仅一部分不被编辑?
How do I protect only part of a Mediawiki article from editing? 我正在建立一个Mediawiki网站,其中将包含数千篇Bot生成的文章。我希望用户能够编辑每篇文章的下部,但不能编辑自动生成的部分。
我找到了一个名为ProtectSection的废弃扩展,该扩展可以做到这一点,但是我没有技能进行更新以与当前的Mediawiki版本一起使用。
我正在考虑对Bot生成的文章进行保护,然后将其转换为用户可编辑的文章。如果这样做,我可以在搜索引擎中隐藏Bot生成的原始文章,也可以在Wiki中导航吗?
另外,我希望用户能够引用该机器人生成的文章的先前版本,因为他们的文本将由该机器人不时更新。如果我遮盖并隐藏了由bot生成的文章,那么我假设它们的历史将不可访问。如果我可以保留由机器人生成的文章,并且其中包含用户可编辑的部分,那么这将不是问题。
我有个坏消息。 要保护文章的一部分确实很困难。 当前的mediawiki体系结构不允许从头开始。
我建议您做的是创建自定义的namepase并将所有bot的文章放在此处。
// Define constants for my additional namespaces. define("NS_FOO", 3000); // This MUST be even. define("NS_FOO_TALK", 3001); // This MUST be the following odd integer. // Add namespaces. $wgExtraNamespaces[NS_FOO] ="Foo"; $wgExtraNamespaces[NS_FOO_TALK] ="Foo_talk"; // Note underscores in the namespace name.
限制普通用户编辑此自定义名称空间,这是一些信息。 但是允许用户观看此页面的历史记录。
# Only allow autoconfirmed users to edit Project namespace $wgNamespaceProtection[NS_PROJECT] = array( 'autoconfirmed' ); # Don't allow anyone to edit non-talk pages until they've confirmed their # e-mail address (assuming we have no custom namespaces and allow edits # from non-emailconfirmed users to start with) # Note for 1.13: emailconfirmed group and right were removed from default # setup, if you want to use it, you'll have to re-enable it manually $wgNamespaceProtection[NS_MAIN] = $wgNamespaceProtection[NS_USER] = $wgNamespaceProtection[NS_PROJECT] = $wgNamespaceProtection[NS_IMAGE] = $wgNamespaceProtection[NS_TEMPLATE] = $wgNamespaceProtection[NS_HELP] = $wgNamespaceProtection[NS_CATEGORY] = array( 'emailconfirmed' ); # Only allow sysops to edit"Policy" namespace $wgGroupPermissions['sysop']['editpolicy'] = true; $wgNamespaceProtection[NS_POLICY] = array( 'editpolicy' );
您已经知道的最后一步-使用Tranclution。