Add some if-tags and such to make meta-tags more editable
This commit is contained in:
parent
49db42c82f
commit
b8a4e97ae2
18
config.toml
18
config.toml
@ -7,10 +7,20 @@ css = []
|
||||
before_navbar_url = "test_page/resources/before_navbar.html"
|
||||
before_content_url = "test_page/resources/before_content.html"
|
||||
after_content_url = "test_page/resources/after_content.html"
|
||||
#favicon = "favicon.png"
|
||||
#twitter_author = "@teascade"
|
||||
#google_robots = "all"
|
||||
#google_site_verification = ""
|
||||
favicon = "favicon.png"
|
||||
|
||||
charset = "utf-8"
|
||||
mobile_viewport = true
|
||||
meta_description = true
|
||||
meta_og = true
|
||||
|
||||
[google]
|
||||
google_robots = "all"
|
||||
google_site_verification = "some_verification"
|
||||
|
||||
[twitter]
|
||||
twitter_site = "@teascade"
|
||||
twitter_creator = "@teascade"
|
||||
|
||||
[navbar]
|
||||
items = ["about", "other", "google"]
|
||||
|
@ -15,6 +15,8 @@ pub struct GlobalConfigToml {
|
||||
pub navbar: Option<NavbarConfig>,
|
||||
#[serde(rename = "resource")]
|
||||
pub resources: Option<HashMap<String, ResourceConfig>>,
|
||||
pub twitter: Option<TwitterConfig>,
|
||||
pub google: Option<GoogleConfig>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Clone, Debug)]
|
||||
@ -30,13 +32,28 @@ pub struct WebsiteConfig {
|
||||
pub use_default_css: bool,
|
||||
pub javascript: Vec<String>,
|
||||
pub css: Vec<String>,
|
||||
|
||||
pub favicon: Option<String>,
|
||||
pub before_navbar_url: Option<String>,
|
||||
pub before_content_url: Option<String>,
|
||||
pub after_content_url: Option<String>,
|
||||
pub twitter_author: Option<String>,
|
||||
pub google_robots: Option<String>,
|
||||
pub google_site_verification: Option<String>,
|
||||
|
||||
pub mobile_viewport: Option<bool>,
|
||||
pub meta_description: Option<bool>,
|
||||
pub charset: Option<String>,
|
||||
pub meta_og: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Clone, Debug)]
|
||||
pub struct GoogleConfig {
|
||||
pub google_robots: String,
|
||||
pub google_site_verification: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Clone, Debug)]
|
||||
pub struct TwitterConfig {
|
||||
pub twitter_site: String,
|
||||
pub twitter_creator: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Clone, Debug)]
|
||||
|
10
src/main.rs
10
src/main.rs
@ -108,12 +108,16 @@ fn run() -> Result<(), ()> {
|
||||
before_navbar_url: None,
|
||||
before_content_url: None,
|
||||
after_content_url: None,
|
||||
twitter_author: init_opt.twitter_author,
|
||||
google_robots: None,
|
||||
google_site_verification: None,
|
||||
|
||||
mobile_viewport: None,
|
||||
meta_description: None,
|
||||
charset: Some("utf-8".to_owned()),
|
||||
meta_og: None,
|
||||
},
|
||||
navbar: navbar,
|
||||
resources: None,
|
||||
twitter: None,
|
||||
google: None,
|
||||
};
|
||||
|
||||
match file_writer::write_toml(&PathBuf::from("config.toml"), &config, opt.overwrite) {
|
||||
|
@ -96,29 +96,26 @@ impl Template {
|
||||
.favicon
|
||||
.unwrap_or(String::new()),
|
||||
);
|
||||
let google_robots = config
|
||||
.global_config
|
||||
.website
|
||||
.google_robots
|
||||
.unwrap_or(String::new());
|
||||
let google_verification = config
|
||||
.global_config
|
||||
.website
|
||||
.google_site_verification
|
||||
.unwrap_or(String::new());
|
||||
let twitter_author = config
|
||||
.global_config
|
||||
.website
|
||||
.twitter_author
|
||||
.unwrap_or(String::new());
|
||||
|
||||
let mut twitter_site = String::new();
|
||||
let mut twitter_creator = String::new();
|
||||
if let Some(twitter) = config.global_config.twitter.clone() {
|
||||
twitter_site = twitter.twitter_site;
|
||||
twitter_creator = twitter.twitter_creator;
|
||||
}
|
||||
|
||||
let mut google_robots = String::new();
|
||||
let mut google_site_verification = String::new();
|
||||
if let Some(google) = config.global_config.google.clone() {
|
||||
google_robots = google.google_robots;
|
||||
google_site_verification = google.google_site_verification;
|
||||
}
|
||||
|
||||
let map = hashmap!(
|
||||
"website_name".to_owned() => config.global_config.website.website_name,
|
||||
"page_title".to_owned() => config.page_config.page.title,
|
||||
"page_description".to_owned() => config.page_config.page.description,
|
||||
"favicon".to_owned() => favicon.to_owned(),
|
||||
"google_robots".to_owned() => google_robots,
|
||||
"google_verification".to_owned() => google_verification,
|
||||
"twitter_author".to_owned() => twitter_author,
|
||||
|
||||
"before_navbar".to_owned() => before_navbar,
|
||||
"before_content".to_owned() => before_content,
|
||||
@ -131,7 +128,21 @@ impl Template {
|
||||
"navbar".to_owned() => config.global_config.navbar.is_some().to_string(),
|
||||
|
||||
"navbar_content".to_owned() => navbar_content,
|
||||
"content".to_owned() => content
|
||||
"content".to_owned() => content,
|
||||
|
||||
"mobile_viewport".to_owned() => config.global_config.website.mobile_viewport.unwrap_or(true).to_string(),
|
||||
"meta_description".to_owned() => config.global_config.website.meta_description.unwrap_or(true).to_string(),
|
||||
"charset".to_owned() => config.global_config.website.charset.unwrap_or("utf-8".to_owned()),
|
||||
"meta_og".to_owned() => config.global_config.website.meta_og.unwrap_or(true).to_string(),
|
||||
|
||||
"twitter".to_owned() => config.global_config.twitter.is_some().to_string(),
|
||||
"google".to_owned() => config.global_config.google.is_some().to_string(),
|
||||
|
||||
"twitter_site".to_owned() => twitter_site,
|
||||
"twitter_creator".to_owned() => twitter_creator,
|
||||
|
||||
"google_robots".to_owned() => google_robots,
|
||||
"google_site_verification".to_owned() => google_site_verification
|
||||
);
|
||||
|
||||
map
|
||||
|
@ -2,14 +2,13 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="{{page_description}}">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="robots" content="{{google_robots}}">
|
||||
<meta name="google-site-verification" content="{{google_verification}}" />
|
||||
|
||||
{{if mobile_viewport}}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">{{endif}} {{if meta_description}}
|
||||
<meta name="title" content="{{website_name}}">
|
||||
<meta name="description" content="{{page_description}}">{{endif}}
|
||||
<meta charset="{{charset}}"> {{if google}}
|
||||
<meta name="robots" content="{{google_robots}}">
|
||||
<meta name="google-site-verification" content="{{google_site_verification}}" /> {{endif}} {{if meta_og}}
|
||||
<meta property="og:title" content="{{page_title}}">
|
||||
<meta property="og:site_name" content="{{website_name}}">
|
||||
<meta property="og:type" content="website">
|
||||
@ -18,13 +17,12 @@
|
||||
<meta property="og:image:secure_url" content="{{favicon}}">
|
||||
<meta property="og:image:type" content="image/png">
|
||||
<meta property="og:image:width" content="512">
|
||||
<meta property="og:image:height" content="512">
|
||||
|
||||
<meta name="twitter:site" content="{{twitter_author}}">
|
||||
<meta name="twitter:creator" content="{{twitter_author}}">
|
||||
<meta property="og:image:height" content="512"> {{endif}} {{if twitter}}
|
||||
<meta name="twitter:site" content="{{twitter_site}}">
|
||||
<meta name="twitter:creator" content="{{twitter_creator}}">
|
||||
<meta name="twitter:title" content="{{page_title}}">
|
||||
<meta name="twitter:description" content="{{page_description}}">
|
||||
<meta name="twitter:image" content="{{favicon}}"> {{if use_default_css}}
|
||||
<meta name="twitter:image" content="{{favicon}}"> {{endif}} {{if use_default_css}}
|
||||
<link rel="stylesheet" href="/css/default.css"> {{endif}} {{css_links}}{{javascript_links}}
|
||||
|
||||
<link rel="shortcut icon" href="{{favicon}}"></link>
|
||||
|
Loading…
Reference in New Issue
Block a user