Fix xref links

This commit is contained in:
Adrian Rumpold
2025-04-29 09:41:17 +02:00
parent 04f46e3893
commit 860c67b00b
2 changed files with 10 additions and 7 deletions

View File

@@ -18,7 +18,7 @@ function Panel({ language }: PanelProps) {
const [lang, setLang] = useState(language || Language.ENG); const [lang, setLang] = useState(language || Language.ENG);
const articleRef = useRef<HTMLDivElement>(null); const articleRef = useRef<HTMLDivElement>(null);
const { articleId, celexId } = useNavState(); const { articleId, celexId, setArticleId } = useNavState();
const { data, isPending, error } = useArticle(celexId, articleId, lang); const { data, isPending, error } = useArticle(celexId, articleId, lang);
useEffect(() => { useEffect(() => {
@@ -35,7 +35,7 @@ function Panel({ language }: PanelProps) {
if (target && targetId) { if (target && targetId) {
if (target === "article") { if (target === "article") {
link.setAttribute("href", `../articles/${targetId}`); link.setAttribute("href", `/${celexId}/articles/${targetId}`);
} }
} else { } else {
console.warn("No target or ID found for link:", link); console.warn("No target or ID found for link:", link);
@@ -82,7 +82,14 @@ function Panel({ language }: PanelProps) {
element.removeEventListener("click", handleClick(element)); element.removeEventListener("click", handleClick(element));
}); });
}; };
}, [articleRef, data, selectedParagraphId, setSelectedParagraphId]); }, [
articleRef,
data,
celexId,
selectedParagraphId,
setSelectedParagraphId,
setArticleId,
]);
if (isPending) return "Loading..."; if (isPending) return "Loading...";
if (error) return "An error has occurred: " + error.message; if (error) return "An error has occurred: " + error.message;

View File

@@ -74,9 +74,7 @@ def extract_xrefs(el: lxml.etree.Element, language: Language) -> list[CrossRefer
} }
for key, pattern in patterns.items(): for key, pattern in patterns.items():
matches = re.finditer(pattern, text, flags=re.IGNORECASE) matches = re.finditer(pattern, text, flags=re.IGNORECASE)
print(f"Pattern: {pattern}")
for match in matches: for match in matches:
print(f"Match: {match.group(0)}")
crossref_id = ( crossref_id = (
match.group("art_num") if key == "article" else match.group("annex_num") match.group("art_num") if key == "article" else match.group("annex_num")
) )
@@ -158,8 +156,6 @@ class FormexArticleConverter:
if not is_title and not element.getchildren(): if not is_title and not element.getchildren():
# Cross-references should be treated at the deepest level # Cross-references should be treated at the deepest level
xrefs = extract_xrefs(element, self.language) xrefs = extract_xrefs(element, self.language)
print("Extracted cross-references: ", xrefs)
for xref in xrefs: for xref in xrefs:
# Replace the cross-reference text with a link # Replace the cross-reference text with a link
result = self._replace_xref(result, xref) result = self._replace_xref(result, xref)