From 0e17f5047f42853a180288b0bb6aa579faf999bf Mon Sep 17 00:00:00 2001 From: "Jorj X. McKie" Date: Thu, 21 May 2026 08:09:01 -0400 Subject: [PATCH 1/2] Testing markdown support Tests: * Support of Archive in Document creation * Support of external / internal links --- tests/test_markdown_support.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/test_markdown_support.py diff --git a/tests/test_markdown_support.py b/tests/test_markdown_support.py new file mode 100644 index 000000000..4e4b8cbf3 --- /dev/null +++ b/tests/test_markdown_support.py @@ -0,0 +1,34 @@ +import pymupdf +import os + + +def test_archive_markdown(): + """Test Archive support.""" + path = os.path.abspath(f"{__file__}/../../tests/resources") + md = b"![](nur-ruhig.jpg)\n\n**A referenced image.**" + md_doc = pymupdf.open(stream=md, filetype="md", archive=path) + pdfdata = md_doc.convert_to_pdf() + doc = pymupdf.open(stream=pdfdata) + page = doc[0] + images = page.get_image_info() + assert len(images) == 1 + +def test_archive_links(): + """Create an internal and an external link and confirm + that they are correctly converted to PDF links.""" + md = """Some text containing an external [link](http://www.google.com) to Google. + Now an internal link to a header in this document: [Some Header](#some-header). The header is here: + +

Some Header

+ + Some text following the header. + """ + md_doc = pymupdf.open(stream=md.encode(), filetype="md") + pdfdata = md_doc.convert_to_pdf() + doc = pymupdf.open(stream=pdfdata) + page = doc[0] + links=page.get_links() + assert len(links) == 2 + assert links[0]["uri"] == "http://www.google.com" + assert links[0]["kind"] == pymupdf.LINK_URI + assert links[1]["kind"] == pymupdf.LINK_GOTO From fa25e22d79fcd03cf02b9e720dadf6c7d1a5d2ce Mon Sep 17 00:00:00 2001 From: "Jorj X. McKie" Date: Mon, 8 Jun 2026 06:50:41 -0400 Subject: [PATCH 2/2] Update test_markdown_support.py --- tests/test_markdown_support.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/test_markdown_support.py b/tests/test_markdown_support.py index 4e4b8cbf3..184577dfc 100644 --- a/tests/test_markdown_support.py +++ b/tests/test_markdown_support.py @@ -4,6 +4,10 @@ def test_archive_markdown(): """Test Archive support.""" + if pymupdf.mupdf_version_tuple < (1, 28, 0): + print("no testing on MuPDF < 1.28.0") + return + path = os.path.abspath(f"{__file__}/../../tests/resources") md = b"![](nur-ruhig.jpg)\n\n**A referenced image.**" md_doc = pymupdf.open(stream=md, filetype="md", archive=path) @@ -16,6 +20,10 @@ def test_archive_markdown(): def test_archive_links(): """Create an internal and an external link and confirm that they are correctly converted to PDF links.""" + if pymupdf.mupdf_version_tuple < (1, 28, 0): + print("no testing on MuPDF < 1.28.0") + return + md = """Some text containing an external [link](http://www.google.com) to Google. Now an internal link to a header in this document: [Some Header](#some-header). The header is here: