From 8a9d8f15936b2068bcb39ccc8d3b317f93784d86 Mon Sep 17 00:00:00 2001
From: Meirna <61427701+Meirna-kamal@users.noreply.github.com>
Date: Wed, 27 Aug 2025 01:30:47 +0300
Subject: [PATCH] feat: add checkbox support to Markdown converter (#1208)
This change introduces functionality to convert HTML checkbox input elements
() into Markdown checkbox syntax ([ ] or [x]).
Co-authored-by: Meirna Kamal
---
.../src/markitdown/converters/_markdownify.py | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/packages/markitdown/src/markitdown/converters/_markdownify.py b/packages/markitdown/src/markitdown/converters/_markdownify.py
index e6a0dee..19e8a29 100644
--- a/packages/markitdown/src/markitdown/converters/_markdownify.py
+++ b/packages/markitdown/src/markitdown/converters/_markdownify.py
@@ -109,5 +109,18 @@ class _CustomMarkdownify(markdownify.MarkdownConverter):
return "" % (alt, src, title_part)
+ def convert_input(
+ self,
+ el: Any,
+ text: str,
+ convert_as_inline: Optional[bool] = False,
+ **kwargs,
+ ) -> str:
+ """Convert checkboxes to Markdown [x]/[ ] syntax."""
+
+ if el.get("type") == "checkbox":
+ return "[x] " if el.has_attr("checked") else "[ ] "
+ return ""
+
def convert_soup(self, soup: Any) -> str:
return super().convert_soup(soup) # type: ignore