shacl-vue/docs/code-layout.md

38 lines
2.3 KiB
Markdown

---
layout: doc
---
# Code Layout
For developers/contributors, the noteworthy parts of this code repository are shown below:
```
.
├── docs
├── public
├── src
│   ├── assets
│   ├── components
│   ├── composables
│   ├── modules
│   └── plugins
└── tools
```
- **docs**: this directory contains the sources for these documentation pages
- **public**: this directory should contain any assets that are to be located in the root of the served address of the built application
- **src**: this is the source code of the `shacl-vue` application
- *assets* contain styles, images, fonts, and currently also the default shapes graph (`dlschemas_shacl.ttl`), data graph (`dlschemas_data.ttl`), and class hierarchy information (`dlschemas_owl.ttl`) that are all loaded into the application on startup.
- *components* contain all VueJS components used by the application. These include all internal components that support the application's built-in functionality, as well as all custom editors that together constitute the application's library of matchable components for form fields.
- *composables* contain modules with general functionality that can be used across components, specifically:
- `base.js` for common functionality of any custom input component, which all new input components should import
- `configuration.js` for interpreting configuration options and setting defaults
- `refregister.js` which provides a means to track references to a parent component's children when validating a form
- `rules.js` for common functionality used in input field validation
- `tokens.js` for handling token entry related to external service integration
- `useClasses.js` for managing class hierarchy information
- `useData.js` for managing RDF data that have been taken from forms and saved into a graph store
- `useForm.js` for managing data entered into form fields
- `useShapes.js` for managing the source shapes graph
- *modules* and *plugins* have further modules with helper functionality or functionality that extends the application
- **tools**: this directory contains scripts and data that are used to generate supporting inputs for the `shacl-vue` application