diff --git a/src/error/error.rs b/src/error/error.rs index a11e69f..6ddf343 100644 --- a/src/error/error.rs +++ b/src/error/error.rs @@ -1,3 +1,4 @@ +use std::path::NormalizeError; use std::str::Utf8Error; use std::string::FromUtf8Error; @@ -16,6 +17,7 @@ pub(crate) enum CustomError { DusterRender(#[allow(dead_code)] duster::renderer::RenderError), PathStripPrefix(#[allow(dead_code)] std::path::StripPrefixError), UrlParseError(#[allow(dead_code)] url::ParseError), + NormalizeError(#[allow(dead_code)] NormalizeError), } impl From for CustomError { @@ -95,3 +97,9 @@ impl From for CustomError { CustomError::UrlParseError(value) } } + +impl From for CustomError { + fn from(value: NormalizeError) -> Self { + CustomError::NormalizeError(value) + } +} diff --git a/src/intermediate/regular_link.rs b/src/intermediate/regular_link.rs index f58d257..6a0507b 100644 --- a/src/intermediate/regular_link.rs +++ b/src/intermediate/regular_link.rs @@ -151,7 +151,7 @@ impl LinkTarget { .unwrap() .get_current_folder()? .join(src) - .canonicalize()?; + .normalize_lexically()?; let input_root_directory = render_context.config.get_root_directory(); let relative_path_to_file = path_to_file.strip_prefix(input_root_directory)?; let web_path = get_web_path( diff --git a/src/main.rs b/src/main.rs index 2a83aef..cdbc32f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +#![feature(normalize_lexically)] use std::process::ExitCode; use clap::Parser;