mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
Add hooks for comparing answers (#3855)
* Add hooks associated to compare answer feature * Update CONTRIBUTORS * Add type pattern to compare answer related hooks
This commit is contained in:
parent
33b8235186
commit
122980e06b
3 changed files with 58 additions and 7 deletions
|
@ -217,6 +217,7 @@ Mumtaz Hajjo Alrifai <mumtazrifai@protonmail.com>
|
|||
Thomas Graves <fate@hey.com>
|
||||
Jakub Fidler <jakub.fidler@protonmail.com>
|
||||
Valerie Enfys <val@unidentified.systems>
|
||||
Julien Chol <https://github.com/chel-ou>
|
||||
|
||||
********************
|
||||
|
||||
|
|
|
@ -749,13 +749,25 @@ class Reviewer:
|
|||
def typeAnsAnswerFilter(self, buf: str) -> str:
|
||||
if not self.typeCorrect:
|
||||
return re.sub(self.typeAnsPat, "", buf)
|
||||
m = re.search(self.typeAnsPat, buf)
|
||||
type_pattern = m.group(1) if m else ""
|
||||
orig = buf
|
||||
origSize = len(buf)
|
||||
buf = buf.replace("<hr id=answer>", "")
|
||||
hadHR = len(buf) != origSize
|
||||
expected = self.typeCorrect
|
||||
provided = self.typedAnswer
|
||||
initial_expected = self.typeCorrect
|
||||
initial_provided = self.typedAnswer
|
||||
expected, provided = gui_hooks.reviewer_will_compare_answer(
|
||||
(initial_expected, initial_provided), type_pattern
|
||||
)
|
||||
|
||||
output = self.mw.col.compare_answer(expected, provided, self._combining)
|
||||
output = gui_hooks.reviewer_will_render_compared_answer(
|
||||
output,
|
||||
initial_expected,
|
||||
initial_provided,
|
||||
type_pattern,
|
||||
)
|
||||
|
||||
# and update the type answer area
|
||||
def repl(match: Match) -> str:
|
||||
|
|
|
@ -100,6 +100,44 @@ hooks = [
|
|||
legacy_hook="showQuestion",
|
||||
legacy_no_args=True,
|
||||
),
|
||||
Hook(
|
||||
name="reviewer_will_compare_answer",
|
||||
args=[
|
||||
"expected_provided_tuple: tuple[str, str]",
|
||||
"type_pattern: str",
|
||||
],
|
||||
return_type="tuple[str, str]",
|
||||
doc="""Modify expected answer and provided answer before comparing
|
||||
|
||||
expected_provided_tuple is a tuple composed of:
|
||||
- expected answer
|
||||
- provided answer
|
||||
type_pattern is the detail of the type tag on the card
|
||||
|
||||
Return a tuple composed of:
|
||||
- modified expected answer
|
||||
- modified provided answer
|
||||
""",
|
||||
),
|
||||
Hook(
|
||||
name="reviewer_will_render_compared_answer",
|
||||
args=[
|
||||
"output: str",
|
||||
"initial_expected: str",
|
||||
"initial_provided: str",
|
||||
"type_pattern: str",
|
||||
],
|
||||
return_type="str",
|
||||
doc="""Modify the output of default compare answer feature
|
||||
|
||||
output is the result of default compare answer function
|
||||
initial_expected is the expected answer from the card
|
||||
initial_provided is the answer provided during review
|
||||
type_pattern is the detail of the type tag on the card
|
||||
|
||||
Return a string comparing expected and provided answers
|
||||
""",
|
||||
),
|
||||
Hook(
|
||||
name="reviewer_did_show_answer",
|
||||
args=["card: Card"],
|
||||
|
|
Loading…
Reference in a new issue