docrev 0.10.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +1 -1
- package/CHANGELOG.md +173 -164
- package/PLAN-tables-and-postprocess.md +850 -850
- package/README.md +431 -431
- package/bin/rev.js +11 -11
- package/bin/rev.ts +145 -145
- package/completions/rev.bash +127 -127
- package/completions/rev.ps1 +210 -210
- package/completions/rev.zsh +207 -207
- package/dist/lib/anchor-match.d.ts +1 -1
- package/dist/lib/anchor-match.d.ts.map +1 -1
- package/dist/lib/anchor-match.js +17 -47
- package/dist/lib/anchor-match.js.map +1 -1
- package/dist/lib/build.js +4 -4
- package/dist/lib/commands/context.d.ts +1 -1
- package/dist/lib/commands/context.d.ts.map +1 -1
- package/dist/lib/commands/context.js +1 -1
- package/dist/lib/commands/context.js.map +1 -1
- package/dist/lib/commands/sections.js +7 -7
- package/dist/lib/commands/sections.js.map +1 -1
- package/dist/lib/commands/sync.d.ts.map +1 -1
- package/dist/lib/commands/sync.js +15 -14
- package/dist/lib/commands/sync.js.map +1 -1
- package/dist/lib/commands/utilities.js +164 -164
- package/dist/lib/commands/verify-anchors.js +6 -6
- package/dist/lib/commands/verify-anchors.js.map +1 -1
- package/dist/lib/commands/word-tools.js +8 -8
- package/dist/lib/grammar.js +3 -3
- package/dist/lib/macro-filter.lua +201 -201
- package/dist/lib/pdf-comments.js +44 -44
- package/dist/lib/plugins.js +57 -57
- package/dist/lib/pptx-color-filter.lua +37 -37
- package/dist/lib/pptx-themes.js +115 -115
- package/dist/lib/sections.d.ts +35 -0
- package/dist/lib/sections.d.ts.map +1 -1
- package/dist/lib/sections.js +81 -0
- package/dist/lib/sections.js.map +1 -1
- package/dist/lib/spelling.js +2 -2
- package/dist/lib/templates.js +387 -387
- package/dist/lib/themes.js +51 -51
- package/docs-src/build.py +113 -113
- package/docs-src/extra.css +208 -208
- package/docs-src/md-to-html.lua +6 -6
- package/docs-src/template.html +116 -116
- package/eslint.config.js +27 -27
- package/lib/anchor-match.ts +276 -308
- package/lib/annotations.ts +644 -644
- package/lib/build.ts +1766 -1766
- package/lib/citations.ts +160 -160
- package/lib/commands/build.ts +855 -855
- package/lib/commands/citations.ts +515 -515
- package/lib/commands/comments.ts +1050 -1050
- package/lib/commands/context.ts +176 -174
- package/lib/commands/core.ts +309 -309
- package/lib/commands/doi.ts +435 -435
- package/lib/commands/file-ops.ts +372 -372
- package/lib/commands/history.ts +320 -320
- package/lib/commands/index.ts +87 -87
- package/lib/commands/init.ts +259 -259
- package/lib/commands/merge-resolve.ts +378 -378
- package/lib/commands/preview.ts +178 -178
- package/lib/commands/project-info.ts +244 -244
- package/lib/commands/quality.ts +517 -517
- package/lib/commands/response.ts +454 -454
- package/lib/commands/section-boundaries.ts +82 -82
- package/lib/commands/sections.ts +451 -451
- package/lib/commands/sync.ts +709 -706
- package/lib/commands/text-ops.ts +449 -449
- package/lib/commands/utilities.ts +448 -448
- package/lib/commands/verify-anchors.ts +272 -272
- package/lib/commands/word-tools.ts +340 -340
- package/lib/comment-realign.ts +517 -517
- package/lib/config.ts +84 -84
- package/lib/crossref.ts +781 -781
- package/lib/csl.ts +191 -191
- package/lib/dependencies.ts +98 -98
- package/lib/diff-engine.ts +465 -465
- package/lib/doi-cache.ts +115 -115
- package/lib/doi.ts +897 -897
- package/lib/equations.ts +506 -506
- package/lib/errors.ts +346 -346
- package/lib/format.ts +541 -541
- package/lib/git.ts +326 -326
- package/lib/grammar.ts +303 -303
- package/lib/image-registry.ts +180 -180
- package/lib/import.ts +911 -911
- package/lib/journals.ts +543 -543
- package/lib/macro-filter.lua +201 -201
- package/lib/macros.ts +273 -273
- package/lib/merge.ts +633 -633
- package/lib/orcid.ts +144 -144
- package/lib/pdf-comments.ts +263 -263
- package/lib/pdf-import.ts +524 -524
- package/lib/plugins.ts +362 -362
- package/lib/postprocess.ts +188 -188
- package/lib/pptx-color-filter.lua +37 -37
- package/lib/pptx-template.ts +469 -469
- package/lib/pptx-themes.ts +483 -483
- package/lib/protect-restore.ts +520 -520
- package/lib/rate-limiter.ts +94 -94
- package/lib/response.ts +197 -197
- package/lib/restore-references.ts +240 -240
- package/lib/review.ts +327 -327
- package/lib/schema.ts +488 -488
- package/lib/scientific-words.ts +73 -73
- package/lib/sections.ts +425 -335
- package/lib/slides.ts +756 -756
- package/lib/spelling.ts +334 -334
- package/lib/templates.ts +526 -526
- package/lib/themes.ts +742 -742
- package/lib/trackchanges.ts +247 -247
- package/lib/tui.ts +450 -450
- package/lib/types.ts +550 -550
- package/lib/undo.ts +250 -250
- package/lib/utils.ts +69 -69
- package/lib/variables.ts +179 -179
- package/lib/word-extraction.ts +806 -806
- package/lib/word.ts +643 -643
- package/lib/wordcomments.ts +840 -840
- package/mkdocs.yml +64 -64
- package/package.json +137 -137
- package/scripts/postbuild.js +47 -47
- package/skill/REFERENCE.md +539 -539
- package/skill/SKILL.md +295 -295
- package/tsconfig.json +26 -26
- package/types/index.d.ts +525 -525
package/dist/lib/themes.js
CHANGED
|
@@ -556,23 +556,23 @@ export function generateBeamerColors(theme) {
|
|
|
556
556
|
const bg = hexToRgb(colors.background);
|
|
557
557
|
const bgDark = hexToRgb(colors.backgroundDark);
|
|
558
558
|
const text = hexToRgb(colors.text);
|
|
559
|
-
return `
|
|
560
|
-
% Theme: ${theme.displayName}
|
|
561
|
-
% ${theme.description}
|
|
562
|
-
\\definecolor{ThemePrimary}{RGB}{${primary.r},${primary.g},${primary.b}}
|
|
563
|
-
\\definecolor{ThemeSecondary}{RGB}{${secondary.r},${secondary.g},${secondary.b}}
|
|
564
|
-
\\definecolor{ThemeAccent}{RGB}{${accent.r},${accent.g},${accent.b}}
|
|
565
|
-
\\definecolor{ThemeBackground}{RGB}{${bg.r},${bg.g},${bg.b}}
|
|
566
|
-
\\definecolor{ThemeBackgroundDark}{RGB}{${bgDark.r},${bgDark.g},${bgDark.b}}
|
|
567
|
-
\\definecolor{ThemeText}{RGB}{${text.r},${text.g},${text.b}}
|
|
568
|
-
|
|
569
|
-
\\setbeamercolor{structure}{fg=ThemePrimary}
|
|
570
|
-
\\setbeamercolor{frametitle}{fg=ThemePrimary,bg=ThemeBackground}
|
|
571
|
-
\\setbeamercolor{title}{fg=ThemePrimary}
|
|
572
|
-
\\setbeamercolor{subtitle}{fg=ThemeSecondary}
|
|
573
|
-
\\setbeamercolor{normal text}{fg=ThemeText,bg=ThemeBackground}
|
|
574
|
-
\\setbeamercolor{alerted text}{fg=ThemeAccent}
|
|
575
|
-
\\setbeamercolor{example text}{fg=ThemeSecondary}
|
|
559
|
+
return `
|
|
560
|
+
% Theme: ${theme.displayName}
|
|
561
|
+
% ${theme.description}
|
|
562
|
+
\\definecolor{ThemePrimary}{RGB}{${primary.r},${primary.g},${primary.b}}
|
|
563
|
+
\\definecolor{ThemeSecondary}{RGB}{${secondary.r},${secondary.g},${secondary.b}}
|
|
564
|
+
\\definecolor{ThemeAccent}{RGB}{${accent.r},${accent.g},${accent.b}}
|
|
565
|
+
\\definecolor{ThemeBackground}{RGB}{${bg.r},${bg.g},${bg.b}}
|
|
566
|
+
\\definecolor{ThemeBackgroundDark}{RGB}{${bgDark.r},${bgDark.g},${bgDark.b}}
|
|
567
|
+
\\definecolor{ThemeText}{RGB}{${text.r},${text.g},${text.b}}
|
|
568
|
+
|
|
569
|
+
\\setbeamercolor{structure}{fg=ThemePrimary}
|
|
570
|
+
\\setbeamercolor{frametitle}{fg=ThemePrimary,bg=ThemeBackground}
|
|
571
|
+
\\setbeamercolor{title}{fg=ThemePrimary}
|
|
572
|
+
\\setbeamercolor{subtitle}{fg=ThemeSecondary}
|
|
573
|
+
\\setbeamercolor{normal text}{fg=ThemeText,bg=ThemeBackground}
|
|
574
|
+
\\setbeamercolor{alerted text}{fg=ThemeAccent}
|
|
575
|
+
\\setbeamercolor{example text}{fg=ThemeSecondary}
|
|
576
576
|
`.trim();
|
|
577
577
|
}
|
|
578
578
|
/**
|
|
@@ -580,40 +580,40 @@ export function generateBeamerColors(theme) {
|
|
|
580
580
|
*/
|
|
581
581
|
export function generatePptxCSS(theme) {
|
|
582
582
|
const { colors, fonts } = theme;
|
|
583
|
-
return `
|
|
584
|
-
/* Theme: ${theme.displayName} */
|
|
585
|
-
/* ${theme.description} */
|
|
586
|
-
|
|
587
|
-
:root {
|
|
588
|
-
--theme-primary: ${colors.primary};
|
|
589
|
-
--theme-secondary: ${colors.secondary};
|
|
590
|
-
--theme-accent: ${colors.accent};
|
|
591
|
-
--theme-background: ${colors.background};
|
|
592
|
-
--theme-background-dark: ${colors.backgroundDark};
|
|
593
|
-
--theme-text: ${colors.text};
|
|
594
|
-
--theme-text-light: ${colors.textLight};
|
|
595
|
-
|
|
596
|
-
--font-heading: '${fonts.heading}', sans-serif;
|
|
597
|
-
--font-body: '${fonts.body}', sans-serif;
|
|
598
|
-
--font-mono: '${fonts.mono}', monospace;
|
|
599
|
-
}
|
|
600
|
-
|
|
601
|
-
/* Slide styles */
|
|
602
|
-
.dark {
|
|
603
|
-
background-color: var(--theme-background-dark);
|
|
604
|
-
color: var(--theme-text-light);
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
.cover, .thanks, .section {
|
|
608
|
-
background-color: var(--theme-primary);
|
|
609
|
-
color: var(--theme-text-light);
|
|
610
|
-
text-align: center;
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
.accent {
|
|
614
|
-
background-color: var(--theme-accent);
|
|
615
|
-
color: var(--theme-text);
|
|
616
|
-
}
|
|
583
|
+
return `
|
|
584
|
+
/* Theme: ${theme.displayName} */
|
|
585
|
+
/* ${theme.description} */
|
|
586
|
+
|
|
587
|
+
:root {
|
|
588
|
+
--theme-primary: ${colors.primary};
|
|
589
|
+
--theme-secondary: ${colors.secondary};
|
|
590
|
+
--theme-accent: ${colors.accent};
|
|
591
|
+
--theme-background: ${colors.background};
|
|
592
|
+
--theme-background-dark: ${colors.backgroundDark};
|
|
593
|
+
--theme-text: ${colors.text};
|
|
594
|
+
--theme-text-light: ${colors.textLight};
|
|
595
|
+
|
|
596
|
+
--font-heading: '${fonts.heading}', sans-serif;
|
|
597
|
+
--font-body: '${fonts.body}', sans-serif;
|
|
598
|
+
--font-mono: '${fonts.mono}', monospace;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
/* Slide styles */
|
|
602
|
+
.dark {
|
|
603
|
+
background-color: var(--theme-background-dark);
|
|
604
|
+
color: var(--theme-text-light);
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
.cover, .thanks, .section {
|
|
608
|
+
background-color: var(--theme-primary);
|
|
609
|
+
color: var(--theme-text-light);
|
|
610
|
+
text-align: center;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
.accent {
|
|
614
|
+
background-color: var(--theme-accent);
|
|
615
|
+
color: var(--theme-text);
|
|
616
|
+
}
|
|
617
617
|
`.trim();
|
|
618
618
|
}
|
|
619
619
|
/**
|
package/docs-src/build.py
CHANGED
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Build the docrev documentation site using pandoc + Bootstrap 5 Sandstone.
|
|
4
|
-
|
|
5
|
-
Usage (from project root):
|
|
6
|
-
python docs-src/build.py # build to site/
|
|
7
|
-
python docs-src/build.py --serve # build + open index.html
|
|
8
|
-
python docs-src/build.py --deploy # build + push to gh-pages
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
import argparse
|
|
12
|
-
import json
|
|
13
|
-
import shutil
|
|
14
|
-
import subprocess
|
|
15
|
-
import sys
|
|
16
|
-
import webbrowser
|
|
17
|
-
from pathlib import Path
|
|
18
|
-
|
|
19
|
-
HERE = Path(__file__).parent # docs-src/
|
|
20
|
-
PROJECT = HERE.parent # project root
|
|
21
|
-
DOCS = PROJECT / "docs"
|
|
22
|
-
SITE = PROJECT / "site"
|
|
23
|
-
TEMPLATE = HERE / "template.html"
|
|
24
|
-
EXTRA_CSS = HERE / "extra.css"
|
|
25
|
-
LUA_FILTER = HERE / "md-to-html.lua"
|
|
26
|
-
|
|
27
|
-
PAGES = [
|
|
28
|
-
# (source md, output html, page title, active-key, toc)
|
|
29
|
-
("index.md", "index.html", "Home", "active-home", False),
|
|
30
|
-
("workflow.md", "workflow.html", "Get Started", "active-workflow", True),
|
|
31
|
-
("commands.md", "commands.html", "Commands", "active-commands", True),
|
|
32
|
-
("configuration.md", "configuration.html", "Configuration", "active-configuration", True),
|
|
33
|
-
("troubleshooting.md","troubleshooting.html","Troubleshooting","active-troubleshooting",True),
|
|
34
|
-
]
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
def get_version() -> str:
|
|
38
|
-
pkg = PROJECT / "package.json"
|
|
39
|
-
if pkg.exists():
|
|
40
|
-
return json.loads(pkg.read_text())["version"]
|
|
41
|
-
return ""
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def build_page(md_name, html_name, title, active_key, use_toc, version):
|
|
45
|
-
src = DOCS / md_name
|
|
46
|
-
dst = SITE / html_name
|
|
47
|
-
|
|
48
|
-
cmd = [
|
|
49
|
-
"pandoc", str(src),
|
|
50
|
-
"--template", str(TEMPLATE),
|
|
51
|
-
"--to", "html5",
|
|
52
|
-
"--from", "markdown+smart+definition_lists",
|
|
53
|
-
"--highlight-style", "pygments",
|
|
54
|
-
"--lua-filter", str(LUA_FILTER),
|
|
55
|
-
"--metadata", f"title={title}",
|
|
56
|
-
"--metadata", f"pagetitle={title}",
|
|
57
|
-
"--metadata", f"version={version}",
|
|
58
|
-
"--metadata", f"{active_key}=true",
|
|
59
|
-
"--output", str(dst),
|
|
60
|
-
]
|
|
61
|
-
|
|
62
|
-
if use_toc:
|
|
63
|
-
cmd += ["--toc", "--toc-depth=3"]
|
|
64
|
-
|
|
65
|
-
result = subprocess.run(cmd, capture_output=True, text=True)
|
|
66
|
-
if result.returncode != 0:
|
|
67
|
-
print(f" ERROR: {md_name}")
|
|
68
|
-
print(result.stderr)
|
|
69
|
-
return False
|
|
70
|
-
|
|
71
|
-
print(f" {html_name}")
|
|
72
|
-
return True
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def build(deploy=False, serve=False):
|
|
76
|
-
if SITE.exists():
|
|
77
|
-
shutil.rmtree(SITE)
|
|
78
|
-
SITE.mkdir()
|
|
79
|
-
assets = SITE / "assets"
|
|
80
|
-
assets.mkdir()
|
|
81
|
-
|
|
82
|
-
shutil.copy(EXTRA_CSS, assets / "extra.css")
|
|
83
|
-
|
|
84
|
-
version = get_version()
|
|
85
|
-
print(f"Building docrev {version} → site/")
|
|
86
|
-
|
|
87
|
-
ok = all(build_page(*p, version) for p in PAGES)
|
|
88
|
-
|
|
89
|
-
if not ok:
|
|
90
|
-
sys.exit(1)
|
|
91
|
-
|
|
92
|
-
print("Done.")
|
|
93
|
-
|
|
94
|
-
if serve:
|
|
95
|
-
webbrowser.open(str(SITE / "index.html"))
|
|
96
|
-
|
|
97
|
-
if deploy:
|
|
98
|
-
print("\nDeploying to gh-pages …")
|
|
99
|
-
result = subprocess.run(
|
|
100
|
-
["python", "-m", "ghp_import", "-n", "-p", "-f", str(SITE)],
|
|
101
|
-
cwd=PROJECT,
|
|
102
|
-
)
|
|
103
|
-
if result.returncode != 0:
|
|
104
|
-
sys.exit(result.returncode)
|
|
105
|
-
print("Deployed.")
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if __name__ == "__main__":
|
|
109
|
-
parser = argparse.ArgumentParser()
|
|
110
|
-
parser.add_argument("--serve", action="store_true", help="Open index.html after build")
|
|
111
|
-
parser.add_argument("--deploy", action="store_true", help="Push site/ to gh-pages")
|
|
112
|
-
args = parser.parse_args()
|
|
113
|
-
build(deploy=args.deploy, serve=args.serve)
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Build the docrev documentation site using pandoc + Bootstrap 5 Sandstone.
|
|
4
|
+
|
|
5
|
+
Usage (from project root):
|
|
6
|
+
python docs-src/build.py # build to site/
|
|
7
|
+
python docs-src/build.py --serve # build + open index.html
|
|
8
|
+
python docs-src/build.py --deploy # build + push to gh-pages
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import argparse
|
|
12
|
+
import json
|
|
13
|
+
import shutil
|
|
14
|
+
import subprocess
|
|
15
|
+
import sys
|
|
16
|
+
import webbrowser
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
HERE = Path(__file__).parent # docs-src/
|
|
20
|
+
PROJECT = HERE.parent # project root
|
|
21
|
+
DOCS = PROJECT / "docs"
|
|
22
|
+
SITE = PROJECT / "site"
|
|
23
|
+
TEMPLATE = HERE / "template.html"
|
|
24
|
+
EXTRA_CSS = HERE / "extra.css"
|
|
25
|
+
LUA_FILTER = HERE / "md-to-html.lua"
|
|
26
|
+
|
|
27
|
+
PAGES = [
|
|
28
|
+
# (source md, output html, page title, active-key, toc)
|
|
29
|
+
("index.md", "index.html", "Home", "active-home", False),
|
|
30
|
+
("workflow.md", "workflow.html", "Get Started", "active-workflow", True),
|
|
31
|
+
("commands.md", "commands.html", "Commands", "active-commands", True),
|
|
32
|
+
("configuration.md", "configuration.html", "Configuration", "active-configuration", True),
|
|
33
|
+
("troubleshooting.md","troubleshooting.html","Troubleshooting","active-troubleshooting",True),
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def get_version() -> str:
|
|
38
|
+
pkg = PROJECT / "package.json"
|
|
39
|
+
if pkg.exists():
|
|
40
|
+
return json.loads(pkg.read_text())["version"]
|
|
41
|
+
return ""
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def build_page(md_name, html_name, title, active_key, use_toc, version):
|
|
45
|
+
src = DOCS / md_name
|
|
46
|
+
dst = SITE / html_name
|
|
47
|
+
|
|
48
|
+
cmd = [
|
|
49
|
+
"pandoc", str(src),
|
|
50
|
+
"--template", str(TEMPLATE),
|
|
51
|
+
"--to", "html5",
|
|
52
|
+
"--from", "markdown+smart+definition_lists",
|
|
53
|
+
"--highlight-style", "pygments",
|
|
54
|
+
"--lua-filter", str(LUA_FILTER),
|
|
55
|
+
"--metadata", f"title={title}",
|
|
56
|
+
"--metadata", f"pagetitle={title}",
|
|
57
|
+
"--metadata", f"version={version}",
|
|
58
|
+
"--metadata", f"{active_key}=true",
|
|
59
|
+
"--output", str(dst),
|
|
60
|
+
]
|
|
61
|
+
|
|
62
|
+
if use_toc:
|
|
63
|
+
cmd += ["--toc", "--toc-depth=3"]
|
|
64
|
+
|
|
65
|
+
result = subprocess.run(cmd, capture_output=True, text=True)
|
|
66
|
+
if result.returncode != 0:
|
|
67
|
+
print(f" ERROR: {md_name}")
|
|
68
|
+
print(result.stderr)
|
|
69
|
+
return False
|
|
70
|
+
|
|
71
|
+
print(f" {html_name}")
|
|
72
|
+
return True
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def build(deploy=False, serve=False):
|
|
76
|
+
if SITE.exists():
|
|
77
|
+
shutil.rmtree(SITE)
|
|
78
|
+
SITE.mkdir()
|
|
79
|
+
assets = SITE / "assets"
|
|
80
|
+
assets.mkdir()
|
|
81
|
+
|
|
82
|
+
shutil.copy(EXTRA_CSS, assets / "extra.css")
|
|
83
|
+
|
|
84
|
+
version = get_version()
|
|
85
|
+
print(f"Building docrev {version} → site/")
|
|
86
|
+
|
|
87
|
+
ok = all(build_page(*p, version) for p in PAGES)
|
|
88
|
+
|
|
89
|
+
if not ok:
|
|
90
|
+
sys.exit(1)
|
|
91
|
+
|
|
92
|
+
print("Done.")
|
|
93
|
+
|
|
94
|
+
if serve:
|
|
95
|
+
webbrowser.open(str(SITE / "index.html"))
|
|
96
|
+
|
|
97
|
+
if deploy:
|
|
98
|
+
print("\nDeploying to gh-pages …")
|
|
99
|
+
result = subprocess.run(
|
|
100
|
+
["python", "-m", "ghp_import", "-n", "-p", "-f", str(SITE)],
|
|
101
|
+
cwd=PROJECT,
|
|
102
|
+
)
|
|
103
|
+
if result.returncode != 0:
|
|
104
|
+
sys.exit(result.returncode)
|
|
105
|
+
print("Deployed.")
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
if __name__ == "__main__":
|
|
109
|
+
parser = argparse.ArgumentParser()
|
|
110
|
+
parser.add_argument("--serve", action="store_true", help="Open index.html after build")
|
|
111
|
+
parser.add_argument("--deploy", action="store_true", help="Push site/ to gh-pages")
|
|
112
|
+
args = parser.parse_args()
|
|
113
|
+
build(deploy=args.deploy, serve=args.serve)
|