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 (("
" % align) + div + "
") - 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