2
.gitignore
vendored
@ -13,4 +13,4 @@ node_modules/
|
||||
npm-debug.log
|
||||
|
||||
# Compiled site
|
||||
public/
|
||||
/public/
|
||||
|
@ -1,4 +1,4 @@
|
||||
<h1 align="center"><img src="./src/assets/media/tachiyomi.png">Tachiyomi Website</h1>
|
||||
<h1 align="center"><img src="./src/.vuepress/public/assets/media/tachiyomi.png">Tachiyomi Website</h1>
|
||||
<p align="center">
|
||||
<a href="https://discord.gg/tachiyomi">
|
||||
<img src="https://img.shields.io/discord/349436576037732353.svg?label=Discord&labelColor=7289da&color=2c2f33&style=flat" alt="Discord">
|
||||
|
10947
package-lock.json
generated
14
package.json
@ -2,8 +2,8 @@
|
||||
"name": "tachiyomi-website",
|
||||
"version": "0.0.0",
|
||||
"scripts": {
|
||||
"build": "cp -R src/ public/",
|
||||
"serve": "npm run build && http-server"
|
||||
"build": "vuepress build src",
|
||||
"serve": "vuepress dev src"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -11,6 +11,14 @@
|
||||
},
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"http-server": "^0.11.1"
|
||||
"node-sass": "^4.12.0",
|
||||
"sass-loader": "^8.0.0",
|
||||
"vuepress": "^1.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.19.0",
|
||||
"iso-639-1": "^2.1.0",
|
||||
"lodash.groupby": "^4.6.0",
|
||||
"lodash.sortby": "^4.7.0"
|
||||
}
|
||||
}
|
||||
|
100
src/.vuepress/components/ExtensionList.vue
Normal file
@ -0,0 +1,100 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-for="extensionGroup in extensions" :key="extensionGroup[0].lang">
|
||||
<h3>{{ langName(extensionGroup[0].lang) }}</h3>
|
||||
<div class="extension" v-for="extension in extensionGroup" :key="extension.apk">
|
||||
<img :src="iconUrl(extension.apk)" width="42" height="42">
|
||||
<div class="extension-text">
|
||||
<div class="upper">
|
||||
<span class="bold">{{ extension.name.split(': ')[1] }}</span>
|
||||
<Badge :text="'v' + extension.version"/>
|
||||
</div>
|
||||
<div class="down">
|
||||
{{ extension.pkg }}
|
||||
</div>
|
||||
</div>
|
||||
<a :href="apkUrl(extension.apk)" class="button" download>Download</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import axios from 'axios';
|
||||
import groupBy from 'lodash.groupby';
|
||||
import sortBy from 'lodash.sortby';
|
||||
import ISO6391 from 'iso-639-1';
|
||||
|
||||
const EXTENSION_JSON = 'https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo/index.json';
|
||||
|
||||
export default {
|
||||
data: function () {
|
||||
return {
|
||||
extensions: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
langName: code => code === 'all' ? 'All' : `${ISO6391.getName(code)} (${ISO6391.getNativeName(code)})`,
|
||||
iconUrl (pkg) {
|
||||
const pkgName = pkg.substring(0, pkg.lastIndexOf('.'));
|
||||
return `https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo/icon/${pkgName}.png`;
|
||||
},
|
||||
apkUrl: apk => `https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo/apk/${apk}`
|
||||
},
|
||||
async beforeMount () {
|
||||
const { data } = await axios.get(EXTENSION_JSON);
|
||||
const values = Object.values(groupBy(data, 'lang'));
|
||||
this.$data.extensions = sortBy(values, [g => this.langName(g[0].lang)]);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.extension {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.4em 0.2em;
|
||||
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px solid #eaecef;
|
||||
}
|
||||
|
||||
img {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
.extension-text {
|
||||
flex: 1;
|
||||
|
||||
.down {
|
||||
font-size: 0.8rem;
|
||||
font-family: monospace;
|
||||
color: #6c757d;
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
display: inline-block;
|
||||
font-size: 0.8em;
|
||||
color: #fff;
|
||||
background-color: #2e84bf;
|
||||
padding: 0.3rem;
|
||||
border-radius: 4px;
|
||||
transition: background-color 0.1s ease;
|
||||
box-sizing: border-box;
|
||||
border-bottom: 1px solid #2977ac;
|
||||
text-transform: uppercase;
|
||||
|
||||
&:hover {
|
||||
background-color: #3992cf;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.extension .extension-text .down {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
25
src/.vuepress/config.js
Normal file
@ -0,0 +1,25 @@
|
||||
module.exports = {
|
||||
title: 'Tachiyomi',
|
||||
description: 'Free and open source manga reader for Android',
|
||||
dest: './public',
|
||||
themeConfig: {
|
||||
repo: 'inorichi/tachiyomi',
|
||||
docsRepo: 'tachiyomiorg/website',
|
||||
docsDir: 'src',
|
||||
editLinks: true,
|
||||
nav: [
|
||||
{ text: 'Guide', link: '/guide/' },
|
||||
{ text: 'FAQ', link: '/faq/' },
|
||||
{ text: 'Extensions', link: '/extensions/' },
|
||||
{ text: 'Wiki', link: 'https://github.com/inorichi/tachiyomi/wiki' },
|
||||
{ text: 'Discord', link: 'https://discord.gg/tachiyomi' }
|
||||
],
|
||||
sidebar: [
|
||||
'/',
|
||||
'/guide/',
|
||||
'/faq/',
|
||||
'/extensions/'
|
||||
],
|
||||
lastUpdated: 'Last Updated'
|
||||
}
|
||||
}
|
8
src/.vuepress/enhanceApp.js
Normal file
@ -0,0 +1,8 @@
|
||||
import './styles/index.scss'
|
||||
|
||||
export default ({
|
||||
Vue, // the version of Vue being used in the VuePress app
|
||||
options, // the options for the root Vue instance
|
||||
router, // the router instance for the app
|
||||
siteData // site metadata
|
||||
}) => {}
|
Before Width: | Height: | Size: 466 KiB After Width: | Height: | Size: 466 KiB |
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 175 KiB |
BIN
src/.vuepress/public/assets/media/hero.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
BIN
src/.vuepress/public/assets/media/screens.png
Normal file
After Width: | Height: | Size: 730 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
11
src/.vuepress/styles/index.scss
Normal file
@ -0,0 +1,11 @@
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.custom-block.tip {
|
||||
border-color: #2E84BF !important;
|
||||
}
|
1
src/.vuepress/styles/palette.styl
Normal file
@ -0,0 +1 @@
|
||||
$accentColor = #2E84BF
|
17
src/README.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
home: true
|
||||
lang: en-US
|
||||
heroImage: /assets/media/hero.png
|
||||
actionText: Get Started →
|
||||
actionLink: /guide/
|
||||
features:
|
||||
- title: Extensions
|
||||
details: Online reading from sources such as KissManga, MangaDex and more.
|
||||
- title: Tracking
|
||||
details: MyAnimeList, AniList and Kitsu support.
|
||||
- title: Configurable
|
||||
details: Reader with multiple viewers, reading directions and other settings.
|
||||
footer: Apache Licensed | Copyright © 2015-present Javier Tomás
|
||||
---
|
||||
|
||||
![screens](/assets/media/screens.png)
|
7
src/assets/css/bootstrap-4.3.1.min.css
vendored
4
src/assets/css/bootstrap-toc-1.0.1.min.css
vendored
@ -1,4 +0,0 @@
|
||||
/*!
|
||||
* Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/)
|
||||
* Copyright 2015 Aidan Feldman
|
||||
* Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */nav[data-toggle=toc] .nav>li>a{display:block;padding:4px 20px;font-size:13px;font-weight:500;color:#767676}nav[data-toggle=toc] .nav>li>a:focus,nav[data-toggle=toc] .nav>li>a:hover{padding-left:19px;color:#563d7c;text-decoration:none;background-color:transparent;border-left:1px solid #563d7c}nav[data-toggle=toc] .nav-link.active,nav[data-toggle=toc] .nav-link.active:focus,nav[data-toggle=toc] .nav-link.active:hover{padding-left:18px;font-weight:700;color:#563d7c;background-color:transparent;border-left:2px solid #563d7c}nav[data-toggle=toc] .nav-link+ul{display:none;padding-bottom:10px}nav[data-toggle=toc] .nav .nav>li>a{padding-top:1px;padding-bottom:1px;padding-left:30px;font-size:12px;font-weight:400}nav[data-toggle=toc] .nav .nav>li>a:focus,nav[data-toggle=toc] .nav .nav>li>a:hover{padding-left:29px}nav[data-toggle=toc] .nav .nav>li>.active,nav[data-toggle=toc] .nav .nav>li>.active:focus,nav[data-toggle=toc] .nav .nav>li>.active:hover{padding-left:28px;font-weight:500}nav[data-toggle=toc] .nav-link.active+ul{display:block}
|
@ -1,100 +0,0 @@
|
||||
/* html {
|
||||
padding-bottom: 30em; <-- Testing bottom scroll, commit 40
|
||||
padding-bottom: calc(100vh - 30px); <-- Testing bottom scroll, commit 40
|
||||
} */
|
||||
img, video {
|
||||
margin-bottom: 1.5em;
|
||||
max-width: 325px;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
font-weight: normal;
|
||||
}
|
||||
h1 { font-size: 2em; }
|
||||
h2 { font-size: 1.5em; }
|
||||
h3 { font-size: 1.25em; }
|
||||
body {
|
||||
padding-top: 40px;
|
||||
/* padding-bottom: 40px; <-- Testing bottom scroll, commit 40 */
|
||||
background-color: #f5f5f5;
|
||||
/* border-bottom: red dotted 30px; <-- Testing bottom scroll, commit 40 */
|
||||
}
|
||||
|
||||
.row {
|
||||
padding-bottom: 3em;
|
||||
}
|
||||
|
||||
.btn-link {
|
||||
font-weight: 400!important;
|
||||
}
|
||||
|
||||
.btn-link:hover, .btn-link:focus {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.card {
|
||||
background-color: transparent!important;
|
||||
background-clip: border-box;
|
||||
border: none!important;
|
||||
}
|
||||
|
||||
.card-header {
|
||||
padding: .75rem 1.25rem;
|
||||
margin-bottom: 0;
|
||||
background-color: transparent!important;
|
||||
border-bottom: 1px solid rgba(0,0,0,.125)!important;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
details > p:nth-child(2) {
|
||||
padding-top: 16px;
|
||||
}
|
||||
|
||||
summary:focus {
|
||||
outline: none;
|
||||
outline-color: transparent;
|
||||
}
|
||||
|
||||
summary > * {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
summary {
|
||||
padding-top: 0.5em;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 25em;
|
||||
background-color: #eaeaea;
|
||||
}
|
||||
|
||||
/** */
|
||||
nav[data-toggle="toc"] {
|
||||
top: 95px;
|
||||
}
|
||||
|
||||
/* small screens */
|
||||
@media (max-width: 768px) {
|
||||
/* override stickyness so that the navigation does not follow scrolling */
|
||||
nav[data-toggle="toc"] {
|
||||
margin-bottom: 42px;
|
||||
position: static;
|
||||
}
|
||||
|
||||
/* PICK ONE */
|
||||
/* don't expand nested items, which pushes down the rest of the page when navigating */
|
||||
nav[data-toggle="toc"] .nav .active .nav {
|
||||
display: none;
|
||||
}
|
||||
/* alternatively, if you *do* want the second-level navigation to be shown (as seen on this page on mobile), use this */
|
||||
/*
|
||||
nav[data-toggle='toc'] .nav .nav {
|
||||
display: block;
|
||||
}
|
||||
*/
|
||||
}
|
7
src/assets/js/bootstrap-4.3.1.min.js
vendored
5
src/assets/js/bootstrap-toc-1.0.1.min.js
vendored
@ -1,5 +0,0 @@
|
||||
/*!
|
||||
* Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/)
|
||||
* Copyright 2015 Aidan Feldman
|
||||
* Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */
|
||||
!function(a){"use strict";window.Toc={helpers:{findOrFilter:function(e,t){var n=e.find(t);return e.filter(t).add(n).filter(":not([data-toc-skip])")},generateUniqueIdBase:function(e){return a(e).text().trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,64).replace(/^-+|-+$/gm,"").toLowerCase()||e.tagName.toLowerCase()},generateUniqueId:function(e){for(var t=this.generateUniqueIdBase(e),n=0;;n++){var r=t;if(0<n&&(r+="-"+n),!document.getElementById(r))return r}},generateAnchor:function(e){if(e.id)return e.id;var t=this.generateUniqueId(e);return e.id=t},createNavList:function(){return a('<ul class="nav navbar-nav"></ul>')},createChildNavList:function(e){var t=this.createNavList();return e.append(t),t},generateNavEl:function(e,t){var n=a('<a class="nav-link"></a>');n.attr("href","#"+e),n.text(t);var r=a("<li></li>");return r.append(n),r},generateNavItem:function(e){var t=this.generateAnchor(e),n=a(e),r=n.data("toc-text")||n.text();return this.generateNavEl(t,r)},getTopLevel:function(e){for(var t=1;t<=6;t++){if(1<this.findOrFilter(e,"h"+t).length)return t}return 1},getHeadings:function(e,t){var n="h"+t,r="h"+(t+1);return this.findOrFilter(e,n+","+r)},getNavLevel:function(e){return parseInt(e.tagName.charAt(1),10)},populateNav:function(r,a,e){var i,s=r,c=this;e.each(function(e,t){var n=c.generateNavItem(t);c.getNavLevel(t)===a?s=r:i&&s===r&&(s=c.createChildNavList(i)),s.append(n),i=n})},parseOps:function(e){var t;return(t=e.jquery?{$nav:e}:e).$scope=t.$scope||a(document.body),t}},init:function(e){(e=this.helpers.parseOps(e)).$nav.attr("data-toggle","toc");var t=this.helpers.createChildNavList(e.$nav),n=this.helpers.getTopLevel(e.$scope),r=this.helpers.getHeadings(e.$scope,n);this.helpers.populateNav(t,n,r)}},a(function(){a('nav[data-toggle="toc"]').each(function(e,t){var n=a(t);Toc.init(n)})})}(jQuery);
|
2
src/assets/js/jquery-3.4.1.slim.min.js
vendored
@ -1,22 +0,0 @@
|
||||
addEventListener("hashchange", () => {
|
||||
var q = document.querySelector(location.hash)
|
||||
if (q instanceof HTMLHeadingElement && q.parentElement.parentElement instanceof HTMLDetailsElement)
|
||||
q.parentElement.parentElement.open = true;
|
||||
})
|
||||
if (location.hash) requestAnimationFrame(() => dispatchEvent(new HashChangeEvent("hashchange")));
|
||||
if ('IntersectionObserver' in self) {
|
||||
const mo = new IntersectionObserver(i => {
|
||||
for (const s of i) {
|
||||
/** @type {HTMLVideoElement} */
|
||||
const v = s.target;
|
||||
if (s.isIntersecting && v.paused) {
|
||||
v.load()
|
||||
v.play()
|
||||
} else if (!v.paused) v.pause()
|
||||
}
|
||||
})
|
||||
for (let v of document.querySelectorAll('video')) {
|
||||
mo.observe(v)
|
||||
v.controls = false
|
||||
}
|
||||
}
|
10
src/extensions/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Available extensions
|
||||
lang: en-US
|
||||
---
|
||||
|
||||
# Extensions
|
||||
|
||||
Here is a list of all available extensions to download inside the app.
|
||||
|
||||
<ExtensionList/>
|
130
src/faq/README.md
Normal file
@ -0,0 +1,130 @@
|
||||
---
|
||||
title: FAQ
|
||||
lang: en-US
|
||||
sidebarDepth: 2
|
||||
---
|
||||
|
||||
# FAQ
|
||||
|
||||
You can find more frequently asked questions
|
||||
[here](https://github.com/inorichi/tachiyomi/wiki/FAQ#frequently-asked-questions).
|
||||
|
||||
## App questions
|
||||
|
||||
### What are some good extensions?
|
||||
|
||||
The most popular are MangaDex, MangaRock and MangaSee, these are large
|
||||
sites which host content from scanlators, there's also extensions like
|
||||
Genkan, Madara, FoolSlide and ComiCake which contain sources which
|
||||
host directly from the scanlators own websites.
|
||||
|
||||
[Here](https://docs.google.com/spreadsheets/d/1TyJEUg78WWH4zgnf3g6M2lkbWpBWbd40FYiPVQhW8IU/edit#gid=0)
|
||||
is a good spreadsheet showing the different extensions and their sources.
|
||||
|
||||
### How do I allow third-party installations?
|
||||
|
||||
When installing your first extension and are prompted that your phone
|
||||
isn't allowed to install unknown apps from that source, simply press
|
||||
the `Settings` button and then allow it.
|
||||
|
||||
Two example videos, left one is for newer Androids.
|
||||
|
||||
<figure class="centered">
|
||||
<video autoplay crossorigin="use-credentials" height="355"
|
||||
intrinsicsize="400x688" loading="lazy" loop="loop" muted="muted"
|
||||
playsinline="playsinline" :poster="$withBase('/assets/media/unknownapps-api28.png')"
|
||||
preload="none" width="200">
|
||||
<source :src="$withBase('/assets/media/unknownapps-api28.webm')" type="video/webm" />
|
||||
<source :src="$withBase('/assets/media/unknownapps-api28.mp4')" type="video/mp4" />
|
||||
</video>
|
||||
<video autoplay crossorigin="use-credentials" height="355"
|
||||
intrinsicsize="400x688" loading="lazy" loop="loop" muted="muted"
|
||||
playsinline="playsinline" :poster="$withBase('/assets/media/unknownapps-api25.png')"
|
||||
preload="none" width="200">
|
||||
<source :src="$withBase('/assets/media/unknownapps-api25.webm')" type="video/webm" />
|
||||
<source :src="$withBase('/assets/media/unknownapps-api25.mp4')" type="video/mp4" />
|
||||
</video>
|
||||
</figure>
|
||||
|
||||
### Why won't the extensions install?
|
||||
|
||||
In some cases your phone might have some issues downloading the
|
||||
extensions, in those cases you can try installing them yourselves
|
||||
directly from the source. [Here](https://github.com/inorichi/tachiyomi-extensions/tree/repo/apk)
|
||||
is the repository for the files.
|
||||
|
||||
To install just download the `.apk` file for the extension you want
|
||||
and then install it, like how you installed Tachiyomi.
|
||||
|
||||
### Does Tachiyomi have automatic updates?
|
||||
|
||||
The Tachiyomi app now has in-app updating for both stable and dev
|
||||
versions. If you go to `Settings > About > Version` to check for updates,
|
||||
you can force an update there or wait for the app to notify you.
|
||||
|
||||
### Why are some images not displayed?
|
||||
|
||||
Aside from network issues, it could be because the images are too
|
||||
big or the decoder doesn't support that image.
|
||||
|
||||
### How do I change the app language?
|
||||
|
||||
Tachiyomi is (as of writing) available in 35 different languages.
|
||||
|
||||
By default, the app language follows the language setting of your device.
|
||||
|
||||
You can also set your own preferred language for Tachiyomi. Simply
|
||||
from side panel go to the `Settings > General > Language`.
|
||||
|
||||
::: tip NOTE
|
||||
Only the UI has been localized, content will still be using
|
||||
the language of the source selected (i.e. English for KissManga
|
||||
source, Some sources have multiple Language too).
|
||||
:::
|
||||
|
||||
If you want to help translate Tachiyomi, read [this](https://github.com/inorichi/tachiyomi/wiki/Translation).
|
||||
|
||||
<figure>
|
||||
<a href="https://hosted.weblate.org/engage/tachiyomi/?utm_source=widget" target="_blank">
|
||||
<img src="https://hosted.weblate.org/widgets/tachiyomi/-/multi-auto.svg">
|
||||
</a>
|
||||
</figure>
|
||||
|
||||
## MangaDex
|
||||
|
||||
### No results when searching
|
||||
|
||||
::: tip
|
||||
Make sure you're on app version `0.8.4` or higher.
|
||||
:::
|
||||
|
||||
If you're not getting any results when searching MangaDex then
|
||||
you need to log in.
|
||||
|
||||
To do so, go to `Browse`/`Latest` for MangaDex under `Catalogues`, open
|
||||
any manga from the list and then press the overflow menu (3 dot menu)
|
||||
in the top-right corner and then the `Open in web view` button.
|
||||
|
||||
Now go to the hamburger menu, press the `Manga` drop-down and then
|
||||
choose either `Sign up` or `Log in` to proceed with the log in.
|
||||
|
||||
### Chapters from Mangaplus are broken
|
||||
|
||||
Install the Mangaplus extension and then migrate the manga that
|
||||
uses Mangaplus on Mangadex onto the Mangaplus source.
|
||||
|
||||
## MangaRock
|
||||
|
||||
### Slow updates to Tachiyomi
|
||||
|
||||
MangaRock's API updates less frequently than the app or the website,
|
||||
so you may need to wait a couple hours or more before it shows up
|
||||
in Tachiyomi.
|
||||
|
||||
## Madara
|
||||
|
||||
### Leviatan Scans is missing
|
||||
|
||||
Leviatan Scans has shifted from Madara to Genkan extension.
|
||||
|
||||
Install Genkan. Migrate all Leviatan scans. Update Madara.
|
68
src/guide/README.md
Normal file
@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Getting Started
|
||||
lang: en-US
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
Download the latest stable release of Tachiyomi from
|
||||
[GitHub](https://github.com/inorichi/tachiyomi/releases/latest).
|
||||
|
||||
`tachiyomi-vX.Y.Z.apk`
|
||||
|
||||
If you want to try new features before they get to the stable release,
|
||||
you can download the dev version [here](http://tachiyomi.kanade.eu/latest).
|
||||
|
||||
Open and install the `.apk` file you just downloaded from GitHub.
|
||||
|
||||
<figure class="centered">
|
||||
<img height="145" intrinsicsize="1000x500" width="300"
|
||||
:src="$withBase('/assets/media/installprompt.png')">
|
||||
</figure>
|
||||
|
||||
## Installing an extension
|
||||
|
||||
Now that Tachiyomi is installed, open the app and navigate to the
|
||||
`Extensions` tab.
|
||||
|
||||
In this guide we will use MangaDex, our most popular extension.
|
||||
Press the `Install` button and accept the installation prompt that
|
||||
will be shown.
|
||||
|
||||
If you're getting stopped by a security prompt and don't know what to do
|
||||
you can read this FAQ section: ["How do I allow third-party installations
|
||||
on my phone?"](/faq/#how-do-i-allow-third-party-installations).
|
||||
|
||||
<figure class="centered">
|
||||
<video autoplay crossorigin="use-credentials" height="534"
|
||||
intrinsicsize="500x100" loading="lazy" loop="loop" muted="muted"
|
||||
playsinline="playsinline" :poster="$withBase('/assets/media/extensioninstaller.png')"
|
||||
preload="none" width="300">
|
||||
<source :src="$withBase('/assets/media/extensioninstaller.webm')" type="video/webm" />
|
||||
<source :src="$withBase('/assets/media/extensioninstaller.mp4')" type="video/mp4" />
|
||||
</video>
|
||||
</figure>
|
||||
|
||||
## Adding manga to your library
|
||||
|
||||
Now that you've installed the MangaDex extension it should show up in
|
||||
the `Catalogues` tab. The items appearing here are called `Sources`
|
||||
(can also be called Catalogues), an extension can contains multiple sources.
|
||||
|
||||
To find and add manga, you can now either use the `Latest` button on your
|
||||
source, or you can use `Browse` and search for it.
|
||||
|
||||
Now that you've found manga that you want to add to your library, click
|
||||
on it and then press the blue bookmark button.
|
||||
|
||||
It should now appear in your `My Library` tab, ready to be read!
|
||||
|
||||
<figure class="centered">
|
||||
<video autoplay crossorigin="use-credentials" height="534"
|
||||
intrinsicsize="500x1000" loading="lazy" loop="loop" muted="muted"
|
||||
playsinline="playsinline" :poster="$withBase('/assets/media/addtolibrary.png')"
|
||||
preload="none" width="300">
|
||||
<source :src="$withBase('/assets/media/addtolibrary.webm')" type="video/webm" />
|
||||
<source :src="$withBase('/assets/media/addtolibrary.mp4')" type="video/mp4" />
|
||||
</video>
|
||||
</figure>
|
140
src/index.html
@ -1,140 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Tachiyomi</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport" />
|
||||
<meta content="" name="description" />
|
||||
<link href="favicon.ico" rel="icon" />
|
||||
<link href="assets/css/bootstrap-4.3.1.min.css" rel="stylesheet" />
|
||||
<link href="assets/css/bootstrap-toc-1.0.1.min.css" rel="stylesheet" />
|
||||
<link href="assets/css/style.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body data-spy="scroll" data-target="#toc">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<nav class="sticky-top" data-toggle="toc" id="toc"><!--toc--></nav>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="text-center mb-4"> <img src="assets/media/tachiyomi.png" />
|
||||
<h1 id="getting-started-with-tachiyomi">Getting started with Tachiyomi</h1>
|
||||
<p><a href="https://github.com/inorichi/tachiyomi" target="_blank">Tachiyomi</a> is a free and open source manga reader for Android.</p>
|
||||
</div>
|
||||
<h2 id="installation">Installation</h2>
|
||||
<p>Download the latest stable release of Tachiyomi from <a href="https://github.com/inorichi/tachiyomi/releases/latest">GitHub.</a></p>
|
||||
<p><code>tachiyomi-vX.Y.Z.apk</code></p>
|
||||
<p>If you want to try new features before they get to the stable release, you can download the dev version <a href="http://tachiyomi.kanade.eu/latest">here</a>.</p>
|
||||
<p>Open and install the <code>.apk</code> file you just downloaded from GitHub.</p>
|
||||
<div class="d-flex justify-content-center"> <img height="145" intrinsicsize="1000x500" src="assets/media/installprompt.png" width="300" /></div>
|
||||
<h3 id="installing-an-extension">Installing an extension</h3>
|
||||
<p>Now that Tachiyomi is installed, open the app and navigate to the <code>Extensions</code> tab.</p>
|
||||
<p>In this guide we will use MangaDex, our most popular extension. Press the <code>Install</code> button and accept the installation prompt that will be shown.</p>
|
||||
<p>If you're getting stopped by a security prompt and don't know what to do you can read this FAQ section: <a href="#how-do-i-allow-third-party-installations"><span class="mt-5 text-muted">("How do I allow third-party installations on my phone?")</span></a></p>
|
||||
<figure>
|
||||
<video controls="controls" crossorigin="use-credentials" height="534" intrinsicsize="500x100" loading="lazy" loop="loop" muted="muted" playsinline="playsinline" poster="assets/media/extensioninstaller.png" preload="none" width="300">
|
||||
<source src="assets/media/extensioninstaller.webm" type="video/webm" />
|
||||
<source src="assets/media/extensioninstaller.mp4" type="video/mp4" />
|
||||
</video>
|
||||
</figure>
|
||||
<h3 id="adding-manga-to-your-library">Adding manga to your library</h3>
|
||||
<p>Now that you've installed the MangaDex extension it should show up in the <code>Catalogues</code> tab. The items appearing here are called <code>Sources</code> <span class="mt-5 text-muted">(can also be called Catalogues)</span>, an extension can contain multiple sources.</p>
|
||||
<p>To find and add manga, you can now either use the <code>Latest</code> button on your source, or you can use <code>Browse</code> and search for it.</p>
|
||||
<p>Now that you've found manga that you want to add to your library, click on it and then press the blue bookmark button.</p>
|
||||
<p>It should now appear in your <code>My library</code> tab, ready to be read!</p>
|
||||
<figure>
|
||||
<video controls="controls" crossorigin="use-credentials" height="534" intrinsicsize="500x1000" loading="lazy" loop="loop" muted="muted" playsinline="playsinline" poster="assets/media/addtolibrary.png" preload="none" width="300">
|
||||
<source src="assets/media/addtolibrary.webm" type="video/webm" />
|
||||
<source src="assets/media/addtolibrary.mp4" type="video/mp4" />
|
||||
</video>
|
||||
</figure>
|
||||
<div class="mb-4">
|
||||
<h2 id="frequently-asked-questions">Frequently Asked Questions</h2>
|
||||
<div class="mb-5 accordion">
|
||||
<details>
|
||||
<summary><h3 id="what-are-some-good-extensions">What are some good extensions?</h3></summary>
|
||||
<p>The most popular are MangaDex, MangaRock and MangaSee, these are large sites which host content from scanlators, there's also extensions like Genkan, Madara, FoolSlide and ComiCake which contain sources which host directly from the scanlators own websites.</p>
|
||||
<p><a href="https://docs.google.com/spreadsheets/d/1TyJEUg78WWH4zgnf3g6M2lkbWpBWbd40FYiPVQhW8IU/edit#gid=0" target="_blank">Here</a>'s a good spreadsheet showing the different extensions and their sources.</p>
|
||||
</details>
|
||||
<details>
|
||||
<summary><h3 id="how-do-i-allow-third-party-installations">How do I allow third-party installations?</h3></summary>
|
||||
<p>When installing your first extension and are promted that your phone isn't allowed to install unknown apps from that source, simply press the <code>Settings</code> button and then allow it.</p>
|
||||
<p>Two example videos, left one is for newer Androids.</p>
|
||||
<figure>
|
||||
<video controls="controls" crossorigin="use-credentials" height="355" intrinsicsize="400x688" loading="lazy" loop="loop" muted="muted" playsinline="playsinline" poster="assets/media/unknownapps-api28.png" preload="none" width="200">
|
||||
<source src="assets/media/unknownapps-api28.webm" type="video/webm" />
|
||||
<source src="assets/media/unknownapps-api28.mp4" type="video/mp4" />
|
||||
</video>
|
||||
<video controls="controls" crossorigin="use-credentials" height="355" intrinsicsize="400x688" loading="lazy" loop="loop" muted="muted" playsinline="playsinline" poster="assets/media/unknownapps-api25.png" preload="none" width="200">
|
||||
<source src="assets/media/unknownapps-api25.webm" type="video/webm" />
|
||||
<source src="assets/media/unknownapps-api25.mp4" type="video/mp4" />
|
||||
</video>
|
||||
</figure>
|
||||
</details>
|
||||
<details>
|
||||
<summary><h3 id="extensions-not-installing">Why won't the extensions install?</h3></summary>
|
||||
<p>In some cases your phone might have some issues downloading the extensions, in those cases you can try installing them yourselves directly from the source. <a href="https://github.com/inorichi/tachiyomi-extensions/tree/repo/apk" target="_blank">Here</a>'s the repository for the files.</p>
|
||||
<p>To install just download the <code>.apk</code> file for the extension you want and then install it, like how you installed Tachiyomi.</p>
|
||||
</details>
|
||||
<details>
|
||||
<summary><h3 id="tachiyomi-automatic-updates">Does Tachiyomi have automatic updates?</h3></summary>
|
||||
<p>The Tachiyomi app now has in-app updating for both stable and dev versions. If you go to <code>Settings > About > Version</code> to check for updates, you can force an update there or wait for the app to notify you.</p>
|
||||
</details>
|
||||
<details>
|
||||
<summary><h3 id="image-display-issues">Why are some images not displayed?</h3></summary>
|
||||
<p>Aside from network issues, it could be because the images are too big or the decoder doesn't support that image.</p>
|
||||
</details>
|
||||
<details>
|
||||
<summary><h3 id="tachiyomi-menu-language">How do I change the app language?</h3></summary>
|
||||
<p>Tachiyomi is (as of writing) available in 35 different languages.</p>
|
||||
<p>By default, the app language follows the language setting of your device.</p>
|
||||
<p>You can also set your own preferred language for Tachiyomi. Simply from side panel go to the <code>Settings > General > Language</code>.</p>
|
||||
<p><code>Note:</code> Only the UI has been localized, content will still be using the language of the source selected (i.e. English for KissManga source, Some sources have multiple Language too).</p>
|
||||
<p class="mt-5 text-muted">If you want to help translate Tachiyomi, read <a href="https://github.com/inorichi/tachiyomi/wiki/Translation" target="_blank">this</a>.</p>
|
||||
<p><a href="https://hosted.weblate.org/engage/tachiyomi/?utm_source=widget" target="_blank"><img src="https://hosted.weblate.org/widgets/tachiyomi/-/multi-auto.svg" /></a></p>
|
||||
</details>
|
||||
<br />
|
||||
<details>
|
||||
<summary><h3 id="mangadex-no-results"><span class="mt-5 text-muted">Mangadex:</span> No results when searching.</h3></summary>
|
||||
<p><b>Note:</b> Make sure you're on app version <code>0.8.4</code> or higher.</p>
|
||||
<p>If you're not getting any results when searching MangaDex then you need to log in.</p>
|
||||
<p>To do so, go to <code>Browse</code>/<code>Latest</code> for MangaDex under <code>Catalogues</code>, open any manga from the list and then press the overflow menu (3 dot menu) in the top-right corner and then the <code>Open in web view</code> button.</p>
|
||||
<p>Now go to the hamburger menu, press the <code>Manga</code> drop-down and then choose either <code>Sign up</code> or <code>Log in</code> to proceed with the log in.</p>
|
||||
</details>
|
||||
<details>
|
||||
<summary><h3 id="mangadex-chapters-from-mangaplus-broken"><span class="mt-5 text-muted">Mangadex:</span> Chapters from Mangaplus are broken.</h3></summary>
|
||||
<p>Install the Mangaplus extension and then migrate the manga that uses Mangaplus on Mangadex onto the Mangaplus source.</p>
|
||||
</details>
|
||||
<details>
|
||||
<summary><h3 id="mangarock-slow-updates"><span class="mt-5 text-muted">MangaRock:</span> Slow updates to Tachiyomi.</h3></summary>
|
||||
<p>MangaRock's API updates less frequently than the app or the website, so you may need to wait a couple hours or more before it shows up in Tachiyomi.</p>
|
||||
</details>
|
||||
<details>
|
||||
<summary><h3 id="madara-missing-leviatan-scans"><span class="mt-5 text-muted">Madara:</span> Leviatan Scans is missing.</h3></summary>
|
||||
<p>Leviatan Scans has shifted from Madara to Genkan extension.</p>
|
||||
<p>Install Genkan. Migrate all Leviatan scans. Update Madara.</p>
|
||||
</details>
|
||||
<p class="mt-5 text-muted">More frequently asked questions can be found <a href="https://github.com/inorichi/tachiyomi/wiki/FAQ#frequently-asked-questions" target="_blank">here</a>.</p>
|
||||
</div>
|
||||
<h2 id="related-links">Related Links</h2>
|
||||
<h3 id="github"><a href="https://github.com/inorichi/tachiyomi/">Github</a></h3>
|
||||
<p>At a high level, GitHub is a website and cloud-based service that helps developers store and manage their code, as well as track and control changes to their code. It's here we store our FOSS (Free and open source software) code for Tachiyomi.</p>
|
||||
<h3 id="wiki"><a href="https://github.com/inorichi/tachiyomi/wiki">GitHub Wiki</a></h3>
|
||||
<p>Every GitHub repository comes equipped with a section for hosting documentation, called a wiki. Here you can find out more about features and how to fix a problem you might have.</p>
|
||||
<h3 id="discord"><a href="https://discord.gg/tachiyomi">Discord</a></h3>
|
||||
<p>Discord is a proprietary freeware VoIP application and digital distribution platform that specializes in text, image, video and audio communication between users in a chat channel. Join our Discord server for chatting or if you want help.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="page-footer font-small blue">
|
||||
<div class="footer-copyright text-center py-3"> <a href="https://github.com/tachiyomiorg/website">Website Repository</a></div>
|
||||
</footer>
|
||||
<!-- Scripts to be removed when possible -->
|
||||
<script src="assets/js/jquery-3.4.1.slim.min.js" ></script>
|
||||
<script src="assets/js/bootstrap-4.3.1.min.js"></script>
|
||||
<script src="assets/js/bootstrap-toc-1.0.1.min.js"></script>
|
||||
<!-- Convenience script -->
|
||||
<script src="assets/js/script.js"></script>
|
||||
</body>
|
||||
</html>
|