1<!DOCTYPE html> 2 3<!-- 4 ~ Copyright (C) 2021 The Android Open Source Project 5 ~ 6 ~ Licensed under the Apache License, Version 2.0 (the "License"); 7 ~ you may not use this file except in compliance with the License. 8 ~ You may obtain a copy of the License at 9 ~ 10 ~ http://www.apache.org/licenses/LICENSE-2.0 11 ~ 12 ~ Unless required by applicable law or agreed to in writing, software 13 ~ distributed under the License is distributed on an "AS IS" BASIS, 14 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 ~ See the License for the specific language governing permissions and 16 ~ limitations under the License. 17 --> 18 19<html> 20<head> 21 <script src="https://unpkg.com/showdown@1/dist/showdown.min.js"></script> 22 <script> 23 function showMarkdownFile(responseText, file) { 24 const headerLevelStart = 1; 25 26 var converter = new showdown.Converter(); 27 converter.setOption("customizedHeaderId", true); 28 converter.setOption("ghCompatibleHeaderId", true); 29 converter.setOption("headerLevelStart", headerLevelStart); 30 converter.setOption("tables", true); 31 32 var divFile = document.getElementById("div-file").cloneNode(true); 33 divFile.getElementsByClassName("div-file-contents")[0].innerHTML = converter.makeHtml(responseText); 34 35 // Show file name 36 divFile.getElementsByClassName("headline-file-name")[0].id = file 37 divFile.getElementsByClassName("headline-file-name")[0].innerText = file; 38 39 // Generate table of contents 40 var toc = document.getElementById("div-toc-contents") 41 42 // Add link to title 43 var titleClone = document.getElementById("div-sample-toc-title").cloneNode(true) 44 var titleLink = titleClone.getElementsByTagName("a")[0] 45 titleLink.href = "#" + file 46 titleLink.innerText = file 47 toc.appendChild(titleClone) 48 49 var h2Elements = divFile.getElementsByClassName("div-file-contents")[0].getElementsByTagName("h" + headerLevelStart) 50 var sampleTocItem = document.getElementById("div-sample-toc-item") 51 for (let i = 0; i < h2Elements.length; i++) { 52 var clone = sampleTocItem.cloneNode(true) 53 var link = clone.getElementsByTagName("a")[0]; 54 link.href = "#" + h2Elements[i].id 55 link.innerText = h2Elements[i].innerText 56 toc.appendChild(clone) 57 } 58 toc.appendChild(document.getElementById("div-sample-toc-break").cloneNode(true)) 59 60 divFile.hidden = false; 61 document.body.appendChild(divFile) 62 } 63 64 document.addEventListener("DOMContentLoaded", function () { 65 resources = document.getElementsByClassName("embedded_resource"); 66 for (var i = 0; i < resources.length; i++) { 67 if (!resources[i].id.endsWith("-res")) { 68 continue; 69 } 70 if (resources[i].id === "default_file.html.frag-res") { 71 continue; 72 } 73 file = resources[i].id.substring(0, resources[i].id.length - "-res".length) 74 console.log(file, resources[i]) 75 showMarkdownFile(atob(resources[i].innerText), file) 76 } 77 78 // Decode default_file 79 document.getElementById("default_file.html.frag-res").innerHTML = atob(document.getElementById("default_file.html.frag-res").innerText); 80 default_file = document.getElementById("default_file") 81 if (default_file) { 82 document.location.href = default_file.href 83 } 84 }); 85 </script> 86 <style> 87 #div-float-right { 88 position: fixed; 89 right: 0; 90 top: 0; 91 } 92 </style> 93</head> 94<body> 95<div id="div-float-right"> 96 <h3 id="headline-toc">Table of contents</h3> 97 <div hidden> 98 <div id="div-sample-toc-title"><strong><a></a></strong></div> 99 <div id="div-sample-toc-item"><code><a></a></code></div> 100 <div id="div-sample-toc-break"><br /></div> 101 </div> 102 <div id="div-toc-contents"> 103 </div> 104</div> 105<div id="div-file" hidden> 106 <h2 class="headline-file-name"></h2> 107 <div class="div-file-contents"> 108 </div> 109</div> 110<!--RESOURCE_EMBED_HINT--> 111</body> 112</html> 113