- Single Page App: The
cffinitapp will be a SPA. So app feels like a native app and no server-side code needs to run. - Figma: A vector graphics and prototyping editor used to developed the wireframes and interaction designs.
- npm CLI: Package manager command line interface shipped with NodeJS.
- TypeScript: Typed JavaScript language used for lowering maintenance cost.
- Vue.js v3: A frontend JS framework for building user interfaces.
- Vue.js Composition API: Is style of writing UI components to group logical concerns like state management.
- Quasar: A UI framework, a group of UI components, that follow Material design guidelines to make a coherent/pleasing user interface.
- Quasar CLI: Build and test infrastructure. Combines well with Vue.js, Quasar and jest.
- GitHub pages: Hosting of static HTML files. The build app (in
docsfolder) is deployed on it. - Husky: Automaticly runs checks before pushing changes to GitHub.
- Jest: Testing framework to run unit tests and perform test assertions.
- highlight.js: To syntax highlight the YAML formatted file.
- ESLint: To get constistent code style and prevent errors the industry standard linter ESLint is used.
The notes about how we came to this technology stack, design and personas can be found in project-docs/ folder.
# clone this repository
git clone https://github.com/citation-file-format/cff-initializer-javascript
# change directory
cd cffinitThe command below will install dependencies
npm clean-installnpm run devUse a browser to navigate to localhost:8080 to see the website.
The command below will build the application and save the output in docs/ folder.
npm run buildnpm run linttry to automatically fix linting issues with
npm run lint -- --fixTo run linting on commit, you can install a git commit hook with
npx husky installWe use Jest for unit tests. To run unit tests (test/jest/__tests__/**/*.jest.spec.ts)
You can run the test with
npm run test:unit:ciYou can also use the Majestic web interface to run the unit tests in your browser.
npm run test:unit:uiThis section describes how to make a release in 2 parts:
- preparation
- making a release on GitHub
- Verify that the information in
CITATION.cffis correct - Generate an updated version of
.zenodo.jsonif needed usingcffconvert - Make sure the version field in
package.jsonis correct - By running
npm run lintmake sure the linter does not complain - Run the unit tests with
npm run test:unit:ci - Make sure that github.io page is up to date
- Check whether the Publish workflow worked recently and it was successful
Make a release on GitHub.