mirror of
https://github.com/ankitects/anki.git
synced 2025-09-23 16:26:40 -04:00
fix broken image links when pasting between fields
https://anki.tenderapp.com/discussions/beta-testing/853-anki-210-beta-21#comment_43959510
This commit is contained in:
parent
b6972a22e8
commit
e0d05e49d6
1 changed files with 23 additions and 15 deletions
|
@ -615,11 +615,12 @@ to a cloze type first, via Edit>Change Note Type."""))
|
|||
|
||||
removeTags = ["script", "iframe", "object", "style"]
|
||||
|
||||
def _pastePreFilter(self, html):
|
||||
def _pastePreFilter(self, html, internal):
|
||||
with warnings.catch_warnings() as w:
|
||||
warnings.simplefilter('ignore', UserWarning)
|
||||
doc = BeautifulSoup(html, "html.parser")
|
||||
|
||||
if not internal:
|
||||
for tag in self.removeTags:
|
||||
for node in doc(tag):
|
||||
node.decompose()
|
||||
|
@ -630,22 +631,29 @@ to a cloze type first, via Edit>Change Note Type."""))
|
|||
|
||||
for tag in doc("img"):
|
||||
try:
|
||||
if self.isURL(tag['src']):
|
||||
# convert remote image links to local ones
|
||||
fname = self.urlToFile(tag['src'])
|
||||
if fname:
|
||||
tag['src'] = fname
|
||||
src = tag['src']
|
||||
except KeyError:
|
||||
# for some bizarre reason, mnemosyne removes src elements
|
||||
# from missing media
|
||||
pass
|
||||
continue
|
||||
|
||||
# in internal pastes, rewrite mediasrv references to relative
|
||||
if internal:
|
||||
m = re.match("http://127.0.0.1:\d+/(.*)$", src)
|
||||
if m:
|
||||
tag['src'] = m.group(1)
|
||||
else:
|
||||
# in external pastes, download remote media
|
||||
if self.isURL(src):
|
||||
fname = self.urlToFile(src)
|
||||
if fname:
|
||||
tag['src'] = fname
|
||||
|
||||
html = str(doc)
|
||||
return html
|
||||
|
||||
def doPaste(self, html, internal):
|
||||
if not internal:
|
||||
html = self._pastePreFilter(html)
|
||||
html = self._pastePreFilter(html, internal)
|
||||
extended = self.mw.app.queryKeyboardModifiers() & Qt.ShiftModifier
|
||||
if extended:
|
||||
extended = "true"
|
||||
|
|
Loading…
Reference in a new issue