Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplifed/static DoenetML/SpaTeXt for use by CheckIt #107

Open
StevenClontz opened this issue Jan 31, 2024 · 1 comment
Open

Simplifed/static DoenetML/SpaTeXt for use by CheckIt #107

StevenClontz opened this issue Jan 31, 2024 · 1 comment

Comments

@StevenClontz
Copy link

StevenClontz commented Jan 31, 2024

Issue to continue a conversation I had with @siefkenj and @dqnykamp today...

I am interested in deprecating https://spatext.clontz.org/0.3/ and adopting DoenetML or a DoenetML variant as the language used by the next version of https://checkit.clontz.org/. Failing that, I would like to reimplement the next version of SpaTeXt using similar tooling as DoenetML, so we can better support each other's projects, and make it as easy as possible for SpaTeXt to support DoenetML content.

Here are what I think are the hard specifications:

  • [Near-]instant rendering of markup for authors in either a VS Code environment or in the browser.
  • Conversion of markup to portable LaTeX and static HTML snippets.
  • Support for including randomized data provided as a JSON blob, including both insertion of strings and support for control flow (if and foreach).

Here are my like-to-haves:

  • A simplifed language with no more than a dozen elements. If authors stick to this set of elements, they get lots of promises of portability, accessibility, etc. If these elements are insufficient, then they make the concession to use advanced elements with the understanding that their content will be less portable. (If SpaTeXt remains a separate project, then this would be acheived through a plugin infrastructure; e.g. if you want an interactive diagram in your SpaTeXt document, then you'd need to use a DoenetML or Geogebra plugin.)
@StevenClontz StevenClontz changed the title Simplifed/static DoenetML/SpaTeXt Simplifed/static DoenetML/SpaTeXt for use by CheckIt Jan 31, 2024
@StevenClontz
Copy link
Author

Part of this conversation: @siefkenj mentioned it'd be a good thought experiement to consider what would the generalization of a PreTeXt document (or at least something that covers 80-90% of such documents). This is kind of what I have been working on with SpaTeXt, so I'll outline my vision here (using elements that I chose for the draft SpaTeXt 0.3 implementation).

  • A root document <spatext/>. This could have several modes: a "book", an "article", etc.
    • A <title/>.
    • Several <division/>s. Depending on the mode of the document, these might be chapters, sections, etc.
      • A <title/>
      • An optional <intro/>
      • Either <content/> or several sub<division/>s
      • An optional <outtro/>
  • Within <content/>:
    • Paragraphs <p/>
    • <list/>s of <item/>s of either <p/>s or a sub<list/>.
    • Knowls <knowl/> (unless this is the content of a knowl). Different modes support things like theorems, definitions, activities, figures, tables, etc.
  • Within <knowl/>:
    • A <title/>
    • An optional <intro/>
    • Either <content/> or several sub<knowl/>s
    • An optional <outtro/>
  • Within <p/>:
    • Text nodes
    • Math <m/> (also displaymath with <me/> or <m mode="display"/>)
    • Emphasis <em/>
    • URLs
    • Other stuff I'm forgetting right now, but here we're pretty close to existing PreTeXt support

I'm curious what obvious stuff I'm missing here. (For one: images.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant