关于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。

来自码农家园网