mirror of
https://github.com/tachiyomiorg/website.git
synced 2024-12-21 07:31:58 +01:00
Project Linting (#209)
* More setup for ESLint * Initial linting * Fix: "Unexpected use of 'location': no-restricted-globals" * Fix: "Prop 'sidebarItems' should define at least its type" * Fix: "import/no-unresolved" * Fix: "import/no-extraneous-dependencies" * Fix: "Unexpected require() 'global-require'" * Fix: "vue/require-prop-types" * Line disable: "radix" * Line disable: "no-param-reassign" * Line disable: "no-shadow" This should usually be an actual problem but I don't think so in this case as the next prompt is basically just a one-action warning. * Add markdown linting support * Replace single quotes with double * Fix indentation for all files * Fix second level quotation marks * Change accordingly I'd still rather keep 4-tab for MD when applicable though, the alternative is a non-standard 3-space indent, which makes three different indentations to keep track of.
This commit is contained in:
parent
8c2459d492
commit
b520d4e448
1
.eslintignore
Normal file
1
.eslintignore
Normal file
@ -0,0 +1 @@
|
|||||||
|
!.vuepress
|
@ -5,18 +5,28 @@
|
|||||||
},
|
},
|
||||||
"extends": [
|
"extends": [
|
||||||
"plugin:vue/essential",
|
"plugin:vue/essential",
|
||||||
"vuepress",
|
"airbnb-base",
|
||||||
"prettier"
|
"prettier",
|
||||||
|
"vuepress"
|
||||||
],
|
],
|
||||||
|
"globals": {
|
||||||
|
"Atomics": "readonly",
|
||||||
|
"SharedArrayBuffer": "readonly"
|
||||||
|
},
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 2018,
|
"ecmaVersion": 2018,
|
||||||
"sourceType": "module"
|
"sourceType": "module"
|
||||||
},
|
},
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"vue",
|
"vue",
|
||||||
"prettier"
|
"prettier",
|
||||||
|
"markdown"
|
||||||
],
|
],
|
||||||
"rules": {
|
"rules": {
|
||||||
"prettier/prettier": ["error"]
|
"prettier/prettier": "error",
|
||||||
|
"import/no-unresolved": [
|
||||||
|
2,
|
||||||
|
{ "ignore": ["^@"] }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
4
.github/workflows/push.yml
vendored
4
.github/workflows/push.yml
vendored
@ -31,6 +31,6 @@ jobs:
|
|||||||
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||||
publish_branch: gh-pages
|
publish_branch: gh-pages
|
||||||
publish_dir: ./public
|
publish_dir: ./public
|
||||||
user_name: 'github-actions[bot]'
|
user_name: "github-actions[bot]"
|
||||||
user_email: 'github-actions[bot]@users.noreply.github.com'
|
user_email: "github-actions[bot]@users.noreply.github.com"
|
||||||
commit_message: ${{ github.event.head_commit.message }}
|
commit_message: ${{ github.event.head_commit.message }}
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
|
<div>
|
||||||
<h1 align="center"><img src="./src/.vuepress/public/assets/media/tachiyomi.png">Tachiyomi Website</h1>
|
<h1 align="center"><img src="./src/.vuepress/public/assets/media/tachiyomi.png">Tachiyomi Website</h1>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://discord.gg/tachiyomi">
|
<a href="https://discord.gg/tachiyomi">
|
||||||
<img src="https://img.shields.io/discord/349436576037732353.svg?label=Discord&labelColor=7289da&color=2c2f33&style=flat" alt="Discord">
|
<img src="https://img.shields.io/discord/349436576037732353.svg?label=Discord&labelColor=7289da&color=2c2f33&style=flat" alt="Discord">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
257
package-lock.json
generated
257
package-lock.json
generated
@ -2189,6 +2189,12 @@
|
|||||||
"object.assign": "^4.1.0"
|
"object.assign": "^4.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"bail": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||||
@ -2873,6 +2879,24 @@
|
|||||||
"supports-color": "^5.3.0"
|
"supports-color": "^5.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"character-entities": {
|
||||||
|
"version": "1.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
|
||||||
|
"integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"character-entities-legacy": {
|
||||||
|
"version": "1.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
|
||||||
|
"integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"character-reference-invalid": {
|
||||||
|
"version": "1.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
|
||||||
|
"integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"chardet": {
|
"chardet": {
|
||||||
"version": "0.7.0",
|
"version": "0.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
|
||||||
@ -3099,6 +3123,12 @@
|
|||||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
|
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"collapse-white-space": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz",
|
||||||
|
"integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"collection-visit": {
|
"collection-visit": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
||||||
@ -4716,6 +4746,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"eslint-plugin-markdown": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-BfvXKsO0K+zvdarNc801jsE/NTLmig4oKhZ1U3aSUgTf2dB/US5+CrfGxMsCK2Ki1vS1R3HPok+uYpufFndhzw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"object-assign": "^4.0.1",
|
||||||
|
"remark-parse": "^5.0.0",
|
||||||
|
"unified": "^6.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"eslint-plugin-node": {
|
"eslint-plugin-node": {
|
||||||
"version": "10.0.0",
|
"version": "10.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz",
|
||||||
@ -6490,6 +6531,22 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"is-alphabetical": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"is-alphanumerical": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"is-alphabetical": "^1.0.0",
|
||||||
|
"is-decimal": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"is-arguments": {
|
"is-arguments": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
|
||||||
@ -6580,6 +6637,12 @@
|
|||||||
"integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
|
"integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"is-decimal": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"is-descriptor": {
|
"is-descriptor": {
|
||||||
"version": "0.1.6",
|
"version": "0.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
|
||||||
@ -6638,6 +6701,12 @@
|
|||||||
"is-extglob": "^2.1.1"
|
"is-extglob": "^2.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"is-hexadecimal": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"is-installed-globally": {
|
"is-installed-globally": {
|
||||||
"version": "0.3.2",
|
"version": "0.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
|
||||||
@ -6784,12 +6853,24 @@
|
|||||||
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
|
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"is-whitespace-character": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"is-windows": {
|
"is-windows": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
|
||||||
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
|
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"is-word-character": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"is-wsl": {
|
"is-wsl": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
|
||||||
@ -7111,8 +7192,7 @@
|
|||||||
"lodash.orderby": {
|
"lodash.orderby": {
|
||||||
"version": "4.6.0",
|
"version": "4.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.orderby/-/lodash.orderby-4.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.orderby/-/lodash.orderby-4.6.0.tgz",
|
||||||
"integrity": "sha1-5pfwTOXXhSL1TZM4syuBozk+TrM=",
|
"integrity": "sha1-5pfwTOXXhSL1TZM4syuBozk+TrM="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"lodash.padstart": {
|
"lodash.padstart": {
|
||||||
"version": "4.6.1",
|
"version": "4.6.1",
|
||||||
@ -7146,8 +7226,7 @@
|
|||||||
"lodash.throttle": {
|
"lodash.throttle": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
|
||||||
"integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=",
|
"integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"lodash.uniq": {
|
"lodash.uniq": {
|
||||||
"version": "4.5.0",
|
"version": "4.5.0",
|
||||||
@ -7247,6 +7326,12 @@
|
|||||||
"object-visit": "^1.0.0"
|
"object-visit": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"markdown-escapes": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"markdown-it": {
|
"markdown-it": {
|
||||||
"version": "8.4.2",
|
"version": "8.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
|
||||||
@ -8375,6 +8460,20 @@
|
|||||||
"safe-buffer": "^5.1.1"
|
"safe-buffer": "^5.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"parse-entities": {
|
||||||
|
"version": "1.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz",
|
||||||
|
"integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"character-entities": "^1.0.0",
|
||||||
|
"character-entities-legacy": "^1.0.0",
|
||||||
|
"character-reference-invalid": "^1.0.0",
|
||||||
|
"is-alphanumerical": "^1.0.0",
|
||||||
|
"is-decimal": "^1.0.0",
|
||||||
|
"is-hexadecimal": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"parse-json": {
|
"parse-json": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
||||||
@ -9627,6 +9726,29 @@
|
|||||||
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
|
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"remark-parse": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"collapse-white-space": "^1.0.2",
|
||||||
|
"is-alphabetical": "^1.0.0",
|
||||||
|
"is-decimal": "^1.0.0",
|
||||||
|
"is-whitespace-character": "^1.0.0",
|
||||||
|
"is-word-character": "^1.0.0",
|
||||||
|
"markdown-escapes": "^1.0.0",
|
||||||
|
"parse-entities": "^1.1.0",
|
||||||
|
"repeat-string": "^1.5.4",
|
||||||
|
"state-toggle": "^1.0.0",
|
||||||
|
"trim": "0.0.1",
|
||||||
|
"trim-trailing-lines": "^1.0.0",
|
||||||
|
"unherit": "^1.0.4",
|
||||||
|
"unist-util-remove-position": "^1.0.0",
|
||||||
|
"vfile-location": "^2.0.0",
|
||||||
|
"xtend": "^4.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"remove-trailing-separator": {
|
"remove-trailing-separator": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
|
||||||
@ -9712,6 +9834,12 @@
|
|||||||
"is-finite": "^1.0.0"
|
"is-finite": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"replace-ext": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"request": {
|
"request": {
|
||||||
"version": "2.88.2",
|
"version": "2.88.2",
|
||||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
|
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
|
||||||
@ -10665,6 +10793,12 @@
|
|||||||
"integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==",
|
"integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"state-toggle": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"static-extend": {
|
"static-extend": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
|
||||||
@ -11268,12 +11402,30 @@
|
|||||||
"punycode": "^2.1.0"
|
"punycode": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"trim": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
|
||||||
|
"integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"trim-newlines": {
|
"trim-newlines": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
|
||||||
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
|
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"trim-trailing-lines": {
|
||||||
|
"version": "1.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz",
|
||||||
|
"integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"trough": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"true-case-path": {
|
"true-case-path": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
|
||||||
@ -11380,6 +11532,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"unherit": {
|
||||||
|
"version": "1.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz",
|
||||||
|
"integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"inherits": "^2.0.0",
|
||||||
|
"xtend": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"unicode-canonical-property-names-ecmascript": {
|
"unicode-canonical-property-names-ecmascript": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
|
||||||
@ -11408,6 +11570,20 @@
|
|||||||
"integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
|
"integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"unified": {
|
||||||
|
"version": "6.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz",
|
||||||
|
"integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"bail": "^1.0.0",
|
||||||
|
"extend": "^3.0.0",
|
||||||
|
"is-plain-obj": "^1.1.0",
|
||||||
|
"trough": "^1.0.0",
|
||||||
|
"vfile": "^2.0.0",
|
||||||
|
"x-is-string": "^0.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"union-value": {
|
"union-value": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
|
||||||
@ -11459,6 +11635,45 @@
|
|||||||
"crypto-random-string": "^2.0.0"
|
"crypto-random-string": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"unist-util-is": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"unist-util-remove-position": {
|
||||||
|
"version": "1.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz",
|
||||||
|
"integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"unist-util-visit": "^1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"unist-util-stringify-position": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"unist-util-visit": {
|
||||||
|
"version": "1.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
|
||||||
|
"integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"unist-util-visit-parents": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"unist-util-visit-parents": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"unist-util-is": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"universalify": {
|
"universalify": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||||
@ -11776,6 +11991,33 @@
|
|||||||
"extsprintf": "^1.2.0"
|
"extsprintf": "^1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"vfile": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz",
|
||||||
|
"integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"is-buffer": "^1.1.4",
|
||||||
|
"replace-ext": "1.0.0",
|
||||||
|
"unist-util-stringify-position": "^1.0.0",
|
||||||
|
"vfile-message": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vfile-location": {
|
||||||
|
"version": "2.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz",
|
||||||
|
"integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"vfile-message": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"unist-util-stringify-position": "^1.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"vm-browserify": {
|
"vm-browserify": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
|
||||||
@ -11792,7 +12034,6 @@
|
|||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/vue-agile/-/vue-agile-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/vue-agile/-/vue-agile-1.1.3.tgz",
|
||||||
"integrity": "sha512-RnvKK6ZoXNAk2Q6h/ux+bhqYs4uflFew3xcsNfysQa+GVLKHfizAaeKHJndqGjSXA+qg+kJuYd4RDY/ry8RY4w==",
|
"integrity": "sha512-RnvKK6ZoXNAk2Q6h/ux+bhqYs4uflFew3xcsNfysQa+GVLKHfizAaeKHJndqGjSXA+qg+kJuYd4RDY/ry8RY4w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"lodash.orderby": "^4.6.0",
|
"lodash.orderby": "^4.6.0",
|
||||||
"lodash.throttle": "^4.1.1"
|
"lodash.throttle": "^4.1.1"
|
||||||
@ -12624,6 +12865,12 @@
|
|||||||
"async-limiter": "~1.0.0"
|
"async-limiter": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"x-is-string": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz",
|
||||||
|
"integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"xdg-basedir": {
|
"xdg-basedir": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
|
||||||
|
@ -16,13 +16,16 @@
|
|||||||
"@vuepress/plugin-google-analytics": "^1.5.0",
|
"@vuepress/plugin-google-analytics": "^1.5.0",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^6.8.0",
|
||||||
"eslint-config-airbnb": "^18.1.0",
|
"eslint-config-airbnb": "^18.1.0",
|
||||||
|
"eslint-config-airbnb-base": "^14.1.0",
|
||||||
"eslint-config-prettier": "^6.11.0",
|
"eslint-config-prettier": "^6.11.0",
|
||||||
"eslint-config-vuepress": "^2.2.0",
|
"eslint-config-vuepress": "^2.2.0",
|
||||||
|
"eslint-plugin-import": "^2.20.2",
|
||||||
|
"eslint-plugin-markdown": "^1.0.2",
|
||||||
"eslint-plugin-prettier": "^3.1.3",
|
"eslint-plugin-prettier": "^3.1.3",
|
||||||
|
"eslint-plugin-vue": "^6.2.2",
|
||||||
"node-sass": "^4.14.1",
|
"node-sass": "^4.14.1",
|
||||||
"prettier": "^2.0.5",
|
"prettier": "^2.0.5",
|
||||||
"sass-loader": "^8.0.2",
|
"sass-loader": "^8.0.2",
|
||||||
"vue-agile": "^1.1.3",
|
|
||||||
"vuepress": "^1.5.0",
|
"vuepress": "^1.5.0",
|
||||||
"vuepress-plugin-clean-urls": "^1.1.1",
|
"vuepress-plugin-clean-urls": "^1.1.1",
|
||||||
"vuepress-plugin-container": "^2.1.3"
|
"vuepress-plugin-container": "^2.1.3"
|
||||||
@ -33,6 +36,7 @@
|
|||||||
"lodash.groupby": "^4.6.0",
|
"lodash.groupby": "^4.6.0",
|
||||||
"lodash.sortby": "^4.7.0",
|
"lodash.sortby": "^4.7.0",
|
||||||
"material-design-icons": "^3.0.1",
|
"material-design-icons": "^3.0.1",
|
||||||
|
"vue-agile": "^1.1.3",
|
||||||
"vue-material-design-icons": "^4.6.0",
|
"vue-material-design-icons": "^4.6.0",
|
||||||
"vue-sweetalert2": "^3.0.5",
|
"vue-sweetalert2": "^3.0.5",
|
||||||
"vuepress-plugin-sitemap": "^2.3.1"
|
"vuepress-plugin-sitemap": "^2.3.1"
|
||||||
|
@ -16,18 +16,18 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
name: {
|
name: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "carousel"
|
default: "carousel",
|
||||||
},
|
},
|
||||||
config: {
|
config: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: function() {
|
default() {
|
||||||
return {
|
return {
|
||||||
navButtons: true,
|
navButtons: true,
|
||||||
centerMode: true
|
centerMode: true,
|
||||||
};
|
};
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -10,9 +10,9 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
name: {
|
name: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "carousel-cell"
|
default: "carousel-cell",
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -15,35 +15,34 @@ import axios from "axios";
|
|||||||
const RELEASE_URL =
|
const RELEASE_URL =
|
||||||
"https://api.github.com/repos/inorichi/tachiyomi/releases/latest";
|
"https://api.github.com/repos/inorichi/tachiyomi/releases/latest";
|
||||||
|
|
||||||
const PREVIEW_URL =
|
const PREVIEW_URL = "https://tachiyomi.kanade.eu/latest";
|
||||||
"https://tachiyomi.kanade.eu/latest";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
downloadStableTag: {
|
downloadStableTag: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true,
|
||||||
},
|
},
|
||||||
downloadPreviewTag: {
|
downloadPreviewTag: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true,
|
||||||
},
|
},
|
||||||
downloadStableLabel: {
|
downloadStableLabel: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "Stable"
|
default: "Stable",
|
||||||
},
|
},
|
||||||
downloadPreviewLabel: {
|
downloadPreviewLabel: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "Preview"
|
default: "Preview",
|
||||||
},
|
},
|
||||||
downloadStableUrl: {
|
downloadStableUrl: {
|
||||||
type: String,
|
type: String,
|
||||||
default: undefined
|
default: undefined,
|
||||||
},
|
},
|
||||||
downloadPreviewUrl: {
|
downloadPreviewUrl: {
|
||||||
type: String,
|
type: String,
|
||||||
default: undefined
|
default: undefined,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
@ -56,7 +55,7 @@ export default {
|
|||||||
async mounted() {
|
async mounted() {
|
||||||
const { data } = await axios.get(RELEASE_URL);
|
const { data } = await axios.get(RELEASE_URL);
|
||||||
// Maybe eventually some release has more than the apk in assets.
|
// Maybe eventually some release has more than the apk in assets.
|
||||||
const apkAsset = data.assets.find(a => a.name.includes(".apk"));
|
const apkAsset = data.assets.find((a) => a.name.includes(".apk"));
|
||||||
// Set the values.
|
// Set the values.
|
||||||
this.$data.tagName = data.tag_name;
|
this.$data.tagName = data.tag_name;
|
||||||
this.$data.browserDownloadUrl = apkAsset.browser_download_url;
|
this.$data.browserDownloadUrl = apkAsset.browser_download_url;
|
||||||
@ -66,7 +65,7 @@ export default {
|
|||||||
downloadStable() {
|
downloadStable() {
|
||||||
this.$swal({
|
this.$swal({
|
||||||
title: "Downloading",
|
title: "Downloading",
|
||||||
text: this.downloadStableLabel + " version is being downloaded.",
|
text: `${this.downloadStableLabel} version is being downloaded.`,
|
||||||
icon: "success",
|
icon: "success",
|
||||||
focusConfirm: false,
|
focusConfirm: false,
|
||||||
focusCancel: false,
|
focusCancel: false,
|
||||||
@ -74,24 +73,32 @@ export default {
|
|||||||
timerProgressBar: true,
|
timerProgressBar: true,
|
||||||
customClass: {
|
customClass: {
|
||||||
confirmButton: "download-confirm-button",
|
confirmButton: "download-confirm-button",
|
||||||
container: "download-container"
|
container: "download-container",
|
||||||
},
|
},
|
||||||
showClass: {
|
showClass: {
|
||||||
popup: "animated pulse faster"
|
popup: "animated pulse faster",
|
||||||
},
|
},
|
||||||
hideClass: {
|
hideClass: {
|
||||||
popup: "animated zoomOut faster"
|
popup: "animated zoomOut faster",
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
window.location.assign(
|
window.location.assign(
|
||||||
this.$props.downloadStableUrl || this.$data.browserDownloadUrl || RELEASE_URL
|
this.$props.downloadStableUrl ||
|
||||||
|
this.$data.browserDownloadUrl ||
|
||||||
|
RELEASE_URL
|
||||||
|
);
|
||||||
|
window.ga(
|
||||||
|
"send",
|
||||||
|
"event",
|
||||||
|
"Action",
|
||||||
|
"Download",
|
||||||
|
this.downloadStableTag
|
||||||
);
|
);
|
||||||
window.ga("send", "event", "Action", "Download", this.downloadStableTag);
|
|
||||||
},
|
},
|
||||||
downloadPreview() {
|
downloadPreview() {
|
||||||
this.$swal({
|
this.$swal({
|
||||||
title: "Downloading",
|
title: "Downloading",
|
||||||
text: this.downloadPreviewLabel + " version is being downloaded.",
|
text: `${this.downloadPreviewLabel} version is being downloaded.`,
|
||||||
icon: "success",
|
icon: "success",
|
||||||
focusConfirm: false,
|
focusConfirm: false,
|
||||||
focusCancel: false,
|
focusCancel: false,
|
||||||
@ -99,21 +106,27 @@ export default {
|
|||||||
timerProgressBar: true,
|
timerProgressBar: true,
|
||||||
customClass: {
|
customClass: {
|
||||||
confirmButton: "download-confirm-button",
|
confirmButton: "download-confirm-button",
|
||||||
container: "download-container"
|
container: "download-container",
|
||||||
},
|
},
|
||||||
showClass: {
|
showClass: {
|
||||||
popup: "animated pulse faster"
|
popup: "animated pulse faster",
|
||||||
},
|
},
|
||||||
hideClass: {
|
hideClass: {
|
||||||
popup: "animated zoomOut faster"
|
popup: "animated zoomOut faster",
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
window.location.assign(
|
window.location.assign(
|
||||||
this.$props.downloadPreviewUrl || PREVIEW_URL
|
this.$props.downloadPreviewUrl || PREVIEW_URL
|
||||||
);
|
);
|
||||||
window.ga("send", "event", "Action", "Download", this.downloadPreviewTag);
|
window.ga(
|
||||||
}
|
"send",
|
||||||
}
|
"event",
|
||||||
|
"Action",
|
||||||
|
"Download",
|
||||||
|
this.downloadPreviewTag
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -54,24 +54,26 @@ const EXTENSION_JSON =
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
extensions: []
|
extensions: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
async beforeMount() {
|
async beforeMount() {
|
||||||
const { data } = await axios.get(EXTENSION_JSON);
|
const { data } = await axios.get(EXTENSION_JSON);
|
||||||
const values = Object.values(groupBy(data, "lang"));
|
const values = Object.values(groupBy(data, "lang"));
|
||||||
this.$data.extensions = sortBy(values, [g => this.langName(g[0].lang)]);
|
this.$data.extensions = sortBy(values, [
|
||||||
|
(g) => this.langName(g[0].lang),
|
||||||
|
]);
|
||||||
},
|
},
|
||||||
|
|
||||||
updated() {
|
updated() {
|
||||||
if (location.hash) {
|
if (window.ocation.hash) {
|
||||||
location.replace(location.hash);
|
window.location.replace(window.location.hash);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
langName: code =>
|
langName: (code) =>
|
||||||
code === "all"
|
code === "all"
|
||||||
? "All"
|
? "All"
|
||||||
: `${ISO6391.getName(code)} (${ISO6391.getNativeName(code)})`,
|
: `${ISO6391.getName(code)} (${ISO6391.getNativeName(code)})`,
|
||||||
@ -79,9 +81,9 @@ export default {
|
|||||||
const pkgName = pkg.substring(0, pkg.lastIndexOf("."));
|
const pkgName = pkg.substring(0, pkg.lastIndexOf("."));
|
||||||
return `https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo/icon/${pkgName}.png`;
|
return `https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo/icon/${pkgName}.png`;
|
||||||
},
|
},
|
||||||
apkUrl: apk =>
|
apkUrl: (apk) =>
|
||||||
`https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo/apk/${apk}`
|
`https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo/apk/${apk}`,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -1,9 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="downloadContainer">
|
<div class="downloadContainer">
|
||||||
<button class="downloadForkButton" :style="downloadForkStyle" @click="downloadFork">
|
<button
|
||||||
|
class="downloadForkButton"
|
||||||
|
:style="downloadForkStyle"
|
||||||
|
@click="downloadFork"
|
||||||
|
>
|
||||||
{{ downloadForkLabel }}
|
{{ downloadForkLabel }}
|
||||||
</button>
|
</button>
|
||||||
<button class="githubForkButton" :style="githubForkStyle" :onclick="githubForkLink">
|
<button
|
||||||
|
class="githubForkButton"
|
||||||
|
:style="githubForkStyle"
|
||||||
|
:onclick="githubForkLink"
|
||||||
|
>
|
||||||
{{ githubForkLabel }}
|
{{ githubForkLabel }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@ -16,44 +24,44 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
forkName: {
|
forkName: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true,
|
||||||
},
|
},
|
||||||
downloadForkLabel: {
|
downloadForkLabel: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "Download"
|
default: "Download",
|
||||||
},
|
},
|
||||||
downloadForkLink: {
|
downloadForkLink: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true,
|
||||||
},
|
},
|
||||||
downloadForkStyle: {
|
downloadForkStyle: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ""
|
default: "",
|
||||||
},
|
},
|
||||||
githubForkLabel: {
|
githubForkLabel: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "GitHub"
|
default: "GitHub",
|
||||||
},
|
},
|
||||||
githubForkLink: {
|
githubForkLink: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true,
|
||||||
},
|
},
|
||||||
githubForkStyle: {
|
githubForkStyle: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ""
|
default: "",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
tagName: "",
|
tagName: "",
|
||||||
browserDownloadUrl: ""
|
browserDownloadUrl: "",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
async mounted() {
|
async mounted() {
|
||||||
const { data } = await axios.get(this.$props.downloadForkLink);
|
const { data } = await axios.get(this.$props.downloadForkLink);
|
||||||
// Maybe eventually some release has more than the apk in assets.
|
// Maybe eventually some release has more than the apk in assets.
|
||||||
const apkAsset = data.assets.find(a => a.name.includes(".apk"));
|
const apkAsset = data.assets.find((a) => a.name.includes(".apk"));
|
||||||
// Set the values.
|
// Set the values.
|
||||||
this.$data.tagName = data.tag_name;
|
this.$data.tagName = data.tag_name;
|
||||||
this.$data.browserDownloadUrl = apkAsset.browser_download_url;
|
this.$data.browserDownloadUrl = apkAsset.browser_download_url;
|
||||||
@ -63,7 +71,7 @@ export default {
|
|||||||
downloadFork() {
|
downloadFork() {
|
||||||
this.$swal({
|
this.$swal({
|
||||||
title: "Downloading",
|
title: "Downloading",
|
||||||
text: this.$props.forkName + " is being downloaded.",
|
text: `${this.$props.forkName} is being downloaded.`,
|
||||||
icon: "success",
|
icon: "success",
|
||||||
focusConfirm: false,
|
focusConfirm: false,
|
||||||
focusCancel: false,
|
focusCancel: false,
|
||||||
@ -71,21 +79,27 @@ export default {
|
|||||||
timerProgressBar: true,
|
timerProgressBar: true,
|
||||||
customClass: {
|
customClass: {
|
||||||
confirmButton: "download-confirm-button",
|
confirmButton: "download-confirm-button",
|
||||||
container: "download-container"
|
container: "download-container",
|
||||||
},
|
},
|
||||||
showClass: {
|
showClass: {
|
||||||
popup: "animated pulse faster"
|
popup: "animated pulse faster",
|
||||||
},
|
},
|
||||||
hideClass: {
|
hideClass: {
|
||||||
popup: "animated zoomOut faster"
|
popup: "animated zoomOut faster",
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
window.location.assign(
|
window.location.assign(
|
||||||
this.$data.browserDownloadUrl || this.$props.downloadForkLink
|
this.$data.browserDownloadUrl || this.$props.downloadForkLink
|
||||||
);
|
);
|
||||||
window.ga("send", "event", "Action", "Download", this.$props.forkName);
|
window.ga(
|
||||||
}
|
"send",
|
||||||
}
|
"event",
|
||||||
|
"Action",
|
||||||
|
"Download",
|
||||||
|
this.$props.forkName
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -6,22 +6,18 @@
|
|||||||
<Content class="theme-default-content" />
|
<Content class="theme-default-content" />
|
||||||
<PageEdit />
|
<PageEdit />
|
||||||
|
|
||||||
<PageNav v-bind="{ sidebarItems }" />
|
|
||||||
|
|
||||||
<slot name="bottom" />
|
<slot name="bottom" />
|
||||||
</main>
|
</main>
|
||||||
</Layout>
|
</Layout>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Layout from '@theme/layouts/Layout.vue'
|
import Layout from "@theme/layouts/Layout.vue";
|
||||||
import PageEdit from '@theme/components/PageEdit.vue'
|
import PageEdit from "@theme/components/PageEdit.vue";
|
||||||
import PageNav from '@theme/components/PageNav.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { PageEdit, PageNav, Layout },
|
components: { PageEdit, Layout },
|
||||||
props: ['sidebarItems']
|
};
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus">
|
<style lang="stylus">
|
||||||
|
@ -275,7 +275,7 @@ export default {
|
|||||||
grid-auto-rows 1fr
|
grid-auto-rows 1fr
|
||||||
grid-gap 1rem
|
grid-gap 1rem
|
||||||
&:after
|
&:after
|
||||||
content ''
|
content ""
|
||||||
display table
|
display table
|
||||||
clear both
|
clear both
|
||||||
|
|
||||||
|
@ -14,17 +14,17 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
iconOnly: {
|
iconOnly: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false,
|
||||||
},
|
},
|
||||||
name: {
|
name: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ""
|
default: "",
|
||||||
},
|
},
|
||||||
iconName: {
|
iconName: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ export default {
|
|||||||
display inline
|
display inline
|
||||||
|
|
||||||
.material-icons
|
.material-icons
|
||||||
font-family 'Material Icons'
|
font-family "Material Icons"
|
||||||
font-size 1.35em
|
font-size 1.35em
|
||||||
font-style normal
|
font-style normal
|
||||||
position relative
|
position relative
|
||||||
@ -50,7 +50,6 @@ export default {
|
|||||||
white-space nowrap
|
white-space nowrap
|
||||||
word-wrap normal
|
word-wrap normal
|
||||||
direction ltr
|
direction ltr
|
||||||
font-feature-settings 'liga'
|
font-feature-settings "liga"
|
||||||
-webkit-font-smoothing antialiased
|
-webkit-font-smoothing antialiased
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,13 +1,27 @@
|
|||||||
<template>
|
<template>
|
||||||
<span v-if="nav.link" class="app-navigation" :class="nav.class" title="App navigation">
|
<span
|
||||||
|
v-if="nav.link"
|
||||||
|
class="app-navigation"
|
||||||
|
:class="nav.class"
|
||||||
|
title="App navigation"
|
||||||
|
>
|
||||||
<a class="app-link" :href="nav.link + entry">
|
<a class="app-link" :href="nav.link + entry">
|
||||||
<MaterialIcon v-if="nav.icon" class="app-icon" :iconName="nav.icon" />
|
<MaterialIcon
|
||||||
|
v-if="nav.icon"
|
||||||
|
class="app-icon"
|
||||||
|
:icon-name="nav.icon"
|
||||||
|
/>
|
||||||
<span class="app-label">{{ nav.text }}</span>
|
<span class="app-label">{{ nav.text }}</span>
|
||||||
<slot />
|
<slot />
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
<span v-else class="app-navigation" :class="nav.class" title="App navigation">
|
<span
|
||||||
<MaterialIcon v-if="nav.icon" class="app-icon" :iconName="nav.icon" />
|
v-else
|
||||||
|
class="app-navigation"
|
||||||
|
:class="nav.class"
|
||||||
|
title="App navigation"
|
||||||
|
>
|
||||||
|
<MaterialIcon v-if="nav.icon" class="app-icon" :icon-name="nav.icon" />
|
||||||
<span class="app-label">{{ nav.text }}</span>
|
<span class="app-label">{{ nav.text }}</span>
|
||||||
<slot />
|
<slot />
|
||||||
</span>
|
</span>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<span v-if="fileName" class="fileNameContainer" title="File name">
|
<span v-if="fileName" class="fileNameContainer" title="File name">
|
||||||
<MaterialIcon class="fileNameIcon" iconName="get_app" />
|
<MaterialIcon class="fileNameIcon" icon-name="get_app" />
|
||||||
<span class="fileName">tachiyomi-{{ this.$data.tagName }}.apk</span>
|
<span class="fileName">tachiyomi-{{ this.$data.tagName }}.apk</span>
|
||||||
<slot />
|
<slot />
|
||||||
</span>
|
</span>
|
||||||
@ -18,8 +18,8 @@ const RELEASE_URL =
|
|||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
fileName: {
|
fileName: {
|
||||||
type: Boolean
|
type: Boolean,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
|
@ -1,52 +1,53 @@
|
|||||||
module.exports = {
|
const pluginsConfig = require("./config/plugins");
|
||||||
dest: './public',
|
const navBarConfig = require("./config/navBar");
|
||||||
temp: './node_modules/.temp/theme',
|
const sideBarConfig = require("./config/sideBar");
|
||||||
|
|
||||||
title: 'Tachiyomi',
|
module.exports = {
|
||||||
description: 'Free and open source manga reader for Android',
|
dest: "./public",
|
||||||
|
temp: "./node_modules/.temp/theme",
|
||||||
|
|
||||||
|
title: "Tachiyomi",
|
||||||
|
description: "Free and open source manga reader for Android",
|
||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
head: [
|
head: [
|
||||||
// Embed headers
|
// Embed headers
|
||||||
['link', { rel: 'icon', href: '/favicon.ico' }],
|
["link", { rel: "icon", href: "/favicon.ico" }],
|
||||||
['link', { rel: 'manifest', href: '/manifest.json' }],
|
["link", { rel: "manifest", href: "/manifest.json" }],
|
||||||
['meta', { name: 'theme-color', content: '#2e84bf' }],
|
["meta", { name: "theme-color", content: "#2e84bf" }],
|
||||||
['meta', { prefix: 'og: http://ogp.me/ns#', property: 'og:image', content: 'https://tachiyomi.org/icons/logo.png' }],
|
["meta", { prefix: "og: http://ogp.me/ns#", property: "og:image", content: "https://tachiyomi.org/icons/logo.png" }],
|
||||||
// Custom headers
|
// Custom headers
|
||||||
['link', { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin:''}],
|
["link", { rel: "preconnect", href: "https://fonts.gstatic.com", crossorigin:""}],
|
||||||
['link', { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Open+Sans'}],
|
["link", { rel: "stylesheet", href: "https://fonts.googleapis.com/css?family=Open+Sans"}],
|
||||||
],
|
],
|
||||||
|
|
||||||
themeConfig: {
|
themeConfig: {
|
||||||
logo: '/icons/logo.svg',
|
logo: "/icons/logo.svg",
|
||||||
repo: 'inorichi/tachiyomi',
|
repo: "inorichi/tachiyomi",
|
||||||
docsRepo: 'tachiyomiorg/website',
|
docsRepo: "tachiyomiorg/website",
|
||||||
docsDir: 'src',
|
docsDir: "src",
|
||||||
smoothScroll: true,
|
smoothScroll: true,
|
||||||
algolia: {
|
algolia: {
|
||||||
apiKey: 'fc1c45b5a3835e1882cbbf0751dfe705',
|
apiKey: "fc1c45b5a3835e1882cbbf0751dfe705",
|
||||||
indexName: 'tachiyomi'
|
indexName: "tachiyomi",
|
||||||
},
|
},
|
||||||
searchPlaceholder: 'Search...',
|
searchPlaceholder: "Search...",
|
||||||
editLinks: true,
|
editLinks: true,
|
||||||
editLinkText: 'Help us improve this page',
|
editLinkText: "Help us improve this page",
|
||||||
lastUpdated: 'Last Updated',
|
lastUpdated: "Last Updated",
|
||||||
nav: require('./config/nav'),
|
nav: navBarConfig,
|
||||||
sidebar: {
|
sidebar: {
|
||||||
'/help/guides/': require('./config/sidebar/guides'),
|
"/help/guides/": sideBarConfig.guides,
|
||||||
'/help/faq/': require('./config/sidebar/faq'),
|
"/help/faq/": sideBarConfig.faq,
|
||||||
'/help/contribution': require('./config/sidebar/contribution'),
|
"/help/contribution": sideBarConfig.contribution,
|
||||||
'/extensions': require('./config/sidebar/extensions'),
|
"/extensions": sideBarConfig.extensions,
|
||||||
'/forks': require('./config/sidebar/forks')
|
"/forks": sideBarConfig.forks,
|
||||||
}
|
|
||||||
},
|
},
|
||||||
plugins: require('./config/plugins'),
|
},
|
||||||
|
plugins: pluginsConfig,
|
||||||
extraWatchFiles: [
|
extraWatchFiles: [
|
||||||
'.vuepress/config/nav.js',
|
".vuepress/config/plugins.js",
|
||||||
'.vuepress/config/plugins.js',
|
".vuepress/config/navBar.js",
|
||||||
'.vuepress/config/sidebar/guides.js',
|
".vuepress/config/sideBar.js",
|
||||||
'.vuepress/config/sidebar/faq.js',
|
],
|
||||||
'.vuepress/config/sidebar/contribution.js',
|
};
|
||||||
'.vuepress/config/sidebar/extensions.js'
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
@ -3,50 +3,50 @@ module.exports = [
|
|||||||
[
|
[
|
||||||
"clean-urls",
|
"clean-urls",
|
||||||
{
|
{
|
||||||
normalSuffix: "/"
|
normalSuffix: "/",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"@vuepress/google-analytics",
|
"@vuepress/google-analytics",
|
||||||
{
|
{
|
||||||
ga: "UA-148212082-1"
|
ga: "UA-148212082-1",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"vuepress-plugin-container",
|
"vuepress-plugin-container",
|
||||||
{
|
{
|
||||||
type: "expander",
|
type: "expander",
|
||||||
before: info =>
|
before: (info) =>
|
||||||
`<details class="expander"><summary class="expansion">${info}</summary>`,
|
`<details class="expander"><summary class="expansion">${info}</summary>`,
|
||||||
after: "</details>"
|
after: "</details>",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"vuepress-plugin-container",
|
"vuepress-plugin-container",
|
||||||
{
|
{
|
||||||
type: "guide",
|
type: "guide",
|
||||||
before: info => `<div class="guide"><p class="title">${info}</p>`,
|
before: (info) => `<div class="guide"><p class="title">${info}</p>`,
|
||||||
after: "</div>"
|
after: "</div>",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"vuepress-plugin-container",
|
"vuepress-plugin-container",
|
||||||
{
|
{
|
||||||
type: "aside",
|
type: "aside",
|
||||||
defaultTitle: ""
|
defaultTitle: "",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"vuepress-plugin-container",
|
"vuepress-plugin-container",
|
||||||
{
|
{
|
||||||
type: "aside-guide",
|
type: "aside-guide",
|
||||||
defaultTitle: ""
|
defaultTitle: "",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"vuepress-plugin-sitemap",
|
"vuepress-plugin-sitemap",
|
||||||
{
|
{
|
||||||
hostname: "https://tachiyomi.org"
|
hostname: "https://tachiyomi.org",
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
|
148
src/.vuepress/config/sideBar.js
Normal file
148
src/.vuepress/config/sideBar.js
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
module.exports = {
|
||||||
|
guides: [
|
||||||
|
"/",
|
||||||
|
{
|
||||||
|
title: "Guides",
|
||||||
|
collapsable: false,
|
||||||
|
sidebarDepth: 2,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: "General",
|
||||||
|
collapsable: false,
|
||||||
|
sidebarDepth: 2,
|
||||||
|
children: [
|
||||||
|
"/help/guides/getting-started",
|
||||||
|
"/help/guides/source-problems",
|
||||||
|
"/help/guides/source-migration",
|
||||||
|
"/help/guides/creating-backups",
|
||||||
|
"/help/guides/reading-local-manga",
|
||||||
|
"/help/guides/categories",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Settings",
|
||||||
|
collapsable: false,
|
||||||
|
sidebarDepth: 2,
|
||||||
|
children: [
|
||||||
|
"/help/guides/settings/general",
|
||||||
|
"/help/guides/settings/reader",
|
||||||
|
"/help/guides/settings/downloads",
|
||||||
|
"/help/guides/settings/tracking",
|
||||||
|
"/help/guides/settings/backup",
|
||||||
|
"/help/guides/settings/advanced",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Frequently Asked Questions",
|
||||||
|
path: "/help/faq/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Forks",
|
||||||
|
path: "/forks/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Contribution",
|
||||||
|
path: "/help/contribution",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Available extensions",
|
||||||
|
path: "/extensions/",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
faq: [
|
||||||
|
"/",
|
||||||
|
{
|
||||||
|
title: "Frequently Asked Questions",
|
||||||
|
path: "/help/faq/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Guides",
|
||||||
|
path: "/help/guides/getting-started",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Forks",
|
||||||
|
path: "/forks/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Contribution",
|
||||||
|
path: "/help/contribution",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Available extensions",
|
||||||
|
path: "/extensions/",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
contribution: [
|
||||||
|
"/",
|
||||||
|
{
|
||||||
|
title: "Contribution",
|
||||||
|
collapsable: false,
|
||||||
|
sidebarDepth: 1,
|
||||||
|
children: ["/help/contribution"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Frequently Asked Questions",
|
||||||
|
path: "/help/faq/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Guides",
|
||||||
|
path: "/help/guides/getting-started",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Forks",
|
||||||
|
path: "/forks/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Available extensions",
|
||||||
|
path: "/extensions/",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
extensions: [
|
||||||
|
"/",
|
||||||
|
{
|
||||||
|
title: "Available extensions",
|
||||||
|
path: "/extensions/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Frequently Asked Questions",
|
||||||
|
path: "/help/faq/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Guides",
|
||||||
|
path: "/help/guides/getting-started",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Forks",
|
||||||
|
path: "/forks/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Contribution",
|
||||||
|
path: "/help/contribution",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
forks: [
|
||||||
|
"/",
|
||||||
|
{
|
||||||
|
title: "Forks",
|
||||||
|
path: "/forks/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Frequently Asked Questions",
|
||||||
|
path: "/help/faq/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Guides",
|
||||||
|
path: "/help/guides/getting-started",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Contribution",
|
||||||
|
path: "/help/contribution",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Available extensions",
|
||||||
|
path: "/extensions/",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
@ -1,27 +0,0 @@
|
|||||||
module.exports = [
|
|
||||||
'/',
|
|
||||||
{
|
|
||||||
title: 'Contribution',
|
|
||||||
collapsable: false,
|
|
||||||
sidebarDepth: 1,
|
|
||||||
children: [
|
|
||||||
'/help/contribution'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Frequently Asked Questions',
|
|
||||||
path: '/help/faq/',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Guides',
|
|
||||||
path: '/help/guides/getting-started',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Forks',
|
|
||||||
path: '/forks/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Available extensions',
|
|
||||||
path: '/extensions/'
|
|
||||||
}
|
|
||||||
];
|
|
@ -1,23 +0,0 @@
|
|||||||
module.exports = [
|
|
||||||
'/',
|
|
||||||
{
|
|
||||||
title: 'Available extensions',
|
|
||||||
path: '/extensions/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Frequently Asked Questions',
|
|
||||||
path: '/help/faq/',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Guides',
|
|
||||||
path: '/help/guides/getting-started',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Forks',
|
|
||||||
path: '/forks/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Contribution',
|
|
||||||
path: '/help/contribution'
|
|
||||||
}
|
|
||||||
];
|
|
@ -1,23 +0,0 @@
|
|||||||
module.exports = [
|
|
||||||
'/',
|
|
||||||
{
|
|
||||||
title: 'Frequently Asked Questions',
|
|
||||||
path: '/help/faq/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Guides',
|
|
||||||
path: '/help/guides/getting-started',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Forks',
|
|
||||||
path: '/forks/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Contribution',
|
|
||||||
path: '/help/contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Available extensions',
|
|
||||||
path: '/extensions/'
|
|
||||||
}
|
|
||||||
];
|
|
@ -1,23 +0,0 @@
|
|||||||
module.exports = [
|
|
||||||
'/',
|
|
||||||
{
|
|
||||||
title: 'Forks',
|
|
||||||
path: '/forks/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Frequently Asked Questions',
|
|
||||||
path: '/help/faq/',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Guides',
|
|
||||||
path: '/help/guides/getting-started',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Contribution',
|
|
||||||
path: '/help/contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Available extensions',
|
|
||||||
path: '/extensions/'
|
|
||||||
}
|
|
||||||
];
|
|
@ -1,52 +0,0 @@
|
|||||||
module.exports = [
|
|
||||||
'/',
|
|
||||||
{
|
|
||||||
title: 'Guides',
|
|
||||||
collapsable: false,
|
|
||||||
sidebarDepth: 2,
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
title: 'General',
|
|
||||||
collapsable: false,
|
|
||||||
sidebarDepth: 2,
|
|
||||||
children: [
|
|
||||||
'/help/guides/getting-started',
|
|
||||||
'/help/guides/source-problems',
|
|
||||||
'/help/guides/source-migration',
|
|
||||||
'/help/guides/creating-backups',
|
|
||||||
'/help/guides/reading-local-manga',
|
|
||||||
'/help/guides/categories'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Settings',
|
|
||||||
collapsable: false,
|
|
||||||
sidebarDepth: 2,
|
|
||||||
children: [
|
|
||||||
'/help/guides/settings/general',
|
|
||||||
'/help/guides/settings/reader',
|
|
||||||
'/help/guides/settings/downloads',
|
|
||||||
'/help/guides/settings/tracking',
|
|
||||||
'/help/guides/settings/backup',
|
|
||||||
'/help/guides/settings/advanced'
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Frequently Asked Questions',
|
|
||||||
path: '/help/faq/',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Forks',
|
|
||||||
path: '/forks/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Contribution',
|
|
||||||
path: '/help/contribution'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Available extensions',
|
|
||||||
path: '/extensions/'
|
|
||||||
}
|
|
||||||
];
|
|
@ -1,18 +1,18 @@
|
|||||||
import './styles/fonts.styl'
|
import "./styles/fonts.styl";
|
||||||
import './styles/animate.css'
|
import "./styles/animate.css";
|
||||||
import 'sweetalert2/dist/sweetalert2.min.css';
|
import "./styles/sweetalert2.css";
|
||||||
import 'vue-material-design-icons/styles.css';
|
import "vue-material-design-icons/styles.css";
|
||||||
|
|
||||||
import { VueAgile } from 'vue-agile';
|
import { VueAgile } from "vue-agile";
|
||||||
import VueSweetalert2 from 'vue-sweetalert2';
|
import VueSweetalert2 from "vue-sweetalert2";
|
||||||
|
|
||||||
export default ({
|
export default ({
|
||||||
Vue, // the version of Vue being used in the VuePress app
|
Vue, // the version of Vue being used in the VuePress app
|
||||||
options, // the options for the root Vue instance
|
options, // the options for the root Vue instance
|
||||||
router, // the router instance for the app
|
router, // the router instance for the app
|
||||||
siteData // site metadata
|
siteData, // site metadata
|
||||||
}) => {
|
}) => {
|
||||||
// eslint-disable-next-line vue/match-component-file-name
|
// eslint-disable-next-line vue/match-component-file-name
|
||||||
Vue.component('Agile', VueAgile);
|
Vue.component("Agile", VueAgile);
|
||||||
Vue.use(VueSweetalert2);
|
Vue.use(VueSweetalert2);
|
||||||
};
|
};
|
||||||
|
2
src/.vuepress/styles/animate.css
vendored
2
src/.vuepress/styles/animate.css
vendored
@ -106,7 +106,7 @@
|
|||||||
animation-iteration-count: 1 !important;
|
animation-iteration-count: 1 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.animate__animated[class*='Out'] {
|
.animate__animated[class*="Out"] {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
@font-face
|
@font-face
|
||||||
font-family 'Material Icons'
|
font-family "Material Icons"
|
||||||
font-style normal
|
font-style normal
|
||||||
font-weight 400
|
font-weight 400
|
||||||
src url('~material-design-icons/iconfont/MaterialIcons-Regular.eot')
|
src url("~material-design-icons/iconfont/MaterialIcons-Regular.eot")
|
||||||
src local('Material Icons'), local('MaterialIcons-Regular'), url('~material-design-icons/iconfont/MaterialIcons-Regular.woff2') format('woff2'), url('~material-design-icons/iconfont/MaterialIcons-Regular.woff') format('woff'), url('~material-design-icons/iconfont/MaterialIcons-Regular.ttf') format('truetype'), url('~material-design-icons/iconfont/MaterialIcons-Regular.svg#MaterialIcons-Regular') format('svg')
|
src local("Material Icons"), local("MaterialIcons-Regular"), url("~material-design-icons/iconfont/MaterialIcons-Regular.woff2") format("woff2"), url("~material-design-icons/iconfont/MaterialIcons-Regular.woff") format("woff"), url("~material-design-icons/iconfont/MaterialIcons-Regular.ttf") format("truetype"), url("~material-design-icons/iconfont/MaterialIcons-Regular.svg#MaterialIcons-Regular") format("svg")
|
||||||
|
@ -72,7 +72,7 @@ font-feature-settings()
|
|||||||
font-weight normal
|
font-weight normal
|
||||||
&::before
|
&::before
|
||||||
&::after
|
&::after
|
||||||
content ''
|
content ""
|
||||||
left 0
|
left 0
|
||||||
position absolute
|
position absolute
|
||||||
&::before
|
&::before
|
||||||
|
@ -23,8 +23,8 @@ $MQNarrow = 959px
|
|||||||
$MQMobile = 767px
|
$MQMobile = 767px
|
||||||
$MQMobileNarrow = 419px
|
$MQMobileNarrow = 419px
|
||||||
// Fonts
|
// Fonts
|
||||||
$buttonFontFamily = 'Open Sans', Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif
|
$buttonFontFamily = "Open Sans", Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif
|
||||||
$codeFontFamily = source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace
|
$codeFontFamily = source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace
|
||||||
// Forks
|
// Forks
|
||||||
$nekoAccentColor = #3DDA83
|
$nekoAccentColor = #3DDA83
|
||||||
$j2kAccentColor = $accentColor
|
$j2kAccentColor = $accentColor
|
||||||
|
1371
src/.vuepress/styles/sweetalert2.css
Normal file
1371
src/.vuepress/styles/sweetalert2.css
Normal file
File diff suppressed because it is too large
Load Diff
@ -8,70 +8,84 @@
|
|||||||
id="algolia-search-input"
|
id="algolia-search-input"
|
||||||
class="search-query"
|
class="search-query"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
>
|
/>
|
||||||
</form>
|
</form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'AlgoliaSearchBox',
|
name: "AlgoliaSearchBox",
|
||||||
|
|
||||||
props: ['options'],
|
props: {
|
||||||
|
options: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
placeholder: undefined
|
placeholder: undefined,
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
$lang(newValue) {
|
$lang(newValue) {
|
||||||
this.update(this.options, newValue)
|
this.update(this.options, newValue);
|
||||||
},
|
},
|
||||||
|
|
||||||
options(newValue) {
|
options(newValue) {
|
||||||
this.update(newValue, this.$lang)
|
this.update(newValue, this.$lang);
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.initialize(this.options, this.$lang)
|
this.initialize(this.options, this.$lang);
|
||||||
this.placeholder = this.$site.themeConfig.searchPlaceholder || ''
|
this.placeholder = this.$site.themeConfig.searchPlaceholder || "";
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
initialize(userOptions, lang) {
|
initialize(userOptions, lang) {
|
||||||
Promise.all([
|
Promise.all([
|
||||||
import(/* webpackChunkName: "docsearch" */ 'docsearch.js/dist/cdn/docsearch.min.js'),
|
import(
|
||||||
import(/* webpackChunkName: "docsearch" */ 'docsearch.js/dist/cdn/docsearch.min.css')
|
/* webpackChunkName: "docsearch" */ "docsearch.js/dist/cdn/docsearch.min.js"
|
||||||
|
),
|
||||||
|
import(
|
||||||
|
/* webpackChunkName: "docsearch" */ "docsearch.js/dist/cdn/docsearch.min.css"
|
||||||
|
),
|
||||||
]).then(([docsearch]) => {
|
]).then(([docsearch]) => {
|
||||||
docsearch = docsearch.default
|
// eslint-disable-next-line no-param-reassign
|
||||||
const { algoliaOptions = {}} = userOptions
|
docsearch = docsearch.default;
|
||||||
docsearch(Object.assign(
|
const { algoliaOptions = {} } = userOptions;
|
||||||
{},
|
docsearch({
|
||||||
userOptions,
|
...userOptions,
|
||||||
{
|
inputSelector: "#algolia-search-input",
|
||||||
inputSelector: '#algolia-search-input',
|
|
||||||
// #697 Make docsearch work well at i18n mode.
|
// #697 Make docsearch work well at i18n mode.
|
||||||
algoliaOptions: Object.assign({
|
algoliaOptions: {
|
||||||
'facetFilters': [`lang:${lang}`].concat(algoliaOptions.facetFilters || [])
|
facetFilters: [`lang:${lang}`].concat(
|
||||||
}, algoliaOptions),
|
algoliaOptions.facetFilters || []
|
||||||
|
),
|
||||||
|
...algoliaOptions,
|
||||||
|
},
|
||||||
handleSelected: (input, event, suggestion) => {
|
handleSelected: (input, event, suggestion) => {
|
||||||
const { pathname, hash } = new URL(suggestion.url)
|
const { pathname, hash } = new URL(suggestion.url);
|
||||||
const routepath = pathname.replace(this.$site.base, '/')
|
const routepath = pathname.replace(
|
||||||
this.$router.push(`${routepath}${hash}`)
|
this.$site.base,
|
||||||
}
|
"/"
|
||||||
}
|
);
|
||||||
))
|
this.$router.push(`${routepath}${hash}`);
|
||||||
})
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
update(options, lang) {
|
update(options, lang) {
|
||||||
this.$el.innerHTML = '<input id="algolia-search-input" class="search-query">'
|
this.$el.innerHTML =
|
||||||
this.initialize(options, lang)
|
'<input id="algolia-search-input" class="search-query">';
|
||||||
}
|
this.initialize(options, lang);
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus">
|
<style lang="stylus">
|
||||||
@ -178,5 +192,4 @@ export default {
|
|||||||
width 5px
|
width 5px
|
||||||
margin -3px 3px 0
|
margin -3px 3px 0
|
||||||
vertical-align middle
|
vertical-align middle
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -230,6 +230,7 @@ export default {
|
|||||||
popup:
|
popup:
|
||||||
"animate__animated animate__faster animate__zoomOut",
|
"animate__animated animate__faster animate__zoomOut",
|
||||||
},
|
},
|
||||||
|
// eslint-disable-next-line no-shadow
|
||||||
}).then((result) => {
|
}).then((result) => {
|
||||||
if (result.value) {
|
if (result.value) {
|
||||||
this.$swal({
|
this.$swal({
|
||||||
|
@ -2,94 +2,113 @@
|
|||||||
<header class="navbar">
|
<header class="navbar">
|
||||||
<SidebarButton @toggle-sidebar="$emit('toggle-sidebar')" />
|
<SidebarButton @toggle-sidebar="$emit('toggle-sidebar')" />
|
||||||
|
|
||||||
<RouterLink
|
<RouterLink :to="$localePath" class="home-link">
|
||||||
:to="$localePath"
|
|
||||||
class="home-link"
|
|
||||||
>
|
|
||||||
<img
|
<img
|
||||||
v-if="$site.themeConfig.logo"
|
v-if="$site.themeConfig.logo"
|
||||||
class="logo"
|
class="logo"
|
||||||
:src="$withBase($site.themeConfig.logo)"
|
:src="$withBase($site.themeConfig.logo)"
|
||||||
:alt="$siteTitle"
|
:alt="$siteTitle"
|
||||||
>
|
/>
|
||||||
<span
|
<span
|
||||||
v-if="$siteTitle"
|
v-if="$siteTitle"
|
||||||
ref="siteName"
|
ref="siteName"
|
||||||
class="site-name"
|
class="site-name"
|
||||||
:class="{ 'can-hide': $site.themeConfig.logo }"
|
:class="{ 'can-hide': $site.themeConfig.logo }"
|
||||||
>{{ $siteTitle }}</span>
|
>{{ $siteTitle }}</span
|
||||||
|
>
|
||||||
</RouterLink>
|
</RouterLink>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="links"
|
class="links"
|
||||||
:style="linksWrapMaxWidth ? {
|
:style="
|
||||||
'max-width': linksWrapMaxWidth + 'px'
|
linksWrapMaxWidth
|
||||||
} : {}"
|
? {
|
||||||
|
'max-width': linksWrapMaxWidth + 'px',
|
||||||
|
}
|
||||||
|
: {}
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<div v-if="$page.frontmatter.hideSearch" />
|
<div v-if="$page.frontmatter.hideSearch" />
|
||||||
<AlgoliaSearchBox
|
<AlgoliaSearchBox v-else-if="isAlgoliaSearch" :options="algolia" />
|
||||||
v-else-if="isAlgoliaSearch"
|
<SearchBox
|
||||||
:options="algolia"
|
v-else-if="
|
||||||
|
$site.themeConfig.search !== false &&
|
||||||
|
$page.frontmatter.search !== false
|
||||||
|
"
|
||||||
/>
|
/>
|
||||||
<SearchBox v-else-if="$site.themeConfig.search !== false && $page.frontmatter.search !== false" />
|
|
||||||
<NavLinks class="can-hide" />
|
<NavLinks class="can-hide" />
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import AlgoliaSearchBox from './AlgoliaSearchBox.vue'
|
import SearchBox from "@SearchBox";
|
||||||
import SearchBox from '@SearchBox'
|
import SidebarButton from "@theme/components/SidebarButton.vue";
|
||||||
import SidebarButton from '@theme/components/SidebarButton.vue'
|
import NavLinks from "@theme/components/NavLinks.vue";
|
||||||
import NavLinks from '@theme/components/NavLinks.vue'
|
import AlgoliaSearchBox from "./AlgoliaSearchBox.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Navbar',
|
name: "Navbar",
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
SidebarButton,
|
SidebarButton,
|
||||||
NavLinks,
|
NavLinks,
|
||||||
SearchBox,
|
SearchBox,
|
||||||
AlgoliaSearchBox
|
AlgoliaSearchBox,
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
linksWrapMaxWidth: null
|
linksWrapMaxWidth: null,
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
algolia() {
|
algolia() {
|
||||||
return this.$themeLocaleConfig.algolia || this.$site.themeConfig.algolia || {}
|
return (
|
||||||
|
this.$themeLocaleConfig.algolia ||
|
||||||
|
this.$site.themeConfig.algolia ||
|
||||||
|
{}
|
||||||
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
isAlgoliaSearch() {
|
isAlgoliaSearch() {
|
||||||
return this.algolia && this.algolia.apiKey && this.algolia.indexName
|
return (
|
||||||
}
|
this.algolia && this.algolia.apiKey && this.algolia.indexName
|
||||||
|
);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
const MOBILE_DESKTOP_BREAKPOINT = 719 // refer to config.styl
|
const MOBILE_DESKTOP_BREAKPOINT = 719; // refer to config.styl
|
||||||
const NAVBAR_VERTICAL_PADDING = parseInt(css(this.$el, 'paddingLeft')) + parseInt(css(this.$el, 'paddingRight'))
|
const NAVBAR_VERTICAL_PADDING =
|
||||||
|
// eslint-disable-next-line radix
|
||||||
|
parseInt(css(this.$el, "paddingLeft")) +
|
||||||
|
// eslint-disable-next-line radix
|
||||||
|
parseInt(css(this.$el, "paddingRight"));
|
||||||
const handleLinksWrapWidth = () => {
|
const handleLinksWrapWidth = () => {
|
||||||
if (document.documentElement.clientWidth < MOBILE_DESKTOP_BREAKPOINT) {
|
if (
|
||||||
this.linksWrapMaxWidth = null
|
document.documentElement.clientWidth < MOBILE_DESKTOP_BREAKPOINT
|
||||||
|
) {
|
||||||
|
this.linksWrapMaxWidth = null;
|
||||||
} else {
|
} else {
|
||||||
this.linksWrapMaxWidth = this.$el.offsetWidth - NAVBAR_VERTICAL_PADDING
|
this.linksWrapMaxWidth =
|
||||||
- (this.$refs.siteName && this.$refs.siteName.offsetWidth || 0)
|
this.$el.offsetWidth -
|
||||||
}
|
NAVBAR_VERTICAL_PADDING -
|
||||||
}
|
((this.$refs.siteName && this.$refs.siteName.offsetWidth) ||
|
||||||
handleLinksWrapWidth()
|
0);
|
||||||
window.addEventListener('resize', handleLinksWrapWidth, false)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
handleLinksWrapWidth();
|
||||||
|
window.addEventListener("resize", handleLinksWrapWidth, false);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
function css(el, property) {
|
function css(el, property) {
|
||||||
// NOTE: Known bug, will return 'auto' if style value is 'auto'
|
// NOTE: Known bug, will return "auto" if style value is "auto"
|
||||||
const win = el.ownerDocument.defaultView
|
const win = el.ownerDocument.defaultView;
|
||||||
// null means not to return pseudo styles
|
// null means not to return pseudo styles
|
||||||
return win.getComputedStyle(el, null)[property]
|
return win.getComputedStyle(el, null)[property];
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
extend: "@vuepress/theme-default"
|
extend: "@vuepress/theme-default",
|
||||||
};
|
};
|
||||||
|
@ -47,6 +47,6 @@ Visit our translation project [here](https://hosted.weblate.org/projects/tachiyo
|
|||||||
## Donation
|
## Donation
|
||||||
If you can't contribute code or translations but you still wish to help, then you can choose to contribute directly to the projects founder, [Inorichi](https://github.com/inorichi/) by using the button below, or going [directly to Ko-Fi](https://ko-fi.com/inorichi).
|
If you can't contribute code or translations but you still wish to help, then you can choose to contribute directly to the projects founder, [Inorichi](https://github.com/inorichi/) by using the button below, or going [directly to Ko-Fi](https://ko-fi.com/inorichi).
|
||||||
***
|
***
|
||||||
<a href='https://ko-fi.com/inorichi' target='_blank' rel='noopener'>
|
<a href="https://ko-fi.com/inorichi" target="_blank" rel="noopener">
|
||||||
<img height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi1.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com' />
|
<img height="36" style="border:0px;height:36px;" src="https://cdn.ko-fi.com/cdn/kofi1.png?v=2" border="0" alt="Buy Me a Coffee at ko-fi.com" />
|
||||||
</a>
|
</a>
|
@ -12,8 +12,7 @@ Migration is the process of moving manga from one source to another while keepin
|
|||||||
1. Go to <Navigation item="more"/> and tap <Navigation item="source_migration"/>.
|
1. Go to <Navigation item="more"/> and tap <Navigation item="source_migration"/>.
|
||||||
1. Select the **Source** you're migrating from.
|
1. Select the **Source** you're migrating from.
|
||||||
1. Find and select the title that you want to migrate.
|
1. Find and select the title that you want to migrate.
|
||||||
|
> **Tachiyomi** will do a global search of all the sources you have installed and enabled. If you don't find the manga you want, try searching for other titles it might go under.
|
||||||
**Tachiyomi** will do a global search of all the sources you have installed and enabled. If you don't find the manga you want, try searching for other titles it might go under.
|
|
||||||
1. Once you find the manga you want to migrate, select it and then choose which data you want to transfer over, and you're done.
|
1. Once you find the manga you want to migrate, select it and then choose which data you want to transfer over, and you're done.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user