diff options
-rw-r--r-- | .drone.yml | 5 | ||||
-rw-r--r-- | .stylelintrc.js | 31 | ||||
-rw-r--r-- | package-lock.json | 104 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | src/components/EditorWrapper.vue | 2 | ||||
-rw-r--r-- | src/components/SessionList.vue | 1 | ||||
-rw-r--r-- | src/nodes/ImageView.vue | 6 | ||||
-rw-r--r-- | webpack.common.js | 8 |
8 files changed, 104 insertions, 55 deletions
diff --git a/.drone.yml b/.drone.yml index 1a8b98d54..29127cfdb 100644 --- a/.drone.yml +++ b/.drone.yml @@ -132,6 +132,11 @@ steps: commands: - npm install - npm run lint + - name: stylelint + image: node:lts-alpine + commands: + - npm install + - npm run stylelint - name: vue-build image: node:lts-alpine commands: diff --git a/.stylelintrc.js b/.stylelintrc.js new file mode 100644 index 000000000..9880b876d --- /dev/null +++ b/.stylelintrc.js @@ -0,0 +1,31 @@ +module.exports = { + extends: 'stylelint-config-recommended-scss', + rules: { + indentation: 'tab', + 'selector-type-no-unknown': null, + 'number-leading-zero': null, + 'rule-empty-line-before': [ + 'always', + { + ignore: ['after-comment', 'inside-block'] + } + ], + 'declaration-empty-line-before': [ + 'never', + { + ignore: ['after-declaration'] + } + ], + 'comment-empty-line-before': null, + 'selector-type-case': null, + 'selector-list-comma-newline-after': null, + 'no-descending-specificity': null, + 'string-quotes': 'single', + 'selector-pseudo-element-no-unknown': [ true, + { + ignorePseudoElements: ["/deep/"] + } + ] + }, + plugins: ['stylelint-scss'] +} diff --git a/package-lock.json b/package-lock.json index 890cd23c2..e7477885d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2229,20 +2229,20 @@ }, "dependencies": { "browserslist": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.2.tgz", - "integrity": "sha512-2neU/V0giQy9h3XMPwLhEY3+Ao0uHSwHvU8Q1Ea6AgLVL1sXbX3dzPrJ8NWe5Hi4PoTkCYXOtVR9rfRLI0J/8Q==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.3.tgz", + "integrity": "sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000974", - "electron-to-chromium": "^1.3.150", + "caniuse-lite": "^1.0.30000975", + "electron-to-chromium": "^1.3.164", "node-releases": "^1.1.23" } }, "node-releases": { - "version": "1.1.23", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.23.tgz", - "integrity": "sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w==", + "version": "1.1.24", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.24.tgz", + "integrity": "sha512-wym2jptfuKowMmkZsfCSTsn8qAVo8zm+UiQA6l5dNqUcpfChZSnS/vbbpOeXczf+VdPhutxh+99lWHhdd6xKzg==", "dev": true, "requires": { "semver": "^5.3.0" @@ -2990,6 +2990,15 @@ } } }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3021,9 +3030,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000974", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000974.tgz", - "integrity": "sha512-xc3rkNS/Zc3CmpMKuczWEdY2sZgx09BkAxfvkxlAEBTqcMHeL8QnPqhKse+5sRTi3nrw2pJwToD2WvKn1Uhvww==", + "version": "1.0.30000979", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000979.tgz", + "integrity": "sha512-gcu45yfq3B7Y+WB05fOMfr0EiSlq+1u+m6rPHyJli/Wy3PVQNGaU7VA4bZE5qw+AU2UVOBR/N5g1bzADUqdvFw==", "dev": true }, "capture-exit": { @@ -3483,15 +3492,6 @@ "parse-json": "^4.0.0" }, "dependencies": { - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, "import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", @@ -4017,9 +4017,9 @@ } }, "electron-to-chromium": { - "version": "1.3.157", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.157.tgz", - "integrity": "sha512-vxGi3lOGqlupuogZxJOMfu+Q1vaOlG6XbsblWw8XnUZSr/ptbt3D6jhHT5LJPZuFUpKhbEo1u4QipivSory1Kg==", + "version": "1.3.181", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.181.tgz", + "integrity": "sha512-xf1dCoc6FSCVcNQu8VGiMSH55rOT/ov6U7UpMgw4Erg5KfD1LHTXqm34/IGp55TLX4WqwuT4IIeJWhdGhO8mYw==", "dev": true }, "elliptic": { @@ -4991,6 +4991,15 @@ "escape-string-regexp": "^1.0.5" } }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, "file-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.0.0.tgz", @@ -5074,6 +5083,17 @@ "resolve-dir": "^1.0.1" } }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, "flatted": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", @@ -11262,15 +11282,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -11289,17 +11300,6 @@ "locate-path": "^2.0.0" } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, "get-stdin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", @@ -11488,15 +11488,6 @@ "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", "dev": true }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "yargs-parser": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", @@ -12883,6 +12874,15 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, "write-file-atomic": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", diff --git a/package.json b/package.json index f6206d65d..528610549 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "build": "NODE_ENV=production webpack --progress --hide-modules --config webpack.prod.js", "lint": "eslint --ext .js,.vue src", "lint:fix": "eslint --ext .js,.vue src --fix", + "stylelint": "stylelint src/**/*.vue src/**/*.scss src/**/*.css", + "stylelint:fix": "stylelint src/**/*.vue src/**/*.scss src/**/*.css --fix", "test": "NODE_ENV=test jest --passWithNoTests", "test:coverage": "NODE_ENV=test jest --coverage" }, diff --git a/src/components/EditorWrapper.vue b/src/components/EditorWrapper.vue index 3d07f93a4..dcbe57b18 100644 --- a/src/components/EditorWrapper.vue +++ b/src/components/EditorWrapper.vue @@ -483,7 +483,7 @@ export default { width: 100%; } .editor__content::v-deep .ProseMirror { - padding-top: 50px; + padding-top: 50px; } } diff --git a/src/components/SessionList.vue b/src/components/SessionList.vue index 143ffd149..8662c252b 100644 --- a/src/components/SessionList.vue +++ b/src/components/SessionList.vue @@ -156,6 +156,7 @@ export default { } } } + .popovermenu { display: block; } diff --git a/src/nodes/ImageView.vue b/src/nodes/ImageView.vue index b5bf64997..dcd0f57c2 100644 --- a/src/nodes/ImageView.vue +++ b/src/nodes/ImageView.vue @@ -170,24 +170,28 @@ export default { margin: 0; padding: 0; } + .image__caption { text-align: center; color: var(--color-text-lighter); - input[type="text"] { + input[type='text'] { width: 100%; border: none; text-align: center; } } + .icon-image { margin-top: 10px; height: 32px; padding: 20px; background-size: contain; } + .image__loading { height: 100px; } + .image__placeholder .image__main { background-color: var(--color-background-dark); text-align: center; diff --git a/webpack.common.js b/webpack.common.js index 53480cf1b..3cd4f2b13 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -1,5 +1,6 @@ const path = require('path'); const VueLoaderPlugin = require('vue-loader/lib/plugin'); +const StyleLintPlugin = require('stylelint-webpack-plugin'); module.exports = { @@ -52,7 +53,12 @@ module.exports = { } ] }, - plugins: [new VueLoaderPlugin()], + plugins: [ + new VueLoaderPlugin(), + new StyleLintPlugin({ + files: ['src/**/*.vue', 'src/**/*.scss', 'src/**/*.css'] + }) + ], resolve: { alias: { vue$: 'vue/dist/vue.esm.js' |