summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-01-26 14:30:11 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2022-01-26 14:30:11 +0100
commitfa884624190f89f30dd2148d4f2a8a665c1f7f77 (patch)
tree53b329e6386c2af0d8961a2d50bc29669349e395
parentSupport mode option for inline attachements. (diff)
downloadvimwiki-scripts-fa884624190f89f30dd2148d4f2a8a665c1f7f77.tar.gz
vimwiki-scripts-fa884624190f89f30dd2148d4f2a8a665c1f7f77.tar.xz
Interwiki links?
-rwxr-xr-xdo.py74
1 files changed, 44 insertions, 30 deletions
diff --git a/do.py b/do.py
index 7042a5f..0b93d7d 100755
--- a/do.py
+++ b/do.py
@@ -7,6 +7,7 @@ import subprocess
from subprocess import PIPE
import hashlib
import os.path as path
+from os.path import dirname
import email
from email.policy import default
from datetime import datetime
@@ -75,7 +76,7 @@ def split_into_paragraphs(str):
def parse_options_paragraph(paragraphs):
"""
check the first paragraph for a definition list, and parse that
- into variables
+ into variables
"""
options = {}
@@ -95,7 +96,7 @@ def parse_options_paragraph(paragraphs):
return options, paragraphs
-def resolve_mail(mode, addr, frag, comment):
+def resolve_mail(mode, source_file_name, addr, frag, comment):
outstr = ''
@@ -174,12 +175,12 @@ def resolve_mail(mode, addr, frag, comment):
return outstr
-def resolve_help(mode, addr, frag, comment):
+def resolve_help(mode, source_file_name, addr, frag, comment):
pass
return ''
-def resolve_file(mode, addr, frag, comment):
+def resolve_file(mode, source_file_name, addr, frag, comment):
extension = addr.split('.')[-1]
full_file = path.join(path_base, addr)
@@ -199,33 +200,44 @@ def resolve_file(mode, addr, frag, comment):
return f.read() + '\n'
-def resolve_default(mode, addr, frag, comment):
+def generate_attachement(mode, data):
outstr = ''
- if addr == '':
- page = get_heading(frag, data)
- opts, paragraphs = parse_options_paragraph(split_into_paragraphs(page))
- options = {
- 'mode': 'verbatim',
- **opts
- }
+ opts, paragraphs = parse_options_paragraph(split_into_paragraphs(data))
+ options = {
+ 'mode': 'verbatim',
+ **opts
+ }
- if mode == 'tex':
- if options['mode'] == 'tex':
- pass
- else:
- outstr += '\\begin{verbatim}\n'
- for paragraph in paragraphs:
- outstr += '\n'.join(paragraph)
- outstr += '\n\n'
- if mode == 'tex':
- if options['mode'] == 'tex':
- pass
- else:
- outstr += '\\end{verbatim}\n'
+ if mode == 'tex':
+ if options['mode'] == 'tex':
+ pass
+ else:
+ outstr += '\\begin{verbatim}\n'
+ for paragraph in paragraphs:
+ outstr += '\n'.join(paragraph)
+ outstr += '\n\n'
+ if mode == 'tex':
+ if options['mode'] == 'tex':
+ pass
+ else:
+ outstr += '\\end{verbatim}\n'
+
+ return outstr
+
+def resolve_default(mode, source_file_name, addr, frag, comment):
+ outstr = ''
+ if addr == '':
+ outstr = generate_attachement(mode, get_heading(frag, data))
else:
- print(addr)
- print("Vimwiki intra-page links not yet supported")
- outstr = ''
+ with open('{}/{}.wiki'.format(dirname(source_file_name), addr)) as f:
+ dat = f.read()
+ if frag == '':
+ outstr = dat
+ else:
+ outstr = generate_attachement(mode, get_heading(frag, dat))
+ # print(addr)
+ # print("Vimwiki intra-page links not yet supported")
+ # outstr = ''
return outstr
# Should all take (mode string, url without protocol, fragment, comment)
@@ -241,6 +253,8 @@ resolvers = {
# TODO handle case where heading is missing
def get_heading(name, data):
+ print(data)
+ print(name)
start_match = re.search(f'(?m)^(=+) {name} =+$', data)
print(start_match)
heading_level = len(start_match.group(1))
@@ -366,13 +380,13 @@ if __name__ == '__main__':
attach_str += f'\n{st}\n{"="*len(st)}\n'
resolver = resolvers.get(proto, resolve_default)
- attach_str += resolver(mode, addr, frag, comment)
+ attach_str += resolver(mode, infile, addr, frag, comment)
bilagor += [attach_str]
outstr += page1[pos:]
- options = {
+ options = {
'date': '\\today' if mode == 'tex' else f'{datetime.now():%Y-%m-%d}',
'mode': 'vimwiki',
}