A plugin for the MediaWiki front-end add-on "Wikiplus"
Go to file
bhsd 7e6200ee11 chore: publish 2.60.0 to npm 2023-11-22 00:42:39 +08:00
.github/workflows Create codeql.yml 2023-11-09 17:59:31 +08:00
dist chore: publish 2.60 to npm 2023-11-22 00:42:30 +08:00
i18n chore: bump version to 2.60 2023-11-22 00:38:33 +08:00
.eslintrc.json fix(.eslintrc.json): fix non-existing rules 2023-11-22 00:32:26 +08:00
.gitignore chore: self-assigned certificate not working 2023-02-01 21:17:12 -08:00
.stylelintrc.json refactor: disintegrate CSS 2023-03-03 16:34:14 -08:00
LICENSE Initial commit 2022-02-06 19:35:08 -08:00
README.md chore: publish 2.60.0 to npm 2023-11-22 00:42:39 +08:00
bump.sh feat(bump.sh): run stylelint 2023-03-03 17:21:44 -08:00
fold.js fix(.eslintrc.json): fix non-existing rules 2023-11-22 00:32:26 +08:00
jsconfig.json feat(fold.js): fold HTML comments 2022-05-28 15:34:24 -07:00
lint.js fix(.eslintrc.json): fix non-existing rules 2023-11-22 00:32:26 +08:00
main.js chore: publish 2.60 to npm 2023-11-22 00:42:30 +08:00
matchtags.js fix(.eslintrc.json): fix non-existing rules 2023-11-22 00:32:26 +08:00
package.json chore: publish 2.60.0 to npm 2023-11-22 00:42:39 +08:00
search.js fix(.eslintrc.json): fix non-existing rules 2023-11-22 00:32:26 +08:00
styles.css fix(styles.css): fix specificity 2023-03-05 15:05:31 -08:00

README.md

Wikiplus-highlight

npm version CodeQL

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

使用方法

最新版本

个人 JS 页添加以下代码:

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

mw.loader.load('//unpkg.com/wikiplus-highlight@2.60.0/dist/main.min.js');

稳定版本

个人 JS 页添加以下代码:

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

mw.loader.load('//unpkg.com/wikiplus-highlight/dist/main.min.js');

由于 CDN 的缓存机制,稳定版本的更新大约会滞后一周。

更多插件

使用 Vector 皮肤或 MediaWiki 1.35 及以上的 Minerva Neue 皮肤时在右上角的【更多】菜单将添加一个【Wikiplus高亮设置】选项点击后可以选择想要加载的 CodeMirror 插件。其他桌面版皮肤(包括 TimelessMonoBookCitizen)会在类似性质的菜单中插入这一选项。默认加载【搜索】插件。修改插件设置后,不需要重载页面,只需打开一个新的 Wikiplus 编辑框就会立刻生效。

搜索

这个插件会向 Wikiplus 编辑区添加一个【搜索】按钮和一个【全文替换】按钮及以下快捷键:

  • Ctrl/Cmd + F: 打开搜索框
  • Ctrl/Cmd + G: 搜索下一处
  • Shift + Ctrl/Cmd + G: 搜索上一处
  • Ctrl/Cmd + H: 打开搜索框: 打开全文替换
  • Shift + Ctrl/Cmd + H: 替换上一处
  • Ctrl/Cmd + Alt + Enter: 开始全文替换

除了使用以上快捷键,也可以通过在搜索框中按下 Enter 键或点击搜索框右侧的 按钮来执行搜索下一处的命令,点击 按钮将执行搜索上一处的命令;在全文替换文本框中按下 Enter 键将执行全文替换命令,点击全文替换右侧的 按钮执行替换下一处的命令,点击 按钮将执行替换上一处的命令。搜索可以使用字符串,也可以使用形如 /re//re/i 的正则表达式。正则表达式仅接受可选的 i 修饰符,并默认添加 m 修饰符,暂不接受其他修饰符。 注意:使用先行或后行断言时可能无法逐处替换。 使用全文中匹配的字符都会添加淡粉色背景。如果没有匹配的结果,搜索框会添加粉色背景。

高亮当前行

使用这一插件时,如果当前没有选中的文字,光标所在行将添加浅蓝色背景。

尾随空格

使用这一插件时,每一行的尾随空格将添加红色波浪下划线。

匹配括号

与 MediaWiki 官方提供的 CodeMirror 扩展不同,这一插件只会在光标位于括号(包括 {}[]JavaScript、CSS 和 Lua 模式下还包括 ())处时才会生效,但括号匹配时会考虑其语法含义。以下是一个简单的例子:

<!--[-->]

CodeMirror 扩展会错误地匹配 <!-- --> 注释内外的括号,而这个插件不会。匹配的括号对会添加绿色边框,未匹配的单个括号会添加黄色边框。

自动闭合括号和引号

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

匹配标签

匹配的标签对或自封闭标签会添加浅绿色背景,未匹配的标签会添加浅黄色背景。注意被高亮标记为错误的标签不会进行匹配。

代码折叠

光标移动至模板参数或扩展/HTML 标签内部时会在该行代码上方出现一个淡黄色背景的 标记,点击即可折叠模板参数或标签内部文本。折叠后使用一个带有虚线边框的 标记占位,点击该标记将重新展开折叠的代码部分。

添加 WikiEditor 工具条

工具条具备的功能遵从当前网站安装的 WikiEditor 扩展的版本。

HTML/URL编码快捷键

添加以下快捷键:

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

快速打开模板

右键点击被高亮标记为模板标题或 #invoke 魔术字的第一个参数(即模块标题)时,会在新标签页打开对应页面。如果当前站点安装了 Widget 扩展,则当右键点击 #widget 魔术字的第一个参数(即小部件标题)时会在新标签页打开对应小部件的编辑界面(即 action=edit)。

维基语法检查

这个功能基于 wikiparser-node。开启后将在编辑框内提示可能存在的维基语法错误,同时在右侧的滚动条上也会以红黄条纹粗略地指示错误在文中出现的位置。这个插件还将添加以下快捷键:

  • Ctrl/Cmd + L: 随时开启或关闭错误提示
  • Ctrl/Cmd + K: 立即刷新语法错误

调整缩进

这不是一个真正意义上的插件,而是一个设置选项。默认设置下使用 Tab 进行缩进。勾选这一选项时,会出现一个新的文本框以设置缩进对应的空格个数,初始值为 4

用于其他编辑器

勾选这一选项时,除【搜索】【添加 WikiEditor 工具条】插件以外的当前正在使用的插件也将作用于其他开启了 CodeMirror 高亮的编辑器。目前支持的编辑器包括 InPageEdit-v2Inspector,不包括 MediaWiki 默认的编辑器。

Supported languages

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

GNU General Public License 3.0