♻️ El rótulo de inicio pasa a ser una utilidad

La función para la presentación del nombre del proyecto en forma de
rótulo ASCII pasa a las utilidades fuera de la API de PageTop.
This commit is contained in:
Manuel Cillero 2023-01-23 21:09:36 +01:00
parent 7ed2d37e52
commit 06276b618c
9 changed files with 35 additions and 38 deletions

View file

@ -1,10 +1,9 @@
use crate::base::banner;
use crate::core::module::ModuleStaticRef;
use crate::core::{module, theme};
use crate::html::Markup;
use crate::response::page::ResultPage;
use crate::response::FatalError;
use crate::{config, locale, server, trace, LazyStatic};
use crate::{config, locale, server, trace, util, LazyStatic};
#[cfg(feature = "database")]
use crate::db;
@ -20,7 +19,7 @@ pub struct Application {
impl Application {
pub fn prepare(app: ModuleStaticRef) -> Result<Self, Error> {
// Rótulo de presentación.
banner::print_on_startup();
util::print_on_startup();
// Inicia registro de trazas y eventos.
LazyStatic::force(&trace::TRACING);

View file

@ -1,5 +1,3 @@
pub(crate) mod banner;
pub mod component;
pub mod module;
pub mod theme;

View file

@ -1,33 +0,0 @@
mod figfont;
use figfont::FIGFONT;
use crate::config;
use substring::Substring;
pub fn print_on_startup() {
if config::SETTINGS.app.startup_banner.to_lowercase() != "off" {
if let Some((term_width, _)) = term_size::dimensions() {
if term_width >= 80 {
let maxlen = (term_width / 10) - 2;
let mut app = config::SETTINGS.app.name.substring(0, maxlen).to_owned();
if config::SETTINGS.app.name.len() > maxlen {
app = format!("{}...", app);
}
println!(
"\n{} {}\n\n Powered by PageTop {}\n",
FIGFONT.convert(&app).unwrap(),
&config::SETTINGS.app.description,
env!("CARGO_PKG_VERSION")
);
return;
}
}
println!(
"\n{}\n{}\n\nPowered by PageTop {}\n",
&config::SETTINGS.app.name,
&config::SETTINGS.app.description,
env!("CARGO_PKG_VERSION")
);
}
}

View file

@ -1,9 +1,42 @@
mod figfont;
use crate::config;
use substring::Substring;
pub use static_files::Resource as StaticResource;
pub type HashMapResources = std::collections::HashMap<&'static str, StaticResource>;
pub type Handle = u64;
pub(crate) fn print_on_startup() {
if config::SETTINGS.app.startup_banner.to_lowercase() != "off" {
if let Some((term_width, _)) = term_size::dimensions() {
if term_width >= 80 {
let maxlen = (term_width / 10) - 2;
let mut app = config::SETTINGS.app.name.substring(0, maxlen).to_owned();
if config::SETTINGS.app.name.len() > maxlen {
app = format!("{}...", app);
}
println!(
"\n{} {}\n\n Powered by PageTop {}\n",
figfont::FIGFONT.convert(&app).unwrap(),
&config::SETTINGS.app.description,
env!("CARGO_PKG_VERSION")
);
return;
}
}
println!(
"\n{}\n{}\n\nPowered by PageTop {}\n",
&config::SETTINGS.app.name,
&config::SETTINGS.app.description,
env!("CARGO_PKG_VERSION")
);
}
}
// https://stackoverflow.com/a/71464396
pub const fn handle(
module_path: &'static str,