Skip to content

bhsd-harry/prism-wiki

Repository files navigation

Prism-Wiki

npm version CodeQL Codacy Badge

Prism-Wiki 是由 Bhsd 编写的一款用于 MediaWiki 站点的代码块高亮小工具,主要基于 Prism,并使用 WikiParser-Node 改进对维基文本的高亮模式。

Prism-Wiki 也能用于在非 MediaWiki 的浏览器或 Node.js 环境下改进 Prism维基文本的高亮支持,详见 Node.js 用法。使用案例可以参考 WikiParser-Node 渲染的 <syntaxhighlight> 标签

MediaWiki 站点小工具

使用方法

个人 JS 页添加以下代码:

mw.loader.load('//cdn.jsdelivr.net/npm/prism-wiki');

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

所有指定了语言的代码块都会被自动高亮,未指定语言的代码块可以双击后手动输入语言并高亮。

设置

根据需要在加载小工具之前添加以下代码:

window.Prism = window.Prism || {};
Prism.theme = ''; // 主题,可省略
Prism.pluginPaths = []; // 插件相对路径,可省略
Prism.CDN = 'https://cdn.jsdelivr.net'; // jsDelivr 端点,可省略

主题

所有可用的 Prism 主题都可以在这里找到。

插件相对路径

所有可用的 Prism 插件都可以在这里找到。插件路径需相对于 plugins/ 填写,注意有些插件同时包含了 JavaScript 和 CSS 文件,例如加载 autolinker 插件:

Prism.pluginPaths = [
	'autolinker/prism-autolinker.min.js',
	'autolinker/prism-autolinker.min.css',
];

小工具总是加载 line-numbersshow-languagecopy-to-clipboardinline-color 插件,不需要手动添加。

CDN

小工具默认从 testingcf.jsdelivr.net 加载 Prism 库,但也可指定其他 jsDelivr CDN,例如 cdn.jsdelivr.netfastly.jsdelivr.net

Node.js 用法

安装

npm install prismjs wikilint # peer dependencies
npm install prism-wiki

示例

const Prism = require('prismjs'),
	Parser = require('wikilint'),
	registerWiki = require('prism-wiki').default;

registerWiki(Prism, Parser);
Prism.highlight('[[Foo]]', Prism.languages.wiki, 'wiki');