diff options
author | Dennis Kobert <dennis@kobert.dev> | 2020-07-03 15:19:10 +0200 |
---|---|---|
committer | Dennis Kobert <dennis@kobert.dev> | 2020-07-03 15:19:10 +0200 |
commit | cec0137494af8da4aaec11b6b92961a823ce5edb (patch) | |
tree | bede0b05aaec3e3350cfd0029a739a11ae00ba08 | |
parent | 63fb9e6c50f3b1e4c3b052d5951f4b73cc254be6 (diff) |
Add sequence diagram parser
-rw-r--r-- | seq-ateurs.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/seq-ateurs.py b/seq-ateurs.py new file mode 100644 index 0000000..c5ff9b6 --- /dev/null +++ b/seq-ateurs.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +import plantuml +import sys +import time +import os + +f = open(sys.argv[1], 'r').readlines() +p = plantuml.PlantUML(url="http://www.plantuml.com/plantuml/svg/") + + +def generate_svg(name, text): + print(f"generating: {text}") + try: + res = p.processes(plantuml_text=(text)) + except Exception: + print(p.get_url(plantuml_text=(text))) + return + + svg = 'seq/' + name + '.svg' + pdf = 'seq/' + name + '.pdf' + open(svg, 'wb').write(res) + os.system(f"inkscape {svg} -o {pdf}") + time.sleep(1) + + +def parse_sequence(offset): + print(f"offset: {offset}") + while not "```plantuml" == f[offset].strip(): + offset += 1 + begin = offset + while not "```" == f[offset].strip(): + offset += 1 + lines = f[begin + 1:(offset - 1)] + name = f[begin + 1][1:-1] + print(f"name: {name}") + generate_svg(name, ''.join(lines)) + return offset + + +offset = 0 +while offset < len(f): + offset = parse_sequence(offset) |