//! Octopus template data structures //! //! All pages are generated by the server via template files that have //! data inputs. Because the templates follow a well-defined //! structure (i.e. `core` extended by `/base` extended by //! `/`, the structure of these template data structures //! is the same. //! //! The actual page initialisation and rendering is nested in the //! `page` module, which then uses the appropriate template structures //! defined here. pub(crate) mod overview; pub(crate) mod files; use std::env; /// A basic application wide template structure pub(crate) struct BaseData { pub version: String, pub source: String, pub siteurl: String, pub sitename: String, pub has_wiki: bool, } impl Default for BaseData { fn default() -> Self { Self { version: env!("CARGO_PKG_VERSION").into(), source: env::var("_OCTOPUS_SOURCE") .unwrap_or("https://dev.spacekookie.de/web/octopus".to_string()), siteurl: env::var("_OCTOPUS_SITE_URL").unwrap_or("localhost:8080".to_string()), sitename: env::var("_OCTOPUS_SITE_NAME").unwrap_or("test-octopus".to_string()), has_wiki: true, } } }