MCPcopy Create free account
hub / github.com/DioxusLabs/dioxus-components / render_code_block_html

Function render_code_block_html

preview/build.rs:99–129  ·  view source on GitHub ↗
(kind: &pulldown_cmark::CodeBlockKind<'_>, source: &str)

Source from the content-addressed store, hash-verified

97}
98
99fn render_code_block_html(kind: &pulldown_cmark::CodeBlockKind<'_>, source: &str) -> String {
100 let language = match kind {
101 pulldown_cmark::CodeBlockKind::Fenced(info) => {
102 let slug = info.split_whitespace().next().unwrap_or_default();
103 language_from_slug(slug)
104 }
105 pulldown_cmark::CodeBlockKind::Indented => None,
106 };
107
108 let Some(language) = language else {
109 return render_plain_code_block(source);
110 };
111
112 let source = source.trim_end_matches('\n');
113 let highlighted: dioxus_code::advanced::HighlightedSource =
114 dioxus_code::SourceCode::new(language, source).into();
115
116 dioxus_ssr::render_element(rsx! {
117 div {
118 class: "dx-preview-code-theme",
119 tabindex: "0",
120 dioxus_code::Code {
121 src: highlighted,
122 theme: dioxus_code::CodeTheme::system(
123 dioxus_code::Theme::GITHUB_LIGHT,
124 dioxus_code::Theme::GITHUB_DARK,
125 ),
126 }
127 }
128 })
129}
130
131fn render_plain_code_block(source: &str) -> String {
132 let source = source.trim_end_matches('\n');

Callers 1

process_markdown_to_htmlFunction · 0.85

Calls 3

language_from_slugFunction · 0.85
render_plain_code_blockFunction · 0.85
nextMethod · 0.80

Tested by

no test coverage detected