diff -ur -x '*.pyc' -x '*.py~' anki-1.2.5.orig/libanki/anki/cards.py anki-1.2.5/libanki/anki/cards.py
--- anki-1.2.5.orig/libanki/anki/cards.py 2011-01-19 06:42:48.000000000 +0800
+++ anki-1.2.5/libanki/anki/cards.py 2011-02-01 14:23:17.065672624 +0800
@@ -146,10 +146,16 @@
"Generate a random offset to spread intervals."
self.fuzz = random.uniform(0.95, 1.05)
- def htmlQuestion(self, type="question", align=True):
+ def htmlQuestion(self, type="question", align=False):
+ # format qa
+ d = {}
+ for f in self.fact.model.fieldModels:
+ d[f.name] = (f.id, self.fact.get(f.name, ''))
+ qa = formatQA(None, self.fact.modelId, d, self.splitTags(),
+ self.cardModel, None, card=self)
div = '''
%s
''' % (
type[0], type[0], hexifyID(self.cardModelId),
- getattr(self, type))
+ qa[type])
# add outer div & alignment (with tables due to qt's html handling)
if not align:
return div
@@ -163,7 +169,7 @@
return (("")
- def htmlAnswer(self, align=True):
+ def htmlAnswer(self, align=False):
return self.htmlQuestion(type="answer", align=align)
def updateStats(self, ease, state):
diff -ur -x '*.pyc' -x '*.py~' anki-1.2.5.orig/libanki/anki/deck.py anki-1.2.5/libanki/anki/deck.py
--- anki-1.2.5.orig/libanki/anki/deck.py 2011-01-27 07:03:10.000000000 +0800
+++ anki-1.2.5/libanki/anki/deck.py 2011-02-04 19:04:20.809000512 +0800
@@ -1636,7 +1636,8 @@
t = ""
if fam: t += 'font-family:"%s";' % toPlatformFont(fam)
if siz: t += 'font-size:%dpx;' % siz
- if col: t += 'color:%s;' % col
+ # no fixed field colors for me, please
+ # if col: t += 'color:%s;' % col
if rtl == "rtl":
t += "direction:rtl;unicode-bidi:embed;"
if pre:
diff -ur -x '*.pyc' -x '*.py~' anki-1.2.5.orig/libanki/anki/hooks.py anki-1.2.5/libanki/anki/hooks.py
--- anki-1.2.5.orig/libanki/anki/hooks.py 2011-01-19 06:42:48.000000000 +0800
+++ anki-1.2.5/libanki/anki/hooks.py 2011-02-01 01:16:01.260586001 +0800
@@ -18,18 +18,18 @@
_hooks = {}
-def runHook(hook, *args):
+def runHook(hook, *args, **kwargs):
"Run all functions on hook."
hook = _hooks.get(hook, None)
if hook:
for func in hook:
- func(*args)
+ func(*args, **kwargs)
-def runFilter(hook, arg, *args):
+def runFilter(hook, arg, *args, **kwargs):
hook = _hooks.get(hook, None)
if hook:
for func in hook:
- arg = func(arg, *args)
+ arg = func(arg, *args, **kwargs)
return arg
def addHook(hook, func):
diff -ur -x '*.pyc' -x '*.py~' anki-1.2.5.orig/libanki/anki/models.py anki-1.2.5/libanki/anki/models.py
--- anki-1.2.5.orig/libanki/anki/models.py 2011-01-19 06:42:48.000000000 +0800
+++ anki-1.2.5/libanki/anki/models.py 2011-02-05 01:27:56.361000512 +0800
@@ -132,7 +132,7 @@
mapper(CardModel, cardModelsTable)
-def formatQA(cid, mid, fact, tags, cm, deck):
+def formatQA(cid, mid, fact, tags, cm, deck, **kwargs):
"Return a dict of {id, question, answer}"
d = {'id': cid}
fields = {}
@@ -154,7 +154,8 @@
# convert old style
format = re.sub("%\((.+?)\)s", "{{\\1}}", format)
# allow custom rendering functions & info
- fields = runFilter("prepareFields", fields, cid, mid, fact, tags, cm, deck)
+ fields = runFilter("prepareFields", fields, cid, mid, fact, tags, cm, deck, **kwargs)
+ format = runFilter("preRenderFormatQA", format, type, cid, mid, fact, tags, cm, deck, **kwargs)
html = render(format, fields)
d[type] = runFilter("formatQA", html, type, cid, mid, fact, tags, cm, deck)
return d