Update docs

Closes #1090
This commit is contained in:
arkon 2024-01-06 11:29:19 -05:00
parent 2d0e505f85
commit 66e017a424
11 changed files with 225 additions and 212 deletions

View File

@ -123,10 +123,10 @@ devDependencies:
version: 0.8.0
vite-plugin-eslint:
specifier: 1.8.1
version: 1.8.1(eslint@8.56.0)(vite@5.0.10)
version: 1.8.1(eslint@8.56.0)(vite@5.0.0)
vitepress:
specifier: 1.0.0-rc.34
version: 1.0.0-rc.34(@algolia/client-search@4.20.0)(@types/node@20.10.6)(axios@1.6.3)(postcss@8.4.32)(search-insights@2.8.2)(stylus@0.62.0)(typescript@5.2.2)
version: 1.0.0-rc.34(@algolia/client-search@4.20.0)(@types/node@20.10.6)(axios@1.6.3)(postcss@8.4.31)(search-insights@2.8.2)(stylus@0.62.0)(typescript@5.2.2)
vitepress-plugin-tabs:
specifier: 0.5.0
version: 0.5.0(vitepress@1.0.0-rc.34)(vue@3.4.3)
@ -147,8 +147,8 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
/@adobe/css-tools@4.3.2:
resolution: {integrity: sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==}
/@adobe/css-tools@4.3.1:
resolution: {integrity: sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==}
dev: true
/@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.8.2):
@ -380,29 +380,29 @@ packages:
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
/@csstools/css-parser-algorithms@2.4.0(@csstools/css-tokenizer@2.2.2):
resolution: {integrity: sha512-/PPLr2g5PAUCKAPEbfyk6/baZA+WJHQtUhPkoCQMpyRE8I0lXrG1QFRN8e5s3ZYxM8d/g5BZc6lH3s8Op7/VEg==}
/@csstools/css-parser-algorithms@2.5.0(@csstools/css-tokenizer@2.2.3):
resolution: {integrity: sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
'@csstools/css-tokenizer': ^2.2.2
'@csstools/css-tokenizer': ^2.2.3
dependencies:
'@csstools/css-tokenizer': 2.2.2
'@csstools/css-tokenizer': 2.2.3
dev: true
/@csstools/css-tokenizer@2.2.2:
resolution: {integrity: sha512-wCDUe/MAw7npAHFLyW3QjSyLA66S5QFaV1jIXlNQvdJ8RzXDSgALa49eWcUO6P55ARQaz0TsDdAgdRgkXFYY8g==}
/@csstools/css-tokenizer@2.2.3:
resolution: {integrity: sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==}
engines: {node: ^14 || ^16 || >=18}
dev: true
/@csstools/media-query-list-parser@2.1.6(@csstools/css-parser-algorithms@2.4.0)(@csstools/css-tokenizer@2.2.2):
resolution: {integrity: sha512-R6AKl9vaU0It7D7TR2lQn0pre5aQfdeqHRePlaRCY8rHL3l9eVlNRpsEVDKFi/zAjzv68CxH2M5kqbhPFPKjvw==}
/@csstools/media-query-list-parser@2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3):
resolution: {integrity: sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
'@csstools/css-parser-algorithms': ^2.4.0
'@csstools/css-tokenizer': ^2.2.2
'@csstools/css-parser-algorithms': ^2.5.0
'@csstools/css-tokenizer': ^2.2.3
dependencies:
'@csstools/css-parser-algorithms': 2.4.0(@csstools/css-tokenizer@2.2.2)
'@csstools/css-tokenizer': 2.2.2
'@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
'@csstools/css-tokenizer': 2.2.3
dev: true
/@csstools/selector-specificity@3.0.1(postcss-selector-parser@6.0.13):
@ -712,7 +712,7 @@ packages:
debug: 4.3.4
espree: 9.6.1
globals: 13.23.0
ignore: 5.3.0
ignore: 5.2.4
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
@ -729,7 +729,7 @@ packages:
debug: 4.3.4
espree: 9.6.1
globals: 13.23.0
ignore: 5.3.0
ignore: 5.2.4
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
@ -1300,7 +1300,7 @@ packages:
eslint: '*'
dependencies:
'@stylistic/eslint-plugin-js': 1.4.0
'@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/utils': 6.11.0(eslint@8.56.0)(typescript@5.2.2)
eslint: 8.56.0
graphemer: 1.4.0
transitivePeerDependencies:
@ -1457,7 +1457,7 @@ packages:
debug: 4.3.4
eslint: 8.56.0
graphemer: 1.4.0
ignore: 5.3.0
ignore: 5.2.4
natural-compare: 1.4.0
semver: 7.5.4
ts-api-utils: 1.0.3(typescript@5.2.2)
@ -1487,12 +1487,12 @@ packages:
- supports-color
dev: true
/@typescript-eslint/scope-manager@6.15.0:
resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==}
/@typescript-eslint/scope-manager@6.11.0:
resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
'@typescript-eslint/types': 6.15.0
'@typescript-eslint/visitor-keys': 6.15.0
'@typescript-eslint/types': 6.11.0
'@typescript-eslint/visitor-keys': 6.11.0
dev: true
/@typescript-eslint/scope-manager@6.16.0:
@ -1523,8 +1523,8 @@ packages:
- supports-color
dev: true
/@typescript-eslint/types@6.15.0:
resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==}
/@typescript-eslint/types@6.11.0:
resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==}
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
@ -1533,8 +1533,8 @@ packages:
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
/@typescript-eslint/typescript-estree@6.15.0(typescript@5.2.2):
resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==}
/@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2):
resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
typescript: '*'
@ -1542,8 +1542,8 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/types': 6.15.0
'@typescript-eslint/visitor-keys': 6.15.0
'@typescript-eslint/types': 6.11.0
'@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
@ -1576,8 +1576,8 @@ packages:
- supports-color
dev: true
/@typescript-eslint/utils@6.15.0(eslint@8.56.0)(typescript@5.2.2):
resolution: {integrity: sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==}
/@typescript-eslint/utils@6.11.0(eslint@8.56.0)(typescript@5.2.2):
resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@ -1585,9 +1585,9 @@ packages:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@types/json-schema': 7.0.13
'@types/semver': 7.5.2
'@typescript-eslint/scope-manager': 6.15.0
'@typescript-eslint/types': 6.15.0
'@typescript-eslint/typescript-estree': 6.15.0(typescript@5.2.2)
'@typescript-eslint/scope-manager': 6.11.0
'@typescript-eslint/types': 6.11.0
'@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2)
eslint: 8.56.0
semver: 7.5.4
transitivePeerDependencies:
@ -1614,11 +1614,11 @@ packages:
- typescript
dev: true
/@typescript-eslint/visitor-keys@6.15.0:
resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==}
/@typescript-eslint/visitor-keys@6.11.0:
resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
'@typescript-eslint/types': 6.15.0
'@typescript-eslint/types': 6.11.0
eslint-visitor-keys: 3.4.3
dev: true
@ -1634,14 +1634,14 @@ packages:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
/@vitejs/plugin-vue@5.0.2(vite@5.0.10)(vue@3.4.3):
/@vitejs/plugin-vue@5.0.2(vite@5.0.11)(vue@3.4.3):
resolution: {integrity: sha512-kEjJHrLb5ePBvjD0SPZwJlw1QTRcjjCA9sB5VyfonoXVBxTS7TMnqL6EkLt1Eu61RDeiuZ/WN9Hf6PxXhPI2uA==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
vite: ^5.0.0
vue: ^3.2.25
dependencies:
vite: 5.0.10(@types/node@20.10.6)(stylus@0.62.0)
vite: 5.0.11(@types/node@20.10.6)(stylus@0.62.0)
vue: 3.4.3(typescript@5.2.2)
dev: true
@ -1670,7 +1670,7 @@ packages:
'@vue/shared': 3.4.3
estree-walker: 2.0.2
magic-string: 0.30.5
postcss: 8.4.32
postcss: 8.4.33
source-map-js: 1.0.2
/@vue/compiler-ssr@3.4.3:
@ -1818,12 +1818,12 @@ packages:
negotiator: 0.6.3
dev: true
/acorn-jsx@5.3.2(acorn@8.11.2):
/acorn-jsx@5.3.2(acorn@8.10.0):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
acorn: 8.11.2
acorn: 8.10.0
dev: true
/acorn@8.10.0:
@ -2534,6 +2534,10 @@ packages:
- '@vue/composition-api'
dev: false
/emoji-regex@10.2.1:
resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==}
dev: true
/emoji-regex@10.3.0:
resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==}
dev: true
@ -2792,7 +2796,7 @@ packages:
dependencies:
escape-string-regexp: 1.0.5
eslint: 8.56.0
ignore: 5.3.0
ignore: 5.2.4
dev: true
/eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0):
@ -2909,7 +2913,7 @@ packages:
eslint: 8.56.0
eslint-plugin-es-x: 7.2.0(eslint@8.56.0)
get-tsconfig: 4.7.0
ignore: 5.3.0
ignore: 5.2.4
is-builtin-module: 3.2.1
is-core-module: 2.13.0
minimatch: 3.1.2
@ -2940,7 +2944,7 @@ packages:
vue-eslint-parser:
optional: true
dependencies:
'@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/utils': 6.11.0(eslint@8.56.0)(typescript@5.2.2)
eslint: 8.56.0
minimatch: 9.0.3
natural-compare-lite: 1.4.0
@ -3011,7 +3015,7 @@ packages:
optional: true
dependencies:
'@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/utils': 6.11.0(eslint@8.56.0)(typescript@5.2.2)
eslint: 8.56.0
transitivePeerDependencies:
- supports-color
@ -3121,8 +3125,8 @@ packages:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
acorn: 8.11.2
acorn-jsx: 5.3.2(acorn@8.11.2)
acorn: 8.10.0
acorn-jsx: 5.3.2(acorn@8.10.0)
eslint-visitor-keys: 3.4.3
dev: true
@ -3269,7 +3273,7 @@ packages:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
flat-cache: 3.2.0
flat-cache: 3.1.1
dev: true
/file-entry-cache@8.0.0:
@ -3317,9 +3321,9 @@ packages:
path-exists: 4.0.0
dev: true
/flat-cache@3.2.0:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
/flat-cache@3.1.1:
resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==}
engines: {node: '>=12.0.0'}
dependencies:
flatted: 3.2.9
keyv: 4.5.3
@ -4280,8 +4284,8 @@ packages:
resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
dev: false
/meow@13.0.0:
resolution: {integrity: sha512-4Hu+75Vo7EOR+8C9RmkabfLijuwd9SrzQ8f0SyC4qZZwU6BlxeOt5ulF3PGCpcMJX4hI+ktpJhea0P6PN1RiWw==}
/meow@13.1.0:
resolution: {integrity: sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA==}
engines: {node: '>=18'}
dev: true
@ -4407,6 +4411,12 @@ packages:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
dev: true
/nanoid@3.3.6:
resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
/nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@ -4700,8 +4710,8 @@ packages:
dependencies:
htmlparser2: 8.0.2
js-tokens: 8.0.2
postcss: 8.4.32
postcss-safe-parser: 6.0.0(postcss@8.4.32)
postcss: 8.4.31
postcss-safe-parser: 6.0.0(postcss@8.4.31)
dev: true
/postcss-media-query-parser@0.2.3:
@ -4712,22 +4722,22 @@ packages:
resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==}
dev: true
/postcss-safe-parser@6.0.0(postcss@8.4.32):
/postcss-safe-parser@6.0.0(postcss@8.4.31):
resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.3.3
dependencies:
postcss: 8.4.32
postcss: 8.4.31
dev: true
/postcss-safe-parser@7.0.0(postcss@8.4.32):
/postcss-safe-parser@7.0.0(postcss@8.4.33):
resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==}
engines: {node: '>=18.0'}
peerDependencies:
postcss: ^8.4.31
dependencies:
postcss: 8.4.32
postcss: 8.4.33
dev: true
/postcss-selector-parser@6.0.13:
@ -4745,7 +4755,7 @@ packages:
debug: 4.3.4
fast-diff: 1.3.0
lodash.sortedlastindex: 4.1.0
postcss: 8.4.32
postcss: 8.4.31
stylus: 0.57.0
transitivePeerDependencies:
- supports-color
@ -4755,8 +4765,17 @@ packages:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
dev: true
/postcss@8.4.32:
resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==}
/postcss@8.4.31:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.6
picocolors: 1.0.0
source-map-js: 1.0.2
dev: true
/postcss@8.4.33:
resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
@ -5026,7 +5045,7 @@ packages:
css-background-parser: 0.1.0
css-box-shadow: 1.0.0-3
css-to-react-native: 3.2.0
emoji-regex: 10.3.0
emoji-regex: 10.2.1
escape-html: 1.0.3
linebreak: 1.1.0
parse-css-color: 0.2.1
@ -5128,20 +5147,20 @@ packages:
engines: {node: '>=8'}
dev: true
/shikiji-core@0.9.15:
resolution: {integrity: sha512-7hqIcUKS15OMs/61Qp2GvO1fSajBB36bDqi8vexIg5kp80V6v6SGtBrlq+nLlo7erMG2d1kvIuTIq1bwKI6fEg==}
/shikiji-core@0.9.17:
resolution: {integrity: sha512-r1FWTXk6SO2aYqfWgcsJ11MuVQ1ymPSdXzJjK7q8EXuyqu8yc2N5qrQy5+BL6gTVOaF4yLjbxFjF+KTRM1Sp8Q==}
dev: true
/shikiji-transformers@0.9.15:
resolution: {integrity: sha512-k0sQ6tX26/cdb8QV9CCwwr7QjRp6/AVP9C0oNIXNld3of+xCrpf74kD74piybG6vMfzBoHGsz/s60RVBJOUaYQ==}
/shikiji-transformers@0.9.17:
resolution: {integrity: sha512-2CCG9qSLS6Bn/jbeUTEuvC6YSuP8gm8VyX5VjmCvDKyCPGhlLJbH1k/kg9wfRt7cJqpYjhdMDgT5rkdYrOZnsA==}
dependencies:
shikiji: 0.9.15
shikiji: 0.9.17
dev: true
/shikiji@0.9.15:
resolution: {integrity: sha512-+inN4cN+nY7b0uCPOiqFHAk+cn2DEdM3AIQgPhAV7QKqhww/o7OGS5xvLh3SNnjke9C/HispALqGOQGYHVq7KQ==}
/shikiji@0.9.17:
resolution: {integrity: sha512-0z/1NfkhBkm3ijrfFeHg3G9yDNuHhXdAGbQm7tRxj4WQ5z2y0XDbnagFyKyuV2ebCTS1Mwy1I3n0Fzcc/4xdmw==}
dependencies:
shikiji-core: 0.9.15
shikiji-core: 0.9.17
dev: true
/side-channel@1.0.4:
@ -5392,9 +5411,9 @@ packages:
engines: {node: '>=18.12.0'}
hasBin: true
dependencies:
'@csstools/css-parser-algorithms': 2.4.0(@csstools/css-tokenizer@2.2.2)
'@csstools/css-tokenizer': 2.2.2
'@csstools/media-query-list-parser': 2.1.6(@csstools/css-parser-algorithms@2.4.0)(@csstools/css-tokenizer@2.2.2)
'@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
'@csstools/css-tokenizer': 2.2.3
'@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
'@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.13)
balanced-match: 2.0.0
colord: 2.9.3
@ -5414,13 +5433,13 @@ packages:
is-plain-object: 5.0.0
known-css-properties: 0.29.0
mathml-tag-names: 2.1.3
meow: 13.0.0
meow: 13.1.0
micromatch: 4.0.5
normalize-path: 3.0.0
picocolors: 1.0.0
postcss: 8.4.32
postcss: 8.4.33
postcss-resolve-nested-selector: 0.1.1
postcss-safe-parser: 7.0.0(postcss@8.4.32)
postcss-safe-parser: 7.0.0(postcss@8.4.33)
postcss-selector-parser: 6.0.13
postcss-value-parser: 4.2.0
resolve-from: 5.0.0
@ -5453,7 +5472,7 @@ packages:
resolution: {integrity: sha512-v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==}
hasBin: true
dependencies:
'@adobe/css-tools': 4.3.2
'@adobe/css-tools': 4.3.1
debug: 4.3.4
glob: 7.2.3
sax: 1.3.0
@ -5731,7 +5750,7 @@ packages:
engines: {node: '>= 0.8'}
dev: true
/vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@5.0.10):
/vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@5.0.0):
resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==}
peerDependencies:
eslint: '>=7'
@ -5741,11 +5760,11 @@ packages:
'@types/eslint': 8.44.2
eslint: 8.56.0
rollup: 2.79.1
vite: 5.0.10(@types/node@20.10.6)(stylus@0.62.0)
vite: 5.0.0(@types/node@20.10.6)(stylus@0.62.0)
dev: true
/vite@5.0.10(@types/node@20.10.6)(stylus@0.62.0):
resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==}
/vite@5.0.0(@types/node@20.10.6)(stylus@0.62.0):
resolution: {integrity: sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@ -5774,7 +5793,44 @@ packages:
dependencies:
'@types/node': 20.10.6
esbuild: 0.19.5
postcss: 8.4.32
postcss: 8.4.31
rollup: 4.5.0
stylus: 0.62.0
optionalDependencies:
fsevents: 2.3.3
dev: true
/vite@5.0.11(@types/node@20.10.6)(stylus@0.62.0):
resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || >=20.0.0
less: '*'
lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
dependencies:
'@types/node': 20.10.6
esbuild: 0.19.5
postcss: 8.4.33
rollup: 4.5.0
stylus: 0.62.0
optionalDependencies:
@ -5787,11 +5843,11 @@ packages:
vitepress: ^1.0.0-rc.27
vue: ^3.3.8
dependencies:
vitepress: 1.0.0-rc.34(@algolia/client-search@4.20.0)(@types/node@20.10.6)(axios@1.6.3)(postcss@8.4.32)(search-insights@2.8.2)(stylus@0.62.0)(typescript@5.2.2)
vitepress: 1.0.0-rc.34(@algolia/client-search@4.20.0)(@types/node@20.10.6)(axios@1.6.3)(postcss@8.4.31)(search-insights@2.8.2)(stylus@0.62.0)(typescript@5.2.2)
vue: 3.4.3(typescript@5.2.2)
dev: true
/vitepress@1.0.0-rc.34(@algolia/client-search@4.20.0)(@types/node@20.10.6)(axios@1.6.3)(postcss@8.4.32)(search-insights@2.8.2)(stylus@0.62.0)(typescript@5.2.2):
/vitepress@1.0.0-rc.34(@algolia/client-search@4.20.0)(@types/node@20.10.6)(axios@1.6.3)(postcss@8.4.31)(search-insights@2.8.2)(stylus@0.62.0)(typescript@5.2.2):
resolution: {integrity: sha512-TUbTiSdAZFni2XlHlpx61KikgkQ5uG4Wtmw2R0SXhIOG6qGqzDJczAFjkMc4i45I9c3KyatwOYe8oEfCnzVYwQ==}
hasBin: true
peerDependencies:
@ -5806,7 +5862,7 @@ packages:
'@docsearch/css': 3.5.2
'@docsearch/js': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.8.2)
'@types/markdown-it': 13.0.7
'@vitejs/plugin-vue': 5.0.2(vite@5.0.10)(vue@3.4.3)
'@vitejs/plugin-vue': 5.0.2(vite@5.0.11)(vue@3.4.3)
'@vue/devtools-api': 6.5.1
'@vueuse/core': 10.7.1(vue@3.4.3)
'@vueuse/integrations': 10.7.1(axios@1.6.3)(focus-trap@7.5.4)(vue@3.4.3)
@ -5814,11 +5870,11 @@ packages:
mark.js: 8.11.1
minisearch: 6.3.0
mrmime: 2.0.0
postcss: 8.4.32
shikiji: 0.9.15
shikiji-core: 0.9.15
shikiji-transformers: 0.9.15
vite: 5.0.10(@types/node@20.10.6)(stylus@0.62.0)
postcss: 8.4.31
shikiji: 0.9.17
shikiji-core: 0.9.17
shikiji-transformers: 0.9.17
vite: 5.0.11(@types/node@20.10.6)(stylus@0.62.0)
vue: 3.4.3(typescript@5.2.2)
transitivePeerDependencies:
- '@algolia/client-search'

View File

@ -69,8 +69,8 @@ function defaultSidebar(): DefaultTheme.SidebarItem[] {
link: '/docs/faq/settings',
},
{
text: 'Android 11+',
link: '/docs/faq/android-11+',
text: 'Storage',
link: '/docs/faq/storage',
},
],
},

View File

@ -1,6 +1,5 @@
const iconMappings = {
alertDecagramOutline: '<svg originalIcon="alertDecagramOutline" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23,12L20.56,14.78L20.9,18.46L17.29,19.28L15.4,22.46L12,21L8.6,22.47L6.71,19.29L3.1,18.47L3.44,14.78L1,12L3.44,9.21L3.1,5.53L6.71,4.72L8.6,1.54L12,3L15.4,1.54L17.29,4.72L20.9,5.54L20.56,9.22L23,12M20.33,12L18.5,9.89L18.74,7.1L16,6.5L14.58,4.07L12,5.18L9.42,4.07L8,6.5L5.26,7.09L5.5,9.88L3.67,12L5.5,14.1L5.26,16.9L8,17.5L9.42,19.93L12,18.81L14.58,19.92L16,17.5L18.74,16.89L18.5,14.1L20.33,12M11,15H13V17H11V15M11,7H13V13H11V7" /></svg>',
backupRestore: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z" /></svg>',
bookmarkBoxOutline: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 20H18V22H4C2.9 22 2 21.1 2 20V6H4V20M22 4V16C22 17.1 21.1 18 20 18H8C6.9 18 6 17.1 6 16V4C6 2.9 6.9 2 8 2H20C21.1 2 22 2.9 22 4M20 4H8V16H20V4M18 6H13V13L15.5 11.5L18 13V6Z" /></svg>',
bookOpenOutline: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21,4H3A2,2 0 0,0 1,6V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V6A2,2 0 0,0 21,4M3,19V6H11V19H3M21,19H13V6H21V19M14,9.5H20V11H14V9.5M14,12H20V13.5H14V12M14,14.5H20V16H14V14.5Z" /></svg>',
cloudOffOutline: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19.8 22.6L17.15 20H6.5Q4.2 20 2.6 18.4T1 14.5Q1 12.58 2.19 11.08 3.38 9.57 5.25 9.15 5.33 8.95 5.4 8.76 5.5 8.57 5.55 8.35L1.4 4.2L2.8 2.8L21.2 21.2M6.5 18H15.15L7.1 9.95Q7.05 10.23 7.03 10.5 7 10.73 7 11H6.5Q5.05 11 4.03 12.03 3 13.05 3 14.5 3 15.95 4.03 17 5.05 18 6.5 18M11.13 14M21.6 18.75L20.15 17.35Q20.58 17 20.79 16.54 21 16.08 21 15.5 21 14.45 20.27 13.73 19.55 13 18.5 13H17V11Q17 8.93 15.54 7.46 14.08 6 12 6 11.33 6 10.7 6.16 10.07 6.33 9.5 6.68L8.05 5.23Q8.93 4.63 9.91 4.31 10.9 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 16.5 22.63 17.31 22.25 18.15 21.6 18.75M14.83 12.03Z" /></svg>',
@ -17,6 +16,7 @@ const iconMappings = {
paletteOutline: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2C17.5,2 22,6 22,11A6,6 0 0,1 16,17H14.2C13.9,17 13.7,17.2 13.7,17.5C13.7,17.6 13.8,17.7 13.8,17.8C14.2,18.3 14.4,18.9 14.4,19.5C14.5,20.9 13.4,22 12,22M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C12.3,20 12.5,19.8 12.5,19.5C12.5,19.3 12.4,19.2 12.4,19.1C12,18.6 11.8,18.1 11.8,17.5C11.8,16.1 12.9,15 14.3,15H16A4,4 0 0,0 20,11C20,7.1 16.4,4 12,4M6.5,10C7.3,10 8,10.7 8,11.5C8,12.3 7.3,13 6.5,13C5.7,13 5,12.3 5,11.5C5,10.7 5.7,10 6.5,10M9.5,6C10.3,6 11,6.7 11,7.5C11,8.3 10.3,9 9.5,9C8.7,9 8,8.3 8,7.5C8,6.7 8.7,6 9.5,6M14.5,6C15.3,6 16,6.7 16,7.5C16,8.3 15.3,9 14.5,9C13.7,9 13,8.3 13,7.5C13,6.7 13.7,6 14.5,6M17.5,10C18.3,10 19,10.7 19,11.5C19,12.3 18.3,13 17.5,13C16.7,13 16,12.3 16,11.5C16,10.7 16.7,10 17.5,10Z" /></svg>',
queryStats: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path d="m105-233-65-47 200-320 120 140 160-260 109 163q-23 1-43.5 5.5T545-539l-22-33-152 247-121-141-145 233ZM863-40 738-165q-20 14-44.5 21t-50.5 7q-75 0-127.5-52.5T463-317q0-75 52.5-127.5T643-497q75 0 127.5 52.5T823-317q0 26-7 50.5T795-221L920-97l-57 57ZM643-217q42 0 71-29t29-71q0-42-29-71t-71-29q-42 0-71 29t-29 71q0 42 29 71t71 29Zm89-320q-19-8-39.5-13t-42.5-6l205-324 65 47-188 296Z"/></svg>',
security: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,12H19C18.47,16.11 15.72,19.78 12,20.92V12H5V6.3L12,3.19M12,1L3,5V11C3,16.55 6.84,21.73 12,23C17.16,21.73 21,16.55 21,11V5L12,1Z" /></svg>',
storage: '<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M120-160v-160h720v160H120Zm80-40h80v-80h-80v80Zm-80-440v-160h720v160H120Zm80-40h80v-80h-80v80Zm-80 280v-160h720v160H120Zm80-40h80v-80h-80v80Z"/></svg>',
sync: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,18A6,6 0 0,1 6,12C6,11 6.25,10.03 6.7,9.2L5.24,7.74C4.46,8.97 4,10.43 4,12A8,8 0 0,0 12,20V23L16,19L12,15M12,4V1L8,5L12,9V6A6,6 0 0,1 18,12C18,13 17.75,13.97 17.3,14.8L18.76,16.26C19.54,15.03 20,13.57 20,12A8,8 0 0,0 12,4Z" /></svg>',
}
@ -45,7 +45,7 @@ const navigationMappings: Record<string, Navigation> = {
'download-queue': { name: 'Download queue', icon: iconMappings.downloadOutline, dependsOn: 'main_more' },
'categories': { name: 'Categories', icon: iconMappings.labelOutline, dependsOn: 'main_more' },
'statistics': { name: 'Statistics', icon: iconMappings.queryStats, dependsOn: 'main_more' },
'backup-and-restore': { name: 'Backup and restore', icon: iconMappings.backupRestore, dependsOn: 'main_more' },
'data-and-storage': { name: 'Data and storage', icon: iconMappings.storage, dependsOn: 'main_more' },
'settings': { name: 'Settings', icon: iconMappings.cog, dependsOn: 'main_more' },
'about': { name: 'About', icon: iconMappings.informationOutline, dependsOn: 'main_more' },
'help': { name: 'Help', icon: iconMappings.helpCircleOutline, dependsOn: 'main_more' },

View File

@ -1,33 +0,0 @@
---
title: Android 11+
titleTemplate: Frequently Asked Questions
description: Understanding Android 11 Changes.
---
# Android 11+
Understanding **Android 11** Changes.
## Android 11 modifications
**Android 11** introduced changes related to [Scoped Storage](https://developer.android.com/about/versions/11/privacy/storage), which was initially introduced in **Android 5.0 Lollipop**.
However, the enforcement of **Scoped Storage** was initiated by **Google** with **Android 11**.
Different smartphone manufacturers implement **Scoped Storage** with varying levels of success, resulting in varying user experiences.
Some encounter minimal issues, while others using different phone brands face numerous challenges.
## Implications for Tachiyomi
**Scoped Storage**'s introduction affects various storage-related functions in **Tachiyomi**.
These functions may become slower due to **Scoped Storage**'s inherent latency, as discussed in detail [here](https://www.xda-developers.com/android-q-storage-access-framework-scoped-storage/).
This impact encompasses tasks like deleting chapters, library loading times, accessing folders outside data directories for downloads and reading, and more.
## Enhancing performance
For potential performance improvements, consider utilizing the following ADB command if you are comfortable with it.
```bash
adb shell cmd appops set eu.kanade.tachiyomi android:legacy_storage allow
```
This command grants general storage access to the app, enabling **Tachiyomi** to use the conventional storage access interface.
If using **Tachiyomi Preview**, or a fork, replace `eu.kanade.tachiyomi` with the corresponding package name.

View File

@ -13,6 +13,7 @@ The app's default behavior is to skip updates for entries that meet the followin
* Have unread chapters
* Haven't been initiated
* Carry a "**Completed**" status
* Isn't expected to have new chapters yet
This strategy prevents unnecessary load which may lead to sources implementing measures against **Tachiyomi**.
To manage entries with infrequent or no updates, consider using categories and excluding them from updates.

View File

@ -0,0 +1,50 @@
---
title: Storage
titleTemplate: Frequently Asked Questions
description: Understanding Storage Permissions.
---
# Storage location
Tachiyomi manages several things within a selected storage location, including automatic backups, chapter downloads, and the Local source.
The following illustrates the folder structure:
```txt
[your selected storage location]/
|- autobackup/
|- eu.kanade.tachiyomi_yyyy-mm-dd_hh-mm.tachibk
|- ...
|- downloads/
|- Source name (LANG)
|- Title
|- Chapter01.cbz
|- ...
|- Other title
|- Chapter01.cbz
|- ...
|- local/
|- Title
|- Chapter01.cbz
|- ...
|- Other title
|- Chapter01.cbz
|- ...
```
Backup file name prefixes are unique for the app to avoid potential collisions between forks.
## Migrating from v0.14.x or ealier
If you were using the default locations before, then simply select the existing `Tachiyomi` folder.
If were using non-standard downloads folder, you may want to either choose the parent folder (if applicable; avoid choosing the root of your storage) or move your downloads to a new location.
# Scoped Storage
Since Android 11, most apps are enforced to use [Scoped Storage](https://developer.android.com/about/versions/11/privacy/storage) for better security for users so that apps cannot read everything on the device.
**Scoped Storage**'s introduction affects various storage-related functions in **Tachiyomi**.
These functions may become slower due to **Scoped Storage**'s inherent latency, as discussed in detail [here](https://www.xda-developers.com/android-q-storage-access-framework-scoped-storage/).
This can impact tasks like deleting chapters, library loading times, accessing local files like downloads or the local source, and more.

View File

@ -9,7 +9,7 @@ description: Backups helps you prevent losing your library if something happens.
Backups in **Tachiyomi** are compatible between different versions of the app.
::: tip How to create a backup
1. Go to <nav to="backup-and-restore">.
1. Go to <nav to="data-and-storage">.
1. Select **Create backup** and choose a location to save it.
![Backup and Restore](/docs/guides/backups/backup.light.webp#light =414x215)
@ -28,14 +28,15 @@ Backups in **Tachiyomi** are compatible between different versions of the app.
- **Series information**
- Author, Artist, Date Added to Library, Selected Viewer, Read Duration, etc.
- **Extensions** used
- **Settings** including app settings and source-specific settings
### What's NOT included in a backup?
- **Reading history** of titles NOT in library
- **Settings** including app settings and extension-specific settings
- **Downloaded** chapters including [local source](/docs/guides/local-source/) chapters
- **Custom covers**
## Restoring a backup
Restoring a backup can be done through the Backup and Restore settings.
Restoring a backup can be done through the "Data and storage" settings.
To ensure a smooth restoration process, remember to:
@ -54,7 +55,7 @@ by correctly specifying the Download Location.
It is highly recommended to enable automatic backups to ensure you can recover in case of any issues.
::: tip How to enable automatic backups
1. Go to <nav to="backup-and-restore">.
1. Go to <nav to="data-and-storage">.
1. Set a **backup frequency** to schedule automatic backups.
This way, you can recover from catastrophic failures.
@ -81,7 +82,7 @@ or [Tasker](https://play.google.com/store/apps/details?id=net.dinglisch.android.
This section explores some extra details regarding [forks](/forks/).
:::
All [endorsed Tachiyomi forks](/forks/) support the `.proto.gz` format to backup/restore your library.
All [endorsed Tachiyomi forks](/forks/) support the `.tachibk`/`.proto.gz` format to backup/restore your library.
In addition, some forks have specific limitations regarding backup restoration:
@ -94,7 +95,7 @@ In addition, some forks have specific limitations regarding backup restoration:
> For Example: [TachiyomiSY](/forks/TachiyomiSY/) has the option to backup/restore saved searches.
These will **NOT** be restored to original Tachiyomi or its forks.
- Only [TachiyomiAZ](/forks/TachiyomiAZ/) supports creating/restoring both legacy `.json` backups and current `.proto.gz` backups.
> Users are recommended to update their `.json` backups to use the improved and efficient `.proto.gz` backups.
- Only [TachiyomiAZ](/forks/TachiyomiAZ/) supports creating/restoring both legacy `.json` backups and `.proto.gz` backups.
> Users are recommended to update their `.json` backups to use the improved and efficient `.tachibk`/`.proto.gz` backups.
Be aware of these limitations when dealing with backups in different **Tachiyomi** forks.

View File

@ -14,12 +14,10 @@ This page explores some advanced features.
## Creating local series
1. Create a folder named `local` in the `/Tachiyomi/` folder.
> The `/Tachiyomi/` folder is located in the root of phone's **internal storage** or **external SD card** and it's **not related** to the `eu.kanade.tachiyomi/` folder or the download location in the settings.
1. Place correctly structured series inside `/Tachiyomi/local/`.
1. In the location you specified as your storage location (e.g., `/Tachiyomi/`), there should be a `local` folder. Place correctly structured series inside that (e.g. `/Tachiyomi/local/`).
> If adding series in folders it is recommended to add a file named `.nomedia` to the local folder so images do not show up in the gallery.
1. You should now be able to access the series in <nav to="sources"> under **Local source**.
If you add more chapters then you'll have to manually refresh the chapter list (by pulling down the list).
@ -29,66 +27,20 @@ But expect better performance with directories and `ZIP`/`CBZ`.
Note that a single folder or archive file is treated as a single chapter. For example, Tachiyomi will not automatically split an `EPUB` file containing multiple chapters into separate chapters within the app.
Remember to give the app storage permissions on **Android 6** and newer.
### Folder structure
Tachiyomi requires a specific folder structure for local series to be correctly processed.
Local series will be read from the `Tachiyomi/local` folder.
Local series will be read from the `local` folder.
Each series must have a `Series` folder and a `Chapter` folder.
Images will then go into the chapter folder.
See below for more information on archive files.
You can refer to the following example:
#### Example {#example-storages}
:::tabs
== Device Storage
:::info Example
<div class="tree">
<ul>
<img src="/img/folder.svg" alt="Folder" class="tree-icon icon-folder">
<span class="folder root">/sdcard/Tachiyomi/local</span>
<li>
<img src="/img/folder.svg" alt="Folder" class="tree-icon icon-folder">
<span class="folder main">[the series title]</span>
<ul>
<li>
<img src="/img/jpeg.svg" alt="File" class="tree-icon icon-jpeg">
<span class="file jpg">cover<span class="file-extension">.jpg</span></span>
</li>
<li>
<img src="/img/folder.svg" alt="Folder" class="tree-icon icon-folder">
<span class="folder">chapter_1</span>
<ul>
<li><span class="file">image_1<span class="file-extension">.ext</span></span></li>
<li><span class="file">image_n<span class="file-extension">.ext</span></span></li>
</ul>
</li>
<li>
<img src="/img/folder.svg" alt="Folder" class="tree-icon icon-folder">
<span class="folder">chapter_2</span>
<ul>
<li><span class="file">image_1<span class="file-extension">.ext</span></span></li>
<li><span class="file">image_n<span class="file-extension">.ext</span></span></li>
</ul>
</li>
<li>
<img src="/img/folder.svg" alt="Folder" class="tree-icon icon-folder">
<span class="folder">chapter_n</span>
<ul>
<li><span class="file">image_1<span class="file-extension">.ext</span></span></li>
<li><span class="file">image_n<span class="file-extension">.ext</span></span></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
== SD Card
<div class="tree">
<ul>
<img src="/img/folder.svg" alt="Folder" class="tree-icon icon-folder">
<span class="folder root">/storage/18F5-2C11/Tachiyomi/local</span>
<span class="folder root">[your storage location]/local</span>
<li>
<img src="/img/folder.svg" alt="Folder" class="tree-icon icon-folder">
<span class="folder main">[the series title]</span>
@ -127,7 +79,7 @@ You can refer to the following example:
</div>
:::
Tachiyomi will see four chapters in a single series.
Tachiyomi will see three chapters in a single series.
The path to the folder with images must contain both the series title and the chapter name (as seen above).
### Archive files
@ -144,7 +96,7 @@ All images inside the archive regardless of folder structure will become pages f
<div class="tree">
<ul>
<img src="/img/folder.svg" alt="Folder" class="tree-icon icon-folder">
<span class="folder root">/sdcard/Tachiyomi/local</span>
<span class="folder root">[your storage location]]/local</span>
<li>
<img src="/img/folder.svg" alt="Folder" class="tree-icon icon-folder">
<span class="folder main">[the series title]</span>

View File

@ -15,17 +15,17 @@ This section relates to the reading experience in the app and navigating the rea
This setting sets the reader's default direction when you open a series.
::: tabs
== Paged (RTL)
== Paged (right to left)
Right-to-left, the default way of reading manga.
- Swipe right for next page.
- Swipe left for previous page.
== Paged (LTR)
== Paged (left to right)
Left-to-right, the default way of reading comics.
- Swipe left for next page.
- Swipe right for previous page.
== Paged (Vertical)
== Paged (vertical)
- Swipe up for next page.
- Swipe down for previous.
@ -243,21 +243,7 @@ TBA
:::
### Side padding <Badge type="info" text="None" />
::: tabs
== None
TBA
== 5%
TBA
== 10%
TBA
== 15%
TBA
== 20%
TBA
== 25%
TBA
:::
### Sensitivity for hiding menu on scroll <Badge type="info" text="Low" />

View File

@ -18,7 +18,7 @@ Here's how to tackle common challenges.
* Else, delete **Tachiyomi** downloads folder on SD card.
### Storage issues with Android 11+
See [this](/docs/faq/android-11+) section of the FAQ to learn how Scoped Storage affects **Tachiyomi** in **Android 11+** and how to fix it.
See [this](/docs/faq/storage) section of the FAQ to learn how Scoped Storage affects **Tachiyomi** in **Android 11+** and how to fix it.
### Slow loading
Sources being slow could stem from site slowness, your internet, or source-imposed rate limits/IP bans.

View File

@ -39,7 +39,7 @@ In <nav to="advanced">, try **Clear cache** and **Clear cookies**.
<nav to="download-queue">
<nav to="categories">
<nav to="statistics">
<nav to="backup-and-restore">
<nav to="data-and-storage">
<nav to="settings">
<nav to="about">
<nav to="help">
@ -62,7 +62,7 @@ In <nav to="advanced">, try **Clear cache** and **Clear cookies**.
- <nav to="download-queue">
- <nav to="categories">
- <nav to="statistics">
- <nav to="backup-and-restore">
- <nav to="data-and-storage">
- <nav to="settings">
- <nav to="about">
- <nav to="help">