mod index;
mod inline_link;
mod model;
mod parse;
mod render;
mod util;
pub mod plugin;
pub use index::{
BrokenLink, DuplicateId, 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, language_to_snippet_type,
parse_heading, parse_node_from_raw,
};
pub use render::{
BlockEscaping, escape_block_start, normalize_text, page_content_contains, render_nodes_to_text,
render_nodes_to_text_with, render_page_to_text, unescape_block_start,
};
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)
}
};
}