From 58611f3e7f567b015be30b0c85b9df43dc4f2311 Mon Sep 17 00:00:00 2001 From: Flag <40310066+Unstoppablesss@users.noreply.github.com> Date: Wed, 13 Sep 2023 17:49:05 +1000 Subject: [PATCH 1/3] Update html.py It won't let the column of numbers remain white in the background when in night mode, and be able to change dynamically. It becomes more nice to look at. --- src/syntax_highlighting/libs/pygments/formatters/html.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/syntax_highlighting/libs/pygments/formatters/html.py b/src/syntax_highlighting/libs/pygments/formatters/html.py index 2969d50..b97c385 100644 --- a/src/syntax_highlighting/libs/pygments/formatters/html.py +++ b/src/syntax_highlighting/libs/pygments/formatters/html.py @@ -55,7 +55,7 @@ def _get_ttype_class(ttype): CSSFILE_TEMPLATE = '''\ -td.linenos { background-color: #f0f0f0; padding-right: 10px; } +td.linenos { background-color: #; padding-right: 10px; } span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; } pre { line-height: 125%%; } %(styledefs)s @@ -609,7 +609,7 @@ def _wrap_tablelinenos(self, inner): if nocls: yield 0, ('' % self.cssclass + '
' + 'style="background-color: #; padding-right: 10px">' '
' +
                       ls + '
') else: From f3dfd25f9184bb3cee255372f9624de74fbf1244 Mon Sep 17 00:00:00 2001 From: Flag <40310066+Unstoppablesss@users.noreply.github.com> Date: Mon, 2 Oct 2023 18:02:22 +1100 Subject: [PATCH 2/3] Update main.py # Preventing conflicts with clone templates --- src/syntax_highlighting/main.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/syntax_highlighting/main.py b/src/syntax_highlighting/main.py index c4369ac..9d243ca 100644 --- a/src/syntax_highlighting/main.py +++ b/src/syntax_highlighting/main.py @@ -17,12 +17,9 @@ import os import sys import re -import json from .consts import * # import addon_path # always use shipped pygments library -# FIXME: properly vendorize pygments, lest we interfere with -# other add-ons that might be shipping their own pygments sys.path.insert(0, os.path.join(addon_path, "libs")) from pygments import highlight @@ -34,6 +31,7 @@ from aqt import mw from aqt.editor import Editor from aqt.utils import showWarning +from anki.utils import json from anki.hooks import addHook, wrap from .config import local_conf @@ -406,12 +404,13 @@ def highlight_code(ed): # TODO: understand why this is neccessary else: if centerfragments: - pretty_code = "".join(["
", + pretty_code = "".join(["
", highlight(code, my_lexer, my_formatter), - "
"]) + "

"]) else: - pretty_code = "".join([highlight(code, my_lexer, my_formatter), - "
"]) + pretty_code = "".join(["
", + highlight(code, my_lexer, my_formatter), + "

"]) pretty_code = process_html(pretty_code) @@ -424,15 +423,14 @@ def process_html(html): """Modify highlighter output to address some Anki idiosyncracies""" # 1.) "Escape" curly bracket sequences reserved to Anki's card template # system by placing an invisible html tag inbetween - for pattern, replacement in ((r"{{", r"{{"), - (r"}}", r"}}"), - (r"::", r"::")): - html = re.sub(pattern, replacement, html) + +# Preventing conflicts with clone templates + html = re.sub(r"(\{\{)(?![c\d+:])", r"{{", html) + html = re.sub(r"(?}", html) return html # Hooks and monkey-patches - if anki21: addHook("setupEditorButtons", onSetupButtons21) Editor.onBridgeCmd = wrap(Editor.onBridgeCmd, onBridgeCmd, "around") From 67c0886b62a868174c69c1b6eaff5a714917d91f Mon Sep 17 00:00:00 2001 From: Flag <40310066+Unstoppablesss@users.noreply.github.com> Date: Tue, 3 Oct 2023 22:25:50 +1100 Subject: [PATCH 3/3] Add files via upload --- .../__pycache__/__init__.cpython-39.opt-2.pyc | Bin 0 -> 244 bytes .../__pycache__/_version.cpython-39.opt-2.pyc | Bin 0 -> 192 bytes .../__pycache__/config.cpython-39.opt-2.pyc | Bin 0 -> 3088 bytes .../__pycache__/consts.cpython-39.opt-2.pyc | Bin 0 -> 406 bytes .../__pycache__/main.cpython-39.opt-2.pyc | Bin 0 -> 9686 bytes src/syntax_highlighting/main.py | 9 ++++----- src/syntax_highlighting/meta.json | 1 + 7 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 src/syntax_highlighting/__pycache__/__init__.cpython-39.opt-2.pyc create mode 100644 src/syntax_highlighting/__pycache__/_version.cpython-39.opt-2.pyc create mode 100644 src/syntax_highlighting/__pycache__/config.cpython-39.opt-2.pyc create mode 100644 src/syntax_highlighting/__pycache__/consts.cpython-39.opt-2.pyc create mode 100644 src/syntax_highlighting/__pycache__/main.cpython-39.opt-2.pyc create mode 100644 src/syntax_highlighting/meta.json diff --git a/src/syntax_highlighting/__pycache__/__init__.cpython-39.opt-2.pyc b/src/syntax_highlighting/__pycache__/__init__.cpython-39.opt-2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be9d7b58829b07179c72327b9100beb004f38a62 GIT binary patch literal 244 zcmYe~<>g`kf|_{7)G|f}hQ}ZdGGGF79Dul321ukZq%h_%7n6yz6`=sV_RXBz1z zrljQO6&o4q8=9CI8<-fHSQ_ic$7kkcmc+;F6;$5hu*uC&Da}c>;{#e!46>Jp5dbYq BJ9_{C literal 0 HcmV?d00001 diff --git a/src/syntax_highlighting/__pycache__/_version.cpython-39.opt-2.pyc b/src/syntax_highlighting/__pycache__/_version.cpython-39.opt-2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b5d19a5ebafba501336db226656896a76cc3a07 GIT binary patch literal 192 zcmYe~<>g`kf|_{7R6QX57{oyaj6jY95EpX*i4=w?h7`tN22G|aRwF$FJtIF&##`L+ z@nxw+#hLke@$oAeikN`vz{IZr{m^2dgnn91VtP($s=iNVQc+@2rM_c9K~83JVhK=( zLU3t8L4Hw*zGGf?rjdSPN=klSv5}#^p^2HXfr+7srLjKDaJ_=cTO2mI`6;D2sdgYs IJ_9iW0PUkN1poj5 literal 0 HcmV?d00001 diff --git a/src/syntax_highlighting/__pycache__/config.cpython-39.opt-2.pyc b/src/syntax_highlighting/__pycache__/config.cpython-39.opt-2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9606304ce87058e67840f1419fbb3bffe35c3f7 GIT binary patch literal 3088 zcmbVO&2JmW6`z@1lB*THEMG8k28$@izcV93MMzu@_#}|CV9ekik|Oq%ta!4-j2sf=Ouoxv{Q0pKPmSr zI~9yevYZ4Dm}1?j!%$7j%8}Tqp3DNwX5579 zuvBLb*v_)#+pJ!Dg`KfRom#d zc;!0|D{pMYCamUR#YW-+-X4i9_V|Wmh>725(XNj#a)FiwKv=#E(P1O@_53~`@#pN1 zT>B&b7xCENW-pnZ#p9R4iq&#hYu$K$hm48*3X^Kf1Dhb>r$MSJuWU=uxqB_4=NT(4j};XI{>P;d(^ z--M8S#JZG>CF4etZ?SaV2+~S^ff-JxX2cG?BSt3_Sr!euj5SU4w7DC1b`vxcr=2E+ zxb9n@dRrYM(rKL^wwx<-FO!tqR+gNKj@t%(vgNGfPV-4@cAMib{E}QPb`|ofnD=!J znikr`MPPHgA|x63-4zGC@c1QfAec4iHCgG)B*^TPa6Zhz!$E%=jwpExySM?H+#MvL ze}b`{>FcZ=C+cn%NhRO%!Gn$Sp^AZFU4AHxcLcW3KZc_2yX9@w;qzXUMjfT?R7V+F zEAH5!*-WFJYBo>#<=iCa^v@u^Kr0;LZvIwo>9{!$2sOtZjMx!!NVz-hhyE!{?DP{I z8&x=ykjNJt)ZDkUG9j@HU28pbtnWCA(rrbYSwHKm)H(`p_9L@vD_`8dqjjcj<^J|~06NYj5v&Y>*YqNPwSp7$EieB z18IS-9pBojO7nqM%_wihalN96l=T{kbqHH>A+eP~8oRiW?7o)Sag-)u(b==lU9{UsI$D z>aU>NM=OH5Ao!9)n42E1U+!qsYC&EB(x;1pFot z{*GoHAWe5ivJg6Y3iKgr4j@MTP#yoVCV{Zk1YM9p@QJ(0d_Z0J1lq_-y#%9SIvn(z zZ??vHm2m-Ak5YR$=VD{Iw&q#dd)IB{QR+_CU{|sL9Jf${T2?};wM&razbvRZT0$YU z;w88!&s$5LyO;}6seJ$46@X@VBl-xB?cr}pvaH0WfU5*gm_9;8BbsG1La~S{t literal 0 HcmV?d00001 diff --git a/src/syntax_highlighting/__pycache__/main.cpython-39.opt-2.pyc b/src/syntax_highlighting/__pycache__/main.cpython-39.opt-2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..18216469a656c44690d0e54369d0c538611b7897 GIT binary patch literal 9686 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 ANdN!< literal 0 HcmV?d00001 diff --git a/src/syntax_highlighting/main.py b/src/syntax_highlighting/main.py index 9d243ca..f3b0eee 100644 --- a/src/syntax_highlighting/main.py +++ b/src/syntax_highlighting/main.py @@ -418,15 +418,14 @@ def highlight_code(ed): ed.web.eval("document.execCommand('inserthtml', false, %s);" % json.dumps(pretty_code)) - def process_html(html): """Modify highlighter output to address some Anki idiosyncracies""" # 1.) "Escape" curly bracket sequences reserved to Anki's card template - # system by placing an invisible html tag inbetween + + # protect the {{c1::}} clone field + html = re.sub(r"\{\{c\d+::", r"\{\{c\d+::", html) + html = re.sub(r"}}", "}}", html) -# Preventing conflicts with clone templates - html = re.sub(r"(\{\{)(?![c\d+:])", r"{{", html) - html = re.sub(r"(?}", html) return html # Hooks and monkey-patches diff --git a/src/syntax_highlighting/meta.json b/src/syntax_highlighting/meta.json new file mode 100644 index 0000000..57585fb --- /dev/null +++ b/src/syntax_highlighting/meta.json @@ -0,0 +1 @@ +{"name": "Syntax Highlighting for Code", "mod": 1538875907, "min_point_version": 0, "max_point_version": 0, "branch_index": 0, "disabled": false, "config": {"hotkey": "Alt+s", "limitToLangs": [], "style": "monokai"}} \ No newline at end of file