@use crate::templates::base; @use crate::Urler; @use crate::limit_text_len; @use crate::SearchPage; @use crate::SearchKind; @use rich_crate::Origin; @(p: &SearchPage, url: &Urler) @:base(&p.page(), {
@if let SearchKind::Query(query) = p.query { } @if let SearchKind::Keyword(k) = p.query {

#@k

}
@if p.good_results.is_empty() {

Nothing found :(

@if let SearchKind::Query(query) = p.query {

Try searching with DuckDuckGo or on crates.io.

} } else {
    @for (i, c) in p.good_results.iter().chain(p.bad_results).enumerate() {
  1. @if let Some((repo, _)) = c.origin.repo() {@repo.owner/}@c.crate_name

    @p.render_markdown_str(&limit_text_len(&c.description, 180, 220))

    @if let Origin::GitHub{..} = c.origin {GitHub } else {v}@c.version @if c.monthly_downloads >= 100 { @if let Some((num,unit)) = Some(p.downloads(c.monthly_downloads)) {@num@unit} } @for k in c.keywords.split(", ").filter(|k| !k.is_empty()) { #@k }
  2. @if i == p.good_results.len() { @if let SearchKind::Query(query) = p.query {

    Report poor search results. Try searching with DuckDuckGo or on crates.io.

    } } } @if let SearchKind::Keyword(_) = p.query {

    Feedback on crate ranking

    }
}
})