summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-08-31 20:14:22 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-08-31 20:14:22 +0200
commit7ec73257751ff74233794684e2830c6eb2f66d4d (patch)
treeb8a04ba3365f6e99b3935c8892e2f8043c91f993
parentinitial commit. (diff)
downloadvimwiki-scripts-7ec73257751ff74233794684e2830c6eb2f66d4d.tar.gz
vimwiki-scripts-7ec73257751ff74233794684e2830c6eb2f66d4d.tar.xz
Handle inline links.
-rwxr-xr-xdo.py99
1 files 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}')