forked from Plume/Plume
finally fix url!
also please a bit clippy
This commit is contained in:
parent
c5f6b88b1d
commit
b172a80e35
4 changed files with 19 additions and 6 deletions
|
@ -1,7 +1,10 @@
|
|||
use plume_models::{notifications::*, users::User, Connection, PlumeRocket};
|
||||
|
||||
use rocket::http::hyper::header::{ETag, EntityTag};
|
||||
use rocket::http::{Method, Status};
|
||||
use rocket::http::{
|
||||
uri::{FromUriParam, Query},
|
||||
Method, Status,
|
||||
};
|
||||
use rocket::request::Request;
|
||||
use rocket::response::{self, content::Html as HtmlCt, Responder, Response};
|
||||
use rocket_i18n::Catalog;
|
||||
|
@ -13,6 +16,16 @@ pub use askama_escape::escape;
|
|||
|
||||
pub static CACHE_NAME: &str = env!("CACHE_ID");
|
||||
|
||||
pub struct NoValue; // workarround for missing FromUriParam implementation for Option
|
||||
|
||||
impl FromUriParam<Query, NoValue> for Option<i32> {
|
||||
type Target = Option<i32>;
|
||||
|
||||
fn from_uri_param(_: NoValue) -> Self::Target {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
pub type BaseContext<'a> = &'a (
|
||||
&'a Connection,
|
||||
&'a Catalog,
|
||||
|
@ -363,7 +376,7 @@ macro_rules! url {
|
|||
common=[$($common_args:tt = $common_val:expr),*],
|
||||
normal=[$($normal_args:tt = $normal_val:expr),*],
|
||||
custom=[$($custom_args:tt = $custom_val:expr),*]) => {{
|
||||
let domain: Option<&plume_models::blogs::Host> = $domain.as_ref(); //for type inference with None
|
||||
let domain: &Option<plume_models::blogs::Host> = &$domain; //for type inference with None
|
||||
$(
|
||||
let $common_args = $common_val;
|
||||
)*
|
||||
|
@ -372,7 +385,7 @@ macro_rules! url {
|
|||
let $custom_args = $custom_val;
|
||||
)*
|
||||
let origin = uri!(crate::routes::$module::custom::$route:
|
||||
$custom_domain = domain.as_ref(),
|
||||
$custom_domain = domain.to_string(),
|
||||
$($common_args = $common_args,)*
|
||||
$($custom_args = $custom_args,)*
|
||||
);
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<link href='@Instance::get_local().unwrap().compute_box("~", &blog.fqn, "atom.xml")' rel='alternate' type='application/atom+xml'>
|
||||
<link href='@blog.ap_url' rel='alternate' type='application/activity+json'>
|
||||
}, {
|
||||
<a href="@url!(custom_domain = *&blog.custom_domain, blogs::details: common=[page = None], normal=[name = &blog.fqn])" dir="auto">@blog.title</a>
|
||||
<a href="@url!(custom_domain = blog.custom_domain, blogs::details: common=[page = None], normal=[name = &blog.fqn])" dir="auto">@blog.title</a>
|
||||
}, {
|
||||
<div class="hidden">
|
||||
@for author in authors {
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<div class="cover" style="background-image: url('@Html(article.cover_url(ctx.0).unwrap_or_default())')"></div>
|
||||
}
|
||||
<h3 class="p-name" dir="auto">
|
||||
<a class="u-url" href="@url!(custom_domain = article.get_blog(ctx.0).unwrap().custom_domain, posts::details: common=[ slug = &article.slug, responding_to = None], normal=[blog = article.get_blog(ctx.0).unwrap().fqn])">
|
||||
<a class="u-url" href="@url!(custom_domain = article.get_blog(ctx.0).unwrap().custom_domain, posts::details: common=[ slug = &article.slug, responding_to = NoValue], normal=[blog = article.get_blog(ctx.0).unwrap().fqn])">
|
||||
@article.title
|
||||
</a>
|
||||
</h3>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
@if article.cover_id.is_some() {
|
||||
<meta property="og:image" content="@Html(article.cover_url(ctx.0).unwrap_or_default())"/>
|
||||
}
|
||||
<meta property="og:url" content="@url!(custom_domain = *&blog.custom_domain, posts::details: common=[slug = &article.slug, responding_to = None], normal=[blog = &blog.fqn])"/>
|
||||
<meta property="og:url" content="@url!(custom_domain = blog.custom_domain, posts::details: common=[slug = &article.slug, responding_to = NoValue], normal=[blog = &blog.fqn])"/>
|
||||
<meta property="og:description" content="@article.subtitle"/>
|
||||
}, {
|
||||
<a href="@url!(custom_domain = &blog.custom_domain, blogs::details: common=[page = None], normal=[name = &blog.fqn])">@blog.title</a>
|
||||
|
|
Loading…
Reference in a new issue