Anki: add syntax highlighting with javascript (highlight.js)
Tested on Anki 2.1.44 desktop version, however, I could not make it work for Ankidroid.
Go to highlightjs.org and download a custom package. copy and paste the files highlight.min.js
and xxxxx.min.css
into the Anki folder: /collection.media/
. This folder is usually located around:
- On windows:
C:\Users\win_user_name\AppData\Roaming\Anki2\user_name_in_anki\collection.media
- On Mac:
~/Library/Application Support/Anki2
- On Linux:
~/.local/share/Anki2
Create a file my_highlight.js
and paste the following code inside:
document.querySelectorAll('pre code').forEach((block) => { hljs.highlightBlock(block); });
Move this file into your /collection.media/
folder as well. Now, go to the menu "Tools" -> "Note Types" and select the note type you'd like to use for syntax highlighting. Click on that type and the button"Cards..."
.
Choose "front template" radio button and paste the following:
{{Front}} <link rel="stylesheet" href="xxxxx.min.css"> <script> if (typeof hljs === "undefined") { var script = document.createElement('script'); script.src = "highlight.min.js"; script.async = false; document.head.appendChild(script); } var script = document.createElement('script'); script.src = 'my_highlight.js'; script.async = false; document.head.appendChild(script); document.head.removeChild(script); </script> <script>hljs.highlightAll();</script>
Now if everything went according to plan you can now create a card and open the "edit html" window add:
<pre><code class="language-cpp"> some code </pre><code>
to see some syntax highlighting!
Reference
No comments