fix: Get generators to work on Chrome; make wrl-only plugin also

This commit is contained in:
Glen Whitney 2024-02-22 22:29:42 -08:00
parent c895f2d30f
commit f77737db72
7 changed files with 184 additions and 40 deletions

88
etc/manifest.bash Normal file
View file

@ -0,0 +1,88 @@
# Using bash "here-documents" as quick-and-dirty template files
cat <<BREAK
{
"manifest_version": 3,
"name": "archematics",
"version": "${VERSION}",
"description": "unearths mathematical treasures lost in the web",
"icons": {
"48": "assets/archIcon48.png",
"128": "assets/archIcon128.png",
"256": "assets/archIcon256.png"
},
"author": "Glen Whitney <glen@archematics.app>",
"homepage_url": "https://archematics.app",
"browser_specific_settings": {
"gecko": {
"id": "{8b22a3b8-57f1-45f4-8e87-9043115a8093}",
"update_url": "https://archematics.app/updates.json"
}
},
"content_scripts": [
BREAK
if [ "$WHAT" = full ]; then
cat <<BREAK
{
"matches": ["*://*/*"],
"js": ["browser-polyfill.js", "adapptext.js"],
"run_at": "document_start"
},
BREAK
fi
cat <<BREAK
{
"matches": ["*://*/*"],
"js": [
"browser-polyfill.js",
"custom-elements.min.js",
"giveAwrl.js"
]
}
],
"options_ui": {
"page": "options.html",
"browser_style": false
},
"permissions": ["storage"],
"web_accessible_resources": [{
"matches": ["<all_urls>"],
"resources": [
BREAK
if [ "$WHAT" = full ]; then
cat <<BREAK
"adapptlet.js",
"adapptypes.js",
"deps/GeoGebra/deployggb.js",
"deps/GeoGebra/HTML5/5.0/webSimple/4B19686283BEF852F4C88C93522FB9A3.cache.js",
"deps/GeoGebra/HTML5/5.0/webSimple/webSimple.nocache.js",
"deps/GeoGebra/HTML5/5.0/webSimple/clear.cache.gif",
"deps/GeoGebra/HTML5/5.0/webSimple/deferredjs/*",
"deps/GeoGebra/HTML5/5.0/web3d/web3d.nocache.js",
"deps/GeoGebra/HTML5/5.0/web3d/clear.cache.gif",
"deps/GeoGebra/HTML5/5.0/web3d/289547CDA192E4FE9BAED5FF003E2ACE.cache.js",
"deps/GeoGebra/HTML5/5.0/web3d/deferredjs/*",
"deps/GeoGebra/HTML5/5.0/css/bundles/bundle.css",
"deps/GeoGebra/HTML5/5.0/css/keyboard-styles.css",
"deps/GeoGebra/HTML5/5.0/css/fonts.css",
"deps/GeoGebra/HTML5/5.0/css/greek-font.css",
"deps/GeoGebra/HTML5/5.0/css/bundles/simple-bundle.css",
"deps/GeoGebra/HTML5/5.0/web3d/fonts/base/jlm_cmmi10.js",
BREAK
fi
cat <<END
"deps/x_ite/x_ite.mjs",
"deps/x_ite/x_ite.css",
"deps/x_ite/assets/components/EventUtilities.js",
"deps/x_ite/assets/components/Geometry2D.js",
"deps/x_ite/assets/components/KeyDeviceSensor.js",
"deps/x_ite/assets/components/Scripting.js",
"deps/x_ite/assets/components/Text.js",
"deps/x_ite/assets/images/logo.128.png",
"conway.js",
"options.js",
"prism.js"
]
}]
}
END

View file

@ -1,3 +1,5 @@
# Using bash "here-documents" as quick-and-dirty template files
cat <<BREAK
<!DOCTYPE html>
<html>
@ -7,8 +9,8 @@
<body>
<h2>archematics</h2>
<p>This plug-in currently has two main capabilities that can be activated
independently:</p>
<p>This plug-in currently has the following main capabilities that can
be activated:</p>
<h2>Embedded VRML/X3D display</h2>
<div style="float: right;margin: 1.5em;">
<label for="vrmlview">Enable</label>
@ -29,6 +31,9 @@
<a href="http://georgehart.com/virtual-polyhedra/vp.html">
Encyclopedia of Polyhedra</a> with this module enabled for a trove of
beautiful models to play with.</p>
BREAK
if [ "$WHAT" = full ]; then
cat <<BREAK
<h2>JavaScript reinterpretation of Geometry Applets</h2>
<div style="float: right;margin: 1.5em;">
<label for="joyce">Enable</label><input type="checkbox" id="joyce">
@ -52,12 +57,18 @@
Be sure to give archematics a try on
<a href="https://mathcs.clarku.edu/~djoyce/java/elements/bookI/propI47.html">
his site</a>.</p>
BREAK
fi
cat <<BREAK
<hr/>
<h3>Debugging-only options</h3>
<h4>Embedded VRML/X3D display</h4>
Write to the JavaScript console: <br/>
<label for="vrml97">Generated VRML97 specifications</label>
<input type="checkbox" id="vrml97">
BREAK
if [ "$WHAT" = full ]; then
cat <<BREAK
<br />
<h4>Java Geometry Applets</h4>
Trace the following to the JavaScript console: <br/>
@ -76,8 +87,12 @@
<br/>
<label for="algebra">Show the GeoGebra algebra pane</label>
<input type="checkbox" id="algebra">
BREAK
fi
cat <<END
<script src="browser-polyfill.js" type="module"></script>
<script src="options.js" type="module"></script>
</body>
</html>
END