-def convert(file):
- first_layout(file.body)
- remove_vcid(file.header)
- remove_cursor(file.body)
- update_toc(file.body)
- replace_protected_separator(file.body)
- merge_formula_inset(file.body)
- update_tabular(file.body)
- remove_space_in_units(file.header)
- file.format = 216
+def latexdel_getargs(document, i):
+ " Get arguments from latexdel insets. "
+ lines = document.body
+
+ # play safe, clean empty lines
+ while True:
+ if lines[i]:
+ break
+ del lines[i]
+
+ j = find_token(lines, '\\end_inset', i)
+
+ if i == j:
+ del lines[i]
+ else:
+ document.warning("Unexpected end of inset.")
+ j = find_token(lines, '\\begin_inset LatexDel }{', i)
+
+ ref = " ".join(lines[i:j])
+ del lines[i:j + 1]
+
+ # play safe, clean empty lines
+ while True:
+ if lines[i]:
+ break
+ del lines[i]
+
+ j = find_token(lines, '\\end_inset', i - 1)
+ if i == j:
+ del lines[i]
+ else:
+ document.warning("Unexpected end of inset.")
+ j = find_token(lines, '\\begin_inset LatexDel }', i)
+ label = " ".join(lines[i:j])
+ del lines[i:j + 1]
+
+ return ref, label
+
+
+def update_ref(document):
+ " Update reference inset. "
+ lines = document.body
+ i = 0
+ while True:
+ i = find_token(lines, '\\begin_inset LatexCommand', i)
+ if i == -1:
+ return
+
+ if lines[i].split()[-1] == "\\ref{":
+ i = i + 1
+ ref, label = latexdel_getargs(document, i)
+ lines[i - 1] = "%s[%s]{%s}" % (lines[i - 1][:-1], ref, label)
+
+ i = i + 1
+
+
+def update_latexdel(document):
+ " Remove latexdel insets. "
+ lines = document.body
+ i = 0
+ latexdel_re = re.compile(r".*\\begin_inset LatexDel")
+ while True:
+ i = find_re(lines, latexdel_re, i)
+ if i == -1:
+ return
+ lines[i] = lines[i].replace('\\begin_inset LatexDel',
+ '\\begin_inset LatexCommand')
+
+ j = lines[i].find('\\begin_inset')
+ lines.insert(i+1, lines[i][j:])
+ lines[i] = lines[i][:j].strip()
+ i = i + 1
+
+ if lines[i].split()[-1] in ("\\url{", "\\htmlurl{"):
+ i = i + 1
+
+ ref, label = latexdel_getargs(document, i)
+ lines[i -1] = "%s[%s]{%s}" % (lines[i-1][:-1], label, ref)
+
+ i = i + 1
+