diff --git a/md2man/roff.go b/md2man/roff.go index 4174df9..37c4c34 100644 --- a/md2man/roff.go +++ b/md2man/roff.go @@ -38,7 +38,7 @@ const ( codespanTag = "\\fB" codespanCloseTag = "\\fR" codeTag = "\n.EX\n" - codeCloseTag = "\n.EE\n" + codeCloseTag = ".EE\n" // Do not prepend a newline character since code blocks, by definition, include a newline already (or at least as how blackfriday gives us on). quoteTag = "\n.PP\n.RS\n" quoteCloseTag = "\n.RE\n" listTag = "\n.RS\n" diff --git a/md2man/roff_test.go b/md2man/roff_test.go index d421d6b..6b44ebe 100644 --- a/md2man/roff_test.go +++ b/md2man/roff_test.go @@ -13,10 +13,14 @@ type TestParams struct { func TestCodeBlocks(t *testing.T) { tests := []string{ "```\nsome code\n```\n", - ".nh\n\n.EX\nsome code\n\n.EE\n", + ".nh\n\n.EX\nsome code\n.EE\n", "```bash\necho foo\n```\n", - ".nh\n\n.EX\necho foo\n\n.EE\n", + ".nh\n\n.EX\necho foo\n.EE\n", + + // make sure literal new lines surrounding the markdown block are preserved as they are intentional + "```bash\n\nsome code\n\n```", + ".nh\n\n.EX\n\nsome code\n\n.EE\n", } doTestsParam(t, tests, TestParams{blackfriday.FencedCode}) }