We decided to not follow the usual meeting structure and instead only discussed how to refactor the Subplot code base, and specifically its Document data type. Refactoring is needed because it's too much work to make changes to Subplot. For example, replacing the Markdown parser with another (which is something we're in need of doing).

After discussion we landed on a consensus that we'll want to break up the current monolithic Document type into smaller types, and that the first thing that needs doing is to stop using the pandoc_ast crate's Pandoc, Block, and Inline types to represent the parsed Markdown text.

We'll create a new abstraction for the parsed Markdown. The first version will internally use pandoc_ast, and we'll use this to find out exactly what interface the new type should offer to the rest of Subplot. We'll then design and implement a new representation to fit the interface we need. At that point, we will drop the reliance on pandoc_ast and on Pandoc the program for parsing Markdown.

DECISION: We won't make a new release of Subplot until we can do code generation (via without Pandoc. This is to avoid inflicting a run time dependency on Pandoc on those who merely want to generate code from a subplot.

DECISION: Whatever we generate for our AST, our native output format should be HTML, and that HTML should be reasonably importable by Pandoc in order to generate other output formats. That way we don't need Pandoc if the user wants only HTML output.

Meeting participants

  • Daniel Silverstone
  • Lars Wirzenius