mod inscriptions_block;
mod metadata;
pub mod output;
mod preview;
mod range;
mod rare;
mod rune;
mod runes;
pub mod sat;
mod transaction;
#[derive(Boilerplate)]
pub(crate) struct PageHtml<T: PageContent> {
content: T,
config: Arc<PageConfig>,
}
impl<T> PageHtml<T>
where
T: PageContent,
{
pub(crate) fn new(content: T, config: Arc<PageConfig>) -> Self {
Self { content, config }
}
fn og_image(&self) -> String {
if let Some(domain) = &self.config.domain {
format!("https://{domain}/static/favicon.png")
} else {
"https://ordinals.com/static/favicon.png".into()
}
}
fn superscript(&self) -> String {
if self.config.chain == Chain::Mainnet {
"alpha".into()
} else {
self.config.chain.to_string()
}
}
}
pub(crate) trait PageContent: Display + 'static {
fn title(&self) -> String;
fn page(self, page_config: Arc<PageConfig>) -> PageHtml<Self>
where
Self: Sized,
{
PageHtml::new(self, page_config)
}
fn preview_image_url(&self) -> Option<Trusted<String>> {