pub struct CanonicalPlugin { /* private fields */ }Expand description
Injects <link rel="canonical"> tags into HTML files.
For each HTML file missing a canonical link, this plugin computes
the canonical URL from the base URL and the file’s relative path,
then injects the tag before </head>.
The plugin is idempotent — it will not add a duplicate canonical link if one already exists.
§Example
use ssg::plugin::PluginManager;
use ssg::seo::CanonicalPlugin;
let mut pm = PluginManager::new();
pm.register(CanonicalPlugin::new("https://example.com"));Implementations§
Trait Implementations§
Source§impl Clone for CanonicalPlugin
impl Clone for CanonicalPlugin
Source§fn clone(&self) -> CanonicalPlugin
fn clone(&self) -> CanonicalPlugin
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CanonicalPlugin
impl Debug for CanonicalPlugin
Source§impl Plugin for CanonicalPlugin
impl Plugin for CanonicalPlugin
Source§fn has_transform(&self) -> bool
fn has_transform(&self) -> bool
Returns
true if this plugin implements transform_html.
Override to true to opt in to the fused transform pass.Source§fn transform_html(
&self,
html: &str,
path: &Path,
ctx: &PluginContext,
) -> Result<String, SsgError>
fn transform_html( &self, html: &str, path: &Path, ctx: &PluginContext, ) -> Result<String, SsgError>
Per-file HTML transform hook — called once per HTML file during
the fused transform pass. Read more
Source§fn after_compile(&self, _ctx: &PluginContext) -> Result<(), SsgError>
fn after_compile(&self, _ctx: &PluginContext) -> Result<(), SsgError>
Called after site compilation completes. Read more
Source§fn before_compile(&self, _ctx: &PluginContext) -> Result<(), SsgError>
fn before_compile(&self, _ctx: &PluginContext) -> Result<(), SsgError>
Called before site compilation begins. Read more
Source§fn needs_all_files(&self) -> bool
fn needs_all_files(&self) -> bool
Returns
true if this plugin must always observe the full
cache.html_files() list — even during --incremental
rebuilds that only invalidated a handful of pages. Read moreAuto Trait Implementations§
impl Freeze for CanonicalPlugin
impl RefUnwindSafe for CanonicalPlugin
impl Send for CanonicalPlugin
impl Sync for CanonicalPlugin
impl Unpin for CanonicalPlugin
impl UnsafeUnpin for CanonicalPlugin
impl UnwindSafe for CanonicalPlugin
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more