seven-sages_frontend
https://github.com/zpd-digital-editions/seven-sages_frontend
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.5%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: zpd-digital-editions
- License: mit
- Language: Vue
- Default Branch: main
- Size: 59.7 MB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
- Releases: 0
Metadata Files
README.md
Synopticon instance for Artus project
repo for frontend of Artus edition, based on Synopticon
Synopticon Project
Have Node.js installed
You need at least node, npm or yarn on your PC. To install node and npm you can use "the Node.js source code or a pre-built installer for your platform". If using yarn, you may need to set a project specific Version for it. For this run in the directory:
bash
yarn set version berry
Install required packages
To install packages run the follwing command:
bash
npm i
//: # ()
//: # ()
Develop
Run the app in develop mode:
bash
npm run dev
Build
Produces a production-ready bundle:
bash
npm run build
State Managment
For state management, we are using Pinia, which has been installed in the project setup steps by yarn.
Coding Guideline
In the Synopticon project we use script setup and *TypeScript
*
Structure in Vue files
```
// HTML Here
```
Scoped Styles
To avoid overlaps of the class names in different components, we use scoped styles to keep all classes around the related component, this way the development of each component will be faster and easier to debug in the future.
Naming conventions
Snakecase
Component, page and container names start with a lowercase letter and follow the Snakecase naming convention. This
rule also applies to the function and class within them.
UPPERSNAKECASE
for constant variables or environment variables.
Pages
Components with one syllable name are not accepted by Eslint-plugin-vue. In cases where the name of the page only
contains one part, the suffix "page" will be appended to the component name, i.e. if the page name is user, it should
be `userpage.vue`
Functions or Methods
Boolean return value
The most common use cases are variable names which start with has or is. If for instance a compute value is used to
control the display of an element we use is_shown or is_active. The same logic applies to has
like has_child, has_list, and etc.
Components and Containers
If a component’s/container’s name is one syllable, to avoid linting errors, we add the word vue at the end of
the name, i.e. counter will be counter_vue.vue. For names with more than one syllable this isn't necessary.
Setup Endpoints and Multi View
It's possible to add base url for documents and image source in .env file
root
├─ public
├─ src
├─ .env
to add you base url create a variable called 'VITEBASEURL'
VITE_BASE_URL= put the url here
to add you base url for images create a variable called 'VITEIMAGEURL'
VITE_IMAGE_URL= put the url here
If in the project Multi View feature is required, it can be toggled on or of by setting VITE_MULTI_VIEW value to
true or false
VITE_MULTI_VIEW=true
to change the amount of items shown in the document list page set VITE_PAGINATION_ITEMS to some integer. The default Value is 20.
VITE_PAGINATION_ITEMS=integer
This is a final example of .env file
VITE_BASE_URL= put the url here
VITE_IMAGE_URL= put the url here
VITE_KWIC_WIDTH=100 The context characters for search results
VITE_MULTI_VIEW=true
VITE_PAGINATION_ITEMS=100 defines how many text should be shown on one site
Setup the Config File
In order to config a new setup, some changes should be made in config.ts file
src
├─ utils
└─ config.ts
To TYPE_ROOT add your keyword i.e. schriften or autograph , etc.
export type TYPE_ROOT = "autograph";
Define a new enum value to E_ROOT with the same name and value
export enum E_ROOT {
autograph = "autograph",
}
Create and export a constant variable with type of INTERFACECONFIGINTERFACE that starts with the name of your keyword
and followed by _CONFIGURATION in uppercase style (this is optional, it's possible to set any name you want for you variable).
export const AUTOGRAPH_CONFIGURATION:INTERFACE_CONFIG_INTERFACE ={}
To make a valid config object follow INTERFACECONFIGINTERFACE structure
Your finished config object should be something like this.
export const AUTOGRAPH_CONFIGURATION: INTERFACE_CONFIG_INTERFACE = {
objectname: E_ROOT.autograph,
partname: "Seite",
textviews: [
{
name: "Konstituierter Lesetext",
objectname: E_ROOT.autograph,
view: "default",
},
{
name: "Diplomatische Umschrift",
objectname: E_ROOT.autograph,
view: "autograph",
},
],
addendumViews: [
{
name: "Textkritischer Apparat",
objectname: E_ROOT.autograph,
view: "apparat",
},
{
name: "Texteingriffe",
objectname: E_ROOT.autograph,
view: "emendationen",
},
{
name: "Quellen und Siglen",
objectname: E_ROOT.autograph,
view: "quellen",
},
{
name: "Entstehung",
objectname: "vorspann",
view: "vorspann",
},
],
};
Then at the end of config.ts file, in set_config function set up the switch
keep it in mind to return one config as a default to have fallback in case of error or misconfiguration
export const set_config = (
root_name: TYPE_ROOT
): INTERFACE_CONFIG_INTERFACE => {
switch (root_name) {
case E_ROOT.autograph:
return AUTOGRAPH_CONFIGURATION;
default:
return AUTOGRAPH_CONFIGURATION;
}
};
This is a final example
```
export type TYPE_ROOT = "autograph";
export enum E_ROOT { autograph = "autograph" }
export const AUTOGRAPHCONFIGURATION: INTERFACECONFIGINTERFACE = { objectname: EROOT.autograph, partname: "Seite", textviews: [ { name: "Konstituierter Lesetext", objectname: EROOT.autograph, view: "default", }, { name: "Diplomatische Umschrift", objectname: EROOT.autograph, view: "autograph", }, ], addendumViews: [ { name: "Textkritischer Apparat", objectname: EROOT.autograph, view: "apparat", }, { name: "Texteingriffe", objectname: EROOT.autograph, view: "emendationen", }, { name: "Quellen und Siglen", objectname: E_ROOT.autograph, view: "quellen", }, { name: "Entstehung", objectname: "vorspann", view: "vorspann", }, ], };
export const setconfig = (
rootname: TYPEROOT
): INTERFACECONFIGINTERFACE => {
switch (rootname) {
case EROOT.autograph:
return AUTOGRAPHCONFIGURATION;
default:
return AUTOGRAPHCONFIGURATION;
}
};
And for last step, you need to make change in `App.vue`
src
├─ App.vue
and arrange the url array regarding your end points
let urls = [
`${import.meta.env.VITEBASEURL}${EROOT.schriften},
${import.meta.env.VITEBASEURL}${E_ROOT.autograph},
];
``
Owner
- Name: Digital Editions Department - Centre for Philology and Digitality (ZPD), University of Würzburg
- Login: zpd-digital-editions
- Kind: organization
- Repositories: 1
- Profile: https://github.com/zpd-digital-editions
Citation (CITATION.cff)
cff-version: 1.2.0
title: Synopticon
message: If you use this software, please cite it using these metadata.
type: software
authors:
- given-names: Yannik
family-names: Herbst
email: yannik.herbst@uni-wuerzburg.de
affiliation: University of Würzburg
orcid: 'https://orcid.org/0000-0002-6547-9599'
- given-names: Seyed
family-names: Saderi
email: seyed.saderi@stud-mail.uni-wuerzburg.de
affiliation: University of Würzburg
orcid: 'https://orcid.org/0009-0001-8808-4709'
- given-names: Christian
family-names: Reul
name-particle: Dr.
email: christian.reul@uni-wuerzburg.de
affiliation: University of Würzburg
orcid: 'https://orcid.org/0000-0002-1776-1469'
repository-code: 'https://github.com/zpd-digital-editions/Synopticon.git'
url: 'https://github.com/zpd-digital-editions/Synopticon'
abstract: The presentation of different states of a document or a text is a fundamental requirement of scholarly digital editions. Layouts for digital editions are often programmed individually. Synopticon bundles divergent approaches into a generic solution.
keywords:
- scholarly digital editions
- synopsis
version: 1.0
date-released: '2022-02-01'
GitHub Events
Total
- Member event: 2
- Push event: 15
- Create event: 3
Last Year
- Member event: 2
- Push event: 15
- Create event: 3
Dependencies
- actions/checkout v4 composite
- actions/setup-node v4 composite
- nginx stable-alpine build
- node lts-alpine build
- 730 dependencies
- @chromatic-com/storybook 1.3.3 development
- @storybook/addon-essentials ^8.0.10 development
- @storybook/addon-interactions ^8.0.10 development
- @storybook/addon-links ^8.0.10 development
- @storybook/blocks ^8.0.10 development
- @storybook/test ^8.0.10 development
- @storybook/vue3 ^8.0.10 development
- @storybook/vue3-vite ^8.0.10 development
- @types/openseadragon ^3.0.10 development
- @vitejs/plugin-vue ^5.0.4 development
- storybook ^8.0.10 development
- typescript ^5.2.2 development
- vite ^5.2.0 development
- vue-tsc ^2.0.6 development
- axios ^1.6.7
- openseadragon ^4.0.0
- pinia ^2.1.7
- vue ^3.4.21
- vue-i18n ^9.10.1
- vue-router ^4.1.5