AnkiWeb
- Rating
- 5 (π 4 Β· π 1)
- Updated
- 2022-07-25
- Anki versions
- 2.1.66~
- Description language
- en
AnkiWeb addon 2065559429
Runs custom JavaScript/Python scripts and inserts symbols/strings in the Anki editor via keyboard shortcuts or popup menus, configured through JSON menus and CodeMirror.
Open on AnkiWeb GitHub Forum topic Ask about alternatives
abandoned
| Min Anki | Max Anki | Updated |
|---|---|---|
| 2.1.50 | 2.1.66+ | 2022-07-25 |
Loadingβ¦
Customizes Anki editor keymap to insert configured text/HTML or run JavaScript for key-plus-modifier shortcuts, though superseded by other add-ons.
Enables adding and editing Anki notes in extended CommonMark Markdown via editor fields or a separate window, with CodeMirror editing, extensions, and configurable conversion.
Inserts Unicode symbols into Anki cards via predefined key sequences, with customizable symbol lists synced per profile and optional raw HTML support.
Creates lists with the shuffle class and randomizes them via a JavaScript script, requiring card-template setup and updated for recent Anki versions.
Automatically detects Python-side Anki shortcuts and lets users override or remove them via configuration, including window-close bindings, though detection may be imprecise.
Simplifies managing card template scripts and HTML snippets, enabling reusable JavaScript insertion with conditions, template overwriting, developer hooks, and version updates.
Anki addon (https://ankiweb.net/shared/info/2065559429) to run custom scripts and insert symbols/strings in the Anki editor using keyboard shortcuts or popup menus (Anki forum https://forums.ankiweb.net/t/editor-js-snippets-support-thread/14958).
Configure symbols/strings, JavaScript or Python snippets to be inserted/executed in the editor from keyboard shortcuts (Qt format, see https://doc.qt.io/qt-5/qkeysequence.html).
<img src="https://github.com/TRIAEIOU/Editor-Scripts-Symbols/blob/main/Screenshots/overview.png" height="800">
Addon configuration of scripts and symbols to run/insert is made in the addon configuration. To speed up and facilitate editing of configured scripts and symbols a CodeMirror 6 editor with JSON syntax highlighting is available from the context menu from the editor fields. Alternatively you can use the built in Anki addon configuration editor available from the Tools β Addons β Configure addon menu. The ESS editor has the following key board shortcuts
Addon general configuration is under Β΄SettingsΒ΄.
Editor shortcut: Keyboard shorcut to open the ESS editor from the Anki editor. (optional, default none)Popup shortcut: Keyboard shortcut to open root menu (corresponding to the 'Scripts & Symbols' node) at caret position when in an editor field. (optional)Size mode: Size mode for config editor, valid options are last (same size as last time), parent (same size as editor window) and XXXXxYYYY where XXXX is the width in pixels and YYYY is the height. (optional, default last)CSS: Custom CSS to be applied to the config editor, for instance .cm-editor .cm-content {white-space: pre-wrap; word-break: break-word;} to word wrap (see https://codemirror.net/6/examples/styling/ for styling). (optional, default none)Last geometry: Used by addon to store last geometry, do not edit.Add scripts or symbols by adding JSON objects and lists in hierarchal "node tree" under "Scripts & Symbols" in the configuration. The current version of the configuration is backed up in the addon directory before saving new configuration (overwritten on next save). Each node is one of the following:
1. Menu: Menu name.2. Shortcut: Keyboard shortcut to open menu at caret position. (optional)3. Items: JSON list of children.1. Symbol: Symbol/string to insert2. Shortcut: Keyboard shortcut to insert symbol/string. (optional)3. HTML: Set to string "true" to interpret string as HTML: "HTML": "true" (optional, defaults to false).1. Script: Title/name of script.2. Shortcut: Keyboard shortcut to execute script. (optional)3. Language: Script language, must be "JS".4. Pre: JavaScript command(s) to prepend to the file contents. (optional)5. File: File to load script commands from in [addon]/user_files. (optional)6. Post: JavaScript command(s) to append to the file contents. (optional)1. Script: Title/name of script.2. Shortcut: Keyboard shortcut to execute script. (optional)3. Language: Script language, must be "PY".4. Pre: Python command(s) to prepend to the file contents. (optional)5. File: File to load script commands from in [addon]/user_files. (optional)6. Post: Python command(s) to append to the file contents. (optional)Sample configuration below. <pre><code>{ "Settings": { "Editor shortcut": "", "Popup shortcut": "Ctrl+Alt+j", "Size mode": "last", "CSS": "" }, "Scripts & Symbols": [ { "1. Menu": "Symbols", "2. Shortcut": "Shift+Alt+S", "3. Items": [ { "1. Menu": "Arrows", "2. Shortcut": "Shift+Alt+A", "3. Items": [ { "1. Symbol": "β", "2. Shortcut": "Alt+Left", "3. HTML": "false" }, { "1. Symbol": "β", "2. Shortcut": "Alt+Right", "3. HTML": "false" } ] }, { "1. Symbol": "Ξ±", "2. Shortcut": "Alt+a", "3. HTML": "false" }, { "1. Symbol": "Ξ²", "2. Shortcut": "Alt+b", "3. HTML": "false" } ] }, { "1. Script": "Lowercase", "2. Shortcut": "Shift+Alt+L", "3. Language": "JS", "4. Pre": "(function(){const sel = document.activeElement.shadowRoot.getSelection(); for (i = 0; i < sel.rangeCount; i++) { const rng = sel.getRangeAt(i); let input = new XMLSerializer().serializeToString(rng.extractContents()); input = input.toLowerCase(); rng.insertNode(rng.createContextualFragment(input)); sel.addRange(rng);}})();", "5. File": "", "6. Post": "" } ] }</code></pre>
Feel free to share your script snippets in https://forums.ankiweb.net/t/useful-javascript-snippets-for-the-editor/14536