diff --git a/proto/anki/card_rendering.proto b/proto/anki/card_rendering.proto
index 7be401a1a..145e4b0db 100644
--- a/proto/anki/card_rendering.proto
+++ b/proto/anki/card_rendering.proto
@@ -26,6 +26,7 @@ service CardRenderingService {
rpc EncodeIriPaths(generic.String) returns (generic.String);
rpc DecodeIriPaths(generic.String) returns (generic.String);
rpc StripHtml(StripHtmlRequest) returns (generic.String);
+ rpc HtmlToTextLine(HtmlToTextLineRequest) returns (generic.String);
rpc CompareAnswer(CompareAnswerRequest) returns (generic.String);
rpc ExtractClozeForTyping(ExtractClozeForTypingRequest)
returns (generic.String);
@@ -156,6 +157,11 @@ message StripHtmlRequest {
Mode mode = 2;
}
+message HtmlToTextLineRequest {
+ string text = 1;
+ bool preserve_media_filenames = 2;
+}
+
message CompareAnswerRequest {
string expected = 1;
string provided = 2;
diff --git a/pylib/anki/utils.py b/pylib/anki/utils.py
index 1604acbf9..5e74e702e 100644
--- a/pylib/anki/utils.py
+++ b/pylib/anki/utils.py
@@ -7,7 +7,6 @@ import json as _json
import os
import platform
import random
-import re
import shutil
import string
import subprocess
@@ -69,15 +68,11 @@ def strip_html_media(txt: str) -> str:
def html_to_text_line(txt: str) -> str:
- txt = txt.replace("
", " ")
- txt = txt.replace("
", " ")
- txt = txt.replace("