Fix xref links
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user