Packages
rbt_weave
0.2.65
0.2.67
0.2.66
0.2.65
0.2.64
0.2.63
0.2.62
0.2.61
0.2.60
0.2.59
0.2.58
0.2.57
0.2.56
0.2.55
0.2.54
0.2.53
0.2.52
0.2.51
0.2.50
0.2.49
0.2.48
0.2.47
0.2.46
0.2.45
0.2.44
0.2.43
0.2.42
0.2.41
0.2.40
0.2.39
0.2.38
0.2.37
0.2.36
0.2.35
0.2.34
0.2.33
0.2.32
0.2.31
0.2.30
0.2.29
0.2.28
0.2.27
0.2.26
0.2.25
0.2.24
0.2.23
0.2.22
0.2.21
0.2.20
0.2.19
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
Graph conflict detection and image processing NIFs for OSINT knowledge graphs, powered by Rust.
Current section
Files
Jump to
Current section
Files
crates/weave-content/src/html/dl.rs
//! Definition list rendering helpers for entity fields.
use super::countries::{country_name, is_special_scope};
use super::escape::{escape, format_enum};
pub(crate) fn render_dl_field(html: &mut String, label: &str, value: &str) {
if !value.is_empty() {
html.push_str(&format!(
" <span class=\"loom-field\"><strong>{label}:</strong> {}</span>\n",
escape(value)
));
}
}
pub(crate) fn render_dl_field_html(html: &mut String, label: &str, value_html: &str) {
if !value_html.is_empty() {
html.push_str(&format!(
" <span class=\"loom-field\"><strong>{label}:</strong> {value_html}</span>\n"
));
}
}
pub(crate) fn render_dl_opt(html: &mut String, label: &str, value: Option<&String>) {
if let Some(v) = value {
render_dl_field(html, label, v);
}
}
pub(crate) fn render_dl_opt_formatted(html: &mut String, label: &str, value: Option<&String>) {
if let Some(v) = value {
render_dl_field(html, label, &format_enum(v));
}
}
pub(crate) fn render_dl_item(html: &mut String, label: &str, value: &str) {
if !value.is_empty() {
html.push_str(&format!(
" <dt>{label}</dt>\n <dd>{}</dd>\n",
escape(value)
));
}
}
pub(crate) fn render_dl_item_html(html: &mut String, label: &str, value_html: &str) {
if !value_html.is_empty() {
html.push_str(&format!(
" <dt>{label}</dt>\n <dd>{value_html}</dd>\n"
));
}
}
pub(crate) fn render_dl_opt_item(html: &mut String, label: &str, value: Option<&String>) {
if let Some(v) = value {
render_dl_item(html, label, v);
}
}
pub(crate) fn render_dl_countries(html: &mut String, label: &str, values: &[String]) {
if !values.is_empty() {
let linked: Vec<String> = values
.iter()
.map(|code| {
let name = country_name(code);
if is_special_scope(code) {
name
} else {
format!(
"<a href=\"/countries/{}\" class=\"loom-country-link\">{}</a>",
code.to_lowercase(),
name
)
}
})
.collect();
render_dl_field_html(html, label, &linked.join(", "));
}
}
pub(crate) fn render_dl_country_items(html: &mut String, label: &str, values: &[String]) {
if !values.is_empty() {
let linked: Vec<String> = values
.iter()
.map(|code| {
let name = country_name(code);
if is_special_scope(code) {
name
} else {
format!(
"<a href=\"/countries/{}\" class=\"loom-country-link\">{}</a>",
code.to_lowercase(),
name
)
}
})
.collect();
render_dl_item_html(html, label, &linked.join(", "));
}
}
pub(crate) fn render_dl_opt_formatted_item(html: &mut String, label: &str, value: Option<&String>) {
if let Some(v) = value {
render_dl_item(html, label, &format_enum(v));
}
}