From 94fca8874c720ebdd5d18494094cf3048d575394 Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Tue, 15 Aug 2023 15:59:52 +0100 Subject: Add ability to enable or disable html checkbox checkability --- src/configuration.rs | 32 ++++++++++++++++++++++++++++++++ src/to_html.rs | 5 ++++- 2 files changed, 36 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/configuration.rs b/src/configuration.rs index fe5698b..e995c09 100644 --- a/src/configuration.rs +++ b/src/configuration.rs @@ -831,6 +831,38 @@ pub struct CompileOptions { /// ``` pub gfm_footnote_clobber_prefix: Option, + /// Whether or not GFM task list html `` items are enabled. + /// + /// This determines whether or not the user of the browser is able + /// to click and toggle generated checkbox items. The default is false. + /// + /// ## Examples + /// + /// ``` + /// use markdown::{to_html_with_options, CompileOptions, Options, ParseOptions}; + /// # fn main() -> Result<(), String> { + /// + /// // With `gfm_task_list_item_checkable`, generated `` + /// // tags do not contain the attribute `disabled=""` and are thus toggleable by + /// // browser users. + /// assert_eq!( + /// to_html_with_options( + /// "* [x] y.", + /// &Options { + /// parse: ParseOptions::gfm(), + /// compile: CompileOptions { + /// gfm_task_list_item_checkable: true, + /// ..CompileOptions::gfm() + /// } + /// } + /// )?, + /// "" + /// ); + /// # Ok(()) + /// # } + /// ``` + pub gfm_task_list_item_checkable: bool, + /// Whether to support the GFM tagfilter. /// /// This option does nothing if `allow_dangerous_html` is not turned on. diff --git a/src/to_html.rs b/src/to_html.rs index 1892ba1..edd397d 100644 --- a/src/to_html.rs +++ b/src/to_html.rs @@ -601,7 +601,10 @@ fn on_enter_gfm_table_row(context: &mut CompileContext) { /// Handle [`Enter`][Kind::Enter]:[`GfmTaskListItemCheck`][Name::GfmTaskListItemCheck]. fn on_enter_gfm_task_list_item_check(context: &mut CompileContext) { if !context.image_alt_inside { - context.push("