Browse Source

Override base_url in serve cmd

index-subcmd
Vincent Prouillet 7 years ago
parent
commit
eb6fa3c314
4 changed files with 19 additions and 5 deletions
  1. +3
    -1
      src/cmd/build.rs
  2. +9
    -1
      src/cmd/serve.rs
  3. +1
    -2
      src/site.rs
  4. +6
    -1
      tests/site.rs

+ 3
- 1
src/cmd/build.rs View File

@@ -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()
}

+ 9
- 1
src/cmd/serve.rs View File

@@ -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


+ 1
- 2
src/site.rs View File

@@ -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)
}


+ 6
- 1
tests/site.rs View File

@@ -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…
Cancel
Save