rebuilding site Fri Nov 12 03:24:33 PM CST 2021

This commit is contained in:
James Feng Cao 2021-11-12 15:24:33 +08:00
parent d01266bbc1
commit 542a4e0eb4
4 changed files with 86 additions and 26 deletions

View File

@ -1,7 +1,7 @@
<!doctype html>
<html>
<head>
<meta name="generator" content="Hugo 0.89.0" />
<meta name="generator" content="Hugo 0.89.2" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />

View File

@ -131,6 +131,10 @@ socks代理</p>
重用已有窗口跳转至不同anchor。</p>
</li>
<li>
<p>i:5c[url]<br>
更改自动翻页url</p>
</li>
<li>
<p>i:60[path]:[url]<br>
如果本地文件存在就打开否则访问远程url</p>
</li>

View File

@ -20,43 +20,72 @@
//return await resp.text();
}
}
var file = new absFile(location.search.substring(5));//?url=#page=
window.addEventListener('hashchange',loadSlice);
loadSlice();
function render(u8array){
document.body.innerHTML = window.markdeep.format(new TextDecoder().decode(u8array),true);
MathJax.typesetPromise();
}
var file;
var blocksize = 1024;
function loadSlice(){
var url;
var page = 1;
var blocksize = 1024;
var extrasize = 1024; //extrasize should <= blocksize
var extrasize = blocksize; //extrasize should <= blocksize
let lhash = location.hash;
if(lhash)
page = parseInt(lhash.substring(6),10);
if(lhash){
if("p"!==lhash.charAt(1)){//#offset=&[len]
let iAmpersand = lhash.indexOf('&',8);
let offset = parseInt(lhash.substring(8,iAmpersand));
let len = parseInt(lhash.substring(iAmpersand+1));
{//update urlInc() url
let href = location.href;
let iHash = href.indexOf('#');
href="i:5c"+href.substring(0,iHash)+"#page="+Math.floor((offset+len)/blocksize);
let d=document;
let a = d.createElement('a');
a.href = href;
a.click();
}
file.slice(offset,len).then((buffer)=>{
let u8 = new Uint8Array(buffer);
render(u8);
});
return;
}
//#page=
page = parseInt(lhash.substring(6));
}
file.slice(blocksize*(page-1),blocksize+extrasize).then((buffer)=>{
let u8 = new Uint8Array(buffer);
let u8len = u8.length;
let iStart = 0;
let limit = Math.min(u8len,extrasize);
if(1!=page){
for(let i=1;i<extrasize;i=i+2){
for(let i=1;i<limit;i=i+2){
if(10==u8[i] && 10==u8[i-1]) {
iStart = i+1;
break;
}
}
}
let iEnd = blocksize;
for(let i=blocksize+1;i<blocksize+extrasize;i=i+2){
let iEnd = Math.min(u8len,blocksize);
limit = Math.min(u8len,blocksize+extrasize);
for(let i=blocksize+1;i<limit;i=i+2){
if(10==u8[i] && 10==u8[i-1]) {
iEnd = i+1;
break;
}
}
document.body.innerHTML = window.markdeep.format(new TextDecoder().decode(u8.slice(iStart,iEnd)),true);
MathJax.typesetPromise();
render(u8.slice(iStart,iEnd));
});
}
//?url=#offset=&[len]&page=
file = new absFile(location.search.substring(5));
window.addEventListener('hashchange',loadSlice);
</script>
</head>
<body>
<script>loadSlice();</script>
</body>

View File

@ -18,44 +18,71 @@
//return await resp.text();
}
}
function render(u8array){
document.body.innerHTML = marked(new TextDecoder().decode(u8array));
}
var file;
var blocksize = 1024;
function loadSlice(){
var url;
var page = 1;
var blocksize = 1024;
var extrasize = 1024; //extrasize should <= blocksize
var extrasize = blocksize; //extrasize should <= blocksize
let lhash = location.hash;
if(lhash)
page = parseInt(lhash.substring(6),10);
if(lhash){
if("p"!==lhash.charAt(1)){//#offset=&[len]
let iAmpersand = lhash.indexOf('&',8);
let offset = parseInt(lhash.substring(8,iAmpersand));
let len = parseInt(lhash.substring(iAmpersand+1));
{//update urlInc() url
let href = location.href;
let iHash = href.indexOf('#');
href="i:5c"+href.substring(0,iHash)+"#page="+Math.floor((offset+len)/blocksize);
let d=document;
let a = d.createElement('a');
a.href = href;
a.click();
}
file.slice(offset,len).then((buffer)=>{
let u8 = new Uint8Array(buffer);
render(u8);
});
return;
}
//#page=
page = parseInt(lhash.substring(6));
}
file.slice(blocksize*(page-1),blocksize+extrasize).then((buffer)=>{
let u8 = new Uint8Array(buffer);
let u8len = u8.length;
let iStart = 0;
let limit = Math.min(u8len,extrasize);
if(1!=page){
for(let i=1;i<extrasize;i=i+2){
for(let i=1;i<limit;i=i+2){
if(10==u8[i] && 10==u8[i-1]) {
iStart = i+1;
break;
}
}
}
let iEnd = blocksize;
for(let i=blocksize+1;i<blocksize+extrasize;i=i+2){
let iEnd = Math.min(u8len,blocksize);
limit = Math.min(u8len,blocksize+extrasize);
for(let i=blocksize+1;i<limit;i=i+2){
if(10==u8[i] && 10==u8[i-1]) {
iEnd = i+1;
break;
}
}
document.body.innerHTML = marked(new TextDecoder().decode(u8.slice(iStart,iEnd)));
render(u8.slice(iStart,iEnd));
});
}
window.addEventListener('hashchange',loadSlice);
//?url=#page=
//?url=#offset=&[len]&page=
file = new absFile(location.search.substring(5));
//let viewElement = document.querySelector("#viewer");
loadSlice();
window.addEventListener('hashchange',loadSlice);
</script>
</head>
<body>
<script>loadSlice();</script>
</body>