Skip to content

Commit 8e0bbae

Browse files
authored
Merge pull request #25 from citation-file-format/quasar
Add Quasar implementation
2 parents d03934d + 01b1a75 commit 8e0bbae

73 files changed

Lines changed: 25102 additions & 7 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
indent_style = space
6+
indent_size = 2
7+
end_of_line = lf
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true

.eslintignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/dist
2+
/src-bex/www
3+
/src-capacitor
4+
/src-cordova
5+
/.quasar
6+
/node_modules
7+
.eslintrc.js
8+
babel.config.js
9+
/src-ssr

.eslintrc.js

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
const { resolve } = require('path');
2+
module.exports = {
3+
// https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy
4+
// This option interrupts the configuration hierarchy at this file
5+
// Remove this if you have an higher level ESLint config file (it usually happens into a monorepos)
6+
root: true,
7+
8+
// https://eslint.vuejs.org/user-guide/#how-to-use-custom-parser
9+
// Must use parserOptions instead of "parser" to allow vue-eslint-parser to keep working
10+
// `parser: 'vue-eslint-parser'` is already included with any 'plugin:vue/**' config and should be omitted
11+
parserOptions: {
12+
// https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/parser#configuration
13+
// https://github.com/TypeStrong/fork-ts-checker-webpack-plugin#eslint
14+
// Needed to make the parser take into account 'vue' files
15+
extraFileExtensions: ['.vue'],
16+
parser: '@typescript-eslint/parser',
17+
project: resolve(__dirname, './tsconfig.json'),
18+
tsconfigRootDir: __dirname,
19+
ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features
20+
sourceType: 'module' // Allows for the use of imports
21+
},
22+
23+
env: {
24+
browser: true
25+
},
26+
27+
// Rules order is important, please avoid shuffling them
28+
extends: [
29+
// Base ESLint recommended rules
30+
// 'eslint:recommended',
31+
32+
// https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin#usage
33+
// ESLint typescript rules
34+
'plugin:@typescript-eslint/recommended',
35+
// consider disabling this class of rules if linting takes too long
36+
'plugin:@typescript-eslint/recommended-requiring-type-checking',
37+
38+
// Uncomment any of the lines below to choose desired strictness,
39+
// but leave only one uncommented!
40+
// See https://eslint.vuejs.org/rules/#available-rules
41+
'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention)
42+
// 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability)
43+
// 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead)
44+
45+
'standard'
46+
47+
],
48+
49+
plugins: [
50+
// required to apply rules which need type information
51+
'@typescript-eslint',
52+
53+
// https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-file
54+
// required to lint *.vue files
55+
'vue',
56+
57+
],
58+
59+
globals: {
60+
ga: 'readonly', // Google Analytics
61+
cordova: 'readonly',
62+
__statics: 'readonly',
63+
__QUASAR_SSR__: 'readonly',
64+
__QUASAR_SSR_SERVER__: 'readonly',
65+
__QUASAR_SSR_CLIENT__: 'readonly',
66+
__QUASAR_SSR_PWA__: 'readonly',
67+
process: 'readonly',
68+
Capacitor: 'readonly',
69+
chrome: 'readonly'
70+
},
71+
72+
// add your custom rules here
73+
rules: {
74+
// allow async-await
75+
'generator-star-spacing': 'off',
76+
// allow paren-less arrow functions
77+
'arrow-parens': 'off',
78+
'one-var': 'off',
79+
'no-void': 'off',
80+
'multiline-ternary': 'off',
81+
82+
'import/first': 'off',
83+
'import/named': 'error',
84+
'import/namespace': 'error',
85+
'import/default': 'error',
86+
'import/export': 'error',
87+
'import/extensions': 'off',
88+
'import/no-unresolved': 'off',
89+
'import/no-extraneous-dependencies': 'off',
90+
'prefer-promise-reject-errors': 'off',
91+
92+
// TypeScript
93+
quotes: ['warn', 'single', { avoidEscape: true }],
94+
'@typescript-eslint/explicit-function-return-type': 'off',
95+
'@typescript-eslint/explicit-module-boundary-types': 'off',
96+
97+
// allow debugger during development only
98+
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
99+
}
100+
}

.github/workflows/build.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Build
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
cd:
7+
runs-on: ${{ matrix.os }}
8+
9+
strategy:
10+
matrix:
11+
os: [ubuntu-latest]
12+
node: [14]
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@master
17+
18+
- name: Setup Node
19+
uses: actions/setup-node@v2.1.2
20+
with:
21+
node-version: ${{ matrix.node }}
22+
23+
- name: Install the dependencies
24+
run: npm install
25+
26+
- name: Build
27+
run: npm run build
28+

.gitignore

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
.DS_Store
2+
.thumbs.db
3+
node_modules
4+
5+
# Quasar core related directories
6+
.quasar
7+
/dist
8+
9+
# Cordova related directories and files
10+
/src-cordova/node_modules
11+
/src-cordova/platforms
12+
/src-cordova/plugins
13+
/src-cordova/www
14+
15+
# Capacitor related directories and files
16+
/src-capacitor/www
17+
/src-capacitor/node_modules
18+
19+
# BEX related directories and files
20+
/src-bex/www
21+
/src-bex/js/core
22+
23+
# Log files
24+
npm-debug.log*
25+
yarn-debug.log*
26+
yarn-error.log*
27+
28+
# Editor directories and files
29+
.idea
30+
*.suo
31+
*.ntvs*
32+
*.njsproj
33+
*.sln

.postcssrc.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// https://github.com/michael-ciniawsky/postcss-load-config
2+
3+
module.exports = {
4+
plugins: [
5+
// to edit target browsers: use "browserslist" field in package.json
6+
require('autoprefixer')
7+
]
8+
}

.vscode/extensions.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"recommendations": [
3+
"dbaeumer.vscode-eslint",
4+
5+
"octref.vetur"
6+
],
7+
"unwantedRecommendations": [
8+
"hookyqr.beautify",
9+
"dbaeumer.jshint",
10+
"ms-vscode.vscode-typescript-tslint-plugin"
11+
]
12+
}

.vscode/settings.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"vetur.validation.template": false,
3+
"vetur.format.enable": false,
4+
"eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"],
5+
"typescript.tsdk": "node_modules/typescript/lib",
6+
"vetur.experimental.templateInterpolationService": true
7+
}

README.dev.md

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,48 @@ We're developing the wireframes and interaction designs over at [https://www.fig
44

55
`cffinit` is a Single Page App written in [TypeScript](https://www.typescriptlang.org/) using [Vue.js v3](https://v3.vuejs.org/) and [its composition API](https://v3.vuejs.org/api/composition-api.html).
66

7-
## development install
7+
## Clone the repository
88

99
```shell
1010
# clone this repository
1111
git clone https://github.com/citation-file-format/cffinit
1212

1313
# change directory
1414
cd cffinit
15+
```
16+
17+
## install dependencies
18+
19+
The command below will install dependencies
1520

16-
# install dependencies, including development dependencies
21+
```shell
1722
npm install
23+
```
24+
25+
## start the development server
26+
27+
```shell
28+
npm run dev
29+
```
30+
31+
Use a browser to navigate to [localhost:8080](http://localhost:8080/) to see the website.
1832

19-
# start serving the web application
20-
npm run serve
33+
## build the application
2134

22-
# use a browser to navigate to localhost:8080 to see the website
23-
firefox http://localhost:8080/
24-
google-chrome http://localhost:8080/
35+
The command below will build the application and save the output in `docs/` folder.
36+
37+
```shell
38+
npm run build
39+
```
40+
41+
## linting the code
42+
43+
```shell
44+
npm run lint
45+
```
46+
47+
try to automatically fix linting issues with
48+
49+
```shell
50+
npm run lint -- --fix
2551
```

babel.config.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/* eslint-env node */
2+
3+
module.exports = api => {
4+
return {
5+
presets: [
6+
[
7+
'@quasar/babel-preset-app',
8+
api.caller(caller => caller && caller.target === 'node')
9+
? { targets: { node: 'current' } }
10+
: {}
11+
]
12+
]
13+
}
14+
}
15+

0 commit comments

Comments
 (0)