mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 14:32:22 -04:00
commit
93ada5d374
2 changed files with 29 additions and 25 deletions
|
@ -44,6 +44,7 @@ neitrinoweb <github.com/neitrinoweb/>
|
||||||
Andreas Reis <github.com/rathsky>
|
Andreas Reis <github.com/rathsky>
|
||||||
Matt Krump <github.com/mkrump>
|
Matt Krump <github.com/mkrump>
|
||||||
Alexander Presnyakov <flagist0@gmail.com>
|
Alexander Presnyakov <flagist0@gmail.com>
|
||||||
|
abdo <github.com/ANH25>
|
||||||
********************
|
********************
|
||||||
|
|
||||||
The text of the 3 clause BSD license follows:
|
The text of the 3 clause BSD license follows:
|
||||||
|
|
|
@ -1093,34 +1093,37 @@ class EditorWebView(AnkiWebView):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
txt = mime.text()
|
txt = mime.text()
|
||||||
|
processed = []
|
||||||
|
lines = txt.split("\n")
|
||||||
|
|
||||||
# inlined data in base64?
|
for line in lines:
|
||||||
if txt.startswith("data:image/"):
|
for token in re.split(r"(\S+)", line):
|
||||||
return self.editor.inlinedImageToLink(txt)
|
# inlined data in base64?
|
||||||
|
if token.startswith("data:image/"):
|
||||||
|
processed.append(self.editor.inlinedImageToLink(token))
|
||||||
|
elif self.editor.isURL(token):
|
||||||
|
# if the user is pasting an image or sound link, convert it to local
|
||||||
|
link = self.editor.urlToLink(token)
|
||||||
|
if link:
|
||||||
|
processed.append(link)
|
||||||
|
else:
|
||||||
|
# not media; add it as a normal link
|
||||||
|
link = '<a href="{}">{}</a>'.format(token, html.escape(token))
|
||||||
|
processed.append(link)
|
||||||
|
else:
|
||||||
|
token = html.escape(token).replace("\t", " " * 4)
|
||||||
|
# if there's more than one consecutive space,
|
||||||
|
# use non-breaking spaces for the second one on
|
||||||
|
def repl(match):
|
||||||
|
return match.group(1).replace(" ", " ") + " "
|
||||||
|
|
||||||
# if the user is pasting an image or sound link, convert it to local
|
token = re.sub(" ( +)", repl, token)
|
||||||
if self.editor.isURL(txt):
|
processed.append(token)
|
||||||
url = txt.split("\r\n")[0]
|
|
||||||
link = self.editor.urlToLink(url)
|
|
||||||
if link:
|
|
||||||
return link
|
|
||||||
|
|
||||||
# not media; add it as a normal link if pasting with shift
|
processed.append("<br>")
|
||||||
link = '<a href="{}">{}</a>'.format(url, html.escape(txt))
|
# remove last <br>
|
||||||
return link
|
processed.pop()
|
||||||
|
return "".join(processed)
|
||||||
# normal text; convert it to HTML
|
|
||||||
txt = html.escape(txt)
|
|
||||||
txt = txt.replace("\n", "<br>").replace("\t", " " * 4)
|
|
||||||
|
|
||||||
# if there's more than one consecutive space,
|
|
||||||
# use non-breaking spaces for the second one on
|
|
||||||
def repl(match):
|
|
||||||
return match.group(1).replace(" ", " ") + " "
|
|
||||||
|
|
||||||
txt = re.sub(" ( +)", repl, txt)
|
|
||||||
|
|
||||||
return txt
|
|
||||||
|
|
||||||
def _processHtml(self, mime: QMimeData) -> Tuple[Optional[str], bool]:
|
def _processHtml(self, mime: QMimeData) -> Tuple[Optional[str], bool]:
|
||||||
if not mime.hasHtml():
|
if not mime.hasHtml():
|
||||||
|
|
Loading…
Reference in a new issue