Use Rust 2018 edition (#885)
This commit is contained in:
parent
ceb9bc8ed7
commit
e804f907b2
|
@ -2,6 +2,7 @@
|
||||||
name = "zola"
|
name = "zola"
|
||||||
version = "0.10.0"
|
version = "0.10.0"
|
||||||
authors = ["Vincent Prouillet <hello@vincentprouillet.com>"]
|
authors = ["Vincent Prouillet <hello@vincentprouillet.com>"]
|
||||||
|
edition = "2018"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
description = "A fast static site generator with everything built-in"
|
description = "A fast static site generator with everything built-in"
|
||||||
|
|
3
build.rs
3
build.rs
|
@ -1,6 +1,3 @@
|
||||||
#[macro_use]
|
|
||||||
extern crate clap;
|
|
||||||
|
|
||||||
// use clap::Shell;
|
// use clap::Shell;
|
||||||
|
|
||||||
include!("src/cli.rs");
|
include!("src/cli.rs");
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "config"
|
name = "config"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
toml = "0.5"
|
toml = "0.5"
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
//! syntect, not as a helpful example for beginners.
|
//! syntect, not as a helpful example for beginners.
|
||||||
//! Although it is a valid example for serializing syntaxes, you probably won't need
|
//! Although it is a valid example for serializing syntaxes, you probably won't need
|
||||||
//! to do this yourself unless you want to cache your own compiled grammars.
|
//! to do this yourself unless you want to cache your own compiled grammars.
|
||||||
extern crate syntect;
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
|
|
|
@ -3,14 +3,14 @@ use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
use globset::{Glob, GlobSet, GlobSetBuilder};
|
use globset::{Glob, GlobSet, GlobSetBuilder};
|
||||||
|
use serde_derive::{Deserialize, Serialize};
|
||||||
use syntect::parsing::{SyntaxSet, SyntaxSetBuilder};
|
use syntect::parsing::{SyntaxSet, SyntaxSetBuilder};
|
||||||
use toml;
|
use toml;
|
||||||
use toml::Value as Toml;
|
use toml::Value as Toml;
|
||||||
|
|
||||||
use errors::Error;
|
use crate::highlighting::THEME_SET;
|
||||||
use errors::Result;
|
use crate::theme::Theme;
|
||||||
use highlighting::THEME_SET;
|
use errors::{bail, Error, Result};
|
||||||
use theme::Theme;
|
|
||||||
use utils::fs::read_file_with_error;
|
use utils::fs::read_file_with_error;
|
||||||
|
|
||||||
// We want a default base url for tests
|
// We want a default base url for tests
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
|
use lazy_static::lazy_static;
|
||||||
use syntect::dumps::from_binary;
|
use syntect::dumps::from_binary;
|
||||||
use syntect::easy::HighlightLines;
|
use syntect::easy::HighlightLines;
|
||||||
use syntect::highlighting::ThemeSet;
|
use syntect::highlighting::ThemeSet;
|
||||||
use syntect::parsing::SyntaxSet;
|
use syntect::parsing::SyntaxSet;
|
||||||
|
|
||||||
use Config;
|
use crate::config::Config;
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
pub static ref SYNTAX_SET: SyntaxSet = {
|
pub static ref SYNTAX_SET: SyntaxSet = {
|
||||||
|
|
|
@ -1,20 +1,7 @@
|
||||||
#[macro_use]
|
|
||||||
extern crate serde_derive;
|
|
||||||
extern crate chrono;
|
|
||||||
extern crate globset;
|
|
||||||
extern crate toml;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate lazy_static;
|
|
||||||
extern crate syntect;
|
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate errors;
|
|
||||||
extern crate utils;
|
|
||||||
|
|
||||||
mod config;
|
mod config;
|
||||||
pub mod highlighting;
|
pub mod highlighting;
|
||||||
mod theme;
|
mod theme;
|
||||||
pub use config::{Config, Language, LinkChecker, Taxonomy};
|
pub use crate::config::{Config, Language, LinkChecker, Taxonomy};
|
||||||
|
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
use serde_derive::{Deserialize, Serialize};
|
||||||
use toml::Value as Toml;
|
use toml::Value as Toml;
|
||||||
|
|
||||||
use errors::Result;
|
use errors::{bail, Result};
|
||||||
use utils::fs::read_file_with_error;
|
use utils::fs::read_file_with_error;
|
||||||
|
|
||||||
/// Holds the data from a `theme.toml` file.
|
/// Holds the data from a `theme.toml` file.
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "errors"
|
name = "errors"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tera = "1"
|
tera = "1"
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
extern crate image;
|
|
||||||
extern crate syntect;
|
|
||||||
extern crate tera;
|
|
||||||
extern crate toml;
|
|
||||||
|
|
||||||
use std::convert::Into;
|
use std::convert::Into;
|
||||||
use std::error::Error as StdError;
|
use std::error::Error as StdError;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "front_matter"
|
name = "front_matter"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tera = "1"
|
tera = "1"
|
||||||
|
|
|
@ -1,18 +1,7 @@
|
||||||
#[macro_use]
|
use lazy_static::lazy_static;
|
||||||
extern crate lazy_static;
|
use serde_derive::{Deserialize, Serialize};
|
||||||
#[macro_use]
|
|
||||||
extern crate serde_derive;
|
|
||||||
extern crate chrono;
|
|
||||||
extern crate regex;
|
|
||||||
extern crate serde;
|
|
||||||
extern crate tera;
|
|
||||||
extern crate toml;
|
|
||||||
|
|
||||||
#[macro_use]
|
use errors::{bail, Error, Result};
|
||||||
extern crate errors;
|
|
||||||
extern crate utils;
|
|
||||||
|
|
||||||
use errors::{Error, Result};
|
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use chrono::prelude::*;
|
use chrono::prelude::*;
|
||||||
|
use serde_derive::Deserialize;
|
||||||
use tera::{Map, Value};
|
use tera::{Map, Value};
|
||||||
use toml;
|
use toml;
|
||||||
|
|
||||||
use errors::Result;
|
use errors::{bail, Result};
|
||||||
use utils::de::{fix_toml_dates, from_toml_datetime};
|
use utils::de::{fix_toml_dates, from_toml_datetime};
|
||||||
|
|
||||||
/// The front matter of every page
|
/// The front matter of every page
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
|
use serde_derive::{Deserialize, Serialize};
|
||||||
use tera::{Map, Value};
|
use tera::{Map, Value};
|
||||||
use toml;
|
use toml;
|
||||||
|
|
||||||
use super::{InsertAnchor, SortBy};
|
use super::{InsertAnchor, SortBy};
|
||||||
use errors::Result;
|
use errors::{bail, Result};
|
||||||
use utils::de::fix_toml_dates;
|
use utils::de::fix_toml_dates;
|
||||||
|
|
||||||
static DEFAULT_PAGINATE_PATH: &str = "page";
|
static DEFAULT_PAGINATE_PATH: &str = "page";
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "imageproc"
|
name = "imageproc"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vojtěch Král <vojtech@kral.hk>"]
|
authors = ["Vojtěch Král <vojtech@kral.hk>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
lazy_static = "1"
|
lazy_static = "1"
|
||||||
|
|
|
@ -1,12 +1,3 @@
|
||||||
#[macro_use]
|
|
||||||
extern crate lazy_static;
|
|
||||||
extern crate image;
|
|
||||||
extern crate rayon;
|
|
||||||
extern crate regex;
|
|
||||||
|
|
||||||
extern crate errors;
|
|
||||||
extern crate utils;
|
|
||||||
|
|
||||||
use std::collections::hash_map::DefaultHasher;
|
use std::collections::hash_map::DefaultHasher;
|
||||||
use std::collections::hash_map::Entry as HEntry;
|
use std::collections::hash_map::Entry as HEntry;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
@ -17,6 +8,7 @@ use std::path::{Path, PathBuf};
|
||||||
use image::jpeg::JPEGEncoder;
|
use image::jpeg::JPEGEncoder;
|
||||||
use image::png::PNGEncoder;
|
use image::png::PNGEncoder;
|
||||||
use image::{FilterType, GenericImageView};
|
use image::{FilterType, GenericImageView};
|
||||||
|
use lazy_static::lazy_static;
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "library"
|
name = "library"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
slotmap = "0.4"
|
slotmap = "0.4"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
use config::Config;
|
use config::Config;
|
||||||
use errors::Result;
|
use errors::{bail, Result};
|
||||||
|
|
||||||
/// Takes a full path to a file and returns only the components after the first `content` directory
|
/// Takes a full path to a file and returns only the components after the first `content` directory
|
||||||
/// Will not return the filename as last component
|
/// Will not return the filename as last component
|
||||||
|
|
|
@ -2,22 +2,23 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
|
use lazy_static::lazy_static;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use slotmap::DefaultKey;
|
use slotmap::DefaultKey;
|
||||||
use tera::{Context as TeraContext, Tera};
|
use tera::{Context as TeraContext, Tera};
|
||||||
|
|
||||||
|
use crate::library::Library;
|
||||||
use config::Config;
|
use config::Config;
|
||||||
use errors::{Error, Result};
|
use errors::{Error, Result};
|
||||||
use front_matter::{split_page_content, InsertAnchor, PageFrontMatter};
|
use front_matter::{split_page_content, InsertAnchor, PageFrontMatter};
|
||||||
use library::Library;
|
|
||||||
use rendering::{render_content, Heading, RenderContext};
|
use rendering::{render_content, Heading, RenderContext};
|
||||||
use utils::fs::{find_related_assets, read_file};
|
use utils::fs::{find_related_assets, read_file};
|
||||||
use utils::site::get_reading_analytics;
|
use utils::site::get_reading_analytics;
|
||||||
use utils::templates::render_template;
|
use utils::templates::render_template;
|
||||||
|
|
||||||
use content::file_info::FileInfo;
|
use crate::content::file_info::FileInfo;
|
||||||
use content::has_anchor;
|
use crate::content::has_anchor;
|
||||||
use content::ser::SerializingPage;
|
use crate::content::ser::SerializingPage;
|
||||||
use utils::slugs::maybe_slugify_paths;
|
use utils::slugs::maybe_slugify_paths;
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
|
|
|
@ -12,10 +12,10 @@ use utils::fs::{find_related_assets, read_file};
|
||||||
use utils::site::get_reading_analytics;
|
use utils::site::get_reading_analytics;
|
||||||
use utils::templates::render_template;
|
use utils::templates::render_template;
|
||||||
|
|
||||||
use content::file_info::FileInfo;
|
use crate::content::file_info::FileInfo;
|
||||||
use content::has_anchor;
|
use crate::content::has_anchor;
|
||||||
use content::ser::SerializingSection;
|
use crate::content::ser::SerializingSection;
|
||||||
use library::Library;
|
use crate::library::Library;
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq)]
|
||||||
pub struct Section {
|
pub struct Section {
|
||||||
|
|
|
@ -2,10 +2,11 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
|
use serde_derive::Serialize;
|
||||||
use tera::{Map, Value};
|
use tera::{Map, Value};
|
||||||
|
|
||||||
use content::{Page, Section};
|
use crate::content::{Page, Section};
|
||||||
use library::Library;
|
use crate::library::Library;
|
||||||
use rendering::Heading;
|
use rendering::Heading;
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, Serialize)]
|
#[derive(Clone, Debug, PartialEq, Serialize)]
|
||||||
|
|
|
@ -1,28 +1,3 @@
|
||||||
extern crate serde;
|
|
||||||
extern crate tera;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate serde_derive;
|
|
||||||
extern crate chrono;
|
|
||||||
extern crate rayon;
|
|
||||||
extern crate slotmap;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate lazy_static;
|
|
||||||
extern crate regex;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
extern crate globset;
|
|
||||||
#[cfg(test)]
|
|
||||||
extern crate tempfile;
|
|
||||||
#[cfg(test)]
|
|
||||||
extern crate toml;
|
|
||||||
|
|
||||||
extern crate config;
|
|
||||||
extern crate front_matter;
|
|
||||||
extern crate rendering;
|
|
||||||
extern crate utils;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate errors;
|
|
||||||
|
|
||||||
mod content;
|
mod content;
|
||||||
mod library;
|
mod library;
|
||||||
mod pagination;
|
mod pagination;
|
||||||
|
@ -31,8 +6,8 @@ mod taxonomies;
|
||||||
|
|
||||||
pub use slotmap::{DenseSlotMap, Key};
|
pub use slotmap::{DenseSlotMap, Key};
|
||||||
|
|
||||||
|
pub use crate::library::Library;
|
||||||
pub use content::{Page, Section, SerializingPage, SerializingSection};
|
pub use content::{Page, Section, SerializingPage, SerializingSection};
|
||||||
pub use library::Library;
|
|
||||||
pub use pagination::Paginator;
|
pub use pagination::Paginator;
|
||||||
pub use sorting::sort_actual_pages_by_date;
|
pub use sorting::sort_actual_pages_by_date;
|
||||||
pub use taxonomies::{find_taxonomies, Taxonomy, TaxonomyItem};
|
pub use taxonomies::{find_taxonomies, Taxonomy, TaxonomyItem};
|
||||||
|
|
|
@ -5,9 +5,9 @@ use slotmap::{DefaultKey, DenseSlotMap};
|
||||||
|
|
||||||
use front_matter::SortBy;
|
use front_matter::SortBy;
|
||||||
|
|
||||||
|
use crate::content::{Page, Section};
|
||||||
|
use crate::sorting::{find_siblings, sort_pages_by_date, sort_pages_by_weight};
|
||||||
use config::Config;
|
use config::Config;
|
||||||
use content::{Page, Section};
|
|
||||||
use sorting::{find_siblings, sort_pages_by_date, sort_pages_by_weight};
|
|
||||||
|
|
||||||
// Like vec! but for HashSet
|
// Like vec! but for HashSet
|
||||||
macro_rules! set {
|
macro_rules! set {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use serde_derive::Serialize;
|
||||||
use slotmap::DefaultKey;
|
use slotmap::DefaultKey;
|
||||||
use tera::{to_value, Context, Tera, Value};
|
use tera::{to_value, Context, Tera, Value};
|
||||||
|
|
||||||
|
@ -7,9 +8,9 @@ use config::Config;
|
||||||
use errors::{Error, Result};
|
use errors::{Error, Result};
|
||||||
use utils::templates::render_template;
|
use utils::templates::render_template;
|
||||||
|
|
||||||
use content::{Section, SerializingPage, SerializingSection};
|
use crate::content::{Section, SerializingPage, SerializingSection};
|
||||||
use library::Library;
|
use crate::library::Library;
|
||||||
use taxonomies::{Taxonomy, TaxonomyItem};
|
use crate::taxonomies::{Taxonomy, TaxonomyItem};
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq)]
|
||||||
enum PaginationRoot<'a> {
|
enum PaginationRoot<'a> {
|
||||||
|
@ -240,11 +241,11 @@ mod tests {
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use tera::to_value;
|
use tera::to_value;
|
||||||
|
|
||||||
|
use crate::content::{Page, Section};
|
||||||
|
use crate::library::Library;
|
||||||
|
use crate::taxonomies::{Taxonomy, TaxonomyItem};
|
||||||
use config::Taxonomy as TaxonomyConfig;
|
use config::Taxonomy as TaxonomyConfig;
|
||||||
use content::{Page, Section};
|
|
||||||
use front_matter::SectionFrontMatter;
|
use front_matter::SectionFrontMatter;
|
||||||
use library::Library;
|
|
||||||
use taxonomies::{Taxonomy, TaxonomyItem};
|
|
||||||
|
|
||||||
use super::Paginator;
|
use super::Paginator;
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ use chrono::NaiveDateTime;
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use slotmap::DefaultKey;
|
use slotmap::DefaultKey;
|
||||||
|
|
||||||
use content::Page;
|
use crate::content::Page;
|
||||||
|
|
||||||
/// Used by the RSS feed
|
/// Used by the RSS feed
|
||||||
/// There to not have to import sorting stuff in the site crate
|
/// There to not have to import sorting stuff in the site crate
|
||||||
|
@ -91,7 +91,7 @@ mod tests {
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use super::{find_siblings, sort_pages_by_date, sort_pages_by_weight};
|
use super::{find_siblings, sort_pages_by_date, sort_pages_by_weight};
|
||||||
use content::Page;
|
use crate::content::Page;
|
||||||
use front_matter::PageFrontMatter;
|
use front_matter::PageFrontMatter;
|
||||||
|
|
||||||
fn create_page_with_date(date: &str) -> Page {
|
fn create_page_with_date(date: &str) -> Page {
|
||||||
|
|
|
@ -1,16 +1,17 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use serde_derive::Serialize;
|
||||||
use slotmap::DefaultKey;
|
use slotmap::DefaultKey;
|
||||||
use tera::{Context, Tera};
|
use tera::{Context, Tera};
|
||||||
|
|
||||||
use config::{Config, Taxonomy as TaxonomyConfig};
|
use config::{Config, Taxonomy as TaxonomyConfig};
|
||||||
use errors::{Error, Result};
|
use errors::{bail, Error, Result};
|
||||||
use utils::templates::render_template;
|
use utils::templates::render_template;
|
||||||
|
|
||||||
use content::SerializingPage;
|
use crate::content::SerializingPage;
|
||||||
use library::Library;
|
use crate::library::Library;
|
||||||
|
use crate::sorting::sort_pages_by_date;
|
||||||
use utils::slugs::maybe_slugify_paths;
|
use utils::slugs::maybe_slugify_paths;
|
||||||
use sorting::sort_pages_by_date;
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Serialize)]
|
#[derive(Debug, Clone, PartialEq, Serialize)]
|
||||||
pub struct SerializedTaxonomyItem<'a> {
|
pub struct SerializedTaxonomyItem<'a> {
|
||||||
|
@ -231,9 +232,9 @@ mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use crate::content::Page;
|
||||||
|
use crate::library::Library;
|
||||||
use config::{Config, Language, Taxonomy as TaxonomyConfig};
|
use config::{Config, Language, Taxonomy as TaxonomyConfig};
|
||||||
use content::Page;
|
|
||||||
use library::Library;
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_make_taxonomies() {
|
fn can_make_taxonomies() {
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "link_checker"
|
name = "link_checker"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
reqwest = "0.9"
|
reqwest = "0.9"
|
||||||
|
|
|
@ -1,10 +1,4 @@
|
||||||
extern crate reqwest;
|
use lazy_static::lazy_static;
|
||||||
#[macro_use]
|
|
||||||
extern crate lazy_static;
|
|
||||||
|
|
||||||
extern crate config;
|
|
||||||
extern crate errors;
|
|
||||||
|
|
||||||
use reqwest::header::{HeaderMap, ACCEPT};
|
use reqwest::header::{HeaderMap, ACCEPT};
|
||||||
use reqwest::StatusCode;
|
use reqwest::StatusCode;
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "rebuild"
|
name = "rebuild"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
errors = { path = "../errors" }
|
errors = { path = "../errors" }
|
||||||
|
|
|
@ -1,12 +1,6 @@
|
||||||
extern crate site;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate errors;
|
|
||||||
extern crate front_matter;
|
|
||||||
extern crate library;
|
|
||||||
|
|
||||||
use std::path::{Component, Path};
|
use std::path::{Component, Path};
|
||||||
|
|
||||||
use errors::Result;
|
use errors::{bail, Result};
|
||||||
use front_matter::{PageFrontMatter, SectionFrontMatter};
|
use front_matter::{PageFrontMatter, SectionFrontMatter};
|
||||||
use library::{Page, Section};
|
use library::{Page, Section};
|
||||||
use site::Site;
|
use site::Site;
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
extern crate fs_extra;
|
|
||||||
extern crate rebuild;
|
|
||||||
extern crate site;
|
|
||||||
extern crate tempfile;
|
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::fs::{self, File};
|
use std::fs::{self, File};
|
||||||
use std::io::prelude::*;
|
use std::io::prelude::*;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "rendering"
|
name = "rendering"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tera = { version = "1", features = ["preserve_order"] }
|
tera = { version = "1", features = ["preserve_order"] }
|
||||||
|
|
|
@ -1,11 +1,3 @@
|
||||||
#![feature(test)]
|
|
||||||
extern crate tera;
|
|
||||||
extern crate test;
|
|
||||||
|
|
||||||
extern crate config;
|
|
||||||
extern crate front_matter;
|
|
||||||
extern crate rendering;
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
|
|
|
@ -1,26 +1,3 @@
|
||||||
extern crate pulldown_cmark;
|
|
||||||
extern crate syntect;
|
|
||||||
extern crate tera;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate serde_derive;
|
|
||||||
extern crate pest;
|
|
||||||
extern crate serde;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate pest_derive;
|
|
||||||
extern crate regex;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate lazy_static;
|
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate errors;
|
|
||||||
extern crate config;
|
|
||||||
extern crate front_matter;
|
|
||||||
extern crate link_checker;
|
|
||||||
extern crate utils;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
extern crate templates;
|
|
||||||
|
|
||||||
mod context;
|
mod context;
|
||||||
mod markdown;
|
mod markdown;
|
||||||
mod shortcode;
|
mod shortcode;
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
use lazy_static::lazy_static;
|
||||||
use pulldown_cmark as cmark;
|
use pulldown_cmark as cmark;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use syntect::easy::HighlightLines;
|
use syntect::easy::HighlightLines;
|
||||||
|
@ -5,11 +6,11 @@ use syntect::html::{
|
||||||
start_highlighted_html_snippet, styled_line_to_highlighted_html, IncludeBackground,
|
start_highlighted_html_snippet, styled_line_to_highlighted_html, IncludeBackground,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use crate::context::RenderContext;
|
||||||
|
use crate::table_of_contents::{make_table_of_contents, Heading};
|
||||||
use config::highlighting::{get_highlighter, SYNTAX_SET, THEME_SET};
|
use config::highlighting::{get_highlighter, SYNTAX_SET, THEME_SET};
|
||||||
use context::RenderContext;
|
|
||||||
use errors::{Error, Result};
|
use errors::{Error, Result};
|
||||||
use front_matter::InsertAnchor;
|
use front_matter::InsertAnchor;
|
||||||
use table_of_contents::{make_table_of_contents, Heading};
|
|
||||||
use utils::site::resolve_internal_link;
|
use utils::site::resolve_internal_link;
|
||||||
use utils::vec::InsertMany;
|
use utils::vec::InsertMany;
|
||||||
use utils::slugs::maybe_slugify_anchors;
|
use utils::slugs::maybe_slugify_anchors;
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
|
use lazy_static::lazy_static;
|
||||||
use pest::iterators::Pair;
|
use pest::iterators::Pair;
|
||||||
use pest::Parser;
|
use pest::Parser;
|
||||||
|
use pest_derive::Parser;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use tera::{to_value, Context, Map, Value};
|
use tera::{to_value, Context, Map, Value};
|
||||||
|
|
||||||
use context::RenderContext;
|
use crate::context::RenderContext;
|
||||||
use errors::{Error, Result};
|
use errors::{bail, Error, Result};
|
||||||
|
|
||||||
// This include forces recompiling this source file if the grammar file changes.
|
// This include forces recompiling this source file if the grammar file changes.
|
||||||
// Uncomment it when doing changes to the .pest file
|
// Uncomment it when doing changes to the .pest file
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
use serde_derive::Serialize;
|
||||||
|
|
||||||
/// Populated while receiving events from the markdown parser
|
/// Populated while receiving events from the markdown parser
|
||||||
#[derive(Debug, PartialEq, Clone, Serialize)]
|
#[derive(Debug, PartialEq, Clone, Serialize)]
|
||||||
pub struct Heading {
|
pub struct Heading {
|
||||||
|
|
|
@ -1,9 +1,3 @@
|
||||||
extern crate config;
|
|
||||||
extern crate front_matter;
|
|
||||||
extern crate rendering;
|
|
||||||
extern crate templates;
|
|
||||||
extern crate tera;
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use tera::Tera;
|
use tera::Tera;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "search"
|
name = "search"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
elasticlunr-rs = "2"
|
elasticlunr-rs = "2"
|
||||||
|
|
|
@ -1,17 +1,9 @@
|
||||||
extern crate elasticlunr;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate lazy_static;
|
|
||||||
extern crate ammonia;
|
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate errors;
|
|
||||||
extern crate library;
|
|
||||||
|
|
||||||
use std::collections::{HashMap, HashSet};
|
use std::collections::{HashMap, HashSet};
|
||||||
|
|
||||||
use elasticlunr::{Index, Language};
|
use elasticlunr::{Index, Language};
|
||||||
|
use lazy_static::lazy_static;
|
||||||
|
|
||||||
use errors::Result;
|
use errors::{bail, Result};
|
||||||
use library::{Library, Section};
|
use library::{Library, Section};
|
||||||
|
|
||||||
pub const ELASTICLUNR_JS: &str = include_str!("elasticlunr.min.js");
|
pub const ELASTICLUNR_JS: &str = include_str!("elasticlunr.min.js");
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "site"
|
name = "site"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tera = "1"
|
tera = "1"
|
||||||
|
|
|
@ -1,9 +1,4 @@
|
||||||
//! Benchmarking loading/markdown rendering of generated sites of various sizes
|
//! Benchmarking loading/markdown rendering of generated sites of various sizes
|
||||||
|
|
||||||
#![feature(test)]
|
|
||||||
extern crate site;
|
|
||||||
extern crate test;
|
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
|
|
||||||
use site::Site;
|
use site::Site;
|
||||||
|
|
|
@ -1,9 +1,3 @@
|
||||||
#![feature(test)]
|
|
||||||
extern crate library;
|
|
||||||
extern crate site;
|
|
||||||
extern crate tempfile;
|
|
||||||
extern crate test;
|
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
|
|
||||||
use library::Paginator;
|
use library::Paginator;
|
||||||
|
|
|
@ -1,25 +1,3 @@
|
||||||
extern crate glob;
|
|
||||||
extern crate rayon;
|
|
||||||
extern crate serde;
|
|
||||||
extern crate tera;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate serde_derive;
|
|
||||||
extern crate sass_rs;
|
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate errors;
|
|
||||||
extern crate config;
|
|
||||||
extern crate front_matter;
|
|
||||||
extern crate imageproc;
|
|
||||||
extern crate library;
|
|
||||||
extern crate link_checker;
|
|
||||||
extern crate search;
|
|
||||||
extern crate templates;
|
|
||||||
extern crate utils;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
extern crate tempfile;
|
|
||||||
|
|
||||||
pub mod sitemap;
|
pub mod sitemap;
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
@ -33,7 +11,7 @@ use sass_rs::{compile_file, Options as SassOptions, OutputStyle};
|
||||||
use tera::{Context, Tera};
|
use tera::{Context, Tera};
|
||||||
|
|
||||||
use config::{get_config, Config};
|
use config::{get_config, Config};
|
||||||
use errors::{Error, ErrorKind, Result};
|
use errors::{bail, Error, ErrorKind, Result};
|
||||||
use front_matter::InsertAnchor;
|
use front_matter::InsertAnchor;
|
||||||
use library::{
|
use library::{
|
||||||
find_taxonomies, sort_actual_pages_by_date, Library, Page, Paginator, Section, Taxonomy,
|
find_taxonomies, sort_actual_pages_by_date, Library, Page, Paginator, Section, Taxonomy,
|
||||||
|
|
|
@ -2,6 +2,8 @@ use std::borrow::Cow;
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::hash::{Hash, Hasher};
|
use std::hash::{Hash, Hasher};
|
||||||
|
|
||||||
|
use serde_derive::Serialize;
|
||||||
|
|
||||||
use config::Config;
|
use config::Config;
|
||||||
use library::{Library, Taxonomy};
|
use library::{Library, Taxonomy};
|
||||||
use std::cmp::Ordering;
|
use std::cmp::Ordering;
|
||||||
|
|
|
@ -1,11 +1,8 @@
|
||||||
extern crate site;
|
|
||||||
extern crate tempfile;
|
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use self::site::Site;
|
use site::Site;
|
||||||
use self::tempfile::{tempdir, TempDir};
|
use tempfile::{tempdir, TempDir};
|
||||||
|
|
||||||
// 2 helper macros to make all the build testing more bearable
|
// 2 helper macros to make all the build testing more bearable
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
extern crate config;
|
|
||||||
extern crate site;
|
|
||||||
mod common;
|
mod common;
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
extern crate site;
|
|
||||||
mod common;
|
mod common;
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "templates"
|
name = "templates"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tera = "1"
|
tera = "1"
|
||||||
|
|
|
@ -3,7 +3,7 @@ use std::hash::BuildHasher;
|
||||||
|
|
||||||
use base64::{decode, encode};
|
use base64::{decode, encode};
|
||||||
use pulldown_cmark as cmark;
|
use pulldown_cmark as cmark;
|
||||||
use tera::{to_value, Result as TeraResult, Value};
|
use tera::{to_value, try_get_value, Result as TeraResult, Value};
|
||||||
|
|
||||||
pub fn markdown<S: BuildHasher>(
|
pub fn markdown<S: BuildHasher>(
|
||||||
value: &Value,
|
value: &Value,
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
extern crate serde_json;
|
|
||||||
extern crate toml;
|
|
||||||
|
|
||||||
use utils::de::fix_toml_dates;
|
use utils::de::fix_toml_dates;
|
||||||
use utils::fs::{get_file_time, is_path_in_directory, read_file};
|
use utils::fs::{get_file_time, is_path_in_directory, read_file};
|
||||||
|
|
||||||
|
@ -324,6 +321,7 @@ mod tests {
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
use serde_json::json;
|
||||||
use tera::{to_value, Function};
|
use tera::{to_value, Function};
|
||||||
|
|
||||||
fn get_test_file(filename: &str) -> PathBuf {
|
fn get_test_file(filename: &str) -> PathBuf {
|
||||||
|
|
|
@ -1,28 +1,7 @@
|
||||||
#[macro_use]
|
|
||||||
extern crate lazy_static;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate tera;
|
|
||||||
extern crate base64;
|
|
||||||
extern crate csv;
|
|
||||||
extern crate image;
|
|
||||||
extern crate pulldown_cmark;
|
|
||||||
extern crate reqwest;
|
|
||||||
extern crate url;
|
|
||||||
#[cfg(test)]
|
|
||||||
#[macro_use]
|
|
||||||
extern crate serde_json;
|
|
||||||
#[cfg(not(test))]
|
|
||||||
extern crate serde_json;
|
|
||||||
|
|
||||||
extern crate config;
|
|
||||||
extern crate errors;
|
|
||||||
extern crate imageproc;
|
|
||||||
extern crate library;
|
|
||||||
extern crate utils;
|
|
||||||
|
|
||||||
pub mod filters;
|
pub mod filters;
|
||||||
pub mod global_fns;
|
pub mod global_fns;
|
||||||
|
|
||||||
|
use lazy_static::lazy_static;
|
||||||
use tera::{Context, Tera};
|
use tera::{Context, Tera};
|
||||||
|
|
||||||
use errors::{Error, Result};
|
use errors::{Error, Result};
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "utils"
|
name = "utils"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
authors = ["Vincent Prouillet <prouillet.vincent@gmail.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
errors = { path = "../errors" }
|
errors = { path = "../errors" }
|
||||||
|
|
|
@ -1,15 +1,3 @@
|
||||||
#[macro_use]
|
|
||||||
extern crate errors;
|
|
||||||
|
|
||||||
extern crate serde;
|
|
||||||
#[cfg(test)]
|
|
||||||
extern crate tempfile;
|
|
||||||
extern crate tera;
|
|
||||||
extern crate toml;
|
|
||||||
extern crate unicode_segmentation;
|
|
||||||
extern crate walkdir;
|
|
||||||
extern crate slug;
|
|
||||||
|
|
||||||
pub mod de;
|
pub mod de;
|
||||||
pub mod fs;
|
pub mod fs;
|
||||||
pub mod net;
|
pub mod net;
|
||||||
|
|
|
@ -2,7 +2,7 @@ use std::collections::HashMap;
|
||||||
use std::hash::BuildHasher;
|
use std::hash::BuildHasher;
|
||||||
use unicode_segmentation::UnicodeSegmentation;
|
use unicode_segmentation::UnicodeSegmentation;
|
||||||
|
|
||||||
use errors::Result;
|
use errors::{bail, Result};
|
||||||
|
|
||||||
/// Get word count and estimated reading time
|
/// Get word count and estimated reading time
|
||||||
pub fn get_reading_analytics(content: &str) -> (usize, usize) {
|
pub fn get_reading_analytics(content: &str) -> (usize, usize) {
|
||||||
|
|
|
@ -2,7 +2,7 @@ use std::collections::HashMap;
|
||||||
|
|
||||||
use tera::{Context, Tera};
|
use tera::{Context, Tera};
|
||||||
|
|
||||||
use errors::Result;
|
use errors::{bail, Result};
|
||||||
|
|
||||||
static DEFAULT_TPL: &str = include_str!("default_tpl.html");
|
static DEFAULT_TPL: &str = include_str!("default_tpl.html");
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use clap::{App, AppSettings, Arg, SubCommand};
|
use clap::{crate_authors, crate_description, crate_version, App, AppSettings, Arg, SubCommand};
|
||||||
|
|
||||||
pub fn build_cli() -> App<'static, 'static> {
|
pub fn build_cli() -> App<'static, 'static> {
|
||||||
App::new("zola")
|
App::new("zola")
|
||||||
|
|
|
@ -3,7 +3,7 @@ use std::env;
|
||||||
use errors::Result;
|
use errors::Result;
|
||||||
use site::Site;
|
use site::Site;
|
||||||
|
|
||||||
use console;
|
use crate::console;
|
||||||
|
|
||||||
pub fn build(
|
pub fn build(
|
||||||
config_file: &str,
|
config_file: &str,
|
||||||
|
|
|
@ -4,7 +4,7 @@ use std::path::PathBuf;
|
||||||
use errors::Result;
|
use errors::Result;
|
||||||
use site::Site;
|
use site::Site;
|
||||||
|
|
||||||
use console;
|
use crate::console;
|
||||||
|
|
||||||
pub fn check(
|
pub fn check(
|
||||||
config_file: &str,
|
config_file: &str,
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
use std::fs::{canonicalize, create_dir};
|
use std::fs::{canonicalize, create_dir};
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
use errors::Result;
|
use errors::{bail, Result};
|
||||||
use utils::fs::create_file;
|
use utils::fs::create_file;
|
||||||
|
|
||||||
use console;
|
use crate::console;
|
||||||
use prompt::{ask_bool, ask_url};
|
use crate::prompt::{ask_bool, ask_url};
|
||||||
|
|
||||||
const CONFIG: &str = r#"
|
const CONFIG: &str = r#"
|
||||||
# The URL the site will be built for
|
# The URL the site will be built for
|
||||||
|
|
|
@ -21,8 +21,6 @@
|
||||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
extern crate globset;
|
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::fs::{read_dir, remove_dir_all, File};
|
use std::fs::{read_dir, remove_dir_all, File};
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
@ -39,12 +37,12 @@ use ctrlc;
|
||||||
use notify::{watcher, RecursiveMode, Watcher};
|
use notify::{watcher, RecursiveMode, Watcher};
|
||||||
use ws::{Message, Sender, WebSocket};
|
use ws::{Message, Sender, WebSocket};
|
||||||
|
|
||||||
use cmd::serve::globset::GlobSet;
|
|
||||||
use errors::{Error as ZolaError, Result};
|
use errors::{Error as ZolaError, Result};
|
||||||
|
use globset::GlobSet;
|
||||||
use site::Site;
|
use site::Site;
|
||||||
use utils::fs::copy_file;
|
use utils::fs::copy_file;
|
||||||
|
|
||||||
use console;
|
use crate::console;
|
||||||
use open;
|
use open;
|
||||||
use rebuild;
|
use rebuild;
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
use lazy_static::lazy_static;
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::error::Error as StdError;
|
use std::error::Error as StdError;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
22
src/main.rs
22
src/main.rs
|
@ -1,25 +1,3 @@
|
||||||
extern crate actix_files;
|
|
||||||
extern crate actix_web;
|
|
||||||
extern crate atty;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate clap;
|
|
||||||
extern crate chrono;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate lazy_static;
|
|
||||||
extern crate ctrlc;
|
|
||||||
extern crate notify;
|
|
||||||
extern crate termcolor;
|
|
||||||
extern crate url;
|
|
||||||
extern crate ws;
|
|
||||||
|
|
||||||
extern crate site;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate errors;
|
|
||||||
extern crate front_matter;
|
|
||||||
extern crate open;
|
|
||||||
extern crate rebuild;
|
|
||||||
extern crate utils;
|
|
||||||
|
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
|
|
||||||
use utils::net::{get_available_port, port_is_available};
|
use utils::net::{get_available_port, port_is_available};
|
||||||
|
|
Loading…
Reference in New Issue