# paperdoorknob: Print glowfic # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, version 3. from bs4 import BeautifulSoup from args import spec_from_commandline_args from glowfic import chunkDOMs from spec import Spec def parse(content: bytes) -> BeautifulSoup: return BeautifulSoup(content, 'html.parser') def process(spec: Spec) -> None: spec.texout.write(b'\\documentclass{article}\n') if spec.geometry is not None: spec.texout.write(b'\\usepackage[' + spec.geometry.encode('UTF-8') + b']{geometry}\n') spec.texout.write(b'\\begin{document}\n') html = parse(spec.htmlfilter(spec.fetcher.fetch(spec.url))) for r in chunkDOMs(html): spec.domfilter(r) spec.texout.write(spec.texifier.texify(r)) spec.texout.write(b'\\end{document}\n') def main() -> None: with spec_from_commandline_args() as spec: process(spec) if __name__ == '__main__': main()