mirror of
https://github.com/torappinfo/uweb.git
synced 2024-08-14 23:54:59 +00:00
rebuilding site Thu Sep 30 02:38:49 PM CST 2021
This commit is contained in:
parent
49b7c8bef7
commit
47b6d5547e
6 changed files with 137 additions and 60 deletions
|
@ -361,7 +361,7 @@ pdf:uweb:echo file:///sdcard/uweb/app/pdf.js/web/viewer.html?file=%u djvu:uweb:e
|
||||||
<description>点击安装plyr视频播放器
|
<description>点击安装plyr视频播放器
|
||||||
点击安装dplayer视频播放器
|
点击安装dplayer视频播放器
|
||||||
点击安装pdf阅读器
|
点击安装pdf阅读器
|
||||||
点击安装epub阅读器
|
点击安装epub阅读器(作者:llili)
|
||||||
点击安装djvu阅读器
|
点击安装djvu阅读器
|
||||||
相应的菜单安装可见浏览器特色服务
|
相应的菜单安装可见浏览器特色服务
|
||||||
超微配置目录下的子目录名如果以&quot;app&quot;开始(譬如&quot;/sdcard/uweb/appPDF&quot;),则这些&quot;app&quot;开头目录树下放置的html5应用将可获得功能增强。
|
超微配置目录下的子目录名如果以&quot;app&quot;开始(譬如&quot;/sdcard/uweb/appPDF&quot;),则这些&quot;app&quot;开头目录树下放置的html5应用将可获得功能增强。
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
<p><a target="_self" href="i:0h/sdcard/uweb/app/plyr.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/plyr.cfg">点击安装plyr视频播放器</a><br>
|
<p><a target="_self" href="i:0h/sdcard/uweb/app/plyr.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/plyr.cfg">点击安装plyr视频播放器</a><br>
|
||||||
<a target="_self" href="i:0h/sdcard/uweb/app/dplayer.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/dplayer.html">点击安装dplayer视频播放器</a><br>
|
<a target="_self" href="i:0h/sdcard/uweb/app/dplayer.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/dplayer.html">点击安装dplayer视频播放器</a><br>
|
||||||
<a target="_self" href="i:0h/sdcard/uweb/app/pdfviewer.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/pdfviewer.html">点击安装pdf阅读器</a><br>
|
<a target="_self" href="i:0h/sdcard/uweb/app/pdfviewer.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/pdfviewer.html">点击安装pdf阅读器</a><br>
|
||||||
<a target="_self" href="i:0h/sdcard/uweb/app/epub.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/epub.html">点击安装epub阅读器</a><br>
|
<a target="_self" href="i:0h/sdcard/uweb/app/epub.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/epub.html">点击安装epub阅读器(作者:llili)</a><br>
|
||||||
<a target="_self" href="i:0h/sdcard/uweb/app/djvu.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/djvu.html">点击安装djvu阅读器</a><br>
|
<a target="_self" href="i:0h/sdcard/uweb/app/djvu.html:https://cdn.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/djvu.html">点击安装djvu阅读器</a><br>
|
||||||
相应的菜单安装可见<a href="../searchurl/urls.html">浏览器特色服务</a></p>
|
相应的菜单安装可见<a href="../searchurl/urls.html">浏览器特色服务</a></p>
|
||||||
<p>超微配置目录下的子目录名如果以"app"开始(譬如"/sdcard/uweb/appPDF"),则这些"app"开头目录树下放置的html5应用将可获得功能增强。</p>
|
<p>超微配置目录下的子目录名如果以"app"开始(譬如"/sdcard/uweb/appPDF"),则这些"app"开头目录树下放置的html5应用将可获得功能增强。</p>
|
||||||
|
|
|
@ -361,7 +361,7 @@ pdf:uweb:echo file:///sdcard/uweb/app/pdf.js/web/viewer.html?file=%u djvu:uweb:e
|
||||||
<description>点击安装plyr视频播放器
|
<description>点击安装plyr视频播放器
|
||||||
点击安装dplayer视频播放器
|
点击安装dplayer视频播放器
|
||||||
点击安装pdf阅读器
|
点击安装pdf阅读器
|
||||||
点击安装epub阅读器
|
点击安装epub阅读器(作者:llili)
|
||||||
点击安装djvu阅读器
|
点击安装djvu阅读器
|
||||||
相应的菜单安装可见浏览器特色服务
|
相应的菜单安装可见浏览器特色服务
|
||||||
超微配置目录下的子目录名如果以&quot;app&quot;开始(譬如&quot;/sdcard/uweb/appPDF&quot;),则这些&quot;app&quot;开头目录树下放置的html5应用将可获得功能增强。
|
超微配置目录下的子目录名如果以&quot;app&quot;开始(譬如&quot;/sdcard/uweb/appPDF&quot;),则这些&quot;app&quot;开头目录树下放置的html5应用将可获得功能增强。
|
||||||
|
|
|
@ -100,6 +100,7 @@
|
||||||
<a href="i:00漢後:https://ctext.org/post-han?searchu=">漢後:https://ctext.org/post-han?searchu=</a><br>
|
<a href="i:00漢後:https://ctext.org/post-han?searchu=">漢後:https://ctext.org/post-han?searchu=</a><br>
|
||||||
<a href="i:00先秦兩漢:https://ctext.org/pre-qin-and-han?searchu=">先秦兩漢:https://ctext.org/pre-qin-and-han?searchu=</a><br>
|
<a href="i:00先秦兩漢:https://ctext.org/pre-qin-and-han?searchu=">先秦兩漢:https://ctext.org/pre-qin-and-han?searchu=</a><br>
|
||||||
<a href="i:00汉字:http://www.guoxuedashi.net/zidian/so.php?kz=1&sokeyzi=">汉字:http://www.guoxuedashi.net/zidian/so.php?kz=1&sokeyzi=</a><br>
|
<a href="i:00汉字:http://www.guoxuedashi.net/zidian/so.php?kz=1&sokeyzi=">汉字:http://www.guoxuedashi.net/zidian/so.php?kz=1&sokeyzi=</a><br>
|
||||||
|
<a href="i:00说文解字:http://www.shuowen.net/so.php?s=">说文解字:http://www.shuowen.net/so.php?s=</a><br>
|
||||||
<a href="i:00汉典:https://www.zdic.net/hans/">汉典:https://www.zdic.net/hans/</a><br>
|
<a href="i:00汉典:https://www.zdic.net/hans/">汉典:https://www.zdic.net/hans/</a><br>
|
||||||
<a href="i:00萌典:https://www.moedict.tw/">萌典:https://www.moedict.tw/</a><br>
|
<a href="i:00萌典:https://www.moedict.tw/">萌典:https://www.moedict.tw/</a><br>
|
||||||
<a href="i:00異體字:http://jf.xmu.edu.cn/variants/cc.html?q=">異體字:http://jf.xmu.edu.cn/variants/cc.html?q=</a><br>
|
<a href="i:00異體字:http://jf.xmu.edu.cn/variants/cc.html?q=">異體字:http://jf.xmu.edu.cn/variants/cc.html?q=</a><br>
|
||||||
|
|
0
searchurl/txt/e.html~
Normal file
0
searchurl/txt/e.html~
Normal file
|
@ -1,12 +1,10 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport"
|
<meta name="viewport"
|
||||||
content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
|
content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
|
||||||
<title>EPUB</title>
|
<title>EPUB</title>
|
||||||
|
|
||||||
<script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.1.5/jszip.min.js"></script>
|
<script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.1.5/jszip.min.js"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/epubjs@0.3.88/dist/epub.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/epubjs@0.3.88/dist/epub.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
@ -22,7 +20,6 @@
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mask {
|
.mask {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -31,31 +28,31 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meun {
|
.meun {
|
||||||
display: flex;
|
display: flex;
|
||||||
height: 1em;
|
height: 1rem;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
#toc,
|
||||||
#toc {
|
#page {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
font-size: 0.6em;
|
font-size: .3rem;
|
||||||
padding-left: 0.7em;
|
padding-left: .4rem;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
#toc-content {
|
#toc-content {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
display: flex;
|
||||||
|
top: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
z-index: 102;
|
z-index: 102;
|
||||||
width: auto;
|
min-width: auto;
|
||||||
|
max-width: 80%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: white;
|
background: white;
|
||||||
|
flex-direction: column
|
||||||
}
|
}
|
||||||
|
|
||||||
#toc-mask {
|
#toc-mask {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -65,79 +62,115 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: rgba(51, 51, 51, .8);
|
background: rgba(51, 51, 51, .8);
|
||||||
}
|
}
|
||||||
|
.intro {
|
||||||
#content {
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 2.4rem;
|
||||||
overflow: auto;
|
padding: .2rem .4rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
height: 3rem;
|
||||||
|
display: flex;
|
||||||
|
border-bottom: .1rem solid #f4f4f4;
|
||||||
|
}
|
||||||
|
.txt {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 .2rem;
|
||||||
|
font-size: .3rem;
|
||||||
|
}
|
||||||
|
#content {
|
||||||
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
padding: 0.4em 0.4em;
|
padding: .2rem .4rem;
|
||||||
border-bottom: 0.1em solid #f4f4f4;
|
border-bottom: .07rem solid #f4f4f4;
|
||||||
font-size: 0.4em;
|
font-size: .4rem;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
#open {
|
#open {
|
||||||
|
display: flex;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
font-size: 0.4em;
|
font-size: .4rem;
|
||||||
text-align: right;
|
|
||||||
padding-right: 1em;
|
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
align-items: flex-end;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
#open span {
|
||||||
|
padding: .3rem .3rem;
|
||||||
|
border: .05rem solid #333;
|
||||||
|
border-radius: .2rem;
|
||||||
|
}
|
||||||
.read {
|
.read {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
#prev {
|
#prev {
|
||||||
flex: 0 0 2em;
|
flex: 0 0 2rem;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
#viewer {
|
#viewer {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#next {
|
#next {
|
||||||
flex: 0 0 2em;
|
flex: 0 0 2rem;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
.save {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
padding: .2rem .2rem;
|
||||||
|
justify-content: center;
|
||||||
|
border-bottom: .1rem solid #f4f4f4;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div id="ebook">
|
<div id="ebook">
|
||||||
<div class="mask">
|
<div class="mask">
|
||||||
|
<div id="open">
|
||||||
|
<span
|
||||||
|
onclick="document.getElementById('input').click();document.getElementById('open').style.display = 'none'">选择本地书籍</span>
|
||||||
|
<input type="file" id="input" style="display: none;">
|
||||||
|
</div>
|
||||||
<div class="read">
|
<div class="read">
|
||||||
<div id="prev" onclick="rendition.prev()"></div>
|
<div id="prev" onclick="rendition.prev()"></div>
|
||||||
<div id="viewer"></div>
|
<div id="viewer"></div>
|
||||||
<div id="next" onclick="rendition.next()"></div>
|
<div id="next" onclick="rendition.next()"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="meun">
|
<div class="meun">
|
||||||
<div id="toc" onclick="showhide()">≡</div>
|
<div id="toc" onclick="showhide()"></div>
|
||||||
<div id="open">
|
<div id="page" style="padding-left: 0;padding-right: 0.4rem;text-align: right;flex: 0 0 .5rem;"></div>
|
||||||
<span onclick="document.getElementById('input').click()">⊕</span>
|
|
||||||
<input type="file" id="input" style="display: none;">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="toc-mask" style="display: none;" onclick="showhide()"></div>
|
<div id="toc-mask" style="display: none;" onclick="showhide()"></div>
|
||||||
<div id="toc-content" style="display: none;">
|
<div id="toc-content" style="display: none;">
|
||||||
|
<div class="intro">
|
||||||
|
<img id="cover">
|
||||||
|
<div style="display: flex;flex: 1;flex-direction: column;overflow-y: auto;">
|
||||||
|
<div id="title" class="txt"></div>
|
||||||
|
<div id="author" class="txt"></div>
|
||||||
|
<div id="publisher" class="txt"></div>
|
||||||
|
<div id="pubdate" class="txt"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="save">
|
||||||
|
<div class="txt box" onclick="save()">存档</div>
|
||||||
|
<div class="txt box" onclick="get()">读档</div>
|
||||||
|
<div class="txt box" onclick="del()">删档</div>
|
||||||
|
</div>
|
||||||
<div id="content"></div>
|
<div id="content"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
var local = [];
|
||||||
let url = location.search.substring(3);
|
let url = location.search.substring(3);
|
||||||
if (url !== "") {
|
if (url !== "") {
|
||||||
var book = ePub(url);
|
var book = ePub(url);
|
||||||
|
document.getElementById("open").style.display = "none"
|
||||||
} else {
|
} else {
|
||||||
var book = ePub();
|
var book = ePub();
|
||||||
var inputElement = document.getElementById("input");
|
var inputElement = document.getElementById("input");
|
||||||
|
@ -160,23 +193,13 @@
|
||||||
height: window.innerHeight - 20
|
height: window.innerHeight - 20
|
||||||
});
|
});
|
||||||
rendition.display();
|
rendition.display();
|
||||||
var displayed = rendition.display();
|
|
||||||
|
|
||||||
function showhide() {
|
|
||||||
var $toc = document.getElementById("toc-content")
|
|
||||||
var $mask = document.getElementById("toc-mask")
|
|
||||||
if ($toc.style.display == "none") {
|
|
||||||
$toc.style.display = ""
|
|
||||||
$mask.style.display = ""
|
|
||||||
} else {
|
|
||||||
$toc.style.display = "none"
|
|
||||||
$mask.style.display = "none"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 目录
|
// 目录
|
||||||
book.loaded.navigation.then(function (toc) {
|
book.loaded.navigation.then(function (toc) {
|
||||||
var $content = document.getElementById("content")
|
var stored = localStorage.getItem(book.key() + '-locations');
|
||||||
|
if (stored) {
|
||||||
|
rendition.display(stored);
|
||||||
|
}
|
||||||
|
var $content = document.getElementById("content");
|
||||||
toc.forEach(function (chapter) {
|
toc.forEach(function (chapter) {
|
||||||
var div = document.createElement("div");
|
var div = document.createElement("div");
|
||||||
div.className = "item";
|
div.className = "item";
|
||||||
|
@ -188,7 +211,60 @@
|
||||||
$content.appendChild(div)
|
$content.appendChild(div)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
//简介
|
||||||
|
book.loaded.metadata.then(function (meta) {
|
||||||
|
var $title = document.getElementById("title");
|
||||||
|
var $author = document.getElementById("author");
|
||||||
|
var $cover = document.getElementById("cover");
|
||||||
|
var $publisher = document.getElementById("publisher");
|
||||||
|
var $pubdate = document.getElementById("pubdate");
|
||||||
|
$title.textContent = `书名:${meta.title}`;
|
||||||
|
$author.textContent = `作者:${meta.creator}`;
|
||||||
|
$publisher.textContent = `出版社:${meta.publisher}`;
|
||||||
|
$pubdate.textContent = `时间:${meta.pubdate}`;
|
||||||
|
if (book.archive) {
|
||||||
|
book.archive.createUrl(book.cover)
|
||||||
|
.then(function (url) {
|
||||||
|
$cover.src = url;
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
$cover.src = book.cover;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//页数
|
||||||
|
rendition.on('relocated', function (location) {
|
||||||
|
var $page = document.getElementById("page");
|
||||||
|
$page.textContent = location.end.displayed.page + '/' + location.end.displayed.total;
|
||||||
|
})
|
||||||
|
//章节
|
||||||
|
rendition.on("rendered", function (section) {
|
||||||
|
var $toc = document.getElementById("toc");
|
||||||
|
$toc.textContent = "目录";
|
||||||
|
$toc.textContent = book.navigation.get(section.href).label;
|
||||||
|
})
|
||||||
|
function showhide() {
|
||||||
|
var $toc_content = document.getElementById("toc-content")
|
||||||
|
var $mask = document.getElementById("toc-mask")
|
||||||
|
if ($toc_content.style.display == "none") {
|
||||||
|
$toc_content.style.display = ""
|
||||||
|
$mask.style.display = ""
|
||||||
|
} else {
|
||||||
|
$toc_content.style.display = "none"
|
||||||
|
$mask.style.display = "none"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function save() {
|
||||||
|
localStorage.setItem(book.key() + '-locations', rendition.currentLocation().start.cfi)
|
||||||
|
showhide()
|
||||||
|
}
|
||||||
|
function get() {
|
||||||
|
rendition.display(localStorage.getItem(book.key() + '-locations'));
|
||||||
|
showhide()
|
||||||
|
}
|
||||||
|
function del() {
|
||||||
|
localStorage.removeItem(book.key() + '-locations');
|
||||||
|
showhide()
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue