An Anki plugin that adds syntax highlighting to code snippets.
- A color scheme that works in day and night modes.
- Works on Anki for desktop and AnkiDroid.
- WYSIWYG highlighting.
- Block and inline highlighting
The recommended way to install this plugin is directly from AnkiWeb using Anki’s add-on management.
Alternatively, you can install this plugin from source.
- Run
dev/bin/package. - Import
codehighlighter.ankiaddonin Anki.
You can either highlight code from your clipboard or highlight a snippet of code already present in a card field.
- Put the cursor in the place you want to place your code.
- Press
⌃+o(on macOS,⌘+o) or click this add-on’s button in the editor’s button bar.
- Write a code snippet in a card editor.
- Select the code snippet.
- Press
⌃+o(on macOS,⌘+o) or click this add-on’s button in the editor’s button bar.
The plugin works on untagged code blocks.
Do not add your own HTML tags like <code> or <pre><code> to the snippet you
want to highlight.
If you have run into issues with preannotated code snippets, see
this comment for how to fix this.
This add-on uses Pygments. It creates highlighting tags when you run this plugin. This is useful for creating cloze cards. It supports both inline code and code blocks.
The plugin accepts the following configuration options:
block-style(default: "display:flex; justify-content:center;") — The CSS style applied to the outer most container of a block code snippet. The default centers the block.auto-detect-display-style(default:true) — Whether the add-on should auto-detect if the code snippet should be formatted as a block or inline.shortcut(e.g.ctrl+o) — this sets the shortcut that triggers this plugin.auto-update-media(default:true) — Whether the plugin updates the CSS stylesheet.dev-mode(default:false) — Enables developer mode, which exposes the assets management options (Refresh/Delete assets) under the Tools menu.
You can use other styles than the provided Solarized style. This section explains how.
Warning
Customized styling option is supported as-is. I do not provide special support for creating the stylesheet file nor guarantee forward compatibility.
- Set
auto-update-mediatofalse. - In your Anki profile's media directory
replace
_gch-pygments-solarized.csswith your stylesheet.
Tip
Check out tools/generatepygmentscss.py for how I generate the stylesheet
for Solarized. You can reuse it for your own stylesheet.
If you see “The selection splits an HTML node, which prevents the highlighting plugin from proceeding,” you are partially selecting an HTML element.
This plugin can not highlight a selection that partially selects an HTML element. To work around this, see these instructions.
This add-on installs its own CSS files into Anki’s media folder. You need to run some manual steps if you want to fully delete the add-on.
Warning
Removing the CSS stylesheet file will remove highlighting from all notes that use that stylesheet. If you want to delete the add-on but keep already highlighted cards, then skip the file removal steps (1, 2, and 3).
- Open the add-on’s config, and add or set
"dev-mode"totrue. - Restart Anki.
- Run
Extras/Tools > Delete Greg’s Code Highlighter Assets. - Delete the add-on.
This manual step is necessary until Anki adds add-on lifecycle hooks.
