Skip to content

Commit d19248e

Browse files
quick-dirty stops theme/exeternal file work
1 parent 4294359 commit d19248e

1 file changed

Lines changed: 34 additions & 14 deletions

File tree

pretext/pretext.py

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3428,6 +3428,12 @@ def _parse_runestone_services(et):
34283428

34293429
return (rs_js, rs_css, rs_cdn_url, rs_version)
34303430

3431+
# Update stringparams with Runestone Services information
3432+
def _set_runestone_stringparams(stringparams, rs_js, rs_css, rs_version):
3433+
stringparams["rs-js"] = rs_js
3434+
stringparams["rs-css"] = rs_css
3435+
stringparams["rs-version"] = rs_version
3436+
34313437
# A helper function to query the latest Runestone
34323438
# Services file, while failing gracefully
34333439

@@ -3477,9 +3483,7 @@ def _runestone_services(stringparams):
34773483
rs_version = "dev"
34783484
services_xml = None
34793485
# Return, plus side-effect
3480-
stringparams["rs-js"] = rs_js
3481-
stringparams["rs-css"] = rs_css
3482-
stringparams["rs-version"] = rs_version
3486+
_set_runestone_stringparams(stringparams, rs_js, rs_css, rs_version)
34833487
return (rs_js, rs_css, rs_cdn_url, rs_version, services_xml)
34843488

34853489
# Otherwise, we have a URL pointing to the Runestone server/CDN
@@ -3537,9 +3541,7 @@ def _runestone_services(stringparams):
35373541
rs_js, rs_css, rs_cdn_url, rs_version = _parse_runestone_services(services)
35383542

35393543
# Return, plus side-effect
3540-
stringparams["rs-js"] = rs_js
3541-
stringparams["rs-css"] = rs_css
3542-
stringparams["rs-version"] = rs_version
3544+
_set_runestone_stringparams(stringparams, rs_js, rs_css, rs_version)
35433545
return (rs_js, rs_css, rs_cdn_url, rs_version, services_xml)
35443546

35453547

@@ -3784,9 +3786,26 @@ def html(xml, pub_file, stringparams, xmlid_root, file_format, extra_xsl, out_fi
37843786
# names for scratch directories
37853787
tmp_dir = get_temporary_directory()
37863788

3789+
add_runestone_services = True
3790+
# quick and dirty tries to use existing rs services
3791+
# on failure, will get new ones
3792+
if "html.quick-dirty" in stringparams:
3793+
try:
3794+
services_record_files = os.path.join(dest_dir, "_static", "_runestone-services.xml")
3795+
with open(services_record_files, 'r') as f:
3796+
services_xml = f.read()
3797+
services = ET.fromstring(services_xml)
3798+
rs_js, rs_css, rs_cdn_url, rs_version = _parse_runestone_services(services)
3799+
_set_runestone_stringparams(stringparams, rs_js, rs_css, rs_version)
3800+
log.info("Quick and dirty HTML is using old Runestone Services. Delete _static/_runestone-services.xml from output to update Runestone.")
3801+
add_runestone_services = False
3802+
except:
3803+
log.info("Quick and dirty HTML failed to use old Runestone Services. Will download Runestone.")
3804+
37873805
# interrogate Runestone server (or debugging switches) and populate
37883806
# NB: stringparams is augmented with Runestone Services information
3789-
_place_runestone_services(tmp_dir, stringparams)
3807+
if add_runestone_services:
3808+
_place_runestone_services(tmp_dir, stringparams)
37903809

37913810
# support publisher file, and subtree argument
37923811
if pub_file:
@@ -3799,15 +3818,16 @@ def html(xml, pub_file, stringparams, xmlid_root, file_format, extra_xsl, out_fi
37993818
else:
38003819
extraction_xslt = os.path.join(get_ptx_xsl_path(), "pretext-html.xsl")
38013820

3802-
# place managed directories - some of these (Asymptote HTML) are
3803-
# consulted during the XSL run and so need to be placed beforehand
3804-
copy_managed_directories(tmp_dir, external_abs=external_abs, generated_abs=generated_abs)
3821+
if "html.quick-dirty" not in stringparams:
3822+
# place managed directories - some of these (Asymptote HTML) are
3823+
# consulted during the XSL run and so need to be placed beforehand
3824+
copy_managed_directories(tmp_dir, external_abs=external_abs, generated_abs=generated_abs)
38053825

3806-
# place JS in scratch directory
3807-
copy_html_js(tmp_dir)
3826+
# place JS in scratch directory
3827+
copy_html_js(tmp_dir)
38083828

3809-
# build or copy theme
3810-
build_or_copy_theme(xml, pub_file, stringparams, tmp_dir)
3829+
# build or copy theme
3830+
build_or_copy_theme(xml, pub_file, stringparams, tmp_dir)
38113831

38123832
# Write output into temporary directory
38133833
log.info("converting {} to HTML in {}".format(xml, tmp_dir))

0 commit comments

Comments
 (0)