- Implemented a new script `test_pico_arabic_waqf.py` to test the GLM annotator's ability to extract person observations from Arabic historical documents. - The script includes environment variable handling for API token, structured prompts for the GLM API, and validation of extraction results. - Added comprehensive logging for API responses, extraction results, and validation errors. - Included a sample Arabic waqf text for testing purposes, following the PiCo ontology pattern.
61 lines
2 KiB
TypeScript
61 lines
2 KiB
TypeScript
/**
|
|
* Root Layout Component
|
|
*
|
|
* © 2025 Netwerk Digitaal Erfgoed & TextPast. All rights reserved.
|
|
*/
|
|
|
|
import { Outlet, useLocation } from 'react-router-dom';
|
|
import { Navigation } from './Navigation';
|
|
import { useLanguage } from '../../contexts/LanguageContext';
|
|
import './Layout.css';
|
|
|
|
// Pages that handle their own footer (full-screen apps with sidebars)
|
|
const PAGES_WITH_CUSTOM_FOOTER = ['/map', '/visualize', '/query-builder', '/linkml', '/ontology', '/conversation'];
|
|
|
|
export function Layout() {
|
|
const currentYear = new Date().getFullYear();
|
|
const { t } = useLanguage();
|
|
const location = useLocation();
|
|
|
|
// Hide global footer on pages that have their own minimal footer
|
|
const showGlobalFooter = !PAGES_WITH_CUSTOM_FOOTER.includes(location.pathname);
|
|
|
|
return (
|
|
<div className="layout">
|
|
<Navigation />
|
|
<div className="layout-content" id="layout-content">
|
|
<div className="layout-main">
|
|
<Outlet />
|
|
</div>
|
|
{/* Footer - appears at the bottom of pages without custom footers */}
|
|
{showGlobalFooter && (
|
|
<footer className="layout-footer">
|
|
<div className="footer-content">
|
|
<div className="footer-copyright">
|
|
© {currentYear}{' '}
|
|
<a
|
|
href="https://netwerkdigitaalerfgoed.nl/"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
className="footer-link"
|
|
>
|
|
Netwerk Digitaal Erfgoed
|
|
</a>
|
|
{' & '}
|
|
<a
|
|
href="https://www.textpast.com/"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
className="footer-link"
|
|
>
|
|
TextPast
|
|
</a>
|
|
. {t('Alle rechten voorbehouden.', 'All rights reserved.')}
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
)}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|