]> git.scottworley.com Git - paperdoorknob/blobdiff - args.py
Reduce the number of places we keep our version number: 2 → 1
[paperdoorknob] / args.py
diff --git a/args.py b/args.py
index f966ba92ddcd0d6f2044556d9323d2508c296f43..8f77a887547b403d311ee0939a5a423b168aa88a 100644 (file)
--- a/args.py
+++ b/args.py
@@ -15,6 +15,7 @@ from xdg_base_dirs import xdg_cache_home
 
 from domfilter import ApplyDOMFilters, DOMFilters
 from fetch import CachingFetcher
 
 from domfilter import ApplyDOMFilters, DOMFilters
 from fetch import CachingFetcher
+from glowfic import BesideIconLayout, BelowIconLayout, Layout
 from htmlfilter import ApplyHTMLFilters, HTMLFilters
 from images import DiskImageStore
 from spec import Spec
 from htmlfilter import ApplyHTMLFilters, HTMLFilters
 from images import DiskImageStore
 from spec import Spec
@@ -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))
         '--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 ' +
     parser.add_argument(
         '--out',
         help='The filename stem at which to write output ' +
@@ -62,6 +72,14 @@ See https://faculty.bard.edu/bloch/geometry.pdf for details
 @contextmanager
 def spec_from_commandline_args() -> Iterator[Spec]:
     args = _command_line_parser().parse_args()
 @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(
     with CachingFetcher(args.cache_path, args.timeout) as fetcher:
         with open(args.out + '.tex', 'wb') as texout:
             yield Spec(
@@ -70,6 +88,6 @@ def spec_from_commandline_args() -> Iterator[Spec]:
                 DiskImageStore(args.out + '_images', fetcher),
                 lambda x: ApplyHTMLFilters(args.htmlfilters, x),
                 lambda x: ApplyDOMFilters(args.domfilters, x),
                 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)
                 args.geometry,
                 texout)