#![forbid(missing_docs, clippy::empty_docs)]
mod config;
pub use config::{friendly, raw};
mod blog;
pub use blog::{Blog, Metadata, Post, Servable};
mod html;
mod mime;
pub use mime::Mime;
pub mod serve;
pub mod docs {
macro_rules! docmod {
($name:ident) => {
#[doc = include_str!(concat!("docs/", stringify!($name), ".md"))]
pub mod $name {}
}
}
docmod!(tutorial);
}
mod cli;
#[cfg(feature = "server")]
mod live;
#[cfg(feature = "server")]
pub use live::LiveServer;
#[cfg(doctest)]
#[doc = include_str!("../README.md")]
#[doc(hidden)]
mod _readme_docs {}
pub mod quick {
use std::time::Instant;
use crate::cli;
pub use crate::{
Blog,
config::{friendly, raw},
serve::{
AsIs,
CssRule,
Feed,
FeedKind,
HasCssRules,
HasNav,
NavItem,
Pages,
Posts,
},
};
pub fn run(cfg: raw::Config) {
let start = Instant::now();
let mut args = std::env::args();
let cmd = args.next().unwrap_or("breb".into());
let mode = args.next();
match mode.as_deref() {
None | Some("help" | "-h" | "--help") => cli::usage!(cmd),
Some("run") => cli::run(&cmd, args, cfg, start),
Some("serve") => cli::serve(&cmd, args, cfg, start),
Some(cmd) => cli::usage!(cmd; "unknown command: {:?}", cmd),
}
}
}