X-Git-Url: http://git.scottworley.com/paperdoorknob/blobdiff_plain/cfd0b634e21851a0d9e8b4c8c258307baefcd931..ae7b6283ed5ead577d1a8f263d37d01717e2bb33:/args.py diff --git a/args.py b/args.py index d90de8a..8f77a88 100644 --- a/args.py +++ b/args.py @@ -15,8 +15,9 @@ from xdg_base_dirs import xdg_cache_home from domfilter import ApplyDOMFilters, DOMFilters from fetch import CachingFetcher +from glowfic import BesideIconLayout, BelowIconLayout, Layout from htmlfilter import ApplyHTMLFilters, HTMLFilters -from images import ImageStore +from images import DiskImageStore from spec import Spec from texify import PandocTexifier @@ -43,6 +44,15 @@ See https://faculty.bard.edu/bloch/geometry.pdf for details '--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( + '--layout', + default='below', + help='Whether to put character and author information `beside` or `below` the icon ' + + '(default: below)') parser.add_argument( '--out', help='The filename stem at which to write output ' + @@ -62,14 +72,22 @@ See https://faculty.bard.edu/bloch/geometry.pdf for details @contextmanager def spec_from_commandline_args() -> Iterator[Spec]: args = _command_line_parser().parse_args() + texifier = PandocTexifier(args.pandoc or 'pandoc') + layout: Layout + if args.layout == 'below': + layout = BelowIconLayout(texifier, args.image_size) + elif args.layout == 'beside': + layout = BesideIconLayout(texifier, args.image_size) + else: + raise ValueError(f'Unknown layout: {args.layout}') with CachingFetcher(args.cache_path, args.timeout) as fetcher: with open(args.out + '.tex', 'wb') as texout: yield Spec( args.url, fetcher, - ImageStore(args.out + '_images', fetcher), + DiskImageStore(args.out + '_images', fetcher), lambda x: ApplyHTMLFilters(args.htmlfilters, x), lambda x: ApplyDOMFilters(args.domfilters, x), - PandocTexifier(args.pandoc or 'pandoc'), + layout, args.geometry, texout)