I want to compile a docx file into a Typst file, I believe deep down docx is XML, and Typst is close to markdown with interesting functionalities, is that feasible? Note that Typst does have syntax to define functions and call them and I want to create special functions during the code gen step, is ANTLR the right tool for the job? Are there better tools? I want to have as few bugs as possible

  • solrize@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    8 months ago

    Antlr sounds excessive for either of those. Use an ordinary xml library for docx (if there’s not already one for docx) and something simple for typst.

      • solrize@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        8 months ago

        Oh, ok, antlr would be inappropriate then. I’d check whether pandoc already does that conversion.

        • notTheCat@lemmy.mlOP
          link
          fedilink
          arrow-up
          2
          ·
          8 months ago

          I just checked, it doesn’t convert to Typst’s , but I’m willing to do support the conversion to it if pandoc can work as a framework rather than a closed converter

  • gerryflap@feddit.nl
    link
    fedilink
    arrow-up
    5
    ·
    8 months ago

    I’m not sure what the best approach would be, but for reading docx you might be better off using something like Apache POI. Docx may be XML, but it’s imo absolute abuse of XML. POI shields you a little bit from all the nonsense happening in docx. I could see ANTLR working for Typst since there’s probably not another interface for it.

    I don’t think it’ll support it, but you could also check if this can be done with pandoc.

  • sim642@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    8 months ago

    ANTLR is for writing parsers. You don’t need a new custom parser, just use an existing XML parser.

  • ryry1985@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    8 months ago

    I don’t know anything about Typst, but I do know that .docx files are really just a zip file containing a folder structure with a bunch of xml (and a few other) files. I’ve written a few find/replace docx scripts in bash utilizing this information.