texifier = PandocTexifier(args.pandoc or 'pandoc')
layout: Layout
if args.layout == 'below':
- layout = BelowIconLayout(texifier, args.image_size)
+ layout = BelowIconLayout(texifier)
elif args.layout == 'beside':
- layout = BesideIconLayout(texifier, args.image_size)
+ layout = BesideIconLayout(texifier)
else:
raise ValueError(f'Unknown layout: {args.layout}')
log = (lambda _: None) if args.quiet else _print_status
lambda x: ApplyHTMLFilters(args.htmlfilters, x),
lambda x: ApplyDOMFilters(args.domfilters, x),
lambda x: ApplyTexFilters(args.texfilters, x),
+ args.image_size,
layout,
args.geometry,
texout,
content)
-def renderIcon(icon_path: str | None, image_size: float) -> bytes | None:
+def renderIcon(icon_path: str | None) -> bytes | None:
if icon_path is None:
return None
- return br'\includegraphics[width=%fmm,height=%fmm,keepaspectratio]{%s}' % (
- image_size, image_size, icon_path.encode('UTF-8'))
+ return (
+ br'\includegraphics[width=\glowiconsize,height=\glowiconsize,keepaspectratio]{%s}' %
+ icon_path.encode('UTF-8'))
class Layout(ABC):
class BelowIconLayout(Layout):
- def __init__(self, texifier: Texifier, image_size: float) -> None:
+ def __init__(self, texifier: Texifier) -> None:
self._texifier = texifier
- self._image_size = image_size
def renderChunk(self, chunk: Chunk) -> bytes:
- icon = renderIcon(chunk.icon, self._image_size)
+ icon = renderIcon(chunk.icon)
meta = [icon] if icon else []
meta += [self._texifier.texify(x)
for x in [chunk.character, chunk.screen_name, chunk.author]
class BesideIconLayout(Layout):
- def __init__(self, texifier: Texifier, image_size: float) -> None:
+ def __init__(self, texifier: Texifier) -> None:
self._texifier = texifier
- self._image_size = image_size
def renderChunk(self, chunk: Chunk) -> bytes:
- icon = renderIcon(chunk.icon, self._image_size)
+ icon = renderIcon(chunk.icon)
meta = [
chunk.character,
chunk.screen_name,
lambda x: x,
lambda x: None,
lambda x: x,
+ 20,
ContentOnlyLayout(PandocTexifier('pandoc')),
'margin=20mm',
buf,
assert re.match(br'''\\documentclass{article}
(\\usepackage{[a-z]+}\n)+\\usepackage\[margin=20mm\]{geometry}
\\begin{document}
-.*
+(.|\n)*
This is \\href{https://glowfic.com}{glowfic}
You \\emph{sure}\?
lambda x: x,
lambda x: None,
lambda x: x,
+ 20,
ContentOnlyLayout(texifier),
None,
buf,
lambda x: x,
lambda x: None,
lambda x: x,
- BesideIconLayout(PandocTexifier('pandoc'), 20),
+ 20,
+ BesideIconLayout(PandocTexifier('pandoc')),
None,
out,
lambda _: None)