113 lines
4.3 KiB
HTML
113 lines
4.3 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<!--
|
|
~ Copyright (C) 2021 The Android Open Source Project
|
|
~
|
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
~ you may not use this file except in compliance with the License.
|
|
~ You may obtain a copy of the License at
|
|
~
|
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
~
|
|
~ Unless required by applicable law or agreed to in writing, software
|
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
~ See the License for the specific language governing permissions and
|
|
~ limitations under the License.
|
|
-->
|
|
|
|
<html>
|
|
<head>
|
|
<script src="https://unpkg.com/showdown@1/dist/showdown.min.js"></script>
|
|
<script>
|
|
function showMarkdownFile(responseText, file) {
|
|
const headerLevelStart = 1;
|
|
|
|
var converter = new showdown.Converter();
|
|
converter.setOption("customizedHeaderId", true);
|
|
converter.setOption("ghCompatibleHeaderId", true);
|
|
converter.setOption("headerLevelStart", headerLevelStart);
|
|
converter.setOption("tables", true);
|
|
|
|
var divFile = document.getElementById("div-file").cloneNode(true);
|
|
divFile.getElementsByClassName("div-file-contents")[0].innerHTML = converter.makeHtml(responseText);
|
|
|
|
// Show file name
|
|
divFile.getElementsByClassName("headline-file-name")[0].id = file
|
|
divFile.getElementsByClassName("headline-file-name")[0].innerText = file;
|
|
|
|
// Generate table of contents
|
|
var toc = document.getElementById("div-toc-contents")
|
|
|
|
// Add link to title
|
|
var titleClone = document.getElementById("div-sample-toc-title").cloneNode(true)
|
|
var titleLink = titleClone.getElementsByTagName("a")[0]
|
|
titleLink.href = "#" + file
|
|
titleLink.innerText = file
|
|
toc.appendChild(titleClone)
|
|
|
|
var h2Elements = divFile.getElementsByClassName("div-file-contents")[0].getElementsByTagName("h" + headerLevelStart)
|
|
var sampleTocItem = document.getElementById("div-sample-toc-item")
|
|
for (let i = 0; i < h2Elements.length; i++) {
|
|
var clone = sampleTocItem.cloneNode(true)
|
|
var link = clone.getElementsByTagName("a")[0];
|
|
link.href = "#" + h2Elements[i].id
|
|
link.innerText = h2Elements[i].innerText
|
|
toc.appendChild(clone)
|
|
}
|
|
toc.appendChild(document.getElementById("div-sample-toc-break").cloneNode(true))
|
|
|
|
divFile.hidden = false;
|
|
document.body.appendChild(divFile)
|
|
}
|
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
resources = document.getElementsByClassName("embedded_resource");
|
|
for (var i = 0; i < resources.length; i++) {
|
|
if (!resources[i].id.endsWith("-res")) {
|
|
continue;
|
|
}
|
|
if (resources[i].id === "default_file.html.frag-res") {
|
|
continue;
|
|
}
|
|
file = resources[i].id.substring(0, resources[i].id.length - "-res".length)
|
|
console.log(file, resources[i])
|
|
showMarkdownFile(atob(resources[i].innerText), file)
|
|
}
|
|
|
|
// Decode default_file
|
|
document.getElementById("default_file.html.frag-res").innerHTML = atob(document.getElementById("default_file.html.frag-res").innerText);
|
|
default_file = document.getElementById("default_file")
|
|
if (default_file) {
|
|
document.location.href = default_file.href
|
|
}
|
|
});
|
|
</script>
|
|
<style>
|
|
#div-float-right {
|
|
position: fixed;
|
|
right: 0;
|
|
top: 0;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="div-float-right">
|
|
<h3 id="headline-toc">Table of contents</h3>
|
|
<div hidden>
|
|
<div id="div-sample-toc-title"><strong><a></a></strong></div>
|
|
<div id="div-sample-toc-item"><code><a></a></code></div>
|
|
<div id="div-sample-toc-break"><br /></div>
|
|
</div>
|
|
<div id="div-toc-contents">
|
|
</div>
|
|
</div>
|
|
<div id="div-file" hidden>
|
|
<h2 class="headline-file-name"></h2>
|
|
<div class="div-file-contents">
|
|
</div>
|
|
</div>
|
|
<!--RESOURCE_EMBED_HINT-->
|
|
</body>
|
|
</html>
|