Opened 3 years ago

Closed 3 years ago

#55778 closed defect (worksforme)

multimarkdown @6.2.3: breaking changes with previous version @4.5

Reported by: jlargentaye (John de Largentaye) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: seanfarley (Sean Farley)
Port: multimarkdown

Description

The multimarkdown port was updated from 4.5 (hereafter MMD4) straight to 6.2.3 (hereafter MMD6). This is a breaking change with no backward- or forward- compatibility considerations, and for this reason should've been a separate sub-port.

One of multimarkdown's benefits is its ability to generate Latex output for PDF generation. To do so, it uses metadata to specify some latex setup using entries like

latex input: memoir

However, MMD6 deprecated this directive in favor of the more specific latex leader and latex begin directives, and will simply ignore the latex input directive. This would be fine if we could just include both, but unfortunately MMD4 includes the latex directives verbatim, which LaTex will then fail to recognize.

Thus, it is not possible to have a Latex-producing multimarkdown document that works with both MMD4 and MMD6.

This is somewhat documented in the MMD6 documentation, in the "Latex Changes" section of the QuickStart guide:

https://github.com/fletcher/MultiMarkdown-6/blob/master/QuickStart/QuickStart.txt#L296

(The "website" for MMD6 is currently broken and mostly empty: https://fletcher.github.io/MultiMarkdown-6/ )

So heads up for the next time: if a project version is "basically a complete rewrite with a new license", it may not be a good idea to use the same portname as the older version.

Change History (4)

comment:1 Changed 3 years ago by jlargentaye (John de Largentaye)

comment:2 Changed 3 years ago by ryandesign (Ryan Schmidt)

Cc: seanfarley added

comment:3 Changed 3 years ago by jlargentaye (John de Largentaye)

In the related MMD issue, the author points out that I actually can use both kinds of directives in a document, and it should work.

I was spooked because MMD4 turns the input directive latex leader: mmd-memoir-header into the following in the latex output: \def\latexleader{mmd-memoir-header}, but it turns out the latter is harmless in LaTeX: it defines a new function that is never used, and the generated document actually builds fine.

So there is actually a compatibility path between MMD4 and MMD6: use both old and new directives at the same time, and this ticket can be closed.

I apologize for the noise.

comment:4 Changed 3 years ago by mf2k (Frank Schima)

Resolution: worksforme
Status: newclosed
Note: See TracTickets for help on using tickets.