帮助:讨论工具/为什么我不能回复这条留言?
![]() |
注意:當您編輯本頁面時,即同意以CC0協議授權您的貢獻。您可以在公有領域帮助页面找到更多信息。 | ![]() |
讨论页对那些恰当的格式没有限制。 讨论工具在大多数情况下应该能识别到留言,但是仍然存在一些含糊的情况,它们或是无法分辨出某一段落是否为留言,或是不知道往哪里添加对某一讨论串的回复。 如果讨论工具不能提供正确的操作,那么比起去猜测或是去进一步破坏页面,它将会不允许我们回复这一留言。
本页面记载了一些您可能遇到的错误,以及它们的产生原因和解决方案。
“回复”按钮没有出现
这种错误一般出现在某一留言的签名未能被检测到的时候。
回复功能被禁用
根据Help:DiscussionTools/Magic words and markup 中的描述,只要使用__ARCHIVEDTALK__
或<div class="mw-archivedtalk">…</div>
,回复功能的确可以在讨论串存档中被禁用。
未签名的留言
这种错误显然易见,但为了保持本页面的完整性我们还是要提一嘴。 如果有一条留言没有签名,那么它就不会被讨论工具检测到。 讨论页中也有可能含有一些不是留言的内容(比方说某些顶部模板),它们可没法从那堆未签名的留言中被可靠地分辨出来,而在它们那儿添加回复链接更是超出了讨论工具的预期。
如果有人手动地回复了那条留言,那么他们的回复会连同最初那条没签名的留言那样被视作为一个单独的多行留言,有可能引发超出预期的行为。
No date and time
If a signature is missing the date and time, the comment also won't be detected. Such signatures can't be reliably distinguished from user mentions, and adding reply links to them would often be unexpected.
The most common cause of this is someone adding a signature to an unsigned comment, but not adding the date and time when doing it.
Templates like {{Unsigned}}
often have a separate parameter, where you can copy the date and time from the page history.
Unrecognized namespace
The Reply tool is available in most of the namespaces that are used for discussions, but not in all namespaces.
When this is the problem, you will be looking at a page that does not have "talk" in its namespace (e.g., Wikipedia:Village pump
), and you will not see the "reply" link anywhere on the page.
Usually, it follows your wiki's configuration for the Signature tool in the full-page editor.
In particular, it may not be available in the Project:
namespace.
It can be enabled in any reasonable namespace.
If you need it to work in a different namespace, then ask the Editing team for help.
Ambiguous "unsigned" templates
When a template is used to sign an unsigned comment, the template must output the following:
- A link to a user's user page, talk page or contributions page
- A date and time (a "timestamp"), in the same format as in signatures, including the timezone in parentheses
- The user page, talk page or contributions page link must be before the date and time (like in normal signatures)
Non-standard date or time format
If someone signs their comments with a different date or time format than the default for the wiki, their comments won't be detected.
Sometimes editors may accidentally edit another signature when adding their comments manually, breaking the format.
Another common case is a signature added to an unsigned comment without the timezone indicator (e.g. "(UTC)"), or with a different timezone than the wiki uses.
No link to the user page
Signatures must include a link to the user page, talk page or contributions of a user.
The "reply" link cannot be used to reply to this comment
You'll see this error message when the comment appears to be transcluded from another page, but the tool can't determine from which page, and therefore can't determine where to add your reply. This can be caused by:
Accidental complex transclusion
Parsoid transclusions must be well-formed HTML fragments. When the wikitext of a transcluded page doesn't generate well-formed HTML (e.g. has unclosed tags, or it generates a table row without a table), the transclusion will be extended to cover wikitext belonging to the transcluding page (or other transcluded pages).
For example, if a subpage transcluded earlier on the page has an unclosed <div>
tag, all following transcluded subpages will be marked as part of the same transclusion, until the tag is closed (or until the end of the page).
DiscussionTools only supports following simple transclusions (which consist of exactly one transcluded page, and which don't leak to surrounding wikitext).
You can often debug this by opening the page for editing in visual editor (even if visual editor is disabled in that namespace, you can do it by adding ?veaction=edit
to the URL), clicking in the offending fragment of the page, and looking at the "sidebar" in the template dialog to see if it includes more than one page or "Content" transclusions.
TemplateStyles
A common cause of the above is templates using TemplateStyles.
When a template begins with a <templatestyles …>
wikitext tag, and it is used at the end of a paragraph (or similarly, if it ends with the tag and is used at the beginning of a paragraph), the generated <style>
HTML tag can be placed inside the <p>...</p>
HTML tags corresponding to the paragraph, while the rest of the template contents are placed outside of it.
The transclusion is then extended to cover the whole paragraph, preventing the reply tool from being used to respond to such comments.
You can fix this by moving the <templatestyles>...</templatestyles>
wikitext tag inside of the markup generated by a template – e.g., if it generates a <div>…</div>
tag, move it after the opening <div>
; if it generates a table using {| … |}
, move it inside of a table cell (take care not to place it directly after the table markup, as that causes other issues).
Wrapper templates
When a fragment of a discussion is wrapped in templates like e.g. {{Discussion top}}
+{{Discussion bottom}}
, the wrapped comments can't be replied to.
DiscussionTools relies on Parsoid to add replies into the HTML document, but contents of transclusions are only editable as wikitext.
Usually wrapper templates are used to archive or end a discussion, so it's rarely a problem that you can't reply to these comments. If someone adds a wrapper template to a comment while you are replying to that comment, you will see an error message and will not be able to post your reply with DiscussionTools.
Sometimes an entire page may be wrapped in a template to add a decorative frame or background. In these cases, plain HTML syntax may be used instead.
Comments in template arguments
Comment which appears in template arguments, for example {{Vyznamenat/oznam|text=Hello. ~~~~}}
, can not be replied to.
Nested transclusion or parser function syntax
When a discussion page has separate subpages for e.g. each month, dynamic transclusions depending on the current date are often used to only transclude the latest few subpages, without the need to manually archive them.
When the subpage transclusion is inside a parser function like {{#ifexpr:
, DiscussionTools can only see the parser function, and can't determine which page is transcluded within it.
You can fix it by putting the conditional parser functions inside the transclusion syntax instead. See example.
Could not find the comment you're replying to on the page
Usually this error message indicates that someone else removed the comment from the page while you were reading it. It might have been reverted, archived, moved to another discussion page, or the signature might have been changed (e.g. if someone commented while logged out and then corrected the username, or if they expanded their comment and signed it again).
If you can still see the comment after refreshing and purging the page, and you still receive this error, it might indicate a bug in Parsoid causing it to render the page differently from the PHP parser (DiscussionTools uses Parsoid internally to add new comments). Please file a task!
Comments on this page can't be replied to because of an error in the wikitext
You'll see this error message when there is a lint error on the page caused by fostered content.
A common cause of this is content or markup placed directly after a table start {|
or a table row start |-
, rather than inside a table cell.Editing these pages using tools that rely on Parsoid, such as DiscussionTools or VisualEditor, can cause the content to be corrupted (large fragments of the page become duplicated).
To resolve this, you can fix the lint error in the wikitext editor. The error message includes some links that hopefully are helpful.