配置MW:编辑框自定义标签

来自Wikioe
跳到导航 跳到搜索


关于

目标:实现“在编辑框中添加自定义标签”功能。

实现

目前还只是一个丑陋的实现方式,特别不方便。

步骤:

  1. 涉及扩展“Gadgets[1]”、“CharInsert[2]”。【所以可以配合使用???】
    • CharInsert:使得 MediaWiki 可以解释“<charinsert></charinsert>”标签。从而实现:在编辑界面时,点击此标签内的字符即可以将其输入到编辑区内。
  2. 修改了以下内容:【均是新建】
    1. MediaWiki:Common.css |-Common.css
    2. MediaWiki:Edittools |-Edittools(用于整理自定义标签)
    3. MediaWiki:Gadgets-definition |-Gadgets-definition
    4. MediaWiki:Gadget-Edittools |-Gadget-Edittools
    5. MediaWiki:Gadget-Edittools.js |-Gadget-Edittools.js
    6. MediaWiki:Gadget-charinsert-core.js |-Gadget-charinsert-core.js(可以直接维护自定义标签)
    7. MediaWiki:Gadget-charinsert-styles.css |-Gadget-charinsert-styles.css
    8. MediaWiki:Gadget-charinsert.js |-Gadget-charinsert.js
    9. MediaWiki:Gadget-charinsert |-Gadget-charinsert

添加自定义标签

即: Gadget-charinsert-core.js 的设置方法。

设置方法:

  1. 用“\”分隔一些不能直接保存的标签。
    如:“<br/>”写为“<br\/>”,“<syntaxhighlight”写为“<\syntaxhighlight”;
  2. 用“.”代替标签中的空格。
    如:“<syntaxhighlight lang="xml" inline>”写为“<syntaxhighlight.lang="xml".inline>”;
  3. 用“+”表示光标位置。
    如:“<code></code>”写为“<code>+</code>
  4. 可以使用诸如“\n”的转移字符。
    如:“<pre></pre>”写为“<pre>\n+\n</pre>
  5. 可以对 charinsert 换行展示:使用“\n”,注意前后用空格分隔;
  6. 可以在 charinsert 的组中使用“标签说明”(就是不可点击的说明字符):
    • 前面两个空格、后面一个空格,用于与 charinsert 分隔;
    • 多个单词用“_”连接;

注意事项:

  • charinsert 中不能写入中文字符(包括中文的空格等字符)。
  • 修改之后需要“无缓存刷新”(ctrl + F5)才能显示效果。
  • 如果遇到“修改之后直接不能加载自定义标签框,且改回原来内容仍然不能加载”的情况,可以通过重新提交该 js 的历史版本来解决。

示例

示例:

editTools = {
        ...
        charinsert: {
            'Commonly':' [\[category:+]] :.+ #+ *+ #:.+ *:.+ <\syntaxhighlight.lang="bash".highlight="">\n+\n<\/syntaxhighlight> \n  Label: <br\/>\n+ <!--.+_--> <s>+</s> <code>+</code> <pre>\n+\n</pre> <blockquote>\n+\n</blockquote> <\syntaxhighlight.lang="xml".inline>+<\/syntaxhighlight> \n  Tabulation: style="width:100%;".|.+ rowspan="2".|.+ colspan="2".|.+ .wikitable .mw-collapsible .mw-collapsed .sortable \n  Special: ☐ ✓ ✗ ✔ ✘ ☑ ☒ ○ ● ◯',
            ...
        },

效果:

MediaWiki:Gadget-charinsert-core.js配置效果示例.png

备注

  • 【2021/05/16 2:01:19】但是还不知道如何将两个配合使用。(所以先注释了 Edittools 中的内容)
    Edittools 定义的标签显示在页面底部(编辑时不方便),而 Gadget-charinsert-core.js 中定义的标签在编辑框底部(自定义标签时不方便);
    Gadget-charinsert-core.js 中说:“// Please make any changes to [[MediaWiki:Edittools]] as well, however, instead of using the ␥ symbol, use {{#ifeq:{{NAMESPACE}}|{{ns:0}}| | ”。
  • 【2021/05/22 22:49:36】终于把 Gadget-charinsert-core.js 的设置方法试出来了。
  • 【2021/12/21 12:53:25】不知道有没有更好的方式。(“MediaWiki:Edittools”中使用“<charinsert></charinsert>”标签???上次试了不生效……)

备忘

顺手记一下几个特殊字符:

几个Unicode特殊字符
符号 Unicode码(Hex) 名字
U+2610 BALLOT BOX (方格)
U+2713 CHECK MARK(勾号)
U+2714 HEAVY CHECK MARK(粗勾号)
U+2611 BALLOT BOX WITH CHECK(打勾方格)
U+2717 BALLOT X (交叉)
U+2718 HEAVY BALLOT X (粗体交叉)
U+2612 BALLOT BOX WITH X (带交叉方格)
U+25CB WHITE CIRCLE
U+25CF BLACK CIRCLE
U+25EF LARGE CIRCLE

参考

  1. 系统自带的扩展,无需额外安装。
  2. 额外安装的扩展。 参考:Extension:CharInsert(关于几种使用方法有详细的说明)
  3. 参考:Extension:CharInsert#Scripting
    效果:mediawiki.org 的 MediaWiki:Edittools
  4. 效果:wikipedia.org 的 MediaWiki:Edittools