mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-14 06:22:24 +00:00
* craft-pdf: write URI links only for http(s) with a host and mailto A document from someone else can carry any link target, and an export that turns every hyperlink into a PDF URI action hands those targets to whoever opens the file: script and data URIs, OS protocol handlers, UNC paths, //host/share, file:// and smb:// links to a host, and Windows Search links naming a share. safe_url allows only http and https URLs with a host and mailto with an address, after trimming whitespace and comparing the scheme case-insensitively. It is the rule DeckCraft uses for its slide show and export, and is available without any feature. write::uri_target returns the Krilla link target for an allowed URL and None otherwise, so an app that builds its URI links with it writes no link annotation for a refused target and leaves the page content as drawn. * craft-pdf: safe_url needs a real http(s) host and a mailto recipient
22 lines
714 B
Rust
22 lines
714 B
Rust
//! Shared optional PDF reading, rendering and writing for Craft applications.
|
|
//!
|
|
//! Applications retain document models, layout, shaping, font policy and scheduling.
|
|
//! Advanced backend re-exports are coupled to the pinned backend, not a universal document model.
|
|
#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
|
|
|
|
#[cfg(feature = "interpret")]
|
|
pub use hayro_interpret as interpret;
|
|
mod link;
|
|
#[cfg(feature = "read")]
|
|
pub use hayro_syntax as syntax;
|
|
pub use link::safe_url;
|
|
|
|
#[cfg(feature = "read")]
|
|
mod read;
|
|
#[cfg(feature = "read")]
|
|
pub use read::*;
|
|
#[cfg(feature = "raster")]
|
|
pub mod raster;
|
|
#[cfg(feature = "write")]
|
|
pub mod write;
|