diff --git a/.eslintrc.json b/.eslintrc.json index 50410a92..cc300b20 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -9,7 +9,7 @@ "plugin:react/recommended", "plugin:react-hooks/recommended", "plugin:jsx-a11y/recommended", - "prettier" + "plugin:prettier/recommended" ], "globals": { "JSX": "readonly" @@ -22,11 +22,7 @@ "ecmaVersion": 12, "sourceType": "module" }, - "plugins": [ - "react", - "@typescript-eslint", - "jsx-a11y" - ], + "plugins": ["react", "@typescript-eslint", "jsx-a11y"], "rules": { "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": "error" diff --git a/.github/workflows/deployment.yml b/.github/workflows/build.yml similarity index 80% rename from .github/workflows/deployment.yml rename to .github/workflows/build.yml index 7cb7caf7..80f876de 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: documentation +name: build on: pull_request: @@ -7,31 +7,34 @@ on: branches: [master] jobs: - checks: + test-build: if: github.event_name != 'push' + name: Test Build runs-on: ubuntu-latest steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3.0.2 - uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3.4.1 with: - node-version: "16.x" - - name: Test Build + node-version: 16 + - name: Run build run: | npm ci npm run build + gh-release: if: github.event_name != 'pull_request' + name: Deploy to GitHub Pages runs-on: ubuntu-latest steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3.0.2 - uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3.4.1 with: - node-version: "16.x" - - name: Build docusaurus + node-version: 16 + - name: Run build run: | npm ci npm run build - - name: Deploy to Github Pages + - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@068dc23d9710f1ba62e86896f84735d869951305 # tag=v3.8.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 00000000..3162a0cf --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,29 @@ +name: lint + +on: + pull_request: + branches: [master] + push: + branches: [master] + +jobs: + eslint: + name: Lint TypeScript/JavaScript + runs-on: ubuntu-latest + + steps: + - name: Check out Git repository + uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3.0.2 + + - name: Set up Node.js + uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3.4.1 + with: + node-version: 16 + check-latest: true + cache: npm + + - name: Install Node.js dependencies + run: npm ci --no-audit + + - name: Run eslint + run: npm run lint diff --git a/.prettierrc b/.prettierrc index 38bc8e09..3f25f74b 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,5 +1,7 @@ { + "printWidth": 120, "semi": true, "singleQuote": true, + "jsxSingleQuote": true, "trailingComma": "none" -} +} \ No newline at end of file diff --git a/babel.config.js b/babel.config.js index e00595da..6bf8d26f 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,3 +1,3 @@ module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset')], + presets: [require.resolve('@docusaurus/core/lib/babel/preset')] }; diff --git a/docs/clients/_category_.json b/docs/clients/_category_.json index 39dc012d..f7d86c33 100644 --- a/docs/clients/_category_.json +++ b/docs/clients/_category_.json @@ -1,3 +1,3 @@ { "label": "Client configuration" -} \ No newline at end of file +} diff --git a/docs/configuration/_category_.json b/docs/configuration/_category_.json index 4dd19295..cee618e8 100644 --- a/docs/configuration/_category_.json +++ b/docs/configuration/_category_.json @@ -1,3 +1,3 @@ { "label": "Server configuration" -} \ No newline at end of file +} diff --git a/docs/media/_category_.json b/docs/media/_category_.json index d14da745..5f6efb83 100644 --- a/docs/media/_category_.json +++ b/docs/media/_category_.json @@ -1,3 +1,3 @@ { "label": "Organizing your media" -} \ No newline at end of file +} diff --git a/docs/plugins/_category_.json b/docs/plugins/_category_.json index 694eddc6..732c367e 100644 --- a/docs/plugins/_category_.json +++ b/docs/plugins/_category_.json @@ -1,3 +1,3 @@ { "label": "Plugins" -} \ No newline at end of file +} diff --git a/docs/reverse-proxy/_category_.json b/docs/reverse-proxy/_category_.json index 09c9ec0c..733492c0 100644 --- a/docs/reverse-proxy/_category_.json +++ b/docs/reverse-proxy/_category_.json @@ -1,3 +1,3 @@ { "label": "Using with a reverse proxy" -} \ No newline at end of file +} diff --git a/docs/server/_category_.json b/docs/server/_category_.json index 46413d37..7e69809d 100644 --- a/docs/server/_category_.json +++ b/docs/server/_category_.json @@ -1,3 +1,3 @@ { "label": "Server administration" -} \ No newline at end of file +} diff --git a/docs/server/users/_category_.json b/docs/server/users/_category_.json index f2459a5e..ddcc05b5 100644 --- a/docs/server/users/_category_.json +++ b/docs/server/users/_category_.json @@ -1,3 +1,3 @@ { "label": "Users" -} \ No newline at end of file +} diff --git a/docs/tips-and-tricks/_category_.json b/docs/tips-and-tricks/_category_.json index 8f4da51e..ca8b6b14 100644 --- a/docs/tips-and-tricks/_category_.json +++ b/docs/tips-and-tricks/_category_.json @@ -1,3 +1,3 @@ { "label": "Tips & tricks" -} \ No newline at end of file +} diff --git a/docusaurus.config.js b/docusaurus.config.js index 1cfb6f38..e7ab1fcb 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -87,7 +87,7 @@ module.exports = { { label: 'Contact', to: '/contact' - }, + } ], copyright: `Site content is licensed CC-BY-ND-4.0` } diff --git a/package-lock.json b/package-lock.json index c0673e13..5dc25f75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3812,6 +3812,15 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "react-loadable": { + "version": "npm:@docusaurus/react-loadable@5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "requires": { + "@types/react": "*", + "prop-types": "^15.6.2" + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -3950,6 +3959,16 @@ "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", "dev": true + }, + "react-loadable": { + "version": "npm:@docusaurus/react-loadable@5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "dev": true, + "requires": { + "@types/react": "*", + "prop-types": "^15.6.2" + } } } }, @@ -4012,6 +4031,17 @@ "@types/react-router-dom": "*", "react-helmet-async": "*", "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + }, + "dependencies": { + "react-loadable": { + "version": "npm:@docusaurus/react-loadable@5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "requires": { + "@types/react": "*", + "prop-types": "^15.6.2" + } + } } }, "@types/history": { @@ -4160,6 +4190,17 @@ "@types/react-router-dom": "*", "react-helmet-async": "*", "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + }, + "dependencies": { + "react-loadable": { + "version": "npm:@docusaurus/react-loadable@5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "requires": { + "@types/react": "*", + "prop-types": "^15.6.2" + } + } } }, "@types/history": { @@ -4203,6 +4244,17 @@ "@types/react-router-dom": "*", "react-helmet-async": "*", "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + }, + "dependencies": { + "react-loadable": { + "version": "npm:@docusaurus/react-loadable@5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "requires": { + "@types/react": "*", + "prop-types": "^15.6.2" + } + } } }, "@types/history": { @@ -6154,7 +6206,7 @@ "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", "dev": true }, "at-least-node": { @@ -7291,7 +7343,7 @@ "css-parse": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", "dev": true, "requires": { "css": "^2.0.0" @@ -7439,7 +7491,7 @@ "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "decompress-response": { @@ -8499,6 +8551,15 @@ } } }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, "eslint-plugin-promise": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz", @@ -8992,6 +9053,12 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -9012,7 +9079,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fast-url-parser": { @@ -9457,7 +9524,7 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "functions-have-names": { @@ -9469,7 +9536,7 @@ "generic-names": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz", - "integrity": "sha512-b6OHfQuKasIKM9b6YPkX+KUj/TLBTx3B/1aT1T5F12FEuEqyFMdr59OMS53aoaSw8eVtapdqieX6lbg5opaOhA==", + "integrity": "sha1-LXhqEhruUIh2eWk56OO/+DbCCRc=", "dev": true, "requires": { "loader-utils": "^0.2.16" @@ -9484,19 +9551,19 @@ "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "loader-utils": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { "big.js": "^3.1.3", @@ -10022,7 +10089,7 @@ "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", "dev": true, "optional": true }, @@ -10462,7 +10529,7 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json5": { @@ -10524,7 +10591,7 @@ "language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", "dev": true, "requires": { "language-subtag-registry": "~0.3.2" @@ -10639,7 +10706,7 @@ "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, "lodash.curry": { @@ -10942,7 +11009,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "needle": { @@ -11963,7 +12030,7 @@ "postcss-icss-keyframes": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/postcss-icss-keyframes/-/postcss-icss-keyframes-0.2.1.tgz", - "integrity": "sha512-4m+hLY5TVqoTM198KKnzdNudyu1OvtqwD+8kVZ9PNiEO4+IfHYoyVvEXsOHjV8nZ1k6xowf+nY4HlUfZhOFvvw==", + "integrity": "sha1-gMRFXgESsPL5w8Bax1FQYruf8pU=", "dev": true, "requires": { "icss-utils": "^3.0.1", @@ -11985,7 +12052,7 @@ "icss-utils": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-3.0.1.tgz", - "integrity": "sha512-ANhVLoEfe0KoC9+z4yiTaXOneB49K6JIXdS+yAgH0NERELpdIT7kkj2XxUPuHafeHnn8umXnECSpsfk1RTaUew==", + "integrity": "sha1-7nDTroysOMa+XtkehRsn7tNDrQ8=", "dev": true, "requires": { "postcss": "^6.0.2" @@ -12019,7 +12086,7 @@ "postcss-icss-selectors": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/postcss-icss-selectors/-/postcss-icss-selectors-2.0.3.tgz", - "integrity": "sha512-dxFtq+wscbU9faJaH8kIi98vvCPDbt+qg1g9GoG0os1PY3UvgY1Y2G06iZrZb1iVC9cyFfafwSY1IS+IQpRQ4w==", + "integrity": "sha1-J/oa/Kq2xgLIZsuymPMhjpvBybM=", "dev": true, "requires": { "css-selector-tokenizer": "^0.7.0", @@ -12043,7 +12110,7 @@ "icss-utils": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-3.0.1.tgz", - "integrity": "sha512-ANhVLoEfe0KoC9+z4yiTaXOneB49K6JIXdS+yAgH0NERELpdIT7kkj2XxUPuHafeHnn8umXnECSpsfk1RTaUew==", + "integrity": "sha1-7nDTroysOMa+XtkehRsn7tNDrQ8=", "dev": true, "requires": { "postcss": "^6.0.2" @@ -12350,6 +12417,15 @@ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, "pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", @@ -12433,7 +12509,7 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true, "optional": true }, @@ -12781,15 +12857,6 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, - "react-loadable": { - "version": "npm:@docusaurus/react-loadable@5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "requires": { - "@types/react": "*", - "prop-types": "^15.6.2" - } - }, "react-loadable-ssr-addon-v5-slorber": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", @@ -13150,7 +13217,7 @@ "reserved-words": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", - "integrity": "sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==", + "integrity": "sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=", "dev": true }, "resolve": { @@ -13175,7 +13242,7 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "responselike": { @@ -13716,7 +13783,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "stable": { "version": "0.1.8", @@ -14017,7 +14084,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "semver": { @@ -14546,7 +14613,7 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "url-loader": { diff --git a/package.json b/package.json index 69f8c9b1..0dcf3c7f 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-node": "11.1.0", + "eslint-plugin-prettier": "4.2.1", "eslint-plugin-promise": "6.0.0", "eslint-plugin-react": "7.30.1", "eslint-plugin-react-hooks": "4.6.0", diff --git a/sidebars.js b/sidebars.js index 981a73cd..008fb222 100644 --- a/sidebars.js +++ b/sidebars.js @@ -11,7 +11,7 @@ module.exports = { // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], + tutorialSidebar: [{ type: 'autogenerated', dirName: '.' }] // But you can create a sidebar manually /* diff --git a/src/components/BuiltByVolunteers.tsx b/src/components/BuiltByVolunteers.tsx index 29d5771b..18d0d64e 100644 --- a/src/components/BuiltByVolunteers.tsx +++ b/src/components/BuiltByVolunteers.tsx @@ -8,32 +8,28 @@ export default function BuiltByVolunteers() { const contributors = 1000; return ( -
-
-
-
-
+
+
+
+
+

{members}

Members

-
+

{contributors}+

Contributors

-
+

Built by volunteers, community-driven

-
- - Jellyfin is entirely funded through donations and built by its - users. - +
+ Jellyfin is entirely funded through donations and built by its users.
- We rely entirely on contributions from volunteers. There is no - corporation steering the ship. Everything is done by users, for - users. + We rely entirely on contributions from volunteers. There is no corporation steering the ship. Everything + is done by users, for users.
diff --git a/src/components/CallToAction.tsx b/src/components/CallToAction.tsx index 69d4a694..79e6ab5a 100644 --- a/src/components/CallToAction.tsx +++ b/src/components/CallToAction.tsx @@ -4,17 +4,11 @@ import styles from './CallToAction.modules.css'; export default function CallToAction() { return (
-
-
-

Get Started Now

-

- Check out our Getting Started guide to download and set up your - server today. -

- +
+ diff --git a/src/components/ContributorGuide.tsx b/src/components/ContributorGuide.tsx index 4f275be8..967d94d5 100644 --- a/src/components/ContributorGuide.tsx +++ b/src/components/ContributorGuide.tsx @@ -41,12 +41,9 @@ export default function ContributorGuide() { <>