Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-24059

Inconsistencies between UniAst and Macro AST

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • 18.1.0
    • Node - UniAST - API
    • None
    • Unknown

    Description

      I noticed there are differences between how blocks are defined in UniAst and Macro Ast, which I find surprising. I understand why Macro Ast needs to define its own types, but I was expecting these duplicated types to have the same structure / constraints as the types defined by UniAst. I mean, I don't see why a specific type of block would have different constraints when outside a macro than when inside a macro. Here are the differences I noticed:

      • lists have a numbered property inside macros, but not outside
      • break block is not supported inside macros
      • macroBlock has a call property (with id, params and body) outside macros and the name and params properties inside macros. Why the difference and why the limitation that a macro (call) block can't specify a body when inside another macro?
      • block styles have cssClasses inside a macro but not outside
      • list items have a number property outside macros but not inside
      • list items can have block level children outside macros but not inside => this is quite surprising because I was expecting to have more freedom / fewer restrictions inside the read-only output of a macro. You can edit lists with block level content, but you can't have a macro generating lists with block level content.
      • the image can have caption and styles outside a macro but not inside, again very counter-intuitive to me
      • table header cell can have rowspan and colspan outside a macro but not inside
      • inline image is allowed outside macros but not inside
      • inlineMacro has the same problem as macroBlock: call(id, params, body) vs. name, params

      Are these differences by design, for a good reason, or are they just the result of code duplication that left the Macro Ast out of sync with UniAst?

      Attachments

        Activity

          People

            Unassigned Unassigned
            mflorea Marius Dumitru Florea
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: