Overlapping Markup

(en.wikipedia.org)

57 points | by ripe 16 hours ago ago

10 comments

  • tannhaeuser 15 hours ago ago

    FIY the Wikipedia article rightfully says SGML CONCUR usage is uncommon, but compared to the stated alternatives for overlapping markup, it's basically the only one that is tolerable to use as actual markup language for use with a text editor. This is what it looks like:

        <!doctype d -- element decls for a, b ... -->
        <!doctype e -- element decls for a, x ... -->
        <(d|e)a>
          <(d)b>bla bla <(e)x>bla </(d)b> bla</(e)x>
        </(d|e)a>
    
    where the third "bla" span is marked up with overlap.

    Basically, in case you've ever wondered, SGML CONCUR is the only reason that the element name in end-element tags needs to be specified. In strictly nested markup (XML) it always must refer to the most recently opened start-element tag hence it's redundant. SGML actually has "</>" but it didn't make it into XML.

  • frizlab 4 hours ago ago

    Wow I did not know this thing that was a bit hard to implement in my project[0] had a name!

    Basically you can, with my lib, define the tokens `*` and `_` (or anything else) to resp. make text go bold and italic, and use it as such:

        This text is *bold _and* italic_!
    
    [0] https://github.com/Frizlab/XibLoc (Readme is lacking…)
  • bfgeek 7 hours ago ago

    HTML parsing supports some of this, e.g:

      text <b>bold <i>bold-italic</b> italic</i>
  • dejj 3 hours ago ago

    Multi-paragraph quotation repeats the opening quote in every paragraph, but closes the quote only once.[0]

    Traffic signs repeat after every intersection, similarly.

    It's a great help in recovering the "parser state" in my mind.

    [0]: https://en.wikipedia.org/wiki/Quotation_marks_in_English#Quo...

  • jancsika 7 hours ago ago

    Music has a lot of these. A fugue subject may traverse the boundaries between two metric groupings, and between two clear sections of the form.

    There are also non-contiguous examples. Smack in the middle of Wagner's Tristan und Isolde you hear the final theme that signals they are about to win the main boss battle. Then one of the NPCs screams right before the final chord. The audience instead hears the danger signal and realizes it was a fake boss and there's another two hours of game play. Only when Isolde beats the final boss at the end do we get the final chord.

    • ramblurr 6 hours ago ago

      It also affects the digital markup of music. Music can't be expressed with a tree structure as there is lots of overlap.

      A simple example is a slur. It crosses bar lines. <bar1> ... <slur> ... </bar1> ... </slur> <bar2> uhoh!

      In fact there are many mutually incompatible hierarchies in music engraving.

      It's funny though MusicXML is a popular interchange format, but internally looks nothing like what one would naively expect.

      • afandian 6 hours ago ago

        Ditto control flow. It’s tempting to think of repeat bars, DC al fines, codas etc hierarchical structures when in fact they are imperative GOTOs and always have been.

  • gegtik 5 hours ago ago

    Naturally this makes me think of the brilliant Justine Tunney's https://justine.lol/ape.html / https://github.com/jart/cosmopolitan / https://redbean.dev/