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 "![%s](%s%s)" % (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