]> git.scottworley.com Git - paperdoorknob/blobdiff - args.py
Specify page geometry
[paperdoorknob] / args.py
diff --git a/args.py b/args.py
index 1931d4271f242dc918287d28a7bedf2e4ee71f81..f343a84a71d2ef0a2394ec71c84d7e1c932cbd3a 100644 (file)
--- a/args.py
+++ b/args.py
@@ -13,6 +13,7 @@ from typing import Iterator
 
 from xdg_base_dirs import xdg_cache_home
 
 
 from xdg_base_dirs import xdg_cache_home
 
+from domfilter import ApplyDOMFilters, DOMFilters
 from fetch import CachingFetcher
 from htmlfilter import ApplyHTMLFilters, HTMLFilters
 from spec import Spec
 from fetch import CachingFetcher
 from htmlfilter import ApplyHTMLFilters, HTMLFilters
 from spec import Spec
@@ -26,6 +27,17 @@ def _command_line_parser() -> ArgumentParser:
         metavar='PATH',
         help='Where to keep the http cache (instead of %(default)s)',
         default=os.path.join(xdg_cache_home(), "paperdoorknob"))
         metavar='PATH',
         help='Where to keep the http cache (instead of %(default)s)',
         default=os.path.join(xdg_cache_home(), "paperdoorknob"))
+    parser.add_argument(
+        '--domfilters',
+        help='Which DOM filters to use (default: %(default)s)',
+        default=','.join(f[0] for f in DOMFilters))
+    parser.add_argument(
+        '--geometry',
+        help='''Page size and margin control
+See https://faculty.bard.edu/bloch/geometry.pdf for details
+(default: %(default)s)''',
+        default='paperwidth=5.5in,paperheight=8.5in,nohead,' +
+        'tmargin=15mm,hmargin=15mm,bmargin=17mm,foot=4mm')
     parser.add_argument(
         '--htmlfilters',
         help='Which HTML filters to use (default: %(default)s)',
     parser.add_argument(
         '--htmlfilters',
         help='Which HTML filters to use (default: %(default)s)',
@@ -40,7 +52,9 @@ def _command_line_parser() -> ArgumentParser:
         '--timeout',
         help='How long to wait for HTTP requests, in seconds',
         default=30)
         '--timeout',
         help='How long to wait for HTTP requests, in seconds',
         default=30)
-    parser.add_argument('url', help='URL to retrieve')
+    parser.add_argument(
+        'url',
+        help='URL to retrieve (example: https://www.projectlawful.com/posts/4582 )')
     return parser
 
 
     return parser
 
 
@@ -53,5 +67,7 @@ def spec_from_commandline_args() -> Iterator[Spec]:
                 args.url,
                 fetcher,
                 lambda x: ApplyHTMLFilters(args.htmlfilters, x),
                 args.url,
                 fetcher,
                 lambda x: ApplyHTMLFilters(args.htmlfilters, x),
+                lambda x: ApplyDOMFilters(args.domfilters, x),
                 PandocTexifier(args.pandoc or 'pandoc'),
                 PandocTexifier(args.pandoc or 'pandoc'),
+                args.geometry,
                 texout)
                 texout)