Skip to content

A plugin for the MediaWiki front-end add-on "Wikiplus"

License

Notifications You must be signed in to change notification settings

bhsd-harry/Wikiplus-highlight

Repository files navigation

Wikiplus-highlight

npm version CodeQL

Wikiplus-highlight 是由 Bhsd 编写的一款 Wikiplus 语法高亮插件,它主要基于 MediaWiki 内置的 JavaScript 模块CodeMirror 编写。

展开

使用方法

个人 JS 页添加以下代码:

mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight');

mw.loader.load('//unpkg.com/wikiplus-highlight');

更多插件

使用 Vector 皮肤或 MediaWiki 1.35 及以上的 Minerva Neue 皮肤时,在右上角的【更多】菜单将添加一个【CodeMirror插件】选项,点击后可以选择想要加载的 CodeMirror 插件。其他桌面版皮肤(包括 TimelessMonoBookCitizen)会在类似性质的菜单中插入这一选项。修改插件设置后将立刻生效。

高亮当前行

使用这一插件时,光标所在行将添加浅青色背景。

显示不可见字符

使用这一插件时,不可见字符将以红色小圆点的形式显示。

显示空白字符

使用这一插件时,空格将以小圆点的形式显示,制表符将以箭头的形式显示。

显示尾随空格

使用这一插件时,每一行的尾随空格将添加橙红色背景。

匹配括号

匹配的括号对会添加青色背景,未匹配的单个括号会添加暗红色背景。

自动闭合括号和引号

MediaWiki 模式下自动闭合生效的字符包括 ([{",其他模式还额外包括 '。如果在选中部分文字的情况下键入这些字符,选中的文字会被成对的括号或引号包裹。

代码折叠

MediaWiki 模式下,光标移动至模板、解析器函数或扩展标签内部时会在光标上方出现一个 标记,点击即可折叠模板和解析器函数的参数或扩展标签内部的文本。折叠后使用一个带有虚线边框的 标记占位,点击该标记将重新展开折叠的代码部分。除此以外,可折叠的代码行行号左侧会出现箭头 作为折叠按钮。同时添加以下快捷键:

  • Ctrl + Shift + [/Cmd + Alt + [: 折叠选中的文字(如果可行)
  • Ctrl + Shift + ]/Cmd + Alt + ]: 展开选中的文字
  • Ctrl + Alt + [: 折叠所有可折叠的代码
  • Ctrl + Alt + ]: 展开所有折叠的代码

自动填充

MediaWiki 模式下可自动填充魔术字(包括状态开关和解析器函数)、标签名、标签属性名、URL 协议和图片参数。此外按下 Shift + Enter 还可触发页面名称和模板参数(需要 TemplateData 扩展)的自动填充。JavaScript 和 CSS 模式下可自动填充关键字和常数。

匹配标签

仅用于 MediaWiki 模式,匹配的标签对或自封闭标签会添加青色背景,未匹配的标签会添加暗红色背景。注意被高亮标记为错误的标签不会进行匹配。

HTML/URL编码快捷键

仅用于 MediaWiki 模式,添加以下快捷键:

  • Ctrl/Cmd + [: 将选中的文字转换为HTML实体
  • Ctrl/Cmd + ]: 将选中的文字解码或转换为URL编码

快速打开链接

仅用于 MediaWiki 模式,按住 Ctrl/Cmd 并点击被高亮标记为内部链接、模板标题或外部链接的文字时,会在新标签页打开对应页面。

语法检查

开启后将在编辑框内提示可能存在的语法错误。

模式 语法检查库
MediaWiki WikiParser-Node
JavaScript ESLint
CSS Stylelint
JSON JSON.parse
Lua luaparse

添加 WikiEditor 工具栏

工具栏遵从当前网站安装的 WikiEditor 扩展的版本。

使用 Monaco Editor

不使用默认的 CodeMirror 6 编辑器,而是使用 Monaco Editor

调整缩进

这是一个设置选项。默认设置下使用 Tab 进行缩进。

Supported languages

  • English (en)
  • 中文(简体) (zh-hans)
  • 中文(繁體) (zh-hant)

GNU General Public License 3.0