prism-wiki
v2.2.0
Published
A Prism gadget for MediaWiki sites
Maintainers
Readme
Prism-Wiki
Other Languages
Introduction
Prism-Wiki is a code block highlighting gadget for MediaWiki sites, written by Bhsd. It is primarily based on Prism and uses WikiParser-Node to improve Wikitext highlighting.
Prism-Wiki can also be used to enhance Prism's support for Wikitext highlighting in non-MediaWiki browser environments or Node.js environments, see Node.js Usage. An example of Node.js usage can be found from the <syntaxhighlight> tag rendered by WikiParser-Node.
MediaWiki Gadget
Usage
Add the following code to your personal JS page:
mw.loader.load('//cdn.jsdelivr.net/npm/prism-wiki');Or
mw.loader.load('//unpkg.com/prism-wiki/dist/main.min.js');All code blocks with specified languages will be automatically highlighted, while those without specified languages can be double-clicked to manually input the language and highlight.
Configuration
Add the following code to your personal JS page before loading the gadget as needed:
window.Prism = window.Prism || {};
Prism.theme = ''; // Theme name, optional
Prism.pluginPaths = []; // Relative paths of plugins, optional
Prism.CDN = 'https://cdn.jsdelivr.net'; // jsDelivr endpoint, optionalTheme
All available Prism themes can be found here.
Relative Paths of Plugins
All available Prism plugins can be found here. The plugin paths should be specified relative to plugins/. Note that some plugins include both JavaScript and CSS files, for example, to load the autolinker plugin:
Prism.pluginPaths = [
'autolinker/prism-autolinker.min.js',
'autolinker/prism-autolinker.min.css',
];This gadget always loads the line-numbers, show-language, copy-to-clipboard, and inline-color plugins, so there is no need to add them manually.
CDN
By default, this gadget loads the Prism library from fastly.jsdelivr.net, but you can specify other jsDelivr CDN, such as cdn.jsdelivr.net.
Node.js Usage
Installation
npm install prism-wiki
# peer dependencies; wikilint can be replaced by wikiparser-node
npm install prismjs wikilintExample
const Prism = require('prismjs'),
Parser = require('wikilint'),
registerWiki = require('prism-wiki').default;
registerWiki(Prism, Parser);
Prism.highlight('[[Foo]]', Prism.languages.wiki, 'wiki');