diff --git a/src/functions.py b/src/functions.py index 236cf6d..7e1589e 100755 --- a/src/functions.py +++ b/src/functions.py @@ -48,13 +48,30 @@ def convert_text(text: str): field_nr = 1 # number of anki field changed_lines = [] # array with new lines -> anki fields added + indented_points = False + indent_level = 0 for line in seperate(text): # add anki field into line and count the number of changes - line, num = re.subn("(:|\.)(..+)", rf"\1 {{{{c{field_nr}::\2}}}}", line) - # if anki field added increase field number - # if num > 0: - # field_nr += 1 - # add changed line to array + if re.search(":$", line) != None: + indented_points = True + changed_lines.append(line) + continue + + tabStops = re.findall("\t", line) + if indented_points and indent_level == 0: + indent_level = len(tabStops) + + if indented_points and indent_level == len(tabStops): + line, num = re.subn("\t+(.)(..*)", rf"\1 {{{{c{field_nr}::\2}}}}", line) + if num > 0: + changed_lines.append(line) + continue + indented_points = False + indent_level = 0 + else: + indented_points = False + indent_level = 0 + line, num = re.subn("(:)(..+)", rf"\1 {{{{c{field_nr}::\2}}}}", line) changed_lines.append(line) return "\n".join(changed_lines).strip()