mod index;
mod inline_link;
mod model;
mod parse;
mod render;
mod util;
pub mod plugin;
pub use index::{
BrokenLink, DuplicateTitle, KnowledgeBase, KnowledgeBaseIndex, LinkAnalysisResult, LinkEdge,
LinkGraph, MissingAttachment, PageLoadError,
};
pub use inline_link::{InlineLink, InlineLinks, LinkKind, rewrite_inline_links, scan_inline_links};
pub use model::{
AttachmentError, AttachmentResolver, LinkTargetKind, Node, Page, PageId, PageMeta, ParseIssue,
ResolvedAttachment, SearchHit, SearchMatchKind, TitleResolution,
};
pub use parse::{
collect_node_types_in_file, extract_type, is_code_snippet, parse_heading, parse_node_from_raw,
};
pub use render::{
normalize_text, page_content_contains, render_nodes_to_text, render_nodes_to_text_with,
render_page_to_text,
};
pub use util::extract_link_targets;
#[macro_export]
macro_rules! lepiter_plugin_main {
($handler:path) => {
fn main() -> std::io::Result<()> {
$crate::plugin::plugin_loop($handler)
}
};
}