feat: améliorer l'accessibilité et les performances avec support pour prefers-reduced-motion, prefers-contrast, focus-visible, ajout de preconnect pour les domaines externes, versioning des assets CSS/JS, et correction des chemins de ressources avec ltrim

This commit is contained in:
2026-02-14 16:55:34 -05:00
parent 1aa05548a8
commit 1721032254
10 changed files with 1010 additions and 874 deletions
+12 -2
View File
@@ -59,14 +59,24 @@ document.addEventListener('DOMContentLoaded', () => {
let cachedBookmarks = null;
let cachedTags = null;
// Escape HTML to prevent XSS
function escapeHtml(text) {
if (typeof text !== 'string') return '';
const div = document.createElement('div');
div.textContent = text;
return div.innerHTML;
}
// Highlight matching text with <mark> tags
function highlightMatch(text, query) {
if (!query || query.length === 0) return text;
if (!query || query.length === 0) return escapeHtml(text);
// Escape HTML first to prevent XSS
const escapedText = escapeHtml(text);
// Escape special regex characters in query
const escapedQuery = query.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
const regex = new RegExp(`(${escapedQuery})`, 'gi');
return text.replace(regex, '<mark>$1</mark>');
return escapedText.replace(regex, '<mark>$1</mark>');
}
// Fuzzy search - matches substring anywhere in text