Skip to content

Latest commit

 

History

History
106 lines (96 loc) · 5.98 KB

todo.md

File metadata and controls

106 lines (96 loc) · 5.98 KB

todo

differences from asciidoctor

  • asciidoctor uses term of description list as reftext for a preceding anchor without reftext, so [[foo]]Bar:: baz produces an anchor with the refext of Bar. Currently we don't support this, the author would need to specify the reftext explicitly with [[foo,Bar]]Bar:: baz
  • asciidoctor allows unnattached block attr lines, like [[foo]]\n\n, and seems to attach it to the next block. the documentation says there should be no empty line. asciidork sometimes will attach the metadata, and sometimes will not, but with --strict will always emit an error.

design philosophy

  • push complexity into the lexer, w/ more tokens, we can always ignore token types later based on substitutions
  • try to keep things single-pass as much as possible, even if semantically the language describes things as having multiple ordered passes
  • use regex as a last resort

questions

  • listing/literal block indent method: is multiline supported? asciidoc does support, but it's not documented...
  • do we track source locations for attr_lists?
  • how can i see how asciidoctor emits asg?
  • special char substitution... when? what do asg source locations look like for these?
  • for a pass:[] macro, what does the asg want? do i just parse according to the indicated subs and discard the macro (wrt ast), or do i need to track the macro invocation holding a vec of inlines parsed according to subs?
  • pass:[] macro docs contain a list of allowed substitution values, and then the example right below it shows using a value q not on the list!
  • docs seems to say that a block title needs to be above the attr list, but dr. seems to parse it the same in either order
  • https://docs.asciidoctor.org/asciidoc/latest/lists/ordered/#escaping-the-list-marker - shows how to escape P. O. Box, but I can't find any documentation on why P. should be considered a list marker - arbitrary letters don't show up anywhere in the ordered list documentation, and the current implementation doesn't get tripped up by P. O. Box, so I skipped this for now, until i can get some clarity from the asciidoctor team
  • inside listing blocks, newlines are preserved, but DR. seems to trim leading/trailing newlines, and only honor those between, test "----\n\n\nfoo\n\nbar\n\n\n----", is this "spec", or just an accident/bug? (dork does not work this way currently)
  • thematic break doesn't seem to support an attr list for adding classes to it? oddly, there's a test in asciidoctor showing its supported, but i can't seem to get it to work with the latest ruby cli

weirdnesses...

  • footnote:[] macro takes an attr list, but it seems like it only supports a single positional attribute
  • "To insert an empty line somewhere in a paragraph, you can use the hard line break syntax (i.e., {empty}{plus}) on a line by itself. This allows you to insert space between lines in the output without introducing separate paragraphs." from /hard-line-breaks in docs, but i can't seem to replicate this behavior in asciidoctor...