Thoughts for academic Markdown in a future version of Scrivener

@AmberV & @nontroppo ,

Would you be willing to brainstorm this with me from scratch, without the particularities of our own implementations? I would like to be sure that I have a full understanding of the problem, approach, and constraints. Maybe by brainstorming together, we can come up with a proposal for what is doable by the user and what features might need to be added in Scrivener 4 to achieve certain goals. My thought is to have a model with separation of concerns for each component, connected by a DAG (directed acyclic graph).

To kick things off:

  • The goal of the “academic workflow” is to be able to use some of the powerful features of Scrivener for writing, but to leave compilation, processing, formatting, and output format to secondary tools such as Quarto and/or Pandoc.
  • The most powerful feature in Scrivener is the Binder, which allows organization of the parts of a written work, as well as collection of ancillary resources, references, etc., used in support of the writing.
  • Only content within draft section of the Binder will be compiled and transferred to Quarto/Pandoc for further processing.
  • Only content within the Binder’s text documents will be compiled. Other Scrivener features, such as notes and other gloss, are used during the drafting process but are not sent to Quarto/Pandoc for further processing. In other words, anything that the writer wants to be compiled/processed/printed will be contained within the text documents of the Binder.
  • Scrivener’s Compile feature will serve as the bridge to get the Binder’s text documents into an intermediate format that will serve as the starting point for Quarto/Pandoc.
  • The Compile feature can convert some shorthand tools (such as Scrivener styles) into the plain-text markup needed for Quarto/Pandoc to work (such as Quarto Markdown).

I have more design concepts that I will add to here. But I thought I’d kick it off like that. I’m curious to hear your thoughts about the design parameters.