Extension:CodeMirror

From mediawiki.org
This page is a translated version of the page Extension:CodeMirror and the translation is 97% complete.
请勿与 CodeEditor 混淆。
MediaWiki扩展手册
CodeMirror
发行状态: 稳定版
实现 用户界面
描述 为 wikitext 编辑器提供语法高亮
作者 Pavel Astakhov (pastakhov讨论)
最新版本 5.0.0
兼容性政策 快照跟随MediaWiki发布。 master分支不向后兼容。
MediaWiki 1.32+
PHP 5.3+
数据库更改
许可协议 GNU通用公眾授權條款2.0或更新版本
下載
  • $wgCodeMirrorConflictingGadgets
  • $wgCodeMirrorV6
  • $wgCodeMirrorLineNumberingNamespaces
季度下載量 348 (Ranked 16th)
正在使用的公开wiki数 6,549 (Ranked 62nd)
前往translatewiki.net翻譯CodeMirror扩展
Vagrant角色 codemirror
問題 开启的任务 · 报告错误

CodeMirror扩展为MediaWiki中的wiki文本(源代码)编辑器提供语法高亮功能。 它会在编辑工具栏中添加一个图标为的按钮,点击可以切换开启和关闭语法高亮。 支持2010年WikiEditor工具栏以及可视化编辑器工具栏

语法高亮功能默认关闭。 开启功能后,它将使用CodeMirror库提供的编辑器替换标准的多行文本框。 功能关闭后,不产生效果。

此扩展中使用的颜色已经过优化,具有更高的对比度、可访问性和更好的可读性,现在符合 Web 内容无障碍指南(WCAG 1.4.3 AA)。 这些颜色为视力受限的人以及在明亮日光条件下工作的用户提供了更好的访问。 (更多信息


功能

括号匹配

当光标位于任何括号对之间时,此功能会突出显示最里面的一对括号,当光标直接位于括号旁边时,该功能会突出显示相应的匹配括号。 当使用这些编辑器在任何命名空间中打开语法高亮显示时,括号匹配在两个编辑器中都处于活动状态。

文本行编号

在 wikitext 编辑模式下,行号会自动显示在两个编辑器中。

此功能仅针对大多数 wiki 上的模板命名空间以及某些 wiki 上的所有命名空间启用(参见路线图配置)。

色盲模式

对于难以区分颜色的用户,CodeMirror 提供了色盲友好模式。 此功能可以在启用了 CodeMirror 的 wiki 上通过导航到 Special:Preferences 页面来激活。

激活色盲友好方案后,以下页面元素的颜色会发生变化:

标题、符号、签名、章节名称、魔术字 #E4A400
模板 #9C3A00
HTML 标签、引用、数学表达式 #56B4E9
变量 #009E73

此外,还会从所有文本和对象中删除背景高亮和颜色。 加粗和下划线行为不受影响。


浏览器支持

支持所有受MediaWiki支持的浏览器。

安裝

  • 安装WikiEditor 扩展或VisualEditor 扩展;本扩展需要以上两者中的至少一个。
  • 下载文件,并将其放置在您extensions/文件夹中的CodeMirror目录内。
    开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeMirror
  • 将下列代码放置在您的LocalSettings.php 的底部:
    wfLoadExtension( 'CodeMirror' );
    
  • 按需求配置。
  • Yes 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。


使用Vagrant安装:

  • 如果使用Vagrant ,请通过vagrant roles enable codemirror --provision安装

配置

颜色和样式的自定义见元维基帮助页面。 您可以使用自定义的wikitext语法高亮样式。 所用的样式在这里。 您的自定义样式应放入common.css

添加上述代码到你的LocalSettings.php 的结尾。

# 默认情况下允许使用 CodeMirror,但仍允许用户禁用它
$wgDefaultUserOptions['usecodemirror'] = true;

要启用额外功能:

$wgCodeMirrorLineNumberingNamespaces
将行编号限制为特定命名空间。 默认为 null,即在所有命名空间启用。 设为 [] 在所有页面禁用。
$wgCodeMirrorV6
Temporary feature flag to control the migration to CodeMirror 6 (phab:T259059).
$wgCodeMirrorConflictingGadgets
An array of gadget names that, if enabled, will prevent CodeMirror from loading. Defaults to wikEd.

扩展集成

This functionality is subject to change following the CodeMirror 6 upgrade.

如果你的MediaWiki扩展添加了新的标签并且想确保CodeMirror正确高亮其中的内容,可以为你的扩展添加CodeMirror支持。两则例子:Cite扩展PhpTags扩展

JavaScript 集成

此扩展中使用了以下前端钩子

钩子 参数
类型 描述
ext.CodeMirror.switch 布尔值 现在是否显示 CodeMirror 编辑器
jQuery 对象 当前的“编辑器”,为正常的 ‎<textarea />.CodeMirror 元素。

如果需要与 CodeMirror 实例的内容交互,请使用 jQuery.plugin.textSelection

待办事项


参见