-
Notifications
You must be signed in to change notification settings - Fork 0
/
404.html
59 lines (57 loc) · 2.7 KB
/
404.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
---
layout: default-en.11ty.js
permalink: 404.html
noindex: true
nonav: true
internalStyle: "<noscript><style>.jsonly{display:none}</style></noscript>"
title: 404
script: "<script src=/js/hidelang.js></script>"
locale: 'none'
navbar: ''
---
<section>
<!-- To do: remove reliance on posts.json and pull a list of posts from the sitemap instead. -->
<h1>404:<span lang=ja>ページが見つけなかった</span> <span lang=en>Page not found</span></h1>
<noscript><p lang=en>Turn on Javascript to see a list of suggestions.</p><p lang=ja>発案のリストを見るためにJavaScriptをオンにしてください。</p></noscript>
<p class=jsonly><span lang=en>Loading suggestions...</span><span lang=ja>発案をロードしている…</span></p>
<!--<img class="websitecolor fri" src=/workingmoth.webp> replace this with a magnifying glass moth-->
<p lang=en>You can also use the search bar to search for pages on this website by adding "site:{{ metadata.url | replace("https://","") }}" to the beginning of your search.
<p lang=ja>あなたは検索の始めに「site:{{ metadata.url | replace("https://","") }}」を足すのでウェブサイトでページを検索するために検索窓を使える。
</section>
<script>
async function getAndParseSitemap() {
//fetch("/sitemap.xml")
let response = await fetch("/sitemap.xml")
//.then((response) => response.text())
let text = await response.text()
//.then((text) => {
const parser = new DOMParser();
const doc = parser.parseFromString(text, "text/xml");
console.log(doc.documentElement.nodeName);
console.log('getAndParseSitemap is finished');
return doc
//});
}
function getURLarrayFromSitemap(doc) {
var locArray=doc.getElementsByTagName('loc')
const URLarray=Array.from(locArray).map(loc => loc.innerHTML)
console.log('URLarray: '+URLarray)
return URLarray
}
(async function(){
console.log("navigator.language=="+navigator.language)
if (navigator.language=="ja"){
console.log("japanese language detected")
var suggestor=new Worker('/404-jp.js')
} else {
console.log("other language detected")
var suggestor=new Worker('/404-2.js')
}
const doc=await getAndParseSitemap()
console.log('this should not print until sitemap is finished')
suggestor.postMessage({pathname: window.location.pathname, URLarray: getURLarrayFromSitemap(doc)})
console.log('message posted to worker')
if (navigator.language=="ja"){var suggestMessage="このリストが手伝うかもしれません。"} else {var suggestMessage="Maybe this list will help? (make sure there are no typos in the url!)"}
suggestor.addEventListener('message', function(e){document.querySelector("p.jsonly").outerHTML="<p>"+suggestMessage+"</p>"+e.data; suggestor.terminate()}, {once:true})
})()
</script>