From 1dfc4466f1ce4e1728acf5f013374a9a47cdf4e2 Mon Sep 17 00:00:00 2001 From: Henrik Enggaard Hansen Date: Mon, 13 Mar 2017 15:52:02 +0100 Subject: [PATCH] Move card formatting to anki.utils --- anki/utils.py | 11 +++++++++++ aqt/browser.py | 21 +++++---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/anki/utils.py b/anki/utils.py index e4ff311ab..60b13f91d 100644 --- a/anki/utils.py +++ b/anki/utils.py @@ -153,6 +153,17 @@ def minimizeHTML(s): '\\1', s) return s +def fmtQA(s): + s = s.replace("
", " ") + s = s.replace("
", " ") + s = s.replace("
", " ") + s = s.replace("\n", " ") + s = re.sub("\[sound:[^]]+\]", "", s) + s = re.sub("\[\[type:[^]]+\]\]", "", s) + s = stripHTMLMedia(s) + s = s.strip() + return s + def entsToTxt(html): # entitydefs defines nbsp as \xa0 instead of a standard space, so we # replace it first diff --git a/aqt/browser.py b/aqt/browser.py index 7ca9e630c..97c833c7d 100644 --- a/aqt/browser.py +++ b/aqt/browser.py @@ -12,7 +12,7 @@ from anki.lang import ngettext from aqt.qt import * import anki import aqt.forms -from anki.utils import fmtTimeSpan, ids2str, stripHTMLMedia, isWin, intTime, isMac +from anki.utils import fmtTimeSpan, ids2str, stripHTMLMedia, fmtQA, isWin, intTime, isMac from aqt.utils import saveGeom, restoreGeom, saveSplitter, restoreSplitter, \ saveHeader, restoreHeader, saveState, restoreState, applyStyles, getTag, \ showInfo, askUser, tooltip, openHelp, showWarning, shortcut, mungeQA @@ -234,7 +234,7 @@ class DataModel(QAbstractTableModel): return self.answer(c) elif type == "noteFld": f = c.note() - return self.formatQA(f.fields[self.col.models.sortIdx(f.model())]) + return fmtQA(f.fields[self.col.models.sortIdx(f.model())]) elif type == "template": t = c.template()['name'] if c.model()['type'] == MODEL_CLOZE: @@ -283,31 +283,20 @@ class DataModel(QAbstractTableModel): return self.browser.mw.col.decks.name(c.did) def question(self, c): - return self.formatQA(c.q(browser=True)) + return fmtQA(c.q(browser=True)) def answer(self, c): if c.template().get('bafmt'): # they have provided a template, use it verbatim c.q(browser=True) - return self.formatQA(c.a()) + return fmtQA(c.a()) # need to strip question from answer q = self.question(c) - a = self.formatQA(c.a()) + a = fmtQA(c.a()) if a.startswith(q): return a[len(q):].strip() return a - def formatQA(self, txt): - s = txt.replace("
", " ") - s = s.replace("
", " ") - s = s.replace("
", " ") - s = s.replace("\n", " ") - s = re.sub("\[sound:[^]]+\]", "", s) - s = re.sub("\[\[type:[^]]+\]\]", "", s) - s = stripHTMLMedia(s) - s = s.strip() - return s - def nextDue(self, c, index): if c.odid: return _("(filtered)")