summaryrefslogtreecommitdiff
path: root/internal/anki/templates
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-08 10:09:01 +0300
committerPaul Buetow <paul@buetow.org>2026-04-08 10:09:01 +0300
commit467e0c0e7d9849f83ebff78f10d1de04445c1852 (patch)
treef1c2a30c6489df621b5f735be6fe3b9f64d21e02 /internal/anki/templates
parentacec1e0668084715dc1e981b11b1562243283f58 (diff)
refactor(anki): split APKG generator into SQLiteSchemer, ZipPackager, CardTemplate
Extract SQLite schema and inserts into SQLiteSchemer, zip creation into ZipPackager, and embedded HTML/CSS templates into CardTemplate with external .html and .css files. APKGGenerator orchestrates copy, media mapping, DB build, and packaging. Made-with: Cursor
Diffstat (limited to 'internal/anki/templates')
-rw-r--r--internal/anki/templates/bg_bg_back.html13
-rw-r--r--internal/anki/templates/bg_bg_front.html11
-rw-r--r--internal/anki/templates/bg_bg_reverse_back.html18
-rw-r--r--internal/anki/templates/bg_bg_reverse_front.html6
-rw-r--r--internal/anki/templates/card.css68
-rw-r--r--internal/anki/templates/en_bg_back.html13
-rw-r--r--internal/anki/templates/en_bg_front.html8
-rw-r--r--internal/anki/templates/en_bg_reverse_back.html15
-rw-r--r--internal/anki/templates/en_bg_reverse_front.html6
9 files changed, 158 insertions, 0 deletions
diff --git a/internal/anki/templates/bg_bg_back.html b/internal/anki/templates/bg_bg_back.html
new file mode 100644
index 0000000..b1ae3cc
--- /dev/null
+++ b/internal/anki/templates/bg_bg_back.html
@@ -0,0 +1,13 @@
+{{FrontSide}}
+
+<hr id="answer">
+
+<div class="back">
+<div class="bulgarian-back">{{BulgarianBack}}</div>
+{{#AudioBack}}
+<div class="audio">{{AudioBack}}</div>
+{{/AudioBack}}
+{{#Notes}}
+<div class="notes">{{Notes}}</div>
+{{/Notes}}
+</div>
diff --git a/internal/anki/templates/bg_bg_front.html b/internal/anki/templates/bg_bg_front.html
new file mode 100644
index 0000000..b1d10ef
--- /dev/null
+++ b/internal/anki/templates/bg_bg_front.html
@@ -0,0 +1,11 @@
+<div class="front">
+{{#Image}}
+<div class="image-container">
+{{Image}}
+</div>
+{{/Image}}
+<div class="bulgarian-front">{{BulgarianFront}}</div>
+{{#AudioFront}}
+<div class="audio">{{AudioFront}}</div>
+{{/AudioFront}}
+</div>
diff --git a/internal/anki/templates/bg_bg_reverse_back.html b/internal/anki/templates/bg_bg_reverse_back.html
new file mode 100644
index 0000000..1cf2cbe
--- /dev/null
+++ b/internal/anki/templates/bg_bg_reverse_back.html
@@ -0,0 +1,18 @@
+{{FrontSide}}
+
+<hr id="answer">
+
+<div class="back">
+<div class="bulgarian-front">{{BulgarianFront}}</div>
+{{#AudioFront}}
+<div class="audio">{{AudioFront}}</div>
+{{/AudioFront}}
+{{#Image}}
+<div class="image-container">
+{{Image}}
+</div>
+{{/Image}}
+{{#Notes}}
+<div class="notes">{{Notes}}</div>
+{{/Notes}}
+</div>
diff --git a/internal/anki/templates/bg_bg_reverse_front.html b/internal/anki/templates/bg_bg_reverse_front.html
new file mode 100644
index 0000000..4fb04d7
--- /dev/null
+++ b/internal/anki/templates/bg_bg_reverse_front.html
@@ -0,0 +1,6 @@
+<div class="front">
+<div class="bulgarian-back">{{BulgarianBack}}</div>
+{{#AudioBack}}
+{{AudioBack}}
+{{/AudioBack}}
+</div>
diff --git a/internal/anki/templates/card.css b/internal/anki/templates/card.css
new file mode 100644
index 0000000..acdbffe
--- /dev/null
+++ b/internal/anki/templates/card.css
@@ -0,0 +1,68 @@
+.card {
+ font-family: Arial, sans-serif;
+ font-size: 20px;
+ text-align: center;
+ color: #333;
+ background-color: white;
+}
+
+.front, .back {
+ padding: 20px;
+}
+
+.image-container {
+ margin: 20px auto;
+ max-width: 400px;
+}
+
+.image-container img {
+ max-width: 100%;
+ height: auto;
+ border-radius: 8px;
+ box-shadow: 0 2px 8px rgba(0,0,0,0.1);
+}
+
+.english {
+ font-size: 28px;
+ font-weight: bold;
+ color: #2c3e50;
+ margin: 20px 0;
+}
+
+.bulgarian {
+ font-size: 32px;
+ font-weight: bold;
+ color: #c0392b;
+ margin: 20px 0;
+}
+
+.bulgarian-front {
+ font-size: 32px;
+ font-weight: bold;
+ color: #2c3e50;
+ margin: 20px 0;
+}
+
+.bulgarian-back {
+ font-size: 28px;
+ font-weight: bold;
+ color: #27ae60;
+ margin: 20px 0;
+}
+
+.audio {
+ margin: 15px 0;
+}
+
+.notes {
+ font-size: 16px;
+ color: #7f8c8d;
+ margin-top: 20px;
+ font-style: italic;
+}
+
+hr#answer {
+ margin: 30px 0;
+ border: 0;
+ border-top: 1px solid #ecf0f1;
+}
diff --git a/internal/anki/templates/en_bg_back.html b/internal/anki/templates/en_bg_back.html
new file mode 100644
index 0000000..c8a9379
--- /dev/null
+++ b/internal/anki/templates/en_bg_back.html
@@ -0,0 +1,13 @@
+{{FrontSide}}
+
+<hr id="answer">
+
+<div class="back">
+<div class="bulgarian">{{Bulgarian}}</div>
+{{#Audio}}
+<div class="audio">{{Audio}}</div>
+{{/Audio}}
+{{#Notes}}
+<div class="notes">{{Notes}}</div>
+{{/Notes}}
+</div>
diff --git a/internal/anki/templates/en_bg_front.html b/internal/anki/templates/en_bg_front.html
new file mode 100644
index 0000000..bbcd45b
--- /dev/null
+++ b/internal/anki/templates/en_bg_front.html
@@ -0,0 +1,8 @@
+<div class="front">
+{{#Image}}
+<div class="image-container">
+{{Image}}
+</div>
+{{/Image}}
+<div class="english">{{English}}</div>
+</div>
diff --git a/internal/anki/templates/en_bg_reverse_back.html b/internal/anki/templates/en_bg_reverse_back.html
new file mode 100644
index 0000000..c61854d
--- /dev/null
+++ b/internal/anki/templates/en_bg_reverse_back.html
@@ -0,0 +1,15 @@
+{{FrontSide}}
+
+<hr id="answer">
+
+<div class="back">
+<div class="english">{{English}}</div>
+{{#Image}}
+<div class="image-container">
+{{Image}}
+</div>
+{{/Image}}
+{{#Notes}}
+<div class="notes">{{Notes}}</div>
+{{/Notes}}
+</div>
diff --git a/internal/anki/templates/en_bg_reverse_front.html b/internal/anki/templates/en_bg_reverse_front.html
new file mode 100644
index 0000000..30208c7
--- /dev/null
+++ b/internal/anki/templates/en_bg_reverse_front.html
@@ -0,0 +1,6 @@
+<div class="front">
+<div class="bulgarian">{{Bulgarian}}</div>
+{{#Audio}}
+{{Audio}}
+{{/Audio}}
+</div>