mirror of
https://github.com/nushell/nushell
synced 2025-01-14 14:14:13 +00:00
Replace htmlescape with v_htmlescape (#11572)
# Description `htmlescape` is unmaintained: https://crates.io/crates/htmlescape while `v_htmlescape` is: https://crates.io/crates/v_htmlescape and is used by two popular crates (`actix-files` and `minijinja`) Let's use this instead - I'm packaging `nu` in Fedora and there is understandable reluctance in bringing in an unmaintained crate if we can avoid it. # User-Facing Changes Should not be any; drop-in replacement # Tests + Formatting Tested using: - `cargo build` in the root folder (needed by some `nu-command` tests) - `cargo test --features sqlite` in `crates/nu-command` (`tests/commands/database/into_sqlite.rs` needs `rusqlite`) - `cargo test` in `crates/nu-cmd-extra` # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> N/A Signed-off-by: Michel Lind <salimma@fedoraproject.org>
This commit is contained in:
parent
ee6547dbb7
commit
5d63f47c85
5 changed files with 16 additions and 14 deletions
16
Cargo.lock
generated
16
Cargo.lock
generated
|
@ -1701,12 +1701,6 @@ dependencies = [
|
||||||
"syn 1.0.109",
|
"syn 1.0.109",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "htmlescape"
|
|
||||||
version = "0.3.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "http"
|
name = "http"
|
||||||
version = "0.2.11"
|
version = "0.2.11"
|
||||||
|
@ -2731,7 +2725,6 @@ dependencies = [
|
||||||
"ahash",
|
"ahash",
|
||||||
"fancy-regex",
|
"fancy-regex",
|
||||||
"heck",
|
"heck",
|
||||||
"htmlescape",
|
|
||||||
"nu-ansi-term",
|
"nu-ansi-term",
|
||||||
"nu-cmd-base",
|
"nu-cmd-base",
|
||||||
"nu-cmd-lang",
|
"nu-cmd-lang",
|
||||||
|
@ -2747,6 +2740,7 @@ dependencies = [
|
||||||
"rust-embed",
|
"rust-embed",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_urlencoded",
|
"serde_urlencoded",
|
||||||
|
"v_htmlescape",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2801,7 +2795,6 @@ dependencies = [
|
||||||
"filesize",
|
"filesize",
|
||||||
"filetime",
|
"filetime",
|
||||||
"fs_extra",
|
"fs_extra",
|
||||||
"htmlescape",
|
|
||||||
"human-date-parser",
|
"human-date-parser",
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"indicatif",
|
"indicatif",
|
||||||
|
@ -2874,6 +2867,7 @@ dependencies = [
|
||||||
"uu_mv",
|
"uu_mv",
|
||||||
"uu_whoami",
|
"uu_whoami",
|
||||||
"uuid",
|
"uuid",
|
||||||
|
"v_htmlescape",
|
||||||
"wax",
|
"wax",
|
||||||
"which 5.0.0",
|
"which 5.0.0",
|
||||||
"windows 0.52.0",
|
"windows 0.52.0",
|
||||||
|
@ -5878,6 +5872,12 @@ dependencies = [
|
||||||
"getrandom",
|
"getrandom",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "v_htmlescape"
|
||||||
|
version = "0.15.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "value-trait"
|
name = "value-trait"
|
||||||
version = "0.8.0"
|
version = "0.8.0"
|
||||||
|
|
|
@ -30,7 +30,7 @@ serde = "1.0.164"
|
||||||
nu-pretty-hex = { version = "0.89.1", path = "../nu-pretty-hex" }
|
nu-pretty-hex = { version = "0.89.1", path = "../nu-pretty-hex" }
|
||||||
nu-json = { version = "0.89.1", path = "../nu-json" }
|
nu-json = { version = "0.89.1", path = "../nu-json" }
|
||||||
serde_urlencoded = "0.7.1"
|
serde_urlencoded = "0.7.1"
|
||||||
htmlescape = "0.3.1"
|
v_htmlescape = "0.15.0"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
extra = ["default"]
|
extra = ["default"]
|
||||||
|
|
|
@ -396,7 +396,7 @@ fn html_table(table: Vec<Value>, headers: Vec<String>, config: &Config) -> Strin
|
||||||
output_string.push_str("<thead><tr>");
|
output_string.push_str("<thead><tr>");
|
||||||
for header in &headers {
|
for header in &headers {
|
||||||
output_string.push_str("<th>");
|
output_string.push_str("<th>");
|
||||||
output_string.push_str(&htmlescape::encode_minimal(header));
|
output_string.push_str(&v_htmlescape::escape(header).to_string());
|
||||||
output_string.push_str("</th>");
|
output_string.push_str("</th>");
|
||||||
}
|
}
|
||||||
output_string.push_str("</tr></thead><tbody>");
|
output_string.push_str("</tr></thead><tbody>");
|
||||||
|
@ -432,7 +432,8 @@ fn html_value(value: Value, config: &Config) -> String {
|
||||||
output_string.push_str("</pre>");
|
output_string.push_str("</pre>");
|
||||||
}
|
}
|
||||||
other => output_string.push_str(
|
other => output_string.push_str(
|
||||||
&htmlescape::encode_minimal(&other.into_abbreviated_string(config))
|
&v_htmlescape::escape(&other.into_abbreviated_string(config))
|
||||||
|
.to_string()
|
||||||
.replace('\n', "<br>"),
|
.replace('\n', "<br>"),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,6 @@ fancy-regex = "0.12"
|
||||||
filesize = "0.2"
|
filesize = "0.2"
|
||||||
filetime = "0.2"
|
filetime = "0.2"
|
||||||
fs_extra = "1.3"
|
fs_extra = "1.3"
|
||||||
htmlescape = "0.3"
|
|
||||||
human-date-parser = "0.1.1"
|
human-date-parser = "0.1.1"
|
||||||
indexmap = "2.1"
|
indexmap = "2.1"
|
||||||
indicatif = "0.17"
|
indicatif = "0.17"
|
||||||
|
@ -94,6 +93,7 @@ uu_whoami = "0.0.23"
|
||||||
uu_mkdir = "0.0.23"
|
uu_mkdir = "0.0.23"
|
||||||
uu_mktemp = "0.0.23"
|
uu_mktemp = "0.0.23"
|
||||||
uuid = { version = "1.6", features = ["v4"] }
|
uuid = { version = "1.6", features = ["v4"] }
|
||||||
|
v_htmlescape = "0.15.0"
|
||||||
wax = { version = "0.6" }
|
wax = { version = "0.6" }
|
||||||
which = { version = "5.0", optional = true }
|
which = { version = "5.0", optional = true }
|
||||||
bracoxide = "0.1.2"
|
bracoxide = "0.1.2"
|
||||||
|
|
|
@ -138,7 +138,7 @@ fn collect_headers(headers: &[String]) -> (Vec<String>, Vec<usize>) {
|
||||||
|
|
||||||
if !headers.is_empty() && (headers.len() > 1 || !headers[0].is_empty()) {
|
if !headers.is_empty() && (headers.len() > 1 || !headers[0].is_empty()) {
|
||||||
for header in headers {
|
for header in headers {
|
||||||
let escaped_header_string = htmlescape::encode_minimal(header);
|
let escaped_header_string = v_htmlescape::escape(header).to_string();
|
||||||
column_widths.push(escaped_header_string.len());
|
column_widths.push(escaped_header_string.len());
|
||||||
escaped_headers.push(escaped_header_string);
|
escaped_headers.push(escaped_header_string);
|
||||||
}
|
}
|
||||||
|
@ -179,7 +179,8 @@ fn table(input: PipelineData, pretty: bool, config: &Config) -> String {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
p => {
|
p => {
|
||||||
let value_string = htmlescape::encode_minimal(&p.into_abbreviated_string(config));
|
let value_string =
|
||||||
|
v_htmlescape::escape(&p.into_abbreviated_string(config)).to_string();
|
||||||
escaped_row.push(value_string);
|
escaped_row.push(value_string);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue