From 23074eca7d9bbeb81d2b4d3226fccbba0feebce1 Mon Sep 17 00:00:00 2001 From: Cory Snider Date: Wed, 7 Aug 2024 17:08:08 -0400 Subject: [PATCH 1/2] Drop firstDD state flag The same result can be derived directly from the AST by interrogating the node's siblings. Signed-off-by: Cory Snider --- md2man/roff.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/md2man/roff.go b/md2man/roff.go index 8a290f1..966eace 100644 --- a/md2man/roff.go +++ b/md2man/roff.go @@ -17,7 +17,6 @@ type roffRenderer struct { extensions blackfriday.Extensions listCounters []int firstHeader bool - firstDD bool listDepth int } @@ -239,16 +238,13 @@ func (r *roffRenderer) handleItem(w io.Writer, node *blackfriday.Node, entering } else if node.ListFlags&blackfriday.ListTypeTerm != 0 { // DT (definition term): line just before DD (see below). out(w, dtTag) - r.firstDD = true } else if node.ListFlags&blackfriday.ListTypeDefinition != 0 { // DD (definition description): line that starts with ": ". // // We have to distinguish between the first DD and the // subsequent ones, as there should be no vertical // whitespace between the DT and the first DD. - if r.firstDD { - r.firstDD = false - } else { + if node.Prev != nil && node.Prev.ListFlags&(blackfriday.ListTypeTerm|blackfriday.ListTypeDefinition) == blackfriday.ListTypeDefinition { out(w, dd2Tag) } } else { From d8e68c2170e0db96c283eab4e2b540adf199cb5f Mon Sep 17 00:00:00 2001 From: Cory Snider Date: Wed, 7 Aug 2024 18:10:53 -0400 Subject: [PATCH 2/2] Drop extensions field from renderer It is effectively a constant. Signed-off-by: Cory Snider --- md2man/roff.go | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/md2man/roff.go b/md2man/roff.go index 966eace..02af759 100644 --- a/md2man/roff.go +++ b/md2man/roff.go @@ -14,7 +14,6 @@ import ( // roffRenderer implements the blackfriday.Renderer interface for creating // roff format (manpages) from markdown text type roffRenderer struct { - extensions blackfriday.Extensions listCounters []int firstHeader bool listDepth int @@ -55,23 +54,18 @@ const ( // NewRoffRenderer creates a new blackfriday Renderer for generating roff documents // from markdown func NewRoffRenderer() *roffRenderer { // nolint: golint - var extensions blackfriday.Extensions - - extensions |= blackfriday.NoIntraEmphasis - extensions |= blackfriday.Tables - extensions |= blackfriday.FencedCode - extensions |= blackfriday.SpaceHeadings - extensions |= blackfriday.Footnotes - extensions |= blackfriday.Titleblock - extensions |= blackfriday.DefinitionLists - return &roffRenderer{ - extensions: extensions, - } + return &roffRenderer{} } // GetExtensions returns the list of extensions used by this renderer implementation -func (r *roffRenderer) GetExtensions() blackfriday.Extensions { - return r.extensions +func (*roffRenderer) GetExtensions() blackfriday.Extensions { + return blackfriday.NoIntraEmphasis | + blackfriday.Tables | + blackfriday.FencedCode | + blackfriday.SpaceHeadings | + blackfriday.Footnotes | + blackfriday.Titleblock | + blackfriday.DefinitionLists } // RenderHeader handles outputting the header at document start