This commit is contained in:
2025-06-16 01:22:42 +02:00
parent 1fb08daf8b
commit cb08f26eed
21 changed files with 209 additions and 39 deletions

View File

@@ -10,7 +10,7 @@
<ul>
<!-- <li><a title="LinkedIn" href="{{ site.linkedin }}" target="_blank">LinkedIn</a></li>
<li><a title="Twitter" href="{{ site.twitter }}" target="_blank">Twitter</a></li> -->
<li><a title="Github" href="{{ site.github }}" target="_blank">Contribute on Github</a></li>
<li><a title="Github" href="{{ site.github }}" target="_blank">Contribute on GitHub</a></li>
<li><a title="Theme" href="https://github.com/arnolds/pineapple" target="_blank">Pineapple theme by arnolds</a></li>
</ul>
</section>

View File

@@ -8,4 +8,4 @@
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="theme-color" content="#ffffff">
<link rel="stylesheet" href="{{ "/assets/css/style.css" | prepend: site.baseurl }}">
<link rel="stylesheet" href="{{ '/assets/css/style.css' | prepend: site.baseurl }}">

View File

@@ -1,7 +1,7 @@
<header class="header">
<div class="container">
<h1 class="logo">
<a title="{{ site.name }}" href="{{ site.baseurl | append: "/" }}">{{ site.name }}</a>
<a title="{{ site.name }}" href="{{ site.baseurl | append: '/' }}">{{ site.name }}</a>
</h1>
</div>
</header>

1
_includes/tome-id Normal file
View File

@@ -0,0 +1 @@
{{ include.tome.id | split: '/' | slice: 2 | first }}

8
_includes/tome.json Normal file
View File

@@ -0,0 +1,8 @@
{% assign tome = include.tome %}
{% capture tome-id %}{% include tome-id tome=tome %}{% endcapture %}
{
"slug": {{ tome-id | jsonify }},
"folder": {{ tome.folder | jsonify }},
"file": {{ tome.file | jsonify }},
"chapters": {{ tome.chapters | jsonify }}
}

View File

@@ -1,21 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<html lang="{{ page.id | split: '/' | slice: 1 }}">
<head>
<title>{{ page.title }} | {{ site.name }}</title>
<meta name="author" content="{{ site.name }}">
<meta name="description" content="{{ page.content | strip_html | strip_newlines }}">
<meta name="keywords" content="{{ page.keywords }}">
{% include head.html %}
<!-- {% capture cover %}{{ site.baseurl }}/assets/tomes/{{ page.slug }}/{{ page.cover }}{% endcapture %} -->
{% capture cover %}{{ site.extra.store }}/tomes/{{ page.slug }}/{{ page.cover }}{% endcapture %}
<!-- {% capture embed %}{ "page": {{ page.data | jsonify }}, "extra": {{ site.extra | jsonify }} }{% endcapture %} -->
{% capture id %}{% include tome-id tome=page %}{% endcapture %}
{% capture cover %}{{ site.extra.store }}/tomes/{{ id }}/{{ page.cover }}{% endcapture %}
{% capture tome_json %}{% include tome.json tome=page %}{% endcapture %}
{% capture embed %}{
"page": {
"slug": {{ page.slug | jsonify }},
"file": {{ page.file | jsonify }}
},
"page": {{ tome_json }},
"extra": {{ site.extra | jsonify }}
}{% endcapture %}
<script type="application/json" id="tome">{{ tome_json }}</script>
</head>
<body>
{% include header.html %}
@@ -25,17 +23,29 @@
<article>
<span class="h2">Title</span>
<h1>{{ page.title }}</h1>
<p>{{ page.subtitle }}</p>
<span class="h2">Cover</span>
<!-- <img src="{{ page.cover | prepend: site.baseurl }}" alt="Cover" style="max-height: 40vh; width: auto;" /> -->
<img src="{{ cover }}" alt="Cover" style="max-height: 40vh; width: auto;" />
<span class="h2">About</span>
{{ page.content }}
<span class="h2">Authors</span>
<p>{{ page.authors }}</p>
<span class="h2">Year</span>
<p>{{ page.year }}</p>
{% if page.isbn %}
<span class="h2">ISBN</span>
<p>{{ page.isbn }}</p>
{% endif %}
{% if page.webpage %}
<span class="h2">Webpage</span>
<a href="{{ page.webpage }}" target="_blank">{{ page.webpage }}</a>
{% endif %}
</article>
<aside>
<ul>
@@ -45,7 +55,6 @@
allow="fullscreen" allowfullscreen="allowfullscreen"></iframe>
</li>
<li>
<!-- <img src="{{ page.cover | prepend: site.baseurl }}" alt="Cover" /> -->
<img src="{{ cover }}" alt="Cover" />
</li>
</ul>
@@ -54,15 +63,24 @@
</section>
</main>
{% include footer.html %}
<script src="{{ "/assets/scripts/vendor/jquery-1.12.4.min.js" | prepend: site.baseurl }}"></script>
<script src="{{ "/assets/scripts/vendor/scrollreveal.min.js" | prepend: site.baseurl }}"></script>
<script src="{{ "/assets/scripts/vendor/sticky-kit.min.js" | prepend: site.baseurl }}"></script>
<script src="{{ "/assets/scripts/project.js" | prepend: site.baseurl }}"></script>
<script src="{{ '/assets/scripts/vendor/jquery-1.12.4.min.js' | prepend: site.baseurl }}"></script>
<script src="{{ '/assets/scripts/vendor/scrollreveal.min.js' | prepend: site.baseurl }}"></script>
<script src="{{ '/assets/scripts/vendor/sticky-kit.min.js' | prepend: site.baseurl }}"></script>
<script src="{{ '/assets/scripts/project.js' | prepend: site.baseurl }}"></script>
<script>
document.querySelector('article').innerHTML += '<span class="h2">Download</span><button>{{ page.file }}</button>';
{% if page.file %}
document.querySelector('article').innerHTML += '<span class="h2">Download tome</span><ul><li><button>{{ page.file }}</button></li></ul>';
document.querySelector('article button').addEventListener('click', function(){
location.href = '{{ site.extra.store }}/tomes/{{ page.slug }}/{{ page.file }}';
location.href = '{{ site.extra.store }}/tomes/{{ id }}/{% if page.folder %}{{ page.folder }}/{% endif %}{{ page.file }}';
});
{% else if page.chapters %}
document.querySelector('article').innerHTML += '<span class="h2">Download chapters</span><ul>{% for chapter in page.chapters %}<li><button>{{ chapter }}</button></li>{% endfor %}</ul>';
document.querySelectorAll('article button').forEach(function(button){
button.addEventListener('click', function(){
location.href = '{{ site.extra.store }}/tomes/{{ id }}/{{ page.folder }}/' + button.textContent;
});
});
{% endif %}
</script>
</body>
</html>

View File

@@ -0,0 +1,9 @@
---
date: 2019-06-11
year: 2019
title: "I Married My Best Friend to Shut My Parents Up"
authors: "Kodama Naoko"
cover: "-251518170_001000.png"
folder: "en-sse"
chapters: ["0_Chap_1.cbz", "1_Chap_2.cbz", "2_Chap_3.cbz", "3_Chap_3_5.cbz"]
---

View File

@@ -0,0 +1,7 @@
---
title: "Koro Koro Soushi 2 / The Book of Killing and Killing - Thirteen Horrible Sufferings in Great Edo"
authors: "Shintaro Kago"
cover: "1618598363_013001.jpg"
folder: "en"
chapters: [ "12_Vol_2_Chap_13_I.cbz", "13_Vol_2_Chap_14_C.cbz", "14_Vol_2_Chap_15_S.cbz", "15_Vol_2_Chap_16_T.cbz", "16_Vol_2_Chap_17_R.cbz", "17_Vol_2_Chap_18_D.cbz", "18_Vol_2_Chap_19_T.cbz", "19_Vol_2_Chap_20_A.cbz", "20_Vol_2_Chap_21_O.cbz", "21_Vol_2_Chap_22_I.cbz", "22_Vol_2_Chap_23_K.cbz", "23_Vol_2_Chap_24_H.cbz", "24_Vol_2_Chap_25_T.cbz" ]
---

View File

@@ -0,0 +1,7 @@
---
title: "Koro Koro Soushi / Notebook of Murder and Killing"
authors: "Shintaro Kago"
cover: "1618598363_001000.jpg"
folder: "en"
chapters: [ "0_Vol_1_Chap_1_Fam.cbz", "1_Vol_1_Chap_2_Med.cbz", "2_Vol_1_Chap_3_Pun.cbz", "3_Vol_1_Chap_4_Hel.cbz", "4_Vol_1_Chap_5_Reb.cbz", "5_Vol_1_Chap_6_Nin.cbz", "6_Vol_1_Chap_7_Con.cbz", "7_Vol_1_Chap_8_The.cbz", "9_Vol_1_Chap_10_Ag.cbz", "8_Vol_1_Chap_9_Ass.cbz", "10_Vol_1_Chap_11_C.cbz", "11_Vol_1_Chap_12_T.cbz" ]
---

13
_tomes/en/toradora/1.md Normal file
View File

@@ -0,0 +1,13 @@
---
draft: true
title: "Toradora! Vol. 1"
folder: "en_sse"
isbn: "978-1-626927-95-7"
file: "Toradora! v01 [Seven Seas] [danke-Empire].epub"
cover: "cover00187.jpeg"
date: 2018-05-08
year: 2018
webpage: "https://sevenseasentertainment.com/books/toradora-light-novel-vol-1/"
---
EYE OF THE TAIGA! Takasu Ryuuji might look like a thug, but he's actually a nice guy. Making friends when you've got an unintentionally scary face is tough--and don't even get him started on girlfriends. But with his secret crush in his class, the start of his second year of high school is off to a good start...until he crosses paths with Aisaka Taiga. Beautiful, frightening, and not quite five feet tall, the girl known as the Palmtop Tiger is the one person in school even scarier than Ryuuji himself--and he's just made the mistake of making her very, very angry. The original inspiration for the hit anime and best-selling manga!

View File

@@ -0,0 +1,8 @@
---
date: 2025-06-09
year: 2002
title: "Welcome to the N.H.K."
authors: "Tatsuhiko Takimoto"
cover: "cover-epl.jpg"
file: "annas-arch-181377ebe0b7.epub"
---

View File

@@ -1,6 +1,7 @@
---
date: 2025-06-11
year: 2022
isbn: "9788804782971"
title: "Dieci cose che ho imparato"
authors: "Piero Angela"
cover: "978880478297HIG-313x480.webp"

View File

@@ -0,0 +1,13 @@
---
date: 2025-03-18
year: 2025
isbn: "9788817190459, 8817190454"
title: "Il lato oscuro dei social network"
subtitle: "Come la rete ci controlla e manipola"
authors: "Serena Mazzini"
cover: "978881719045GRA.webp"
file: "annas-arch-0fa4973ebc2b.epub"
webpage: "https://www.rizzolilibri.it/libri/il-lato-oscuro-dei-social-network/"
---
«Allorigine di Internet cera unidea, o forse unillusione: creare un ambiente sempre più ampio in cui gli utenti potessero comunicare tra loro, svolgendo un ruolo attivo nella produzione e nel consumo di contenuti […] ogni piccolo progresso aveva lo scopo di fornire uno spazio di discussione sempre più ampio e stratificato.» Con la nascita dei social network, che hanno trasformato la visibilità in una competizione continua, il confine tra pubblico e privato si è assottigliato, e siamo finiti in un sistema che premia il contenuto più estremo, amplifica le emozioni più forti e ci spinge a condividere sempre di più, sempre più in fretta. Dietro quegli schermi luminosi che catturano la nostra attenzione si nasconde un fondale oscuro, ansioso di inghiottirci. Non è informazione, ma manipolazione. Non è libertà, ma seduzione e assoggettamento. Questo libro è la confessione di una professionista della comunicazione digitale che ha visto da vicino come funziona il gioco, e vuole svelarne i meccanismi nascosti. È anche un viaggio nella cruda realtà dei social network per ripensare il nostro rapporto con essi, per immaginare insieme un futuro in cui la tecnologia sia al servizio delle persone e non del marketing o di interessi inconfessabili. Casi esemplari mostrano con chiarezza la distorsione di questo sistema: dalla sovraesposizione mediatica dei bambini Ferragnez a Ruby Franke, star dei family vlogging condannata per maltrattamenti sui suoi bambini, fino a MrBeast, un mercante di emozioni diventato miliardario grazie a un intrattenimento costruito sulla beneficenza. E poi ci sono genitori che trasformano i figli in star per trarne popolarità e profitto, i malati che tramutano la sofferenza in trend, i pedopornografi che sfruttano immagini nate per tuttaltri scopi, e i tecnocrati capaci di influenzare le decisioni politiche globali con il loro potere digitale. Se non ci opponiamo, non siamo solo vittime, ma complici. È ora di costruire, insieme, la lotta per la liberazione dai social.

View File

@@ -1,6 +1,7 @@
---
date: 2025-06-15
year: 1999
isbn: "9788850318568"
title: "Italian crackdown"
authors: "Carlo Gubitosa"
cover: "italian-crackdown-cover.jpg"

View File

@@ -0,0 +1,13 @@
---
title: "Parla come manga"
subtitle: "Dizionario pop di anime e cultura giapponese"
year: 2023
date: 2023-10-04
isbn: "9788809935150"
authors: "Sayaka Conti"
webpage: "https://giunti.it/products/parla-come-manga-conti-sayaka-9788809935150"
cover: "9e6b6df6421944ca8baf6fb6ff252686.jpg"
file: "annas-arch-c68a091257bb.pdf"
---
Sigle che non escono più dalla testa, storie e avventure formative, divertenti, tragiche, surreali, semplicemente magiche, con i loro protagonisti amatissimi e indimenticabili: luniverso anime e manga parla oggi più che mai a tutti, ha il potere di riattivare ricordi sopiti e inondare di una piacevole nostalgia i più grandi, ha conquistato i giovani e sa come tenerli incollati allo schermo e alle pagine, per non parlare dei nerd di qualsiasi ordine e grado, sempre a caccia di scoop e aggiornamenti. Nessuno è immune perché loro sì che sanno come farci sognare. Sayaka ce li racconta ancora una volta, arricchendo le trame di aneddoti, curiosità, retroscena e svelandoci il significato nascosto di nomi, espressioni, titoli ed esclamazioni in lingua originale, molti dei quali si possono anche ascoltare nella sua irresistibile pronuncia grazie ai QR-Code allinterno del libro. Impareremo anche a rintracciare usi e costumi del Giappone nei nostri anime e manga preferiti, a comprendere quelle scene che ci sono così familiari e allo stesso tempo vagamente incomprensibili, grazie alla guida esperta di Sayaka che ci farà capire quanto quellopera può dirci della cultura giapponese. Una formidabile alchimia creativa è racchiusa in queste pagine, tra emozioni uniche e ricordi indelebili che hanno già vinto la sfida del tempo.

View File

@@ -0,0 +1,22 @@
---
year: 2022
date: 2022-04-07
title: "Seneca tra gli zombie"
subtitle: "Guida filosofica di sopravvivenza al caos"
authors: "Rick Dufer"
cover: "9788807091650_quarta.jpg.800x800_q75.jpg"
file: "Seneca tra gli zombie (Rick Dufer) (Z-Library).epub"
isbn: "9788807091650"
webpage: "https://www.feltrinellieditore.it/opera/seneca-tra-gli-zombie/"
---
Il pericolo di perdersi nel rumore è altissimo e la capacità di orientarsi nel caos, così come nel vuoto di vite “con il pilota automatico”, è sempre più labile. Come zombie privi di coscienza, ci lasciamo dirigere da forze che non capiamo né padroneggiamo. E così finiamo per perdere il controllo e diventiamo qualcosa che non ci piace.
Eppure, ce la possiamo fare a riprendere il bandolo delle nostre esistenze.
Rick DuFer ci conduce lungo un percorso che, senza lasciare spazio a scappatoie e scusanti, ci porterà a recuperare il gusto della responsabilità, dellesercizio del pensiero e, soprattutto, del dubbio.
Di fatto, la filosofia è uno strumento eccellente, che ci viene in aiuto nel contrastare lo tsunami di informazione, fraintendimenti, rabbia, depistaggi e illusioni di cui siamo investiti. Epitteto, Seneca e Marco Aurelio, ma anche Cartesio, Daniel Dennett, Spinoza e molti altri, sono personaggi di una vicenda filosofica che, fin dallantichità, cerca di dare allessere umano i mezzi, più che le risposte, per non deragliare nellesistenza. E oggi Rick DuFer, spaziando nei vari ambiti di cui è fatta la nostra quotidianità, confeziona una cassetta degli attrezzi per il lettore che voglia non solo adattarsi allo spirito del suo tempo, ma anche scegliere liberamente cosa diventare, in un mondo nel quale diventiamo sempre più simili a tutti gli altri.
Come si sopravvive allincertezza, alla confusione, alla dispersione dellattenzione? Come si vince linerzia, il tran-tran mediatico che si contende i minuti della nostra vita? Come si combatte lepidemia di infallibilismo dilagante? Come si smette, insomma, di vivere da zombie?
Dal popolare e impetuoso filosofo di Daily Cogito, un libro sferzante per ritrovare se stessi, contro lomologazione, attraverso la saggezza, perché:
“Non è tutto noia, ciò che pensa”.

View File

@@ -0,0 +1,12 @@
---
date: 2025-06-10
year: 2011
isbn: "9788861238770"
title: "Welcome to the N.H.K."
authors: "Tatsuhiko Takimoto"
cover: "cover-jpop.jpg"
file: "annas-arch-5803f97cf06f.epub"
webpage: "https://j-pop.it/it/catalog/product/view/id/31393/s/welcome-to-the-n-h-k/category/785/"
---
Pubblicato in Giappone nel 2002 e tradotto in 15 lingue, finalmente in Italia il romanzo che ha dato origine al manga e alla famosa serie tv. Sato è uno hikikomori: da quattro anni non esce di casa, se non una volta alla settimana per fare la spesa. Vive tra televisione, videogame, manga e solitudine. Un giorno bussa alla sua porta una ragazza di nome Misaki, che sostiene di poterlo aiutare a guarire dalla sua condizione. Sato accetta e tra i due nasce un'amicizia che potrebbe salvare la vita a entrambi. Un legame che si sviluppa analizzando, con ironia e sincerità, la vita dei nuovi reclusi sociali. Giapponesi, come di tutto il mondo.

View File

@@ -7,6 +7,7 @@
<meta name="author" content="{{ site.name }}">
<meta name="description" content="{{ site.description }}">
<meta name="keywords" content="{{ site.keywords }}">
<script type="application/json" id="tomes" src="{{ '/tomes.json' | prepend: site.baseurl }}"></script>
{% include head.html %}
</head>
<body>
@@ -23,19 +24,18 @@
<h2>Available tomes</h2>
<ul class="projects-list">
{% assign doclist = site.tomes | sort: 'date' | reverse %}
{% for item in doclist %}
<li>
<a href="{{ item.url | prepend: site.baseurl }}">
<div class="img-wrapper">
<!-- <img src="{{ item.cover | prepend: site.baseurl }}" alt="{{ item.title }}" /> -->
<!-- <img src="{{ item.url | prepend: site.baseurl }}/../{{ item.cover }}" alt="{{ item.title }}" /> -->
<!-- <img src="{{ site.baseurl }}/assets/tomes/{{ item.slug }}/{{ item.cover }}" alt="{{ item.title }}" /> -->
<img src="{{ site.extra.store }}/tomes/{{ item.slug }}/{{ item.cover }}" alt="{{ item.title }}" />
</div>
<span class="h2">{{ item.type }}</span>
<h3>{{ item.title }}</h3>
</a>
</li>
{% for tome in doclist %}
{% if tome.draft != true %}
<li>
<a href="{{ tome.url | prepend: site.baseurl }}">
<div class="img-wrapper">
<img src="{{ site.extra.store }}/tomes/{% include tome-id tome=tome %}/{{ tome.cover }}" alt="{{ tome.title }}" />
</div>
<span class="h2">{{ tome.type }}</span>
<h3>{{ tome.title }}</h3>
</a>
</li>
{% endif %}
{% endfor %}
</ul>
</div>

View File

@@ -1,5 +1,5 @@
{
"name": "",
"name": "TomoStash",
"icons": [
{
"src": "\/android-chrome-192x192.png",

View File

@@ -3,14 +3,16 @@
<head>
<style>
html, body, iframe { width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden; border: none; background-color: white; }
p { margin: 1em; }
</style>
</head>
<body>
<noscript>This application requires JavaScript.</noscript>
<noscript><p>This application requires JavaScript.</p></noscript>
<script>
(function(data){
document.body.innerHTML = '';
var page = data.page, extra = data.extra;
var ext = page.file.split('.').slice(-1)[0];
var readers = {
villain: extra.store + "/Villain-gh-pages/#/reader?src=",
// villain: "../Villain-gh-pages/#/reader?src=",
@@ -19,13 +21,40 @@ html, body, iframe { width: 100%; height: 100%; margin: 0; padding: 0; overflow:
// foliate: "../foliate-js-main/reader.html?url=",
// foliate: "https://johnfactotum.github.io/foliate-js/reader.html?url=",
};
var runtime = {
cbz: readers.villain,
}[ext] || readers.foliate;
document.body.innerHTML = '<iframe src="' + runtime + extra.store + '/tomes/' + page.slug + '/' + page.file + '" allow="fullscreen" allowfullscreen="allowfullscreen"></iframe>';
if (page.chapters) {
document.body.innerHTML +=
'<style>iframe{ height: calc(100% - 32px); }</style>' +
'<div style="height: 32px; background-color: darkgray; padding-left: 4px; padding-right: 4px;"><label><select style="margin: 4px;"></select></label></div>';
}
document.body.innerHTML += '<iframe allow="fullscreen" allowfullscreen="allowfullscreen"></iframe>';
// if (runtime === readers.foliate) {
// document.body.innerHTML += '<button style="position: absolute; top: 8px; right: 48px; font-size: large;" onclick="document.body.requestFullscreen();">↔</button>';
// }
if (page.file) {
displayVolume(page.file);
} else if (page.chapters) {
var select = document.body.querySelector('select');
page.chapters.forEach(function(chapter){
select.appendChild(Object.assign(document.createElement('option'), { textContent: chapter }));
});
select.addEventListener('change', function(){
displayVolume(select.value);
});
displayVolume(select.value);
} else {
return document.body.innerHTML += '<p>No online reading available for this tome, please check downloads.</p>';
}
function displayVolume(file) {
var ext = file.split('.').slice(-1)[0];
var runtime = {
cbz: readers.villain,
}[ext] || readers.foliate;
document.querySelector('iframe').src = runtime + extra.store + '/tomes/' + page.slug + '/' + (page.folder ? page.folder + '/' : '') + file;
}
})(JSON.parse(decodeURIComponent(location.hash.slice(1))));
</script>
</body>

8
tomes.json Normal file
View File

@@ -0,0 +1,8 @@
---
---
[
{%- for tome in site.tomes %}
{% include tome.json tome=page %}
{%- unless forloop.last %},{% endunless -%}
{% endfor %}
]