-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path__init__.py
63 lines (44 loc) · 1.52 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from aqt import mw
from aqt.utils import showInfo
from anki.hooks import addHook
import anki
import os
import shutil
from .Template import EDITOR, FRONT, BACK, CSS
TEMPLATENAME = "Anki X Markdown X MindMap"
FIELDS = ["Question", "Mindmap", "Answer", "Detail", "Code"]
def customizeEditor(editor):
if editor.note.model()["name"] == TEMPLATENAME:
editor.web.eval(EDITOR)
addHook("loadNote", customizeEditor)
def createOrUpdateTemplate():
model = mw.col.models.byName(TEMPLATENAME)
if not model:
createTemplate()
updateTemplate()
def createTemplate():
m = mw.col.models
model = m.new(TEMPLATENAME)
for field in FIELDS:
m.addField(model, m.newField(field))
template = m.newTemplate(TEMPLATENAME)
template["qfmt"] = FRONT
template["afmt"] = BACK
model["css"] = CSS
m.addTemplate(model, template)
m.add(model)
m.save(model)
def updateTemplate():
model = mw.col.models.byName(TEMPLATENAME)
model["tmpls"][0]["qfmt"] = FRONT
model["tmpls"][0]["afmt"] = BACK
model["css"] = CSS
mw.col.models.save(model)
addonFolder = os.path.join(os.path.dirname(os.path.realpath(__file__)))
assetsFolder = os.path.join(addonFolder, "assets")
mediaFolder = mw.col.media.dir()
for assetName in os.listdir(assetsFolder):
assetFullPath = os.path.join(assetsFolder, assetName)
if not os.path.exists(os.path.join(mediaFolder, assetName)):
mw.col.media.add_file(assetFullPath)
addHook("profileLoaded", createOrUpdateTemplate)