"BookML: automated LaTeX to bookdown-style HTML and SCORM, powered by LaTeXML"
https://vlmantova.github.io/bookml/

LaTeXML: https://en.wikipedia.org/wiki/LaTeXML :

LaTeXML emits XML from a parsing of LaTex with Perl.

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.

SCORM: https://en.wikipedia.org/wiki/Sharable_Content_Object_Refere...

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.

re: xAPI, schema.org/Action, and JSON-LD:
https://github.com/RusticiSoftware/TinCanSchema/issues/7

schema.org/Action describes potential actions: https://schema.org/docs/actions.html

For example, from the Schema.org "Potential Actions" doc:
https://schema.org/docs/actions.html :

{
"@context": "https://schema.org",
"@type": "Movie",
"name": "Footloose",
"potentialAction": {
"@type": "WatchAction"
}
}

That could be a syllabus.

ActionTypes include: BuyAction, AssessAction > ReviewAction,

Schema.org > "Full schema hierarchy" > [Open hierarchy] > Action and rdfs:subClassOf subclasses thereof:
https://schema.org/docs/full.html

What Linked Data should [math textbook] publishing software include when generating HTML for the web?

https://schema.org/CreativeWork > Book, Audiobook, Article > ScholarlyArticle, Guide, HowTo, Blog, MathSolver

The schema.org Thing > CreativeWork LearningResource RDFS class has the :assesses, :competencyRequired, :educationalLevel, :educationalAlignment, and :teaches RDFS properties; https://schema.org/LearningResource

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.

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.

.

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:

The Jupyter Book docs now describe how that works.

Jupyter Book docs > Customize LaTeX via Sphinx:
https://jupyterbook.org/en/stable/advanced/pdf.html#customiz...

How to build the docs with the readthedocs docker image onesself:
https://github.com/jupyter-book/jupyter-book/issues/991

ReadTheDocs > Dev > Design > Build Images > Time required to install languages at build time [with different package managers with varying performance]
https://docs.readthedocs.com/dev/latest/design/build-images....

The jupyter-docker-stacks, binderhub, and condaforge/miniforge3 images build with micromamba now IIRC.

condaforge/miniforge3:
https://hub.docker.com/r/condaforge/miniforge3

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

A number of tools support devcontainer.json:
https://containers.dev/supporting

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.

Re: MathJax, LaTeX, and notebooks:

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:

$ \alpha_{\beta_1} $
$$ \alpha_{\beta_2} $$

Textbooks, though? Interactive is what they want.

How can we make textbooks interactive?

It used to be that textbooks were to be copied down from; copy by hand from the textbook.

To engage and entertain this generation.

ManimCE, scriptable 3d simulators with test assertions, Thebelab,

Jupyter Book docs > "Launch into interactive computing interfaces" > BinderHub ( https://mybinder.org ), JupyterHub, Colab, Deepnote: https://jupyterbook.org/en/stable/interactive/launchbuttons....

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:

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.

repo2jupyter:
https://github.com/jupyterlite/repo2jupyterlite

jupyterlite-xeus: https://jupyterlite-xeus.readthedocs.io/en/latest/