A React-based web application for browsing SKOS concept schemes.
ShowIt is a lightweight, read-only browser for RDF vocabularies and their terms.
It connects to a SPARQL endpoint and lets users search, list, and explore
vocabularies (slovníky - SKOS ConceptSchemes) and individual terms (pojmy - SKOS Concepts) with their definitions,
hierarchies, and semantic relations.
The application is built with Vite and TypeScript, styled with Material UI (MUI).
Requires Node.js 22+ and npm.
The application reads configuration from two sources:
-
Build-time environment variables prefixed with
VITE_:Variable Purpose Example SPARQL_ENDPOINTSPARQL endpoint for ldkit queries http://localhost:7200/repositories/termitSUGGESTED_WORDSComma-separated list of suggested words Délka,Lokalita,Dokumentace,DemoliceAPP_CONTEXTBase URL path of the application /showitPLUGINSComma-separated list of plugin ids CasNotationConcatGeneratorPluginTHEMEColor scheme key (see src/app/theme.ts)default,blue -
Runtime
config.js– For deployments where the build is served statically,public/config.js(or an equivalent file) can inject values throughwindow.__config__. Seesrc/utils/Utils.tsfor the merging logic.
ShowIt supports runtime plugin components that can be rendered inside specific views.
Plugins are declared in the PLUGINS configuration variable and loaded dynamically
from src/plugin/.
Each plugin file must:
- Export its React component as the default export.
- Export a
metadataobject with at least anidand targetview. - Be declared in a file call
p_${id}.tsxin thesrc/plugindirectory.
See src/plugin/PluginApi.tsx for the loading API and available plugin views.
Plugins can target one of the following views (metadata.view):
TermDetail– rendered at the bottom of the term detail page (TermPage). The component receives the current term as adataprop.VocabularyDetail– rendered on the vocabulary detail page (VocabularyPage). The component receives the current vocabulary as adataprop.VocabularyList– rendered on the vocabularies list page (VocabulariesPage). The component receives the list of vocabularies as adataprop.App– rendered once inside theRouter, outside the main layout switch.
See the p_CasNotationConcatGeneratorPlugin for an example (prefix the plugin file name with a p_, a prefix is
required by Vite for dynamic imports).
Activate it by adding its id to the PLUGINS environment variable:
VITE_PLUGINS=CasNotationConcatGeneratorPluginMultiple plugins can be loaded by separating their ids with commas.
This project is licensed under the MIT License.
This project is a fork of sgov-browser.