mnemosyne importer tweaks

- convert newlines to br
- non-greedy match mnemosyne clozes
This commit is contained in:
Damien Elmes 2013-06-05 18:39:32 +09:00
parent 55ca4b42bb
commit 8e8de1e333

View file

@ -94,6 +94,8 @@ acq_reps+ret_reps, lapses, card_type_id from cards"""):
return self._fields
def _mungeField(self, fld):
# \n -> br
fld = re.sub("\r?\n", "<br>", fld)
# latex differences
fld = re.sub("(?i)<(/?(\$|\$\$|latex))>", "[\\1]", fld)
# audio differences
@ -162,13 +164,14 @@ acq_reps+ret_reps, lapses, card_type_id from cards"""):
n = ForeignNote()
n.fields = []
fld = orig.get("text", "")
fld = re.sub("\r?\n", "<br>", fld)
state = dict(n=1)
def repl(match):
# replace [...] with cloze refs
res = ("{{c%d::%s}}" % (state['n'], match.group(1)))
state['n'] += 1
return res
fld = re.sub("\[(.+)\]", repl, fld)
fld = re.sub("\[(.+?)\]", repl, fld)
fld = self._mungeField(fld)
n.fields.append(fld)
n.fields.append("") # extra