Override base_url in serve cmd
This commit is contained in:
parent
540bbcc1b6
commit
eb6fa3c314
|
@ -5,5 +5,7 @@ use gutenberg::Site;
|
|||
|
||||
|
||||
pub fn build() -> Result<()> {
|
||||
Site::new(env::current_dir().unwrap())?.build()
|
||||
let mut site = Site::new(env::current_dir().unwrap())?;
|
||||
site.parse()?;
|
||||
site.build()
|
||||
}
|
||||
|
|
|
@ -62,11 +62,19 @@ pub fn serve(interface: &str, port: &str) -> Result<()> {
|
|||
println!("Building site...");
|
||||
let start = Instant::now();
|
||||
let mut site = Site::new(env::current_dir().unwrap())?;
|
||||
let address = format!("{}:{}", interface, port);
|
||||
// Override the base url so links work in localhost
|
||||
site.config.base_url = if site.config.base_url.ends_with('/') {
|
||||
format!("http://{}/", address)
|
||||
} else {
|
||||
format!("http://{}", address)
|
||||
};
|
||||
|
||||
site.parse()?;
|
||||
site.enable_live_reload();
|
||||
site.build()?;
|
||||
report_elapsed_time(start);
|
||||
|
||||
let address = format!("{}:{}", interface, port);
|
||||
let ws_address = format!("{}:{}", interface, "1112");
|
||||
|
||||
// Start a webserver that serves the `public` directory
|
||||
|
|
|
@ -74,7 +74,7 @@ impl Site {
|
|||
let mut tera = Tera::new(&tpl_glob).chain_err(|| "Error parsing templates")?;
|
||||
tera.extend(&GUTENBERG_TERA)?;
|
||||
|
||||
let mut site = Site {
|
||||
let site = Site {
|
||||
base_path: path.to_path_buf(),
|
||||
config: get_config(path),
|
||||
pages: HashMap::new(),
|
||||
|
@ -85,7 +85,6 @@ impl Site {
|
|||
tags: HashMap::new(),
|
||||
categories: HashMap::new(),
|
||||
};
|
||||
site.parse()?;
|
||||
|
||||
Ok(site)
|
||||
}
|
||||
|
|
|
@ -16,7 +16,8 @@ use gutenberg::{Site};
|
|||
fn test_can_parse_site() {
|
||||
let mut path = env::current_dir().unwrap().to_path_buf();
|
||||
path.push("test_site");
|
||||
let site = Site::new(&path).unwrap();
|
||||
let mut site = Site::new(&path).unwrap();
|
||||
site.parse().unwrap();
|
||||
|
||||
// Correct number of pages (sections are pages too)
|
||||
assert_eq!(site.pages.len(), 10);
|
||||
|
@ -88,6 +89,7 @@ fn test_can_build_site_without_live_reload() {
|
|||
let mut path = env::current_dir().unwrap().to_path_buf();
|
||||
path.push("test_site");
|
||||
let mut site = Site::new(&path).unwrap();
|
||||
site.parse().unwrap();
|
||||
let tmp_dir = TempDir::new("example").expect("create temp dir");
|
||||
let public = &tmp_dir.path().join("public");
|
||||
site.set_output_path(&public);
|
||||
|
@ -127,6 +129,7 @@ fn test_can_build_site_with_live_reload() {
|
|||
let mut path = env::current_dir().unwrap().to_path_buf();
|
||||
path.push("test_site");
|
||||
let mut site = Site::new(&path).unwrap();
|
||||
site.parse().unwrap();
|
||||
let tmp_dir = TempDir::new("example").expect("create temp dir");
|
||||
let public = &tmp_dir.path().join("public");
|
||||
site.set_output_path(&public);
|
||||
|
@ -163,6 +166,7 @@ fn test_can_build_site_with_categories() {
|
|||
let mut path = env::current_dir().unwrap().to_path_buf();
|
||||
path.push("test_site");
|
||||
let mut site = Site::new(&path).unwrap();
|
||||
site.parse().unwrap();
|
||||
|
||||
for (i, page) in site.pages.values_mut().enumerate() {
|
||||
page.meta.category = if i % 2 == 0 {
|
||||
|
@ -212,6 +216,7 @@ fn test_can_build_site_with_tags() {
|
|||
let mut path = env::current_dir().unwrap().to_path_buf();
|
||||
path.push("test_site");
|
||||
let mut site = Site::new(&path).unwrap();
|
||||
site.parse().unwrap();
|
||||
|
||||
for (i, page) in site.pages.values_mut().enumerate() {
|
||||
page.meta.tags = if i % 2 == 0 {
|
||||
|
|
Loading…
Reference in a new issue