# -*- coding: utf-8 -*- # Copyright: Damien Elmes # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html # Based off Kieran Clancy's initial implementation. import re from anki.hooks import addHook r = r' ?([^ >]+?)\[(.+?)\]' ruby = r'\1\2' def noSound(repl): def func(match): if match.group(2).startswith("sound:"): # return without modification return match.group(0) else: return re.sub(r, repl, match.group(0)) return func def kanji(txt, *args): return re.sub(r, noSound(r'\1'), txt) def kana(txt, *args): return re.sub(r, noSound(r'\2'), txt) def furigana(txt, *args): return re.sub(r, noSound(ruby), txt) def install(): addHook('fmod_kanji', kanji) addHook('fmod_kana', kana) addHook('fmod_furigana', furigana)