"BookML: automated LaTeX to bookdown-style HTML and SCORM, powered by LaTeXML"
<a href="https://vlmantova.github.io/bookml/" rel="nofollow">https://vlmantova.github.io/bookml/</a><p>LaTeXML: <a href="https://en.wikipedia.org/wiki/LaTeXML" rel="nofollow">https://en.wikipedia.org/wiki/LaTeXML</a> :<p>LaTeXML emits XML from a parsing of LaTex with Perl.<p>SCORM is a standard for educational content in ZIP packages which is supported by Moodle, ILIAS, Sakai, Canvas, and a number of other LMS Learning Management Systems.<p>SCORM: <a href="https://en.wikipedia.org/wiki/Sharable_Content_Object_Reference_Model" rel="nofollow">https://en.wikipedia.org/wiki/Sharable_Content_Object_Refere...</a><p>xAPI (aka Experience API, aka TinCan API) is a successor spec to SCORM for event messages to LRS Learning Record Stores. Like SCORM, xAPI was granted by ADL.<p>re: xAPI, schema.org/Action, and JSON-LD:
<a href="https://github.com/RusticiSoftware/TinCanSchema/issues/7" rel="nofollow">https://github.com/RusticiSoftware/TinCanSchema/issues/7</a><p>schema.org/Action describes potential actions: <a href="https://schema.org/docs/actions.html" rel="nofollow">https://schema.org/docs/actions.html</a><p>For example, from the Schema.org "Potential Actions" doc:
<a href="https://schema.org/docs/actions.html" rel="nofollow">https://schema.org/docs/actions.html</a> :<p><pre><code> {
"@context": "https://schema.org",
"@type": "Movie",
"name": "Footloose",
"potentialAction": {
"@type": "WatchAction"
}
}
</code></pre>
That could be a syllabus.<p>ActionTypes include: BuyAction, AssessAction > ReviewAction,<p>Schema.org > "Full schema hierarchy" > [Open hierarchy] > Action and rdfs:subClassOf subclasses thereof:
<a href="https://schema.org/docs/full.html" rel="nofollow">https://schema.org/docs/full.html</a><p>What Linked Data should [math textbook] publishing software include when generating HTML for the web?<p><a href="https://schema.org/CreativeWork" rel="nofollow">https://schema.org/CreativeWork</a> > Book, Audiobook, Article > ScholarlyArticle, Guide, HowTo, Blog, MathSolver<p>The schema.org Thing > CreativeWork LearningResource RDFS class has the :assesses, :competencyRequired, :educationalLevel, :educationalAlignment, and :teaches RDFS properties; <a href="https://schema.org/LearningResource" rel="nofollow">https://schema.org/LearningResource</a><p>You can add bibliographic metadata and curricular Linked Data to [OER LearningResource] HTML with schema.org classes and properties as JSON-LD, RDFa, or Microdata.<p>The schema.org/about property has a domain which includes CreativeWork and a range which includes Thing, so a :CreativeWork is :about a :Thing which could be a subclass of :CreativeWork.<p>.<p>I work with MathJax and LaTeX in notebooks a bit, and have generated LaTeX and then PDF with Sphinx and texlive like the ReadTheDocs docker container which already has the multiple necessary GB of LaTeX installed to render a README.rst as PDF without pandoc:<p>The Jupyter Book docs now describe how that works.<p>Jupyter Book docs > Customize LaTeX via Sphinx:
<a href="https://jupyterbook.org/en/stable/advanced/pdf.html#customize-latex-via-sphinx" rel="nofollow">https://jupyterbook.org/en/stable/advanced/pdf.html#customiz...</a><p>How to build the docs with the readthedocs docker image onesself:
<a href="https://github.com/jupyter-book/jupyter-book/issues/991" rel="nofollow">https://github.com/jupyter-book/jupyter-book/issues/991</a><p>ReadTheDocs > Dev > Design > Build Images > Time required to install languages at build time [with different package managers with varying performance]
<a href="https://docs.readthedocs.com/dev/latest/design/build-images.html#time-required-to-install-languages-at-build-time" rel="nofollow">https://docs.readthedocs.com/dev/latest/design/build-images....</a><p>The jupyter-docker-stacks, binderhub, and condaforge/miniforge3 images build with micromamba now IIRC.<p>condaforge/miniforge3:
<a href="https://hub.docker.com/r/condaforge/miniforge3" rel="nofollow">https://hub.docker.com/r/condaforge/miniforge3</a><p>Recently, I've gotten into .devcontainers/devcontainers.json; which allows use of one's own Dockerfile or a preexisting docker image and installs LSP and vscode on top, and then runs the onCreateCommand, postStartCommand<p>A number of tools support devcontainer.json:
<a href="https://containers.dev/supporting" rel="nofollow">https://containers.dev/supporting</a><p>Devcontainers could be useful for open textbooks in math-heavy disciplines; so that others can work within, rebuild, and upgrade the same container env used to build the textbook.<p>Re: MathJax, LaTeX, and notebooks:<p>To left-align a LaTeX expression in a (Jupyter,Colab,VScode,) notebook wrap the expression with single dollar signs. To center-align a LaTeX expression in a notebook, wrap it with double dollar signs:<p><pre><code> $ \alpha_{\beta_1} $
$$ \alpha_{\beta_2} $$
</code></pre>
Textbooks, though? Interactive is what they want.<p>How can we make textbooks interactive?<p>It used to be that textbooks were to be copied down from; copy by hand from the textbook.<p>To engage and entertain this generation.<p>ManimCE, scriptable 3d simulators with test assertions, Thebelab,<p>Jupyter Book docs > "Launch into interactive computing interfaces" > BinderHub ( <a href="https://mybinder.org" rel="nofollow">https://mybinder.org</a> ), JupyterHub, Colab, Deepnote: <a href="https://jupyterbook.org/en/stable/interactive/launchbuttons.html" rel="nofollow">https://jupyterbook.org/en/stable/interactive/launchbuttons....</a><p>JupyterLite-xeus builds a jupyterlite static site from an environment.yml; such that e.g. the xeus-python kernel and other packages are compiled to WebAssembly (WASM) so that you can run Jupyter notebooks in a browser without a server:<p>repo2jupyterlite works like repo2docker, which powers BinderHub, which generates a container with a current version of Jupyter installed after building the container according to one or more software dependency requirement specification files in /.binder or the root of the repo.<p>repo2jupyter:
<a href="https://github.com/jupyterlite/repo2jupyterlite" rel="nofollow">https://github.com/jupyterlite/repo2jupyterlite</a><p>jupyterlite-xeus: <a href="https://jupyterlite-xeus.readthedocs.io/en/latest/" rel="nofollow">https://jupyterlite-xeus.readthedocs.io/en/latest/</a>