From 7ec73257751ff74233794684e2830c6eb2f66d4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 31 Aug 2020 20:14:22 +0200 Subject: Handle inline links. --- do.py | 99 ++++++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 56 insertions(+), 43 deletions(-) diff --git a/do.py b/do.py index 5f5a438..476c6d2 100755 --- a/do.py +++ b/do.py @@ -51,58 +51,71 @@ output.write(f''' # '\\verbatiminput page1 = get_heading('Möte 1', data) -bilagor = get_heading('Bilagor', page1).strip().split('\n') +# bilagor = get_heading('Bilagor', page1).strip().split('\n') +r = "\\[\\[([^|#\\]]*)(?:#([^|\\]]*))?(?:[|]([^\\]]*))?\\]\\]" +bilagor = re.findall(r, page1) + +# bilagor = [m[0] for m in re.findall(r, data)] output.write('\\begin{verbatim}\n') output.write(page1 + '\n') -output.write('\\end{verbatim}\n') +output.write('\\end{verbatim}\n\\appendix\n') + +print (bilagor) + +for (address, frag, comment) in bilagor: + print(address,frag,comment) + # m = re.search('^[0-9]+', item) + # if m: + # print(f'Bilaga {m.group(0)}') + # output.write(f'\\section*{{Bilaga {m.group(0)}}}\n') -for item in bilagor: - print(item) - m = re.search('^[0-9]+', item) - if m: - print(f'Bilaga {m.group(0)}') - output.write(f'\\section*{{Bilaga {m.group(0)}}}\n') + if comment: + output.write(f"\\section{{{comment}}}\n") + else: + output.write(f"\\section{{{address}}}\n") + + try: + proto, addr = address.split(":", 1) + except ValueError: + proto = '' + addr = address + print(proto, addr) + if proto == 'mail': + msg_id = addr + mailfile = subprocess.run(f"mu find -u 'i:{msg_id}' --fields 'l'", shell=True, stdout=PIPE).stdout.decode('UTF-8').strip() + mail = subprocess.run(f"mu view {mailfile}", shell=True, stdout=PIPE).stdout.decode('UTF-8') + output.write('\\begin{verbatim}\n') + if frag == 'short': + last_arrow = False + out = [] + for line in mail.split('\n'): + if not line: + out += [''] + continue + if line[0] == '>': + arrow = True + if arrow and not last_arrow: + out += ['> [...]'] + last_arrow = True + continue + out += [line] + output.write('\n'.join(out)) + else: + output.write(mail + '\n') + output.write('\\end{verbatim}\n') + elif proto == 'help': + pass else: - # TODO allow other cases - m = re.search('^ *- Message-ID: <(.*)> *(\((.*)\))?$', item) - if m: - msg_id = m.group(1) - print(msg_id) - print(m.group(3)) - mailfile = subprocess.run(f"mu find -u 'i:{msg_id}' --fields 'l'", shell=True, stdout=PIPE).stdout.decode('UTF-8').strip() - print(mailfile) - mail = subprocess.run(f"mu view {mailfile}", shell=True, stdout=PIPE).stdout.decode('UTF-8') + if addr == '': + page = get_heading(frag, data) output.write('\\begin{verbatim}\n') - if (m.group(3) == 'short'): - last_arrow = False - out = [] - for line in mail.split('\n'): - if not line: - out += [''] - continue - if line[0] == '>': - arrow = True - if arrow and not last_arrow: - out += ['> [...]'] - last_arrow = True - continue - out += [line] - output.write('\n'.join(out)) - - else: - output.write(mail + '\n') + output.write(page + '\n') output.write('\\end{verbatim}\n') else: - m = re.search('^ *- \\[\\[#(.*)\\]\\]', item) - if m: - page = get_heading(m.group(1), data) - output.write('\\begin{verbatim}\n') - output.write(page + '\n') - output.write('\\end{verbatim}\n') - else: - print("Bilaga saknas") + print(addr) + print("Vimwiki intra-page links not yet supported") output.write('\\end{document}') -- cgit v1.2.3