'--htmlfilters',
help='Which HTML filters to use (default: %(default)s)',
default=','.join(f[0] for f in HTMLFilters))
+ parser.add_argument(
+ '--image_size',
+ help='How large the icon images are, in mm',
+ default=20)
parser.add_argument(
'--out',
help='The filename stem at which to write output ' +
DiskImageStore(args.out + '_images', fetcher),
lambda x: ApplyHTMLFilters(args.htmlfilters, x),
lambda x: ApplyDOMFilters(args.domfilters, x),
- BelowIconLayout(texifier),
+ BelowIconLayout(texifier, args.image_size),
args.geometry,
texout)
content)
-def renderIcon(icon_path: str | None) -> bytes:
- return b'\\includegraphics{%s}' % icon_path.encode(
- 'UTF-8') if icon_path else b''
+def renderIcon(icon_path: str | None, image_size: float) -> bytes:
+ return b'\\includegraphics[width=%fmm,height=%fmm,keepaspectratio]{%s}' % (
+ image_size, image_size, icon_path.encode('UTF-8')) if icon_path else b''
class Layout(ABC):
class BelowIconLayout(Layout):
- def __init__(self, texifier: Texifier) -> None:
+ def __init__(self, texifier: Texifier, image_size: float) -> None:
self._texifier = texifier
+ self._image_size = image_size
def renderChunk(self, chunk: Chunk) -> bytes:
icon_width = b'0.25\\textwidth' # TODO: Make this configurable
%s
''' % (
icon_width,
- renderIcon(chunk.icon),
+ renderIcon(chunk.icon, self._image_size),
chunk.character.encode('UTF-8') if chunk.character else b'',
chunk.screen_name.encode('UTF-8') if chunk.screen_name else b'',
chunk.author.encode('UTF-8') if chunk.author else b'',
FakeImageStore(),
lambda x: x,
lambda x: ApplyDOMFilters('NoEdit,NoFooter', x),
- BelowIconLayout(PandocTexifier('pandoc')),
+ BelowIconLayout(PandocTexifier('pandoc'), 20),
None,
out)
paperdoorknob.process(spec)