Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: fix a few typos and add check #160

Merged
merged 1 commit into from
Aug 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -179,3 +179,9 @@ jobs:
working-directory: fuzzing
env:
RUSTFLAGS: '-Ctarget-feature=-crt-static'

Typos:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crate-ci/typos@master
26 changes: 26 additions & 0 deletions _typos.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[default]
locale = "en-us"

[files]
extend-exclude = [
# generated files
"book/ethicalads-theme.css",
"fuzzing/fuzz/artifacts/",
"fuzzing/fuzz/corpus/",
"target/",
"rinja_parser/tests/*.txt",
# fillter texts
"rinja/benches/strings.inc",
# too many false positives
"testing/tests/gen_ws_tests.py",
]

[default.extend-words]
# French words
exemple = "exemple"
existant = "existant"
# used in tests
Ba = "Ba"
fo = "fo"
Fo = "Fo"
Comment on lines +24 to +25
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I never saw these two as fillers.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, yes, "fo", "Fo" & "Ba" are actually not used in filler texts, but "foO", "FoO", "BaR", in casing tests. Will change the comment.

sur = "sur"
2 changes: 1 addition & 1 deletion book/src/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Hello
To be noted, if one of the trimmed characters is a newline, then the only
character remaining will be a newline.

If you want this to be the default behaviour, you can set `whitespace` to
If you want this to be the default behavior, you can set `whitespace` to
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is british english (left) vs US english (right). Both are valid.

Copy link
Collaborator Author

@Kijewski Kijewski Aug 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but IMHO we should stick to one locale.

I guess in a French text you would probably replace "nonante", too, even if it is valid Belgian French; as I would probably replace instances of "Jänner" ("January", Swiss) or "heuer" ("this current year", Austrian). :)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nah I prefer nonante, makes much more sense. Although I'm surprised by how many people know about this compared to how many people living in France know about it. 🤣

`"minimize"`.

To be noted: you can also configure `whitespace` directly into the `template`
Expand Down
2 changes: 1 addition & 1 deletion book/src/template_syntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ struct MyTemplate {

However, since we'll need to define this function every time we create an
instance of `MyTemplate`, it's probably not the most ideal way to associate
some behaviour for our template.
some behavior for our template.

### Static functions

Expand Down
6 changes: 3 additions & 3 deletions examples/actix-web-app/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ enum Error {
///
/// The same type is used by actix-web as part of the URL, and in rinja to select what content to
/// show, and also as an HTML attribute in `<html lang=`. To make it possible to use the same type
/// for three diffent use cases, we use a few derive macros:
/// for three different use cases, we use a few derive macros:
///
/// * `Default` to have a default/fallback language.
/// * `Debug` is not strictly needed, but it might aid debugging.
Expand Down Expand Up @@ -105,7 +105,7 @@ async fn not_found_handler(req: HttpRequest) -> Result<impl Responder> {
}
}

/// The is first page your user hits does not contain language infomation, so we redirect them
/// The is first page your user hits does not contain language information, so we redirect them
/// to a URL that does contain the default language.
#[get("/")]
async fn start_handler(req: HttpRequest) -> Result<impl Responder> {
Expand Down Expand Up @@ -139,7 +139,7 @@ async fn index_handler(
// `{% if lang !=`, the former to select the text of a specific language, e.g. in the `<title>`;
// and the latter to display references to all other available languages except the currently
// selected one.
// The field `name` will contain the value of the query paramater of the same name.
// The field `name` will contain the value of the query parameter of the same name.
// In `IndexHandlerQuery` we annotated the field with `#[serde(default)]`, so if the value is
// absent, an empty string is selected by default, which is visible to the user an empty
// `<input type="text" />` element.
Expand Down
67 changes: 6 additions & 61 deletions rinja/benches/escape.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use criterion::{criterion_group, criterion_main, Criterion};
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use rinja::filters::{escape, Html};

criterion_main!(benches);
Expand All @@ -9,66 +9,11 @@ fn functions(c: &mut Criterion) {
}

fn escaping(b: &mut criterion::Bencher<'_>) {
let string_long = r#"
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris consequat tellus sit
amet ornare fermentum. Etiam nec erat ante. In at metus a orci mollis scelerisque.
Sed eget ultrices turpis, at sollicitudin erat. Integer hendrerit nec magna quis
venenatis. Vivamus non dolor hendrerit, vulputate velit sed, varius nunc. Quisque
in pharetra mi. Sed ullamcorper nibh malesuada commodo porttitor. Ut scelerisque
sodales felis quis dignissim. Morbi aliquam finibus justo, sit amet consectetur
mauris efficitur sit amet. Donec posuere turpis felis, eu lacinia magna accumsan
quis. Fusce egestas lacus vel fermentum tincidunt. Phasellus a nulla eget lectus
placerat commodo at eget nisl. Fusce cursus dui quis purus accumsan auctor.
Donec iaculis felis quis metus consectetur porttitor.
<p>
Etiam nibh mi, <b>accumsan</b> quis purus sed, posuere fermentum lorem. In pulvinar porta
maximus. Fusce tincidunt lacinia tellus sit amet tincidunt. Aliquam lacus est, pulvinar
non metus a, <b>facilisis</b> ultrices quam. Nulla feugiat leo in cursus eleifend. Suspendisse
eget nisi ac justo sagittis interdum id a ipsum. Nulla mauris justo, scelerisque ac
rutrum vitae, consequat vel ex.
</p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p>
<p>
Sed sollicitudin <b>sem</b> mauris, at rutrum nibh egestas vel. Ut eu nisi tellus. Praesent dignissim
orci elementum, mattis turpis eget, maximus ante. Suspendisse luctus eu felis a tempor. Morbi
ac risus vitae sem molestie ullamcorper. Curabitur ligula augue, sollicitudin quis maximus vel,
facilisis sed nibh. Aenean auctor magna sem, id rutrum metus convallis quis. Nullam non arcu
dictum, lobortis erat quis, rhoncus est. Suspendisse venenatis, mi sed venenatis vehicula,
tortor dolor egestas lectus, et efficitur turpis odio non augue. Integer velit sapien, dictum
non egestas vitae, hendrerit sed quam. Phasellus a nunc eu erat varius imperdiet. Etiam id
sollicitudin turpis, vitae molestie orci. Quisque ornare magna quis metus rhoncus commodo.
Phasellus non mauris velit.
</p>
<p>
Etiam dictum tellus ipsum, nec varius quam ornare vel. Cras vehicula diam nec sollicitudin
ultricies. Pellentesque rhoncus sagittis nisl id facilisis. Nunc viverra convallis risus ut
luctus. Aliquam vestibulum <b>efficitur massa</b>, id tempus nisi posuere a. Aliquam scelerisque
elit justo. Nullam a ante felis. Cras vitae lorem eu nisi feugiat hendrerit. Maecenas vitae
suscipit leo, lacinia dignissim lacus. Sed eget volutpat mi. In eu bibendum neque. Pellentesque
finibus velit a fermentum rhoncus. Maecenas leo purus, eleifend eu lacus a, condimentum sagittis
justo.
</p>"#;
let string_short = "Lorem ipsum dolor sit amet,<foo>bar&foo\"bar\\foo/bar";
let empty = "";
let no_escape = "Lorem ipsum dolor sit amet,";
let no_escape_long = r#"
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin scelerisque eu urna in aliquet.
Phasellus ac nulla a urna sagittis consequat id quis est. Nullam eu ex eget erat accumsan dictum
ac lobortis urna. Etiam fermentum ut quam at dignissim. Curabitur vestibulum luctus tellus, sit
amet lobortis augue tempor faucibus. Nullam sed felis eget odio elementum euismod in sit amet massa.
Vestibulum sagittis purus sit amet eros auctor, sit amet pharetra purus dapibus. Donec ornare metus
vel dictum porta. Etiam ut nisl nisi. Nullam rutrum porttitor mi. Donec aliquam ac ipsum eget
hendrerit. Cras faucibus, eros ut pharetra imperdiet, est tellus aliquet felis, eget convallis
lacus ipsum eget quam. Vivamus orci lorem, maximus ac mi eget, bibendum vulputate massa. In
vestibulum dui hendrerit, vestibulum lacus sit amet, posuere erat. Vivamus euismod massa diam,
vulputate euismod lectus vestibulum nec. Donec sit amet massa magna. Nunc ipsum nulla, euismod
quis lacus at, gravida maximus elit. Duis tristique, nisl nullam.
"#;

b.iter(|| {
format!("{}", escape(string_long, Html).unwrap());
format!("{}", escape(string_short, Html).unwrap());
format!("{}", escape(empty, Html).unwrap());
format!("{}", escape(no_escape, Html).unwrap());
format!("{}", escape(no_escape_long, Html).unwrap());
for &s in black_box(STRINGS) {
format!("{}", escape(s, Html).unwrap());
}
});
}

const STRINGS: &[&str] = include!("strings.inc");
69 changes: 69 additions & 0 deletions rinja/benches/strings.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
const STRING_LONG: &str = r#"
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris consequat tellus sit
amet ornare fermentum. Etiam nec erat ante. In at metus a orci mollis scelerisque.
Sed eget ultrices turpis, at sollicitudin erat. Integer hendrerit nec magna quis
venenatis. Vivamus non dolor hendrerit, vulputate velit sed, varius nunc. Quisque
in pharetra mi. Sed ullamcorper nibh malesuada commodo porttitor. Ut scelerisque
sodales felis quis dignissim. Morbi aliquam finibus justo, sit amet consectetur
mauris efficitur sit amet. Donec posuere turpis felis, eu lacinia magna accumsan
quis. Fusce egestas lacus vel fermentum tincidunt. Phasellus a nulla eget lectus
placerat commodo at eget nisl. Fusce cursus dui quis purus accumsan auctor.
Donec iaculis felis quis metus consectetur porttitor.
<p>
Etiam nibh mi, <b>accumsan</b> quis purus sed, posuere fermentum lorem. In pulvinar porta
maximus. Fusce tincidunt lacinia tellus sit amet tincidunt. Aliquam lacus est, pulvinar
non metus a, <b>facilisis</b> ultrices quam. Nulla feugiat leo in cursus eleifend. Suspendisse
eget nisi ac justo sagittis interdum id a ipsum. Nulla mauris justo, scelerisque ac
rutrum vitae, consequat vel ex.
</p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p>
<p>
Sed sollicitudin <b>sem</b> mauris, at rutrum nibh egestas vel. Ut eu nisi tellus. Praesent dignissim
orci elementum, mattis turpis eget, maximus ante. Suspendisse luctus eu felis a tempor. Morbi
ac risus vitae sem molestie ullamcorper. Curabitur ligula augue, sollicitudin quis maximus vel,
facilisis sed nibh. Aenean auctor magna sem, id rutrum metus convallis quis. Nullam non arcu
dictum, lobortis erat quis, rhoncus est. Suspendisse venenatis, mi sed venenatis vehicula,
tortor dolor egestas lectus, et efficitur turpis odio non augue. Integer velit sapien, dictum
non egestas vitae, hendrerit sed quam. Phasellus a nunc eu erat varius imperdiet. Etiam id
sollicitudin turpis, vitae molestie orci. Quisque ornare magna quis metus rhoncus commodo.
Phasellus non mauris velit.
</p>
<p>
Etiam dictum tellus ipsum, nec varius quam ornare vel. Cras vehicula diam nec sollicitudin
ultricies. Pellentesque rhoncus sagittis nisl id facilisis. Nunc viverra convallis risus ut
luctus. Aliquam vestibulum <b>efficitur massa</b>, id tempus nisi posuere a. Aliquam scelerisque
elit justo. Nullam a ante felis. Cras vitae lorem eu nisi feugiat hendrerit. Maecenas vitae
suscipit leo, lacinia dignissim lacus. Sed eget volutpat mi. In eu bibendum neque. Pellentesque
finibus velit a fermentum rhoncus. Maecenas leo purus, eleifend eu lacus a, condimentum sagittis
justo.
</p>"#;

const STRING_SHORT: &str = "Lorem ipsum dolor sit amet,<foo>bar&foo\"bar\\foo/bar";

const EMPTY: &str = "";

const NO_ESCAPE: &str = "Lorem ipsum dolor sit amet,";

const NO_ESCAPE_LONG: &str = r#"
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin scelerisque eu urna in aliquet.
Phasellus ac nulla a urna sagittis consequat id quis est. Nullam eu ex eget erat accumsan dictum
ac lobortis urna. Etiam fermentum ut quam at dignissim. Curabitur vestibulum luctus tellus, sit
amet lobortis augue tempor faucibus. Nullam sed felis eget odio elementum euismod in sit amet massa.
Vestibulum sagittis purus sit amet eros auctor, sit amet pharetra purus dapibus. Donec ornare metus
vel dictum porta. Etiam ut nisl nisi. Nullam rutrum porttitor mi. Donec aliquam ac ipsum eget
hendrerit. Cras faucibus, eros ut pharetra imperdiet, est tellus aliquet felis, eget convallis
lacus ipsum eget quam. Vivamus orci lorem, maximus ac mi eget, bibendum vulputate massa. In
vestibulum dui hendrerit, vestibulum lacus sit amet, posuere erat. Vivamus euismod massa diam,
vulputate euismod lectus vestibulum nec. Donec sit amet massa magna. Nunc ipsum nulla, euismod
quis lacus at, gravida maximus elit. Duis tristique, nisl nullam.
"#;

const STRINGS: &[&str] = &[
STRING_LONG,
STRING_SHORT,
EMPTY,
NO_ESCAPE,
NO_ESCAPE_LONG,
];
STRINGS
}
66 changes: 6 additions & 60 deletions rinja/benches/to-json.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use criterion::{criterion_group, criterion_main, Criterion};
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use rinja::Template;

criterion_main!(benches);
Expand All @@ -18,7 +18,7 @@ fn escape_json(b: &mut criterion::Bencher<'_>) {

b.iter(|| {
let mut len = 0;
for &s in STRINGS {
for &s in black_box(STRINGS) {
len += Tmpl(s).to_string().len();
}
len
Expand All @@ -32,7 +32,7 @@ fn escape_json_pretty(b: &mut criterion::Bencher<'_>) {

b.iter(|| {
let mut len = 0;
for &s in STRINGS {
for &s in black_box(STRINGS) {
len += Tmpl(s).to_string().len();
}
len
Expand All @@ -46,7 +46,7 @@ fn escape_json_for_html(b: &mut criterion::Bencher<'_>) {

b.iter(|| {
let mut len = 0;
for &s in STRINGS {
for &s in black_box(STRINGS) {
len += Tmpl(s).to_string().len();
}
len
Expand All @@ -60,65 +60,11 @@ fn escape_json_for_html_pretty(b: &mut criterion::Bencher<'_>) {

b.iter(|| {
let mut len = 0;
for &s in STRINGS {
for &s in black_box(STRINGS) {
len += Tmpl(s).to_string().len();
}
len
});
}

const STRINGS: &[&str] = &[STRING_LONG, STRING_SHORT, EMPTY, NO_ESCAPE, NO_ESCAPE_LONG];
const STRING_LONG: &str = r#"
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris consequat tellus sit
amet ornare fermentum. Etiam nec erat ante. In at metus a orci mollis scelerisque.
Sed eget ultrices turpis, at sollicitudin erat. Integer hendrerit nec magna quis
venenatis. Vivamus non dolor hendrerit, vulputate velit sed, varius nunc. Quisque
in pharetra mi. Sed ullamcorper nibh malesuada commodo porttitor. Ut scelerisque
sodales felis quis dignissim. Morbi aliquam finibus justo, sit amet consectetur
mauris efficitur sit amet. Donec posuere turpis felis, eu lacinia magna accumsan
quis. Fusce egestas lacus vel fermentum tincidunt. Phasellus a nulla eget lectus
placerat commodo at eget nisl. Fusce cursus dui quis purus accumsan auctor.
Donec iaculis felis quis metus consectetur porttitor.
<p>
Etiam nibh mi, <b>accumsan</b> quis purus sed, posuere fermentum lorem. In pulvinar porta
maximus. Fusce tincidunt lacinia tellus sit amet tincidunt. Aliquam lacus est, pulvinar
non metus a, <b>facilisis</b> ultrices quam. Nulla feugiat leo in cursus eleifend. Suspendisse
eget nisi ac justo sagittis interdum id a ipsum. Nulla mauris justo, scelerisque ac
rutrum vitae, consequat vel ex.
</p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p>
<p>
Sed sollicitudin <b>sem</b> mauris, at rutrum nibh egestas vel. Ut eu nisi tellus. Praesent dignissim
orci elementum, mattis turpis eget, maximus ante. Suspendisse luctus eu felis a tempor. Morbi
ac risus vitae sem molestie ullamcorper. Curabitur ligula augue, sollicitudin quis maximus vel,
facilisis sed nibh. Aenean auctor magna sem, id rutrum metus convallis quis. Nullam non arcu
dictum, lobortis erat quis, rhoncus est. Suspendisse venenatis, mi sed venenatis vehicula,
tortor dolor egestas lectus, et efficitur turpis odio non augue. Integer velit sapien, dictum
non egestas vitae, hendrerit sed quam. Phasellus a nunc eu erat varius imperdiet. Etiam id
sollicitudin turpis, vitae molestie orci. Quisque ornare magna quis metus rhoncus commodo.
Phasellus non mauris velit.
</p>
<p>
Etiam dictum tellus ipsum, nec varius quam ornare vel. Cras vehicula diam nec sollicitudin
ultricies. Pellentesque rhoncus sagittis nisl id facilisis. Nunc viverra convallis risus ut
luctus. Aliquam vestibulum <b>efficitur massa</b>, id tempus nisi posuere a. Aliquam scelerisque
elit justo. Nullam a ante felis. Cras vitae lorem eu nisi feugiat hendrerit. Maecenas vitae
suscipit leo, lacinia dignissim lacus. Sed eget volutpat mi. In eu bibendum neque. Pellentesque
finibus velit a fermentum rhoncus. Maecenas leo purus, eleifend eu lacus a, condimentum sagittis
justo.
</p>"#;
const STRING_SHORT: &str = "Lorem ipsum dolor sit amet,<foo>bar&foo\"bar\\foo/bar";
const EMPTY: &str = "";
const NO_ESCAPE: &str = "Lorem ipsum dolor sit amet,";
const NO_ESCAPE_LONG: &str = r#"
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin scelerisque eu urna in aliquet.
Phasellus ac nulla a urna sagittis consequat id quis est. Nullam eu ex eget erat accumsan dictum
ac lobortis urna. Etiam fermentum ut quam at dignissim. Curabitur vestibulum luctus tellus, sit
amet lobortis augue tempor faucibus. Nullam sed felis eget odio elementum euismod in sit amet massa.
Vestibulum sagittis purus sit amet eros auctor, sit amet pharetra purus dapibus. Donec ornare metus
vel dictum porta. Etiam ut nisl nisi. Nullam rutrum porttitor mi. Donec aliquam ac ipsum eget
hendrerit. Cras faucibus, eros ut pharetra imperdiet, est tellus aliquet felis, eget convallis
lacus ipsum eget quam. Vivamus orci lorem, maximus ac mi eget, bibendum vulputate massa. In
vestibulum dui hendrerit, vestibulum lacus sit amet, posuere erat. Vivamus euismod massa diam,
vulputate euismod lectus vestibulum nec. Donec sit amet massa magna. Nunc ipsum nulla, euismod
quis lacus at, gravida maximus elit. Duis tristique, nisl nullam.
"#;
const STRINGS: &[&str] = include!("strings.inc");
2 changes: 1 addition & 1 deletion rinja_derive/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ impl RawConfig<'_> {
#[cfg_attr(feature = "config", derive(Deserialize))]
#[cfg_attr(feature = "config", serde(field_identifier, rename_all = "lowercase"))]
pub(crate) enum WhitespaceHandling {
/// The default behaviour. It will leave the whitespace characters "as is".
/// The default behavior. It will leave the whitespace characters "as is".
#[default]
Preserve,
/// It'll remove all the whitespace characters before and after the jinja block.
Expand Down
2 changes: 1 addition & 1 deletion rinja_derive/src/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,7 @@ impl TemplateArgs {
}
}

/// Try to find the souce in the comment, in a `rinja` code block.
/// Try to find the source in the comment, in a `rinja` code block.
///
/// This is only done if no path or source was given in the `#[template]` attribute.
fn source_from_docs(
Expand Down