1 # paperdoorknob: Print glowfic
3 # This program is free software: you can redistribute it and/or modify it
4 # under the terms of the GNU General Public License as published by the
5 # Free Software Foundation, version 3.
8 from bs4
import BeautifulSoup
10 from args
import spec_from_commandline_args
11 from glowfic
import chunkDOMs
, makeChunk
15 def parse(content
: bytes) -> BeautifulSoup
:
16 return BeautifulSoup(content
, 'html.parser')
19 def process(spec
: Spec
) -> None:
20 spec
.texout
.write(b
'''\\documentclass{article}
21 \\usepackage{graphicx}
22 \\usepackage{wrapstuff}
24 if spec
.geometry
is not None:
25 spec
.texout
.write(b
'\\usepackage[' +
26 spec
.geometry
.encode('UTF-8') +
28 spec
.texout
.write(b
'\\begin{document}\n')
29 html
= parse(spec
.htmlfilter(spec
.fetcher
.fetch(spec
.url
)))
31 for r
in chunkDOMs(html
):
35 # h/t https://tex.stackexchange.com/questions/309856
36 spec
.texout
.write(b
'''
37 \\wrapstuffclear\\vspace{-.5\\ht\\strutbox}\\noindent\\hrulefill
41 chunk
= makeChunk(r
, spec
.images
)
42 spec
.texout
.write(spec
.layout
.renderChunk(chunk
))
43 spec
.texout
.write(b
'\\end{document}\n')
47 with spec_from_commandline_args() as spec
:
51 if __name__
== '__main__':