Add pages to config.toml when they are created with new

This commit is contained in:
Sofia 2018-04-17 00:43:39 +03:00
parent cb09cb694b
commit 52b2bab5fd
2 changed files with 51 additions and 17 deletions

View File

@ -4,25 +4,18 @@ built_pages = ["test_page/about.toml", "test_page/other.toml"]
use_default_css = true use_default_css = true
javascript = [] javascript = []
css = [] css = []
#before_navbar_url = "/navbar.html"
#before_content_url = "/before_content.html"
#after_content_url = "/after_content.html"
#favicon = "favicon.png"
#twitter_author = "@teascade"
#google_robots = "all"
#google_site_verification = ""
[navbar] [navbar]
items = ["about", "other", "google"] items = ["about", "other", "google"]
[navbar.item.about] [navbar.item.google]
title = "About" title = "Google!"
link = "/" link = "https://google.com"
[navbar.item.other] [navbar.item.about]
title = "Other" title = "About"
link = "/other" link = "/"
[navbar.item.google] [navbar.item.other]
title = "Google!" title = "Other"
link = "https://google.com" link = "/other"

View File

@ -5,7 +5,7 @@ use options::NewOps;
use logger::{LogLevel, Logger}; use logger::{LogLevel, Logger};
use file_writer; use file_writer;
use error::Error; use error::Error;
use config_toml::{PageConfig, PageConfigToml}; use config_toml::{GlobalConfigToml, PageConfig, PageConfigToml};
use toml; use toml;
use pathdiff; use pathdiff;
@ -34,6 +34,14 @@ pub fn generate_new_page(ops: NewOps, logger: &Logger) -> Result<(), Error> {
markdown_path = ensure_extension(toml_path.clone(), "md", true)?; markdown_path = ensure_extension(toml_path.clone(), "md", true)?;
} }
logger.log(
LogLevel::INFO,
format!(
"Creating page config at {:?} and markdown at {:?}",
toml_path, markdown_path
),
);
logger.log( logger.log(
LogLevel::DETAIL, LogLevel::DETAIL,
format!("Creating a new .toml file at {:?}", toml_path), format!("Creating a new .toml file at {:?}", toml_path),
@ -61,6 +69,11 @@ pub fn generate_new_page(ops: NewOps, logger: &Logger) -> Result<(), Error> {
} }
} }
logger.log(
LogLevel::DETAILER,
format!("Generating page config.toml contents"),
);
let page_config = PageConfigToml { let page_config = PageConfigToml {
page: PageConfig { page: PageConfig {
html_path: html_path.to_str().unwrap().to_owned(), html_path: html_path.to_str().unwrap().to_owned(),
@ -96,6 +109,34 @@ pub fn generate_new_page(ops: NewOps, logger: &Logger) -> Result<(), Error> {
file_writer::write_file(markdown_path, PLACEHOLDER_MARKDOWN, ops.overwrite)?; file_writer::write_file(markdown_path, PLACEHOLDER_MARKDOWN, ops.overwrite)?;
logger.log(
LogLevel::INFO,
format!("Adding page config path to config.toml"),
);
let mut config = GlobalConfigToml::get_config()?;
config
.website
.built_pages
.push(toml_path.to_str().unwrap().to_owned());
logger.log(
LogLevel::DETAIL,
format!("Re-serializing config and writing it"),
);
match toml::ser::to_string(&config) {
Ok(text) => file_writer::write_file(PathBuf::from("config.toml"), text, ops.overwrite)?,
Err(err) => {
return Err(Error::new(
LogLevel::SEVERE,
format!(
"Failed to serialize config.toml: {}",
err.description().to_owned()
),
))
}
}
Ok(()) Ok(())
} }