https://github.com/bhsd-harry/prism-wiki
A Prism gadget for MediaWiki sites
https://github.com/bhsd-harry/prism-wiki
highlight mediawiki mediawiki-gadget prismjs wikitext
Last synced: 6 months ago
JSON representation
A Prism gadget for MediaWiki sites
- Host: GitHub
- URL: https://github.com/bhsd-harry/prism-wiki
- Owner: bhsd-harry
- License: gpl-3.0
- Created: 2024-03-21T14:58:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-28T06:38:17.000Z (6 months ago)
- Last Synced: 2026-01-28T23:10:31.213Z (6 months ago)
- Topics: highlight, mediawiki, mediawiki-gadget, prismjs, wikitext
- Language: TypeScript
- Homepage: https://bhsd-harry.github.io/prism-wiki/
- Size: 839 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Prism-Wiki
[](https://www.npmjs.com/package/prism-wiki)
[](https://github.com/bhsd-harry/prism-wiki/actions/workflows/github-code-scanning/codeql)
[](https://app.codacy.com/gh/bhsd-harry/prism-wiki/dashboard)
**Prism-Wiki** 是由 Bhsd 编写的一款用于 MediaWiki 站点的代码块高亮小工具,主要基于 [Prism](https://prismjs.com/),并使用 [WikiParser-Node](https://www.npmjs.com/package/wikiparser-node) 改进对[维基文本](https://www.mediawiki.org/wiki/Wikitext)的高亮模式。
**Prism-Wiki** 也能用于在非 MediaWiki 的浏览器或 [Node.js](https://nodejs.org/) 环境下改进 [Prism](https://prismjs.com/) 对[维基文本](https://www.mediawiki.org/wiki/Wikitext)的高亮支持,详见 [Node.js 用法](#nodejs-用法)。使用案例可以参考 [WikiParser-Node](https://www.npmjs.com/package/wikiparser-node) 渲染的 [`` 标签](https://bhsd-harry.github.io/wikiparser-website/Help%3ARecent_changes#L-1)。
## MediaWiki 站点小工具
### 使用方法
在*个人 JS 页*添加以下代码:
```js
mw.loader.load('//cdn.jsdelivr.net/npm/prism-wiki');
```
或
```js
mw.loader.load('//unpkg.com/prism-wiki/dist/main.min.js');
```
所有指定了语言的代码块都会被自动高亮,未指定语言的代码块可以双击后手动输入语言并高亮。
### 设置
根据需要在加载小工具之前添加以下代码:
```js
window.Prism = window.Prism || {};
Prism.theme = ''; // 主题,可省略
Prism.pluginPaths = []; // 插件相对路径,可省略
Prism.CDN = 'https://cdn.jsdelivr.net'; // jsDelivr 端点,可省略
```
#### 主题
所有可用的 Prism 主题都可以在[这里](https://prismjs.com/examples)找到。
#### 插件相对路径
所有可用的 Prism 插件都可以在[这里](https://github.com/PrismJS/prism/tree/master/plugins)找到。插件路径需相对于 `plugins/` 填写,注意有些插件同时包含了 JavaScript 和 CSS 文件,例如加载 `autolinker` 插件:
```js
Prism.pluginPaths = [
'autolinker/prism-autolinker.min.js',
'autolinker/prism-autolinker.min.css',
];
```
小工具总是加载 `line-numbers`、`show-language`、`copy-to-clipboard` 和 `inline-color` 插件,不需要手动添加。
#### CDN
小工具默认从 `fastly.jsdelivr.net` 加载 Prism 库,但也可指定其他 [jsDelivr CDN](https://www.jsdelivr.com/network),例如 `cdn.jsdelivr.net` 或 `fastly.jsdelivr.net`。
## Node.js 用法
### 安装
```bash
npm install prismjs wikilint # peer dependencies
npm install prism-wiki
```
### 示例
```js
const Prism = require('prismjs'),
Parser = require('wikilint'),
registerWiki = require('prism-wiki').default;
registerWiki(Prism, Parser);
Prism.highlight('[[Foo]]', Prism.languages.wiki, 'wiki');
```