no sync needed

This commit is contained in:
Mylloon 2024-10-24 20:17:31 +02:00
parent 13d7b54c27
commit 7f3434b7c1
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -10,8 +10,6 @@ use serde::{Deserialize, Deserializer};
use std::fmt::Debug; use std::fmt::Debug;
use std::fs; use std::fs;
use std::path::Path; use std::path::Path;
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
/// Metadata for blog posts /// Metadata for blog posts
#[derive(Content, Debug, Default, Deserialize)] #[derive(Content, Debug, Default, Deserialize)]
@ -413,12 +411,12 @@ fn check_code<'a>(root: &'a AstNode<'a>, blacklist: &[String]) -> bool {
/// Check if html contains maths /// Check if html contains maths
fn check_math(html: &str) -> bool { fn check_math(html: &str) -> bool {
let math_detected = Arc::new(AtomicBool::new(false)); let mut math_detected = false;
let _ = HtmlRewriter::new( let _ = HtmlRewriter::new(
Settings { Settings {
element_content_handlers: vec![element!("span[data-math-style]", |_| { element_content_handlers: vec![element!("span[data-math-style]", |_| {
math_detected.store(true, Ordering::SeqCst); math_detected = true;
Ok(()) Ok(())
})], })],
@ -428,7 +426,7 @@ fn check_math(html: &str) -> bool {
) )
.write(html.as_bytes()); .write(html.as_bytes());
math_detected.load(Ordering::SeqCst) math_detected
} }
/// Change class of languages for hljs detection /// Change class of languages for hljs detection
@ -444,7 +442,7 @@ fn hljs_replace<'a>(root: &'a AstNode<'a>, mermaid_str: &str) {
/// Obfuscate email if email found /// Obfuscate email if email found
fn mail_obfuscation(html: &str) -> (String, bool) { fn mail_obfuscation(html: &str) -> (String, bool) {
let modified = Arc::new(AtomicBool::new(false)); let mut modified = false;
let data_attr = "title"; let data_attr = "title";
@ -453,7 +451,7 @@ fn mail_obfuscation(html: &str) -> (String, bool) {
html, html,
RewriteStrSettings { RewriteStrSettings {
element_content_handlers: vec![element!("a[href^='mailto:']", |el| { element_content_handlers: vec![element!("a[href^='mailto:']", |el| {
modified.store(true, Ordering::SeqCst); modified = true;
// Get mail address // Get mail address
let link = el.get_attribute("href").unwrap(); let link = el.get_attribute("href").unwrap();
@ -473,9 +471,7 @@ fn mail_obfuscation(html: &str) -> (String, bool) {
) )
.unwrap(); .unwrap();
let is_modified = modified.load(Ordering::SeqCst); if modified {
if is_modified {
// Remove old data email if exists // Remove old data email if exists
( (
rewrite_str( rewrite_str(
@ -501,9 +497,9 @@ fn mail_obfuscation(html: &str) -> (String, bool) {
}, },
) )
.unwrap(), .unwrap(),
is_modified, modified,
) )
} else { } else {
(new_html, is_modified) (new_html, modified)
} }
} }