@bhsd/codemirror-mediawiki

中文文档
4.8.1发布于 2026/11/08GPL-2.0-or-laterTypeScriptES Module近 30 天下载 1772

基于wikimedia/mediawiki-extension-CodeMiror的已修改的代码Miror模式

中文使用文档
文档目录77 节
  1. 安装
  2. 浏览器使用
  3. 语言模式
  4. 虐待过滤器
  5. 密码
  6. (简体中文)
  7. 日记
  8. 乔森
  9. 简克
  10. 卢亚
  11. 媒体wiki
  12. 声音
  13. 其他语文
  14. 主题
  15. 光线
  16. 诺德
  17. 其他主题
  18. 构造器
  19. 访问者
  20. 方言
  21. 朗语
  22. 文本区域
  23. 视图
  24. 可见
  25. 方法
  26. 清除客户端
  27. 自定义
  28. 销毁
  29. 额外键
  30. 获取线条
  31. 获取节点
  32. ưμ㼯A
  33. 初始化
  34. 线性
  35. 本地化
  36. 首选项
  37. 替换选择
  38. 滚动到
  39. 设置相册指南
  40. 设置
  41. 设置缩进
  42. 设置语言
  43. 线程绘制
  44. 设置主题
  45. 切换
  46. 更新
  47. 静态连接器
  48. 光盘N
  49. 静态方法
  50. 获取MwConfig
  51. 替换选择( 静态)
  52. 扩展
  53. 允许复选
  54. 自动补全
  55. 隔离
  56. 块显示器
  57. 括号匹配
  58. 关闭括号
  59. 关闭标签
  60. 代码折叠
  61. 颜色选择器
  62. 逃脱
  63. 突出显示活动线
  64. 突出显示选题
  65. 突出显示特殊聊天
  66. 突出显示显示白空间
  67. 突出显示白空间
  68. 盘旋
  69. 缩进指南
  70. 内置提示
  71. 打开链接
  72. 转发
  73. 滚动末端
  74. 签名帮助
  75. 粘相滚动
  76. 已知问题
  77. 语法突出显示

@bhsd/codemirror-mediawiki (英语)

npm version CodeQL NPM downloads jsDelivr hits (npm scoped) Codacy Badge

此寄存器包含前端脚本和样式的修改版本 从 MediaWiki 扩展代码Mirror。 。 。 . 目标是支持在以下两个方面实现独立的一体化: 代码 财务报告和审定财务报表 维基文库,不需要一个 MediaWiki 环境。 。 。 .

这里有一个 演示改为: 使用 RTL( 从右到左) 支持进行实验, 您可以附加 ?rtl=1 页:1 URL (中文(简体) ).

不过,该储存库还提供了定制版本,并增加了 用于MediaWiki网站的功能。 浏览器编辑工具, 如 维基百科 还有一个 InPageEdit 插件 是建立在它之上的。 请参见单独的 读取 文件为 情报.

如果您只是寻找 CodeMiror 6 语言模式和语言支持 media Wiki Wikitext 的扩展名, 您可以使用 @bhsd/codemirror-wikitext (英语) 换句话说.

扩展

安装

您可以通过 npm 安装软件包并作为模块导入 :

npm install @bhsd/codemirror-mediawiki
import {
    CodeMirror6,
    registerMediaWiki,
    registerHTML,
    registerCSS,
    registerJavaScript,
    registerJSON,
    registerJSONC,
    registerLua,
    registerVue,
    registerAbuseFilter,
} from '@bhsd/codemirror-mediawiki';

浏览器使用

扩展

您可以通过 CDN 下载代码, 例如 :

// static import
import {
    CodeMirror6,
    registerMediaWiki,
    registerHTML,
    registerCSS,
    registerJavaScript,
    registerJSON,
    registerJSONC,
    registerLua,
    registerVue,
    registerAbuseFilter,
} from 'https://cdn.jsdelivr.net/npm/@bhsd/codemirror-mediawiki';

或者说

import {
    CodeMirror6,
    registerMediaWiki,
    registerHTML,
    registerCSS,
    registerJavaScript,
    registerJSON,
    registerJSONC,
    registerLua,
    registerVue,
    registerAbuseFilter,
} from 'https://unpkg.com/@bhsd/codemirror-mediawiki/dist/main.min.js';

或者说

// dynamic import
const {
    CodeMirror6,
    registerMediaWiki,
    registerHTML,
    registerCSS,
    registerJavaScript,
    registerJSON,
    registerJSONC,
    registerLua,
    registerVue,
    registerAbuseFilter,
} = await import('https://cdn.jsdelivr.net/npm/@bhsd/codemirror-mediawiki');

或者说

const {
    CodeMirror6,
    registerMediaWiki,
    registerHTML,
    registerCSS,
    registerJavaScript,
    registerJSON,
    registerJSONC,
    registerLua,
    registerVue,
    registerAbuseFilter,
} = await import('https://unpkg.com/@bhsd/codemirror-mediawiki/dist/main.min.js');

语言模式

虐待过滤器

添加: 3.1.0

扩展

你可以捆起来 虐待问题 通过导入 registerAbuseFilter 函数 :

import {registerAbuseFilter} from '@bhsd/codemirror-mediawiki';
registerAbuseFilter();

如果您想要对扩展进行更微粒的控制, 您可以导入 registerAbuseFilterCore 函数和想要的扩展名:

import {registerAbuseFilterCore} from '@bhsd/codemirror-mediawiki';
registerAbuseFilterCore();

除常见外 扩展这里有一些 虐待Filter特有扩展. 请注意,这些延长不得生效 如果对应的普通扩展未注册 :

import {
    registerHoverForAbuseFilter,
    registerSignatureHelpForAbuseFilter,
    registerOpenLinksForNonMediaWiki,
} from '@bhsd/codemirror-mediawiki';
registerHoverForAbuseFilter();
registerSignatureHelpForAbuseFilter();
registerOpenLinksForNonMediaWiki();

密码

扩展

CSS模式包含一个 方言 页:1 扩展: 模板样式。 。 。 . 您可以通过导入 CSS 模式来捆绑 registerCSS 函数 :

import {registerCSS} from '@bhsd/codemirror-mediawiki';
registerCSS();

如果您想要对扩展进行更微粒的控制, 您可以导入 registerCSSCore 函数和想要的扩展名:

import {registerCSSCore} from '@bhsd/codemirror-mediawiki';
registerCSSCore();

除常见外 扩展这里有一些CSS的特异性 扩展。 请注意,这些延长不得在下列情况下生效: 普通扩展未注册 :

import {
    registerColorPickerForCSS,
    registerOpenLinksForNonMediaWiki,
} from '@bhsd/codemirror-mediawiki';
registerColorPickerForCSS();
registerOpenLinksForNonMediaWiki;

(简体中文)

扩展

这是混合媒体Wiki-HTML模式,用于 扩展: 部件。 。 。 . 您可以通过导入 HTML 模式来捆绑 registerHTML 函数 :

import {registerHTML} from '@bhsd/codemirror-mediawiki';
registerHTML();

如果您想要对扩展进行更微粒的控制, 您可以导入 registerHTMLCore 函数和想要的扩展名:

import {registerHTMLCore} from '@bhsd/codemirror-mediawiki';
registerHTMLCore();

除常见外 扩展,这里有一些 HTML 特定 扩展。 请注意,这些延长不得在下列情况下生效: 普通扩展未注册 :

import {
    registerBracketMatchingForHTML,
    registerCloseTagsForHTML,
    registerColorPickerForHTML,
    registerOpenLinksForNonMediaWiki,
} from '@bhsd/codemirror-mediawiki';
registerBracketMatchingForHTML();
registerCloseTagsForHTML();
registerColorPickerForHTML();
registerOpenLinksForNonMediaWiki();

日记

扩展

您可以导入 JavaScript 模式 registerJavaScript 函数 :

import {registerJavaScript} from '@bhsd/codemirror-mediawiki';
registerJavaScript();

如果您想要对扩展进行更微粒的控制, 您可以导入 registerJavaScriptCore 函数和想要的扩展名:

import {registerJavaScriptCore} from '@bhsd/codemirror-mediawiki';
registerJavaScriptCore();

除常见外 扩展这里有一些 JavaScript特定扩展. 请注意,这些延长不得生效 如果对应的普通扩展未注册 :

import {
    registerBracketMatchingForJavaScript,
    registerOpenLinksForNonMediaWiki,
} from '@bhsd/codemirror-mediawiki';
registerBracketMatchingForJavaScript();
registerOpenLinksForNonMediaWiki();

乔森

扩展

您可以通过导入 JSON 模式来捆绑 registerJSON 函数 :

import {registerJSON} from '@bhsd/codemirror-mediawiki';
registerJSON();

如果您想要对扩展进行更微粒的控制, 您可以导入 registerJSONCore 函数和想要的扩展名:

import {registerJSONCore} from '@bhsd/codemirror-mediawiki';
registerJSONCore();

简克

扩展

您可以通过导入 JSONC 模式来捆绑 registerJSONC 函数 :

import {registerJSONC} from '@bhsd/codemirror-mediawiki';
registerJSONC();

如果您想要对扩展进行更微粒的控制, 您可以导入 registerJSONCCore 函数和想要的扩展名:

import {registerJSONCCore} from '@bhsd/codemirror-mediawiki';
registerJSONCCore();

除常见外 扩展这是JSONC特制的 扩展。 请注意,这些延长不得在下列情况下生效: 普通扩展未注册 :

import {registerOpenLinksForNonMediaWiki} from '@bhsd/codemirror-mediawiki';
registerOpenLinksForNonMediaWiki();

卢亚

扩展

您可以导入 Lua 模式 registerLua 函数 :

import {registerLua} from '@bhsd/codemirror-mediawiki';
registerLua();

如果您想要对扩展进行更微粒的控制, 您可以导入 registerLuaCore 函数和想要的扩展名:

import {registerLuaCore} from '@bhsd/codemirror-mediawiki';
registerLuaCore();

除常见外 扩展这里有一些Lua特有的 扩展。 请注意,这些延长不得在下列情况下生效: 普通扩展未注册 :

import {registerOpenLinksForNonMediaWiki} from '@bhsd/codemirror-mediawiki';
registerOpenLinksForNonMediaWiki();

媒体wiki

扩展

您可以通过导入 : registerMediaWiki 函数 :

import {registerMediaWiki} from '@bhsd/codemirror-mediawiki';
// optionally pass the article path of a MediaWiki site
registerMediaWiki('https://www.mediawiki.org/wiki/');

MediaWiki模式为快速格式化提供了以下密钥绑定:

  • Ctrl + 键 0平面段落
  • Ctrl + 键 1-6: 标题1至6
  • Ctrl + 键 7: 格式化文本
  • Ctrl + 键 8: 块引号
  • Ctrl编号 :Cmd + 键 /: 注释
  • Ctrl编号 :Cmd + 键 .: 上标
  • Ctrl编号 :Cmd + 键 ,: 下标
  • Ctrl编号 :Cmd + 键 B粗体显示
  • Ctrl编号 :Cmd + 键 I: 斜体
  • Ctrl编号 :Cmd + 键 U: 下划线
  • Ctrl编号 :Cmd + 键 K: 维基链接
  • Ctrl + 键 Shift + 键 5: 切换
  • Ctrl编号 :Cmd + 键 Shift + 键 6: 内置代码
  • Ctrl编号 :Cmd + 键 Shift + 键 K校正标签

如果您想要对扩展进行更微粒的控制, 您可以导入 registerMediaWikiCore 函数和想要的扩展名:

import {registerMediaWikiCore} from '@bhsd/codemirror-mediawiki';
// optionally pass the article path of a MediaWiki site
registerMediaWikiCore('https://www.mediawiki.org/wiki/');

除常见外 扩展这里有一些 MediaWiki特定扩展. 请注意,如果 对应的普通扩展未注册 :

import {
    registerColorPickerForMediaWiki,
    registerBracketMatchingForMediaWiki,
    registerCodeFoldingForMediaWiki
} from '@bhsd/codemirror-mediawiki';
registerColorPickerForMediaWiki();
registerBracketMatchingForMediaWiki();
registerCodeFoldingForMediaWiki();

声音

扩展

您可以导入 Vue 模式 registerVue 函数 :

import {registerVue} from '@bhsd/codemirror-mediawiki';
registerVue();

如果您想要对扩展进行更微粒的控制, 您可以导入 registerVueCore 函数和想要的扩展名:

import {registerVueCore} from '@bhsd/codemirror-mediawiki';
registerVueCore();

除常见外 扩展,这里有一些 Vue 特定的 扩展。 请注意,这些延长不得在下列情况下生效: 普通扩展未注册 :

import {
    registerBracketMatchingForVue,
    registerCloseTagsForVue,
    registerColorPickerForVue,
    registerOpenLinksForNonMediaWiki,
} from '@bhsd/codemirror-mediawiki';
registerBracketMatchingForVue();
registerCloseTagsForVue();
registerColorPickerForVue();
registerOpenLinksForNonMediaWiki();

其他语文

扩展

您也可以通过导入其它语言来注册 registerLanguage 函数 :

import {registerLanguage} from '@bhsd/codemirror-mediawiki';
import {python} from '@codemirror/lang-python';
registerLanguage('python', python);

如果您想要对扩展进行更微粒的控制, 您可以导入 registerLanguageCore 函数和想要的扩展名:

import {registerLanguageCore} from '@bhsd/codemirror-mediawiki';
import {python} from '@codemirror/lang-python';
registerLanguageCore('python', python);

主题

光线

这是默认主题,它是一个轻度主题.

诺德

扩展

这是一个黑暗的主题 由 松山拓也 财务报告和审定财务报表 第233页您需要吗 在使用前先登记此主题:

import {registerTheme, nord} from '@bhsd/codemirror-mediawiki';
registerTheme('nord', nord);

其他主题

扩展

您也可以通过导入其它主题来注册 registerTheme 函数 :

import {registerTheme} from '@bhsd/codemirror-mediawiki';
import {oneDark} from '@codemirror/theme-one-dark';
registerTheme('one-dark', oneDark);

构造器

扩展

段落数字 : HTMLTextAreaElement 要替换的文本区域元素 代码
段落数字 : string 语言模式,默认为纯文本
段落数字 : unknown 语言配置,仅用于 媒体维基 模式和模式 混合介质Wiki-HTML 模式
段落数字 : boolean 是否立即初始化,默认为真实

let cm;
cm = new CodeMirror6(textarea); // plain text
cm = new CodeMirror6(textarea, 'mediawiki', mwConfig);
cm = new CodeMirror6(textarea, 'html', mwConfig);
cm = new CodeMirror6(textarea, 'css');
cm = new CodeMirror6(textarea, 'javascript');
cm = new CodeMirror6(textarea, 'json');
cm = new CodeMirror6(textarea, 'jsonc');
cm = new CodeMirror6(textarea, 'lua');
cm = new CodeMirror6(textarea, 'vue');
cm = new CodeMirror6(textarea, 'abusefilter', dialect);

访问者

方言

扩展

增加:2.28.0

类型数字 : 'sanitized-css' | undefined
仅用于 扩展: 模板样式 作为CSS模式的一种方言.

朗语

扩展

添加:2.0.14

类型数字 : string
当前语言模式,只读.

文本区域

扩展

类型数字 : HTMLTextAreaElement
文本区域元素被 CodeMirror所取代, 只读 .

视图

扩展

类型数字 : EditorView | undefined
CodeMiror编辑器View实例,只读.

可见

扩展

添加:2.1.3

类型数字 : boolean
编辑器是否可见,只读 .

方法

清除客户端

扩展

增加:3.13.1

删除所有自定义语法加亮样式 customHighlight。 。 。 .

cm.clearCustomHighlight();

自定义

扩展

增加:3.13.1

添加自定义语法突出显示样式 。 此方法对所有非媒体Wiki有效 模式。 您可以多次调用这种方法来添加不同的样式, 使用 后期风格具有较高的优先级.

自定义样式的优先级高于 主题 样式,和 光-mode/dark-mode自定义样式的优先权高于常见自定义样式.

cm.customHighlight([
    {
        tag: ['string', 'number'],
        color: 'red',
    },
    {
        tag: 'string.special',
        class: 'cm-special-string',
    },
]);
cm.customHighlight(
    {
        tag: ['variableName.definition'],
        fontWeight: 'bold',
    },
    'dark',
);

销毁

扩展

添加:2.28.2

摧毁这个案例。 这种方法不可撤销,不建议采用一般方法 使用时。 相反,你应该打电话给 toggle 隐藏编辑器的方法.

cm.destroy();

额外键

扩展

添加:2.2.2

段落数字 : KeyBinding[] 额外的密钥绑定
添加额外的密钥绑定 。 需要先初始化 .

cm.extraKeys([
    {key: 'Tab', run: () => console.log('Tab'), preventDefault: true},
]);

获取线条

扩展

添加:2.1.3

段落数字 : Record<string, any> 可选的线条配置
返回时数字 : Promise<(state: EditorState) => Diagnostic[] | Promise<Diagnostic[]>>
获得默认的 Linting 函数,该函数可用作参数 lint。 。 。 .

const linter = await cm.getLinter(); // default linter configuration
const linterMediawiki = await cm.getLinter({include: true, i18n: 'zh-hans'}); // wikilint configuration
const linterJavaScript = await cm.getLinter({env, parserOptions, rules}); // ESLint configuration
const linterCSS = await cm.getLinter({rules}); // Stylelint configuration

获取节点

扩展

添加:2.4.2

段落数字 : number 职位
段落数字 : -1 | 0 | 1 侧, 可选
返回时数字 : SyntaxNode | undefined
获取指定位置和侧面的语法节点.

const tree = cm.getNodeAt(0);

ưμ㼯A

扩展

增加了版本: 3.2.0

段落数字 : string 扩展名
返回时数字 : boolean
检查编辑器是否允许给定扩展 .

const hasAutocompletion = cm.hasPreference('autocompletion');

初始化

扩展

添加:2.11.1

段落数字 : unknown 可选语言配置
初始化编辑器.

cm.initialize();

线性

扩展

段落数字 : (state: EditorState) => Diagnostic[] | Promise<Diagnostic[]> 页:1 启动函数
设置起伏函数 .

cm.lint(({doc}) => [
    /**
     * @type {Diagnostic}
     * @see https://codemirror.net/docs/ref/#lint.Diagnostic
     */
    {
        from: 0,
        to: doc.toString().length,
        message: 'error message',
        severity: 'error',
    },
]);

本地化

扩展

添加: 2.3.3

段落数字 : Record<string, string> 本地化表格
设置本地化表.

cm.localize({
    'Find': '查找',
});

首选项

扩展

添加:2.0.9

段落数字 : string[] | Record<string, boolean> 页:1 扩展 改为 启用
设置首选的 CodeMiror 扩展 。 引入可用的扩展 待会。 。 。 .

cm.prefer([
    'allowMultipleSelections',
    'autocompletion',
    'bracketMatching',
    'closeBrackets',
    'closeTags',
    'codeFolding',
    'highlightActiveLine',
    'highlightSelectionMatches',
    'highlightSpecialChars',
    'highlightTrailingWhitespace',
    'highlightWhitespace',
    'scrollPastEnd',

    // only available in CSS and MediaWiki modes
    'colorPicker',

    // only available in MediaWiki mode
    'escape',
    'hover',
    'inlayHints',
    'openLinks',
    'refHover',
    'signatureHelp',
]);
cm.prefer({
    allowMultipleSelections: false,
    autocompletion: false,
    bracketMatching: false,
    closeBrackets: false,
    closeTags: false,
    codeFolding: false,
    highlightActiveLine: false,
    highlightSelectionMatches: false,
    highlightSpecialChars: false,
    highlightTrailingWhitespace: false,
    highlightWhitespace: false,
    scrollPastEnd: false,

    // only available in CSS and MediaWiki modes
    colorPicker: false,

    // only available in MediaWiki mode
    escape: false,
    hover: false,
    inlayHints: false,
    openLinks: false,
    refHover: false,
    signatureHelp: false,
});

替换选择

扩展

增加版本:3.9.0

段落数字 : (str: string, range: {from: number, to: number}) => string | [string, number, number?] 替换功能
以替换函数的返回值替换所选文本.

cm.replaceSelections(str => str.toUpperCase());

滚动到

扩展

增加:2.6.2

段落数字 : number | {anchor: number, head: number} 滚动到、默认为当前光标位置的位置或范围
向给定位置或范围滚动 。 需要先初始化 .

cm.scrollTo();

设置相册指南

扩展

添加: 3.1.5.0

段落数字 : number 显示导线的列号,或 禁用 0 列导

cm.setColumnGuide(80);

设置

扩展

增加了版本:2.1.8

段落数字 : string 新内容
段落数字 : boolean 是否强制将内容设置在只读 模式,默认为虚假
重置编辑器的内容 。 需要先初始化 .

cm.setContent('');

设置缩进

扩展

添加:2.0.9

段落数字 : string | number 缩进字符串或空格数, 默认为标签
设置缩进字符串.

cm.setIndent(2);
cm.setIndent('  ');
cm.setIndent('\t');

设置语言

扩展

段落数字 : string 语言模式,默认为纯文本
段落数字 : unknown 语言配置,仅用于 媒体维基 模式和模式 混合介质Wiki-HTML 模式
设置语言模式 .

cm.setLanguage('mediawiki', mwConfig);
cm.setLanguage('html', mwConfig);
cm.setLanguage('css');
cm.setLanguage('javascript');
cm.setLanguage('json');
cm.setLanguage('jsonc');
cm.setLanguage('lua');
cm.setLanguage('vue');
cm.setLanguage('abusefilter', dialect);

线程绘制

扩展

增加:2.28.0

段落数字 : boolean 是否启用行包
在行包与无行包之间切换.

cm.setLineWrapping(false);
cm.setLineWrapping(true);

设置主题

扩展

添加:3.3.0

段落数字 : string 主题名称
设置编辑器的主题 。 默认主题是 light,其他 主题需要使用 registerTheme 函数第一个 :

import {registerTheme, nord} from '@bhsd/codemirror-mediawiki';
registerTheme('nord', nord);
cm.setTheme('nord');

切换

扩展

添加:2.1.3

段落数字 : boolean 是否显示编辑器, 可选
在 CodeMirror 编辑器和本地文本区之间切换 。 需求 初始化为先.

cm.toggle();
cm.toggle(true); // show CodeMirror
cm.toggle(false); // hide CodeMirror

更新

扩展

立即刷新内衣.

cm.update();

静态连接器

光盘N

扩展

增加了版本:3.8.0

类型数字 : string
默认情况下,诸如 维基百科-节点 从 fastly.jsdelivr.net。您可以改变 jsDelivr CDN 请检查url=值 (帮助) 设置此属性.

CodeMirror6.CDN = 'https://cdn.jsdelivr.net';

静态方法

获取MwConfig

扩展

增加版本:2.4.7

段落数字 : Config 页:1 维基语录 配置
返回时数字 : MwConfig
从WikiLint配置中衍生出MediaWiki模式的配置.

const mwConfig = CodeMirror6.getMwConfig(config);

替换选择( 静态)

扩展

添加:2.2.2

段落数字 : EditorView 代码Mirror 编辑器实例
段落数字 : (str: string, range: {from: number, to: number}) => string | [string, number, number?] 替换功能
以替换函数的返回值替换所选文本.

CodeMirror6.replaceSelections(cm.view, str => str.toUpperCase());

扩展

允许复选

扩展

增加了版本:2.1.11

允许多个选择 。 此扩展还可以通过 压住 Alt 键.

对于捆绑的扩展的颗粒控制,您可以导入 registerAllowMultipleSelections 函数 :

import {registerAllowMultipleSelections} from '@bhsd/codemirror-mediawiki';
registerAllowMultipleSelections();

自动补全

扩展

增加:2.5.1

提供自动补全 .

密钥绑定 :

  • Shift + 键 Enter: 触发自动补全
  • Tab: 接受所选建议

对于捆绑的扩展的颗粒控制,您可以导入 registerAutocompletion 函数 :

import {registerAutocompletion} from '@bhsd/codemirror-mediawiki';
registerAutocompletion();

隔离

扩展

添加: 3.1.0

当 Wikitext 包含从右到左文本时,将双向文本从 周围文本.

此扩展不包含在 mediawiki 语言支持 默认。 您需要导入 registerBidiIsolates 函数 :

import {registerBidiIsolates} from '@bhsd/codemirror-mediawiki';
registerBidiIsolates();

块显示器

扩展

增加:3.16.0

将光标显示为块 .

对于捆绑的扩展的颗粒控制,您可以导入 registerBlockCursor 函数 :

import {registerBlockCursor} from '@bhsd/codemirror-mediawiki';
registerBlockCursor();

括号匹配

扩展

添加:2.0.9

匹配或未匹配的括号或标记以青色或暗红色突出显示 光标在它们旁边.

对于捆绑的扩展的颗粒控制,您可以导入 registerBracketMatching 函数 :

import {registerBracketMatching} from '@bhsd/codemirror-mediawiki';
registerBracketMatching();

关闭括号

扩展

添加:2.0.9

自动关闭括号{, (中文(简体) ), [ 财务报告和审定财务报表 ()和引文(英文:",以及 ' 除外 为MediaWiki模式).

对于捆绑的扩展的颗粒控制,您可以导入 registerCloseBrackets 函数 :

import {registerCloseBrackets} from '@bhsd/codemirror-mediawiki';
registerCloseBrackets();

关闭标签

扩展

添加:3.12.0

自动关闭 HTML/XML 标记 .

对于捆绑的扩展的颗粒控制,您需要注册这个 特定语言的扩展名( e)HTML 语言, (中文(简体) ), 媒体维基 或者说 阴道:

import {
    registerCloseTagsForHTML,
    registerCloseTagsForMediaWiki,
    registerCloseTagsForVue,
} from '@bhsd/codemirror-mediawiki';
registerCloseTagsForHTML();
registerCloseTagsForMediaWiki();
registerCloseTagsForVue();

代码折叠

扩展

添加:2.3.0

在 MediaWiki 中打印段落、模板、解析函数和扩展标签 模式,以及其它模式中的代码块.

密钥绑定 :

  • Ctrl + 键 Shift + 键 [编号 :Cmd + 键 Alt + 键 [: 在所选文本上显示
  • Ctrl + 键 Shift + 键 ]编号 :Cmd + 键 Alt + 键 ]: 所选文本去掉文件夹
  • Ctrl + 键 Alt + 键 [: 全部折叠
  • Ctrl + 键 Alt + 键 ]: 全部撤销
  • Ctrl + 键 Alt + 键 .: 全部折叠 <ref> 标记

对于捆绑的扩展的颗粒控制,您可以导入 registerCodeFolding 函数 :

import {registerCodeFolding} from '@bhsd/codemirror-mediawiki';
registerCodeFolding();

颜色选择器

扩展

增加版本:2.18.0

为 CSS 和 MediaWiki 模式提供取色器 .

对于捆绑的扩展的颗粒控制,您需要注册这个 特定语言的扩展名( e)支助科, (中文(简体) ), HTML 语言, (中文(简体) ), 媒体维基 或者说 阴道:

import {
    registerColorPickerForCSS,
    registerColorPickerForHTML,
    registerColorPickerForMediaWiki,
    registerColorPickerForVue,
} from '@bhsd/codemirror-mediawiki';
registerColorPickerForCSS();
registerColorPickerForHTML();
registerColorPickerForMediaWiki();
registerColorPickerForVue();

逃脱

扩展

添加:2.2.2

密钥绑定 :

  • Ctrl编号 :Cmd + 键 [: 以 HTML 实体摆脱所选文本
  • Ctrl编号 :Cmd + 键 ]: 以 URL 编码逃避所选文本
  • Ctrl编号 :Cmd + 键 \: 将所选文本从 魔法词

对于捆绑的扩展的颗粒控制,您可以导入 registerEscape 函数 :

import {registerEscape} from '@bhsd/codemirror-mediawiki';
// optionally pass the article path of a MediaWiki site
registerEscape('https://www.mediawiki.org/wiki/');

突出显示活动线

扩展

突出显示光标在浅青色中的行.

对于捆绑的扩展的颗粒控制,您可以导入 registerHighlightActiveLine 函数 :

import {registerHighlightActiveLine} from '@bhsd/codemirror-mediawiki';
registerHighlightActiveLine();

突出显示选题

扩展

增加版本:2.15.3

以浅绿色突出显示匹配选择的文本 .

对于捆绑的扩展的颗粒控制,您可以导入 registerHighlightSelectionMatches 函数 :

import {registerHighlightSelectionMatches} from '@bhsd/codemirror-mediawiki';
registerHighlightSelectionMatches();	

突出显示特殊聊天

扩展

将隐形字符显示为红色点.

对于捆绑的扩展的颗粒控制,您可以导入 registerHighlightSpecialChars 函数 :

import {registerHighlightSpecialChars} from '@bhsd/codemirror-mediawiki';
registerHighlightSpecialChars();

突出显示显示白空间

扩展

添加:2.0.9

突出显示红-橙色的白色空间.

对于捆绑的扩展的颗粒控制,您可以导入 registerHighlightTrailingWhitespace 函数 :

import {registerHighlightTrailingWhitespace} from '@bhsd/codemirror-mediawiki';
registerHighlightTrailingWhitespace();

突出显示白空间

扩展

添加:2.0.12

将空格和标签显示为点和箭头.

对于捆绑的扩展的颗粒控制,您可以导入 registerHighlightWhitespace 函数 :

import {registerHighlightWhitespace} from '@bhsd/codemirror-mediawiki';
registerHighlightWhitespace();

盘旋

扩展

添加:2.21.1

在徘徊时显示魔法词或模板名的帮助信息.

对于捆绑的扩展的颗粒控制,您需要注册这个 特定语言的扩展名( e)虐待问题 或者说 媒体维基:

import {
    registerHover, // for MediaWiki
    registerHoverForAbuseFilter,
} from '@bhsd/codemirror-mediawiki';
// optionally pass the article path of a MediaWiki site
registerHover('https://www.mediawiki.org/wiki/');
registerHoverForAbuseFilter();

缩进指南

扩展

增加:3.16.0

将缩进向导显示为垂直行。 此扩展不存在于 MediaWiki模式.

对于捆绑的扩展的颗粒控制,您可以导入 registerIndentGuide 函数 :

import {registerIndentGuide} from '@bhsd/codemirror-mediawiki';
registerIndentGuide();

内置提示

扩展

增加:2.22.0

显示匿名参数的内置提示 .

对于捆绑的扩展的颗粒控制,您可以导入 registerInlayHints 函数 :

import {registerInlayHints} from '@bhsd/codemirror-mediawiki';
// optionally pass the article path of a MediaWiki site
registerInlayHints('https://www.mediawiki.org/wiki/');
扩展

增加版本:2.19.6

CTRL/CMD点击打开新标签中的链接.

对于捆绑的扩展的颗粒控制,您需要注册这个 特定语言的扩展名( e)媒体维基 或非媒体维基语言:

import {
    registerOpenLinks, // for MediaWiki
    registerOpenLinksForNonMediaWiki,
} from '@bhsd/codemirror-mediawiki';
// optionally pass the article path of a MediaWiki site
registerOpenLinks('https://www.mediawiki.org/wiki/');
registerOpenLinksForNonMediaWiki();

转发

扩展

增加版本:2.17.1

显示内容 <ref> 标记在其它地方徘徊时定义.

对于捆绑的扩展的颗粒控制,您可以导入 registerRefHover 函数 :

import {registerRefHover} from '@bhsd/codemirror-mediawiki';
// optionally pass the article path of a MediaWiki site
registerRefHover('https://www.mediawiki.org/wiki/');

滚动末端

扩展

增加版本:2.15.3

允许编辑器被滚动到文档末尾.

对于捆绑的扩展的颗粒控制,您可以导入 registerScrollPastEnd 函数 :

import {registerScrollPastEnd} from '@bhsd/codemirror-mediawiki';
registerScrollPastEnd();

签名帮助

扩展

添加:2.21.1

输入时显示解析器函数签名 .

对于捆绑的扩展的颗粒控制,您需要注册这个 特定语言的扩展名( e)虐待问题 或者说 媒体维基:

import {
    registerSignatureHelp, // for MediaWiki
    registerSignatureHelpForAbuseFilter,
} from '@bhsd/codemirror-mediawiki';
// optionally pass the article path of a MediaWiki site
registerSignatureHelp('https://www.mediawiki.org/wiki/');
registerSignatureHelpForAbuseFilter();

粘相滚动

扩展

增加版本:4.5.0

滚动时在编辑器上方粘接的打开边框.

对于捆绑的扩展的颗粒控制,您可以导入 registerStickyScroll 函数 :

import {registerStickyScroll} from '@bhsd/codemirror-mediawiki';
registerStickyScroll();

已知问题

语法突出显示

扩展

重定向

  1. 重定向目标不能包含非法字符( Q)示例) (中文(简体) ).

延长

  1. 扩展名: Poem 应 防止格式化的文本(示例) (中文(简体) ).

转移

  1. 以 # 显示为解析器 函数示例) (中文(简体) ).
  2. 模板参数名称中的 Wikitext 不突出显示(示例) (中文(简体) ).
  3. 新行之后的模板参数名称不被识别(示例) (中文(简体) ).
  4. 类似模板的语法,但没有模板名称(示例) (中文(简体) ).

标题

  1. 在特别业务标准下的评论不应打破各节标题(示例) (中文(简体) ).
  2. 含有多行扩展标记的章节标题不突出显示(示例) (中文(简体) ).

图表

  1. 在SOL上的评论不应打破表格语法(示例) (中文(简体) ).
  2. !! 链接中应启动新的 <th> (单位:千美元)示例) (中文(简体) ).

行为切换

  1. URL协议后的行为切换不应被突出显示为URL(示例) (中文(简体) ).
  1. 反向管伎俩( Name示例) (中文(简体) ).
  1. 不支持 IPv6 地址 (示例) (中文(简体) ).
  2. 双括号内的外部链接不正确突出(示例) (中文(简体) ).

块元素

  1. 在SOL上的评论断开突出显示(示例) (中文(简体) ).
  2. 预格式文本的假正值,如果有类别的话(示例(中文(简体) ) 或 HTML 标记 (示例) (中文(简体) ).

语文转换

  1. 与 <nowiki> (单位:千美元)示例) (中文(简体) ).

版本与发布记录

@bhsd/codemirror-mediawiki 共发布 258 个版本,首次发布于 2023/05/17;过去 12 个月发布了 56 个版本。

版本发布日期距今
4.8.1latest2026/11/08今天
4.8.02026/10/2613 天前
4.7.22026/10/1821 天前
4.7.12026/10/071 个月前
4.7.02026/10/071 个月前
4.6.12026/10/021 个月前

其他发布通道:beta → 4.5.0。

关于 @bhsd/codemirror-mediawiki 的常见问题

@bhsd/codemirror-mediawiki 是什么?

基于wikimedia/mediawiki-extension-CodeMiror的已修改的代码Miror模式

如何安装 @bhsd/codemirror-mediawiki?

在项目目录运行 npm install @bhsd/codemirror-mediawiki,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@codemirror/lint(^6.7.0)、@codemirror/view(^6.39.0)、@codemirror/state(^6.0.0)、@codemirror/search(^6.4.0)、@codemirror/commands(^6.5.0)、@codemirror/lang-css(^6.0.0)、@codemirror/lang-vue(>=0.1.2)、@codemirror/language(^6.3.0)、@codemirror/lang-html(^6.0.0)、@codemirror/autocomplete(^6.9.0)、@codemirror/legacy-modes(^6.0.0)、@codemirror/lang-javascript(^6.1.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bhsd/codemirror-mediawiki 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bhsd/codemirror-mediawiki 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@bhsd/codemirror-mediawiki 可以商用吗?

@bhsd/codemirror-mediawiki 使用 GPL-2.0-or-later 许可。强 Copyleft:分发包含该代码的软件时,整个作品需以兼容的 GPL 许可开源。仅在内部使用、不对外分发时不触发此义务。以上为概括,不构成法律意见,请以许可原文为准。

@bhsd/codemirror-mediawiki 的下载量有多少?

根据 npm 官方下载统计,@bhsd/codemirror-mediawiki 在 2026/10/08 – 2026/11/06 这 30 天内被下载 1,772 次,日均约 59 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bhsd/codemirror-mediawiki 还在维护吗?

最新版本 4.8.1 发布于 2026/11/08(今天);至今共发布 258 个版本,其中过去 12 个月发布了 56 个;首次发布于 2023/05/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。