vxml_pipeline/desugarers

Reusable desugarer constructors.

Values

pub const absorb_backward_one: fn(#(String, String)) -> core.Desugarer
pub const absorb_forward_one: fn(#(String, String)) -> core.Desugarer
pub const absorb_into_previous_sibling: fn(List(String)) -> core.Desugarer
pub const add_after_but_not_after_last_child__batch: fn(
  List(#(String, String, List(#(String, String)))),
) -> core.Desugarer
pub const add_before: fn(#(String, String)) -> core.Desugarer
pub const add_before_but_not_before_first_child: fn(
  #(String, String),
) -> core.Desugarer
pub const add_before_but_not_before_first_child__batch: fn(
  List(#(String, String)),
) -> core.Desugarer
pub const add_before_but_not_before_first_of_kind: fn(
  #(String, String),
) -> core.Desugarer
pub const add_before_but_not_before_first_of_kind__batch: fn(
  List(#(String, String, List(#(String, String)))),
) -> core.Desugarer
pub const add_between: fn(#(String, String, String)) -> core.Desugarer
pub const add_between_all_pairs_2: fn(
  #(List(String), List(String), String),
) -> core.Desugarer
pub const add_between_tag_and_text_node: fn(#(String, String)) -> core.Desugarer
pub const add_between_tag_and_text_node__batch: fn(
  List(#(String, String, List(#(String, String)))),
) -> core.Desugarer
pub const add_between_tags__batch: fn(
  List(#(#(String, String), String, List(#(String, String)))),
) -> core.Desugarer
pub const add_class_to_next_sibling: fn(#(String, String)) -> core.Desugarer
pub const add_if_missing_before_but_not_before_first_child: fn(
  #(String, String),
) -> core.Desugarer
pub const append: fn(#(String, String, core.TrafficLight)) -> core.Desugarer
pub const append_attribute: fn(
  #(String, String, String, core.TrafficLight),
) -> core.Desugarer
pub const append_attribute__batch: fn(
  List(#(String, String, String)),
) -> core.Desugarer
pub const append_attribute__outside: fn(
  #(String, String, String),
  List(String),
) -> core.Desugarer
pub const append_attribute_if: fn(
  #(
    String,
    fn(vxml.VXML) -> Bool,
    String,
    String,
    core.TrafficLight,
  ),
) -> core.Desugarer
pub const append_attribute_if_child_of: fn(
  #(String, String, String, String),
) -> core.Desugarer
pub const append_attribute_if_child_of__batch: fn(
  List(#(String, String, String, String)),
) -> core.Desugarer
pub const append_attribute_if_fancy: fn(
  #(
    String,
    fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
    ) -> Bool,
    String,
    String,
    core.TrafficLight,
  ),
) -> core.Desugarer
pub const append_attribute_if_preceded_by_same: fn(
  #(String, String, String),
) -> core.Desugarer
pub const append_attribute_if_preceded_by_same__outside: fn(
  #(String, String, String),
  List(String),
) -> core.Desugarer
pub const append_class: fn(#(String, String, core.TrafficLight)) -> core.Desugarer
pub const append_class__batch: fn(List(#(String, String))) -> core.Desugarer
pub const append_class_to_child_if: fn(
  #(String, String, fn(vxml.VXML) -> Bool),
) -> core.Desugarer
pub const append_class_to_child_if__batch: fn(
  List(#(String, String, fn(vxml.VXML) -> Bool)),
) -> core.Desugarer
pub const append_class_to_child_if_has_class: fn(
  #(String, String, String),
) -> core.Desugarer
pub const append_class_to_child_if_is_not_one_of: fn(
  #(String, String, List(String)),
) -> core.Desugarer
pub const append_class_to_child_if_is_one_of: fn(
  #(String, String, List(String)),
) -> core.Desugarer
pub const append_class_to_children_with_class: fn(
  List(#(String, List(#(String, String)))),
) -> core.Desugarer
pub const append_class_to_children_with_tag: fn(
  List(#(String, List(#(String, String)))),
) -> core.Desugarer
pub const append_custom: fn(
  #(String, vxml.VXML, core.TrafficLight),
) -> core.Desugarer
pub const assertive_tests: List(
  fn() -> testing.AssertiveTestCollection,
)
pub const attribute_drop_prefixes: fn(#(String, List(String))) -> core.Desugarer
pub const auto_generate_child_if_missing_from_attribute: fn(
  #(String, String, String),
) -> core.Desugarer
pub const auto_generate_child_if_missing_from_attribute__outside: fn(
  #(String, String, String),
  List(String),
) -> core.Desugarer
pub const auto_generate_child_if_missing_from_first_descendant_of_type: fn(
  #(String, String, String),
) -> core.Desugarer
pub const bridge_whitespace: fn(String) -> core.Desugarer
pub const bridge_whitespace_single_space: fn(String) -> core.Desugarer
pub const check_proper_detokenization: fn() -> core.Desugarer
pub const check_proper_href_detokenization: fn() -> core.Desugarer
pub const check_proper_href_tokenization: fn() -> core.Desugarer
pub const check_proper_tokenization: fn() -> core.Desugarer
pub const check_tags: fn(#(List(String), String)) -> core.Desugarer
pub const concatenate_consecutive_lines_if: fn(
  fn(String, String) -> Bool,
) -> core.Desugarer
pub const concatenate_text_nodes: fn() -> core.Desugarer
pub const convert_int_attributes_to_float: fn(
  List(#(String, String)),
) -> core.Desugarer
pub const counters_substitute_and_assign_handles: fn() -> core.Desugarer
pub const cut_paste_attribute_from_first_child_to_self: fn(
  #(String, String),
) -> core.Desugarer
pub const cut_paste_attribute_from_self_to_child: fn(
  #(String, String, String),
) -> core.Desugarer
pub const cut_paste_attribute_from_self_to_child__outside: fn(
  #(String, String, String),
  List(String),
) -> core.Desugarer
pub const delete: fn(String) -> core.Desugarer
pub const delete__batch: fn(List(String)) -> core.Desugarer
pub const delete_attribute: fn(String) -> core.Desugarer
pub const delete_attribute__batch: fn(List(String)) -> core.Desugarer
pub const delete_attribute__outside: fn(String, List(String)) -> core.Desugarer
pub const delete_attribute_if: fn(fn(String, String) -> Bool) -> core.Desugarer
pub const delete_attribute_of__batch: fn(List(#(String, String))) -> core.Desugarer
pub const delete_class: fn(#(String, String)) -> core.Desugarer
pub const delete_empty_lines: fn() -> core.Desugarer
pub const delete_empty_lines_before_after: fn(List(String)) -> core.Desugarer
pub const delete_first_child_occurrences_of_and_recurse: fn(
  String,
) -> core.Desugarer
pub const delete_if_empty: fn(String) -> core.Desugarer
pub const delete_if_empty__batch: fn(List(String)) -> core.Desugarer
pub const delete_outside_subtrees: fn(fn(vxml.VXML) -> Bool) -> core.Desugarer
pub const delete_text_nodes_with_singleton_empty_line: fn() -> core.Desugarer
pub const detokenize_all: fn() -> core.Desugarer
pub const detokenize_href_surroundings: fn() -> core.Desugarer
pub const echo_v_if_see_text: fn(#(String, String)) -> core.Desugarer
pub const ensure_attribute_value_starts_with: fn(
  #(String, String),
) -> core.Desugarer
pub const ensure_attribute_value_starts_with_prefix: fn(
  #(String, String),
) -> core.Desugarer
pub const expand_info_attribute: fn(List(String)) -> core.Desugarer
pub const expel_initial_last_backward_forward: fn(
  #(String, List(String), List(String)),
) -> core.Desugarer
pub const extract_starting_and_ending_spaces: fn(List(String)) -> core.Desugarer
pub const filter_nodes_by_key_values: fn(List(#(String, String))) -> core.Desugarer
pub const filter_nodes_by_key_values_while_saving: fn(
  #(List(#(String, String)), List(String)),
) -> core.Desugarer
pub const filter_nodes_by_path_key_values: fn(
  List(#(String, String, String)),
) -> core.Desugarer
pub const filter_nodes_by_path_key_values_while_saving: fn(
  #(List(#(String, String, String)), List(String)),
) -> core.Desugarer
pub const find_replace: fn(#(String, String)) -> core.Desugarer
pub const find_replace__batch: fn(List(#(String, String))) -> core.Desugarer
pub const find_replace__batch__outside: fn(
  List(#(String, String)),
  List(String),
) -> core.Desugarer
pub const find_replace__outside: fn(
  #(String, String),
  List(String),
) -> core.Desugarer
pub const find_replace_if_has_ancestor_else: fn(
  #(List(String), #(String, String), #(String, String)),
) -> core.Desugarer
pub const find_replace_in_descendants_of__batch: fn(
  List(#(String, List(#(String, String)))),
) -> core.Desugarer
pub const fold_children_into_text_if: fn(
  #(String, fn(vxml.VXML) -> Bool),
) -> core.Desugarer
pub const fold_contents_into_text: fn(String) -> core.Desugarer
pub const fold_contents_into_text__batch: fn(List(String)) -> core.Desugarer
pub const fold_contents_into_text_if: fn(
  #(String, fn(vxml.VXML) -> Bool),
) -> core.Desugarer
pub const fold_custom_into_text: fn(
  #(String, fn(vxml.VXML) -> String),
) -> core.Desugarer
pub const fold_into_text: fn(#(String, String)) -> core.Desugarer
pub const fold_into_text__batch: fn(List(#(String, String))) -> core.Desugarer
pub const format_writerly_commented_attributes: fn() -> core.Desugarer
pub const free_children: fn(#(String, String)) -> core.Desugarer
pub const free_children__batch: fn(List(#(String, String))) -> core.Desugarer
pub const group_consecutive_children__outside: fn(
  #(String, List(String)),
  List(String),
) -> core.Desugarer
pub const handles_add_ids: fn() -> core.Desugarer
pub const handles_generate_v_definitions_from_t_definitions: fn() -> core.Desugarer
pub const handles_grand_wrapper_generate_dictionary: fn(String) -> core.Desugarer
pub const handles_grand_wrapper_substitute: fn(
  #(
    String,
    String,
    String,
    List(#(String, String)),
    List(#(String, String)),
    List(String),
    List(String),
  ),
) -> core.Desugarer
pub const handles_grand_wrapper_warn_unused: fn(List(String)) -> core.Desugarer
pub const identity: fn() -> core.Desugarer
pub const insert_attribute_as_text: fn(#(String, String)) -> core.Desugarer
pub const insert_attribute_value_at_first_child_start: fn(
  #(String, String, String, core.TrafficLight),
) -> core.Desugarer
pub const insert_attribute_value_at_start: fn(
  #(String, String, String, core.TrafficLight),
) -> core.Desugarer
pub const insert_bookend_tags: fn(List(#(String, String, String))) -> core.Desugarer
pub const insert_bookend_text_if_no_attributes: fn(
  List(#(String, String, String)),
) -> core.Desugarer
pub const insert_custom_before_first: fn(
  #(String, vxml.VXML, String, core.TrafficLight),
) -> core.Desugarer
pub const insert_line_start_end: fn(#(String, #(String, String))) -> core.Desugarer
pub const insert_on_own_line_start_end: fn(
  #(String, #(String, String)),
) -> core.Desugarer
pub const insert_text_start_end: fn(#(String, #(String, String))) -> core.Desugarer
pub const insert_text_start_end_if_else: fn(
  #(
    String,
    #(String, String),
    #(String, String),
    fn(vxml.VXML) -> Bool,
  ),
) -> core.Desugarer
pub const insert_text_start_end_if_unique_attr: fn(
  #(String, String, String, #(String, String)),
) -> core.Desugarer
pub const insert_word_joiner_into_adjacent_text_nodes: fn(
  List(String),
) -> core.Desugarer
pub const last_to_first_concatenate_text_nodes: fn() -> core.Desugarer
pub const line_rewrap_no1__outside: fn(
  #(Int, fn(vxml.VXML) -> Bool),
  List(String),
) -> core.Desugarer
pub const line_rewrap_no2__outside: fn(
  #(List(String), Int, Int, Int, fn(vxml.VXML) -> Bool),
  List(String),
) -> core.Desugarer
pub const markdown_link_closing_handrolled_splitter__outside: fn(
  String,
  List(String),
) -> core.Desugarer
pub const math_label_with_handle_to_mathjax_tag: fn(
  #(String, String),
) -> core.Desugarer
pub const merge_parent_attributes_into_child: fn(
  List(#(String, String)),
) -> core.Desugarer
pub const naive_unescaped_split_and_replace__outside: fn(
  #(String, String, split_replacement.SplitReplacement),
  List(String),
) -> core.Desugarer
pub const normalize_br_in_pre: fn() -> core.Desugarer
pub const normalize_math_delimiters_inside: fn(
  #(String, core.LatexDelimiterPair),
) -> core.Desugarer
pub const normalize_spaces__outside: fn(List(String)) -> core.Desugarer
pub const nuke_ancestors: fn(String) -> core.Desugarer
pub const pair: fn(#(String, String, String, List(String))) -> core.Desugarer
pub const pair_list_list: fn(
  #(List(String), List(String), String),
) -> core.Desugarer
pub const pour_custom_before_first: fn(
  #(String, List(vxml.VXML), String, core.TrafficLight),
) -> core.Desugarer
pub const prepend: fn(#(String, String)) -> core.Desugarer
pub const prepend_append_to_text_children_of: fn(
  List(#(String, String, String)),
) -> core.Desugarer
pub const prepend_attribute: fn(
  #(String, String, String, core.TrafficLight),
) -> core.Desugarer
pub const prepend_attribute__outside: fn(
  #(String, String, String, core.TrafficLight),
  List(String),
) -> core.Desugarer
pub const prepend_attribute_as_first_line: fn(#(String, String)) -> core.Desugarer
pub const prepend_attribute_as_text: fn(#(String, String)) -> core.Desugarer
pub const prepend_attribute_as_wrapped_text: fn(
  #(String, String, vxml.VXML),
) -> core.Desugarer
pub const prepend_attribute_as_wrapped_text_else_custom: fn(
  #(String, String, vxml.VXML, vxml.VXML),
) -> core.Desugarer
pub const prepend_attribute_if: fn(
  #(
    String,
    fn(vxml.VXML) -> Bool,
    String,
    String,
    core.TrafficLight,
  ),
) -> core.Desugarer
pub const prepend_counter_incrementing_attribute: fn(
  #(String, String, core.TrafficLight),
) -> core.Desugarer
pub const prepend_counter_incrementing_attribute__outside: fn(
  #(String, String, core.TrafficLight),
  List(String),
) -> core.Desugarer
pub const prepend_counter_incrementing_attribute_if_fancy: fn(
  #(
    String,
    String,
    fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
    ) -> Bool,
    core.TrafficLight,
  ),
) -> core.Desugarer
pub const prepend_custom: fn(#(String, vxml.VXML)) -> core.Desugarer
pub const prepend_text_node: fn(#(String, String)) -> core.Desugarer
pub const prepend_text_node__batch: fn(List(#(String, String))) -> core.Desugarer
pub const prepend_text_node__outside: fn(
  #(String, String),
  List(String),
) -> core.Desugarer
pub const prepend_text_node_if_fancy: fn(
  #(
    String,
    String,
    fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
    ) -> Bool,
  ),
) -> core.Desugarer
pub const prepend_text_node_if_has_ancestor_else__batch: fn(
  List(#(String, String, String, String)),
) -> core.Desugarer
pub const rearrange_links: fn(#(String, String)) -> core.Desugarer
pub const rearrange_links_4_pre_tokenized_src: fn(
  #(String, String),
) -> core.Desugarer
pub const rearrange_links_4_pre_tokenized_src__batch: fn(
  List(#(String, String)),
) -> core.Desugarer
pub const rearrange_links__batch: fn(List(#(String, String))) -> core.Desugarer
pub const reassign_text_node_blame_to_blame_of_first_nonempty_line_in_text_node: fn(
  ,
) -> core.Desugarer
pub const regex_replace: fn(#(String, String)) -> core.Desugarer
pub const regex_replace__batch: fn(List(#(String, String))) -> core.Desugarer
pub const regex_replace__batch__outside: fn(
  List(#(String, String)),
  List(String),
) -> core.Desugarer
pub const regex_replace__outside: fn(
  #(String, String),
  List(String),
) -> core.Desugarer
pub const regex_split_and_replace__batch__outside: fn(
  List(split_replacement.RegexpSplitRule),
  List(String),
) -> core.Desugarer
pub const regex_split_and_replace__outside: fn(
  split_replacement.RegexpSplitRule,
  List(String),
) -> core.Desugarer
pub const rename: fn(#(String, String)) -> core.Desugarer
pub const rename__batch: fn(List(#(String, String))) -> core.Desugarer
pub const rename_and_delete_children_if_has_singleton_class_attribute: fn(
  #(String, String, String),
) -> core.Desugarer
pub const rename_attributes: fn(List(#(String, String))) -> core.Desugarer
pub const rename_attributes_by_function: fn(fn(String) -> String) -> core.Desugarer
pub const rename_if_child_of: fn(#(String, String, String)) -> core.Desugarer
pub const rename_if_child_of__batch: fn(
  List(#(String, String, String)),
) -> core.Desugarer
pub const rename_if_child_of_one_of: fn(
  #(String, String, List(String)),
) -> core.Desugarer
pub const rename_if_has_key_value: fn(
  #(String, String, String, String),
) -> core.Desugarer
pub const rename_if_has_singleton_class_attribute: fn(
  #(String, String, String),
) -> core.Desugarer
pub const rename_if_has_singleton_key_value: fn(
  #(String, String, String, String),
) -> core.Desugarer
pub const rename_with_appended_attributes_and_prepended_text: fn(
  List(#(String, String, String, List(#(String, String)))),
) -> core.Desugarer
pub const rename_with_attributes: fn(
  #(String, String, List(#(String, String))),
) -> core.Desugarer
pub const rename_with_attributes__batch: fn(
  List(#(String, String, List(#(String, String)))),
) -> core.Desugarer
pub const rename_with_class: fn(#(String, String, String)) -> core.Desugarer
pub const rename_with_class_and_attributes: fn(
  #(String, String, String, List(#(String, String))),
) -> core.Desugarer
pub const replace_in_attribute_values: fn(List(#(String, String))) -> core.Desugarer
pub const replace_multiple_spaces_by_one: fn() -> core.Desugarer
pub const replace_with_arbitrary: fn(#(String, List(vxml.VXML))) -> core.Desugarer
pub const set_handle_value: fn(
  #(String, String, core.TrafficLight),
) -> core.Desugarer
pub const set_handle_value__outside: fn(
  #(String, String, core.TrafficLight),
  List(String),
) -> core.Desugarer
pub const set_handle_value_if_has_ancestor_else: fn(
  #(String, String, String, String),
) -> core.Desugarer
pub const source_provenance_append_img_spans: fn(
  #(
    String,
    String,
    List(String),
    List(#(String, String)),
    List(#(String, String)),
  ),
) -> core.Desugarer
pub const source_provenance_append_span: fn(
  #(String, List(#(String, String)), List(String)),
) -> core.Desugarer
pub const source_provenance_wrap: fn(
  #(
    String,
    String,
    List(#(String, String)),
    List(#(String, String)),
    List(String),
  ),
) -> core.Desugarer
pub const source_provenance_wrap_lines__outside: fn(
  #(String, List(#(String, String)), List(#(String, String))),
  List(String),
) -> core.Desugarer
pub const split_first_line_after_prefix: fn(#(String, String)) -> core.Desugarer
pub const split_last_line_before_suffix: fn(#(String, String)) -> core.Desugarer
pub const strip_delimiters_inside: fn(
  #(String, List(core.LatexDelimiterPair)),
) -> core.Desugarer
pub const strip_delimiters_inside_if: fn(
  #(String, List(core.LatexDelimiterPair), fn(vxml.VXML) -> Bool),
) -> core.Desugarer
pub const substitute_class: fn(#(String, String, String)) -> core.Desugarer
pub const substitute_counters: fn() -> core.Desugarer
pub const supplement_class: fn(#(String, String, String)) -> core.Desugarer
pub const surround_elements_by: fn(
  #(List(String), String, String),
) -> core.Desugarer
pub const table_marker: fn() -> core.Desugarer
pub const table_section_header: fn(String) -> core.Desugarer
pub const timer: fn() -> core.Desugarer
pub const tokenize_href_surroundings: fn() -> core.Desugarer
pub const tokenize_text_children_if: fn(fn(vxml.VXML) -> Bool) -> core.Desugarer
pub const trim: fn(String) -> core.Desugarer
pub const trim__batch: fn(List(String)) -> core.Desugarer
pub const trim_empty_lines: fn(String) -> core.Desugarer
pub const trim_empty_lines__batch: fn(List(String)) -> core.Desugarer
pub const trim_ending_spaces_except_last_line: fn() -> core.Desugarer
pub const trim_spaces_around_newlines__outside: fn(List(String)) -> core.Desugarer
pub const unescape_delimiters__outside: fn(
  List(String),
  List(String),
) -> core.Desugarer
pub const unwrap: fn(String) -> core.Desugarer
pub const unwrap__batch: fn(List(String)) -> core.Desugarer
pub const unwrap__outside: fn(String, List(String)) -> core.Desugarer
pub const unwrap_if_child_of__batch: fn(
  List(#(String, List(String))),
) -> core.Desugarer
pub const unwrap_if_descendant_of: fn(#(String, List(String))) -> core.Desugarer
pub const unwrap_if_descendant_of__batch: fn(
  List(#(String, List(String))),
) -> core.Desugarer
pub const unwrap_if_first_child: fn(String) -> core.Desugarer
pub const unwrap_if_no_child_meets_condition: fn(
  #(String, fn(vxml.VXML) -> Bool),
) -> core.Desugarer
pub const unwrap_if_no_child_meets_condition__batch: fn(
  #(List(String), fn(vxml.VXML) -> Bool),
) -> core.Desugarer
pub const unwrap_if_unique_child_is: fn(#(String, String)) -> core.Desugarer
pub const unwrap_tags_if_attributes_match: fn(
  List(#(String, List(#(String, String)))),
) -> core.Desugarer
pub const unwrap_tags_if_no_attributes: fn(List(String)) -> core.Desugarer
pub const unwrap_tags_with_no_text_child: fn(List(String)) -> core.Desugarer
pub const unwrap_tags_with_no_text_descendant: fn(List(String)) -> core.Desugarer
pub const unwrap_when_zero_or_one_children: fn(List(String)) -> core.Desugarer
pub const wrap: fn(#(String, String)) -> core.Desugarer
pub const wrap_adjacent_non_whitespace_text_with: fn(
  #(List(String), String),
) -> core.Desugarer
pub const wrap_and_custom_steal: fn(
  #(String, String, fn(vxml.VXML) -> Bool, fn(vxml.VXML) -> Bool),
) -> core.Desugarer
pub const wrap_and_steal: fn(
  #(String, String, List(String), List(String)),
) -> core.Desugarer
pub const wrap_children: fn(#(String, String, core.TrafficLight)) -> core.Desugarer
pub const wrap_children_avoiding: fn(
  #(String, String, String, core.TrafficLight),
) -> core.Desugarer
pub const wrap_children_custom: fn(
  #(String, vxml.VXML, core.TrafficLight),
) -> core.Desugarer
pub const wrap_children_up_to: fn(
  #(String, String, String, core.TrafficLight),
) -> core.Desugarer
pub const wrap_children_up_to_custom: fn(
  #(String, String, vxml.VXML, core.TrafficLight),
) -> core.Desugarer
pub const wrap_custom: fn(#(String, vxml.VXML)) -> core.Desugarer
pub const wrap_each_child: fn(#(String, String)) -> core.Desugarer
pub const wrap_if_child_of: fn(#(String, String, List(String))) -> core.Desugarer
pub const wrap_if_first_child_of: fn(#(String, String)) -> core.Desugarer
pub const wrap_if_not_child_of: fn(
  #(String, String, List(String)),
) -> core.Desugarer
pub const wrap_if_text_contains: fn(#(String, String, String)) -> core.Desugarer
pub const wrap_with_custom_if_child_of: fn(
  #(String, vxml.VXML, List(String)),
) -> core.Desugarer
pub const wrap_with_custom_if_not_child_of: fn(
  #(String, vxml.VXML, List(String)),
) -> core.Desugarer
Search Document