add a preferred_url option

This commit is contained in:
Peter Cai 2020-04-16 16:21:21 +08:00
parent a9e3490478
commit 81fda6e1c8
No known key found for this signature in database
GPG Key ID: 71F5FB4E4F3FD54F
3 changed files with 19 additions and 3 deletions

View File

@ -67,6 +67,7 @@ This is the main configuration file. The file will be compiled statically into t
"plugin_identifier": "com.example.change.this.to.whatever.you.like",
"posts_per_page": 5,
"cache_maxage": 86400,
"preferred_url": "<your_url>",
"redirects": {
"/foo": "/bar",
...
@ -90,6 +91,8 @@ This is the main configuration file. The file will be compiled statically into t
`plugin_identifier`: Used in Standard Notes to distinguish plugins.
`preferred_url`: OPTIONAL. The preferred URL to use for the options "Open Post" and "Open Blog" (and for these options ONLY) in the Standard Notes Actions menu. Must NOT include a trailing `/`. This is useful if you publish your blog at `https://your_domain.com` but use a `workers.dev` domain for your Standard Notes plugin address.
`redirects`: OPTIONAL. A map of URLs where the key will be mapped to the value by Paprika using 301 redirects. This is mainly useful for migration from another blogging platform.
`cache_maxage`: OPTIONAL. A value in seconds determining how long the browser should cache static resources from the blog. If omitted, the default value is a week.

View File

@ -30,6 +30,7 @@ async fn get_actions(_req: Request, url: Url) -> MyResult<Response> {
verify_secret!(url, params);
let origin = url.origin();
let preferred_url = crate::CONFIG.preferred_url.clone().unwrap_or(origin.clone());
let mut actions = vec![];
// Show different options depending on whether the post already exists
@ -66,7 +67,7 @@ async fn get_actions(_req: Request, url: Url) -> MyResult<Response> {
actions.push(Action {
label: "Open Post".into(),
url: format!("{}/{}/", origin, post.unwrap().url),
url: format!("{}/{}/", preferred_url, post.unwrap().url),
verb: Verb::Show,
context: Context::Item,
content_types: vec![ContentType::Note],
@ -74,6 +75,15 @@ async fn get_actions(_req: Request, url: Url) -> MyResult<Response> {
});
}
actions.push(Action {
label: "Open Blog".into(),
url: preferred_url.clone(),
verb: Verb::Show,
context: Context::Item,
content_types: vec![ContentType::Note],
access_type: None
});
let info = ActionsExtension {
identifier: CONFIG.plugin_identifier.clone(),
name: CONFIG.title.clone(),

View File

@ -164,7 +164,10 @@ pub struct Config {
// UNLIKE in article headers
pub redirects: Option<HashMap<String, String>>,
// Additional remote resource proxy whitelist
pub extra_remote_proxy_whitelist: Option<Vec<String>>
pub extra_remote_proxy_whitelist: Option<Vec<String>>,
// Preferred URL of the blog for "Open Post" and "Open Blog" options in SN
// Must NOT include the trailing "/"
pub preferred_url: Option<String>
}
fn default_maxage() -> u64 {