From 683d49e607bc27a30bfd37e789ac03d8562f6379 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 10 Aug 2023 13:05:45 +0000 Subject: [PATCH] Reword some FAQ c854fd9e5ac2a4b59142a4844b4320144a27b640 --- 404.html | 4 ++-- assets/js/36.444658cd.js | 1 + assets/js/36.91254041.js | 1 - assets/js/{app.d1ed21e3.js => app.040e235d.js} | 6 +++--- download/index.html | 4 ++-- extensions/index.html | 4 ++-- forks/Neko/index.html | 6 +++--- forks/TachiyomiAZ/index.html | 4 ++-- forks/TachiyomiJ2K/index.html | 4 ++-- forks/TachiyomiSY/index.html | 4 ++-- forks/index.html | 4 ++-- help/contribution/index.html | 6 +++--- help/faq/index.html | 8 ++++---- help/guides/backups/index.html | 4 ++-- help/guides/categories/index.html | 4 ++-- help/guides/getting-started/index.html | 4 ++-- help/guides/local-manga/index.html | 4 ++-- help/guides/reader-settings/index.html | 4 ++-- help/guides/source-migration/index.html | 4 ++-- help/guides/tracking/index.html | 6 +++--- help/guides/troubleshooting/index.html | 8 ++++---- help/index.html | 4 ++-- index.html | 4 ++-- privacy/index.html | 4 ++-- sandbox/element-ui/index.html | 6 +++--- sandbox/index.html | 4 ++-- sandbox/style-guide/index.html | 6 +++--- 27 files changed, 61 insertions(+), 61 deletions(-) create mode 100644 assets/js/36.444658cd.js delete mode 100644 assets/js/36.91254041.js rename assets/js/{app.d1ed21e3.js => app.040e235d.js} (99%) diff --git a/404.html b/404.html index 365f1850d..3ca3f2ce7 100644 --- a/404.html +++ b/404.html @@ -13,11 +13,11 @@ - +
- + diff --git a/assets/js/36.444658cd.js b/assets/js/36.444658cd.js new file mode 100644 index 000000000..3fd55c521 --- /dev/null +++ b/assets/js/36.444658cd.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{548:function(e,t,a){"use strict";a.r(t);var o=a(12),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frequently-asked-questions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frequently-asked-questions"}},[e._v("#")]),e._v(" Frequently Asked Questions")]),e._v(" "),t("h2",{attrs:{id:"application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application"}},[e._v("#")]),e._v(" Application")]),e._v(" "),t("h3",{attrs:{id:"general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("h4",{attrs:{id:"will-there-be-an-ios-version"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#will-there-be-an-ios-version"}},[e._v("#")]),e._v(" Will there be an iOS version?")]),e._v(" "),t("p",[e._v("No. There is no iOS version and there are no plans for one.")]),e._v(" "),t("p",[e._v("Any app in the App Store that shares a name, logo, or similar design with Tachiyomi is not affiliated with this project.")]),e._v(" "),t("h4",{attrs:{id:"will-tachiyomi-ever-be-on-the-google-play-store"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#will-tachiyomi-ever-be-on-the-google-play-store"}},[e._v("#")]),e._v(" Will Tachiyomi ever be on the Google Play Store?")]),e._v(" "),t("p",[e._v("Google Play's policies would not allow the APK-based extension system nor some of the sources' content.")]),e._v(" "),t("p",[e._v("Any app on the Play Store that shares a name, logo, or similar design with Tachiyomi is not affiliated with this project. To report copycats on the Play Store, you can fill out "),t("a",{attrs:{href:"https://support.google.com/googleplay/android-developer/contact/takedown",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),t("OutboundLink")],1),e._v(" following "),t("a",{attrs:{href:"https://pastebin.com/08eeuJxH",target:"_blank",rel:"noopener noreferrer"}},[e._v("these steps"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-migrate-from-the-f-droid-version"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-migrate-from-the-f-droid-version"}},[e._v("#")]),e._v(" How do I migrate from the F-Droid version?")]),e._v(" "),t("p",[e._v("Tachiyomi on F-Droid is not officially supported, so updates are not guaranteed. If you want to migrate to the official builds:")]),e._v(" "),t("ol",[t("li",[e._v("Create a "),t("RouterLink",{attrs:{to:"/help/guides/backups/"}},[e._v("backup")]),e._v(".")],1),e._v(" "),t("li",[e._v("Uninstall the F-Droid version (do not keep any app data if it allows you to).")]),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/download/"}},[e._v("Download")]),e._v(" and install the official version of Tachiyomi.")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/help/guides/backups/#how-do-i-restore-a-backup"}},[e._v("Restore")]),e._v(" your backup.")],1)]),e._v(" "),t("p",[e._v("We have no intention to host our own F-Droid repo since Tachiyomi already manages updates by itself, making the usage of F-Droid redundant. For more detailed info, refer to "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi/issues/6736#issuecomment-1059608058",target:"_blank",rel:"noopener noreferrer"}},[e._v("this GitHub comment"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"can-tachiyomi-read-light-novels-or-stream-anime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-tachiyomi-read-light-novels-or-stream-anime"}},[e._v("#")]),e._v(" Can Tachiyomi read light novels or stream anime?")]),e._v(" "),t("p",[e._v("No, Tachiyomi is focused on delivering a great manga experience.")]),e._v(" "),t("h4",{attrs:{id:"can-tachiyomi-sync-between-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-tachiyomi-sync-between-devices"}},[e._v("#")]),e._v(" Can Tachiyomi sync between devices?")]),e._v(" "),t("p",[e._v("No, but you can use the backup and restore feature to save and load data between devices.")]),e._v(" "),t("h3",{attrs:{id:"library"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#library"}},[e._v("#")]),e._v(" Library")]),e._v(" "),t("h4",{attrs:{id:"how-can-i-see-how-many-chapters-i-have-downloaded"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-can-i-see-how-many-chapters-i-have-downloaded"}},[e._v("#")]),e._v(" How can I see how many chapters I have downloaded?")]),e._v(" "),t("p",[e._v("Enable badges by going to "),t("NavigationText",{attrs:{item:"library"}}),e._v(" → "),t("NavigationText",{attrs:{item:"filter"}}),e._v(" → "),t("strong",[e._v("Display")]),e._v(" tab and then checking "),t("strong",[e._v("Download badges")]),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"why-does-global-update-skip-some-entries"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-does-global-update-skip-some-entries"}},[e._v("#")]),e._v(" Why does global update skip some entries?")]),e._v(" "),t("p",[e._v("By default, the app does not check for updates if an entry:")]),e._v(" "),t("ul",[t("li",[e._v("Has unread chapters")]),e._v(" "),t("li",[e._v("Hasn't been started")]),e._v(" "),t("li",[e._v('Has "Completed" status')])]),e._v(" "),t("p",[e._v("This avoids unnecessary heavy traffic to sources. If you have entries that get infrequent or no updates, you should consider using categories and excluding them from updates.")]),e._v(" "),t("p",[e._v("We recommend to "),t("strong",[e._v("keep the defaults as they are")]),e._v(" to help ensure that sources continue to work. To get updates:")]),e._v(" "),t("ul",[t("li",[e._v("Mark unread chapters as read")]),e._v(" "),t("li",[e._v("Ensure that at least 1 chapter is marked read")]),e._v(" "),t("li",[e._v('If an entry is incorrectly marked as "Completed", report it '),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("on GitHub"),t("OutboundLink")],1),e._v(" so that the source can be fixed")])]),e._v(" "),t("p",[e._v("If you don't want to see the skipped items notification, you can disable it at "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_general"}}),e._v(" → "),t("strong",[e._v("Manage notifications")]),e._v(" (Android 8+).")],1),e._v(" "),t("h4",{attrs:{id:"why-does-the-app-warn-about-large-bulk-updates-and-downloads"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-does-the-app-warn-about-large-bulk-updates-and-downloads"}},[e._v("#")]),e._v(" Why does the app warn about large bulk updates and downloads?")]),e._v(" "),t("p",[e._v("Excessive server queries and unnecessary site interaction may cause sources to employ anti-Tachiyomi tactics. Also refer to the above question. Long running update checks and downloading may also negatively impact your battery life.")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("Tips to reduce server load")]),t("p",[e._v("As mentioned above, it is "),t("strong",[e._v("recommended to keep the defaults as they are")]),e._v(", but if you are still seeing this warning message, try the following suggestions:")]),e._v(" "),t("ul",[t("li",[e._v("Use categories (Reading, Plan to read and Completed, or anything else that segments your library).")]),e._v(" "),t("li",[e._v("Update only the Reading category by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_library"}}),e._v(" → "),t("strong",[e._v("Global update")]),e._v(" then tap "),t("strong",[e._v("Categories")]),e._v(".")],1),e._v(" "),t("li",[e._v("If the warning message still occurs, split your reading category down further by seperating entries in your library that are infrequently updated (such as monthly series or series that are on haitus) into a new category, then set global update to only update your more frequently updated reading category")])])]),t("h4",{attrs:{id:"how-do-i-ignore-duplicate-chapters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-ignore-duplicate-chapters"}},[e._v("#")]),e._v(" How do I ignore duplicate chapters?")]),e._v(" "),t("p",[e._v("Sometimes, you find a manga that is translated by more than one group. Because of this, you get multiple releases for each chapter in the manga. There are several ways to skip the duplicate chapters:")]),e._v(" "),t("ul",[t("li",[e._v("Enable "),t("strong",[e._v("Skip duplicate chapters")]),e._v(" under "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_reader"}}),e._v(" → "),t("strong",[e._v("Reading")]),e._v(".")],1),e._v(" "),t("li",[e._v("Bookmark or mark as read the unwanted chapters, then tap on "),t("NavigationText",{attrs:{item:"filter"}}),e._v(" → "),t("strong",[e._v("Filter")]),e._v(" and double-tap "),t("strong",[e._v("Bookmarked")]),e._v(" or single-tap "),t("strong",[e._v("Unread")]),e._v(", respectively. This will hide any bookmarked or read chapters and skip them as you read along, as long as you have "),t("strong",[e._v("Skip filtered chapters")]),e._v(" enabled under "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_reader"}}),e._v(" → "),t("strong",[e._v("Reading")]),e._v(".")],1),e._v(" "),t("li",[e._v("Migrate to another source that does not have duplicates. For more information on how to migrate a manga, see the "),t("RouterLink",{attrs:{to:"/help/guides/source-migration/"}},[e._v("migration guide")]),e._v(".")],1)]),e._v(" "),t("h4",{attrs:{id:"why-are-some-cover-thumbnails-corrupted-white-showing-a-broken-page-or-wrong"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-are-some-cover-thumbnails-corrupted-white-showing-a-broken-page-or-wrong"}},[e._v("#")]),e._v(" Why are some cover thumbnails corrupted, white, showing a broken page, or wrong?")]),e._v(" "),t("p",[e._v("The thumbnail download likely did not complete correctly. To fix this, refresh covers in settings.")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("GUIDE")]),t("p",[e._v("Refresh your covers by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_advanced"}}),e._v(" then pressing "),t("strong",[e._v("Refresh library manga covers")]),e._v(".")],1)]),t("h4",{attrs:{id:"why-have-some-manga-chapters-been-marked-as-unread-when-i-have-not-touched-them"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-have-some-manga-chapters-been-marked-as-unread-when-i-have-not-touched-them"}},[e._v("#")]),e._v(" Why have some manga chapters been marked as unread when I have not touched them?")]),e._v(" "),t("p",[e._v("The URLs of the manga chapters have changed, so Tachiyomi detects the chapter(s) as new chapters.")]),e._v(" "),t("h3",{attrs:{id:"browse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#browse"}},[e._v("#")]),e._v(" Browse")]),e._v(" "),t("h4",{attrs:{id:"why-can-i-not-see-sources-that-i-have-installed"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-can-i-not-see-sources-that-i-have-installed"}},[e._v("#")]),e._v(" Why can I not see sources that I have installed?")]),e._v(" "),t("h5",{attrs:{id:"if-it-is-an-extension-that-is-not-the-same-language-as-your-device-s-primary-language"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#if-it-is-an-extension-that-is-not-the-same-language-as-your-device-s-primary-language"}},[e._v("#")]),e._v(" If it is an extension that is not the same language as your device's primary language")]),e._v(" "),t("p",[e._v("Enable the language of the source by going to "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → Sources tab → "),t("NavigationText",{attrs:{item:"language"}}),e._v(" → Turn on the language of the source you would like to use.")],1),e._v(" "),t("h5",{attrs:{id:"if-it-is-an-nsfw-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#if-it-is-an-nsfw-extension"}},[e._v("#")]),e._v(" If it is an NSFW extension")]),e._v(" "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → Check show in sources list.\n"),t("h4",{attrs:{id:"how-do-i-find-a-manga-i-am-looking-for"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-find-a-manga-i-am-looking-for"}},[e._v("#")]),e._v(" How do I find a manga I am looking for?")]),e._v(" "),t("p",[e._v("Sometimes you can struggle to find a source that has the manga you are looking to read. Here are some tips to help you find it:")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("Tips to find your manga")]),t("ol",[t("li",[e._v("Look up the manga on "),t("a",{attrs:{href:"https://google.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Google"),t("OutboundLink")],1),e._v(" or a manga database such as "),t("a",{attrs:{href:"https://www.mangaupdates.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MangaUpdates"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("See if the manga has any alternate spellings or other title variations. Try searching again in your sources with the alternate titles you found.")]),e._v(" "),t("li",[e._v("If you still cannot find the manga in any of your sources, then try to search for an extension for the website you found in step 1 in the "),t("RouterLink",{attrs:{to:"/extensions/"}},[e._v("extensions")]),e._v(" list.")],1)]),e._v(" "),t("h4",{attrs:{id:"if-you-find-the-manga-on-a-specific-scanlator-or-aggregator-and-they-do-have-an-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#if-you-find-the-manga-on-a-specific-scanlator-or-aggregator-and-they-do-have-an-extension"}},[e._v("#")]),e._v(" If you find the manga on a specific scanlator or aggregator and they do have an extension")]),e._v(" "),t("p",[e._v("Download the corresponding extension, tap on it under "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("strong",[e._v("Sources")]),e._v(", and then search for the manga there.")],1),e._v(" "),t("h4",{attrs:{id:"if-you-find-the-manga-on-a-specific-scanlator-or-aggregator-and-they-do-not-have-an-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#if-you-find-the-manga-on-a-specific-scanlator-or-aggregator-and-they-do-not-have-an-extension"}},[e._v("#")]),e._v(" If you find the manga on a specific scanlator or aggregator and they do not have an extension")]),e._v(" "),t("p",[e._v("Check if adding the site as an extension has "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("already been requested"),t("OutboundLink")],1),e._v(" and that it is not on the list of extensions that will not be added back "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/3475",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". If it has not been requested and it is not on the list, you can "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/new/choose",target:"_blank",rel:"noopener noreferrer"}},[e._v("request it here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("If the scanlator or aggregator does not have an online manga reader, you can download the manga from their website and set up the series as a "),t("RouterLink",{attrs:{to:"/help/guides/local-manga/"}},[e._v("local manga")]),e._v(".")],1)]),t("h3",{attrs:{id:"reader"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reader"}},[e._v("#")]),e._v(" Reader")]),e._v(" "),t("h4",{attrs:{id:"why-are-some-images-not-displayed"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-are-some-images-not-displayed"}},[e._v("#")]),e._v(" Why are some images not displayed?")]),e._v(" "),t("p",[e._v("Aside from network issues, sometimes Tachiyomi does not register the image as existing, exit and re-enter the reader to fix this.")]),e._v(" "),t("h4",{attrs:{id:"will-there-ever-be-a-dual-page-reader-option"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#will-there-ever-be-a-dual-page-reader-option"}},[e._v("#")]),e._v(" Will there ever be a dual-page reader option?")]),e._v(" "),t("p",[e._v("The logic required to make a dual-page reader automatically work along with scanlator page inconsistencies and other issues means it is unlikely to be added at this time.")]),e._v(" "),t("h4",{attrs:{id:"how-can-i-make-tachiyomi-turn-pages-with-the-volume-rocker-can-i-reverse-the-tapping-direction-can-i-change-the-tapping-zones"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-can-i-make-tachiyomi-turn-pages-with-the-volume-rocker-can-i-reverse-the-tapping-direction-can-i-change-the-tapping-zones"}},[e._v("#")]),e._v(" How can I make Tachiyomi turn pages with the volume rocker? Can I reverse the tapping direction? Can I change the tapping zones?")]),e._v(" "),t("p",[e._v("Refer to the guides section of the site "),t("RouterLink",{attrs:{to:"/help/guides/reader-settings/#navigation-layout"}},[e._v("here")]),e._v(". Refer to "),t("RouterLink",{attrs:{to:"/help/guides/reader-settings/#volume-keys"}},[e._v("here")]),e._v(" if you want to use your volume rocker to navigate pages.")],1),e._v(" "),t("h3",{attrs:{id:"downloads"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#downloads"}},[e._v("#")]),e._v(" Downloads")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-download-several-chapters-or-manga-simultaneously"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-download-several-chapters-or-manga-simultaneously"}},[e._v("#")]),e._v(" How do I download several chapters or manga simultaneously?")]),e._v(" "),t("p",[e._v("The app does not allow parallel downloads from one source to prevent IP bans caused by too many requests. We know that speed is being sacrificed, but it is better than an overall inaccessible source.")]),e._v(" "),t("p",[e._v("However, if you download several manga from different sources, the app will start downloading simultaneously from up to five different sources.")]),e._v(" "),t("h4",{attrs:{id:"why-do-my-downloads-sometimes-stop-midway-through"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-do-my-downloads-sometimes-stop-midway-through"}},[e._v("#")]),e._v(" Why do my downloads sometimes stop midway through?")]),e._v(" "),t("p",[e._v("It is likely an issue to do with your connection to your network or the source. Tachiyomi will notify you of what error it has encountered trying to download.")]),e._v(" "),t("h4",{attrs:{id:"why-aren-t-my-downloads-being-detected"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-aren-t-my-downloads-being-detected"}},[e._v("#")]),e._v(" Why aren't my downloads being detected?")]),e._v(" "),t("p",[e._v("This can happen for a variety of reasons:")]),e._v(" "),t("ul",[t("li",[e._v("The download location may be inaccessible. If you are using a SD card, make sure it's detected.")]),e._v(" "),t("li",[e._v("The source name may have changed. Change the name of the source's folder to the new name.")]),e._v(" "),t("li",[e._v("The source you downloaded the manga from may have changed the title. Change the title of the folder to the new title.")])]),e._v(" "),t("h4",{attrs:{id:"how-do-i-cancel-or-change-the-download-queue"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-cancel-or-change-the-download-queue"}},[e._v("#")]),e._v(" How do I cancel or change the download queue?")]),e._v(" "),t("p",[e._v("Go to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → Download Queue and cancel items in the queue or cancel all items by tapping on the "),t("NavigationText",{attrs:{item:"overflow"}}),e._v(" next to a manga chapter or on the top right. If you would like the change the order of the queue, tap and hold the = on the side of a item in the queue.")],1),e._v(" "),t("h4",{attrs:{id:"can-you-make-it-possible-to-store-manga-on-both-internal-storage-and-external-sd-card"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-you-make-it-possible-to-store-manga-on-both-internal-storage-and-external-sd-card"}},[e._v("#")]),e._v(" Can you make it possible to store manga on both internal storage and external SD-card?")]),e._v(" "),t("p",[e._v("At the moment, no. You could try using symlinks, but that requires having your device rooted.")]),e._v(" "),t("div",{staticClass:"note"},[t("p"),t("p",[e._v("Read more about rooting your device "),t("a",{attrs:{href:"https://www.xda-developers.com/root/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1)])]),t("p"),t("h4",{attrs:{id:"why-can-i-see-manga-pages-from-my-downloads-in-my-device-s-photo-gallery"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-can-i-see-manga-pages-from-my-downloads-in-my-device-s-photo-gallery"}},[e._v("#")]),e._v(" Why can I see manga pages from my downloads in my device's photo gallery?")]),e._v(" "),t("p",[e._v("Tachiyomi adds a "),t("code",[e._v(".nomedia")]),e._v(" file to the Downloads folder by default to prevent this from happening, but sometimes it does not work, or something goes wrong. To fix this, all you need to do is create the file yourself. Name it "),t("code",[e._v(".nomedia")]),e._v(" and place it in your downloads folder. If you have the same problem with your local manga, place the "),t("code",[e._v(".nomedia")]),e._v(" file in the local folder.")]),e._v(" "),t("h3",{attrs:{id:"local-manga"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#local-manga"}},[e._v("#")]),e._v(" Local Manga")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-import-my-downloaded-manga-into-tachiyomi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-import-my-downloaded-manga-into-tachiyomi"}},[e._v("#")]),e._v(" How do I import my downloaded manga into Tachiyomi?")]),e._v(" "),t("p",[e._v("We recommend you to read "),t("a",{attrs:{href:"/help/guides/local-manga"}},[e._v("this")]),e._v(" guide on how to do so.")]),e._v(" "),t("h4",{attrs:{id:"what-do-i-do-if-i-cannot-find-the-tachiyomi-folder"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-do-i-do-if-i-cannot-find-the-tachiyomi-folder"}},[e._v("#")]),e._v(" What do I do if I cannot find the Tachiyomi folder?")]),e._v(" "),t("p",[e._v("If you do not see the "),t("strong",[e._v("Tachiyomi")]),e._v(" folder, create one with a file manager.")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-fix-empty-blank-covers-on-my-local-manga"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-fix-empty-blank-covers-on-my-local-manga"}},[e._v("#")]),e._v(" How do I fix empty/blank covers on my local manga?")]),e._v(" "),t("p",[e._v("Sometimes some covers for local manga are not displayed. Follow these steps to fix it:")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("GUIDE")]),t("ol",[t("li",[e._v("Make sure you have created the right folder structure. To check that you have, open the manga with the missing cover and check if you can read chapters in the app. If not, follow "),t("a",{attrs:{href:"/help/guides/local-manga"}},[e._v("this")]),e._v(" guide first.")]),e._v(" "),t("li",[e._v("Take a screenshot of which chapters you have read, and then remove manga from the library.")]),e._v(" "),t("li",[e._v("Go to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_advanced"}}),e._v(" and tap "),t("strong",[e._v("Clear database")]),e._v(". This will only affect manga that are not in your library.")],1),e._v(" "),t("li",[e._v("Go back to the "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("strong",[e._v("Local source")]),e._v(" and find the manga. The cover should be fixed now. Add the manga back to your library, mark your read chapters, and re-add tracking if needed.")],1)])]),t("div",{staticClass:"note"},[t("p"),t("p",[e._v("Related GitHub issue: "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi/issues/932",target:"_blank",rel:"noopener noreferrer"}},[e._v("#932"),t("OutboundLink")],1)])]),t("p"),t("h3",{attrs:{id:"application-updates"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application-updates"}},[e._v("#")]),e._v(" Application Updates")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-enable-automatic-updates"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-enable-automatic-updates"}},[e._v("#")]),e._v(" How do I enable automatic updates?")]),e._v(" "),t("p",[e._v("From version "),t("strong",[e._v("0.9.0")]),e._v(" and onwards, Tachiyomi has had automatic updates for the app enabled by default. The "),t("strong",[e._v("Preview")]),e._v(" version also has automatic updates enabled by default.")]),e._v(" "),t("p",[e._v("However, if you think you are on an outdated version, go to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"about"}}),e._v(" and tap on "),t("strong",[e._v("Check for updates")]),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"why-are-automatic-updates-not-working"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-are-automatic-updates-not-working"}},[e._v("#")]),e._v(" Why are automatic updates not working?")]),e._v(" "),t("p",[e._v("Certain Android skins like MIUI have very aggressive battery saving, which can kill the app in the background. To whitelist Tachiyomi from your battery saver, go to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_advanced"}}),e._v(" and tap on "),t("strong",[e._v("Disable battery optimization")]),e._v(". If that does not work, you can also visit "),t("a",{attrs:{href:"https://dontkillmyapp.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DontKillMyApp"),t("OutboundLink")],1),e._v(" to see what battery saving options your device has and how to disable or circumvent them.")],1),e._v(" "),t("h4",{attrs:{id:"why-is-the-app-laggy-after-updating"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-is-the-app-laggy-after-updating"}},[e._v("#")]),e._v(" Why is the app laggy after updating?")]),e._v(" "),t("p",[e._v("The UI toolkit used in Tachiyomi requires the app the be automatically optimized by the Android system over time. You should see improvements after a few days of usage.")]),e._v(" "),t("p",[e._v("If you know how to use ADB, you can also run the following command to trigger the optimization manually.\nIf you are using Tachiyomi Preview or a fork, replace "),t("code",[e._v("eu.kanade.tachiyomi")]),e._v(" with the corresponding package name.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("adb shell cmd package compile -f -m speed-profile eu.kanade.tachiyomi\n")])])]),t("h3",{attrs:{id:"miscellaneous"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#miscellaneous"}},[e._v("#")]),e._v(" Miscellaneous")]),e._v(" "),t("h4",{attrs:{id:"what-is-tachiyomi-preview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-tachiyomi-preview"}},[e._v("#")]),e._v(" What is Tachiyomi Preview?")]),e._v(" "),t("p",[e._v("It is a weekly updated, beta version of the app. It contains features that may be added to Tachiyomi in the future and is more prone to bugs and crashes. It is intended for users who would like the bleeding edge of Tachiyomi as soon as it comes out.")]),e._v(" "),t("p",[e._v("If you are willing to use Tachiyomi Preview, be sure to "),t("RouterLink",{attrs:{to:"/help/guides/backups/#turning-on-auto-backups"}},[e._v("turn on auto-backup")]),e._v(" to prevent losing your library due to potential bugs or crashes.")],1),e._v(" "),t("h4",{attrs:{id:"what-is-a-fork"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-a-fork"}},[e._v("#")]),e._v(" What is a fork?")]),e._v(" "),t("p",[e._v("Forks are alternative versions of Tachiyomi with different features. Read more about them "),t("RouterLink",{attrs:{to:"/forks/"}},[e._v("here")]),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"why-am-i-unable-to-uninstall-tachiyomi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-am-i-unable-to-uninstall-tachiyomi"}},[e._v("#")]),e._v(" Why am I unable to uninstall Tachiyomi?")]),e._v(" "),t("p",[e._v("On "),t("strong",[e._v("Android 10")]),e._v(", a bug was introduced that prevented users from uninstalling the app if the device has a SD card inserted. To fix the issue, please remove the SD card from the device first, then uninstall Tachiyomi.")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-pause-reading-history-or-go-incognito"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-pause-reading-history-or-go-incognito"}},[e._v("#")]),e._v(" How do I pause reading history or go incognito?")]),e._v(" "),t("p",[e._v("Enable Incognito Mode by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → Incognito Mode.")],1),e._v(" "),t("h4",{attrs:{id:"can-i-make-tachiyomi-only-read-my-downloaded-chapters-why-am-i-not-able-to-disable-downloaded-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-i-make-tachiyomi-only-read-my-downloaded-chapters-why-am-i-not-able-to-disable-downloaded-only"}},[e._v("#")]),e._v(" Can I make Tachiyomi only read my downloaded chapters? Why am I not able to disable downloaded only?")]),e._v(" "),t("p",[e._v("Enable Download only by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → Download only.")],1),e._v(" "),t("h4",{attrs:{id:"what-is-dns-over-https"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-dns-over-https"}},[e._v("#")]),e._v(" What is DNS over HTTPS?")]),e._v(" "),t("p",[e._v("DNS over HTTPS is an experimental way of providing, as the name implies, DNS resolution via HTTPS.\nIt provides the advantage of not being vulnerable to Man-in-the-middle attacks (due to TLS encryption in HTTPS), preventing DNS spoofing. If you would like to learn more, go "),t("a",{attrs:{href:"https://www.cloudflare.com/learning/dns/dns-over-tls/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". It allows some blocks to be circumvented without using a VPN.")]),e._v(" "),t("p",[e._v("You can enable this feature by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_advanced"}}),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"what-should-i-do-if-i-cannot-screenshot-within-tachiyomi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-should-i-do-if-i-cannot-screenshot-within-tachiyomi"}},[e._v("#")]),e._v(" What should I do if I cannot screenshot within Tachiyomi?")]),e._v(" "),t("p",[e._v("You have Secure Screen on, disable it if you want to screenshot by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_security"}}),e._v(" → Secure Screen.")],1),e._v(" "),t("h4",{attrs:{id:"how-do-i-backup-my-library-automatically-how-do-i-move-data-from-one-device-to-another"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-backup-my-library-automatically-how-do-i-move-data-from-one-device-to-another"}},[e._v("#")]),e._v(" How do I backup my library automatically? How do I move data from one device to another?")]),e._v(" "),t("p",[e._v("Learn how to use the backup and restore feature "),t("RouterLink",{attrs:{to:"/help/guides/backups/"}},[e._v("here")]),e._v(", and learn how to enable automatic backups "),t("RouterLink",{attrs:{to:"/help/guides/backups/#turning-on-auto-backups/"}},[e._v("here")])],1),e._v(" "),t("h2",{attrs:{id:"extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#extensions"}},[e._v("#")]),e._v(" Extensions")]),e._v(" "),t("h3",{attrs:{id:"general-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-2"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("h4",{attrs:{id:"what-are-some-recommended-extensions-what-source-is-the-best-what-is-the-replacement-for-source-x-where-to-read-manga-y"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-are-some-recommended-extensions-what-source-is-the-best-what-is-the-replacement-for-source-x-where-to-read-manga-y"}},[e._v("#")]),e._v(" What are some recommended extensions? What source is the best? What is the replacement for source X? Where to read manga Y?")]),e._v(" "),t("p",[e._v("Tachiyomi does not endorse or recommend any manga source, and there is no best extension. Instead, we encourage users to spend some time trying out a few sources themselves and discover what sources work best for them. What works well for somebody else might not work well for you.")]),e._v(" "),t("ElAlert",{attrs:{type:"info",title:"Disclaimer",description:"Tachiyomi is not hosting any content, we are not affiliated with or responsible for any source that is; slow, down, missing chapters, or has subpar image quality.","show-icon":"",closable:!1}}),e._v(" "),t("h4",{attrs:{id:"what-are-scanlator-sources"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-are-scanlator-sources"}},[e._v("#")]),e._v(" What are scanlator sources?")]),e._v(" "),t("p",[e._v("Manga that are not officially licensed are translated by scanlators, who either publish on their websites or "),t("strong",[e._v("MangaDex")]),e._v(". This practice contrasts with official sources like "),t("strong",[e._v("MANGA Plus By SHUEISHA")]),e._v(" or "),t("strong",[e._v("VIZ Shonen Jump")]),e._v(", which host officially licensed and translated manga.")]),e._v(" "),t("p",[e._v("Learn more about scanlation in this "),t("strong",[e._v("Wikipedia")]),e._v(" "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Scanlation",target:"_blank",rel:"noopener noreferrer"}},[t("strong",[e._v("article")]),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-request-a-new-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-request-a-new-extension"}},[e._v("#")]),e._v(" How do I request a new extension?")]),e._v(" "),t("p",[e._v("Open an issue on "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(" if one does not already exist. Make sure it is not on the removed extensions list "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/3475",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(" first.")]),e._v(" "),t("div",{staticClass:"note"},[t("p"),t("p",[e._v("You can find the list of extensions to download "),t("RouterLink",{attrs:{to:"/extensions/"}},[e._v("here")])],1)]),t("p"),t("h4",{attrs:{id:"how-do-i-allow-third-party-installations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-allow-third-party-installations"}},[e._v("#")]),e._v(" How do I allow third-party installations?")]),e._v(" "),t("el-tabs",[t("el-tab-pane",{attrs:{label:"Android 8.0 and higher"}},[t("div",{staticClass:"videolink"},[t("p",[t("a",{attrs:{href:"/assets/faq_unknown-sources-a10.webm"}},[t("MaterialIcon",{attrs:{icon:"videocam"}}),e._v(" Click for Android 8.0 and newer video guide")],1)])]),t("p",[e._v("When installing your first extension and you are prompted that your device "),t("em",[e._v("is not allowed")]),e._v(" to install unknown apps from that source, follow the prompt to allow it.")]),e._v(" "),t("p",[e._v("In "),t("em",[e._v("newer")]),e._v(" versions of "),t("strong",[e._v("Android")]),e._v(", you need to enable "),t("strong",[e._v("Install unknown apps")]),e._v(" on a per-app basis.")])]),e._v(" "),t("el-tab-pane",{attrs:{label:"Android 7.1 and lower"}},[t("div",{staticClass:"videolink"},[t("p",[t("a",{attrs:{href:"/assets/faq_unknown-sources-a7.webm"}},[t("MaterialIcon",{attrs:{icon:"videocam"}}),e._v(" Click for Android 7.1 and older video guide")],1)])]),t("p",[e._v("When installing your first extension and you are prompted that your device "),t("em",[e._v("is not allowed")]),e._v(" to install unknown apps from that source, follow the prompt to allow it.")]),e._v(" "),t("p",[e._v("In "),t("em",[e._v("older")]),e._v(" versions of "),t("strong",[e._v("Android")]),e._v(", you only need to enable "),t("strong",[e._v("Unknown sources")]),e._v(" globally.")])])],1),e._v(" "),t("div",{staticClass:"note"},[t("p"),t("p",[e._v("If you need more help regarding this, read "),t("a",{attrs:{href:"https://www.theandroidsoul.com/how-to-allow-apps-installation-from-unknown-sources-on-android-9-pie/",target:"_blank",rel:"noopener noreferrer"}},[e._v("this"),t("OutboundLink")],1)])]),t("p"),t("h4",{attrs:{id:"how-do-i-uninstall-an-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-uninstall-an-extension"}},[e._v("#")]),e._v(" How do I uninstall an extension?")]),e._v(" "),t("p",[e._v("Extensions for "),t("strong",[e._v("Tachiyomi")]),e._v(" are technically installed the same as standard apps. Either you uninstall them through the app section on your device's settings or do it in "),t("strong",[e._v("Tachiyomi")]),e._v(".")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("GUIDE")]),t("p",[e._v("To uninstall an extension from within "),t("strong",[e._v("Tachiyomi")]),e._v(", go to "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("strong",[e._v("Extensions")]),e._v(" then tap "),t("strong",[e._v("Uninstall")]),e._v(" on the extension you want to remove.")],1)]),t("h4",{attrs:{id:"why-can-t-i-install-or-update-extensions-from-the-app-properly"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-can-t-i-install-or-update-extensions-from-the-app-properly"}},[e._v("#")]),e._v(" Why can't I install or update extensions from the app properly?")]),e._v(" "),t("p",[e._v("MIUI users (i.e. Xiaomi devices or related brands like POCO) often have issues with this. You can try:")]),e._v(" "),t("ul",[t("li",[e._v("Set your installer mode (in the app's Advanced settings) to \"Legacy\" if it isn't already.")]),e._v(" "),t("li",[e._v("Switch "),t("strong",[e._v("MIUI Optimizations")]),e._v(" under "),t("strong",[e._v("Developer Settings")]),e._v(" to "),t("strong",[e._v("OFF")]),e._v(" when installing or updating extensions.")])]),e._v(" "),t("p",[e._v("If it still doesn't work or the list of extensions doesn't load at all, manually download extensions from "),t("RouterLink",{attrs:{to:"/extensions/"}},[e._v("here")]),e._v(". If that doesn't load either, try using a VPN as that likely means your network is blocking it.")],1),e._v(" "),t("h3",{attrs:{id:"mangadex"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mangadex"}},[e._v("#")]),e._v(" MangaDex")]),e._v(" "),t("h4",{attrs:{id:"how-can-i-block-particular-scanlator-groups"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-can-i-block-particular-scanlator-groups"}},[e._v("#")]),e._v(" How can I block particular Scanlator Groups?")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("MangaDex")]),e._v(" extension allows blocking "),t("strong",[e._v("Scanlator Groups")]),e._v(". Chapters uploaded by a "),t("strong",[e._v("Blocked Scanlator Group")]),e._v(" will not show up in "),t("strong",[e._v("Latest")]),e._v(" or in "),t("strong",[e._v("Manga feed")]),e._v(" (chapters list). For now, you can only block Groups by entering their UUIDs manually.")]),e._v(" "),t("p",[e._v("Follow the following steps to easily block a group from the Tachiyomi MangaDex extension:")]),e._v(" "),t("p",[e._v("A. Finding the "),t("strong",[e._v("UUIDs")]),e._v(":")]),e._v(" "),t("ul",[t("li",[e._v("Go to "),t("a",{attrs:{href:"https://mangadex.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://mangadex.org"),t("OutboundLink")],1),e._v(" and "),t("NavigationText",{attrs:{item:"search"}}),e._v(" for the Scanlation Group that you wish to block and view their Group Details")],1),e._v(" "),t("li",[e._v("Using the URL of this page, get the 16-digit alphanumeric string which will be the UUID for that scanlation group")]),e._v(" "),t("li",[e._v("For Example:\n"),t("ul",[t("li",[e._v("The Group "),t("em",[e._v("Tristan's test scans")]),e._v(" has the URL\n"),t("ul",[t("li",[t("a",{attrs:{href:"https://mangadex.org/group/6410209a-0f39-4f51-a139-bc559ad61a4f/tristan-s-test-scans",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://mangadex.org/group/6410209a-0f39-4f51-a139-bc559ad61a4f/tristan-s-test-scans"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Therefore, their UUID will be "),t("code",[e._v("6410209a-0f39-4f51-a139-bc559ad61a4f")])])])]),e._v(" "),t("li",[e._v("Other Examples include:\n"),t("ul",[t("li",[e._v("Azuki Manga | "),t("code",[e._v("5fed0576-8b94-4f9a-b6a7-08eecd69800d")])]),e._v(" "),t("li",[e._v("Bilibili Comics | "),t("code",[e._v("06a9fecb-b608-4f19-b93c-7caab06b7f44")])]),e._v(" "),t("li",[e._v("Comikey | "),t("code",[e._v("8d8ecf83-8d42-4f8c-add8-60963f9f28d9")])]),e._v(" "),t("li",[e._v("MangaPlus | "),t("code",[e._v("4f1de6a2-f0c5-4ac5-bce5-02c7dbb67deb")])])])])])])]),e._v(" "),t("p",[e._v("B. Blocking a group using their UUID in Tachiyomi MangaDex extension "),t("code",[e._v("v1.2.150+")]),e._v(":")]),e._v(" "),t("ol",[t("li",[e._v("Go to "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("NavigationText",{attrs:{item:"extensions"}}),e._v(".")],1),e._v(" "),t("li",[e._v("Click on "),t("strong",[e._v("MangaDex")]),e._v(" extension and then "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" under your Language of choice.")],1),e._v(" "),t("li",[e._v("Tap on the option "),t("strong",[e._v("Block Groups by UUID")]),e._v(" and enter the UUIDs.\n"),t("ul",[t("li",[e._v("By Default, the following groups are blocked:")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("Azuki Manga, Bilibili Comics, Comikey & MangaPlus\n")])])]),t("ul",[t("li",[e._v("Which are entered as:")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("5fed0576-8b94-4f9a-b6a7-08eecd69800d, 06a9fecb-b608-4f19-b93c-7caab06b7f44,\n8d8ecf83-8d42-4f8c-add8-60963f9f28d9, 4f1de6a2-f0c5-4ac5-bce5-02c7dbb67deb\n")])])])])]),e._v(" "),t("h3",{attrs:{id:"mangakakalot-manganelo-mangabat-and-mangairo"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mangakakalot-manganelo-mangabat-and-mangairo"}},[e._v("#")]),e._v(" Mangakakalot, Manganelo, Mangabat and Mangairo")]),e._v(" "),t("h4",{attrs:{id:"what-do-page-list-is-empty-and-source-url-has-changed-mean"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-do-page-list-is-empty-and-source-url-has-changed-mean"}},[e._v("#")]),e._v(" What do "),t("code",[e._v("Page list is empty")]),e._v(" and "),t("code",[e._v("Source URL has changed")]),e._v(" mean?")]),e._v(" "),t("p",[e._v("The former "),t("strong",[e._v("Mangabox")]),e._v(" extensions have created new entries for many of the manga on their websites. The old entries are obsolete and will not work. To resolve this, "),t("RouterLink",{attrs:{to:"/help/guides/source-migration/"}},[e._v("migrate")]),e._v(" the manga from the source to itself to get the new entry, or better yet, to a different source entirely to avoid similar errors in the future.")],1),e._v(" "),t("h3",{attrs:{id:"mangapark"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mangapark"}},[e._v("#")]),e._v(" MangaPark")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-deal-with-duplicate-chapters-in-mangapark"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-deal-with-duplicate-chapters-in-mangapark"}},[e._v("#")]),e._v(" How do I deal with duplicate chapters in MangaPark?")]),e._v(" "),t("p",[e._v("To solve this issue, follow the below steps.")]),e._v(" "),t("ol",[t("li",[e._v("Go to "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("NavigationText",{attrs:{item:"extensions"}}),e._v(".")],1),e._v(" "),t("li",[e._v("Click on "),t("strong",[e._v("MangaPark")]),e._v(" extension and then "),t("strong",[e._v("Chapter List Source")]),e._v(".")]),e._v(" "),t("li",[e._v("Choose an option like "),t("strong",[e._v("Smart list")]),e._v(" or "),t("strong",[e._v("Prioritize source")]),e._v(".")]),e._v(" "),t("li",[e._v("Go back to "),t("strong",[e._v("MangaPark")]),e._v("'s chapter list and refresh it.")])]),e._v(" "),t("h3",{attrs:{id:"removed-extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#removed-extensions"}},[e._v("#")]),e._v(" Removed Extensions")]),e._v(" "),t("h4",{attrs:{id:"why-am-i-unable-to-download-an-extension-that-used-to-exist"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-am-i-unable-to-download-an-extension-that-used-to-exist"}},[e._v("#")]),e._v(" Why am I unable to download an extension that used to exist?")]),e._v(" "),t("p",[e._v("Extensions tend to be removed for a variety of reasons:")]),e._v(" "),t("ul",[t("li",[e._v("They become too much of a cat and mouse game to maintain due to the website owners changing the site frequently to deter scrapers.")]),e._v(" "),t("li",[e._v("The site scrambles images in more than one way, making it impossible to make every image unscrambleable.")]),e._v(" "),t("li",[e._v("A scanlator team requests the removal of their site from Tachiyomi.")]),e._v(" "),t("li",[e._v("The site is paywalled.")]),e._v(" "),t("li",[e._v("Require reverse engineering another app.")]),e._v(" "),t("li",[e._v("The site has been shut down.")])]),e._v(" "),t("p",[e._v("A list of extensions that have been removed is available "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/3475",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(", but it does not include sites that have gone offline.")]),e._v(" "),t("h3",{attrs:{id:"split-extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#split-extensions"}},[e._v("#")]),e._v(" Split Extensions")]),e._v(" "),t("p",[e._v("Extensions have been split due to the sheer number of extensions in a single extension, with Madara reaching over 200 extensions at one point, making it unreasonable for both devs and users to filter through extensions. For a deeper explanation of the issue, "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/4287",target:"_blank",rel:"noopener noreferrer"}},[e._v("this"),t("OutboundLink")],1),e._v(" GitHub issue explains in more detail.")]),e._v(" "),t("h4",{attrs:{id:"what-extensions-have-been-split"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-extensions-have-been-split"}},[e._v("#")]),e._v(" What extensions have been split?")]),e._v(" "),t("p",[e._v("All of them have been split.")]),e._v(" "),t("h4",{attrs:{id:"why-does-my-multisource-extension-show-up-as-obsolete"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-does-my-multisource-extension-show-up-as-obsolete"}},[e._v("#")]),e._v(" Why does my multisource extension show up as obsolete?")]),e._v(" "),t("p",[e._v("The multisource extension is obsolete because it has been split. The multisource extension has been removed from the repository. It is not actually obsolete.")]),e._v(" "),t("h5",{attrs:{id:"how-do-i-move-to-a-split-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-move-to-a-split-extension"}},[e._v("#")]),e._v(" How do I move to a split extension?")]),e._v(" "),t("p",[e._v("Install the extension that your manga is from, and then uninstall the multisource extension. If the manga shows the source as a bunch of numbers, force close the app. For known issues with split extensions, go to this "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/5672",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub issue"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"do-i-need-to-migrate"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#do-i-need-to-migrate"}},[e._v("#")]),e._v(" Do I need to migrate?")]),e._v(" "),t("p",[e._v("No, unless expressly stated, the internal ID of sources has not changed, so migration is unnecessary.")]),e._v(" "),t("h4",{attrs:{id:"what-if-i-uninstall-the-multisource-extension-before-i-install-the-singular-extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-if-i-uninstall-the-multisource-extension-before-i-install-the-singular-extensions"}},[e._v("#")]),e._v(" What if I uninstall the multisource extension before I install the singular extensions?")]),e._v(" "),t("p",[e._v("See what extension IDs correspond to what extensions "),t("a",{attrs:{href:"https://pastebin.com/raw/QX2scdRT",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"android-11"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android-11"}},[e._v("#")]),e._v(" Android 11+")]),e._v(" "),t("h3",{attrs:{id:"what-changed-in-android-11"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-changed-in-android-11"}},[e._v("#")]),e._v(" What changed in Android 11?")]),e._v(" "),t("p",[e._v("In Android 11, Google began forcing users to use "),t("a",{attrs:{href:"https://developer.android.com/about/versions/11/privacy/storage",target:"_blank",rel:"noopener noreferrer"}},[e._v("Scoped Storage"),t("OutboundLink")],1),e._v(", which was introduced in Android 5.0 Lollipop, but Google only began forcing developers to use it on Android 11. Some OEMs seem to better implement Scoped Storage than others, with some users not running into any issues while users using other device brands have multitudes of problems.")]),e._v(" "),t("h3",{attrs:{id:"what-does-it-mean-for-tachiyomi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-does-it-mean-for-tachiyomi"}},[e._v("#")]),e._v(" What does it mean for Tachiyomi?")]),e._v(" "),t("p",[e._v("The introduction of Scoped Storage means that many storage-related functions that Tachiyomi uses may be much slower due to the inherent slowness of Scoped Storage, as outlined "),t("a",{attrs:{href:"https://www.xda-developers.com/android-q-storage-access-framework-scoped-storage/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". These include deleting chapters, library load times, accessing the folders outside the data folders to download to or read from, and more.")]),e._v(" "),t("h3",{attrs:{id:"is-there-any-way-to-improve-performance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#is-there-any-way-to-improve-performance"}},[e._v("#")]),e._v(" Is there any way to improve performance?")]),e._v(" "),t("p",[e._v("If you know how to use ADB, you can try the following command to enable the old general storage interface for the app. If you are using Tachiyomi Preview or a fork, replace "),t("code",[e._v("eu.kanade.tachiyomi")]),e._v(" with the corresponding package name.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("adb shell cmd appops set eu.kanade.tachiyomi android:legacy_storage allow\n")])])]),t("h2",{attrs:{id:"shizuku"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#shizuku"}},[e._v("#")]),e._v(" Shizuku")]),e._v(" "),t("h3",{attrs:{id:"what-is-shizuku"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-shizuku"}},[e._v("#")]),e._v(" What is Shizuku?")]),e._v(" "),t("p",[e._v("Tachiyomi can use Shizuku as an alternate way to install and update extensions. It accesses system APIs to install packages directly without user input. Shizuku requires setup with ADB or root privileges. Read more about it "),t("a",{attrs:{href:"https://shizuku.rikka.app/introduction/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"do-i-need-shizuku"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#do-i-need-shizuku"}},[e._v("#")]),e._v(" Do I need Shizuku?")]),e._v(" "),t("p",[e._v("No, only use Shizuku if you want to avoid being prompted during extension installations.")]),e._v(" "),t("h3",{attrs:{id:"how-do-i-set-shizuku-up"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-set-shizuku-up"}},[e._v("#")]),e._v(" How do I set Shizuku up?")]),e._v(" "),t("p",[e._v("To learn how to set Shizuku up, go "),t("a",{attrs:{href:"https://shizuku.rikka.app/guide/setup/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". Once you have set it up, enable it in Tachiyomi by going to "),t("strong",[e._v("More")]),e._v(" → "),t("strong",[e._v("Settings")]),e._v(" → "),t("strong",[e._v("Advanced")]),e._v(" → "),t("strong",[e._v("Installer")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"what-is-the-difference-between-the-installers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-the-difference-between-the-installers"}},[e._v("#")]),e._v(" What is the difference between the installers?")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Legacy")]),e._v(": fallback method installer if the standard PackageInstaller has issues. This is the default for MIUI.")]),e._v(" "),t("li",[t("strong",[e._v("PackageInstaller")]),e._v(": The default installer. This has more features depending on the Android version, such as skipping user prompts on Android 12 when updating extensions.")]),e._v(" "),t("li",[t("strong",[e._v("Shizuku")]),e._v(": See above.")])])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/36.91254041.js b/assets/js/36.91254041.js deleted file mode 100644 index 501020302..000000000 --- a/assets/js/36.91254041.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{548:function(e,t,a){"use strict";a.r(t);var o=a(12),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frequently-asked-questions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frequently-asked-questions"}},[e._v("#")]),e._v(" Frequently Asked Questions")]),e._v(" "),t("h2",{attrs:{id:"application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application"}},[e._v("#")]),e._v(" Application")]),e._v(" "),t("h3",{attrs:{id:"general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("h4",{attrs:{id:"will-there-be-an-ios-version"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#will-there-be-an-ios-version"}},[e._v("#")]),e._v(" Will there be an iOS version?")]),e._v(" "),t("p",[e._v("No. There is no iOS version, and there are no plans for one. Since iOS and Android apps do not share code, it is hard to port.")]),e._v(" "),t("h4",{attrs:{id:"will-tachiyomi-ever-be-on-the-google-play-store"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#will-tachiyomi-ever-be-on-the-google-play-store"}},[e._v("#")]),e._v(" Will Tachiyomi ever be on the Google Play Store?")]),e._v(" "),t("p",[e._v("Google Play's content policy does not allow the APK based extension system to work. The content on some websites will lead to Google taking it down at some point, and Inorichi does not want to have to deal with it as they have stated "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi/issues/1745#issuecomment-441208074",target:"_blank",rel:"noopener noreferrer"}},[e._v("before"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("To report Tachiyomi copycats on the Google Play Store, you can fill out "),t("a",{attrs:{href:"https://support.google.com/googleplay/android-developer/contact/takedown",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),t("OutboundLink")],1),e._v(" following "),t("a",{attrs:{href:"https://pastebin.com/08eeuJxH",target:"_blank",rel:"noopener noreferrer"}},[e._v("these steps"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-migrate-from-the-f-droid-version"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-migrate-from-the-f-droid-version"}},[e._v("#")]),e._v(" How do I migrate from the F-Droid version?")]),e._v(" "),t("p",[e._v("Tachiyomi on F-Droid is not officially supported, so updates are not guaranteed. If you want to migrate to the official builds:")]),e._v(" "),t("ol",[t("li",[e._v("Create a "),t("RouterLink",{attrs:{to:"/help/guides/backups/"}},[e._v("backup")]),e._v(".")],1),e._v(" "),t("li",[e._v("Uninstall the F-Droid version (do not keep any app data if it allows you to).")]),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/download/"}},[e._v("Download")]),e._v(" and install Tachiyomi.")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/help/guides/backups/#how-do-i-restore-a-backup"}},[e._v("Restore")]),e._v(" your backup.")],1)]),e._v(" "),t("p",[e._v("We have no intention to host our own F-Droid repo since Tachiyomi already manages updates by itself, making the usage of F-Droid redundant. For more detailed info, see "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi/issues/6736#issuecomment-1059608058",target:"_blank",rel:"noopener noreferrer"}},[e._v("this GitHub comment"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"can-tachiyomi-read-light-novels-or-stream-anime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-tachiyomi-read-light-novels-or-stream-anime"}},[e._v("#")]),e._v(" Can Tachiyomi read light novels or stream anime?")]),e._v(" "),t("p",[e._v("No, Tachiyomi is only focused on delivering a great manga experience.")]),e._v(" "),t("h4",{attrs:{id:"can-tachiyomi-sync-between-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-tachiyomi-sync-between-devices"}},[e._v("#")]),e._v(" Can Tachiyomi sync between devices?")]),e._v(" "),t("p",[e._v("No, but you can use the backup and restore feature to save and load data between devices.")]),e._v(" "),t("h3",{attrs:{id:"library"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#library"}},[e._v("#")]),e._v(" Library")]),e._v(" "),t("h4",{attrs:{id:"how-can-i-see-how-many-chapters-i-have-downloaded"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-can-i-see-how-many-chapters-i-have-downloaded"}},[e._v("#")]),e._v(" How can I see how many chapters I have downloaded?")]),e._v(" "),t("p",[e._v("Enable badges by going to "),t("NavigationText",{attrs:{item:"library"}}),e._v(" → "),t("NavigationText",{attrs:{item:"filter"}}),e._v(" → "),t("strong",[e._v("Display")]),e._v(" tab and then checking "),t("strong",[e._v("Download badges")]),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"why-does-global-update-skip-some-entries"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-does-global-update-skip-some-entries"}},[e._v("#")]),e._v(" Why does global update skip some entries?")]),e._v(" "),t("p",[e._v("By default, the app does not check for updates if an entry:")]),e._v(" "),t("ul",[t("li",[e._v("Has unread chapters")]),e._v(" "),t("li",[e._v("Hasn't been started")]),e._v(" "),t("li",[e._v('Has "Completed" status')])]),e._v(" "),t("p",[e._v("This avoids unnecessary heavy traffic to sources. If you have entries that get infrequent or no updates, you should consider using categories and excluding them from updates.")]),e._v(" "),t("p",[e._v("We recommend to "),t("strong",[e._v("keep the defaults as they are")]),e._v(" to help ensure that sources continue to work. To get updates:")]),e._v(" "),t("ul",[t("li",[e._v("Mark unread chapters as read")]),e._v(" "),t("li",[e._v("Ensure that at least 1 chapter is marked read")]),e._v(" "),t("li",[e._v('If an entry is incorrectly marked as "Completed", report it '),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("on GitHub"),t("OutboundLink")],1),e._v(" so that the source can be fixed")])]),e._v(" "),t("p",[e._v("If you don't want to see the skipped items notification, you can disable it at "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_general"}}),e._v(" → "),t("strong",[e._v("Manage notifications")]),e._v(" (Android 8+).")],1),e._v(" "),t("h4",{attrs:{id:"why-does-the-app-warn-about-large-bulk-updates-and-downloads"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-does-the-app-warn-about-large-bulk-updates-and-downloads"}},[e._v("#")]),e._v(" Why does the app warn about large bulk updates and downloads?")]),e._v(" "),t("p",[e._v("Excessive server queries and unnecessary site interaction may cause sources to employ anti-Tachiyomi tactics. Also refer to the above question. Long running update checks and downloading may also negatively impact your battery life.")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("Tips to reduce server load")]),t("p",[e._v("As mentioned above, it is "),t("strong",[e._v("recommended to keep the defaults as they are")]),e._v(", but if you are still seeing this warning message, try the following suggestions:")]),e._v(" "),t("ul",[t("li",[e._v("Use categories (Reading, Plan to read and Completed, or anything else that segments your library).")]),e._v(" "),t("li",[e._v("Update only the Reading category by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_library"}}),e._v(" → "),t("strong",[e._v("Global update")]),e._v(" then tap "),t("strong",[e._v("Categories")]),e._v(".")],1),e._v(" "),t("li",[e._v("If the warning message still occurs, split your reading category down further by seperating entries in your library that are infrequently updated (such as monthly series or series that are on haitus) into a new category, then set global update to only update your more frequently updated reading category")])])]),t("h4",{attrs:{id:"how-do-i-ignore-duplicate-chapters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-ignore-duplicate-chapters"}},[e._v("#")]),e._v(" How do I ignore duplicate chapters?")]),e._v(" "),t("p",[e._v("Sometimes, you find a manga that is translated by more than one group. Because of this, you get multiple releases for each chapter in the manga. There are several ways to skip the duplicate chapters:")]),e._v(" "),t("ul",[t("li",[e._v("Enable "),t("strong",[e._v("Skip duplicate chapters")]),e._v(" under "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_reader"}}),e._v(" → "),t("strong",[e._v("Reading")]),e._v(".")],1),e._v(" "),t("li",[e._v("Bookmark or mark as read the unwanted chapters, then tap on "),t("NavigationText",{attrs:{item:"filter"}}),e._v(" → "),t("strong",[e._v("Filter")]),e._v(" and double-tap "),t("strong",[e._v("Bookmarked")]),e._v(" or single-tap "),t("strong",[e._v("Unread")]),e._v(", respectively. This will hide any bookmarked or read chapters and skip them as you read along, as long as you have "),t("strong",[e._v("Skip filtered chapters")]),e._v(" enabled under "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_reader"}}),e._v(" → "),t("strong",[e._v("Reading")]),e._v(".")],1),e._v(" "),t("li",[e._v("Migrate to another source that does not have duplicates. For more information on how to migrate a manga, see the "),t("RouterLink",{attrs:{to:"/help/guides/source-migration/"}},[e._v("migration guide")]),e._v(".")],1)]),e._v(" "),t("h4",{attrs:{id:"why-are-some-cover-thumbnails-corrupted-white-showing-a-broken-page-or-wrong"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-are-some-cover-thumbnails-corrupted-white-showing-a-broken-page-or-wrong"}},[e._v("#")]),e._v(" Why are some cover thumbnails corrupted, white, showing a broken page, or wrong?")]),e._v(" "),t("p",[e._v("The thumbnail download likely did not complete correctly. To fix this, refresh covers in settings.")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("GUIDE")]),t("p",[e._v("Refresh your covers by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_advanced"}}),e._v(" then pressing "),t("strong",[e._v("Refresh library manga covers")]),e._v(".")],1)]),t("h4",{attrs:{id:"why-have-some-manga-chapters-been-marked-as-unread-when-i-have-not-touched-them"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-have-some-manga-chapters-been-marked-as-unread-when-i-have-not-touched-them"}},[e._v("#")]),e._v(" Why have some manga chapters been marked as unread when I have not touched them?")]),e._v(" "),t("p",[e._v("The URLs of the manga chapters have changed, so Tachiyomi detects the chapter(s) as new chapters.")]),e._v(" "),t("h3",{attrs:{id:"browse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#browse"}},[e._v("#")]),e._v(" Browse")]),e._v(" "),t("h4",{attrs:{id:"why-can-i-not-see-sources-that-i-have-installed"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-can-i-not-see-sources-that-i-have-installed"}},[e._v("#")]),e._v(" Why can I not see sources that I have installed?")]),e._v(" "),t("h5",{attrs:{id:"if-it-is-an-extension-that-is-not-the-same-language-as-your-device-s-primary-language"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#if-it-is-an-extension-that-is-not-the-same-language-as-your-device-s-primary-language"}},[e._v("#")]),e._v(" If it is an extension that is not the same language as your device's primary language")]),e._v(" "),t("p",[e._v("Enable the language of the source by going to "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → Sources tab → "),t("NavigationText",{attrs:{item:"language"}}),e._v(" → Turn on the language of the source you would like to use.")],1),e._v(" "),t("h5",{attrs:{id:"if-it-is-an-nsfw-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#if-it-is-an-nsfw-extension"}},[e._v("#")]),e._v(" If it is an NSFW extension")]),e._v(" "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → Check show in sources list.\n"),t("h4",{attrs:{id:"how-do-i-find-a-manga-i-am-looking-for"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-find-a-manga-i-am-looking-for"}},[e._v("#")]),e._v(" How do I find a manga I am looking for?")]),e._v(" "),t("p",[e._v("Sometimes you can struggle to find a source that has the manga you are looking to read. Here are some tips to help you find it:")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("Tips to find your manga")]),t("ol",[t("li",[e._v("Look up the manga on "),t("a",{attrs:{href:"https://google.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Google"),t("OutboundLink")],1),e._v(" or a manga database such as "),t("a",{attrs:{href:"https://www.mangaupdates.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MangaUpdates"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("See if the manga has any alternate spellings or other title variations. Try searching again in your sources with the alternate titles you found.")]),e._v(" "),t("li",[e._v("If you still cannot find the manga in any of your sources, then try to search for an extension for the website you found in step 1 in the "),t("RouterLink",{attrs:{to:"/extensions/"}},[e._v("extensions")]),e._v(" list.")],1)]),e._v(" "),t("h4",{attrs:{id:"if-you-find-the-manga-on-a-specific-scanlator-or-aggregator-and-they-do-have-an-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#if-you-find-the-manga-on-a-specific-scanlator-or-aggregator-and-they-do-have-an-extension"}},[e._v("#")]),e._v(" If you find the manga on a specific scanlator or aggregator and they do have an extension")]),e._v(" "),t("p",[e._v("Download the corresponding extension, tap on it under "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("strong",[e._v("Sources")]),e._v(", and then search for the manga there.")],1),e._v(" "),t("h4",{attrs:{id:"if-you-find-the-manga-on-a-specific-scanlator-or-aggregator-and-they-do-not-have-an-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#if-you-find-the-manga-on-a-specific-scanlator-or-aggregator-and-they-do-not-have-an-extension"}},[e._v("#")]),e._v(" If you find the manga on a specific scanlator or aggregator and they do not have an extension")]),e._v(" "),t("p",[e._v("Check if adding the site as an extension has "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("already been requested"),t("OutboundLink")],1),e._v(" and that it is not on the list of extensions that will not be added back "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/3475",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". If it has not been requested and it is not on the list, you can "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/new/choose",target:"_blank",rel:"noopener noreferrer"}},[e._v("request it here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("If the scanlator or aggregator does not have an online manga reader, you can download the manga from their website and set up the series as a "),t("RouterLink",{attrs:{to:"/help/guides/local-manga/"}},[e._v("local manga")]),e._v(".")],1)]),t("h3",{attrs:{id:"reader"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reader"}},[e._v("#")]),e._v(" Reader")]),e._v(" "),t("h4",{attrs:{id:"why-are-some-images-not-displayed"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-are-some-images-not-displayed"}},[e._v("#")]),e._v(" Why are some images not displayed?")]),e._v(" "),t("p",[e._v("Aside from network issues, sometimes Tachiyomi does not register the image as existing, exit and re-enter the reader to fix this.")]),e._v(" "),t("h4",{attrs:{id:"will-there-ever-be-a-dual-page-reader-option"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#will-there-ever-be-a-dual-page-reader-option"}},[e._v("#")]),e._v(" Will there ever be a dual-page reader option?")]),e._v(" "),t("p",[e._v("The logic required to make a dual-page reader automatically work along with scanlator page inconsistencies and other issues means it is unlikely to be added at this time.")]),e._v(" "),t("h4",{attrs:{id:"how-can-i-make-tachiyomi-turn-pages-with-the-volume-rocker-can-i-reverse-the-tapping-direction-can-i-change-the-tapping-zones"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-can-i-make-tachiyomi-turn-pages-with-the-volume-rocker-can-i-reverse-the-tapping-direction-can-i-change-the-tapping-zones"}},[e._v("#")]),e._v(" How can I make Tachiyomi turn pages with the volume rocker? Can I reverse the tapping direction? Can I change the tapping zones?")]),e._v(" "),t("p",[e._v("Refer to the guides section of the site "),t("RouterLink",{attrs:{to:"/help/guides/reader-settings/#navigation-layout"}},[e._v("here")]),e._v(". Refer to "),t("RouterLink",{attrs:{to:"/help/guides/reader-settings/#volume-keys"}},[e._v("here")]),e._v(" if you want to use your volume rocker to navigate pages.")],1),e._v(" "),t("h3",{attrs:{id:"downloads"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#downloads"}},[e._v("#")]),e._v(" Downloads")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-download-several-chapters-or-manga-simultaneously"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-download-several-chapters-or-manga-simultaneously"}},[e._v("#")]),e._v(" How do I download several chapters or manga simultaneously?")]),e._v(" "),t("p",[e._v("The app does not allow parallel downloads from one source to prevent IP bans caused by too many requests. We know that speed is being sacrificed, but it is better than an overall inaccessible source.")]),e._v(" "),t("p",[e._v("However, if you download several manga from different sources, the app will start downloading simultaneously from up to five different sources.")]),e._v(" "),t("h4",{attrs:{id:"why-do-my-downloads-sometimes-stop-midway-through"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-do-my-downloads-sometimes-stop-midway-through"}},[e._v("#")]),e._v(" Why do my downloads sometimes stop midway through?")]),e._v(" "),t("p",[e._v("It is likely an issue to do with your connection to your network or the source. Tachiyomi will notify you of what error it has encountered trying to download.")]),e._v(" "),t("h4",{attrs:{id:"why-aren-t-my-downloads-being-detected"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-aren-t-my-downloads-being-detected"}},[e._v("#")]),e._v(" Why aren't my downloads being detected?")]),e._v(" "),t("p",[e._v("This can happen for a variety of reasons:")]),e._v(" "),t("ul",[t("li",[e._v("The download location may be inaccessible. If you are using a SD card, make sure it's detected.")]),e._v(" "),t("li",[e._v("The source name may have changed. Change the name of the source's folder to the new name.")]),e._v(" "),t("li",[e._v("The source you downloaded the manga from may have changed the title. Change the title of the folder to the new title.")])]),e._v(" "),t("h4",{attrs:{id:"how-do-i-cancel-or-change-the-download-queue"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-cancel-or-change-the-download-queue"}},[e._v("#")]),e._v(" How do I cancel or change the download queue?")]),e._v(" "),t("p",[e._v("Go to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → Download Queue and cancel items in the queue or cancel all items by tapping on the "),t("NavigationText",{attrs:{item:"overflow"}}),e._v(" next to a manga chapter or on the top right. If you would like the change the order of the queue, tap and hold the = on the side of a item in the queue.")],1),e._v(" "),t("h4",{attrs:{id:"can-you-make-it-possible-to-store-manga-on-both-internal-storage-and-external-sd-card"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-you-make-it-possible-to-store-manga-on-both-internal-storage-and-external-sd-card"}},[e._v("#")]),e._v(" Can you make it possible to store manga on both internal storage and external SD-card?")]),e._v(" "),t("p",[e._v("At the moment, no. You could try using symlinks, but that requires having your device rooted.")]),e._v(" "),t("div",{staticClass:"note"},[t("p"),t("p",[e._v("Read more about rooting your device "),t("a",{attrs:{href:"https://www.xda-developers.com/root/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1)])]),t("p"),t("h4",{attrs:{id:"why-can-i-see-manga-pages-from-my-downloads-in-my-device-s-photo-gallery"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-can-i-see-manga-pages-from-my-downloads-in-my-device-s-photo-gallery"}},[e._v("#")]),e._v(" Why can I see manga pages from my downloads in my device's photo gallery?")]),e._v(" "),t("p",[e._v("Tachiyomi adds a "),t("code",[e._v(".nomedia")]),e._v(" file to the Downloads folder by default to prevent this from happening, but sometimes it does not work, or something goes wrong. To fix this, all you need to do is create the file yourself. Name it "),t("code",[e._v(".nomedia")]),e._v(" and place it in your downloads folder. If you have the same problem with your local manga, place the "),t("code",[e._v(".nomedia")]),e._v(" file in the local folder.")]),e._v(" "),t("h3",{attrs:{id:"local-manga"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#local-manga"}},[e._v("#")]),e._v(" Local Manga")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-import-my-downloaded-manga-into-tachiyomi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-import-my-downloaded-manga-into-tachiyomi"}},[e._v("#")]),e._v(" How do I import my downloaded manga into Tachiyomi?")]),e._v(" "),t("p",[e._v("We recommend you to read "),t("a",{attrs:{href:"/help/guides/local-manga"}},[e._v("this")]),e._v(" guide on how to do so.")]),e._v(" "),t("h4",{attrs:{id:"what-do-i-do-if-i-cannot-find-the-tachiyomi-folder"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-do-i-do-if-i-cannot-find-the-tachiyomi-folder"}},[e._v("#")]),e._v(" What do I do if I cannot find the Tachiyomi folder?")]),e._v(" "),t("p",[e._v("If you do not see the "),t("strong",[e._v("Tachiyomi")]),e._v(" folder, create one with a file manager.")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-fix-empty-blank-covers-on-my-local-manga"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-fix-empty-blank-covers-on-my-local-manga"}},[e._v("#")]),e._v(" How do I fix empty/blank covers on my local manga?")]),e._v(" "),t("p",[e._v("Sometimes some covers for local manga are not displayed. Follow these steps to fix it:")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("GUIDE")]),t("ol",[t("li",[e._v("Make sure you have created the right folder structure. To check that you have, open the manga with the missing cover and check if you can read chapters in the app. If not, follow "),t("a",{attrs:{href:"/help/guides/local-manga"}},[e._v("this")]),e._v(" guide first.")]),e._v(" "),t("li",[e._v("Take a screenshot of which chapters you have read, and then remove manga from the library.")]),e._v(" "),t("li",[e._v("Go to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_advanced"}}),e._v(" and tap "),t("strong",[e._v("Clear database")]),e._v(". This will only affect manga that are not in your library.")],1),e._v(" "),t("li",[e._v("Go back to the "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("strong",[e._v("Local source")]),e._v(" and find the manga. The cover should be fixed now. Add the manga back to your library, mark your read chapters, and re-add tracking if needed.")],1)])]),t("div",{staticClass:"note"},[t("p"),t("p",[e._v("Related GitHub issue: "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi/issues/932",target:"_blank",rel:"noopener noreferrer"}},[e._v("#932"),t("OutboundLink")],1)])]),t("p"),t("h3",{attrs:{id:"application-updates"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application-updates"}},[e._v("#")]),e._v(" Application Updates")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-enable-automatic-updates"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-enable-automatic-updates"}},[e._v("#")]),e._v(" How do I enable automatic updates?")]),e._v(" "),t("p",[e._v("From version "),t("strong",[e._v("0.9.0")]),e._v(" and onwards, Tachiyomi has had automatic updates for the app enabled by default. The "),t("strong",[e._v("Preview")]),e._v(" version also has automatic updates enabled by default.")]),e._v(" "),t("p",[e._v("However, if you think you are on an outdated version, go to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"about"}}),e._v(" and tap on "),t("strong",[e._v("Check for updates")]),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"why-are-automatic-updates-not-working"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-are-automatic-updates-not-working"}},[e._v("#")]),e._v(" Why are automatic updates not working?")]),e._v(" "),t("p",[e._v("Certain Android skins like MIUI have very aggressive battery saving, which can kill the app in the background. To whitelist Tachiyomi from your battery saver, go to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_advanced"}}),e._v(" and tap on "),t("strong",[e._v("Disable battery optimization")]),e._v(". If that does not work, you can also visit "),t("a",{attrs:{href:"https://dontkillmyapp.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DontKillMyApp"),t("OutboundLink")],1),e._v(" to see what battery saving options your device has and how to disable or circumvent them.")],1),e._v(" "),t("h4",{attrs:{id:"why-is-the-app-laggy-after-updating"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-is-the-app-laggy-after-updating"}},[e._v("#")]),e._v(" Why is the app laggy after updating?")]),e._v(" "),t("p",[e._v("The UI toolkit used in Tachiyomi requires the app the be automatically optimized by the Android system over time. You should see improvements after a few days of usage.")]),e._v(" "),t("p",[e._v("If you know how to use ADB, you can also run the following command to trigger the optimization manually.\nIf you are using Tachiyomi Preview or a fork, replace "),t("code",[e._v("eu.kanade.tachiyomi")]),e._v(" with the corresponding package name.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("adb shell cmd package compile -f -m speed-profile eu.kanade.tachiyomi\n")])])]),t("h3",{attrs:{id:"miscellaneous"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#miscellaneous"}},[e._v("#")]),e._v(" Miscellaneous")]),e._v(" "),t("h4",{attrs:{id:"what-is-tachiyomi-preview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-tachiyomi-preview"}},[e._v("#")]),e._v(" What is Tachiyomi Preview?")]),e._v(" "),t("p",[e._v("It is a weekly updated, beta version of the app. It contains features that may be added to Tachiyomi in the future and is more prone to bugs and crashes. It is intended for users who would like the bleeding edge of Tachiyomi as soon as it comes out.")]),e._v(" "),t("p",[e._v("If you are willing to use Tachiyomi Preview, be sure to "),t("RouterLink",{attrs:{to:"/help/guides/backups/#turning-on-auto-backups"}},[e._v("turn on auto-backup")]),e._v(" to prevent losing your library due to potential bugs or crashes.")],1),e._v(" "),t("h4",{attrs:{id:"what-is-a-fork"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-a-fork"}},[e._v("#")]),e._v(" What is a fork?")]),e._v(" "),t("p",[e._v("Forks are alternative versions of Tachiyomi with different features. Read more about them "),t("RouterLink",{attrs:{to:"/forks/"}},[e._v("here")]),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"why-am-i-unable-to-uninstall-tachiyomi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-am-i-unable-to-uninstall-tachiyomi"}},[e._v("#")]),e._v(" Why am I unable to uninstall Tachiyomi?")]),e._v(" "),t("p",[e._v("On "),t("strong",[e._v("Android 10")]),e._v(", a bug was introduced that prevented users from uninstalling the app if the device has a SD card inserted. To fix the issue, please remove the SD card from the device first, then uninstall Tachiyomi.")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-pause-reading-history-or-go-incognito"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-pause-reading-history-or-go-incognito"}},[e._v("#")]),e._v(" How do I pause reading history or go incognito?")]),e._v(" "),t("p",[e._v("Enable Incognito Mode by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → Incognito Mode.")],1),e._v(" "),t("h4",{attrs:{id:"can-i-make-tachiyomi-only-read-my-downloaded-chapters-why-am-i-not-able-to-disable-downloaded-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-i-make-tachiyomi-only-read-my-downloaded-chapters-why-am-i-not-able-to-disable-downloaded-only"}},[e._v("#")]),e._v(" Can I make Tachiyomi only read my downloaded chapters? Why am I not able to disable downloaded only?")]),e._v(" "),t("p",[e._v("Enable Download only by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → Download only.")],1),e._v(" "),t("h4",{attrs:{id:"what-is-dns-over-https"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-dns-over-https"}},[e._v("#")]),e._v(" What is DNS over HTTPS?")]),e._v(" "),t("p",[e._v("DNS over HTTPS is an experimental way of providing, as the name implies, DNS resolution via HTTPS.\nIt provides the advantage of not being vulnerable to Man-in-the-middle attacks (due to TLS encryption in HTTPS), preventing DNS spoofing. If you would like to learn more, go "),t("a",{attrs:{href:"https://www.cloudflare.com/learning/dns/dns-over-tls/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". It allows some blocks to be circumvented without using a VPN.")]),e._v(" "),t("p",[e._v("You can enable this feature by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_advanced"}}),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"what-should-i-do-if-i-cannot-screenshot-within-tachiyomi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-should-i-do-if-i-cannot-screenshot-within-tachiyomi"}},[e._v("#")]),e._v(" What should I do if I cannot screenshot within Tachiyomi?")]),e._v(" "),t("p",[e._v("You have Secure Screen on, disable it if you want to screenshot by going to "),t("NavigationText",{attrs:{item:"more"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" → "),t("NavigationText",{attrs:{item:"settings_security"}}),e._v(" → Secure Screen.")],1),e._v(" "),t("h4",{attrs:{id:"how-do-i-backup-my-library-automatically-how-do-i-move-data-from-one-device-to-another"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-backup-my-library-automatically-how-do-i-move-data-from-one-device-to-another"}},[e._v("#")]),e._v(" How do I backup my library automatically? How do I move data from one device to another?")]),e._v(" "),t("p",[e._v("Learn how to use the backup and restore feature "),t("RouterLink",{attrs:{to:"/help/guides/backups/"}},[e._v("here")]),e._v(", and learn how to enable automatic backups "),t("RouterLink",{attrs:{to:"/help/guides/backups/#turning-on-auto-backups/"}},[e._v("here")])],1),e._v(" "),t("h2",{attrs:{id:"extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#extensions"}},[e._v("#")]),e._v(" Extensions")]),e._v(" "),t("h3",{attrs:{id:"general-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-2"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("h4",{attrs:{id:"what-are-some-recommended-extensions-what-source-is-the-best-what-is-the-replacement-for-source-x-where-to-read-manga-y"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-are-some-recommended-extensions-what-source-is-the-best-what-is-the-replacement-for-source-x-where-to-read-manga-y"}},[e._v("#")]),e._v(" What are some recommended extensions? What source is the best? What is the replacement for source X? Where to read manga Y?")]),e._v(" "),t("p",[e._v("Tachiyomi does not endorse or recommend any manga source, and there is no best extension. Instead, we encourage users to spend some time trying out a few sources themselves and discover what sources work best for them. What works well for somebody else might not work well for you.")]),e._v(" "),t("ElAlert",{attrs:{type:"info",title:"Disclaimer",description:"Tachiyomi is not hosting any content, we are not affiliated with or responsible for any source that is; slow, down, missing chapters, or has subpar image quality.","show-icon":"",closable:!1}}),e._v(" "),t("h4",{attrs:{id:"what-are-scanlator-sources"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-are-scanlator-sources"}},[e._v("#")]),e._v(" What are scanlator sources?")]),e._v(" "),t("p",[e._v("Manga that are not officially licensed are translated by scanlators, who either publish on their websites or "),t("strong",[e._v("MangaDex")]),e._v(". This practice contrasts with official sources like "),t("strong",[e._v("MANGA Plus By SHUEISHA")]),e._v(" or "),t("strong",[e._v("VIZ Shonen Jump")]),e._v(", which host officially licensed and translated manga.")]),e._v(" "),t("p",[e._v("Learn more about scanlation in this "),t("strong",[e._v("Wikipedia")]),e._v(" "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Scanlation",target:"_blank",rel:"noopener noreferrer"}},[t("strong",[e._v("article")]),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-request-a-new-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-request-a-new-extension"}},[e._v("#")]),e._v(" How do I request a new extension?")]),e._v(" "),t("p",[e._v("Open an issue on "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(" if one does not already exist. Make sure it is not on the removed extensions list "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/3475",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(" first.")]),e._v(" "),t("div",{staticClass:"note"},[t("p"),t("p",[e._v("You can find the list of extensions to download "),t("RouterLink",{attrs:{to:"/extensions/"}},[e._v("here")])],1)]),t("p"),t("h4",{attrs:{id:"how-do-i-allow-third-party-installations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-allow-third-party-installations"}},[e._v("#")]),e._v(" How do I allow third-party installations?")]),e._v(" "),t("el-tabs",[t("el-tab-pane",{attrs:{label:"Android 8.0 and higher"}},[t("div",{staticClass:"videolink"},[t("p",[t("a",{attrs:{href:"/assets/faq_unknown-sources-a10.webm"}},[t("MaterialIcon",{attrs:{icon:"videocam"}}),e._v(" Click for Android 8.0 and newer video guide")],1)])]),t("p",[e._v("When installing your first extension and you are prompted that your device "),t("em",[e._v("is not allowed")]),e._v(" to install unknown apps from that source, follow the prompt to allow it.")]),e._v(" "),t("p",[e._v("In "),t("em",[e._v("newer")]),e._v(" versions of "),t("strong",[e._v("Android")]),e._v(", you need to enable "),t("strong",[e._v("Install unknown apps")]),e._v(" on a per-app basis.")])]),e._v(" "),t("el-tab-pane",{attrs:{label:"Android 7.1 and lower"}},[t("div",{staticClass:"videolink"},[t("p",[t("a",{attrs:{href:"/assets/faq_unknown-sources-a7.webm"}},[t("MaterialIcon",{attrs:{icon:"videocam"}}),e._v(" Click for Android 7.1 and older video guide")],1)])]),t("p",[e._v("When installing your first extension and you are prompted that your device "),t("em",[e._v("is not allowed")]),e._v(" to install unknown apps from that source, follow the prompt to allow it.")]),e._v(" "),t("p",[e._v("In "),t("em",[e._v("older")]),e._v(" versions of "),t("strong",[e._v("Android")]),e._v(", you only need to enable "),t("strong",[e._v("Unknown sources")]),e._v(" globally.")])])],1),e._v(" "),t("div",{staticClass:"note"},[t("p"),t("p",[e._v("If you need more help regarding this, read "),t("a",{attrs:{href:"https://www.theandroidsoul.com/how-to-allow-apps-installation-from-unknown-sources-on-android-9-pie/",target:"_blank",rel:"noopener noreferrer"}},[e._v("this"),t("OutboundLink")],1)])]),t("p"),t("h4",{attrs:{id:"how-do-i-uninstall-an-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-uninstall-an-extension"}},[e._v("#")]),e._v(" How do I uninstall an extension?")]),e._v(" "),t("p",[e._v("Extensions for "),t("strong",[e._v("Tachiyomi")]),e._v(" are technically installed the same as standard apps. Either you uninstall them through the app section on your device's settings or do it in "),t("strong",[e._v("Tachiyomi")]),e._v(".")]),e._v(" "),t("div",{staticClass:"guide"},[t("p",{staticClass:"title"},[e._v("GUIDE")]),t("p",[e._v("To uninstall an extension from within "),t("strong",[e._v("Tachiyomi")]),e._v(", go to "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("strong",[e._v("Extensions")]),e._v(" then tap "),t("strong",[e._v("Uninstall")]),e._v(" on the extension you want to remove.")],1)]),t("h4",{attrs:{id:"why-can-t-i-install-or-update-extensions-from-the-app-properly"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-can-t-i-install-or-update-extensions-from-the-app-properly"}},[e._v("#")]),e._v(" Why can't I install or update extensions from the app properly?")]),e._v(" "),t("p",[e._v("MIUI users (i.e. Xiaomi devices or related brands like POCO) often have issues with this. You can try:")]),e._v(" "),t("ul",[t("li",[e._v("Set your installer mode (in the app's Advanced settings) to \"Legacy\" if it isn't already.")]),e._v(" "),t("li",[e._v("Switch "),t("strong",[e._v("MIUI Optimizations")]),e._v(" under "),t("strong",[e._v("Developer Settings")]),e._v(" to "),t("strong",[e._v("OFF")]),e._v(" when installing or updating extensions.")])]),e._v(" "),t("p",[e._v("If it still doesn't work or the list of extensions doesn't load at all, manually download extensions from "),t("RouterLink",{attrs:{to:"/extensions/"}},[e._v("here")]),e._v(". If that doesn't load either, try using a VPN as that likely means your network is blocking it.")],1),e._v(" "),t("h3",{attrs:{id:"mangadex"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mangadex"}},[e._v("#")]),e._v(" MangaDex")]),e._v(" "),t("h4",{attrs:{id:"how-can-i-block-particular-scanlator-groups"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-can-i-block-particular-scanlator-groups"}},[e._v("#")]),e._v(" How can I block particular Scanlator Groups?")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("MangaDex")]),e._v(" extension allows blocking "),t("strong",[e._v("Scanlator Groups")]),e._v(". Chapters uploaded by a "),t("strong",[e._v("Blocked Scanlator Group")]),e._v(" will not show up in "),t("strong",[e._v("Latest")]),e._v(" or in "),t("strong",[e._v("Manga feed")]),e._v(" (chapters list). For now, you can only block Groups by entering their UUIDs manually.")]),e._v(" "),t("p",[e._v("Follow the following steps to easily block a group from the Tachiyomi MangaDex extension:")]),e._v(" "),t("p",[e._v("A. Finding the "),t("strong",[e._v("UUIDs")]),e._v(":")]),e._v(" "),t("ul",[t("li",[e._v("Go to "),t("a",{attrs:{href:"https://mangadex.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://mangadex.org"),t("OutboundLink")],1),e._v(" and "),t("NavigationText",{attrs:{item:"search"}}),e._v(" for the Scanlation Group that you wish to block and view their Group Details")],1),e._v(" "),t("li",[e._v("Using the URL of this page, get the 16-digit alphanumeric string which will be the UUID for that scanlation group")]),e._v(" "),t("li",[e._v("For Example:\n"),t("ul",[t("li",[e._v("The Group "),t("em",[e._v("Tristan's test scans")]),e._v(" has the URL\n"),t("ul",[t("li",[t("a",{attrs:{href:"https://mangadex.org/group/6410209a-0f39-4f51-a139-bc559ad61a4f/tristan-s-test-scans",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://mangadex.org/group/6410209a-0f39-4f51-a139-bc559ad61a4f/tristan-s-test-scans"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Therefore, their UUID will be "),t("code",[e._v("6410209a-0f39-4f51-a139-bc559ad61a4f")])])])]),e._v(" "),t("li",[e._v("Other Examples include:\n"),t("ul",[t("li",[e._v("Azuki Manga | "),t("code",[e._v("5fed0576-8b94-4f9a-b6a7-08eecd69800d")])]),e._v(" "),t("li",[e._v("Bilibili Comics | "),t("code",[e._v("06a9fecb-b608-4f19-b93c-7caab06b7f44")])]),e._v(" "),t("li",[e._v("Comikey | "),t("code",[e._v("8d8ecf83-8d42-4f8c-add8-60963f9f28d9")])]),e._v(" "),t("li",[e._v("MangaPlus | "),t("code",[e._v("4f1de6a2-f0c5-4ac5-bce5-02c7dbb67deb")])])])])])])]),e._v(" "),t("p",[e._v("B. Blocking a group using their UUID in Tachiyomi MangaDex extension "),t("code",[e._v("v1.2.150+")]),e._v(":")]),e._v(" "),t("ol",[t("li",[e._v("Go to "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("NavigationText",{attrs:{item:"extensions"}}),e._v(".")],1),e._v(" "),t("li",[e._v("Click on "),t("strong",[e._v("MangaDex")]),e._v(" extension and then "),t("NavigationText",{attrs:{item:"settings"}}),e._v(" under your Language of choice.")],1),e._v(" "),t("li",[e._v("Tap on the option "),t("strong",[e._v("Block Groups by UUID")]),e._v(" and enter the UUIDs.\n"),t("ul",[t("li",[e._v("By Default, the following groups are blocked:")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("Azuki Manga, Bilibili Comics, Comikey & MangaPlus\n")])])]),t("ul",[t("li",[e._v("Which are entered as:")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("5fed0576-8b94-4f9a-b6a7-08eecd69800d, 06a9fecb-b608-4f19-b93c-7caab06b7f44,\n8d8ecf83-8d42-4f8c-add8-60963f9f28d9, 4f1de6a2-f0c5-4ac5-bce5-02c7dbb67deb\n")])])])])]),e._v(" "),t("h3",{attrs:{id:"mangakakalot-manganelo-mangabat-and-mangairo"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mangakakalot-manganelo-mangabat-and-mangairo"}},[e._v("#")]),e._v(" Mangakakalot, Manganelo, Mangabat and Mangairo")]),e._v(" "),t("h4",{attrs:{id:"what-do-page-list-is-empty-and-source-url-has-changed-mean"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-do-page-list-is-empty-and-source-url-has-changed-mean"}},[e._v("#")]),e._v(" What do "),t("code",[e._v("Page list is empty")]),e._v(" and "),t("code",[e._v("Source URL has changed")]),e._v(" mean?")]),e._v(" "),t("p",[e._v("The former "),t("strong",[e._v("Mangabox")]),e._v(" extensions have created new entries for many of the manga on their websites. The old entries are obsolete and will not work. To resolve this, "),t("RouterLink",{attrs:{to:"/help/guides/source-migration/"}},[e._v("migrate")]),e._v(" the manga from the source to itself to get the new entry, or better yet, to a different source entirely to avoid similar errors in the future.")],1),e._v(" "),t("h3",{attrs:{id:"mangapark"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mangapark"}},[e._v("#")]),e._v(" MangaPark")]),e._v(" "),t("h4",{attrs:{id:"how-do-i-deal-with-duplicate-chapters-in-mangapark"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-deal-with-duplicate-chapters-in-mangapark"}},[e._v("#")]),e._v(" How do I deal with duplicate chapters in MangaPark?")]),e._v(" "),t("p",[e._v("To solve this issue, follow the below steps.")]),e._v(" "),t("ol",[t("li",[e._v("Go to "),t("NavigationText",{attrs:{item:"browse"}}),e._v(" → "),t("NavigationText",{attrs:{item:"extensions"}}),e._v(".")],1),e._v(" "),t("li",[e._v("Click on "),t("strong",[e._v("MangaPark")]),e._v(" extension and then "),t("strong",[e._v("Chapter List Source")]),e._v(".")]),e._v(" "),t("li",[e._v("Choose an option like "),t("strong",[e._v("Smart list")]),e._v(" or "),t("strong",[e._v("Prioritize source")]),e._v(".")]),e._v(" "),t("li",[e._v("Go back to "),t("strong",[e._v("MangaPark")]),e._v("'s chapter list and refresh it.")])]),e._v(" "),t("h3",{attrs:{id:"removed-extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#removed-extensions"}},[e._v("#")]),e._v(" Removed Extensions")]),e._v(" "),t("h4",{attrs:{id:"why-am-i-unable-to-download-an-extension-that-used-to-exist"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-am-i-unable-to-download-an-extension-that-used-to-exist"}},[e._v("#")]),e._v(" Why am I unable to download an extension that used to exist?")]),e._v(" "),t("p",[e._v("Extensions tend to be removed for a variety of reasons:")]),e._v(" "),t("ul",[t("li",[e._v("They become too much of a cat and mouse game to maintain due to the website owners changing the site frequently to deter scrapers.")]),e._v(" "),t("li",[e._v("The site scrambles images in more than one way, making it impossible to make every image unscrambleable.")]),e._v(" "),t("li",[e._v("A scanlator team requests the removal of their site from Tachiyomi.")]),e._v(" "),t("li",[e._v("The site is paywalled.")]),e._v(" "),t("li",[e._v("Require reverse engineering another app.")]),e._v(" "),t("li",[e._v("The site has been shut down.")])]),e._v(" "),t("p",[e._v("A list of extensions that have been removed is available "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/3475",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(", but it does not include sites that have gone offline.")]),e._v(" "),t("h3",{attrs:{id:"split-extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#split-extensions"}},[e._v("#")]),e._v(" Split Extensions")]),e._v(" "),t("p",[e._v("Extensions have been split due to the sheer number of extensions in a single extension, with Madara reaching over 200 extensions at one point, making it unreasonable for both devs and users to filter through extensions. For a deeper explanation of the issue, "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/4287",target:"_blank",rel:"noopener noreferrer"}},[e._v("this"),t("OutboundLink")],1),e._v(" GitHub issue explains in more detail.")]),e._v(" "),t("h4",{attrs:{id:"what-extensions-have-been-split"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-extensions-have-been-split"}},[e._v("#")]),e._v(" What extensions have been split?")]),e._v(" "),t("p",[e._v("All of them have been split.")]),e._v(" "),t("h4",{attrs:{id:"why-does-my-multisource-extension-show-up-as-obsolete"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-does-my-multisource-extension-show-up-as-obsolete"}},[e._v("#")]),e._v(" Why does my multisource extension show up as obsolete?")]),e._v(" "),t("p",[e._v("The multisource extension is obsolete because it has been split. The multisource extension has been removed from the repository. It is not actually obsolete.")]),e._v(" "),t("h5",{attrs:{id:"how-do-i-move-to-a-split-extension"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-move-to-a-split-extension"}},[e._v("#")]),e._v(" How do I move to a split extension?")]),e._v(" "),t("p",[e._v("Install the extension that your manga is from, and then uninstall the multisource extension. If the manga shows the source as a bunch of numbers, force close the app. For known issues with split extensions, go to this "),t("a",{attrs:{href:"https://github.com/tachiyomiorg/tachiyomi-extensions/issues/5672",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub issue"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"do-i-need-to-migrate"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#do-i-need-to-migrate"}},[e._v("#")]),e._v(" Do I need to migrate?")]),e._v(" "),t("p",[e._v("No, unless expressly stated, the internal ID of sources has not changed, so migration is unnecessary.")]),e._v(" "),t("h4",{attrs:{id:"what-if-i-uninstall-the-multisource-extension-before-i-install-the-singular-extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-if-i-uninstall-the-multisource-extension-before-i-install-the-singular-extensions"}},[e._v("#")]),e._v(" What if I uninstall the multisource extension before I install the singular extensions?")]),e._v(" "),t("p",[e._v("See what extension IDs correspond to what extensions "),t("a",{attrs:{href:"https://pastebin.com/raw/QX2scdRT",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"android-11"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android-11"}},[e._v("#")]),e._v(" Android 11+")]),e._v(" "),t("h3",{attrs:{id:"what-changed-in-android-11"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-changed-in-android-11"}},[e._v("#")]),e._v(" What changed in Android 11?")]),e._v(" "),t("p",[e._v("In Android 11, Google began forcing users to use "),t("a",{attrs:{href:"https://developer.android.com/about/versions/11/privacy/storage",target:"_blank",rel:"noopener noreferrer"}},[e._v("Scoped Storage"),t("OutboundLink")],1),e._v(", which was introduced in Android 5.0 Lollipop, but Google only began forcing developers to use it on Android 11. Some OEMs seem to better implement Scoped Storage than others, with some users not running into any issues while users using other device brands have multitudes of problems.")]),e._v(" "),t("h3",{attrs:{id:"what-does-it-mean-for-tachiyomi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-does-it-mean-for-tachiyomi"}},[e._v("#")]),e._v(" What does it mean for Tachiyomi?")]),e._v(" "),t("p",[e._v("The introduction of Scoped Storage means that many storage-related functions that Tachiyomi uses may be much slower due to the inherent slowness of Scoped Storage, as outlined "),t("a",{attrs:{href:"https://www.xda-developers.com/android-q-storage-access-framework-scoped-storage/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". These include deleting chapters, library load times, accessing the folders outside the data folders to download to or read from, and more.")]),e._v(" "),t("h3",{attrs:{id:"is-there-any-way-to-improve-performance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#is-there-any-way-to-improve-performance"}},[e._v("#")]),e._v(" Is there any way to improve performance?")]),e._v(" "),t("p",[e._v("If you know how to use ADB, you can try the following command to enable the old general storage interface for the app. If you are using Tachiyomi Preview or a fork, replace "),t("code",[e._v("eu.kanade.tachiyomi")]),e._v(" with the corresponding package name.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("adb shell cmd appops set eu.kanade.tachiyomi android:legacy_storage allow\n")])])]),t("h2",{attrs:{id:"shizuku"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#shizuku"}},[e._v("#")]),e._v(" Shizuku")]),e._v(" "),t("h3",{attrs:{id:"what-is-shizuku"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-shizuku"}},[e._v("#")]),e._v(" What is Shizuku?")]),e._v(" "),t("p",[e._v("Tachiyomi can use Shizuku as an alternate way to install and update extensions. It accesses system APIs to install packages directly without user input. Shizuku requires setup with ADB or root privileges. Read more about it "),t("a",{attrs:{href:"https://shizuku.rikka.app/introduction/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"do-i-need-shizuku"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#do-i-need-shizuku"}},[e._v("#")]),e._v(" Do I need Shizuku?")]),e._v(" "),t("p",[e._v("No, only use Shizuku if you want to avoid being prompted during extension installations.")]),e._v(" "),t("h3",{attrs:{id:"how-do-i-set-shizuku-up"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-set-shizuku-up"}},[e._v("#")]),e._v(" How do I set Shizuku up?")]),e._v(" "),t("p",[e._v("To learn how to set Shizuku up, go "),t("a",{attrs:{href:"https://shizuku.rikka.app/guide/setup/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". Once you have set it up, enable it in Tachiyomi by going to "),t("strong",[e._v("More")]),e._v(" → "),t("strong",[e._v("Settings")]),e._v(" → "),t("strong",[e._v("Advanced")]),e._v(" → "),t("strong",[e._v("Installer")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"what-is-the-difference-between-the-installers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-the-difference-between-the-installers"}},[e._v("#")]),e._v(" What is the difference between the installers?")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Legacy")]),e._v(": fallback method installer if the standard PackageInstaller has issues. This is the default for MIUI.")]),e._v(" "),t("li",[t("strong",[e._v("PackageInstaller")]),e._v(": The default installer. This has more features depending on the Android version, such as skipping user prompts on Android 12 when updating extensions.")]),e._v(" "),t("li",[t("strong",[e._v("Shizuku")]),e._v(": See above.")])])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/app.d1ed21e3.js b/assets/js/app.040e235d.js similarity index 99% rename from assets/js/app.d1ed21e3.js rename to assets/js/app.040e235d.js index 7249724c9..188198a93 100644 --- a/assets/js/app.d1ed21e3.js +++ b/assets/js/app.040e235d.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function t(t){for(var i,a,s=t[0],l=t[1],u=t[2],d=0,h=[];d=0&&(t=e.slice(i),e=e.slice(0,i));var r=e.indexOf("?");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{path:e,query:n,hash:t}}(o.path||""),h=t&&t.path||"/",f=u.path?C(u.path,h,n||o.append):h,p=function(e,t,n){void 0===t&&(t={});var i,r=n||d;try{i=r(e||"")}catch(e){i={}}for(var o in t){var a=t[o];i[o]=Array.isArray(a)?a.map(c):c(a)}return i}(u.query,o.query,i&&i.options.parseQuery),m=o.hash||u.hash;return m&&"#"!==m.charAt(0)&&(m="#"+m),{_normalized:!0,path:f,query:p,hash:m}}var U,Y=function(){},q={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,i=this.$route,o=n.resolve(this.to,i,this.append),a=o.location,s=o.route,l=o.href,u={},c=n.options.linkActiveClass,d=n.options.linkExactActiveClass,h=null==c?"router-link-active":c,m=null==d?"router-link-exact-active":d,v=null==this.activeClass?h:this.activeClass,g=null==this.exactActiveClass?m:this.exactActiveClass,y=s.redirectedFrom?p(null,W(s.redirectedFrom),null,n):s;u[g]=b(i,y,this.exactPath),u[v]=this.exact||this.exactPath?u[g]:function(e,t){return 0===e.path.replace(f,"/").indexOf(t.path.replace(f,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(i,y);var _=u[g]?this.ariaCurrentValue:null,w=function(e){G(e)&&(t.replace?n.replace(a,Y):n.push(a,Y))},x={click:G};Array.isArray(this.event)?this.event.forEach((function(e){x[e]=w})):x[this.event]=w;var k={class:u},C=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:l,route:s,navigate:w,isActive:u[v],isExactActive:u[g]});if(C){if(1===C.length)return C[0];if(C.length>1||!C.length)return 0===C.length?e():e("span",{},C)}if("a"===this.tag)k.on=x,k.attrs={href:l,"aria-current":_};else{var S=function e(t){var n;if(t)for(var i=0;i-1&&(s.params[h]=n.params[h]);return s.path=H(c.path,s.params),l(c,s,a)}if(s.path){s.params={};for(var f=0;f-1}function Se(e,t){return Ce(e)&&e._isRouter&&(null==t||e.type===t)}function Oe(e,t,n){var i=function(r){r>=e.length?n():e[r]?t(e[r],(function(){i(r+1)})):i(r+1)};i(0)}function Ee(e){return function(t,n,i){var r=!1,o=0,a=null;De(e,(function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){r=!0,o++;var l,u=Pe((function(t){var r;((r=t).__esModule||$e&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:U.extend(t),n.components[s]=t,--o<=0&&i()})),c=Pe((function(e){var t="Failed to resolve async component "+s+": "+e;a||(a=Ce(e)?e:new Error(t),i(a))}));try{l=e(u,c)}catch(e){c(e)}if(l)if("function"==typeof l.then)l.then(u,c);else{var d=l.component;d&&"function"==typeof d.then&&d.then(u,c)}}})),r||i()}}function De(e,t){return Te(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Te(e){return Array.prototype.concat.apply([],e)}var $e="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Pe(e){var t=!1;return function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];if(!t)return t=!0,e.apply(this,n)}}var Me=function(e,t){this.router=e,this.base=function(e){if(!e)if(K){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=v,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function je(e,t,n,i){var r=De(e,(function(e,i,r,o){var a=function(e,t){"function"!=typeof e&&(e=U.extend(e));return e.options[t]}(e,t);if(a)return Array.isArray(a)?a.map((function(e){return n(e,i,r,o)})):n(a,i,r,o)}));return Te(i?r.reverse():r)}function Ae(e,t){if(t)return function(){return e.apply(t,arguments)}}Me.prototype.listen=function(e){this.cb=e},Me.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},Me.prototype.onError=function(e){this.errorCbs.push(e)},Me.prototype.transitionTo=function(e,t,n){var i,r=this;try{i=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var o=this.current;this.confirmTransition(i,(function(){r.updateRoute(i),t&&t(i),r.ensureURL(),r.router.afterHooks.forEach((function(e){e&&e(i,o)})),r.ready||(r.ready=!0,r.readyCbs.forEach((function(e){e(i)})))}),(function(e){n&&n(e),e&&!r.ready&&(Se(e,be.redirected)&&o===v||(r.ready=!0,r.readyErrorCbs.forEach((function(t){t(e)}))))}))},Me.prototype.confirmTransition=function(e,t,n){var i=this,r=this.current;this.pending=e;var o,a,s=function(e){!Se(e)&&Ce(e)&&(i.errorCbs.length?i.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},l=e.matched.length-1,u=r.matched.length-1;if(b(e,r)&&l===u&&e.matched[l]===r.matched[u])return this.ensureURL(),e.hash&&se(this.router,r,e,!1),s(((a=xe(o=r,e,be.duplicated,'Avoided redundant navigation to current location: "'+o.fullPath+'".')).name="NavigationDuplicated",a));var c=function(e,t){var n,i=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,i=ve&&n;i&&this.listeners.push(ae());var r=function(){var n=e.current,r=Ie(e.base);e.current===v&&r===e._startLocation||e.transitionTo(r,(function(e){i&&se(t,e,n,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){ge(S(i.base+e.fullPath)),se(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){ye(S(i.base+e.fullPath)),se(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(Ie(this.base)!==this.current.fullPath){var t=S(this.base+this.current.fullPath);e?ge(t):ye(t)}},t.prototype.getCurrentLocation=function(){return Ie(this.base)},t}(Me);function Ie(e){var t=window.location.pathname,n=t.toLowerCase(),i=e.toLowerCase();return!e||n!==i&&0!==n.indexOf(S(i+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var Le=function(e){function t(t,n,i){e.call(this,t,n),i&&function(e){var t=Ie(e);if(!/^\/#/.test(t))return window.location.replace(S(e+"/#"+t)),!0}(this.base)||Fe()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=ve&&t;n&&this.listeners.push(ae());var i=function(){var t=e.current;Fe()&&e.transitionTo(Be(),(function(i){n&&se(e.router,i,t,!0),ve||ze(i.fullPath)}))},r=ve?"popstate":"hashchange";window.addEventListener(r,i),this.listeners.push((function(){window.removeEventListener(r,i)}))}},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){Re(e.fullPath),se(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){ze(e.fullPath),se(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Be()!==t&&(e?Re(t):ze(t))},t.prototype.getCurrentLocation=function(){return Be()},t}(Me);function Fe(){var e=Be();return"/"===e.charAt(0)||(ze("/"+e),!1)}function Be(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function Ve(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function Re(e){ve?ge(Ve(e)):window.location.hash=e}function ze(e){ve?ye(Ve(e)):window.location.replace(Ve(e))}var He=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var i=this;this.transitionTo(e,(function(e){i.stack=i.stack.slice(0,i.index+1).concat(e),i.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this;this.transitionTo(e,(function(e){i.stack=i.stack.slice(0,i.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var i=this.stack[n];this.confirmTransition(i,(function(){var e=t.current;t.index=n,t.updateRoute(i),t.router.afterHooks.forEach((function(t){t&&t(i,e)}))}),(function(e){Se(e,be.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(Me),We=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=J(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ve&&!1!==e.fallback,this.fallback&&(t="hash"),K||(t="abstract"),this.mode=t,t){case"history":this.history=new Ne(this,e.base);break;case"hash":this.history=new Le(this,e.base,this.fallback);break;case"abstract":this.history=new He(this,e.base);break;default:0}},Ue={currentRoute:{configurable:!0}};We.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},Ue.currentRoute.get=function(){return this.history&&this.history.current},We.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof Ne||n instanceof Le){var i=function(e){n.setupListeners(),function(e){var i=n.current,r=t.options.scrollBehavior;ve&&r&&"fullPath"in e&&se(t,e,i,!1)}(e)};n.transitionTo(n.getCurrentLocation(),i,i)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},We.prototype.beforeEach=function(e){return qe(this.beforeHooks,e)},We.prototype.beforeResolve=function(e){return qe(this.resolveHooks,e)},We.prototype.afterEach=function(e){return qe(this.afterHooks,e)},We.prototype.onReady=function(e,t){this.history.onReady(e,t)},We.prototype.onError=function(e){this.history.onError(e)},We.prototype.push=function(e,t,n){var i=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){i.history.push(e,t,n)}));this.history.push(e,t,n)},We.prototype.replace=function(e,t,n){var i=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){i.history.replace(e,t,n)}));this.history.replace(e,t,n)},We.prototype.go=function(e){this.history.go(e)},We.prototype.back=function(){this.go(-1)},We.prototype.forward=function(){this.go(1)},We.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},We.prototype.resolve=function(e,t,n){var i=W(e,t=t||this.history.current,n,this),r=this.match(i,t),o=r.redirectedFrom||r.fullPath;return{location:i,route:r,href:function(e,t,n){var i="hash"===n?"#"+t:t;return e?S(e+"/"+i):i}(this.history.base,o,this.mode),normalizedTo:i,resolved:r}},We.prototype.getRoutes=function(){return this.matcher.getRoutes()},We.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==v&&this.history.transitionTo(this.history.getCurrentLocation())},We.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==v&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(We.prototype,Ue);var Ye=We;function qe(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}We.install=function e(t){if(!e.installed||U!==t){e.installed=!0,U=t;var n=function(e){return void 0!==e},i=function(e,t){var i=e.$options._parentVnode;n(i)&&n(i=i.data)&&n(i=i.registerRouteInstance)&&i(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,i(this,this)},destroyed:function(){i(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",x),t.component("RouterLink",q);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}},We.version="3.6.5",We.isNavigationFailure=Se,We.NavigationFailureType=be,We.START_LOCATION=v,K&&window.Vue&&window.Vue.use(We);n(182);n(102),n(218);var Ge={NotFound:()=>n.e(26).then(n.bind(null,524)),Layout:()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(10)]).then(n.bind(null,519))},Ke={"v-0bb9f4a1":()=>n.e(27).then(n.bind(null,538)),"v-0827d991":()=>n.e(28).then(n.bind(null,539)),"v-0efeb151":()=>n.e(29).then(n.bind(null,540)),"v-9c1e9f58":()=>n.e(30).then(n.bind(null,541)),"v-7305bddd":()=>n.e(31).then(n.bind(null,542)),"v-508a131a":()=>Promise.all([n.e(0),n.e(25)]).then(n.bind(null,543)),"v-a2df3ad4":()=>n.e(32).then(n.bind(null,544)),"v-87324e0c":()=>n.e(33).then(n.bind(null,545)),"v-36a56031":()=>n.e(34).then(n.bind(null,546)),"v-4ffc124c":()=>n.e(35).then(n.bind(null,547)),"v-7a5dd191":()=>n.e(36).then(n.bind(null,548)),"v-7f46277a":()=>n.e(37).then(n.bind(null,549)),"v-a6ef4b8c":()=>n.e(38).then(n.bind(null,550)),"v-20824d5a":()=>n.e(39).then(n.bind(null,551)),"v-c2c0fecc":()=>n.e(40).then(n.bind(null,552)),"v-b79f700c":()=>n.e(41).then(n.bind(null,553)),"v-088bcdba":()=>n.e(42).then(n.bind(null,554)),"v-5c7abe44":()=>n.e(43).then(n.bind(null,555)),"v-4efcdccc":()=>n.e(44).then(n.bind(null,556)),"v-18ae6a2f":()=>n.e(45).then(n.bind(null,557)),"v-04f7059e":()=>n.e(46).then(n.bind(null,558)),"v-56dfe86c":()=>n.e(47).then(n.bind(null,559)),"v-53f91a9a":()=>n.e(48).then(n.bind(null,560))};function Xe(e){const t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}const Ze=/-(\w)/g,Je=Xe(e=>e.replace(Ze,(e,t)=>t?t.toUpperCase():"")),Qe=/\B([A-Z])/g,et=Xe(e=>e.replace(Qe,"-$1").toLowerCase()),tt=Xe(e=>e.charAt(0).toUpperCase()+e.slice(1));function nt(e,t){if(!t)return;if(e(t))return e(t);return t.includes("-")?e(tt(Je(t))):e(tt(t))||e(et(t))}const it=Object.assign({},Ge,Ke),rt=e=>it[e],ot=e=>Ke[e],at=e=>Ge[e],st=e=>i.default.component(e);function lt(e){return nt(ot,e)}function ut(e){return nt(at,e)}function ct(e){return nt(rt,e)}function dt(e){return nt(st,e)}function ht(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!dt(e)&&ct(e)){const t=await ct(e)();i.default.component(e,t.default)}}))}function ft(e,t){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[e]=t)}var pt=n(176),mt=n.n(pt),vt=n(177),gt=n.n(vt),yt={created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,t])=>t),this.$ssrContext){const t=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=t)?e.map(e=>{let t="{t+=` ${n}="${gt()(e[n])}"`}),t+">"}).join("\n "):"",this.$ssrContext.canonicalLink=_t(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=wt(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return mt()([{name:"description",content:this.$description}],e,this.siteMeta,xt)},updateCanonicalLink(){bt(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",_t(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){wt(null,this.currentMetaTags),bt()}};function bt(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function _t(e=""){return e?``:""}function wt(e,t){if(t&&[...t].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const t=document.createElement("meta");return Object.keys(e).forEach(n=>{t.setAttribute(n,e[n])}),document.head.appendChild(t),t})}function xt(e){for(const t of["name","property","itemprop"])if(e.hasOwnProperty(t))return e[t]+t;return JSON.stringify(e)}var kt=n(53),Ct=n.n(kt),St={mounted(){Ct.a.configure({showSpinner:!1}),this.$router.beforeEach((e,t,n)=>{e.path===t.path||i.default.component(e.name)||Ct.a.start(),n()}),this.$router.afterEach(()=>{Ct.a.done(),this.isSidebarOpen=!1})}},Ot=n(178),Et=n.n(Ot),Dt={mounted(){Et.a.polyfill()}},Tt=n(51),$t=n.n(Tt),Pt={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:$t()((function(){this.setActiveHash()}),300),setActiveHash(){const e=[].slice.call(document.querySelectorAll(".sidebar-link")),t=[].slice.call(document.querySelectorAll(".header-anchor")).filter(t=>e.some(e=>e.hash===t.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),i=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),r=window.innerHeight+n;for(let e=0;e=o.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Mt="auto",jt="zoom-in",At="zoom-out",Nt="grab",It="move";function Lt(e,t,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r={passive:!1};i?e.addEventListener(t,n,r):e.removeEventListener(t,n,r)}function Ft(e,t){if(e){var n=new Image;n.onload=function(){t&&t(n)},n.src=e}}function Bt(e){return e.dataset.original?e.dataset.original:"A"===e.parentNode.tagName?e.parentNode.getAttribute("href"):null}function Vt(e,t,n){!function(e){var t=Rt,n=zt;if(e.transition){var i=e.transition;delete e.transition,e[t]=i}if(e.transform){var r=e.transform;delete e.transform,e[n]=r}}(t);var i=e.style,r={};for(var o in t)n&&(r[o]=i[o]||""),i[o]=t[o];return r}var Rt="transition",zt="transform",Ht="transform",Wt="transitionend";var Ut=function(){},Yt={enableGrab:!0,preloadImage:!1,closeOnWindowResize:!0,transitionDuration:.4,transitionTimingFunction:"cubic-bezier(0.4, 0, 0, 1)",bgColor:"rgb(255, 255, 255)",bgOpacity:1,scaleBase:1,scaleExtra:.5,scrollThreshold:40,zIndex:998,customSize:null,onOpen:Ut,onClose:Ut,onGrab:Ut,onMove:Ut,onRelease:Ut,onBeforeOpen:Ut,onBeforeClose:Ut,onBeforeGrab:Ut,onBeforeRelease:Ut,onImageLoading:Ut,onImageLoaded:Ut},qt={init:function(e){var t,n;t=this,n=e,Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach((function(e){t[e]=t[e].bind(n)}))},click:function(e){if(e.preventDefault(),Kt(e))return window.open(this.target.srcOriginal||e.currentTarget.src,"_blank");this.shown?this.released?this.close():this.release():this.open(e.currentTarget)},scroll:function(){var e=document.documentElement||document.body.parentNode||document.body,t=window.pageXOffset||e.scrollLeft,n=window.pageYOffset||e.scrollTop;null===this.lastScrollPosition&&(this.lastScrollPosition={x:t,y:n});var i=this.lastScrollPosition.x-t,r=this.lastScrollPosition.y-n,o=this.options.scrollThreshold;(Math.abs(r)>=o||Math.abs(i)>=o)&&(this.lastScrollPosition=null,this.close())},keydown:function(e){(function(e){return"Escape"===(e.key||e.code)||27===e.keyCode})(e)&&(this.released?this.close():this.release(this.close))},mousedown:function(e){if(Gt(e)&&!Kt(e)){e.preventDefault();var t=e.clientX,n=e.clientY;this.pressTimer=setTimeout(function(){this.grab(t,n)}.bind(this),200)}},mousemove:function(e){this.released||this.move(e.clientX,e.clientY)},mouseup:function(e){Gt(e)&&!Kt(e)&&(clearTimeout(this.pressTimer),this.released?this.close():this.release())},touchstart:function(e){e.preventDefault();var t=e.touches[0],n=t.clientX,i=t.clientY;this.pressTimer=setTimeout(function(){this.grab(n,i)}.bind(this),200)},touchmove:function(e){if(!this.released){var t=e.touches[0],n=t.clientX,i=t.clientY;this.move(n,i)}},touchend:function(e){(function(e){e.targetTouches.length})(e)||(clearTimeout(this.pressTimer),this.released?this.close():this.release())},clickOverlay:function(){this.close()},resizeWindow:function(){this.close()}};function Gt(e){return 0===e.button}function Kt(e){return e.metaKey||e.ctrlKey}var Xt={init:function(e){this.el=document.createElement("div"),this.instance=e,this.parent=document.body,Vt(this.el,{position:"fixed",top:0,left:0,right:0,bottom:0,opacity:0}),this.updateStyle(e.options),Lt(this.el,"click",e.handler.clickOverlay.bind(e))},updateStyle:function(e){Vt(this.el,{zIndex:e.zIndex,backgroundColor:e.bgColor,transition:"opacity\n "+e.transitionDuration+"s\n "+e.transitionTimingFunction})},insert:function(){this.parent.appendChild(this.el)},remove:function(){this.parent.removeChild(this.el)},fadeIn:function(){this.el.offsetWidth,this.el.style.opacity=this.instance.options.bgOpacity},fadeOut:function(){this.el.style.opacity=0}},Zt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Jt=function(){function e(e,t){for(var n=0;nm||h>v)return{x:m,y:v}}return{x:h,y:h}}};function tn(){var e=document.documentElement;return{x:Math.min(e.clientWidth,window.innerWidth)/2,y:Math.min(e.clientHeight,window.innerHeight)/2}}function nn(e,t,n){["mousedown","mousemove","mouseup","touchstart","touchmove","touchend"].forEach((function(i){Lt(e,i,t[i],n)}))}var rn=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.target=Object.create(en),this.overlay=Object.create(Xt),this.handler=Object.create(qt),this.body=document.body,this.shown=!1,this.lock=!1,this.released=!0,this.lastScrollPosition=null,this.pressTimer=null,this.options=Qt({},Yt,t),this.overlay.init(this),this.handler.init(this)}return Jt(e,[{key:"listen",value:function(e){if("string"==typeof e)for(var t=document.querySelectorAll(e),n=t.length;n--;)this.listen(t[n]);else"IMG"===e.tagName&&(e.style.cursor=jt,Lt(e,"click",this.handler.click),this.options.preloadImage&&Ft(Bt(e)));return this}},{key:"config",value:function(e){return e?(Qt(this.options,e),this.overlay.updateStyle(this.options),this):this.options}},{key:"open",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.onOpen;if(!this.shown&&!this.lock){var i="string"==typeof e?document.querySelector(e):e;if("IMG"===i.tagName){if(this.options.onBeforeOpen(i),this.target.init(i,this),!this.options.preloadImage){var r=this.target.srcOriginal;null!=r&&(this.options.onImageLoading(i),Ft(r,this.options.onImageLoaded))}this.shown=!0,this.lock=!0,this.target.zoomIn(),this.overlay.insert(),this.overlay.fadeIn(),Lt(document,"scroll",this.handler.scroll),Lt(document,"keydown",this.handler.keydown),this.options.closeOnWindowResize&&Lt(window,"resize",this.handler.resizeWindow);var o=function e(){Lt(i,Wt,e,!1),t.lock=!1,t.target.upgradeSource(),t.options.enableGrab&&nn(document,t.handler,!0),n(i)};return Lt(i,Wt,o),this}}}},{key:"close",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onClose;if(this.shown&&!this.lock){var n=this.target.el;this.options.onBeforeClose(n),this.lock=!0,this.body.style.cursor=Mt,this.overlay.fadeOut(),this.target.zoomOut(),Lt(document,"scroll",this.handler.scroll,!1),Lt(document,"keydown",this.handler.keydown,!1),this.options.closeOnWindowResize&&Lt(window,"resize",this.handler.resizeWindow,!1);var i=function i(){Lt(n,Wt,i,!1),e.shown=!1,e.lock=!1,e.target.downgradeSource(),e.options.enableGrab&&nn(document,e.handler,!1),e.target.restoreCloseStyle(),e.overlay.remove(),t(n)};return Lt(n,Wt,i),this}}},{key:"grab",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.options.scaleExtra,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.options.onGrab;if(this.shown&&!this.lock){var r=this.target.el;this.options.onBeforeGrab(r),this.released=!1,this.target.grab(e,t,n);var o=function e(){Lt(r,Wt,e,!1),i(r)};return Lt(r,Wt,o),this}}},{key:"move",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.options.scaleExtra,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.options.onMove;if(this.shown&&!this.lock){this.released=!1,this.body.style.cursor=It,this.target.move(e,t,n);var r=this.target.el,o=function e(){Lt(r,Wt,e,!1),i(r)};return Lt(r,Wt,o),this}}},{key:"release",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onRelease;if(this.shown&&!this.lock){var n=this.target.el;this.options.onBeforeRelease(n),this.lock=!0,this.body.style.cursor=Mt,this.target.restoreOpenStyle();var i=function i(){Lt(n,Wt,i,!1),e.lock=!1,e.released=!0,t(n)};return Lt(n,Wt,i),this}}}]),e}();const on=JSON.parse('{"bgColor":"black","bgOpacity":"0.8"}'),an=Number("1000");class sn{constructor(){this.instance=new rn(on)}update(e=".theme-default-content img.zoomable"){"undefined"!=typeof window&&this.instance.listen(e)}updateDelay(e=".theme-default-content img.zoomable",t=an){setTimeout(()=>this.update(e),t)}}var ln=[yt,St,Dt,Pt,{watch:{"$page.path"(){void 0!==this.$vuepress.zooming&&this.$vuepress.zooming.updateDelay()}},mounted(){this.$vuepress.zooming=new sn,this.$vuepress.zooming.updateDelay()}}],un={name:"GlobalLayout",computed:{layout(){const e=this.getLayout();return ft("layout",e),i.default.component(e)}},methods:{getLayout(){if(this.$page.path){const e=this.$page.frontmatter.layout;return e&&(this.$vuepress.getLayoutAsyncComponent(e)||this.$vuepress.getVueComponent(e))?e:"Layout"}return"NotFound"}}},cn=n(12),dn=Object(cn.a)(un,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(e,t,n){switch(t){case"components":e[t]||(e[t]={}),Object.assign(e[t],n);break;case"mixins":e[t]||(e[t]=[]),e[t].push(...n);break;default:throw new Error("Unknown option name.")}}(dn,"mixins",ln);const hn=[{name:"v-0bb9f4a1",path:"/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-0bb9f4a1").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-0827d991",path:"/download/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-0827d991").then(n)}},{path:"/download/index.html",redirect:"/download/"},{name:"v-0efeb151",path:"/extensions/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-0efeb151").then(n)}},{path:"/extensions/index.html",redirect:"/extensions/"},{name:"v-9c1e9f58",path:"/forks/Neko/",component:dn,beforeEnter:(e,t,n)=>{ht("ForkPage","v-9c1e9f58").then(n)}},{path:"/forks/Neko/index.html",redirect:"/forks/Neko/"},{path:"/forks/Neko.html",redirect:"/forks/Neko/"},{name:"v-7305bddd",path:"/forks/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-7305bddd").then(n)}},{path:"/forks/index.html",redirect:"/forks/"},{name:"v-508a131a",path:"/forks/TachiyomiAZ/",component:dn,beforeEnter:(e,t,n)=>{ht("ForkPage","v-508a131a").then(n)}},{path:"/forks/TachiyomiAZ/index.html",redirect:"/forks/TachiyomiAZ/"},{path:"/forks/TachiyomiAZ.html",redirect:"/forks/TachiyomiAZ/"},{name:"v-a2df3ad4",path:"/forks/TachiyomiJ2K/",component:dn,beforeEnter:(e,t,n)=>{ht("ForkPage","v-a2df3ad4").then(n)}},{path:"/forks/TachiyomiJ2K/index.html",redirect:"/forks/TachiyomiJ2K/"},{path:"/forks/TachiyomiJ2K.html",redirect:"/forks/TachiyomiJ2K/"},{name:"v-87324e0c",path:"/forks/TachiyomiSY/",component:dn,beforeEnter:(e,t,n)=>{ht("ForkPage","v-87324e0c").then(n)}},{path:"/forks/TachiyomiSY/index.html",redirect:"/forks/TachiyomiSY/"},{path:"/forks/TachiyomiSY.html",redirect:"/forks/TachiyomiSY/"},{name:"v-36a56031",path:"/help/",component:dn,beforeEnter:(e,t,n)=>{ht("HelpPage","v-36a56031").then(n)}},{path:"/help/index.html",redirect:"/help/"},{name:"v-4ffc124c",path:"/help/contribution/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-4ffc124c").then(n)}},{path:"/help/contribution/index.html",redirect:"/help/contribution/"},{path:"/help/contribution.html",redirect:"/help/contribution/"},{name:"v-7a5dd191",path:"/help/faq/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-7a5dd191").then(n)}},{path:"/help/faq/index.html",redirect:"/help/faq/"},{name:"v-7f46277a",path:"/help/guides/backups/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-7f46277a").then(n)}},{path:"/help/guides/backups/index.html",redirect:"/help/guides/backups/"},{path:"/help/guides/backups.html",redirect:"/help/guides/backups/"},{name:"v-a6ef4b8c",path:"/help/guides/categories/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-a6ef4b8c").then(n)}},{path:"/help/guides/categories/index.html",redirect:"/help/guides/categories/"},{path:"/help/guides/categories.html",redirect:"/help/guides/categories/"},{name:"v-20824d5a",path:"/help/guides/getting-started/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-20824d5a").then(n)}},{path:"/help/guides/getting-started/index.html",redirect:"/help/guides/getting-started/"},{path:"/help/guides/getting-started.html",redirect:"/help/guides/getting-started/"},{name:"v-c2c0fecc",path:"/help/guides/local-manga/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-c2c0fecc").then(n)}},{path:"/help/guides/local-manga/index.html",redirect:"/help/guides/local-manga/"},{path:"/help/guides/local-manga.html",redirect:"/help/guides/local-manga/"},{name:"v-b79f700c",path:"/help/guides/reader-settings/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-b79f700c").then(n)}},{path:"/help/guides/reader-settings/index.html",redirect:"/help/guides/reader-settings/"},{path:"/help/guides/reader-settings.html",redirect:"/help/guides/reader-settings/"},{name:"v-088bcdba",path:"/help/guides/source-migration/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-088bcdba").then(n)}},{path:"/help/guides/source-migration/index.html",redirect:"/help/guides/source-migration/"},{path:"/help/guides/source-migration.html",redirect:"/help/guides/source-migration/"},{name:"v-5c7abe44",path:"/help/guides/tracking/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-5c7abe44").then(n)}},{path:"/help/guides/tracking/index.html",redirect:"/help/guides/tracking/"},{path:"/help/guides/tracking.html",redirect:"/help/guides/tracking/"},{name:"v-4efcdccc",path:"/help/guides/troubleshooting/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-4efcdccc").then(n)}},{path:"/help/guides/troubleshooting/index.html",redirect:"/help/guides/troubleshooting/"},{path:"/help/guides/troubleshooting.html",redirect:"/help/guides/troubleshooting/"},{name:"v-18ae6a2f",path:"/privacy/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-18ae6a2f").then(n)}},{path:"/privacy/index.html",redirect:"/privacy/"},{name:"v-04f7059e",path:"/sandbox/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-04f7059e").then(n)}},{path:"/sandbox/index.html",redirect:"/sandbox/"},{name:"v-56dfe86c",path:"/sandbox/element-ui/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-56dfe86c").then(n)}},{path:"/sandbox/element-ui/index.html",redirect:"/sandbox/element-ui/"},{path:"/sandbox/element-ui.html",redirect:"/sandbox/element-ui/"},{name:"v-53f91a9a",path:"/sandbox/style-guide/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-53f91a9a").then(n)}},{path:"/sandbox/style-guide/index.html",redirect:"/sandbox/style-guide/"},{path:"/sandbox/style-guide.html",redirect:"/sandbox/style-guide/"},{path:"*",component:dn}],fn={title:"Tachiyomi",description:"Free and open source manga reader for Android",base:"/",headTags:[["link",{rel:"icon",href:"/favicon.ico"}],["meta",{name:"theme-color",content:"#2e84bf"}],["meta",{prefix:"og: http://ogp.me/ns#",property:"og:image",content:"https://tachiyomi.org/icons/logo.png"}],["meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}],["link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossorigin:""}],["link",{rel:"stylesheet",href:"https://fonts.googleapis.com/css?family=Open+Sans"}],["script",{src:"/scripts/remove_service_worker.js"}]],pages:[{title:"Home",frontmatter:{home:!0,meta:[{name:"keywords",content:"Download, Official, Android app, Manga"}],lang:"en-US",heroImage:"/icons/logo.svg",buttonDownload:"Download",buttonDownloadLink:"/download/",buttonGuides:"User Guide",buttonGuidesLink:"/help/guides/getting-started",features:[{title:"Extensions",details:"Online and offline reading from over a thousand sources",image:"library"},{title:"Tracking",details:"Automatically keep track of your manga with MyAnimeList, AniList, MangaUpdates, Shikimori, Bangumi, and Kitsu",image:"tracking"},{title:"Customization",details:"A configurable reader with multiple reading modes, custom color filters, and other settings",image:"reader"}]},regularPath:"/",relativePath:"README.md",key:"v-0bb9f4a1",path:"/",lastUpdated:"9 months ago",lastUpdatedTimestamp:1666972799e3},{title:"Download",frontmatter:{title:"Download",description:"Download links for the latest versions of Tachiyomi.",meta:[{name:"keywords",content:"Download, Official, Android app, Manga, APK"}],lang:"en-US"},regularPath:"/download/",relativePath:"download/README.md",key:"v-0827d991",path:"/download/",lastUpdated:"3 years ago",lastUpdatedTimestamp:1600116e6},{title:"Extensions",frontmatter:{title:"Extensions",description:"List of available extensions to use with Tachiyomi, you can download them from here or from the app.",lang:"en-US"},regularPath:"/extensions/",relativePath:"extensions/README.md",key:"v-0efeb151",path:"/extensions/",lastUpdated:"2 years ago",lastUpdatedTimestamp:163892873e4},{title:"Neko",frontmatter:{layout:"ForkPage",title:"Neko",metaTitle:"Neko",description:"MangaDex specific fork of Tachiyomi and TachiyomiJ2K. With a focus on MangaDex specific features.",lang:"en-US",meta:[{property:"og:image",content:"/assets/forks_logo-neko.png"},{name:"theme-color",content:"#FD6684"},{name:"msapplication-TileColor",content:"#FD6684"}],sidebar:!1},regularPath:"/forks/Neko.html",relativePath:"forks/Neko.md",key:"v-9c1e9f58",path:"/forks/Neko/",headers:[{level:2,title:"About",slug:"about"},{level:2,title:"Credits",slug:"credits"},{level:2,title:"Disclaimer",slug:"disclaimer"}],lastUpdated:"4 months ago",lastUpdatedTimestamp:1678997934e3},{title:"Forks",frontmatter:{title:"Forks",description:"Forks are alternative versions of Tachiyomi with exclusive features.",lang:"en-US",sidebar:!0,sidebarDepth:1},regularPath:"/forks/",relativePath:"forks/README.md",key:"v-7305bddd",path:"/forks/",headers:[{level:2,title:"Neko",slug:"neko"},{level:2,title:"TachiyomiJ2K",slug:"tachiyomij2k"},{level:2,title:"TachiyomiAZ",slug:"tachiyomiaz"},{level:2,title:"TachiyomiSY",slug:"tachiyomisy"}],lastUpdated:"7 months ago",lastUpdatedTimestamp:1673151549e3},{title:"TachiyomiAZ",frontmatter:{layout:"ForkPage",title:"TachiyomiAZ",metaTitle:"TachiyomiAZ",description:"This fork is based off of TachiyomiEH. It ports features and fixes from other Tachiyomi forks back to the old Tachiyomi hamburger UI.",lang:"en-US",meta:[{property:"og:image",content:"/assets/forks_logo-az.png"},{name:"theme-color",content:"#FFCC4D"},{name:"msapplication-TileColor",content:"#FFCC4D"}],sidebar:!1},regularPath:"/forks/TachiyomiAZ.html",relativePath:"forks/TachiyomiAZ.md",key:"v-508a131a",path:"/forks/TachiyomiAZ/",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Features",slug:"features"}],lastUpdated:"7 months ago",lastUpdatedTimestamp:1673151549e3},{title:"TachiyomiJ2K",frontmatter:{layout:"ForkPage",title:"TachiyomiJ2K",metaTitle:"TachiyomiJ2K",description:"This fork takes a new approach to the design of the base app along with several other enhancements.",lang:"en-US",meta:[{property:"og:image",content:"/assets/forks_logo-j2k.png"},{name:"theme-color",content:"#0952AF"},{name:"msapplication-TileColor",content:"#0952AF"}],sidebar:!1},regularPath:"/forks/TachiyomiJ2K.html",relativePath:"forks/TachiyomiJ2K.md",key:"v-a2df3ad4",path:"/forks/TachiyomiJ2K/",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Features",slug:"features"}],lastUpdated:"7 months ago",lastUpdatedTimestamp:1673151549e3},{title:"TachiyomiSY",frontmatter:{layout:"ForkPage",title:"TachiyomiSY",metaTitle:"TachiyomiSY",description:"This fork adds quite a few custom unique features, it also has new features from the latest Tachiyomi version as well as from other forks such as TachiyomiJ2K.",lang:"en-US",meta:[{property:"og:image",content:"/assets/forks_logo-sy.png"},{name:"theme-color",content:"#BE0F6E"},{name:"msapplication-TileColor",content:"#BE0F6E"}],sidebar:!1},regularPath:"/forks/TachiyomiSY.html",relativePath:"forks/TachiyomiSY.md",key:"v-87324e0c",path:"/forks/TachiyomiSY/",headers:[{level:2,title:"About",slug:"about"},{level:2,title:"Features",slug:"features"},{level:2,title:"Credits",slug:"credits"},{level:2,title:"Disclaimer",slug:"disclaimer"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:1628632675e3},{title:"Help Center",frontmatter:{layout:"HelpPage",title:"Help Center",description:"From common questions to guides, find help for everything Tachiyomi.",lang:"en-US",hideSearch:!0,help:[{title:"FAQ",description:"About app-related things",link:"/help/faq/",faq:!0},{title:"Troubleshooting",description:"Fix common issues",link:"/help/guides/troubleshooting/",fixProblems:!0},{title:"Guides",description:"How to use the app",link:"/help/guides/getting-started/",guides:!0,extensions:!0},{title:"Forks",description:"Alternative versions",link:"/forks/",forks:!0},{title:"Contribution",description:"Help contribute to the app",link:"/help/contribution/",contribution:!0}]},regularPath:"/help/",relativePath:"help/README.md",key:"v-36a56031",path:"/help/",headers:[{level:3,title:"Need help? We've got your back.",slug:"need-help-we-ve-got-your-back"}],lastUpdated:"a year ago",lastUpdatedTimestamp:1658026292e3},{title:"Contribution",frontmatter:{title:"Contribution",description:"Find out how to help translate or build the app and extensions.",lang:"en-US"},regularPath:"/help/contribution.html",relativePath:"help/contribution.md",key:"v-4ffc124c",path:"/help/contribution/",headers:[{level:2,title:"Code",slug:"code"},{level:3,title:"Application",slug:"application"},{level:3,title:"Extensions",slug:"extensions"},{level:3,title:"Website",slug:"website"},{level:2,title:"Translation",slug:"translation"},{level:2,title:"Donation",slug:"donation"}],lastUpdated:"8 months ago",lastUpdatedTimestamp:1668961595e3},{title:"Frequently Asked Questions",frontmatter:{title:"Frequently Asked Questions",description:"Need help with something? Most of your issues can probably be solved from this page.",lang:"en-US",sidebarDepth:2},regularPath:"/help/faq/",relativePath:"help/faq/README.md",key:"v-7a5dd191",path:"/help/faq/",headers:[{level:2,title:"Application",slug:"application"},{level:3,title:"General",slug:"general"},{level:3,title:"Library",slug:"library"},{level:3,title:"Browse",slug:"browse"},{level:3,title:"Reader",slug:"reader"},{level:3,title:"Downloads",slug:"downloads"},{level:3,title:"Local Manga",slug:"local-manga"},{level:3,title:"Application Updates",slug:"application-updates"},{level:3,title:"Miscellaneous",slug:"miscellaneous"},{level:2,title:"Extensions",slug:"extensions"},{level:3,title:"General",slug:"general-2"},{level:3,title:"MangaDex",slug:"mangadex"},{level:3,title:"Mangakakalot, Manganelo, Mangabat and Mangairo",slug:"mangakakalot-manganelo-mangabat-and-mangairo"},{level:3,title:"MangaPark",slug:"mangapark"},{level:3,title:"Removed Extensions",slug:"removed-extensions"},{level:3,title:"Split Extensions",slug:"split-extensions"},{level:2,title:"Android 11+",slug:"android-11"},{level:3,title:"What changed in Android 11?",slug:"what-changed-in-android-11"},{level:3,title:"What does it mean for Tachiyomi?",slug:"what-does-it-mean-for-tachiyomi"},{level:3,title:"Is there any way to improve performance?",slug:"is-there-any-way-to-improve-performance"},{level:2,title:"Shizuku",slug:"shizuku"},{level:3,title:"What is Shizuku?",slug:"what-is-shizuku"},{level:3,title:"Do I need Shizuku?",slug:"do-i-need-shizuku"},{level:3,title:"How do I set Shizuku up?",slug:"how-do-i-set-shizuku-up"},{level:3,title:"What is the difference between the installers?",slug:"what-is-the-difference-between-the-installers"}],lastUpdated:"2 months ago",lastUpdatedTimestamp:1686405199e3},{title:"Backups",frontmatter:{title:"Backups",description:"Backups can save you a lot of headache in case something happens to your installation or device.",lang:"en-US"},regularPath:"/help/guides/backups.html",relativePath:"help/guides/backups.md",key:"v-7f46277a",path:"/help/guides/backups/",headers:[{level:2,title:"How do I restore a backup?",slug:"how-do-i-restore-a-backup"},{level:2,title:"How can I make my new install of Tachiyomi detect my old downloads?",slug:"how-can-i-make-my-new-install-of-tachiyomi-detect-my-old-downloads"},{level:2,title:"How do I make Tachiyomi automatically backup?",slug:"how-do-i-make-tachiyomi-automatically-backup"},{level:2,title:"Forks information",slug:"forks-information"},{level:3,title:"Neko",slug:"neko"},{level:3,title:"TachiyomiSY",slug:"tachiyomiaz-and-tachiyomisy"}],lastUpdated:"7 months ago",lastUpdatedTimestamp:1673151549e3},{title:"Categories",frontmatter:{title:"Categories",description:"Store your manga in custom categories, which help you keep your library neat and organized.",lang:"en-US"},regularPath:"/help/guides/categories.html",relativePath:"help/guides/categories.md",key:"v-a6ef4b8c",path:"/help/guides/categories/",headers:[{level:2,title:"Create a category",slug:"create-a-category"},{level:2,title:"Edit a category",slug:"edit-a-category"},{level:2,title:"Change category order",slug:"change-category-order"},{level:2,title:"Delete a category",slug:"delete-a-category"},{level:2,title:"Add manga to category",slug:"add-manga-to-category"},{level:2,title:"Remove manga from category",slug:"remove-manga-from-category"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:163892873e4},{title:"Getting started",frontmatter:{title:"Getting started",description:"Essential information to help you get set up with Tachiyomi.",lang:"en-US"},regularPath:"/help/guides/getting-started.html",relativePath:"help/guides/getting-started.md",key:"v-20824d5a",path:"/help/guides/getting-started/",headers:[{level:2,title:"Installation",slug:"installation"},{level:2,title:"Installing an extension",slug:"installing-an-extension"},{level:2,title:"Adding manga to your library",slug:"adding-manga-to-your-library"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:163892873e4},{title:"Local manga",frontmatter:{title:"Local manga",description:"All the information you would need to read your own local manga.",lang:"en-US"},regularPath:"/help/guides/local-manga.html",relativePath:"help/guides/local-manga.md",key:"v-c2c0fecc",path:"/help/guides/local-manga/",headers:[{level:2,title:"Folder Structure",slug:"folder-structure"},{level:2,title:"Archive Files",slug:"archive-files"},{level:2,title:"Advanced",slug:"advanced"},{level:3,title:"Editing local manga details",slug:"editing-local-manga-details"},{level:3,title:"Using a custom cover image",slug:"using-a-custom-cover-image"}],lastUpdated:"5 months ago",lastUpdatedTimestamp:1678112338e3},{title:"Reader settings",frontmatter:{title:"Reader settings",description:"Reader settings for Tachiyomi.",lang:"en-US"},regularPath:"/help/guides/reader-settings.html",relativePath:"help/guides/reader-settings.md",key:"v-b79f700c",path:"/help/guides/reader-settings/",headers:[{level:2,title:"Default reading mode",slug:"default-reading-mode"},{level:2,title:"Double tap animation speed",slug:"double-tap-animation-speed"},{level:2,title:"Show reading mode",slug:"show-reading-mode"},{level:2,title:"32-bit color",slug:"_32-bit-color"},{level:2,title:"Animate page transitions",slug:"animate-page-transitions"},{level:2,title:"Rotation",slug:"rotation"},{level:2,title:"Background color",slug:"background-color"},{level:2,title:"Fullscreen",slug:"fullscreen"},{level:2,title:"Show content in cutout area",slug:"show-content-in-cutout-area"},{level:2,title:"Keep screen on",slug:"keep-screen-on"},{level:2,title:"Show page number",slug:"show-page-number"},{level:2,title:"Skip chapters marked read",slug:"skip-chapters-marked-read"},{level:2,title:"Skip filtered chapters",slug:"skip-filtered-chapters"},{level:2,title:"Always show chapter transition",slug:"always-show-chapter-transition"},{level:2,title:"Navigation layout",slug:"navigation-layout"},{level:2,title:"Invert Tapping",slug:"invert-tapping"},{level:2,title:"Scale type",slug:"scale-type"},{level:3,title:"Examples",slug:"examples"},{level:2,title:"Zoom start position",slug:"zoom-start-position"},{level:3,title:"Examples",slug:"examples-2"},{level:2,title:"Crop borders",slug:"crop-borders"},{level:2,title:"Side padding",slug:"side-padding"},{level:2,title:"Tapping",slug:"tapping"},{level:2,title:"Long tap dialog",slug:"long-tap-dialog"},{level:2,title:"Volume keys",slug:"volume-keys"},{level:2,title:"Invert volume keys",slug:"invert-volume-keys"}],lastUpdated:"5 months ago",lastUpdatedTimestamp:1678112338e3},{title:"Source migration",frontmatter:{title:"Source migration",description:"Your source is no longer accessible or you just want to move to another? No problem.",lang:"en-US"},regularPath:"/help/guides/source-migration.html",relativePath:"help/guides/source-migration.md",key:"v-088bcdba",path:"/help/guides/source-migration/",headers:[{level:2,title:"Migrating on Stable/Preview",slug:"migrating-on-stable-preview"},{level:2,title:"Migrating on TachiyomiJ2K",slug:"migrating-on-tachiyomij2k"},{level:2,title:"Migrating on TachiyomiAZ",slug:"migrating-on-tachiyomiaz"},{level:2,title:"Migrating on TachiyomiSY",slug:"migrating-on-tachiyomisy"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:163892873e4},{title:"Tracking",frontmatter:{title:"Tracking",description:"How to automatically track read chapters on supported trackers",lang:"en-US"},regularPath:"/help/guides/tracking.html",relativePath:"help/guides/tracking.md",key:"v-5c7abe44",path:"/help/guides/tracking/",headers:[{level:2,title:"What is tracking?",slug:"what-is-tracking"},{level:2,title:"How do I login into trackers?",slug:"how-do-i-login-into-trackers"},{level:3,title:"How do I set up tracking for each manga?",slug:"how-do-i-set-up-tracking-for-each-manga"},{level:3,title:"How do I log in with Kitsu?",slug:"how-do-i-log-in-with-kitsu"},{level:3,title:"Why am I unable to find a manga in MAL's search results?",slug:"why-am-i-unable-to-find-a-manga-in-mal-s-search-results"},{level:3,title:"How do I see which manga I have or have not tracked in my library?",slug:"how-do-i-see-which-manga-i-have-or-have-not-tracked-in-my-library"}],lastUpdated:"3 months ago",lastUpdatedTimestamp:1682096493e3},{title:"Troubleshooting",frontmatter:{title:"Troubleshooting",description:"Encountered an issue with a source or the app? Here are resources to help you troubleshoot it.",lang:"en-US"},regularPath:"/help/guides/troubleshooting.html",relativePath:"help/guides/troubleshooting.md",key:"v-4efcdccc",path:"/help/guides/troubleshooting/",headers:[{level:3,title:"What are some common issues?",slug:"what-are-some-common-issues"},{level:2,title:"Diagnosis",slug:"diagnosis"},{level:3,title:"It only happens to me",slug:"it-only-happens-to-me"},{level:3,title:"Everyone is having this problem",slug:"everyone-is-having-this-problem"},{level:2,title:"Solving Cloudflare issues",slug:"solving-cloudflare-issues"},{level:3,title:"Loading the website in WebView",slug:"loading-the-website-in-webview"},{level:3,title:"Clearing cookies and WebView data",slug:"clearing-cookies-and-webview-data"},{level:3,title:"Changing your user agent",slug:"changing-your-user-agent"},{level:2,title:"Update WebView",slug:"update-webview"},{level:2,title:"Unable to install the app or extensions",slug:"unable-to-install-the-app-or-extensions"},{level:2,title:"Getting Logcats and Crash Logs",slug:"getting-logcats-and-crash-logs"}],lastUpdated:"a month ago",lastUpdatedTimestamp:1688219583e3},{title:"Privacy Policy",frontmatter:{title:"Privacy Policy",lang:"en-US",sidebar:!1},regularPath:"/privacy/",relativePath:"privacy/README.md",key:"v-18ae6a2f",path:"/privacy/",headers:[{level:2,title:"Information Collection and Use",slug:"information-collection-and-use"},{level:3,title:"Log Data",slug:"log-data"},{level:3,title:"Analytics Data",slug:"analytics-data"},{level:2,title:"External Links",slug:"external-links"},{level:2,title:"Changes to This Privacy Policy",slug:"changes-to-this-privacy-policy"},{level:2,title:"Contact Us",slug:"contact-us"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:1639607873e3},{title:"Sandbox",frontmatter:{title:"Sandbox",description:"Sandbox playground for demonstrating and documenting how different website functions work for easier integration by contributors.",lang:"en-US",sidebar:!1,sitemap:{exclude:!0}},regularPath:"/sandbox/",relativePath:"sandbox/README.md",key:"v-04f7059e",path:"/sandbox/",lastUpdated:"3 years ago",lastUpdatedTimestamp:1598867415e3},{title:"Element-UI",frontmatter:{title:"Element-UI",description:"Demonstrations of different Element-UI features.",lang:"en-US",sitemap:{exclude:!0}},regularPath:"/sandbox/element-ui.html",relativePath:"sandbox/element-ui.md",key:"v-56dfe86c",path:"/sandbox/element-ui/",headers:[{level:2,title:"Button",slug:"button"},{level:2,title:"Link",slug:"link"},{level:2,title:"Tag",slug:"tag"},{level:2,title:"Alert",slug:"alert"},{level:2,title:"Tabs",slug:"tabs"},{level:2,title:"Collapse",slug:"collapse"},{level:2,title:"Tooltip",slug:"tooltip"},{level:3,title:"Text",slug:"text"},{level:3,title:"Button",slug:"button-2"},{level:2,title:"Steps",slug:"steps"},{level:3,title:"Step bar with icon",slug:"step-bar-with-icon"},{level:3,title:"Step bar with description",slug:"step-bar-with-description"}],lastUpdated:"3 years ago",lastUpdatedTimestamp:1603820133e3},{title:"Style guide",frontmatter:{title:"Style guide",description:"Style guide to aid website content contributors.",lang:"en-US",sitemap:{exclude:!0}},regularPath:"/sandbox/style-guide.html",relativePath:"sandbox/style-guide.md",key:"v-53f91a9a",path:"/sandbox/style-guide/",headers:[{level:2,title:"FAQ Style",slug:"faq-style"},{level:2,title:"Guide Style",slug:"guide-style"}],lastUpdated:"5 months ago",lastUpdatedTimestamp:1678112338e3}],themeConfig:{logo:"/icons/logo.svg",repo:"tachiyomiorg/tachiyomi",docsRepo:"tachiyomiorg/website",docsDir:"src",smoothScroll:!0,algolia:{apiKey:"fc1c45b5a3835e1882cbbf0751dfe705",indexName:"tachiyomi"},searchPlaceholder:"Search...",editLinks:!0,editLinkText:"Help us improve this page",lastUpdated:"Last updated",nav:[{text:"Home",link:"/"},{text:"Help Center",link:"/help/"},{text:"Download",link:"/download/"},{text:"Extensions",link:"/extensions/"}],sidebar:{"/help/guides/":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/help/faq/":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/help/contribution":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/extensions":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/forks":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/sandbox":["/",{title:"Sandbox",path:"/sandbox/",collapsable:!1,sidebarDepth:2,children:["/sandbox/style-guide","/sandbox/element-ui"]}]}}};n(325),n(326),n(327);var pn=n(52),mn=n.n(pn);var vn={methods:{handleMouseDown(e){this.isMouseDown=!0,-1!==e.type.indexOf("touch")&&(this.dragStartX=e.touches[0].clientX,this.dragStartY=e.touches[0].clientY),-1!==e.type.indexOf("mouse")&&(this.dragStartX=e.clientX,this.dragStartY=e.clientY)},handleMouseMove(e){let t,n;-1!==e.type.indexOf("touch")&&(t=e.touches[0].clientX,n=e.touches[0].clientY),-1!==e.type.indexOf("mouse")&&(t=e.clientX,n=e.clientY);Math.abs(t-this.dragStartX)>3*Math.abs(n-this.dragStartY)&&(this.disableScroll(),this.dragDistance=t-this.dragStartX)},handleMouseUp(){this.isMouseDown=!1,this.enableScroll()},handleMouseOver(e){this.settings.autoplay&&("dot"===e&&this.settings.pauseOnDotsHover||"track"===e&&this.settings.pauseOnHover)&&(this.isAutoplayPaused=!0)},handleMouseOut(e){this.settings.autoplay&&("dot"===e&&this.settings.pauseOnDotsHover||"track"===e&&this.settings.pauseOnHover)&&(this.isAutoplayPaused=!1)}}};var gn={methods:{getWidth(){if(this.isSSR)return!1;this.widthWindow=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,this.widthContainer=this.$refs.list.clientWidth},htmlCollectionToArray:e=>Array.prototype.slice.call(e,0)}};var yn={methods:{clearAutoPlayPause(){clearTimeout(this.autoplayTimeout),this.autoplayRemaining=null},disableAutoPlay(){clearInterval(this.autoplayInterval),this.autoplayInterval=null},disableScroll(){document.ontouchmove=e=>e.preventDefault()},enableScroll(){document.ontouchmove=()=>!0},restartAutoPlay(){this.disableAutoPlay(),this.toggleAutoPlay()},toggleAutoPlay(){const e=!this.settings.unagile&&this.settings.autoplay;!this.autoplayInterval&&e?this.autoplayInterval=setInterval(()=>{document.hidden||(this.canGoToNext?this.goToNext():this.disableAutoPlay())},this.settings.autoplaySpeed):this.disableAutoPlay()},toggleFade(){const e=!this.settings.unagile&&this.settings.fade;for(let t=0;tthis.slides[this.currentSlide].classList.add("agile__slide--active"),this.changeDelay);let e=this.slidesCloned?this.countSlides+this.currentSlide:this.currentSlide;this.centerMode&&(e-=Math.floor(this.settings.slidesToShow/2)-+(this.settings.slidesToShow%2==0));for(let t=Math.max(e,0);tthis.countSlides&&(this.currentSlide=this.countSlides-1),this.goTo(this.currentSlide,!1,!1))}}},_n=n(179),wn=n.n(_n);var xn={props:{asNavFor:{type:Array,default:function(){return[]}},autoplay:{type:Boolean,default:!1},autoplaySpeed:{type:Number,default:3e3},centerMode:{type:Boolean,default:!1},centerPadding:{type:String,default:"15%"},changeDelay:{type:Number,default:0},dots:{type:Boolean,default:!0},fade:{type:Boolean,default:!1},infinite:{type:Boolean,default:!0},initialSlide:{type:Number,default:0},mobileFirst:{type:Boolean,default:!0},navButtons:{type:Boolean,default:!0},options:{type:Object,default:()=>null},pauseOnDotsHover:{type:Boolean,default:!1},pauseOnHover:{type:Boolean,default:!0},responsive:{type:Array,default:()=>null},rtl:{type:Boolean,default:!1},slidesToScroll:{type:Number,default:1},slidesToShow:{type:Number,default:1},speed:{type:Number,default:300},swipeDistance:{type:Number,default:50},throttleDelay:{type:Number,default:500},timing:{type:String,default:"ease",validator:e=>-1!==["ease","linear","ease-in","ease-out","ease-in-out"].indexOf(e)},unagile:{type:Boolean,default:!1}},computed:{initialSettings:function(){let{options:e,...t}=this.$props;return e&&(t={...t,...e}),t.responsive&&(t.responsive=wn()(t.responsive,"breakpoint")),t},settings:function(){const{responsive:e,...t}=this.initialSettings;return e&&e.forEach(e=>{if(t.mobileFirst?e.breakpointthis.widthWindow)for(const n in e.settings)t[n]=e.settings[n]}),t}}},kn=n(101),Cn=n.n(kn);var Sn={name:"agile",mixins:[vn,gn,yn,bn,xn,{created(){this.goTo=Cn()(this.goTo,this.throttleDelay),this.getWidth=Cn()(this.getWidth,500)}},{watch:{currentBreakpoint(){this.$emit("breakpoint",{breakpoint:this.currentBreakpoint})},currentSlide(){this.prepareSlidesClasses(),this.autoplayStartTimestamp=this.settings.autoplay?+new Date:null,this.$emit("after-change",{currentSlide:this.currentSlide})},dragDistance(){if(this.isMouseDown){const{rtl:e}=this.settings,t=this.dragDistance*(e?-1:1);t>this.swipeDistance&&this.canGoToPrev&&(this.goToPrev(),this.handleMouseUp()),t<-1*this.swipeDistance&&this.canGoToNext&&(this.goToNext(),this.handleMouseUp())}},isAutoplayPaused(e){e?(this.remaining=this.settings.autoplaySpeed-(+new Date-this.autoplayStartTimestamp),this.disableAutoPlay(),this.clearAutoPlayPause()):this.autoplayTimeout=setTimeout(()=>{this.clearAutoPlayPause(),this.goToNext(),this.toggleAutoPlay()},this.remaining)},"settings.autoplay"(){this.toggleAutoPlay()},"settings.fade"(){this.toggleFade()},"settings.unagile"(){},widthSlide(){for(let e=0;e({autoplayInterval:null,autoplayRemaining:null,autoplayStartTimestamp:null,autoplayTimeout:null,currentSlide:null,dragDistance:0,dragStartX:0,dragStartY:0,isAutoplayPaused:!1,isMouseDown:!1,slides:[],slidesClonedAfter:[],slidesClonedBefore:[],isSSR:"undefined"==typeof window,transitionDelay:0,translateX:0,widthWindow:0,widthContainer:0}),computed:{breakpoints:function(){return this.initialSettings.responsive?this.initialSettings.responsive.map(e=>e.breakpoint):[]},canGoToPrev:function(){return this.settings.infinite||this.currentSlide>0},canGoToNext:function(){return this.settings.infinite||this.currentSlidee).reverse();return this.initialSettings.mobileFirst?e.find(e=>ee>this.widthWindow)||null},marginX:function(){if(this.settings.unagile)return 0;let e=this.slidesCloned?this.countSlides*this.widthSlide:0;return this.settings.centerMode&&(e-=(Math.floor(this.settings.slidesToShow/2)-+(this.settings.slidesToShow%2==0))*this.widthSlide),this.settings.rtl?e:-1*e},slidesCloned:function(){return!this.settings.unagile&&!this.settings.fade&&this.settings.infinite},slidesAll:function(){return this.slidesCloned?[...this.slidesClonedBefore,...this.slides,...this.slidesClonedAfter]:this.slides},widthSlide:function(){return this.settings.unagile?"auto":this.widthContainer/this.settings.slidesToShow}},mounted(){window.addEventListener("resize",this.getWidth),this.$refs.track.addEventListener("touchstart",this.handleMouseDown),this.$refs.track.addEventListener("touchend",this.handleMouseUp),this.$refs.track.addEventListener("touchmove",this.handleMouseMove),this.$refs.track.addEventListener("mousedown",this.handleMouseDown),this.$refs.track.addEventListener("mouseup",this.handleMouseUp),this.$refs.track.addEventListener("mousemove",this.handleMouseMove),this.isSSR=!1,this.reload()},beforeUnmount(){this.destroy()},methods:{destroy(){window.removeEventListener("resize",this.getWidth),this.$refs.track.removeEventListener("touchstart",this.handleMouseDown),this.$refs.track.removeEventListener("touchend",this.handleMouseUp),this.$refs.track.removeEventListener("touchmove",this.handleMouseMove),this.$refs.track.removeEventListener("mousedown",this.handleMouseDown),this.$refs.track.removeEventListener("mouseup",this.handleMouseUp),this.$refs.track.removeEventListener("mousemove",this.handleMouseMove),this.disableAutoPlay()},getCurrentBreakpoint(){return this.currentBreakpoint},getCurrentSettings(){return this.settings},getCurrentSlide(){return this.currentSlide},getInitialSettings(){return this.initialSettings},goTo(e,t=!0,n=!1){if(this.settings.unagile)return!1;n||this.settings.asNavFor.forEach(n=>{n&&n.goTo(e,t,!0)});let i=e;t&&(this.settings.infinite&&e<0?i=this.countSlides-1:e>=this.countSlides&&(i=0),this.$emit("before-change",{currentSlide:this.currentSlide,nextSlide:i}),this.currentSlide=i,e!==i&&setTimeout(()=>{this.goTo(i,!1)},this.settings.speed));const r=this.settings.fade?0:e*this.widthSlide*this.settings.slidesToScroll;this.transitionDelay=t?this.speed:0,(this.infinite||this.currentSlide+this.slidesToShow<=this.countSlides)&&(this.translateX=this.settings.rtl?r:-1*r)},goToNext(){this.canGoToNext&&this.goTo(this.currentSlide+1)},goToPrev(){this.canGoToPrev&&this.goTo(this.currentSlide-1)},reload(){this.getWidth(),this.prepareSlides(),this.prepareCarousel(),this.toggleFade(),this.toggleAutoPlay()}}},On=(n(387),Object(cn.a)(Sn,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"agile",class:{"agile--ssr":e.isSSR,"agile--auto-play":e.settings.autoplay,"agile--disabled":e.settings.unagile,"agile--fade":e.settings.fade&&!e.settings.unagile,"agile--rtl":e.settings.rtl,"agile--no-nav-buttons":!e.settings.navButtons},on:{touchstart:()=>{}}},[t("div",{ref:"list",staticClass:"agile__list"},[t("div",{ref:"track",staticClass:"agile__track",style:{transform:`translate(${e.translateX+e.marginX}px)`,transition:`transform ${e.settings.timing} ${e.transitionDelay}ms`},on:{mouseout:function(t){return e.handleMouseOut("track")},mouseover:function(t){return e.handleMouseOver("track")}}},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.slidesCloned,expression:"slidesCloned"}],ref:"slidesClonedBefore",staticClass:"agile__slides agile__slides--cloned"},[e._t("default")],2),e._v(" "),t("div",{ref:"slides",staticClass:"agile__slides agile__slides--regular"},[e._t("default")],2),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.slidesCloned,expression:"slidesCloned"}],ref:"slidesClonedAfter",staticClass:"agile__slides agile__slides--cloned"},[e._t("default")],2)])]),e._v(" "),e.$slots.caption?t("div",{staticClass:"agile__caption"},[e._t("caption")],2):e._e(),e._v(" "),e.settings.unagile||!e.settings.navButtons&&!e.settings.dots?e._e():t("div",{staticClass:"agile__actions"},[e.settings.navButtons&&!e.settings.unagile?t("button",{ref:"prevButton",staticClass:"agile__nav-button agile__nav-button--prev",attrs:{disabled:!e.canGoToPrev,"aria-label":"Previous",type:"button"},on:{click:function(t){e.goToPrev(),e.restartAutoPlay()}}},[e._t("prevButton",(function(){return[e._v("\n ←\n ")]}))],2):e._e(),e._v(" "),e.settings.dots&&!e.settings.unagile?t("ul",{ref:"dots",staticClass:"agile__dots"},e._l(e.countSlides,(function(n){return t("li",{key:n,staticClass:"agile__dot",class:{"agile__dot--current":n-1===e.currentSlide},on:{mouseout:function(t){return e.handleMouseOut("dot")},mouseover:function(t){return e.handleMouseOver("dot")}}},[t("button",{attrs:{type:"button"},on:{click:function(t){e.goTo(n-1),e.restartAutoPlay()}}},[e._v("\n "+e._s(n)+"\n ")])])})),0):e._e(),e._v(" "),e.settings.navButtons&&!e.settings.unagile?t("button",{ref:"nextButton",staticClass:"agile__nav-button agile__nav-button--next",attrs:{disabled:!e.canGoToNext,"aria-label":"Next",type:"button"},on:{click:function(t){e.goToNext(),e.restartAutoPlay()}}},[e._t("nextButton",(function(){return[e._v("\n →\n ")]}))],2):e._e()])])}),[],!1,null,null,null).exports);var En=n(180),Dn=n.n(En),Tn=n(181),$n=n.n(Tn),Pn=n(103),Mn=n.n(Pn);var jn=("undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function An(e,t){if(void 0===t&&(t=[]),null===e||"object"!=typeof e)return e;var n,i=(n=function(t){return t.original===e},t.filter(n)[0]);if(i)return i.copy;var r=Array.isArray(e)?[]:{};return t.push({original:e,copy:r}),Object.keys(e).forEach((function(n){r[n]=An(e[n],t)})),r}function Nn(e,t){Object.keys(e).forEach((function(n){return t(e[n],n)}))}function In(e){return null!==e&&"object"==typeof e}var Ln=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var n=e.state;this.state=("function"==typeof n?n():n)||{}},Fn={namespaced:{configurable:!0}};Fn.namespaced.get=function(){return!!this._rawModule.namespaced},Ln.prototype.addChild=function(e,t){this._children[e]=t},Ln.prototype.removeChild=function(e){delete this._children[e]},Ln.prototype.getChild=function(e){return this._children[e]},Ln.prototype.hasChild=function(e){return e in this._children},Ln.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},Ln.prototype.forEachChild=function(e){Nn(this._children,e)},Ln.prototype.forEachGetter=function(e){this._rawModule.getters&&Nn(this._rawModule.getters,e)},Ln.prototype.forEachAction=function(e){this._rawModule.actions&&Nn(this._rawModule.actions,e)},Ln.prototype.forEachMutation=function(e){this._rawModule.mutations&&Nn(this._rawModule.mutations,e)},Object.defineProperties(Ln.prototype,Fn);var Bn=function(e){this.register([],e,!1)};Bn.prototype.get=function(e){return e.reduce((function(e,t){return e.getChild(t)}),this.root)},Bn.prototype.getNamespace=function(e){var t=this.root;return e.reduce((function(e,n){return e+((t=t.getChild(n)).namespaced?n+"/":"")}),"")},Bn.prototype.update=function(e){!function e(t,n,i){0;if(n.update(i),i.modules)for(var r in i.modules){if(!n.getChild(r))return void 0;e(t.concat(r),n.getChild(r),i.modules[r])}}([],this.root,e)},Bn.prototype.register=function(e,t,n){var i=this;void 0===n&&(n=!0);var r=new Ln(t,n);0===e.length?this.root=r:this.get(e.slice(0,-1)).addChild(e[e.length-1],r);t.modules&&Nn(t.modules,(function(t,r){i.register(e.concat(r),t,n)}))},Bn.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1],i=t.getChild(n);i&&i.runtime&&t.removeChild(n)},Bn.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1];return!!t&&t.hasChild(n)};var Vn;var Rn=function(e){var t=this;void 0===e&&(e={}),!Vn&&"undefined"!=typeof window&&window.Vue&&Kn(window.Vue);var n=e.plugins;void 0===n&&(n=[]);var i=e.strict;void 0===i&&(i=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new Bn(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new Vn,this._makeLocalGettersCache=Object.create(null);var r=this,o=this.dispatch,a=this.commit;this.dispatch=function(e,t){return o.call(r,e,t)},this.commit=function(e,t,n){return a.call(r,e,t,n)},this.strict=i;var s=this._modules.root.state;Yn(this,s,[],this._modules.root),Un(this,s),n.forEach((function(e){return e(t)})),(void 0!==e.devtools?e.devtools:Vn.config.devtools)&&function(e){jn&&(e._devtoolHook=jn,jn.emit("vuex:init",e),jn.on("vuex:travel-to-state",(function(t){e.replaceState(t)})),e.subscribe((function(e,t){jn.emit("vuex:mutation",e,t)}),{prepend:!0}),e.subscribeAction((function(e,t){jn.emit("vuex:action",e,t)}),{prepend:!0}))}(this)},zn={state:{configurable:!0}};function Hn(e,t,n){return t.indexOf(e)<0&&(n&&n.prepend?t.unshift(e):t.push(e)),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function Wn(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var n=e.state;Yn(e,n,[],e._modules.root,!0),Un(e,n,t)}function Un(e,t,n){var i=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var r=e._wrappedGetters,o={};Nn(r,(function(t,n){o[n]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,n,{get:function(){return e._vm[n]},enumerable:!0})}));var a=Vn.config.silent;Vn.config.silent=!0,e._vm=new Vn({data:{$$state:t},computed:o}),Vn.config.silent=a,e.strict&&function(e){e._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}(e),i&&(n&&e._withCommit((function(){i._data.$$state=null})),Vn.nextTick((function(){return i.$destroy()})))}function Yn(e,t,n,i,r){var o=!n.length,a=e._modules.getNamespace(n);if(i.namespaced&&(e._modulesNamespaceMap[a],e._modulesNamespaceMap[a]=i),!o&&!r){var s=qn(t,n.slice(0,-1)),l=n[n.length-1];e._withCommit((function(){Vn.set(s,l,i.state)}))}var u=i.context=function(e,t,n){var i=""===t,r={dispatch:i?e.dispatch:function(n,i,r){var o=Gn(n,i,r),a=o.payload,s=o.options,l=o.type;return s&&s.root||(l=t+l),e.dispatch(l,a)},commit:i?e.commit:function(n,i,r){var o=Gn(n,i,r),a=o.payload,s=o.options,l=o.type;s&&s.root||(l=t+l),e.commit(l,a,s)}};return Object.defineProperties(r,{getters:{get:i?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var n={},i=t.length;Object.keys(e.getters).forEach((function(r){if(r.slice(0,i)===t){var o=r.slice(i);Object.defineProperty(n,o,{get:function(){return e.getters[r]},enumerable:!0})}})),e._makeLocalGettersCache[t]=n}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return qn(e.state,n)}}}),r}(e,a,n);i.forEachMutation((function(t,n){!function(e,t,n,i){(e._mutations[t]||(e._mutations[t]=[])).push((function(t){n.call(e,i.state,t)}))}(e,a+n,t,u)})),i.forEachAction((function(t,n){var i=t.root?n:a+n,r=t.handler||t;!function(e,t,n,i){(e._actions[t]||(e._actions[t]=[])).push((function(t){var r,o=n.call(e,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:e.getters,rootState:e.state},t);return(r=o)&&"function"==typeof r.then||(o=Promise.resolve(o)),e._devtoolHook?o.catch((function(t){throw e._devtoolHook.emit("vuex:error",t),t})):o}))}(e,i,r,u)})),i.forEachGetter((function(t,n){!function(e,t,n,i){if(e._wrappedGetters[t])return void 0;e._wrappedGetters[t]=function(e){return n(i.state,i.getters,e.state,e.getters)}}(e,a+n,t,u)})),i.forEachChild((function(i,o){Yn(e,t,n.concat(o),i,r)}))}function qn(e,t){return t.reduce((function(e,t){return e[t]}),e)}function Gn(e,t,n){return In(e)&&e.type&&(n=t,t=e,e=e.type),{type:e,payload:t,options:n}}function Kn(e){Vn&&e===Vn|| + */function r(e,t){for(var n in t)e[n]=t[n];return e}var o=/[!'()*]/g,a=function(e){return"%"+e.charCodeAt(0).toString(16)},s=/%2C/g,l=function(e){return encodeURIComponent(e).replace(o,a).replace(s,",")};function u(e){try{return decodeURIComponent(e)}catch(e){0}return e}var c=function(e){return null==e||"object"==typeof e?e:String(e)};function d(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var n=e.replace(/\+/g," ").split("="),i=u(n.shift()),r=n.length>0?u(n.join("=")):null;void 0===t[i]?t[i]=r:Array.isArray(t[i])?t[i].push(r):t[i]=[t[i],r]})),t):t}function h(e){var t=e?Object.keys(e).map((function(t){var n=e[t];if(void 0===n)return"";if(null===n)return l(t);if(Array.isArray(n)){var i=[];return n.forEach((function(e){void 0!==e&&(null===e?i.push(l(t)):i.push(l(t)+"="+l(e)))})),i.join("&")}return l(t)+"="+l(n)})).filter((function(e){return e.length>0})).join("&"):null;return t?"?"+t:""}var f=/\/?$/;function p(e,t,n,i){var r=i&&i.options.stringifyQuery,o=t.query||{};try{o=m(o)}catch(e){}var a={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:o,params:t.params||{},fullPath:y(t,r),matched:e?g(e):[]};return n&&(a.redirectedFrom=y(n,r)),Object.freeze(a)}function m(e){if(Array.isArray(e))return e.map(m);if(e&&"object"==typeof e){var t={};for(var n in e)t[n]=m(e[n]);return t}return e}var v=p(null,{path:"/"});function g(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function y(e,t){var n=e.path,i=e.query;void 0===i&&(i={});var r=e.hash;return void 0===r&&(r=""),(n||"/")+(t||h)(i)+r}function b(e,t,n){return t===v?e===t:!!t&&(e.path&&t.path?e.path.replace(f,"")===t.path.replace(f,"")&&(n||e.hash===t.hash&&_(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(n||e.hash===t.hash&&_(e.query,t.query)&&_(e.params,t.params))))}function _(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var n=Object.keys(e).sort(),i=Object.keys(t).sort();return n.length===i.length&&n.every((function(n,r){var o=e[n];if(i[r]!==n)return!1;var a=t[n];return null==o||null==a?o===a:"object"==typeof o&&"object"==typeof a?_(o,a):String(o)===String(a)}))}function w(e){for(var t=0;t=0&&(t=e.slice(i),e=e.slice(0,i));var r=e.indexOf("?");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{path:e,query:n,hash:t}}(o.path||""),h=t&&t.path||"/",f=u.path?C(u.path,h,n||o.append):h,p=function(e,t,n){void 0===t&&(t={});var i,r=n||d;try{i=r(e||"")}catch(e){i={}}for(var o in t){var a=t[o];i[o]=Array.isArray(a)?a.map(c):c(a)}return i}(u.query,o.query,i&&i.options.parseQuery),m=o.hash||u.hash;return m&&"#"!==m.charAt(0)&&(m="#"+m),{_normalized:!0,path:f,query:p,hash:m}}var U,Y=function(){},q={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,i=this.$route,o=n.resolve(this.to,i,this.append),a=o.location,s=o.route,l=o.href,u={},c=n.options.linkActiveClass,d=n.options.linkExactActiveClass,h=null==c?"router-link-active":c,m=null==d?"router-link-exact-active":d,v=null==this.activeClass?h:this.activeClass,g=null==this.exactActiveClass?m:this.exactActiveClass,y=s.redirectedFrom?p(null,W(s.redirectedFrom),null,n):s;u[g]=b(i,y,this.exactPath),u[v]=this.exact||this.exactPath?u[g]:function(e,t){return 0===e.path.replace(f,"/").indexOf(t.path.replace(f,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(i,y);var _=u[g]?this.ariaCurrentValue:null,w=function(e){G(e)&&(t.replace?n.replace(a,Y):n.push(a,Y))},x={click:G};Array.isArray(this.event)?this.event.forEach((function(e){x[e]=w})):x[this.event]=w;var k={class:u},C=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:l,route:s,navigate:w,isActive:u[v],isExactActive:u[g]});if(C){if(1===C.length)return C[0];if(C.length>1||!C.length)return 0===C.length?e():e("span",{},C)}if("a"===this.tag)k.on=x,k.attrs={href:l,"aria-current":_};else{var S=function e(t){var n;if(t)for(var i=0;i-1&&(s.params[h]=n.params[h]);return s.path=H(c.path,s.params),l(c,s,a)}if(s.path){s.params={};for(var f=0;f-1}function Se(e,t){return Ce(e)&&e._isRouter&&(null==t||e.type===t)}function Oe(e,t,n){var i=function(r){r>=e.length?n():e[r]?t(e[r],(function(){i(r+1)})):i(r+1)};i(0)}function Ee(e){return function(t,n,i){var r=!1,o=0,a=null;De(e,(function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){r=!0,o++;var l,u=Pe((function(t){var r;((r=t).__esModule||$e&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:U.extend(t),n.components[s]=t,--o<=0&&i()})),c=Pe((function(e){var t="Failed to resolve async component "+s+": "+e;a||(a=Ce(e)?e:new Error(t),i(a))}));try{l=e(u,c)}catch(e){c(e)}if(l)if("function"==typeof l.then)l.then(u,c);else{var d=l.component;d&&"function"==typeof d.then&&d.then(u,c)}}})),r||i()}}function De(e,t){return Te(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Te(e){return Array.prototype.concat.apply([],e)}var $e="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Pe(e){var t=!1;return function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];if(!t)return t=!0,e.apply(this,n)}}var Me=function(e,t){this.router=e,this.base=function(e){if(!e)if(K){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=v,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function je(e,t,n,i){var r=De(e,(function(e,i,r,o){var a=function(e,t){"function"!=typeof e&&(e=U.extend(e));return e.options[t]}(e,t);if(a)return Array.isArray(a)?a.map((function(e){return n(e,i,r,o)})):n(a,i,r,o)}));return Te(i?r.reverse():r)}function Ae(e,t){if(t)return function(){return e.apply(t,arguments)}}Me.prototype.listen=function(e){this.cb=e},Me.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},Me.prototype.onError=function(e){this.errorCbs.push(e)},Me.prototype.transitionTo=function(e,t,n){var i,r=this;try{i=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var o=this.current;this.confirmTransition(i,(function(){r.updateRoute(i),t&&t(i),r.ensureURL(),r.router.afterHooks.forEach((function(e){e&&e(i,o)})),r.ready||(r.ready=!0,r.readyCbs.forEach((function(e){e(i)})))}),(function(e){n&&n(e),e&&!r.ready&&(Se(e,be.redirected)&&o===v||(r.ready=!0,r.readyErrorCbs.forEach((function(t){t(e)}))))}))},Me.prototype.confirmTransition=function(e,t,n){var i=this,r=this.current;this.pending=e;var o,a,s=function(e){!Se(e)&&Ce(e)&&(i.errorCbs.length?i.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},l=e.matched.length-1,u=r.matched.length-1;if(b(e,r)&&l===u&&e.matched[l]===r.matched[u])return this.ensureURL(),e.hash&&se(this.router,r,e,!1),s(((a=xe(o=r,e,be.duplicated,'Avoided redundant navigation to current location: "'+o.fullPath+'".')).name="NavigationDuplicated",a));var c=function(e,t){var n,i=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,i=ve&&n;i&&this.listeners.push(ae());var r=function(){var n=e.current,r=Ie(e.base);e.current===v&&r===e._startLocation||e.transitionTo(r,(function(e){i&&se(t,e,n,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){ge(S(i.base+e.fullPath)),se(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){ye(S(i.base+e.fullPath)),se(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(Ie(this.base)!==this.current.fullPath){var t=S(this.base+this.current.fullPath);e?ge(t):ye(t)}},t.prototype.getCurrentLocation=function(){return Ie(this.base)},t}(Me);function Ie(e){var t=window.location.pathname,n=t.toLowerCase(),i=e.toLowerCase();return!e||n!==i&&0!==n.indexOf(S(i+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var Le=function(e){function t(t,n,i){e.call(this,t,n),i&&function(e){var t=Ie(e);if(!/^\/#/.test(t))return window.location.replace(S(e+"/#"+t)),!0}(this.base)||Fe()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=ve&&t;n&&this.listeners.push(ae());var i=function(){var t=e.current;Fe()&&e.transitionTo(Be(),(function(i){n&&se(e.router,i,t,!0),ve||ze(i.fullPath)}))},r=ve?"popstate":"hashchange";window.addEventListener(r,i),this.listeners.push((function(){window.removeEventListener(r,i)}))}},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){Re(e.fullPath),se(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){ze(e.fullPath),se(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Be()!==t&&(e?Re(t):ze(t))},t.prototype.getCurrentLocation=function(){return Be()},t}(Me);function Fe(){var e=Be();return"/"===e.charAt(0)||(ze("/"+e),!1)}function Be(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function Ve(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function Re(e){ve?ge(Ve(e)):window.location.hash=e}function ze(e){ve?ye(Ve(e)):window.location.replace(Ve(e))}var He=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var i=this;this.transitionTo(e,(function(e){i.stack=i.stack.slice(0,i.index+1).concat(e),i.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this;this.transitionTo(e,(function(e){i.stack=i.stack.slice(0,i.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var i=this.stack[n];this.confirmTransition(i,(function(){var e=t.current;t.index=n,t.updateRoute(i),t.router.afterHooks.forEach((function(t){t&&t(i,e)}))}),(function(e){Se(e,be.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(Me),We=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=J(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ve&&!1!==e.fallback,this.fallback&&(t="hash"),K||(t="abstract"),this.mode=t,t){case"history":this.history=new Ne(this,e.base);break;case"hash":this.history=new Le(this,e.base,this.fallback);break;case"abstract":this.history=new He(this,e.base);break;default:0}},Ue={currentRoute:{configurable:!0}};We.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},Ue.currentRoute.get=function(){return this.history&&this.history.current},We.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof Ne||n instanceof Le){var i=function(e){n.setupListeners(),function(e){var i=n.current,r=t.options.scrollBehavior;ve&&r&&"fullPath"in e&&se(t,e,i,!1)}(e)};n.transitionTo(n.getCurrentLocation(),i,i)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},We.prototype.beforeEach=function(e){return qe(this.beforeHooks,e)},We.prototype.beforeResolve=function(e){return qe(this.resolveHooks,e)},We.prototype.afterEach=function(e){return qe(this.afterHooks,e)},We.prototype.onReady=function(e,t){this.history.onReady(e,t)},We.prototype.onError=function(e){this.history.onError(e)},We.prototype.push=function(e,t,n){var i=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){i.history.push(e,t,n)}));this.history.push(e,t,n)},We.prototype.replace=function(e,t,n){var i=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){i.history.replace(e,t,n)}));this.history.replace(e,t,n)},We.prototype.go=function(e){this.history.go(e)},We.prototype.back=function(){this.go(-1)},We.prototype.forward=function(){this.go(1)},We.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},We.prototype.resolve=function(e,t,n){var i=W(e,t=t||this.history.current,n,this),r=this.match(i,t),o=r.redirectedFrom||r.fullPath;return{location:i,route:r,href:function(e,t,n){var i="hash"===n?"#"+t:t;return e?S(e+"/"+i):i}(this.history.base,o,this.mode),normalizedTo:i,resolved:r}},We.prototype.getRoutes=function(){return this.matcher.getRoutes()},We.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==v&&this.history.transitionTo(this.history.getCurrentLocation())},We.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==v&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(We.prototype,Ue);var Ye=We;function qe(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}We.install=function e(t){if(!e.installed||U!==t){e.installed=!0,U=t;var n=function(e){return void 0!==e},i=function(e,t){var i=e.$options._parentVnode;n(i)&&n(i=i.data)&&n(i=i.registerRouteInstance)&&i(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,i(this,this)},destroyed:function(){i(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",x),t.component("RouterLink",q);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}},We.version="3.6.5",We.isNavigationFailure=Se,We.NavigationFailureType=be,We.START_LOCATION=v,K&&window.Vue&&window.Vue.use(We);n(182);n(102),n(218);var Ge={NotFound:()=>n.e(26).then(n.bind(null,524)),Layout:()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(10)]).then(n.bind(null,519))},Ke={"v-0bb9f4a1":()=>n.e(27).then(n.bind(null,538)),"v-0827d991":()=>n.e(28).then(n.bind(null,539)),"v-0efeb151":()=>n.e(29).then(n.bind(null,540)),"v-9c1e9f58":()=>n.e(30).then(n.bind(null,541)),"v-7305bddd":()=>n.e(31).then(n.bind(null,542)),"v-508a131a":()=>Promise.all([n.e(0),n.e(25)]).then(n.bind(null,543)),"v-a2df3ad4":()=>n.e(32).then(n.bind(null,544)),"v-87324e0c":()=>n.e(33).then(n.bind(null,545)),"v-36a56031":()=>n.e(34).then(n.bind(null,546)),"v-4ffc124c":()=>n.e(35).then(n.bind(null,547)),"v-7a5dd191":()=>n.e(36).then(n.bind(null,548)),"v-7f46277a":()=>n.e(37).then(n.bind(null,549)),"v-a6ef4b8c":()=>n.e(38).then(n.bind(null,550)),"v-20824d5a":()=>n.e(39).then(n.bind(null,551)),"v-c2c0fecc":()=>n.e(40).then(n.bind(null,552)),"v-b79f700c":()=>n.e(41).then(n.bind(null,553)),"v-088bcdba":()=>n.e(42).then(n.bind(null,554)),"v-5c7abe44":()=>n.e(43).then(n.bind(null,555)),"v-4efcdccc":()=>n.e(44).then(n.bind(null,556)),"v-18ae6a2f":()=>n.e(45).then(n.bind(null,557)),"v-04f7059e":()=>n.e(46).then(n.bind(null,558)),"v-56dfe86c":()=>n.e(47).then(n.bind(null,559)),"v-53f91a9a":()=>n.e(48).then(n.bind(null,560))};function Xe(e){const t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}const Ze=/-(\w)/g,Je=Xe(e=>e.replace(Ze,(e,t)=>t?t.toUpperCase():"")),Qe=/\B([A-Z])/g,et=Xe(e=>e.replace(Qe,"-$1").toLowerCase()),tt=Xe(e=>e.charAt(0).toUpperCase()+e.slice(1));function nt(e,t){if(!t)return;if(e(t))return e(t);return t.includes("-")?e(tt(Je(t))):e(tt(t))||e(et(t))}const it=Object.assign({},Ge,Ke),rt=e=>it[e],ot=e=>Ke[e],at=e=>Ge[e],st=e=>i.default.component(e);function lt(e){return nt(ot,e)}function ut(e){return nt(at,e)}function ct(e){return nt(rt,e)}function dt(e){return nt(st,e)}function ht(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!dt(e)&&ct(e)){const t=await ct(e)();i.default.component(e,t.default)}}))}function ft(e,t){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[e]=t)}var pt=n(176),mt=n.n(pt),vt=n(177),gt=n.n(vt),yt={created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,t])=>t),this.$ssrContext){const t=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=t)?e.map(e=>{let t="{t+=` ${n}="${gt()(e[n])}"`}),t+">"}).join("\n "):"",this.$ssrContext.canonicalLink=_t(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=wt(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return mt()([{name:"description",content:this.$description}],e,this.siteMeta,xt)},updateCanonicalLink(){bt(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",_t(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){wt(null,this.currentMetaTags),bt()}};function bt(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function _t(e=""){return e?``:""}function wt(e,t){if(t&&[...t].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const t=document.createElement("meta");return Object.keys(e).forEach(n=>{t.setAttribute(n,e[n])}),document.head.appendChild(t),t})}function xt(e){for(const t of["name","property","itemprop"])if(e.hasOwnProperty(t))return e[t]+t;return JSON.stringify(e)}var kt=n(53),Ct=n.n(kt),St={mounted(){Ct.a.configure({showSpinner:!1}),this.$router.beforeEach((e,t,n)=>{e.path===t.path||i.default.component(e.name)||Ct.a.start(),n()}),this.$router.afterEach(()=>{Ct.a.done(),this.isSidebarOpen=!1})}},Ot=n(178),Et=n.n(Ot),Dt={mounted(){Et.a.polyfill()}},Tt=n(51),$t=n.n(Tt),Pt={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:$t()((function(){this.setActiveHash()}),300),setActiveHash(){const e=[].slice.call(document.querySelectorAll(".sidebar-link")),t=[].slice.call(document.querySelectorAll(".header-anchor")).filter(t=>e.some(e=>e.hash===t.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),i=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),r=window.innerHeight+n;for(let e=0;e=o.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Mt="auto",jt="zoom-in",At="zoom-out",Nt="grab",It="move";function Lt(e,t,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r={passive:!1};i?e.addEventListener(t,n,r):e.removeEventListener(t,n,r)}function Ft(e,t){if(e){var n=new Image;n.onload=function(){t&&t(n)},n.src=e}}function Bt(e){return e.dataset.original?e.dataset.original:"A"===e.parentNode.tagName?e.parentNode.getAttribute("href"):null}function Vt(e,t,n){!function(e){var t=Rt,n=zt;if(e.transition){var i=e.transition;delete e.transition,e[t]=i}if(e.transform){var r=e.transform;delete e.transform,e[n]=r}}(t);var i=e.style,r={};for(var o in t)n&&(r[o]=i[o]||""),i[o]=t[o];return r}var Rt="transition",zt="transform",Ht="transform",Wt="transitionend";var Ut=function(){},Yt={enableGrab:!0,preloadImage:!1,closeOnWindowResize:!0,transitionDuration:.4,transitionTimingFunction:"cubic-bezier(0.4, 0, 0, 1)",bgColor:"rgb(255, 255, 255)",bgOpacity:1,scaleBase:1,scaleExtra:.5,scrollThreshold:40,zIndex:998,customSize:null,onOpen:Ut,onClose:Ut,onGrab:Ut,onMove:Ut,onRelease:Ut,onBeforeOpen:Ut,onBeforeClose:Ut,onBeforeGrab:Ut,onBeforeRelease:Ut,onImageLoading:Ut,onImageLoaded:Ut},qt={init:function(e){var t,n;t=this,n=e,Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach((function(e){t[e]=t[e].bind(n)}))},click:function(e){if(e.preventDefault(),Kt(e))return window.open(this.target.srcOriginal||e.currentTarget.src,"_blank");this.shown?this.released?this.close():this.release():this.open(e.currentTarget)},scroll:function(){var e=document.documentElement||document.body.parentNode||document.body,t=window.pageXOffset||e.scrollLeft,n=window.pageYOffset||e.scrollTop;null===this.lastScrollPosition&&(this.lastScrollPosition={x:t,y:n});var i=this.lastScrollPosition.x-t,r=this.lastScrollPosition.y-n,o=this.options.scrollThreshold;(Math.abs(r)>=o||Math.abs(i)>=o)&&(this.lastScrollPosition=null,this.close())},keydown:function(e){(function(e){return"Escape"===(e.key||e.code)||27===e.keyCode})(e)&&(this.released?this.close():this.release(this.close))},mousedown:function(e){if(Gt(e)&&!Kt(e)){e.preventDefault();var t=e.clientX,n=e.clientY;this.pressTimer=setTimeout(function(){this.grab(t,n)}.bind(this),200)}},mousemove:function(e){this.released||this.move(e.clientX,e.clientY)},mouseup:function(e){Gt(e)&&!Kt(e)&&(clearTimeout(this.pressTimer),this.released?this.close():this.release())},touchstart:function(e){e.preventDefault();var t=e.touches[0],n=t.clientX,i=t.clientY;this.pressTimer=setTimeout(function(){this.grab(n,i)}.bind(this),200)},touchmove:function(e){if(!this.released){var t=e.touches[0],n=t.clientX,i=t.clientY;this.move(n,i)}},touchend:function(e){(function(e){e.targetTouches.length})(e)||(clearTimeout(this.pressTimer),this.released?this.close():this.release())},clickOverlay:function(){this.close()},resizeWindow:function(){this.close()}};function Gt(e){return 0===e.button}function Kt(e){return e.metaKey||e.ctrlKey}var Xt={init:function(e){this.el=document.createElement("div"),this.instance=e,this.parent=document.body,Vt(this.el,{position:"fixed",top:0,left:0,right:0,bottom:0,opacity:0}),this.updateStyle(e.options),Lt(this.el,"click",e.handler.clickOverlay.bind(e))},updateStyle:function(e){Vt(this.el,{zIndex:e.zIndex,backgroundColor:e.bgColor,transition:"opacity\n "+e.transitionDuration+"s\n "+e.transitionTimingFunction})},insert:function(){this.parent.appendChild(this.el)},remove:function(){this.parent.removeChild(this.el)},fadeIn:function(){this.el.offsetWidth,this.el.style.opacity=this.instance.options.bgOpacity},fadeOut:function(){this.el.style.opacity=0}},Zt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Jt=function(){function e(e,t){for(var n=0;nm||h>v)return{x:m,y:v}}return{x:h,y:h}}};function tn(){var e=document.documentElement;return{x:Math.min(e.clientWidth,window.innerWidth)/2,y:Math.min(e.clientHeight,window.innerHeight)/2}}function nn(e,t,n){["mousedown","mousemove","mouseup","touchstart","touchmove","touchend"].forEach((function(i){Lt(e,i,t[i],n)}))}var rn=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.target=Object.create(en),this.overlay=Object.create(Xt),this.handler=Object.create(qt),this.body=document.body,this.shown=!1,this.lock=!1,this.released=!0,this.lastScrollPosition=null,this.pressTimer=null,this.options=Qt({},Yt,t),this.overlay.init(this),this.handler.init(this)}return Jt(e,[{key:"listen",value:function(e){if("string"==typeof e)for(var t=document.querySelectorAll(e),n=t.length;n--;)this.listen(t[n]);else"IMG"===e.tagName&&(e.style.cursor=jt,Lt(e,"click",this.handler.click),this.options.preloadImage&&Ft(Bt(e)));return this}},{key:"config",value:function(e){return e?(Qt(this.options,e),this.overlay.updateStyle(this.options),this):this.options}},{key:"open",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.onOpen;if(!this.shown&&!this.lock){var i="string"==typeof e?document.querySelector(e):e;if("IMG"===i.tagName){if(this.options.onBeforeOpen(i),this.target.init(i,this),!this.options.preloadImage){var r=this.target.srcOriginal;null!=r&&(this.options.onImageLoading(i),Ft(r,this.options.onImageLoaded))}this.shown=!0,this.lock=!0,this.target.zoomIn(),this.overlay.insert(),this.overlay.fadeIn(),Lt(document,"scroll",this.handler.scroll),Lt(document,"keydown",this.handler.keydown),this.options.closeOnWindowResize&&Lt(window,"resize",this.handler.resizeWindow);var o=function e(){Lt(i,Wt,e,!1),t.lock=!1,t.target.upgradeSource(),t.options.enableGrab&&nn(document,t.handler,!0),n(i)};return Lt(i,Wt,o),this}}}},{key:"close",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onClose;if(this.shown&&!this.lock){var n=this.target.el;this.options.onBeforeClose(n),this.lock=!0,this.body.style.cursor=Mt,this.overlay.fadeOut(),this.target.zoomOut(),Lt(document,"scroll",this.handler.scroll,!1),Lt(document,"keydown",this.handler.keydown,!1),this.options.closeOnWindowResize&&Lt(window,"resize",this.handler.resizeWindow,!1);var i=function i(){Lt(n,Wt,i,!1),e.shown=!1,e.lock=!1,e.target.downgradeSource(),e.options.enableGrab&&nn(document,e.handler,!1),e.target.restoreCloseStyle(),e.overlay.remove(),t(n)};return Lt(n,Wt,i),this}}},{key:"grab",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.options.scaleExtra,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.options.onGrab;if(this.shown&&!this.lock){var r=this.target.el;this.options.onBeforeGrab(r),this.released=!1,this.target.grab(e,t,n);var o=function e(){Lt(r,Wt,e,!1),i(r)};return Lt(r,Wt,o),this}}},{key:"move",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.options.scaleExtra,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.options.onMove;if(this.shown&&!this.lock){this.released=!1,this.body.style.cursor=It,this.target.move(e,t,n);var r=this.target.el,o=function e(){Lt(r,Wt,e,!1),i(r)};return Lt(r,Wt,o),this}}},{key:"release",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onRelease;if(this.shown&&!this.lock){var n=this.target.el;this.options.onBeforeRelease(n),this.lock=!0,this.body.style.cursor=Mt,this.target.restoreOpenStyle();var i=function i(){Lt(n,Wt,i,!1),e.lock=!1,e.released=!0,t(n)};return Lt(n,Wt,i),this}}}]),e}();const on=JSON.parse('{"bgColor":"black","bgOpacity":"0.8"}'),an=Number("1000");class sn{constructor(){this.instance=new rn(on)}update(e=".theme-default-content img.zoomable"){"undefined"!=typeof window&&this.instance.listen(e)}updateDelay(e=".theme-default-content img.zoomable",t=an){setTimeout(()=>this.update(e),t)}}var ln=[yt,St,Dt,Pt,{watch:{"$page.path"(){void 0!==this.$vuepress.zooming&&this.$vuepress.zooming.updateDelay()}},mounted(){this.$vuepress.zooming=new sn,this.$vuepress.zooming.updateDelay()}}],un={name:"GlobalLayout",computed:{layout(){const e=this.getLayout();return ft("layout",e),i.default.component(e)}},methods:{getLayout(){if(this.$page.path){const e=this.$page.frontmatter.layout;return e&&(this.$vuepress.getLayoutAsyncComponent(e)||this.$vuepress.getVueComponent(e))?e:"Layout"}return"NotFound"}}},cn=n(12),dn=Object(cn.a)(un,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(e,t,n){switch(t){case"components":e[t]||(e[t]={}),Object.assign(e[t],n);break;case"mixins":e[t]||(e[t]=[]),e[t].push(...n);break;default:throw new Error("Unknown option name.")}}(dn,"mixins",ln);const hn=[{name:"v-0bb9f4a1",path:"/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-0bb9f4a1").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-0827d991",path:"/download/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-0827d991").then(n)}},{path:"/download/index.html",redirect:"/download/"},{name:"v-0efeb151",path:"/extensions/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-0efeb151").then(n)}},{path:"/extensions/index.html",redirect:"/extensions/"},{name:"v-9c1e9f58",path:"/forks/Neko/",component:dn,beforeEnter:(e,t,n)=>{ht("ForkPage","v-9c1e9f58").then(n)}},{path:"/forks/Neko/index.html",redirect:"/forks/Neko/"},{path:"/forks/Neko.html",redirect:"/forks/Neko/"},{name:"v-7305bddd",path:"/forks/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-7305bddd").then(n)}},{path:"/forks/index.html",redirect:"/forks/"},{name:"v-508a131a",path:"/forks/TachiyomiAZ/",component:dn,beforeEnter:(e,t,n)=>{ht("ForkPage","v-508a131a").then(n)}},{path:"/forks/TachiyomiAZ/index.html",redirect:"/forks/TachiyomiAZ/"},{path:"/forks/TachiyomiAZ.html",redirect:"/forks/TachiyomiAZ/"},{name:"v-a2df3ad4",path:"/forks/TachiyomiJ2K/",component:dn,beforeEnter:(e,t,n)=>{ht("ForkPage","v-a2df3ad4").then(n)}},{path:"/forks/TachiyomiJ2K/index.html",redirect:"/forks/TachiyomiJ2K/"},{path:"/forks/TachiyomiJ2K.html",redirect:"/forks/TachiyomiJ2K/"},{name:"v-87324e0c",path:"/forks/TachiyomiSY/",component:dn,beforeEnter:(e,t,n)=>{ht("ForkPage","v-87324e0c").then(n)}},{path:"/forks/TachiyomiSY/index.html",redirect:"/forks/TachiyomiSY/"},{path:"/forks/TachiyomiSY.html",redirect:"/forks/TachiyomiSY/"},{name:"v-36a56031",path:"/help/",component:dn,beforeEnter:(e,t,n)=>{ht("HelpPage","v-36a56031").then(n)}},{path:"/help/index.html",redirect:"/help/"},{name:"v-4ffc124c",path:"/help/contribution/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-4ffc124c").then(n)}},{path:"/help/contribution/index.html",redirect:"/help/contribution/"},{path:"/help/contribution.html",redirect:"/help/contribution/"},{name:"v-7a5dd191",path:"/help/faq/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-7a5dd191").then(n)}},{path:"/help/faq/index.html",redirect:"/help/faq/"},{name:"v-7f46277a",path:"/help/guides/backups/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-7f46277a").then(n)}},{path:"/help/guides/backups/index.html",redirect:"/help/guides/backups/"},{path:"/help/guides/backups.html",redirect:"/help/guides/backups/"},{name:"v-a6ef4b8c",path:"/help/guides/categories/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-a6ef4b8c").then(n)}},{path:"/help/guides/categories/index.html",redirect:"/help/guides/categories/"},{path:"/help/guides/categories.html",redirect:"/help/guides/categories/"},{name:"v-20824d5a",path:"/help/guides/getting-started/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-20824d5a").then(n)}},{path:"/help/guides/getting-started/index.html",redirect:"/help/guides/getting-started/"},{path:"/help/guides/getting-started.html",redirect:"/help/guides/getting-started/"},{name:"v-c2c0fecc",path:"/help/guides/local-manga/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-c2c0fecc").then(n)}},{path:"/help/guides/local-manga/index.html",redirect:"/help/guides/local-manga/"},{path:"/help/guides/local-manga.html",redirect:"/help/guides/local-manga/"},{name:"v-b79f700c",path:"/help/guides/reader-settings/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-b79f700c").then(n)}},{path:"/help/guides/reader-settings/index.html",redirect:"/help/guides/reader-settings/"},{path:"/help/guides/reader-settings.html",redirect:"/help/guides/reader-settings/"},{name:"v-088bcdba",path:"/help/guides/source-migration/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-088bcdba").then(n)}},{path:"/help/guides/source-migration/index.html",redirect:"/help/guides/source-migration/"},{path:"/help/guides/source-migration.html",redirect:"/help/guides/source-migration/"},{name:"v-5c7abe44",path:"/help/guides/tracking/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-5c7abe44").then(n)}},{path:"/help/guides/tracking/index.html",redirect:"/help/guides/tracking/"},{path:"/help/guides/tracking.html",redirect:"/help/guides/tracking/"},{name:"v-4efcdccc",path:"/help/guides/troubleshooting/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-4efcdccc").then(n)}},{path:"/help/guides/troubleshooting/index.html",redirect:"/help/guides/troubleshooting/"},{path:"/help/guides/troubleshooting.html",redirect:"/help/guides/troubleshooting/"},{name:"v-18ae6a2f",path:"/privacy/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-18ae6a2f").then(n)}},{path:"/privacy/index.html",redirect:"/privacy/"},{name:"v-04f7059e",path:"/sandbox/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-04f7059e").then(n)}},{path:"/sandbox/index.html",redirect:"/sandbox/"},{name:"v-56dfe86c",path:"/sandbox/element-ui/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-56dfe86c").then(n)}},{path:"/sandbox/element-ui/index.html",redirect:"/sandbox/element-ui/"},{path:"/sandbox/element-ui.html",redirect:"/sandbox/element-ui/"},{name:"v-53f91a9a",path:"/sandbox/style-guide/",component:dn,beforeEnter:(e,t,n)=>{ht("Layout","v-53f91a9a").then(n)}},{path:"/sandbox/style-guide/index.html",redirect:"/sandbox/style-guide/"},{path:"/sandbox/style-guide.html",redirect:"/sandbox/style-guide/"},{path:"*",component:dn}],fn={title:"Tachiyomi",description:"Free and open source manga reader for Android",base:"/",headTags:[["link",{rel:"icon",href:"/favicon.ico"}],["meta",{name:"theme-color",content:"#2e84bf"}],["meta",{prefix:"og: http://ogp.me/ns#",property:"og:image",content:"https://tachiyomi.org/icons/logo.png"}],["meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}],["link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossorigin:""}],["link",{rel:"stylesheet",href:"https://fonts.googleapis.com/css?family=Open+Sans"}],["script",{src:"/scripts/remove_service_worker.js"}]],pages:[{title:"Home",frontmatter:{home:!0,meta:[{name:"keywords",content:"Download, Official, Android app, Manga"}],lang:"en-US",heroImage:"/icons/logo.svg",buttonDownload:"Download",buttonDownloadLink:"/download/",buttonGuides:"User Guide",buttonGuidesLink:"/help/guides/getting-started",features:[{title:"Extensions",details:"Online and offline reading from over a thousand sources",image:"library"},{title:"Tracking",details:"Automatically keep track of your manga with MyAnimeList, AniList, MangaUpdates, Shikimori, Bangumi, and Kitsu",image:"tracking"},{title:"Customization",details:"A configurable reader with multiple reading modes, custom color filters, and other settings",image:"reader"}]},regularPath:"/",relativePath:"README.md",key:"v-0bb9f4a1",path:"/",lastUpdated:"9 months ago",lastUpdatedTimestamp:1666972799e3},{title:"Download",frontmatter:{title:"Download",description:"Download links for the latest versions of Tachiyomi.",meta:[{name:"keywords",content:"Download, Official, Android app, Manga, APK"}],lang:"en-US"},regularPath:"/download/",relativePath:"download/README.md",key:"v-0827d991",path:"/download/",lastUpdated:"3 years ago",lastUpdatedTimestamp:1600116e6},{title:"Extensions",frontmatter:{title:"Extensions",description:"List of available extensions to use with Tachiyomi, you can download them from here or from the app.",lang:"en-US"},regularPath:"/extensions/",relativePath:"extensions/README.md",key:"v-0efeb151",path:"/extensions/",lastUpdated:"2 years ago",lastUpdatedTimestamp:163892873e4},{title:"Neko",frontmatter:{layout:"ForkPage",title:"Neko",metaTitle:"Neko",description:"MangaDex specific fork of Tachiyomi and TachiyomiJ2K. With a focus on MangaDex specific features.",lang:"en-US",meta:[{property:"og:image",content:"/assets/forks_logo-neko.png"},{name:"theme-color",content:"#FD6684"},{name:"msapplication-TileColor",content:"#FD6684"}],sidebar:!1},regularPath:"/forks/Neko.html",relativePath:"forks/Neko.md",key:"v-9c1e9f58",path:"/forks/Neko/",headers:[{level:2,title:"About",slug:"about"},{level:2,title:"Credits",slug:"credits"},{level:2,title:"Disclaimer",slug:"disclaimer"}],lastUpdated:"5 months ago",lastUpdatedTimestamp:1678997934e3},{title:"Forks",frontmatter:{title:"Forks",description:"Forks are alternative versions of Tachiyomi with exclusive features.",lang:"en-US",sidebar:!0,sidebarDepth:1},regularPath:"/forks/",relativePath:"forks/README.md",key:"v-7305bddd",path:"/forks/",headers:[{level:2,title:"Neko",slug:"neko"},{level:2,title:"TachiyomiJ2K",slug:"tachiyomij2k"},{level:2,title:"TachiyomiAZ",slug:"tachiyomiaz"},{level:2,title:"TachiyomiSY",slug:"tachiyomisy"}],lastUpdated:"7 months ago",lastUpdatedTimestamp:1673151549e3},{title:"TachiyomiAZ",frontmatter:{layout:"ForkPage",title:"TachiyomiAZ",metaTitle:"TachiyomiAZ",description:"This fork is based off of TachiyomiEH. It ports features and fixes from other Tachiyomi forks back to the old Tachiyomi hamburger UI.",lang:"en-US",meta:[{property:"og:image",content:"/assets/forks_logo-az.png"},{name:"theme-color",content:"#FFCC4D"},{name:"msapplication-TileColor",content:"#FFCC4D"}],sidebar:!1},regularPath:"/forks/TachiyomiAZ.html",relativePath:"forks/TachiyomiAZ.md",key:"v-508a131a",path:"/forks/TachiyomiAZ/",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Features",slug:"features"}],lastUpdated:"7 months ago",lastUpdatedTimestamp:1673151549e3},{title:"TachiyomiJ2K",frontmatter:{layout:"ForkPage",title:"TachiyomiJ2K",metaTitle:"TachiyomiJ2K",description:"This fork takes a new approach to the design of the base app along with several other enhancements.",lang:"en-US",meta:[{property:"og:image",content:"/assets/forks_logo-j2k.png"},{name:"theme-color",content:"#0952AF"},{name:"msapplication-TileColor",content:"#0952AF"}],sidebar:!1},regularPath:"/forks/TachiyomiJ2K.html",relativePath:"forks/TachiyomiJ2K.md",key:"v-a2df3ad4",path:"/forks/TachiyomiJ2K/",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Features",slug:"features"}],lastUpdated:"7 months ago",lastUpdatedTimestamp:1673151549e3},{title:"TachiyomiSY",frontmatter:{layout:"ForkPage",title:"TachiyomiSY",metaTitle:"TachiyomiSY",description:"This fork adds quite a few custom unique features, it also has new features from the latest Tachiyomi version as well as from other forks such as TachiyomiJ2K.",lang:"en-US",meta:[{property:"og:image",content:"/assets/forks_logo-sy.png"},{name:"theme-color",content:"#BE0F6E"},{name:"msapplication-TileColor",content:"#BE0F6E"}],sidebar:!1},regularPath:"/forks/TachiyomiSY.html",relativePath:"forks/TachiyomiSY.md",key:"v-87324e0c",path:"/forks/TachiyomiSY/",headers:[{level:2,title:"About",slug:"about"},{level:2,title:"Features",slug:"features"},{level:2,title:"Credits",slug:"credits"},{level:2,title:"Disclaimer",slug:"disclaimer"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:1628632675e3},{title:"Help Center",frontmatter:{layout:"HelpPage",title:"Help Center",description:"From common questions to guides, find help for everything Tachiyomi.",lang:"en-US",hideSearch:!0,help:[{title:"FAQ",description:"About app-related things",link:"/help/faq/",faq:!0},{title:"Troubleshooting",description:"Fix common issues",link:"/help/guides/troubleshooting/",fixProblems:!0},{title:"Guides",description:"How to use the app",link:"/help/guides/getting-started/",guides:!0,extensions:!0},{title:"Forks",description:"Alternative versions",link:"/forks/",forks:!0},{title:"Contribution",description:"Help contribute to the app",link:"/help/contribution/",contribution:!0}]},regularPath:"/help/",relativePath:"help/README.md",key:"v-36a56031",path:"/help/",headers:[{level:3,title:"Need help? We've got your back.",slug:"need-help-we-ve-got-your-back"}],lastUpdated:"a year ago",lastUpdatedTimestamp:1658026292e3},{title:"Contribution",frontmatter:{title:"Contribution",description:"Find out how to help translate or build the app and extensions.",lang:"en-US"},regularPath:"/help/contribution.html",relativePath:"help/contribution.md",key:"v-4ffc124c",path:"/help/contribution/",headers:[{level:2,title:"Code",slug:"code"},{level:3,title:"Application",slug:"application"},{level:3,title:"Extensions",slug:"extensions"},{level:3,title:"Website",slug:"website"},{level:2,title:"Translation",slug:"translation"},{level:2,title:"Donation",slug:"donation"}],lastUpdated:"9 months ago",lastUpdatedTimestamp:1668961595e3},{title:"Frequently Asked Questions",frontmatter:{title:"Frequently Asked Questions",description:"Need help with something? Most of your issues can probably be solved from this page.",lang:"en-US",sidebarDepth:2},regularPath:"/help/faq/",relativePath:"help/faq/README.md",key:"v-7a5dd191",path:"/help/faq/",headers:[{level:2,title:"Application",slug:"application"},{level:3,title:"General",slug:"general"},{level:3,title:"Library",slug:"library"},{level:3,title:"Browse",slug:"browse"},{level:3,title:"Reader",slug:"reader"},{level:3,title:"Downloads",slug:"downloads"},{level:3,title:"Local Manga",slug:"local-manga"},{level:3,title:"Application Updates",slug:"application-updates"},{level:3,title:"Miscellaneous",slug:"miscellaneous"},{level:2,title:"Extensions",slug:"extensions"},{level:3,title:"General",slug:"general-2"},{level:3,title:"MangaDex",slug:"mangadex"},{level:3,title:"Mangakakalot, Manganelo, Mangabat and Mangairo",slug:"mangakakalot-manganelo-mangabat-and-mangairo"},{level:3,title:"MangaPark",slug:"mangapark"},{level:3,title:"Removed Extensions",slug:"removed-extensions"},{level:3,title:"Split Extensions",slug:"split-extensions"},{level:2,title:"Android 11+",slug:"android-11"},{level:3,title:"What changed in Android 11?",slug:"what-changed-in-android-11"},{level:3,title:"What does it mean for Tachiyomi?",slug:"what-does-it-mean-for-tachiyomi"},{level:3,title:"Is there any way to improve performance?",slug:"is-there-any-way-to-improve-performance"},{level:2,title:"Shizuku",slug:"shizuku"},{level:3,title:"What is Shizuku?",slug:"what-is-shizuku"},{level:3,title:"Do I need Shizuku?",slug:"do-i-need-shizuku"},{level:3,title:"How do I set Shizuku up?",slug:"how-do-i-set-shizuku-up"},{level:3,title:"What is the difference between the installers?",slug:"what-is-the-difference-between-the-installers"}],lastUpdated:"a minute ago",lastUpdatedTimestamp:1691672649e3},{title:"Backups",frontmatter:{title:"Backups",description:"Backups can save you a lot of headache in case something happens to your installation or device.",lang:"en-US"},regularPath:"/help/guides/backups.html",relativePath:"help/guides/backups.md",key:"v-7f46277a",path:"/help/guides/backups/",headers:[{level:2,title:"How do I restore a backup?",slug:"how-do-i-restore-a-backup"},{level:2,title:"How can I make my new install of Tachiyomi detect my old downloads?",slug:"how-can-i-make-my-new-install-of-tachiyomi-detect-my-old-downloads"},{level:2,title:"How do I make Tachiyomi automatically backup?",slug:"how-do-i-make-tachiyomi-automatically-backup"},{level:2,title:"Forks information",slug:"forks-information"},{level:3,title:"Neko",slug:"neko"},{level:3,title:"TachiyomiSY",slug:"tachiyomiaz-and-tachiyomisy"}],lastUpdated:"7 months ago",lastUpdatedTimestamp:1673151549e3},{title:"Categories",frontmatter:{title:"Categories",description:"Store your manga in custom categories, which help you keep your library neat and organized.",lang:"en-US"},regularPath:"/help/guides/categories.html",relativePath:"help/guides/categories.md",key:"v-a6ef4b8c",path:"/help/guides/categories/",headers:[{level:2,title:"Create a category",slug:"create-a-category"},{level:2,title:"Edit a category",slug:"edit-a-category"},{level:2,title:"Change category order",slug:"change-category-order"},{level:2,title:"Delete a category",slug:"delete-a-category"},{level:2,title:"Add manga to category",slug:"add-manga-to-category"},{level:2,title:"Remove manga from category",slug:"remove-manga-from-category"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:163892873e4},{title:"Getting started",frontmatter:{title:"Getting started",description:"Essential information to help you get set up with Tachiyomi.",lang:"en-US"},regularPath:"/help/guides/getting-started.html",relativePath:"help/guides/getting-started.md",key:"v-20824d5a",path:"/help/guides/getting-started/",headers:[{level:2,title:"Installation",slug:"installation"},{level:2,title:"Installing an extension",slug:"installing-an-extension"},{level:2,title:"Adding manga to your library",slug:"adding-manga-to-your-library"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:163892873e4},{title:"Local manga",frontmatter:{title:"Local manga",description:"All the information you would need to read your own local manga.",lang:"en-US"},regularPath:"/help/guides/local-manga.html",relativePath:"help/guides/local-manga.md",key:"v-c2c0fecc",path:"/help/guides/local-manga/",headers:[{level:2,title:"Folder Structure",slug:"folder-structure"},{level:2,title:"Archive Files",slug:"archive-files"},{level:2,title:"Advanced",slug:"advanced"},{level:3,title:"Editing local manga details",slug:"editing-local-manga-details"},{level:3,title:"Using a custom cover image",slug:"using-a-custom-cover-image"}],lastUpdated:"5 months ago",lastUpdatedTimestamp:1678112338e3},{title:"Reader settings",frontmatter:{title:"Reader settings",description:"Reader settings for Tachiyomi.",lang:"en-US"},regularPath:"/help/guides/reader-settings.html",relativePath:"help/guides/reader-settings.md",key:"v-b79f700c",path:"/help/guides/reader-settings/",headers:[{level:2,title:"Default reading mode",slug:"default-reading-mode"},{level:2,title:"Double tap animation speed",slug:"double-tap-animation-speed"},{level:2,title:"Show reading mode",slug:"show-reading-mode"},{level:2,title:"32-bit color",slug:"_32-bit-color"},{level:2,title:"Animate page transitions",slug:"animate-page-transitions"},{level:2,title:"Rotation",slug:"rotation"},{level:2,title:"Background color",slug:"background-color"},{level:2,title:"Fullscreen",slug:"fullscreen"},{level:2,title:"Show content in cutout area",slug:"show-content-in-cutout-area"},{level:2,title:"Keep screen on",slug:"keep-screen-on"},{level:2,title:"Show page number",slug:"show-page-number"},{level:2,title:"Skip chapters marked read",slug:"skip-chapters-marked-read"},{level:2,title:"Skip filtered chapters",slug:"skip-filtered-chapters"},{level:2,title:"Always show chapter transition",slug:"always-show-chapter-transition"},{level:2,title:"Navigation layout",slug:"navigation-layout"},{level:2,title:"Invert Tapping",slug:"invert-tapping"},{level:2,title:"Scale type",slug:"scale-type"},{level:3,title:"Examples",slug:"examples"},{level:2,title:"Zoom start position",slug:"zoom-start-position"},{level:3,title:"Examples",slug:"examples-2"},{level:2,title:"Crop borders",slug:"crop-borders"},{level:2,title:"Side padding",slug:"side-padding"},{level:2,title:"Tapping",slug:"tapping"},{level:2,title:"Long tap dialog",slug:"long-tap-dialog"},{level:2,title:"Volume keys",slug:"volume-keys"},{level:2,title:"Invert volume keys",slug:"invert-volume-keys"}],lastUpdated:"5 months ago",lastUpdatedTimestamp:1678112338e3},{title:"Source migration",frontmatter:{title:"Source migration",description:"Your source is no longer accessible or you just want to move to another? No problem.",lang:"en-US"},regularPath:"/help/guides/source-migration.html",relativePath:"help/guides/source-migration.md",key:"v-088bcdba",path:"/help/guides/source-migration/",headers:[{level:2,title:"Migrating on Stable/Preview",slug:"migrating-on-stable-preview"},{level:2,title:"Migrating on TachiyomiJ2K",slug:"migrating-on-tachiyomij2k"},{level:2,title:"Migrating on TachiyomiAZ",slug:"migrating-on-tachiyomiaz"},{level:2,title:"Migrating on TachiyomiSY",slug:"migrating-on-tachiyomisy"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:163892873e4},{title:"Tracking",frontmatter:{title:"Tracking",description:"How to automatically track read chapters on supported trackers",lang:"en-US"},regularPath:"/help/guides/tracking.html",relativePath:"help/guides/tracking.md",key:"v-5c7abe44",path:"/help/guides/tracking/",headers:[{level:2,title:"What is tracking?",slug:"what-is-tracking"},{level:2,title:"How do I login into trackers?",slug:"how-do-i-login-into-trackers"},{level:3,title:"How do I set up tracking for each manga?",slug:"how-do-i-set-up-tracking-for-each-manga"},{level:3,title:"How do I log in with Kitsu?",slug:"how-do-i-log-in-with-kitsu"},{level:3,title:"Why am I unable to find a manga in MAL's search results?",slug:"why-am-i-unable-to-find-a-manga-in-mal-s-search-results"},{level:3,title:"How do I see which manga I have or have not tracked in my library?",slug:"how-do-i-see-which-manga-i-have-or-have-not-tracked-in-my-library"}],lastUpdated:"4 months ago",lastUpdatedTimestamp:1682096493e3},{title:"Troubleshooting",frontmatter:{title:"Troubleshooting",description:"Encountered an issue with a source or the app? Here are resources to help you troubleshoot it.",lang:"en-US"},regularPath:"/help/guides/troubleshooting.html",relativePath:"help/guides/troubleshooting.md",key:"v-4efcdccc",path:"/help/guides/troubleshooting/",headers:[{level:3,title:"What are some common issues?",slug:"what-are-some-common-issues"},{level:2,title:"Diagnosis",slug:"diagnosis"},{level:3,title:"It only happens to me",slug:"it-only-happens-to-me"},{level:3,title:"Everyone is having this problem",slug:"everyone-is-having-this-problem"},{level:2,title:"Solving Cloudflare issues",slug:"solving-cloudflare-issues"},{level:3,title:"Loading the website in WebView",slug:"loading-the-website-in-webview"},{level:3,title:"Clearing cookies and WebView data",slug:"clearing-cookies-and-webview-data"},{level:3,title:"Changing your user agent",slug:"changing-your-user-agent"},{level:2,title:"Update WebView",slug:"update-webview"},{level:2,title:"Unable to install the app or extensions",slug:"unable-to-install-the-app-or-extensions"},{level:2,title:"Getting Logcats and Crash Logs",slug:"getting-logcats-and-crash-logs"}],lastUpdated:"a month ago",lastUpdatedTimestamp:1688219583e3},{title:"Privacy Policy",frontmatter:{title:"Privacy Policy",lang:"en-US",sidebar:!1},regularPath:"/privacy/",relativePath:"privacy/README.md",key:"v-18ae6a2f",path:"/privacy/",headers:[{level:2,title:"Information Collection and Use",slug:"information-collection-and-use"},{level:3,title:"Log Data",slug:"log-data"},{level:3,title:"Analytics Data",slug:"analytics-data"},{level:2,title:"External Links",slug:"external-links"},{level:2,title:"Changes to This Privacy Policy",slug:"changes-to-this-privacy-policy"},{level:2,title:"Contact Us",slug:"contact-us"}],lastUpdated:"2 years ago",lastUpdatedTimestamp:1639607873e3},{title:"Sandbox",frontmatter:{title:"Sandbox",description:"Sandbox playground for demonstrating and documenting how different website functions work for easier integration by contributors.",lang:"en-US",sidebar:!1,sitemap:{exclude:!0}},regularPath:"/sandbox/",relativePath:"sandbox/README.md",key:"v-04f7059e",path:"/sandbox/",lastUpdated:"3 years ago",lastUpdatedTimestamp:1598867415e3},{title:"Element-UI",frontmatter:{title:"Element-UI",description:"Demonstrations of different Element-UI features.",lang:"en-US",sitemap:{exclude:!0}},regularPath:"/sandbox/element-ui.html",relativePath:"sandbox/element-ui.md",key:"v-56dfe86c",path:"/sandbox/element-ui/",headers:[{level:2,title:"Button",slug:"button"},{level:2,title:"Link",slug:"link"},{level:2,title:"Tag",slug:"tag"},{level:2,title:"Alert",slug:"alert"},{level:2,title:"Tabs",slug:"tabs"},{level:2,title:"Collapse",slug:"collapse"},{level:2,title:"Tooltip",slug:"tooltip"},{level:3,title:"Text",slug:"text"},{level:3,title:"Button",slug:"button-2"},{level:2,title:"Steps",slug:"steps"},{level:3,title:"Step bar with icon",slug:"step-bar-with-icon"},{level:3,title:"Step bar with description",slug:"step-bar-with-description"}],lastUpdated:"3 years ago",lastUpdatedTimestamp:1603820133e3},{title:"Style guide",frontmatter:{title:"Style guide",description:"Style guide to aid website content contributors.",lang:"en-US",sitemap:{exclude:!0}},regularPath:"/sandbox/style-guide.html",relativePath:"sandbox/style-guide.md",key:"v-53f91a9a",path:"/sandbox/style-guide/",headers:[{level:2,title:"FAQ Style",slug:"faq-style"},{level:2,title:"Guide Style",slug:"guide-style"}],lastUpdated:"5 months ago",lastUpdatedTimestamp:1678112338e3}],themeConfig:{logo:"/icons/logo.svg",repo:"tachiyomiorg/tachiyomi",docsRepo:"tachiyomiorg/website",docsDir:"src",smoothScroll:!0,algolia:{apiKey:"fc1c45b5a3835e1882cbbf0751dfe705",indexName:"tachiyomi"},searchPlaceholder:"Search...",editLinks:!0,editLinkText:"Help us improve this page",lastUpdated:"Last updated",nav:[{text:"Home",link:"/"},{text:"Help Center",link:"/help/"},{text:"Download",link:"/download/"},{text:"Extensions",link:"/extensions/"}],sidebar:{"/help/guides/":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/help/faq/":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/help/contribution":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/extensions":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/forks":[{title:"Frequently Asked Questions",path:"/help/faq/"},{title:"Guides",collapsable:!1,sidebarDepth:2,children:["/help/guides/getting-started","/help/guides/troubleshooting","/help/guides/source-migration","/help/guides/backups","/help/guides/tracking","/help/guides/categories","/help/guides/local-manga","/help/guides/reader-settings"]},{title:"Tachiyomi",collapsable:!1,sidebarDepth:2,children:["/help/contribution","/download/","/extensions/","/forks/"]}],"/sandbox":["/",{title:"Sandbox",path:"/sandbox/",collapsable:!1,sidebarDepth:2,children:["/sandbox/style-guide","/sandbox/element-ui"]}]}}};n(325),n(326),n(327);var pn=n(52),mn=n.n(pn);var vn={methods:{handleMouseDown(e){this.isMouseDown=!0,-1!==e.type.indexOf("touch")&&(this.dragStartX=e.touches[0].clientX,this.dragStartY=e.touches[0].clientY),-1!==e.type.indexOf("mouse")&&(this.dragStartX=e.clientX,this.dragStartY=e.clientY)},handleMouseMove(e){let t,n;-1!==e.type.indexOf("touch")&&(t=e.touches[0].clientX,n=e.touches[0].clientY),-1!==e.type.indexOf("mouse")&&(t=e.clientX,n=e.clientY);Math.abs(t-this.dragStartX)>3*Math.abs(n-this.dragStartY)&&(this.disableScroll(),this.dragDistance=t-this.dragStartX)},handleMouseUp(){this.isMouseDown=!1,this.enableScroll()},handleMouseOver(e){this.settings.autoplay&&("dot"===e&&this.settings.pauseOnDotsHover||"track"===e&&this.settings.pauseOnHover)&&(this.isAutoplayPaused=!0)},handleMouseOut(e){this.settings.autoplay&&("dot"===e&&this.settings.pauseOnDotsHover||"track"===e&&this.settings.pauseOnHover)&&(this.isAutoplayPaused=!1)}}};var gn={methods:{getWidth(){if(this.isSSR)return!1;this.widthWindow=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,this.widthContainer=this.$refs.list.clientWidth},htmlCollectionToArray:e=>Array.prototype.slice.call(e,0)}};var yn={methods:{clearAutoPlayPause(){clearTimeout(this.autoplayTimeout),this.autoplayRemaining=null},disableAutoPlay(){clearInterval(this.autoplayInterval),this.autoplayInterval=null},disableScroll(){document.ontouchmove=e=>e.preventDefault()},enableScroll(){document.ontouchmove=()=>!0},restartAutoPlay(){this.disableAutoPlay(),this.toggleAutoPlay()},toggleAutoPlay(){const e=!this.settings.unagile&&this.settings.autoplay;!this.autoplayInterval&&e?this.autoplayInterval=setInterval(()=>{document.hidden||(this.canGoToNext?this.goToNext():this.disableAutoPlay())},this.settings.autoplaySpeed):this.disableAutoPlay()},toggleFade(){const e=!this.settings.unagile&&this.settings.fade;for(let t=0;tthis.slides[this.currentSlide].classList.add("agile__slide--active"),this.changeDelay);let e=this.slidesCloned?this.countSlides+this.currentSlide:this.currentSlide;this.centerMode&&(e-=Math.floor(this.settings.slidesToShow/2)-+(this.settings.slidesToShow%2==0));for(let t=Math.max(e,0);tthis.countSlides&&(this.currentSlide=this.countSlides-1),this.goTo(this.currentSlide,!1,!1))}}},_n=n(179),wn=n.n(_n);var xn={props:{asNavFor:{type:Array,default:function(){return[]}},autoplay:{type:Boolean,default:!1},autoplaySpeed:{type:Number,default:3e3},centerMode:{type:Boolean,default:!1},centerPadding:{type:String,default:"15%"},changeDelay:{type:Number,default:0},dots:{type:Boolean,default:!0},fade:{type:Boolean,default:!1},infinite:{type:Boolean,default:!0},initialSlide:{type:Number,default:0},mobileFirst:{type:Boolean,default:!0},navButtons:{type:Boolean,default:!0},options:{type:Object,default:()=>null},pauseOnDotsHover:{type:Boolean,default:!1},pauseOnHover:{type:Boolean,default:!0},responsive:{type:Array,default:()=>null},rtl:{type:Boolean,default:!1},slidesToScroll:{type:Number,default:1},slidesToShow:{type:Number,default:1},speed:{type:Number,default:300},swipeDistance:{type:Number,default:50},throttleDelay:{type:Number,default:500},timing:{type:String,default:"ease",validator:e=>-1!==["ease","linear","ease-in","ease-out","ease-in-out"].indexOf(e)},unagile:{type:Boolean,default:!1}},computed:{initialSettings:function(){let{options:e,...t}=this.$props;return e&&(t={...t,...e}),t.responsive&&(t.responsive=wn()(t.responsive,"breakpoint")),t},settings:function(){const{responsive:e,...t}=this.initialSettings;return e&&e.forEach(e=>{if(t.mobileFirst?e.breakpointthis.widthWindow)for(const n in e.settings)t[n]=e.settings[n]}),t}}},kn=n(101),Cn=n.n(kn);var Sn={name:"agile",mixins:[vn,gn,yn,bn,xn,{created(){this.goTo=Cn()(this.goTo,this.throttleDelay),this.getWidth=Cn()(this.getWidth,500)}},{watch:{currentBreakpoint(){this.$emit("breakpoint",{breakpoint:this.currentBreakpoint})},currentSlide(){this.prepareSlidesClasses(),this.autoplayStartTimestamp=this.settings.autoplay?+new Date:null,this.$emit("after-change",{currentSlide:this.currentSlide})},dragDistance(){if(this.isMouseDown){const{rtl:e}=this.settings,t=this.dragDistance*(e?-1:1);t>this.swipeDistance&&this.canGoToPrev&&(this.goToPrev(),this.handleMouseUp()),t<-1*this.swipeDistance&&this.canGoToNext&&(this.goToNext(),this.handleMouseUp())}},isAutoplayPaused(e){e?(this.remaining=this.settings.autoplaySpeed-(+new Date-this.autoplayStartTimestamp),this.disableAutoPlay(),this.clearAutoPlayPause()):this.autoplayTimeout=setTimeout(()=>{this.clearAutoPlayPause(),this.goToNext(),this.toggleAutoPlay()},this.remaining)},"settings.autoplay"(){this.toggleAutoPlay()},"settings.fade"(){this.toggleFade()},"settings.unagile"(){},widthSlide(){for(let e=0;e({autoplayInterval:null,autoplayRemaining:null,autoplayStartTimestamp:null,autoplayTimeout:null,currentSlide:null,dragDistance:0,dragStartX:0,dragStartY:0,isAutoplayPaused:!1,isMouseDown:!1,slides:[],slidesClonedAfter:[],slidesClonedBefore:[],isSSR:"undefined"==typeof window,transitionDelay:0,translateX:0,widthWindow:0,widthContainer:0}),computed:{breakpoints:function(){return this.initialSettings.responsive?this.initialSettings.responsive.map(e=>e.breakpoint):[]},canGoToPrev:function(){return this.settings.infinite||this.currentSlide>0},canGoToNext:function(){return this.settings.infinite||this.currentSlidee).reverse();return this.initialSettings.mobileFirst?e.find(e=>ee>this.widthWindow)||null},marginX:function(){if(this.settings.unagile)return 0;let e=this.slidesCloned?this.countSlides*this.widthSlide:0;return this.settings.centerMode&&(e-=(Math.floor(this.settings.slidesToShow/2)-+(this.settings.slidesToShow%2==0))*this.widthSlide),this.settings.rtl?e:-1*e},slidesCloned:function(){return!this.settings.unagile&&!this.settings.fade&&this.settings.infinite},slidesAll:function(){return this.slidesCloned?[...this.slidesClonedBefore,...this.slides,...this.slidesClonedAfter]:this.slides},widthSlide:function(){return this.settings.unagile?"auto":this.widthContainer/this.settings.slidesToShow}},mounted(){window.addEventListener("resize",this.getWidth),this.$refs.track.addEventListener("touchstart",this.handleMouseDown),this.$refs.track.addEventListener("touchend",this.handleMouseUp),this.$refs.track.addEventListener("touchmove",this.handleMouseMove),this.$refs.track.addEventListener("mousedown",this.handleMouseDown),this.$refs.track.addEventListener("mouseup",this.handleMouseUp),this.$refs.track.addEventListener("mousemove",this.handleMouseMove),this.isSSR=!1,this.reload()},beforeUnmount(){this.destroy()},methods:{destroy(){window.removeEventListener("resize",this.getWidth),this.$refs.track.removeEventListener("touchstart",this.handleMouseDown),this.$refs.track.removeEventListener("touchend",this.handleMouseUp),this.$refs.track.removeEventListener("touchmove",this.handleMouseMove),this.$refs.track.removeEventListener("mousedown",this.handleMouseDown),this.$refs.track.removeEventListener("mouseup",this.handleMouseUp),this.$refs.track.removeEventListener("mousemove",this.handleMouseMove),this.disableAutoPlay()},getCurrentBreakpoint(){return this.currentBreakpoint},getCurrentSettings(){return this.settings},getCurrentSlide(){return this.currentSlide},getInitialSettings(){return this.initialSettings},goTo(e,t=!0,n=!1){if(this.settings.unagile)return!1;n||this.settings.asNavFor.forEach(n=>{n&&n.goTo(e,t,!0)});let i=e;t&&(this.settings.infinite&&e<0?i=this.countSlides-1:e>=this.countSlides&&(i=0),this.$emit("before-change",{currentSlide:this.currentSlide,nextSlide:i}),this.currentSlide=i,e!==i&&setTimeout(()=>{this.goTo(i,!1)},this.settings.speed));const r=this.settings.fade?0:e*this.widthSlide*this.settings.slidesToScroll;this.transitionDelay=t?this.speed:0,(this.infinite||this.currentSlide+this.slidesToShow<=this.countSlides)&&(this.translateX=this.settings.rtl?r:-1*r)},goToNext(){this.canGoToNext&&this.goTo(this.currentSlide+1)},goToPrev(){this.canGoToPrev&&this.goTo(this.currentSlide-1)},reload(){this.getWidth(),this.prepareSlides(),this.prepareCarousel(),this.toggleFade(),this.toggleAutoPlay()}}},On=(n(387),Object(cn.a)(Sn,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"agile",class:{"agile--ssr":e.isSSR,"agile--auto-play":e.settings.autoplay,"agile--disabled":e.settings.unagile,"agile--fade":e.settings.fade&&!e.settings.unagile,"agile--rtl":e.settings.rtl,"agile--no-nav-buttons":!e.settings.navButtons},on:{touchstart:()=>{}}},[t("div",{ref:"list",staticClass:"agile__list"},[t("div",{ref:"track",staticClass:"agile__track",style:{transform:`translate(${e.translateX+e.marginX}px)`,transition:`transform ${e.settings.timing} ${e.transitionDelay}ms`},on:{mouseout:function(t){return e.handleMouseOut("track")},mouseover:function(t){return e.handleMouseOver("track")}}},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.slidesCloned,expression:"slidesCloned"}],ref:"slidesClonedBefore",staticClass:"agile__slides agile__slides--cloned"},[e._t("default")],2),e._v(" "),t("div",{ref:"slides",staticClass:"agile__slides agile__slides--regular"},[e._t("default")],2),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.slidesCloned,expression:"slidesCloned"}],ref:"slidesClonedAfter",staticClass:"agile__slides agile__slides--cloned"},[e._t("default")],2)])]),e._v(" "),e.$slots.caption?t("div",{staticClass:"agile__caption"},[e._t("caption")],2):e._e(),e._v(" "),e.settings.unagile||!e.settings.navButtons&&!e.settings.dots?e._e():t("div",{staticClass:"agile__actions"},[e.settings.navButtons&&!e.settings.unagile?t("button",{ref:"prevButton",staticClass:"agile__nav-button agile__nav-button--prev",attrs:{disabled:!e.canGoToPrev,"aria-label":"Previous",type:"button"},on:{click:function(t){e.goToPrev(),e.restartAutoPlay()}}},[e._t("prevButton",(function(){return[e._v("\n ←\n ")]}))],2):e._e(),e._v(" "),e.settings.dots&&!e.settings.unagile?t("ul",{ref:"dots",staticClass:"agile__dots"},e._l(e.countSlides,(function(n){return t("li",{key:n,staticClass:"agile__dot",class:{"agile__dot--current":n-1===e.currentSlide},on:{mouseout:function(t){return e.handleMouseOut("dot")},mouseover:function(t){return e.handleMouseOver("dot")}}},[t("button",{attrs:{type:"button"},on:{click:function(t){e.goTo(n-1),e.restartAutoPlay()}}},[e._v("\n "+e._s(n)+"\n ")])])})),0):e._e(),e._v(" "),e.settings.navButtons&&!e.settings.unagile?t("button",{ref:"nextButton",staticClass:"agile__nav-button agile__nav-button--next",attrs:{disabled:!e.canGoToNext,"aria-label":"Next",type:"button"},on:{click:function(t){e.goToNext(),e.restartAutoPlay()}}},[e._t("nextButton",(function(){return[e._v("\n →\n ")]}))],2):e._e()])])}),[],!1,null,null,null).exports);var En=n(180),Dn=n.n(En),Tn=n(181),$n=n.n(Tn),Pn=n(103),Mn=n.n(Pn);var jn=("undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function An(e,t){if(void 0===t&&(t=[]),null===e||"object"!=typeof e)return e;var n,i=(n=function(t){return t.original===e},t.filter(n)[0]);if(i)return i.copy;var r=Array.isArray(e)?[]:{};return t.push({original:e,copy:r}),Object.keys(e).forEach((function(n){r[n]=An(e[n],t)})),r}function Nn(e,t){Object.keys(e).forEach((function(n){return t(e[n],n)}))}function In(e){return null!==e&&"object"==typeof e}var Ln=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var n=e.state;this.state=("function"==typeof n?n():n)||{}},Fn={namespaced:{configurable:!0}};Fn.namespaced.get=function(){return!!this._rawModule.namespaced},Ln.prototype.addChild=function(e,t){this._children[e]=t},Ln.prototype.removeChild=function(e){delete this._children[e]},Ln.prototype.getChild=function(e){return this._children[e]},Ln.prototype.hasChild=function(e){return e in this._children},Ln.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},Ln.prototype.forEachChild=function(e){Nn(this._children,e)},Ln.prototype.forEachGetter=function(e){this._rawModule.getters&&Nn(this._rawModule.getters,e)},Ln.prototype.forEachAction=function(e){this._rawModule.actions&&Nn(this._rawModule.actions,e)},Ln.prototype.forEachMutation=function(e){this._rawModule.mutations&&Nn(this._rawModule.mutations,e)},Object.defineProperties(Ln.prototype,Fn);var Bn=function(e){this.register([],e,!1)};Bn.prototype.get=function(e){return e.reduce((function(e,t){return e.getChild(t)}),this.root)},Bn.prototype.getNamespace=function(e){var t=this.root;return e.reduce((function(e,n){return e+((t=t.getChild(n)).namespaced?n+"/":"")}),"")},Bn.prototype.update=function(e){!function e(t,n,i){0;if(n.update(i),i.modules)for(var r in i.modules){if(!n.getChild(r))return void 0;e(t.concat(r),n.getChild(r),i.modules[r])}}([],this.root,e)},Bn.prototype.register=function(e,t,n){var i=this;void 0===n&&(n=!0);var r=new Ln(t,n);0===e.length?this.root=r:this.get(e.slice(0,-1)).addChild(e[e.length-1],r);t.modules&&Nn(t.modules,(function(t,r){i.register(e.concat(r),t,n)}))},Bn.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1],i=t.getChild(n);i&&i.runtime&&t.removeChild(n)},Bn.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1];return!!t&&t.hasChild(n)};var Vn;var Rn=function(e){var t=this;void 0===e&&(e={}),!Vn&&"undefined"!=typeof window&&window.Vue&&Kn(window.Vue);var n=e.plugins;void 0===n&&(n=[]);var i=e.strict;void 0===i&&(i=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new Bn(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new Vn,this._makeLocalGettersCache=Object.create(null);var r=this,o=this.dispatch,a=this.commit;this.dispatch=function(e,t){return o.call(r,e,t)},this.commit=function(e,t,n){return a.call(r,e,t,n)},this.strict=i;var s=this._modules.root.state;Yn(this,s,[],this._modules.root),Un(this,s),n.forEach((function(e){return e(t)})),(void 0!==e.devtools?e.devtools:Vn.config.devtools)&&function(e){jn&&(e._devtoolHook=jn,jn.emit("vuex:init",e),jn.on("vuex:travel-to-state",(function(t){e.replaceState(t)})),e.subscribe((function(e,t){jn.emit("vuex:mutation",e,t)}),{prepend:!0}),e.subscribeAction((function(e,t){jn.emit("vuex:action",e,t)}),{prepend:!0}))}(this)},zn={state:{configurable:!0}};function Hn(e,t,n){return t.indexOf(e)<0&&(n&&n.prepend?t.unshift(e):t.push(e)),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function Wn(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var n=e.state;Yn(e,n,[],e._modules.root,!0),Un(e,n,t)}function Un(e,t,n){var i=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var r=e._wrappedGetters,o={};Nn(r,(function(t,n){o[n]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,n,{get:function(){return e._vm[n]},enumerable:!0})}));var a=Vn.config.silent;Vn.config.silent=!0,e._vm=new Vn({data:{$$state:t},computed:o}),Vn.config.silent=a,e.strict&&function(e){e._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}(e),i&&(n&&e._withCommit((function(){i._data.$$state=null})),Vn.nextTick((function(){return i.$destroy()})))}function Yn(e,t,n,i,r){var o=!n.length,a=e._modules.getNamespace(n);if(i.namespaced&&(e._modulesNamespaceMap[a],e._modulesNamespaceMap[a]=i),!o&&!r){var s=qn(t,n.slice(0,-1)),l=n[n.length-1];e._withCommit((function(){Vn.set(s,l,i.state)}))}var u=i.context=function(e,t,n){var i=""===t,r={dispatch:i?e.dispatch:function(n,i,r){var o=Gn(n,i,r),a=o.payload,s=o.options,l=o.type;return s&&s.root||(l=t+l),e.dispatch(l,a)},commit:i?e.commit:function(n,i,r){var o=Gn(n,i,r),a=o.payload,s=o.options,l=o.type;s&&s.root||(l=t+l),e.commit(l,a,s)}};return Object.defineProperties(r,{getters:{get:i?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var n={},i=t.length;Object.keys(e.getters).forEach((function(r){if(r.slice(0,i)===t){var o=r.slice(i);Object.defineProperty(n,o,{get:function(){return e.getters[r]},enumerable:!0})}})),e._makeLocalGettersCache[t]=n}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return qn(e.state,n)}}}),r}(e,a,n);i.forEachMutation((function(t,n){!function(e,t,n,i){(e._mutations[t]||(e._mutations[t]=[])).push((function(t){n.call(e,i.state,t)}))}(e,a+n,t,u)})),i.forEachAction((function(t,n){var i=t.root?n:a+n,r=t.handler||t;!function(e,t,n,i){(e._actions[t]||(e._actions[t]=[])).push((function(t){var r,o=n.call(e,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:e.getters,rootState:e.state},t);return(r=o)&&"function"==typeof r.then||(o=Promise.resolve(o)),e._devtoolHook?o.catch((function(t){throw e._devtoolHook.emit("vuex:error",t),t})):o}))}(e,i,r,u)})),i.forEachGetter((function(t,n){!function(e,t,n,i){if(e._wrappedGetters[t])return void 0;e._wrappedGetters[t]=function(e){return n(i.state,i.getters,e.state,e.getters)}}(e,a+n,t,u)})),i.forEachChild((function(i,o){Yn(e,t,n.concat(o),i,r)}))}function qn(e,t){return t.reduce((function(e,t){return e[t]}),e)}function Gn(e,t,n){return In(e)&&e.type&&(n=t,t=e,e=e.type),{type:e,payload:t,options:n}}function Kn(e){Vn&&e===Vn|| /*! * vuex v3.6.2 * (c) 2021 Evan You * @license MIT */ -function(e){if(Number(e.version.split(".")[0])>=2)e.mixin({beforeCreate:n});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[n].concat(e.init):n,t.call(this,e)}}function n(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(Vn=e)}zn.state.get=function(){return this._vm._data.$$state},zn.state.set=function(e){0},Rn.prototype.commit=function(e,t,n){var i=this,r=Gn(e,t,n),o=r.type,a=r.payload,s=(r.options,{type:o,payload:a}),l=this._mutations[o];l&&(this._withCommit((function(){l.forEach((function(e){e(a)}))})),this._subscribers.slice().forEach((function(e){return e(s,i.state)})))},Rn.prototype.dispatch=function(e,t){var n=this,i=Gn(e,t),r=i.type,o=i.payload,a={type:r,payload:o},s=this._actions[r];if(s){try{this._actionSubscribers.slice().filter((function(e){return e.before})).forEach((function(e){return e.before(a,n.state)}))}catch(e){0}var l=s.length>1?Promise.all(s.map((function(e){return e(o)}))):s[0](o);return new Promise((function(e,t){l.then((function(t){try{n._actionSubscribers.filter((function(e){return e.after})).forEach((function(e){return e.after(a,n.state)}))}catch(e){0}e(t)}),(function(e){try{n._actionSubscribers.filter((function(e){return e.error})).forEach((function(t){return t.error(a,n.state,e)}))}catch(e){0}t(e)}))}))}},Rn.prototype.subscribe=function(e,t){return Hn(e,this._subscribers,t)},Rn.prototype.subscribeAction=function(e,t){return Hn("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},Rn.prototype.watch=function(e,t,n){var i=this;return this._watcherVM.$watch((function(){return e(i.state,i.getters)}),t,n)},Rn.prototype.replaceState=function(e){var t=this;this._withCommit((function(){t._vm._data.$$state=e}))},Rn.prototype.registerModule=function(e,t,n){void 0===n&&(n={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),Yn(this,this.state,e,this._modules.get(e),n.preserveState),Un(this,this.state)},Rn.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit((function(){var n=qn(t.state,e.slice(0,-1));Vn.delete(n,e[e.length-1])})),Wn(this)},Rn.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},Rn.prototype.hotUpdate=function(e){this._modules.update(e),Wn(this,!0)},Rn.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(Rn.prototype,zn);var Xn=ti((function(e,t){var n={};return ei(t).forEach((function(t){var i=t.key,r=t.val;n[i]=function(){var t=this.$store.state,n=this.$store.getters;if(e){var i=ni(this.$store,"mapState",e);if(!i)return;t=i.context.state,n=i.context.getters}return"function"==typeof r?r.call(this,t,n):t[r]},n[i].vuex=!0})),n})),Zn=ti((function(e,t){var n={};return ei(t).forEach((function(t){var i=t.key,r=t.val;n[i]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=this.$store.commit;if(e){var o=ni(this.$store,"mapMutations",e);if(!o)return;i=o.context.commit}return"function"==typeof r?r.apply(this,[i].concat(t)):i.apply(this.$store,[r].concat(t))}})),n})),Jn=ti((function(e,t){var n={};return ei(t).forEach((function(t){var i=t.key,r=t.val;r=e+r,n[i]=function(){if(!e||ni(this.$store,"mapGetters",e))return this.$store.getters[r]},n[i].vuex=!0})),n})),Qn=ti((function(e,t){var n={};return ei(t).forEach((function(t){var i=t.key,r=t.val;n[i]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=this.$store.dispatch;if(e){var o=ni(this.$store,"mapActions",e);if(!o)return;i=o.context.dispatch}return"function"==typeof r?r.apply(this,[i].concat(t)):i.apply(this.$store,[r].concat(t))}})),n}));function ei(e){return function(e){return Array.isArray(e)||In(e)}(e)?Array.isArray(e)?e.map((function(e){return{key:e,val:e}})):Object.keys(e).map((function(t){return{key:t,val:e[t]}})):[]}function ti(e){return function(t,n){return"string"!=typeof t?(n=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,n)}}function ni(e,t,n){return e._modulesNamespaceMap[n]}function ii(e,t,n){var i=n?e.groupCollapsed:e.group;try{i.call(e,t)}catch(n){e.log(t)}}function ri(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function oi(){var e=new Date;return" @ "+ai(e.getHours(),2)+":"+ai(e.getMinutes(),2)+":"+ai(e.getSeconds(),2)+"."+ai(e.getMilliseconds(),3)}function ai(e,t){return n="0",i=t-e.toString().length,new Array(i+1).join(n)+e;var n,i}var si={Store:Rn,install:Kn,version:"3.6.2",mapState:Xn,mapMutations:Zn,mapGetters:Jn,mapActions:Qn,createNamespacedHelpers:function(e){return{mapState:Xn.bind(null,e),mapGetters:Jn.bind(null,e),mapMutations:Zn.bind(null,e),mapActions:Qn.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var n=e.filter;void 0===n&&(n=function(e,t,n){return!0});var i=e.transformer;void 0===i&&(i=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var o=e.actionFilter;void 0===o&&(o=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var s=e.logMutations;void 0===s&&(s=!0);var l=e.logActions;void 0===l&&(l=!0);var u=e.logger;return void 0===u&&(u=console),function(e){var c=An(e.state);void 0!==u&&(s&&e.subscribe((function(e,o){var a=An(o);if(n(e,c,a)){var s=oi(),l=r(e),d="mutation "+e.type+s;ii(u,d,t),u.log("%c prev state","color: #9E9E9E; font-weight: bold",i(c)),u.log("%c mutation","color: #03A9F4; font-weight: bold",l),u.log("%c next state","color: #4CAF50; font-weight: bold",i(a)),ri(u)}c=a})),l&&e.subscribeAction((function(e,n){if(o(e,n)){var i=oi(),r=a(e),s="action "+e.type+i;ii(u,s,t),u.log("%c action","color: #03A9F4; font-weight: bold",r),ri(u)}})))}}},li=n(100);const ui=function(){const e=new Map;const t=new Map,n=(new Date).getTime();function i(i,r,o,a){if(t.has(r))return t.get(r);const s=function(t,n){if(e.has(t))return e.get(t);const i=Mn.a.get(n).then(n=>(e.delete(t),Promise.resolve(n))).catch(n=>(e.delete(t),Promise.reject(n)));return e.set(t,i),i}(r,a).then(({data:e})=>{const a={updated:n,data:e};return i.commit({type:o,object:a}),t.delete(r),Promise.resolve()}).catch(e=>(i.commit({type:o,object:{updated:null,data:null}}),t.delete(r),Promise.reject(e)));return t.set(r,s),s}return{getStableData:(e,t)=>new Promise((n,r)=>{i(e,t,"setStableReleaseData",li.d).then(()=>{n(e.state.stable)}).catch(e=>{r(e)})}),getPreviewData:(e,t)=>new Promise((n,r)=>{i(e,t,"setPreviewReleaseData",li.b).then(()=>{n(e.state.preview)}).catch(e=>{r(e)})})}}();i.default.use(si);var ci=new si.Store({state:{stable:{updated:null,data:null},preview:{updated:null,data:null}},mutations:{setStableReleaseData(e,{object:t}){e.stable=t},setPreviewReleaseData(e,{object:t}){e.preview=t}},actions:{getStableReleaseData(){const{updated:e}=this.state.stable,t=(new Date).getTime();return null!=e&&t-e<=864e5?Promise.resolve(this.state.stable):ui.getStableData(this,"stable")},getPreviewReleaseData(){const{updated:e}=this.state.preview,t=(new Date).getTime();return null!=e&&t-e<=864e5?Promise.resolve(this.state.preview):ui.getPreviewData(this,"preview")}}});const di=[{path:"/help/guides/troubleshooting-problems/",redirect:"/help/guides/troubleshooting/"},{path:"/help/guides/reading-local-manga/",redirect:"/help/guides/local-manga/"},{path:"/help/guides/creating-backups/",redirect:"/help/guides/backups/"}];n(405);i.default.component("CarouselItem",()=>Promise.all([n.e(0),n.e(16)]).then(n.bind(null,525))),i.default.component("CarouselWrapper",()=>Promise.all([n.e(0),n.e(17)]).then(n.bind(null,526))),i.default.component("DownloadButtons",()=>Promise.all([n.e(0),n.e(18)]).then(n.bind(null,527))),i.default.component("ExtensionFilters",()=>Promise.all([n.e(0),n.e(12)]).then(n.bind(null,476))),i.default.component("ExtensionGroup",()=>Promise.all([n.e(0),n.e(9)]).then(n.bind(null,428))),i.default.component("ExtensionItem",()=>Promise.all([n.e(0),n.e(19)]).then(n.bind(null,420))),i.default.component("ExtensionList",()=>Promise.all([n.e(0),n.e(7)]).then(n.bind(null,477))),i.default.component("ExtensionsWrapper",()=>Promise.all([n.e(0),n.e(49),n.e(5)]).then(n.bind(null,528))),i.default.component("ForkButtons",()=>Promise.all([n.e(0),n.e(20)]).then(n.bind(null,529))),i.default.component("ForkPage",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(8)]).then(n.bind(null,530))),i.default.component("HelpPage",()=>Promise.all([n.e(0),n.e(1),n.e(6)]).then(n.bind(null,523))),i.default.component("MaterialIcon",()=>Promise.all([n.e(0),n.e(11)]).then(n.bind(null,531))),i.default.component("NavigationText",()=>Promise.all([n.e(0),n.e(21)]).then(n.bind(null,532))),i.default.component("ReleaseDate",()=>Promise.all([n.e(0),n.e(22)]).then(n.bind(null,533))),i.default.component("VersionTag",()=>Promise.all([n.e(0),n.e(23)]).then(n.bind(null,534))),i.default.component("WhatsNew",()=>Promise.all([n.e(0),n.e(50),n.e(24)]).then(n.bind(null,535))),i.default.component("Badge",()=>Promise.all([n.e(0),n.e(13)]).then(n.bind(null,561))),i.default.component("CodeBlock",()=>Promise.all([n.e(0),n.e(14)]).then(n.bind(null,536))),i.default.component("CodeGroup",()=>Promise.all([n.e(0),n.e(15)]).then(n.bind(null,537)));n(406),n(407);function hi(e){const t=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{x:n.left-t.left,y:n.top-t.top}}var fi={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:()=>({scrollTop:null}),computed:{show(){return this.scrollTop>this.threshold}},mounted(){this.scrollTop=this.getScrollTop(),window.addEventListener("scroll",$t()(()=>{this.scrollTop=this.getScrollTop()},100))},methods:{getScrollTop:()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,scrollToTop(){window.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0}}},pi=(n(408),Object(cn.a)(fi,(function(){var e=this._self._c;return e("transition",{attrs:{name:"fade"}},[this.show?e("svg",{staticClass:"go-to-top",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:this.scrollToTop}},[e("g",{attrs:{transform:"translate(-229 -126.358)"}},[e("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),this._v(" "),e("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):this._e()])}),[],!1,null,"5fd4ef0c",null).exports);new i.default;n(409);var mi=[({Vue:e,options:t,router:n,siteData:i})=>{e.component("VueAgile",On),e.use($n.a),e.use(Dn.a),e.use(mn.a),e.mixin({store:ci}),n.addRoutes(di)},{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({Vue:e,router:t})=>{t.options.scrollBehavior=(t,n,i)=>{if(i)return window.scrollTo({top:i.y,behavior:"smooth"});if(t.hash){if(e.$vuepress.$get("disableScrollBehavior"))return!1;const n=document.querySelector(t.hash);return!!n&&window.scrollTo({top:hi(n).y,behavior:"smooth"})}return window.scrollTo({top:0,behavior:"smooth"})}},({Vue:e})=>{e.component("BackToTop",pi)},({router:e})=>{var t,n,i,r,o,a,s;"undefined"!=typeof window&&(t=window,n=document,i="script",r="https://www.googletagmanager.com/gtag/js?id={GTAG_ID}".replace("{GTAG_ID}","G-2CBXXM1Y86"),o="gtag",t.dataLayer=t.dataLayer||[],t.GoogleAnalyticsObject=o,t[o]=t[o]||function(){t.dataLayer.push(arguments)},a=n.createElement(i),s=n.getElementsByTagName(i)[0],a.async=1,a.src=r,s.parentNode.insertBefore(a,s),gtag("js",new Date),gtag("config","G-2CBXXM1Y86"),e.afterEach((function(t){var n={page_title:e.app.$title,page_location:e.app.$withBase(t.fullPath)};gtag("event","page_view",n)})))},async({router:e,isServer:t})=>{0},function({Vue:e}){e.use(mn.a)}],vi=["BackToTop"];class gi extends class{constructor(){this.store=new i.default({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,t){i.default.set(this.store.state,e,t)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(gi.prototype,{getPageAsyncComponent:lt,getLayoutAsyncComponent:ut,getAsyncComponent:ct,getVueComponent:dt});var yi={install(e){const t=new gi;e.$vuepress=t,e.prototype.$vuepress=t}};function bi(e,t){const n=t.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===n)}var _i={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const t=this.pageKey||this.$parent.$page.key;return ft("pageKey",t),i.default.component(t)||i.default.component(t,lt(t)),i.default.component(t)?e(t):e("")}},wi={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:t,slots:n})=>e("div",{class:["content__"+t.slotKey]},n()[t.slotKey])},xi={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},ki=(n(410),n(411),Object(cn.a)(xi,(function(){var e=this._self._c;return e("span",[e("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[e("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),e("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),e("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Ci={functional:!0,render(e,{parent:t,children:n}){if(t._isMounted)return n;t.$once("hook:mounted",()=>{t.$forceUpdate()})}};i.default.config.productionTip=!1,i.default.use(Ye),i.default.use(yi),i.default.mixin(function(e,t,n=i.default){!function(e){e.locales&&Object.keys(e.locales).forEach(t=>{e.locales[t].path=t});Object.freeze(e)}(t),n.$vuepress.$set("siteData",t);const r=new(e(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),a={};return Object.keys(o).reduce((e,t)=>(t.startsWith("$")&&(e[t]=o[t].get),e),a),{computed:a}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let t,n;for(const i in e)"/"===i?n=e[i]:0===this.$page.path.indexOf(i)&&(t=e[i]);return t||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:t}=this.$page.frontmatter;if("string"==typeof t)return t;const n=this.$siteTitle,i=e.frontmatter.home?null:e.frontmatter.title||e.title;return n?i?i+" | "+n:n:i||"VuePress"}get $description(){const e=function(e){if(e){const t=e.filter(e=>"description"===e.name)[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,t){for(let n=0;nn||(e.hash?!i.default.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((t,n,i)=>{if(bi(e,t.path))i();else if(/(\/|\.html)$/.test(t.path))if(/\/$/.test(t.path)){const n=t.path.replace(/\/$/,"")+".html";bi(e,n)?i(n):i()}else i();else{const n=t.path+"/",r=t.path+".html";bi(e,r)?i(r):bi(e,n)?i(n):i()}})}(n);const r={};try{await Promise.all(mi.filter(e=>"function"==typeof e).map(t=>t({Vue:i.default,options:r,router:n,siteData:fn,isServer:e})))}catch(e){console.error(e)}return{app:new i.default(Object.assign(r,{router:n,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},vi.map(t=>e(t)))])})),router:n}}(!1).then(({app:e,router:t})=>{t.onReady(()=>{e.$mount("#app")})})},function(e,t,n){"use strict";n.r(t);var i=n(20),r=n.n(i),o=n(3),a=n.n(o),s=/%[sdj%]/g;function l(){for(var e=arguments.length,t=Array(e),n=0;n=o)return e;switch(e){case"%s":return String(t[i++]);case"%d":return Number(t[i++]);case"%j":try{return JSON.stringify(t[i++])}catch(e){return"[Circular]"}break;default:return e}})),l=t[i];i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},g={integer:function(e){return g.number(e)&&parseInt(e,10)===e},float:function(e){return g.number(e)&&!g.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":a()(e))&&!g.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(v.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(v.url)},hex:function(e){return"string"==typeof e&&!!e.match(v.hex)}};var y=function(e,t,n,i,r){if(e.required&&void 0===t)p(e,t,n,i,r);else{var o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?g[o](t)||i.push(l(r.messages.types[o],e.fullField,e.type)):o&&(void 0===t?"undefined":a()(t))!==e.type&&i.push(l(r.messages.types[o],e.fullField,e.type))}};var b={required:p,whitespace:m,type:y,range:function(e,t,n,i,r){var o="number"==typeof e.len,a="number"==typeof e.min,s="number"==typeof e.max,u=t,c=null,d="number"==typeof t,h="string"==typeof t,f=Array.isArray(t);if(d?c="number":h?c="string":f&&(c="array"),!c)return!1;f&&(u=t.length),h&&(u=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),o?u!==e.len&&i.push(l(r.messages[c].len,e.fullField,e.len)):a&&!s&&ue.max?i.push(l(r.messages[c].max,e.fullField,e.max)):a&&s&&(ue.max)&&i.push(l(r.messages[c].range,e.fullField,e.min,e.max))},enum:function(e,t,n,i,r){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&i.push(l(r.messages.enum,e.fullField,e.enum.join(", ")))},pattern:function(e,t,n,i,r){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||i.push(l(r.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||i.push(l(r.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};var _=function(e,t,n,i,r){var o=e.type,a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t,o)&&!e.required)return n();b.required(e,t,i,a,r,o),u(t,o)||b.type(e,t,i,a,r)}n(a)},w={string:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t,"string")&&!e.required)return n();b.required(e,t,i,o,r,"string"),u(t,"string")||(b.type(e,t,i,o,r),b.range(e,t,i,o,r),b.pattern(e,t,i,o,r),!0===e.whitespace&&b.whitespace(e,t,i,o,r))}n(o)},method:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&b.type(e,t,i,o,r)}n(o)},number:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&(b.type(e,t,i,o,r),b.range(e,t,i,o,r))}n(o)},boolean:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&b.type(e,t,i,o,r)}n(o)},regexp:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),u(t)||b.type(e,t,i,o,r)}n(o)},integer:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&(b.type(e,t,i,o,r),b.range(e,t,i,o,r))}n(o)},float:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&(b.type(e,t,i,o,r),b.range(e,t,i,o,r))}n(o)},array:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t,"array")&&!e.required)return n();b.required(e,t,i,o,r,"array"),u(t,"array")||(b.type(e,t,i,o,r),b.range(e,t,i,o,r))}n(o)},object:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&b.type(e,t,i,o,r)}n(o)},enum:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),t&&b.enum(e,t,i,o,r)}n(o)},pattern:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t,"string")&&!e.required)return n();b.required(e,t,i,o,r),u(t,"string")||b.pattern(e,t,i,o,r)}n(o)},date:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();if(b.required(e,t,i,o,r),!u(t)){var a=void 0;a="number"==typeof t?new Date(t):t,b.type(e,a,i,o,r),a&&b.range(e,a.getTime(),i,o,r)}}n(o)},url:_,hex:_,email:_,required:function(e,t,n,i,r){var o=[],s=Array.isArray(t)?"array":void 0===t?"undefined":a()(t);b.required(e,t,i,o,r,s),n(o)}};function x(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var k=x();function C(e){this.rules=null,this._messages=k,this.define(e)}C.prototype={messages:function(e){return e&&(this._messages=f(x(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":a()(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,n=void 0;for(t in e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments[2],o=e,s=n,u=i;if("function"==typeof s&&(u=s,s={}),this.rules&&0!==Object.keys(this.rules).length){if(s.messages){var c=this.messages();c===k&&(c=x()),f(c,s.messages),s.messages=c}else s.messages=this.messages();var p=void 0,m=void 0,v={},g=s.keys||Object.keys(this.rules);g.forEach((function(n){p=t.rules[n],m=o[n],p.forEach((function(i){var a=i;"function"==typeof a.transform&&(o===e&&(o=r()({},o)),m=o[n]=a.transform(m)),(a="function"==typeof a?{validator:a}:r()({},a)).validator=t.getValidationMethod(a),a.field=n,a.fullField=a.fullField||n,a.type=t.getType(a),a.validator&&(v[n]=v[n]||[],v[n].push({rule:a,value:m,source:o,field:n}))}))}));var y={};d(v,s,(function(e,t){var n=e.rule,i=!("object"!==n.type&&"array"!==n.type||"object"!==a()(n.fields)&&"object"!==a()(n.defaultField));function o(e,t){return r()({},t,{fullField:n.fullField+"."+e})}function u(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],u=a;if(Array.isArray(u)||(u=[u]),u.length,u.length&&n.message&&(u=[].concat(n.message)),u=u.map(h(n)),s.first&&u.length)return y[n.field]=1,t(u);if(i){if(n.required&&!e.value)return u=n.message?[].concat(n.message).map(h(n)):s.error?[s.error(n,l(s.messages.required,n.field))]:[],t(u);var c={};if(n.defaultField)for(var d in e.value)e.value.hasOwnProperty(d)&&(c[d]=n.defaultField);for(var f in c=r()({},c,e.rule.fields))if(c.hasOwnProperty(f)){var p=Array.isArray(c[f])?c[f]:[c[f]];c[f]=p.map(o.bind(null,f))}var m=new C(c);m.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),m.validate(e.value,e.rule.options||s,(function(e){t(e&&e.length?u.concat(e):e)}))}else t(u)}i=i&&(n.required||!n.required&&e.value),n.field=e.field;var c=n.validator(n,e.value,u,e.source,s);c&&c.then&&c.then((function(){return u()}),(function(e){return u(e)}))}),(function(e){b(e)}))}else u&&u();function b(e){var t,n=void 0,i=void 0,r=[],o={};for(n=0;n=2)e.mixin({beforeCreate:n});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[n].concat(e.init):n,t.call(this,e)}}function n(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(Vn=e)}zn.state.get=function(){return this._vm._data.$$state},zn.state.set=function(e){0},Rn.prototype.commit=function(e,t,n){var i=this,r=Gn(e,t,n),o=r.type,a=r.payload,s=(r.options,{type:o,payload:a}),l=this._mutations[o];l&&(this._withCommit((function(){l.forEach((function(e){e(a)}))})),this._subscribers.slice().forEach((function(e){return e(s,i.state)})))},Rn.prototype.dispatch=function(e,t){var n=this,i=Gn(e,t),r=i.type,o=i.payload,a={type:r,payload:o},s=this._actions[r];if(s){try{this._actionSubscribers.slice().filter((function(e){return e.before})).forEach((function(e){return e.before(a,n.state)}))}catch(e){0}var l=s.length>1?Promise.all(s.map((function(e){return e(o)}))):s[0](o);return new Promise((function(e,t){l.then((function(t){try{n._actionSubscribers.filter((function(e){return e.after})).forEach((function(e){return e.after(a,n.state)}))}catch(e){0}e(t)}),(function(e){try{n._actionSubscribers.filter((function(e){return e.error})).forEach((function(t){return t.error(a,n.state,e)}))}catch(e){0}t(e)}))}))}},Rn.prototype.subscribe=function(e,t){return Hn(e,this._subscribers,t)},Rn.prototype.subscribeAction=function(e,t){return Hn("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},Rn.prototype.watch=function(e,t,n){var i=this;return this._watcherVM.$watch((function(){return e(i.state,i.getters)}),t,n)},Rn.prototype.replaceState=function(e){var t=this;this._withCommit((function(){t._vm._data.$$state=e}))},Rn.prototype.registerModule=function(e,t,n){void 0===n&&(n={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),Yn(this,this.state,e,this._modules.get(e),n.preserveState),Un(this,this.state)},Rn.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit((function(){var n=qn(t.state,e.slice(0,-1));Vn.delete(n,e[e.length-1])})),Wn(this)},Rn.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},Rn.prototype.hotUpdate=function(e){this._modules.update(e),Wn(this,!0)},Rn.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(Rn.prototype,zn);var Xn=ti((function(e,t){var n={};return ei(t).forEach((function(t){var i=t.key,r=t.val;n[i]=function(){var t=this.$store.state,n=this.$store.getters;if(e){var i=ni(this.$store,"mapState",e);if(!i)return;t=i.context.state,n=i.context.getters}return"function"==typeof r?r.call(this,t,n):t[r]},n[i].vuex=!0})),n})),Zn=ti((function(e,t){var n={};return ei(t).forEach((function(t){var i=t.key,r=t.val;n[i]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=this.$store.commit;if(e){var o=ni(this.$store,"mapMutations",e);if(!o)return;i=o.context.commit}return"function"==typeof r?r.apply(this,[i].concat(t)):i.apply(this.$store,[r].concat(t))}})),n})),Jn=ti((function(e,t){var n={};return ei(t).forEach((function(t){var i=t.key,r=t.val;r=e+r,n[i]=function(){if(!e||ni(this.$store,"mapGetters",e))return this.$store.getters[r]},n[i].vuex=!0})),n})),Qn=ti((function(e,t){var n={};return ei(t).forEach((function(t){var i=t.key,r=t.val;n[i]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=this.$store.dispatch;if(e){var o=ni(this.$store,"mapActions",e);if(!o)return;i=o.context.dispatch}return"function"==typeof r?r.apply(this,[i].concat(t)):i.apply(this.$store,[r].concat(t))}})),n}));function ei(e){return function(e){return Array.isArray(e)||In(e)}(e)?Array.isArray(e)?e.map((function(e){return{key:e,val:e}})):Object.keys(e).map((function(t){return{key:t,val:e[t]}})):[]}function ti(e){return function(t,n){return"string"!=typeof t?(n=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,n)}}function ni(e,t,n){return e._modulesNamespaceMap[n]}function ii(e,t,n){var i=n?e.groupCollapsed:e.group;try{i.call(e,t)}catch(n){e.log(t)}}function ri(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function oi(){var e=new Date;return" @ "+ai(e.getHours(),2)+":"+ai(e.getMinutes(),2)+":"+ai(e.getSeconds(),2)+"."+ai(e.getMilliseconds(),3)}function ai(e,t){return n="0",i=t-e.toString().length,new Array(i+1).join(n)+e;var n,i}var si={Store:Rn,install:Kn,version:"3.6.2",mapState:Xn,mapMutations:Zn,mapGetters:Jn,mapActions:Qn,createNamespacedHelpers:function(e){return{mapState:Xn.bind(null,e),mapGetters:Jn.bind(null,e),mapMutations:Zn.bind(null,e),mapActions:Qn.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var n=e.filter;void 0===n&&(n=function(e,t,n){return!0});var i=e.transformer;void 0===i&&(i=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var o=e.actionFilter;void 0===o&&(o=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var s=e.logMutations;void 0===s&&(s=!0);var l=e.logActions;void 0===l&&(l=!0);var u=e.logger;return void 0===u&&(u=console),function(e){var c=An(e.state);void 0!==u&&(s&&e.subscribe((function(e,o){var a=An(o);if(n(e,c,a)){var s=oi(),l=r(e),d="mutation "+e.type+s;ii(u,d,t),u.log("%c prev state","color: #9E9E9E; font-weight: bold",i(c)),u.log("%c mutation","color: #03A9F4; font-weight: bold",l),u.log("%c next state","color: #4CAF50; font-weight: bold",i(a)),ri(u)}c=a})),l&&e.subscribeAction((function(e,n){if(o(e,n)){var i=oi(),r=a(e),s="action "+e.type+i;ii(u,s,t),u.log("%c action","color: #03A9F4; font-weight: bold",r),ri(u)}})))}}},li=n(100);const ui=function(){const e=new Map;const t=new Map,n=(new Date).getTime();function i(i,r,o,a){if(t.has(r))return t.get(r);const s=function(t,n){if(e.has(t))return e.get(t);const i=Mn.a.get(n).then(n=>(e.delete(t),Promise.resolve(n))).catch(n=>(e.delete(t),Promise.reject(n)));return e.set(t,i),i}(r,a).then(({data:e})=>{const a={updated:n,data:e};return i.commit({type:o,object:a}),t.delete(r),Promise.resolve()}).catch(e=>(i.commit({type:o,object:{updated:null,data:null}}),t.delete(r),Promise.reject(e)));return t.set(r,s),s}return{getStableData:(e,t)=>new Promise((n,r)=>{i(e,t,"setStableReleaseData",li.d).then(()=>{n(e.state.stable)}).catch(e=>{r(e)})}),getPreviewData:(e,t)=>new Promise((n,r)=>{i(e,t,"setPreviewReleaseData",li.b).then(()=>{n(e.state.preview)}).catch(e=>{r(e)})})}}();i.default.use(si);var ci=new si.Store({state:{stable:{updated:null,data:null},preview:{updated:null,data:null}},mutations:{setStableReleaseData(e,{object:t}){e.stable=t},setPreviewReleaseData(e,{object:t}){e.preview=t}},actions:{getStableReleaseData(){const{updated:e}=this.state.stable,t=(new Date).getTime();return null!=e&&t-e<=864e5?Promise.resolve(this.state.stable):ui.getStableData(this,"stable")},getPreviewReleaseData(){const{updated:e}=this.state.preview,t=(new Date).getTime();return null!=e&&t-e<=864e5?Promise.resolve(this.state.preview):ui.getPreviewData(this,"preview")}}});const di=[{path:"/help/guides/troubleshooting-problems/",redirect:"/help/guides/troubleshooting/"},{path:"/help/guides/reading-local-manga/",redirect:"/help/guides/local-manga/"},{path:"/help/guides/creating-backups/",redirect:"/help/guides/backups/"}];n(405);i.default.component("CarouselItem",()=>Promise.all([n.e(0),n.e(16)]).then(n.bind(null,525))),i.default.component("CarouselWrapper",()=>Promise.all([n.e(0),n.e(17)]).then(n.bind(null,526))),i.default.component("DownloadButtons",()=>Promise.all([n.e(0),n.e(18)]).then(n.bind(null,527))),i.default.component("ExtensionFilters",()=>Promise.all([n.e(0),n.e(12)]).then(n.bind(null,476))),i.default.component("ExtensionGroup",()=>Promise.all([n.e(0),n.e(9)]).then(n.bind(null,428))),i.default.component("ExtensionItem",()=>Promise.all([n.e(0),n.e(19)]).then(n.bind(null,420))),i.default.component("ExtensionList",()=>Promise.all([n.e(0),n.e(7)]).then(n.bind(null,477))),i.default.component("ExtensionsWrapper",()=>Promise.all([n.e(0),n.e(49),n.e(5)]).then(n.bind(null,528))),i.default.component("ForkButtons",()=>Promise.all([n.e(0),n.e(20)]).then(n.bind(null,529))),i.default.component("ForkPage",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(8)]).then(n.bind(null,530))),i.default.component("HelpPage",()=>Promise.all([n.e(0),n.e(1),n.e(6)]).then(n.bind(null,523))),i.default.component("MaterialIcon",()=>Promise.all([n.e(0),n.e(11)]).then(n.bind(null,531))),i.default.component("NavigationText",()=>Promise.all([n.e(0),n.e(21)]).then(n.bind(null,532))),i.default.component("ReleaseDate",()=>Promise.all([n.e(0),n.e(22)]).then(n.bind(null,533))),i.default.component("VersionTag",()=>Promise.all([n.e(0),n.e(23)]).then(n.bind(null,534))),i.default.component("WhatsNew",()=>Promise.all([n.e(0),n.e(50),n.e(24)]).then(n.bind(null,535))),i.default.component("Badge",()=>Promise.all([n.e(0),n.e(13)]).then(n.bind(null,561))),i.default.component("CodeBlock",()=>Promise.all([n.e(0),n.e(14)]).then(n.bind(null,536))),i.default.component("CodeGroup",()=>Promise.all([n.e(0),n.e(15)]).then(n.bind(null,537)));n(406),n(407);function hi(e){const t=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{x:n.left-t.left,y:n.top-t.top}}var fi={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:()=>({scrollTop:null}),computed:{show(){return this.scrollTop>this.threshold}},mounted(){this.scrollTop=this.getScrollTop(),window.addEventListener("scroll",$t()(()=>{this.scrollTop=this.getScrollTop()},100))},methods:{getScrollTop:()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,scrollToTop(){window.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0}}},pi=(n(408),Object(cn.a)(fi,(function(){var e=this._self._c;return e("transition",{attrs:{name:"fade"}},[this.show?e("svg",{staticClass:"go-to-top",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:this.scrollToTop}},[e("g",{attrs:{transform:"translate(-229 -126.358)"}},[e("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),this._v(" "),e("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):this._e()])}),[],!1,null,"5fd4ef0c",null).exports);new i.default;n(409);var mi=[({Vue:e,options:t,router:n,siteData:i})=>{e.component("VueAgile",On),e.use($n.a),e.use(Dn.a),e.use(mn.a),e.mixin({store:ci}),n.addRoutes(di)},{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({Vue:e,router:t})=>{t.options.scrollBehavior=(t,n,i)=>{if(i)return window.scrollTo({top:i.y,behavior:"smooth"});if(t.hash){if(e.$vuepress.$get("disableScrollBehavior"))return!1;const n=document.querySelector(t.hash);return!!n&&window.scrollTo({top:hi(n).y,behavior:"smooth"})}return window.scrollTo({top:0,behavior:"smooth"})}},({Vue:e})=>{e.component("BackToTop",pi)},({router:e})=>{var t,n,i,r,o,a,s;"undefined"!=typeof window&&(t=window,n=document,i="script",r="https://www.googletagmanager.com/gtag/js?id={GTAG_ID}".replace("{GTAG_ID}","G-2CBXXM1Y86"),o="gtag",t.dataLayer=t.dataLayer||[],t.GoogleAnalyticsObject=o,t[o]=t[o]||function(){t.dataLayer.push(arguments)},a=n.createElement(i),s=n.getElementsByTagName(i)[0],a.async=1,a.src=r,s.parentNode.insertBefore(a,s),gtag("js",new Date),gtag("config","G-2CBXXM1Y86"),e.afterEach((function(t){var n={page_title:e.app.$title,page_location:e.app.$withBase(t.fullPath)};gtag("event","page_view",n)})))},async({router:e,isServer:t})=>{0},function({Vue:e}){e.use(mn.a)}],vi=["BackToTop"];class gi extends class{constructor(){this.store=new i.default({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,t){i.default.set(this.store.state,e,t)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(gi.prototype,{getPageAsyncComponent:lt,getLayoutAsyncComponent:ut,getAsyncComponent:ct,getVueComponent:dt});var yi={install(e){const t=new gi;e.$vuepress=t,e.prototype.$vuepress=t}};function bi(e,t){const n=t.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===n)}var _i={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const t=this.pageKey||this.$parent.$page.key;return ft("pageKey",t),i.default.component(t)||i.default.component(t,lt(t)),i.default.component(t)?e(t):e("")}},wi={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:t,slots:n})=>e("div",{class:["content__"+t.slotKey]},n()[t.slotKey])},xi={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},ki=(n(410),n(411),Object(cn.a)(xi,(function(){var e=this._self._c;return e("span",[e("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[e("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),e("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),e("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Ci={functional:!0,render(e,{parent:t,children:n}){if(t._isMounted)return n;t.$once("hook:mounted",()=>{t.$forceUpdate()})}};i.default.config.productionTip=!1,i.default.use(Ye),i.default.use(yi),i.default.mixin(function(e,t,n=i.default){!function(e){e.locales&&Object.keys(e.locales).forEach(t=>{e.locales[t].path=t});Object.freeze(e)}(t),n.$vuepress.$set("siteData",t);const r=new(e(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),a={};return Object.keys(o).reduce((e,t)=>(t.startsWith("$")&&(e[t]=o[t].get),e),a),{computed:a}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let t,n;for(const i in e)"/"===i?n=e[i]:0===this.$page.path.indexOf(i)&&(t=e[i]);return t||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:t}=this.$page.frontmatter;if("string"==typeof t)return t;const n=this.$siteTitle,i=e.frontmatter.home?null:e.frontmatter.title||e.title;return n?i?i+" | "+n:n:i||"VuePress"}get $description(){const e=function(e){if(e){const t=e.filter(e=>"description"===e.name)[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,t){for(let n=0;nn||(e.hash?!i.default.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((t,n,i)=>{if(bi(e,t.path))i();else if(/(\/|\.html)$/.test(t.path))if(/\/$/.test(t.path)){const n=t.path.replace(/\/$/,"")+".html";bi(e,n)?i(n):i()}else i();else{const n=t.path+"/",r=t.path+".html";bi(e,r)?i(r):bi(e,n)?i(n):i()}})}(n);const r={};try{await Promise.all(mi.filter(e=>"function"==typeof e).map(t=>t({Vue:i.default,options:r,router:n,siteData:fn,isServer:e})))}catch(e){console.error(e)}return{app:new i.default(Object.assign(r,{router:n,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},vi.map(t=>e(t)))])})),router:n}}(!1).then(({app:e,router:t})=>{t.onReady(()=>{e.$mount("#app")})})},function(e,t,n){"use strict";n.r(t);var i=n(20),r=n.n(i),o=n(3),a=n.n(o),s=/%[sdj%]/g;function l(){for(var e=arguments.length,t=Array(e),n=0;n=o)return e;switch(e){case"%s":return String(t[i++]);case"%d":return Number(t[i++]);case"%j":try{return JSON.stringify(t[i++])}catch(e){return"[Circular]"}break;default:return e}})),l=t[i];i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},g={integer:function(e){return g.number(e)&&parseInt(e,10)===e},float:function(e){return g.number(e)&&!g.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":a()(e))&&!g.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(v.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(v.url)},hex:function(e){return"string"==typeof e&&!!e.match(v.hex)}};var y=function(e,t,n,i,r){if(e.required&&void 0===t)p(e,t,n,i,r);else{var o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?g[o](t)||i.push(l(r.messages.types[o],e.fullField,e.type)):o&&(void 0===t?"undefined":a()(t))!==e.type&&i.push(l(r.messages.types[o],e.fullField,e.type))}};var b={required:p,whitespace:m,type:y,range:function(e,t,n,i,r){var o="number"==typeof e.len,a="number"==typeof e.min,s="number"==typeof e.max,u=t,c=null,d="number"==typeof t,h="string"==typeof t,f=Array.isArray(t);if(d?c="number":h?c="string":f&&(c="array"),!c)return!1;f&&(u=t.length),h&&(u=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),o?u!==e.len&&i.push(l(r.messages[c].len,e.fullField,e.len)):a&&!s&&ue.max?i.push(l(r.messages[c].max,e.fullField,e.max)):a&&s&&(ue.max)&&i.push(l(r.messages[c].range,e.fullField,e.min,e.max))},enum:function(e,t,n,i,r){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&i.push(l(r.messages.enum,e.fullField,e.enum.join(", ")))},pattern:function(e,t,n,i,r){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||i.push(l(r.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||i.push(l(r.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};var _=function(e,t,n,i,r){var o=e.type,a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t,o)&&!e.required)return n();b.required(e,t,i,a,r,o),u(t,o)||b.type(e,t,i,a,r)}n(a)},w={string:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t,"string")&&!e.required)return n();b.required(e,t,i,o,r,"string"),u(t,"string")||(b.type(e,t,i,o,r),b.range(e,t,i,o,r),b.pattern(e,t,i,o,r),!0===e.whitespace&&b.whitespace(e,t,i,o,r))}n(o)},method:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&b.type(e,t,i,o,r)}n(o)},number:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&(b.type(e,t,i,o,r),b.range(e,t,i,o,r))}n(o)},boolean:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&b.type(e,t,i,o,r)}n(o)},regexp:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),u(t)||b.type(e,t,i,o,r)}n(o)},integer:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&(b.type(e,t,i,o,r),b.range(e,t,i,o,r))}n(o)},float:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&(b.type(e,t,i,o,r),b.range(e,t,i,o,r))}n(o)},array:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t,"array")&&!e.required)return n();b.required(e,t,i,o,r,"array"),u(t,"array")||(b.type(e,t,i,o,r),b.range(e,t,i,o,r))}n(o)},object:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),void 0!==t&&b.type(e,t,i,o,r)}n(o)},enum:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();b.required(e,t,i,o,r),t&&b.enum(e,t,i,o,r)}n(o)},pattern:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t,"string")&&!e.required)return n();b.required(e,t,i,o,r),u(t,"string")||b.pattern(e,t,i,o,r)}n(o)},date:function(e,t,n,i,r){var o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(u(t)&&!e.required)return n();if(b.required(e,t,i,o,r),!u(t)){var a=void 0;a="number"==typeof t?new Date(t):t,b.type(e,a,i,o,r),a&&b.range(e,a.getTime(),i,o,r)}}n(o)},url:_,hex:_,email:_,required:function(e,t,n,i,r){var o=[],s=Array.isArray(t)?"array":void 0===t?"undefined":a()(t);b.required(e,t,i,o,r,s),n(o)}};function x(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var k=x();function C(e){this.rules=null,this._messages=k,this.define(e)}C.prototype={messages:function(e){return e&&(this._messages=f(x(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":a()(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,n=void 0;for(t in e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments[2],o=e,s=n,u=i;if("function"==typeof s&&(u=s,s={}),this.rules&&0!==Object.keys(this.rules).length){if(s.messages){var c=this.messages();c===k&&(c=x()),f(c,s.messages),s.messages=c}else s.messages=this.messages();var p=void 0,m=void 0,v={},g=s.keys||Object.keys(this.rules);g.forEach((function(n){p=t.rules[n],m=o[n],p.forEach((function(i){var a=i;"function"==typeof a.transform&&(o===e&&(o=r()({},o)),m=o[n]=a.transform(m)),(a="function"==typeof a?{validator:a}:r()({},a)).validator=t.getValidationMethod(a),a.field=n,a.fullField=a.fullField||n,a.type=t.getType(a),a.validator&&(v[n]=v[n]||[],v[n].push({rule:a,value:m,source:o,field:n}))}))}));var y={};d(v,s,(function(e,t){var n=e.rule,i=!("object"!==n.type&&"array"!==n.type||"object"!==a()(n.fields)&&"object"!==a()(n.defaultField));function o(e,t){return r()({},t,{fullField:n.fullField+"."+e})}function u(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],u=a;if(Array.isArray(u)||(u=[u]),u.length,u.length&&n.message&&(u=[].concat(n.message)),u=u.map(h(n)),s.first&&u.length)return y[n.field]=1,t(u);if(i){if(n.required&&!e.value)return u=n.message?[].concat(n.message).map(h(n)):s.error?[s.error(n,l(s.messages.required,n.field))]:[],t(u);var c={};if(n.defaultField)for(var d in e.value)e.value.hasOwnProperty(d)&&(c[d]=n.defaultField);for(var f in c=r()({},c,e.rule.fields))if(c.hasOwnProperty(f)){var p=Array.isArray(c[f])?c[f]:[c[f]];c[f]=p.map(o.bind(null,f))}var m=new C(c);m.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),m.validate(e.value,e.rule.options||s,(function(e){t(e&&e.length?u.concat(e):e)}))}else t(u)}i=i&&(n.required||!n.required&&e.value),n.field=e.field;var c=n.validator(n,e.value,u,e.source,s);c&&c.then&&c.then((function(){return u()}),(function(e){return u(e)}))}),(function(e){b(e)}))}else u&&u();function b(e){var t,n=void 0,i=void 0,r=[],o={};for(n=0;n - + @@ -49,6 +49,6 @@ here

- + diff --git a/extensions/index.html b/extensions/index.html index 8a74aac1f..2a125a542 100644 --- a/extensions/index.html +++ b/extensions/index.html @@ -13,7 +13,7 @@ - + @@ -46,6 +46,6 @@ →

- + diff --git a/forks/Neko/index.html b/forks/Neko/index.html index 53cccd52c..29b8b989e 100644 --- a/forks/Neko/index.html +++ b/forks/Neko/index.html @@ -14,7 +14,7 @@ - + @@ -46,7 +46,7 @@ Requires Android 7.0 or higher. -

# About

This is a MangaDex (opens new window) specific fork of Tachiyomi and TachiyomiJ2K. With a focus on MangaDex specific features.

# Credits

# Disclaimer

The developer of this application does not have any affiliation with the content providers available.

- +

# About

This is a MangaDex (opens new window) specific fork of Tachiyomi and TachiyomiJ2K. With a focus on MangaDex specific features.

# Credits

# Disclaimer

The developer of this application does not have any affiliation with the content providers available.

+ diff --git a/forks/TachiyomiAZ/index.html b/forks/TachiyomiAZ/index.html index 237cdf9ac..d0aa0435c 100644 --- a/forks/TachiyomiAZ/index.html +++ b/forks/TachiyomiAZ/index.html @@ -14,7 +14,7 @@ - + @@ -47,6 +47,6 @@ Android 5.0 or higher.
The BEST fork --az4521

# Introduction

TachiyomiAZ is maintained by az4521 (opens new window).

This fork is based off of TachiyomiEH (opens new window). It has most features and fixes from Tachiyomi, as well as features from TachiyomiJ2K. It has decided to keep the hamburger menu style of navigation, compared to the other forks that are moving to the new bottom navigation style. Anime support is coming "soon™"

# Features

Special Sources (integrated plus added features)

  • E-Hentai/ExHentai
  • nHentai
  • Hitomi.la
  • 8Muses
  • HBrowse
  • Perv Eden

Delegated Sources (Sources with added features if installed)

  • Puruin
  • Tsumino
  • HentaiCafe (Foolside)

From EH:

  • Save Searches for use later
  • AutoScroll
  • Boost Page (force redownload page)
  • Page download thread customization
  • Predownload the whole chapter while reading (Optional)
  • Retry immediately instead of wating for the rest of the preloaded pages to finish downloading
  • Customize image cache size (how much space Tachiyomi has available to store future pages)
  • Sync your favorites with your EHentai/ExHentai account
  • Batch import E-Hentai/ExHentai URLs (import single URLs by pasting them into the source search box)
  • Automatic CAPTCHA solving

From EH and fixed/changed:

  • Auto Migration (Originally from EH, it was then improved in J2k, and we have reintegrated the J2k version)
  • Merged Sources (Merge 2 or more versions of a manga to get chapters from all of them)
  • App and notification lock with fingerprint and PIN unlock
  • Fixed Tsumino and Hitomi
  • Language filtering search options for nHentai
  • Random bugfixes

Original AZ Features:

  • Maintained hamburger navigation
  • Grid view corner rounding configuration
  • Manga recommendations
- + diff --git a/forks/TachiyomiJ2K/index.html b/forks/TachiyomiJ2K/index.html index 18c51497c..247b2677f 100644 --- a/forks/TachiyomiJ2K/index.html +++ b/forks/TachiyomiJ2K/index.html @@ -14,7 +14,7 @@ - + @@ -47,6 +47,6 @@ Android 6.0 or higher.

# Introduction

TachiyomiJ2K is maintained by Jays2Kings (opens new window).

This fork takes a new approach to the design of the base app along with several other enhancements.

# Features

  • New Manga details screen
  • New Recents page
    • Providing quick access to newly added manga, new chapters, and to continue where you left on in a series
  • Automatic background based on manga page
    • For those that like having a white background to match the content, this will automatically set the background to match for moments such as a flashback section of a manga.
  • Reader seekbar overrides switch app gesture in Android 10, so no more accidents for that
  • New material snackbar
    • Removing manga now auto deletes chapters and has an undo button in case you change your mind.
  • Library specific enhancements
    • Library Categories are stacked vertically
    • Per-category/Drag & drop sorting
    • Multi-source migration
  • Share sheets upgrade for Android 10+
  • Batch Auto-Source Migration from TachiyomiEH (opens new window)
  • Expanding manga thumbnails
  • A lot more Material Design 2 additions
- + diff --git a/forks/TachiyomiSY/index.html b/forks/TachiyomiSY/index.html index 571bd520d..700f953f4 100644 --- a/forks/TachiyomiSY/index.html +++ b/forks/TachiyomiSY/index.html @@ -14,7 +14,7 @@ - + @@ -47,6 +47,6 @@ Android 6.0 or higher.

# About

This fork is based off of TachiyomiAZ and adds quite a few custom unique features, it also has new features from the latest Tachiyomi version as well as from other forks such as TachiyomiJ2K.

# Features

  • Uses the new Tachiyomi UI
  • Enhanced pages for certain sources
  • Latest tab preview configurable to show up to five sources
  • Ability to enable and disable Hentai features
  • Automatic webtoon detection, allowing the reader to switch to webtoon mode automatically when viewing one
  • Manga recommendations from both MyAnimeList (opens new window) and AniList (opens new window)
  • Lewd filter so you can hide the lewd manga in your library if you want to
  • Search tracking status in library
  • Backup saved searches
  • New E-Hentai/ExHentai features such as language settings and watched list settings
  • Source categories
  • Manga info edit
  • Enhanced views for internal and delegated sources
  • Numerous features from TachiyomiAZ

# Credits

# Disclaimer

The developer of this application does not have any affiliation with the content providers available.

- + diff --git a/forks/index.html b/forks/index.html index 53ef97535..145e86d97 100644 --- a/forks/index.html +++ b/forks/index.html @@ -13,7 +13,7 @@ - + @@ -44,6 +44,6 @@

- + diff --git a/help/contribution/index.html b/help/contribution/index.html index c08cd9e48..8bdd2a0c5 100644 --- a/help/contribution/index.html +++ b/help/contribution/index.html @@ -13,7 +13,7 @@ - + @@ -37,7 +37,7 @@ Extensions GitHub - (opens new window)

# Contribution

Find out how to help translate or build the app and extensions.

# Code

Skilled at code? Know how to improve something or you generally want to support the creation of the app?

# Application

The main application.


# Extensions

Used to read from different manga services.


# Website

The repository that hosts this very website you're reading on now.

# Translation

Translation status

Want to help translate the app to your language? You can easily help by utilizing a service we use called Weblate.

Visit our translation project here (opens new window).


# Project status


Translation status

# 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 (opens new window) by using the button below, or going directly to Ko-Fi (opens new window).


Buy Me a Coffee at ko-fi.com
- + diff --git a/help/faq/index.html b/help/faq/index.html index be46bd877..56aaa8d27 100644 --- a/help/faq/index.html +++ b/help/faq/index.html @@ -13,7 +13,7 @@ - + @@ -37,7 +37,7 @@ Extensions GitHub - (opens new window)

# Frequently Asked Questions

# Application

# General

# Will there be an iOS version?

No. There is no iOS version, and there are no plans for one. Since iOS and Android apps do not share code, it is hard to port.

# Will Tachiyomi ever be on the Google Play Store?

Google Play's content policy does not allow the APK based extension system to work. The content on some websites will lead to Google taking it down at some point, and Inorichi does not want to have to deal with it as they have stated before (opens new window).

To report Tachiyomi copycats on the Google Play Store, you can fill out this form (opens new window) following these steps (opens new window).

# How do I migrate from the F-Droid version?

Tachiyomi on F-Droid is not officially supported, so updates are not guaranteed. If you want to migrate to the official builds:

  1. Create a backup.
  2. Uninstall the F-Droid version (do not keep any app data if it allows you to).
  3. Download and install Tachiyomi.
  4. Restore your backup.

We have no intention to host our own F-Droid repo since Tachiyomi already manages updates by itself, making the usage of F-Droid redundant. For more detailed info, see this GitHub comment (opens new window).

# Can Tachiyomi read light novels or stream anime?

No, Tachiyomi is only focused on delivering a great manga experience.

# Can Tachiyomi sync between devices?

No, but you can use the backup and restore feature to save and load data between devices.

# Library

# How can I see how many chapters I have downloaded?

Enable badges by going to

collections_bookmark
Library
filter_list
Filter
Display tab and then checking Download badges.

# Why does global update skip some entries?

By default, the app does not check for updates if an entry:

  • Has unread chapters
  • Hasn't been started
  • Has "Completed" status

This avoids unnecessary heavy traffic to sources. If you have entries that get infrequent or no updates, you should consider using categories and excluding them from updates.

We recommend to keep the defaults as they are to help ensure that sources continue to work. To get updates:

  • Mark unread chapters as read
  • Ensure that at least 1 chapter is marked read
  • If an entry is incorrectly marked as "Completed", report it on GitHub (opens new window) so that the source can be fixed

If you don't want to see the skipped items notification, you can disable it at

more_horiz
More
settings
Settings
tune
General
Manage notifications (Android 8+).

# Why does the app warn about large bulk updates and downloads?

Excessive server queries and unnecessary site interaction may cause sources to employ anti-Tachiyomi tactics. Also refer to the above question. Long running update checks and downloading may also negatively impact your battery life.

Tips to reduce server load

As mentioned above, it is recommended to keep the defaults as they are, but if you are still seeing this warning message, try the following suggestions:

  • Use categories (Reading, Plan to read and Completed, or anything else that segments your library).
  • Update only the Reading category by going to
    more_horiz
    More
    settings
    Settings
    collections_bookmark
    Library
    Global update then tap Categories.
  • If the warning message still occurs, split your reading category down further by seperating entries in your library that are infrequently updated (such as monthly series or series that are on haitus) into a new category, then set global update to only update your more frequently updated reading category

# How do I ignore duplicate chapters?

Sometimes, you find a manga that is translated by more than one group. Because of this, you get multiple releases for each chapter in the manga. There are several ways to skip the duplicate chapters:

  • Enable Skip duplicate chapters under
    more_horiz
    More
    settings
    Settings
    chrome_reader_mode
    Reader
    Reading.
  • Bookmark or mark as read the unwanted chapters, then tap on
    filter_list
    Filter
    Filter and double-tap Bookmarked or single-tap Unread, respectively. This will hide any bookmarked or read chapters and skip them as you read along, as long as you have Skip filtered chapters enabled under
    more_horiz
    More
    settings
    Settings
    chrome_reader_mode
    Reader
    Reading.
  • Migrate to another source that does not have duplicates. For more information on how to migrate a manga, see the migration guide.

# Why are some cover thumbnails corrupted, white, showing a broken page, or wrong?

The thumbnail download likely did not complete correctly. To fix this, refresh covers in settings.

GUIDE

Refresh your covers by going to

more_horiz
More
settings
Settings
code
Advanced
then pressing Refresh library manga covers.

# Why have some manga chapters been marked as unread when I have not touched them?

The URLs of the manga chapters have changed, so Tachiyomi detects the chapter(s) as new chapters.

# Browse

# Why can I not see sources that I have installed?

# If it is an extension that is not the same language as your device's primary language

Enable the language of the source by going to

explore
Browse → Sources tab →
translate
Filter
→ Turn on the language of the source you would like to use.

# If it is an NSFW extension
settings
Settings
explore
Browse
→ Check show in sources list. + (opens new window)

# Frequently Asked Questions

# Application

# General

# Will there be an iOS version?

No. There is no iOS version and there are no plans for one.

Any app in the App Store that shares a name, logo, or similar design with Tachiyomi is not affiliated with this project.

# Will Tachiyomi ever be on the Google Play Store?

Google Play's policies would not allow the APK-based extension system nor some of the sources' content.

Any app on the Play Store that shares a name, logo, or similar design with Tachiyomi is not affiliated with this project. To report copycats on the Play Store, you can fill out this form (opens new window) following these steps (opens new window).

# How do I migrate from the F-Droid version?

Tachiyomi on F-Droid is not officially supported, so updates are not guaranteed. If you want to migrate to the official builds:

  1. Create a backup.
  2. Uninstall the F-Droid version (do not keep any app data if it allows you to).
  3. Download and install the official version of Tachiyomi.
  4. Restore your backup.

We have no intention to host our own F-Droid repo since Tachiyomi already manages updates by itself, making the usage of F-Droid redundant. For more detailed info, refer to this GitHub comment (opens new window).

# Can Tachiyomi read light novels or stream anime?

No, Tachiyomi is focused on delivering a great manga experience.

# Can Tachiyomi sync between devices?

No, but you can use the backup and restore feature to save and load data between devices.

# Library

# How can I see how many chapters I have downloaded?

Enable badges by going to

collections_bookmark
Library
filter_list
Filter
Display tab and then checking Download badges.

# Why does global update skip some entries?

By default, the app does not check for updates if an entry:

  • Has unread chapters
  • Hasn't been started
  • Has "Completed" status

This avoids unnecessary heavy traffic to sources. If you have entries that get infrequent or no updates, you should consider using categories and excluding them from updates.

We recommend to keep the defaults as they are to help ensure that sources continue to work. To get updates:

  • Mark unread chapters as read
  • Ensure that at least 1 chapter is marked read
  • If an entry is incorrectly marked as "Completed", report it on GitHub (opens new window) so that the source can be fixed

If you don't want to see the skipped items notification, you can disable it at

more_horiz
More
settings
Settings
tune
General
Manage notifications (Android 8+).

# Why does the app warn about large bulk updates and downloads?

Excessive server queries and unnecessary site interaction may cause sources to employ anti-Tachiyomi tactics. Also refer to the above question. Long running update checks and downloading may also negatively impact your battery life.

Tips to reduce server load

As mentioned above, it is recommended to keep the defaults as they are, but if you are still seeing this warning message, try the following suggestions:

  • Use categories (Reading, Plan to read and Completed, or anything else that segments your library).
  • Update only the Reading category by going to
    more_horiz
    More
    settings
    Settings
    collections_bookmark
    Library
    Global update then tap Categories.
  • If the warning message still occurs, split your reading category down further by seperating entries in your library that are infrequently updated (such as monthly series or series that are on haitus) into a new category, then set global update to only update your more frequently updated reading category

# How do I ignore duplicate chapters?

Sometimes, you find a manga that is translated by more than one group. Because of this, you get multiple releases for each chapter in the manga. There are several ways to skip the duplicate chapters:

  • Enable Skip duplicate chapters under
    more_horiz
    More
    settings
    Settings
    chrome_reader_mode
    Reader
    Reading.
  • Bookmark or mark as read the unwanted chapters, then tap on
    filter_list
    Filter
    Filter and double-tap Bookmarked or single-tap Unread, respectively. This will hide any bookmarked or read chapters and skip them as you read along, as long as you have Skip filtered chapters enabled under
    more_horiz
    More
    settings
    Settings
    chrome_reader_mode
    Reader
    Reading.
  • Migrate to another source that does not have duplicates. For more information on how to migrate a manga, see the migration guide.

# Why are some cover thumbnails corrupted, white, showing a broken page, or wrong?

The thumbnail download likely did not complete correctly. To fix this, refresh covers in settings.

GUIDE

Refresh your covers by going to

more_horiz
More
settings
Settings
code
Advanced
then pressing Refresh library manga covers.

# Why have some manga chapters been marked as unread when I have not touched them?

The URLs of the manga chapters have changed, so Tachiyomi detects the chapter(s) as new chapters.

# Browse

# Why can I not see sources that I have installed?

# If it is an extension that is not the same language as your device's primary language

Enable the language of the source by going to

explore
Browse → Sources tab →
translate
Filter
→ Turn on the language of the source you would like to use.

# If it is an NSFW extension
settings
Settings
explore
Browse
→ Check show in sources list.

# How do I find a manga I am looking for?

Sometimes you can struggle to find a source that has the manga you are looking to read. Here are some tips to help you find it:

Tips to find your manga

  1. Look up the manga on Google (opens new window) or a manga database such as MangaUpdates (opens new window).
  2. See if the manga has any alternate spellings or other title variations. Try searching again in your sources with the alternate titles you found.
  3. If you still cannot find the manga in any of your sources, then try to search for an extension for the website you found in step 1 in the extensions list.

# If you find the manga on a specific scanlator or aggregator and they do have an extension

Download the corresponding extension, tap on it under

explore
BrowseSources, and then search for the manga there.

# If you find the manga on a specific scanlator or aggregator and they do not have an extension

Check if adding the site as an extension has already been requested (opens new window) and that it is not on the list of extensions that will not be added back here (opens new window). If it has not been requested and it is not on the list, you can request it here (opens new window).

If the scanlator or aggregator does not have an online manga reader, you can download the manga from their website and set up the series as a local manga.

# Reader

# Why are some images not displayed?

Aside from network issues, sometimes Tachiyomi does not register the image as existing, exit and re-enter the reader to fix this.

# Will there ever be a dual-page reader option?

The logic required to make a dual-page reader automatically work along with scanlator page inconsistencies and other issues means it is unlikely to be added at this time.

# How can I make Tachiyomi turn pages with the volume rocker? Can I reverse the tapping direction? Can I change the tapping zones?

Refer to the guides section of the site here. Refer to here if you want to use your volume rocker to navigate pages.

# Downloads

# How do I download several chapters or manga simultaneously?

The app does not allow parallel downloads from one source to prevent IP bans caused by too many requests. We know that speed is being sacrificed, but it is better than an overall inaccessible source.

However, if you download several manga from different sources, the app will start downloading simultaneously from up to five different sources.

# Why do my downloads sometimes stop midway through?

It is likely an issue to do with your connection to your network or the source. Tachiyomi will notify you of what error it has encountered trying to download.

# Why aren't my downloads being detected?

This can happen for a variety of reasons:

  • The download location may be inaccessible. If you are using a SD card, make sure it's detected.
  • The source name may have changed. Change the name of the source's folder to the new name.
  • The source you downloaded the manga from may have changed the title. Change the title of the folder to the new title.

# How do I cancel or change the download queue?

Go to

more_horiz
More → Download Queue and cancel items in the queue or cancel all items by tapping on the
more_vert
Overflow
next to a manga chapter or on the top right. If you would like the change the order of the queue, tap and hold the = on the side of a item in the queue.

# Can you make it possible to store manga on both internal storage and external SD-card?

At the moment, no. You could try using symlinks, but that requires having your device rooted.

Read more about rooting your device here (opens new window)

Tachiyomi adds a .nomedia file to the Downloads folder by default to prevent this from happening, but sometimes it does not work, or something goes wrong. To fix this, all you need to do is create the file yourself. Name it .nomedia and place it in your downloads folder. If you have the same problem with your local manga, place the .nomedia file in the local folder.

# Local Manga

# How do I import my downloaded manga into Tachiyomi?

We recommend you to read this guide on how to do so.

# What do I do if I cannot find the Tachiyomi folder?

If you do not see the Tachiyomi folder, create one with a file manager.

# How do I fix empty/blank covers on my local manga?

Sometimes some covers for local manga are not displayed. Follow these steps to fix it:

GUIDE

  1. Make sure you have created the right folder structure. To check that you have, open the manga with the missing cover and check if you can read chapters in the app. If not, follow this guide first.
  2. Take a screenshot of which chapters you have read, and then remove manga from the library.
  3. Go to
    more_horiz
    More
    settings
    Settings
    code
    Advanced
    and tap Clear database. This will only affect manga that are not in your library.
  4. Go back to the
    explore
    Browse
    Local source and find the manga. The cover should be fixed now. Add the manga back to your library, mark your read chapters, and re-add tracking if needed.

Related GitHub issue: #932 (opens new window)

# Application Updates

# How do I enable automatic updates?

From version 0.9.0 and onwards, Tachiyomi has had automatic updates for the app enabled by default. The Preview version also has automatic updates enabled by default.

However, if you think you are on an outdated version, go to

more_horiz
More
info
About
and tap on Check for updates.

# Why are automatic updates not working?

Certain Android skins like MIUI have very aggressive battery saving, which can kill the app in the background. To whitelist Tachiyomi from your battery saver, go to

more_horiz
More
settings
Settings
code
Advanced
and tap on Disable battery optimization. If that does not work, you can also visit DontKillMyApp (opens new window) to see what battery saving options your device has and how to disable or circumvent them.

# Why is the app laggy after updating?

The UI toolkit used in Tachiyomi requires the app the be automatically optimized by the Android system over time. You should see improvements after a few days of usage.

If you know how to use ADB, you can also run the following command to trigger the optimization manually. If you are using Tachiyomi Preview or a fork, replace eu.kanade.tachiyomi with the corresponding package name.

adb shell cmd package compile -f -m speed-profile eu.kanade.tachiyomi
 

# Miscellaneous

# What is Tachiyomi Preview?

It is a weekly updated, beta version of the app. It contains features that may be added to Tachiyomi in the future and is more prone to bugs and crashes. It is intended for users who would like the bleeding edge of Tachiyomi as soon as it comes out.

If you are willing to use Tachiyomi Preview, be sure to turn on auto-backup to prevent losing your library due to potential bugs or crashes.

# What is a fork?

Forks are alternative versions of Tachiyomi with different features. Read more about them here.

# Why am I unable to uninstall Tachiyomi?

On Android 10, a bug was introduced that prevented users from uninstalling the app if the device has a SD card inserted. To fix the issue, please remove the SD card from the device first, then uninstall Tachiyomi.

# How do I pause reading history or go incognito?

Enable Incognito Mode by going to

more_horiz
More → Incognito Mode.

# Can I make Tachiyomi only read my downloaded chapters? Why am I not able to disable downloaded only?

Enable Download only by going to

more_horiz
More → Download only.

# What is DNS over HTTPS?

DNS over HTTPS is an experimental way of providing, as the name implies, DNS resolution via HTTPS. @@ -49,11 +49,11 @@

5fed0576-8b94-4f9a-b6a7-08eecd69800d, 06a9fecb-b608-4f19-b93c-7caab06b7f44,
 8d8ecf83-8d42-4f8c-add8-60963f9f28d9, 4f1de6a2-f0c5-4ac5-bce5-02c7dbb67deb
 

# Mangakakalot, Manganelo, Mangabat and Mangairo

# What do Page list is empty and Source URL has changed mean?

The former Mangabox extensions have created new entries for many of the manga on their websites. The old entries are obsolete and will not work. To resolve this, migrate the manga from the source to itself to get the new entry, or better yet, to a different source entirely to avoid similar errors in the future.

# MangaPark

# How do I deal with duplicate chapters in MangaPark?

To solve this issue, follow the below steps.

  1. Go to
    explore
    Browse
    Extensions .
  2. Click on MangaPark extension and then Chapter List Source.
  3. Choose an option like Smart list or Prioritize source.
  4. Go back to MangaPark's chapter list and refresh it.

# Removed Extensions

# Why am I unable to download an extension that used to exist?

Extensions tend to be removed for a variety of reasons:

  • They become too much of a cat and mouse game to maintain due to the website owners changing the site frequently to deter scrapers.
  • The site scrambles images in more than one way, making it impossible to make every image unscrambleable.
  • A scanlator team requests the removal of their site from Tachiyomi.
  • The site is paywalled.
  • Require reverse engineering another app.
  • The site has been shut down.

A list of extensions that have been removed is available here (opens new window), but it does not include sites that have gone offline.

# Split Extensions

Extensions have been split due to the sheer number of extensions in a single extension, with Madara reaching over 200 extensions at one point, making it unreasonable for both devs and users to filter through extensions. For a deeper explanation of the issue, this (opens new window) GitHub issue explains in more detail.

# What extensions have been split?

All of them have been split.

# Why does my multisource extension show up as obsolete?

The multisource extension is obsolete because it has been split. The multisource extension has been removed from the repository. It is not actually obsolete.

# How do I move to a split extension?

Install the extension that your manga is from, and then uninstall the multisource extension. If the manga shows the source as a bunch of numbers, force close the app. For known issues with split extensions, go to this GitHub issue (opens new window).

# Do I need to migrate?

No, unless expressly stated, the internal ID of sources has not changed, so migration is unnecessary.

# What if I uninstall the multisource extension before I install the singular extensions?

See what extension IDs correspond to what extensions here (opens new window).

# Android 11+

# What changed in Android 11?

In Android 11, Google began forcing users to use Scoped Storage (opens new window), which was introduced in Android 5.0 Lollipop, but Google only began forcing developers to use it on Android 11. Some OEMs seem to better implement Scoped Storage than others, with some users not running into any issues while users using other device brands have multitudes of problems.

# What does it mean for Tachiyomi?

The introduction of Scoped Storage means that many storage-related functions that Tachiyomi uses may be much slower due to the inherent slowness of Scoped Storage, as outlined here (opens new window). These include deleting chapters, library load times, accessing the folders outside the data folders to download to or read from, and more.

# Is there any way to improve performance?

If you know how to use ADB, you can try the following command to enable the old general storage interface for the app. If you are using Tachiyomi Preview or a fork, replace eu.kanade.tachiyomi with the corresponding package name.

adb shell cmd appops set eu.kanade.tachiyomi android:legacy_storage allow
-

# Shizuku

# What is Shizuku?

Tachiyomi can use Shizuku as an alternate way to install and update extensions. It accesses system APIs to install packages directly without user input. Shizuku requires setup with ADB or root privileges. Read more about it here (opens new window).

# Do I need Shizuku?

No, only use Shizuku if you want to avoid being prompted during extension installations.

# How do I set Shizuku up?

To learn how to set Shizuku up, go here (opens new window). Once you have set it up, enable it in Tachiyomi by going to MoreSettingsAdvancedInstaller.

# What is the difference between the installers?

  • Legacy: fallback method installer if the standard PackageInstaller has issues. This is the default for MIUI.
  • PackageInstaller: The default installer. This has more features depending on the Android version, such as skipping user prompts on Android 12 when updating extensions.
  • Shizuku: See above.

# Shizuku

# What is Shizuku?

Tachiyomi can use Shizuku as an alternate way to install and update extensions. It accesses system APIs to install packages directly without user input. Shizuku requires setup with ADB or root privileges. Read more about it here (opens new window).

# Do I need Shizuku?

No, only use Shizuku if you want to avoid being prompted during extension installations.

# How do I set Shizuku up?

To learn how to set Shizuku up, go here (opens new window). Once you have set it up, enable it in Tachiyomi by going to MoreSettingsAdvancedInstaller.

# What is the difference between the installers?

  • Legacy: fallback method installer if the standard PackageInstaller has issues. This is the default for MIUI.
  • PackageInstaller: The default installer. This has more features depending on the Android version, such as skipping user prompts on Android 12 when updating extensions.
  • Shizuku: See above.
- + diff --git a/help/guides/backups/index.html b/help/guides/backups/index.html index 9219cadea..c9f6f0809 100644 --- a/help/guides/backups/index.html +++ b/help/guides/backups/index.html @@ -13,7 +13,7 @@ - + @@ -46,6 +46,6 @@ →

- + diff --git a/help/guides/categories/index.html b/help/guides/categories/index.html index f5bd59672..18cf51558 100644 --- a/help/guides/categories/index.html +++ b/help/guides/categories/index.html @@ -13,7 +13,7 @@ - + @@ -48,6 +48,6 @@ →

- + diff --git a/help/guides/getting-started/index.html b/help/guides/getting-started/index.html index 0837b12fb..72319ae62 100644 --- a/help/guides/getting-started/index.html +++ b/help/guides/getting-started/index.html @@ -13,7 +13,7 @@ - + @@ -50,6 +50,6 @@ →

- + diff --git a/help/guides/local-manga/index.html b/help/guides/local-manga/index.html index 7dc894b12..f3e8f9a94 100644 --- a/help/guides/local-manga/index.html +++ b/help/guides/local-manga/index.html @@ -13,7 +13,7 @@ - + @@ -66,6 +66,6 @@ →

- + diff --git a/help/guides/reader-settings/index.html b/help/guides/reader-settings/index.html index 3e2fbcaff..9528dcc23 100644 --- a/help/guides/reader-settings/index.html +++ b/help/guides/reader-settings/index.html @@ -13,7 +13,7 @@ - + @@ -110,6 +110,6 @@ →

- + diff --git a/help/guides/source-migration/index.html b/help/guides/source-migration/index.html index 78f03e80e..c064894db 100644 --- a/help/guides/source-migration/index.html +++ b/help/guides/source-migration/index.html @@ -13,7 +13,7 @@ - + @@ -52,6 +52,6 @@ →

- + diff --git a/help/guides/tracking/index.html b/help/guides/tracking/index.html index 4a8620bfc..4c237bf45 100644 --- a/help/guides/tracking/index.html +++ b/help/guides/tracking/index.html @@ -13,7 +13,7 @@ - + @@ -38,7 +38,7 @@ GitHub (opens new window)

# Tracking

# What is tracking?

Tracking helps you automatically send read manga chapters to supported trackers, so you can keep track of what and when you read it online.

Tracking is currently supported on MyAnimeList (opens new window), Anilist (opens new window), MangaUpdates (opens new window), Shikimori (opens new window), Bangumi (opens new window), and Kitsu (opens new window)

  • Tracking must be done manually for every manga.
  • You must read the last page of a chapter to mark the chapter as read and track it.
  • You can manually set the chapter by tapping on the number and then entering the number in or dragging the ticker up or down.
  • After being offline, Tachiyomi will send progress made offline to the tracker.
  • Tachiyomi will attempt to automatically set the start date when starting a manga.
  • Tachiyomi will also set the finished date and reading status to completed if the read chapter is equal to the tracker's total chapters.
  • Tracking is one-way. Meaning updating status in Tachiyomi will update the tracker, but updating status in the tracker will not update Tachiyomi.

Enhanced tracking services is also supported for some sources like Komga (opens new window) and work a bit differently from other trackers:

  • You don't need to login into the tracker, it uses the credentials from the associated source.
  • Tracking is done automatically, you don't have to search and bind every manga after adding it to your library.
  • Tracking only works for that source.
  • Tracking is two-way, and local chapters will be marked as read.
  • You must read the last page of a chapter to mark the chapter as read and track it.
  • If you mark a chapter as read manually, the tracker will not be updated right away. You can update the tracker status on the server-side by opening the tracker sheet.

# How do I login into trackers?
sync

Guide

  1. Go to
    more_horiz
    More
    settings
    Settings
    autorenew
    Tracking
    to Login
  2. Tap the tracker you would like to login to. It will automatically open the browser and lead you through the login process.

# How do I set up tracking for each manga?

Guide

  1. Tap the manga
  2. Tap the
    sync
  3. Tap "Add tracking" to add the manga to the tracker -
    • Optional: You can change the search query

# How do I log in with Kitsu?

To log in with Kitsu, you need to use your email address as your username.

# Why am I unable to find a manga in MAL's search results?

If you cannot find a manga by name, you can look it up on MAL and then search for it in Tachiyomi using the following format: id:<id from manga URL>. You can also search for a manga on your MAL profile list by searching in the following format: my:<manga name>.

Related GitHub issue: #65 (opens new window)

# How do I see which manga I have or have not tracked in my library?

Go to

collections_bookmark
Library → Tap
filter_list
Filter
on the top right → Go to the Filter tab and toggle Tracked. If you are logged into more than one tracker, toggle the tracker you want to include or exclude.

# How do I log in with Kitsu?

To log in with Kitsu, you need to use your email address as your username.

# Why am I unable to find a manga in MAL's search results?

If you cannot find a manga by name, you can look it up on MAL and then search for it in Tachiyomi using the following format: id:<id from manga URL>. You can also search for a manga on your MAL profile list by searching in the following format: my:<manga name>.

Related GitHub issue: #65 (opens new window)

# How do I see which manga I have or have not tracked in my library?

Go to

collections_bookmark
Library → Tap
filter_list
Filter
on the top right → Go to the Filter tab and toggle Tracked. If you are logged into more than one tracker, toggle the tracker you want to include or exclude.

- + diff --git a/help/guides/troubleshooting/index.html b/help/guides/troubleshooting/index.html index f28864850..640a5193c 100644 --- a/help/guides/troubleshooting/index.html +++ b/help/guides/troubleshooting/index.html @@ -13,7 +13,7 @@ - + @@ -37,8 +37,8 @@ Extensions GitHub - (opens new window)

# Troubleshooting

This page is for when you encounter a problem with a source or the app.

# What are some common issues?

Failed to bypass Cloudflare
HTTP error 403
HTTP error 404
HTTP error 429 (Too Many Requests)
HTTP error 5xx
HTTP error 1006
HTTP error 1020
Unable to resolve host / Connection failed / Failed to connect to / timeout / connection reset
java.security.cert.CertPathValidatorException / Chain validation failed
App not installed
Attempt to invoke virtual method 'com.hippo.unifile...
Cannot Access SD Card
Storage issues with Android 11+
Slow loading
Reading is laggy

If error-specific instructions didn't help or your error isn't on the list, go through Diagnosis.

# Diagnosis

  • Verify your extensions are up to date (
    explore
    Browse
    Extensions, make sure no extensions have an Update button).
  • Check if Tachiyomi has an update (
    more_horiz
    More
    info
    About
    then tap Check for updates).
  • Manually refresh the manga you are having issues with by dragging down.
  • Check other manga from the source.
  • Verify that WebView is updated.
  • Try opening the manga in
    public
    WebView
    . If there is a Cloudflare protection, wait for it to load. If there is a CAPTCHA, solve it and see if it helped.
  • Change your internet connection (switch to Wi-Fi, mobile data or a VPN, use a "What's my IP" site to confirm your IP has changed), then try again.
  • Ask other users to try the action that gives you the error.
  • Check if the source is either down, or is having issues in a browser.
  • Press the retry button in the middle of your manga page if one exists.
  • Try the following at
    more_horiz
    More
    settings
    Settings
    code
    Advanced
    • Clear Cache
    • Clear Cookies
    • Clear Database
    • DNS over HTTPS
  • If your downloads are getting stuck, try deleting the queue and trying again.
  • Force close Tachiyomi and reopen it.

An extension update may fix your issue. Wait or check for an extension update if you have not already. There are no ETAs for updates.

If any of these solutions help, go to it only happens to me. -If it is not just you, go to everyone is having this problem.

If none of these solutions help, try asking in our Discord Server (opens new window). Check #status-updates first to see if your issue is known. State your app version and the source, manga, and chapter with the problem if it is not listed.

# It only happens to me

You may be getting a Cloudflare protection, may have been IP-banned, or encountered some other counter-measure that website owners deploy against programs like Tachiyomi. If that is the case, there is probably nothing that Tachiyomi can do to solve it. Some of them (like Cloudflare) have to be manually solved, and some are temporary (IP bans).

Workarounds that can the lower chance of an issue happening again:

  • Don't use downloads with the source.
  • Have less manga in your library from the source.

The above are imprecise and fuzzy rules because each site has its non-public limits and triggers.

# Everyone is having this problem

If the site is reachable and fully functional, there may be an issue with the extension or app.

  1. Have a look at open issues for the app (opens new window) and/or extensions (opens new window).
  2. It may have been fixed already but not released yet, so look at closed issues (app (opens new window) / extensions (opens new window)) issues as well.
  3. If you can't find the issue there, open a new one.

If the site is not reachable or has issues, all you can do is wait for the site to become functional again.

# Solving Cloudflare issues

Cloudflare is an anti-bot mechanism. Some sources intentionally have a higher Cloudflare protection level to block apps like Tachiyomi. You can try the following suggestions to help resolve Cloudflare challenges. If none of these help, wait until they lower their protection or migrate to other sources.

# Loading the website in WebView

Try to load the website in WebView. Note that WebView is not the same as using your browser.

How to open WebView

  1. Go to
    explore
    Browse
    in the bottom navbar.
  2. Press the source you would like to access.
  3. Press the
    public
    WebView
    icon in the top toolbar.
  4. Complete a CAPTCHA if one is shown.
  5. Once done, press the X at the top left to return.

You may need to try this multiple times. You can also try pressing the

more_vert
Overflow icon, opening the website in your regular browser, then checking for a CAPTCHA there.

Some sources may have more advanced Cloudflare protection. If you are facing issues, try the following options.

# Clearing cookies and WebView data

GUIDE

  1. Go to
    more_horiz
    More
    in the bottom navbar, then
    settings
    Settings
    code
    Advanced
    .
  2. Press "Clear cookies".
  3. Press "Clear WebView data".

# Changing your user agent

A user agent string helps websites identify information about the requester. This information may impact Cloudflare's bot detection. While some sources have user agent strings set, most rely on the default value set in the app.

GUIDE

  1. Go to
    more_horiz
    More
    in the bottom navbar, then
    settings
    Settings
    code
    Advanced
    .
  2. Change the Default user agent string setting to a different one. This website (opens new window) is a decent reference.
  3. Restart the app and try accessing the source again.

# Update WebView

To update WebView, you need to find what WebView implementation is used on your device. In general, default implementation depends on the Android version as follows:

Users on Android 7.0 and up can also see and change WebView implementation in Developer Options (opens new window).

Non-standard implementations like Firefox can lead to Tachiyomi not working correctly or, in the worst-case, crash. It is recommended to set your WebView implementation to Android System WebView (opens new window) or Google Chrome (opens new window).

# Unable to install the app or extensions

Try installing Split APK Installer (opens new window) from the Google Play Store, then use it to try and install the affected APK. Split APK Installer will tell you why the APK is uninstallable, or it will install the APK for you. Some common errors are listed below.

INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package eu.kanade.tachiyomi signatures do not match the previously installed version; ignoring!
DISPLAY_NAME column is null
INSTALL_FAILED_NO_MATCHING_ABIS

# Getting Logcats and Crash Logs

To dump crash logs following an app crash, go to

more_horiz
More
settings
Settings
code
Advanced
Dump crash logs

To get device logs if the app is not behaving as expected, record device logs using a Logcat Reader (opens new window).

- + diff --git a/help/index.html b/help/index.html index a6e2f3c01..c0ddcf308 100644 --- a/help/index.html +++ b/help/index.html @@ -13,7 +13,7 @@ - + @@ -44,6 +44,6 @@ (opens new window) GitHub (opens new window)
- + diff --git a/index.html b/index.html index 52579b716..5bd1fb3c9 100644 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@ - + @@ -61,6 +61,6 @@ (opens new window) GitHub (opens new window)
- + diff --git a/privacy/index.html b/privacy/index.html index 973046f7a..faf29e289 100644 --- a/privacy/index.html +++ b/privacy/index.html @@ -13,7 +13,7 @@ - + @@ -38,6 +38,6 @@ GitHub (opens new window)

# Privacy Policy

Tachiyomi is an Open Source app. This SERVICE is provided at no cost and is intended for use as is.

This page details our policies with the collection, use, and disclosure of Personal Information if anyone decided to use our Service.

If you choose to use our Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that we collect is used for providing and improving the Service. We will not use or share your information with anyone except as described in this Privacy Policy.

# Information Collection and Use

For a better experience, while using our Service, we may require you to provide us with certain personally identifiable information. The information that we request will be retained by us and used as described in this privacy policy.

Links to the privacy policy of third-party service providers used by the app:

# Log Data

In a case of an error in the app, the Service automatically collects data and information called Log Data. This Log Data may include information including your device name, operating system version, the configuration of the app when utilizing our Service, the time and date of your use of the Service, and other statistics.

This can be disabled within the app.

# Analytics Data

The Service is integrated with Firebase (opens new window) to collect anonymized analytics data about Service usage.

For more information, you can refer to How Google uses data when you use our partners' sites or apps (opens new window).

This Service contains links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by us. Therefore, we strongly advise you to review the Privacy Policy of these websites. We have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.

This includes the use of external tracking services (e.g. MyAnimeList).

# Changes to This Privacy Policy

We may periodically update our Privacy Policy. Thus, you are advised to review this page periodically for any changes.

The current iteration of this policy is effective as of December 15, 2021.

# Contact Us

If you have any questions or suggestions about this Privacy Policy, do not hesitate to reach out to us on our Discord server (opens new window).

- + diff --git a/sandbox/element-ui/index.html b/sandbox/element-ui/index.html index 5aa6c9f6c..fc55305b2 100644 --- a/sandbox/element-ui/index.html +++ b/sandbox/element-ui/index.html @@ -13,7 +13,7 @@ - + @@ -74,7 +74,7 @@ **Pellentesque** _habitant_ morbi tristique **senectus** et netus. ::: :::: -

# Collapse (opens new window)

Lorem ipsum
Pellentesque
:::: el-collapse
+

# Collapse (opens new window)

Lorem ipsum
Pellentesque
:::: el-collapse
 ::: el-collapse-item title="Lorem ipsum"
 **Lorem ipsum** dolor sit amet, _consectetur_ adipiscing **elit**.
 :::
@@ -107,6 +107,6 @@
        

- + diff --git a/sandbox/index.html b/sandbox/index.html index 6853fc12f..74e65dfec 100644 --- a/sandbox/index.html +++ b/sandbox/index.html @@ -13,7 +13,7 @@ - + @@ -38,6 +38,6 @@ GitHub (opens new window)

# Sandbox

Sandbox playground for demonstrating and documenting how different website functions work for easier integration by contributors.

- + diff --git a/sandbox/style-guide/index.html b/sandbox/style-guide/index.html index 0a569dfab..7e085f0f0 100644 --- a/sandbox/style-guide/index.html +++ b/sandbox/style-guide/index.html @@ -13,7 +13,7 @@ - + @@ -38,7 +38,7 @@ GitHub (opens new window)

# Style guide

Style guide to aid website content contributors. For the code used for certain segments, please view the code for this page. -Note that I am not experienced in making these and thus it was created on a whim, if you know any way to improve this page then please submit an edit for it or create an issue.

# FAQ Style

Some DOs and DO NOTs for FAQ.

  • DO NOT be afraid to ask for help, this includes clarifying what some parts on this page mean.

  • DO write each segment as a question:

# How can I see how many chapters I've downloaded?

  • DO write your instructions as clear as possible, preferably check with other people first and see if they can help you improve your language used.

  • DO NOT write noticably sloppily, this makes it harder for both us and the user to understand.

  • DO NOT forget to at least check for basic grammar issues, this includes not having a capital letter in your first word and forgetting commas/periods.

  • DO PREFERABLY, in relation to the above, use resources that can aid with grammar and general structure:

  • DO preferably try to build the enviroment and test it locally first before submitting your PR, ask for help with this if you need it.

  • DO use guide containers for quickly showing how to achieve something:

Instructions

Enable it by going to

collections_bookmark
Library
filter_list
Filter
Display section and then checking the Download badges option at the bottom.

  • DO include video guides as a text under the header:
  • DO try to be consistent with video recording by following these guidelines:

Video recording guidelines

When making videos, it's highly preferable that you use Android Studio's (opens new window) emulator for a consistent result each time. The emulator settings > for the front-page images is a Pixel 3 XL running Android 10.

  • Record your videos as MP4 or WEBM, whichever works the best for you.
  • Use Androids built-in Demo Mode, it can be found in the Developer settings.
  • Record with a clean workspace and don't be too hasty or too slow with actions.
  • DO use arrow symbols in instructions, instead of using greater-than symbols:

Start → Goal

  • DO bold important words in your text:

...checking the Download badges option...

collections_bookmark
Library
  • DO use unordered lists when writing a list of stuff that's not an instruction:
  • This thing.
  • And that thing.
  • DO NOT use unordered lists for instructions.
  • DO use ordered lists when writing a longer instruction:
  1. Step one.
  2. Step two.
  • DO use tabs for instructions when necessary for a good experience:
  • MAYBE use accordions for FAQ entries, needs further testing if/before we replace all:
How can I see how many chapters I've downloaded?
Why are there no results when searching?
You can even chain tabs and other stuff into accordions
Or decide to only write pure content.
  • DO use alerts to give the user a heads up:

More alerts can be found on the Element-UI page.

  • DO include related info as an aside object:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Related GitHub issue: #65 (opens new window)

Pellentesque habitant morbi tristique senectus et netus.

Learn how to create automatic backups here

  • DO use code tags for error codes and file names:

Storage related error: Attempt to invoke virtual method 'com.hippo.unifile...

File name to ignore images from Tachiyomi: .nomedia

# Guide Style

Many of the stuff previously mentioned generally applies when making guides too, some stuff unique to guide would probably be these:

  • DO use guide containers when writing instructions:

GUIDE

  1. Go to
    more_horiz
    More
    and tap
    compare_arrows
    Source migration
    .
  2. Select the Source you're migrating from.
  3. 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.

  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.
  • DO use code blocks when you're pasting code:
{
+Note that I am not experienced in making these and thus it was created on a whim, if you know any way to improve this page then please submit an edit for it or create an issue.

# FAQ Style

Some DOs and DO NOTs for FAQ.

  • DO NOT be afraid to ask for help, this includes clarifying what some parts on this page mean.

  • DO write each segment as a question:

# How can I see how many chapters I've downloaded?

  • DO write your instructions as clear as possible, preferably check with other people first and see if they can help you improve your language used.

  • DO NOT write noticably sloppily, this makes it harder for both us and the user to understand.

  • DO NOT forget to at least check for basic grammar issues, this includes not having a capital letter in your first word and forgetting commas/periods.

  • DO PREFERABLY, in relation to the above, use resources that can aid with grammar and general structure:

  • DO preferably try to build the enviroment and test it locally first before submitting your PR, ask for help with this if you need it.

  • DO use guide containers for quickly showing how to achieve something:

Instructions

Enable it by going to

collections_bookmark
Library
filter_list
Filter
Display section and then checking the Download badges option at the bottom.

  • DO include video guides as a text under the header:
  • DO try to be consistent with video recording by following these guidelines:

Video recording guidelines

When making videos, it's highly preferable that you use Android Studio's (opens new window) emulator for a consistent result each time. The emulator settings > for the front-page images is a Pixel 3 XL running Android 10.

  • Record your videos as MP4 or WEBM, whichever works the best for you.
  • Use Androids built-in Demo Mode, it can be found in the Developer settings.
  • Record with a clean workspace and don't be too hasty or too slow with actions.
  • DO use arrow symbols in instructions, instead of using greater-than symbols:

Start → Goal

  • DO bold important words in your text:

...checking the Download badges option...

collections_bookmark
Library
  • DO use unordered lists when writing a list of stuff that's not an instruction:
  • This thing.
  • And that thing.
  • DO NOT use unordered lists for instructions.
  • DO use ordered lists when writing a longer instruction:
  1. Step one.
  2. Step two.
  • DO use tabs for instructions when necessary for a good experience:
  • MAYBE use accordions for FAQ entries, needs further testing if/before we replace all:
How can I see how many chapters I've downloaded?
Why are there no results when searching?
You can even chain tabs and other stuff into accordions
Or decide to only write pure content.
  • DO use alerts to give the user a heads up:

More alerts can be found on the Element-UI page.

  • DO include related info as an aside object:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Related GitHub issue: #65 (opens new window)

Pellentesque habitant morbi tristique senectus et netus.

Learn how to create automatic backups here

  • DO use code tags for error codes and file names:

Storage related error: Attempt to invoke virtual method 'com.hippo.unifile...

File name to ignore images from Tachiyomi: .nomedia

# Guide Style

Many of the stuff previously mentioned generally applies when making guides too, some stuff unique to guide would probably be these:

  • DO use guide containers when writing instructions:

GUIDE

  1. Go to
    more_horiz
    More
    and tap
    compare_arrows
    Source migration
    .
  2. Select the Source you're migrating from.
  3. 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.

  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.
  • DO use code blocks when you're pasting code:
{
 "title": "Example Title",
 "author": "Example Author",
 "artist": "Example Artist",
@@ -72,6 +72,6 @@
       
       →
     

- +