diff options
Diffstat (limited to 'plugins')
233 files changed, 9925 insertions, 931 deletions
diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/-search.html b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/navigation.html b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/navigation.html index ad2005c3..a6a421f1 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//f/#//"> <div class="overview"><a href="root//f.html">f</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/root/f.html b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/root/f.html index 7900fb98..699949e0 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/root/f.html +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/root/f.html @@ -1,20 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>f</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//f/#//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> + <h1>f</h1> + <div class="symbol monospace">final fun <a href="f.html">f</a>()</div> + </div> </div> - <div id="sideMenu"></div> </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> - <h1>f</h1> -final fun <a href="f.html">f</a>()</div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/root/index.html b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/root/index.html index 867d7faa..6ed21e80 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/root/index.html @@ -1,30 +1,38 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="f.html">f</a></td> + <td> + <div class="symbol monospace">final fun <a href="f.html">f</a>()</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="f.html">f</a></td> - <td>final fun <a href="f.html">f</a>()</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/pages.js new file mode 100644 index 00000000..81ed5cc3 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "f", "location": "root//f.html" } +] diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/annotatedFunction/out/html/styles/style.css b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunction/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/-search.html b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/navigation.html b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/navigation.html index fe9e499e..e7b7334a 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/navigation.html @@ -1,23 +1,11 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> - <div class="overview"><a href="root//-fancy/index.html">Fancy</a><span class="navButton" onclick="document.getElementById("nav-submenu-0-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0-0"> - <div class="overview"><a href="root//-fancy/-init-.html"><init></a></div> - </div> - <div class="sideMenuPart" id="nav-submenu-0-0-1"> - <div class="overview"><a href="root//-fancy/equals.html">equals</a></div> - </div> - <div class="sideMenuPart" id="nav-submenu-0-0-2"> - <div class="overview"><a href="root//-fancy/hash-code.html">hashCode</a></div> - </div> - <div class="sideMenuPart" id="nav-submenu-0-0-3"> - <div class="overview"><a href="root//-fancy/to-string.html">toString</a></div> - </div> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="/Fancy////"> + <div class="overview"><a href="root//-fancy/index.html">Fancy</a></div> </div> - <div class="sideMenuPart" id="nav-submenu-0-1"> + <div class="sideMenuPart" id="nav-submenu-0-1" pageId="//f/#//"> <div class="overview"><a href="root//f.html">f</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/-init-.html b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/-init-.html index 5ae21e5b..1f8f163c 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/-init-.html +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/-init-.html @@ -1,29 +1,26 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title><init></title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy/<init>/#kotlin.Int//">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="-init-.html"><init></a> + <h1><init></h1> + <div class="symbol monospace">final fun <a href="-init-.html"><init></a>(size: <a href="">Int</a>)</div> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="-init-.html"><init></a> - <h1><init></h1> -final fun <a href="-init-.html"><init></a>(<a href="">size</a>: <a href="">Int</a>) - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>size</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/equals.html b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/equals.html index 004f5344..095832b0 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/equals.html +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/equals.html @@ -1,29 +1,26 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>equals</title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy/equals/#kotlin.Any?//">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="equals.html">equals</a> + <h1>equals</h1> + <div class="symbol monospace">open fun <a href="equals.html">equals</a>(other: <a href="">Any</a>): <a href="">Boolean</a></div> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="equals.html">equals</a> - <h1>equals</h1> -open fun <a href="equals.html">equals</a>(<a href="">other</a>: <a href="">Any</a>): <a href="">Boolean</a> - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>other</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/hash-code.html b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/hash-code.html index b395dcda..c600cba6 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/hash-code.html +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/hash-code.html @@ -1,20 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>hashCode</title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy/hashCode/#//">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="hash-code.html">hashCode</a> + <h1>hashCode</h1> + <div class="symbol monospace">open fun <a href="hash-code.html">hashCode</a>(): <a href="">Int</a></div> + </div> </div> - <div id="sideMenu"></div> </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="hash-code.html">hashCode</a> - <h1>hashCode</h1> -open fun <a href="hash-code.html">hashCode</a>(): <a href="">Int</a></div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/index.html b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/index.html index 3da5f79b..60f3af69 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/index.html +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/index.html @@ -1,60 +1,82 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Fancy</title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy////">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a> + <h1>Fancy</h1> + <div class="symbol monospace">annotation class <a href="index.html">Fancy</a></div> + <h2>Constructors</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="-init-.html"><init></a></td> + <td> + <div class="symbol monospace">final fun <a href="-init-.html"><init></a>(size: <a href="">Int</a>)</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="equals.html">equals</a></td> + <td> + <div class="symbol monospace">open fun <a href="equals.html">equals</a>(other: <a href="">Any</a>): <a href="">Boolean</a></div> + <div class="brief "></div> + </td> + </tr> + <tr> + <td><a href="hash-code.html">hashCode</a></td> + <td> + <div class="symbol monospace">open fun <a href="hash-code.html">hashCode</a>(): <a href="">Int</a></div> + <div class="brief "></div> + </td> + </tr> + <tr> + <td><a href="to-string.html">toString</a></td> + <td> + <div class="symbol monospace">open fun <a href="to-string.html">toString</a>(): <a href="">String</a></div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + <h2>Properties</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="">size</a></td> + <td> + <div class="symbol monospace"><a href="">Int</a></div> + </td> + <td><br></td> + <td> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>Final class Fancy : <a href="">Annotation</a> - <h2>Constructors</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="-init-.html"><init></a></td> - <td>final fun <a href="-init-.html"><init></a>(<a href="">size</a>: <a href="">Int</a>)</td> - <td></td> - </tr> - </tbody> - </table> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="equals.html">equals</a></td> - <td>open fun <a href="equals.html">equals</a>(<a href="">other</a>: <a href="">Any</a>): <a href="">Boolean</a></td> - <td></td> - </tr> - <tr> - <td><a href="hash-code.html">hashCode</a></td> - <td>open fun <a href="hash-code.html">hashCode</a>(): <a href="">Int</a></td> - <td></td> - </tr> - <tr> - <td><a href="to-string.html">toString</a></td> - <td>open fun <a href="to-string.html">toString</a>(): <a href="">String</a></td> - <td></td> - </tr> - </tbody> - </table> - <h2>Properties</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="">size</a></td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/to-string.html b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/to-string.html index 84da7873..01f5bd2f 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/to-string.html +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/-fancy/to-string.html @@ -1,20 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>toString</title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy/toString/#//">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="to-string.html">toString</a> + <h1>toString</h1> + <div class="symbol monospace">open fun <a href="to-string.html">toString</a>(): <a href="">String</a></div> + </div> </div> - <div id="sideMenu"></div> </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="to-string.html">toString</a> - <h1>toString</h1> -open fun <a href="to-string.html">toString</a>(): <a href="">String</a></div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/f.html b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/f.html index 7900fb98..699949e0 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/f.html +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/f.html @@ -1,20 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>f</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//f/#//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> + <h1>f</h1> + <div class="symbol monospace">final fun <a href="f.html">f</a>()</div> + </div> </div> - <div id="sideMenu"></div> </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> - <h1>f</h1> -final fun <a href="f.html">f</a>()</div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/index.html b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/index.html index bba04c93..7bd8b485 100644 --- a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/root/index.html @@ -1,41 +1,51 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Types</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="-fancy/index.html">Fancy</a></td> + <td> + <div class="symbol monospace">annotation class <a href="-fancy/index.html">Fancy</a></div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="f.html">f</a></td> + <td> + <div class="symbol monospace">final fun <a href="f.html">f</a>()</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Types</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="-fancy/index.html">Fancy</a></td> - <td>Final class Fancy : <a href="">Annotation</a></td> - <td></td> - </tr> - </tbody> - </table> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="f.html">f</a></td> - <td>final fun <a href="f.html">f</a>()</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/pages.js new file mode 100644 index 00000000..433d70a5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/pages.js @@ -0,0 +1,10 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "Fancy", "class": "Fancy", "location": "root//-fancy/index.html" }, +{ "name": "<init>", "location": "root//-fancy/-init-.html" }, +{ "name": "equals", "location": "root//-fancy/equals.html" }, +{ "name": "hashCode", "location": "root//-fancy/hash-code.html" }, +{ "name": "toString", "location": "root//-fancy/to-string.html" }, +{ "name": "f", "location": "root//f.html" } +] diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/styles/style.css b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/annotatedFunctionWithAnnotationParameters/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/function/out/html/-search.html b/plugins/base/src/test/resources/expect/function/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/function/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/function/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/function/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/function/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/function/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/function/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/function/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/function/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/function/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/function/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/function/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/function/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/function/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/function/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/function/out/html/navigation.html b/plugins/base/src/test/resources/expect/function/out/html/navigation.html index ebff817d..6675ec81 100644 --- a/plugins/base/src/test/resources/expect/function/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/function/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//fn/#//"> <div class="overview"><a href="root//fn.html">fn</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/function/out/html/root/fn.html b/plugins/base/src/test/resources/expect/function/out/html/root/fn.html index e87d7bc4..9e52f490 100644 --- a/plugins/base/src/test/resources/expect/function/out/html/root/fn.html +++ b/plugins/base/src/test/resources/expect/function/out/html/root/fn.html @@ -1,23 +1,29 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>fn</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="fn.html">fn</a> - <h1>fn</h1> -final fun <a href="fn.html">fn</a>() - <h3>Description</h3> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//fn/#//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="fn.html">fn</a> + <h1>fn</h1> + <div class="symbol monospace">final fun <a href="fn.html">fn</a>()</div> + <h3>Description</h3> Function fn </div> + </div> + </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/function/out/html/root/index.html b/plugins/base/src/test/resources/expect/function/out/html/root/index.html index 25c65b11..fe2eeab7 100644 --- a/plugins/base/src/test/resources/expect/function/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/function/out/html/root/index.html @@ -1,30 +1,38 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="fn.html">fn</a></td> + <td> + <div class="symbol monospace">final fun <a href="fn.html">fn</a>()</div> + <div class="brief ">Function fn</div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="fn.html">fn</a></td> - <td>final fun <a href="fn.html">fn</a>()</td> - <td>Function fn</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/function/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/function/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/function/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/function/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/function/out/html/scripts/pages.js new file mode 100644 index 00000000..c0bd7a2f --- /dev/null +++ b/plugins/base/src/test/resources/expect/function/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "fn", "location": "root//fn.html" } +] diff --git a/plugins/base/src/test/resources/expect/function/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/function/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/function/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/function/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/function/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/function/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/function/out/html/styles/style.css b/plugins/base/src/test/resources/expect/function/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/function/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/-search.html b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/navigation.html b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/navigation.html index 53fb1ca2..247d55ca 100644 --- a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/navigation.html @@ -1,23 +1,11 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> - <div class="overview"><a href="root//-fancy/index.html">Fancy</a><span class="navButton" onclick="document.getElementById("nav-submenu-0-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0-0"> - <div class="overview"><a href="root//-fancy/-init-.html"><init></a></div> - </div> - <div class="sideMenuPart" id="nav-submenu-0-0-1"> - <div class="overview"><a href="root//-fancy/equals.html">equals</a></div> - </div> - <div class="sideMenuPart" id="nav-submenu-0-0-2"> - <div class="overview"><a href="root//-fancy/hash-code.html">hashCode</a></div> - </div> - <div class="sideMenuPart" id="nav-submenu-0-0-3"> - <div class="overview"><a href="root//-fancy/to-string.html">toString</a></div> - </div> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="/Fancy////"> + <div class="overview"><a href="root//-fancy/index.html">Fancy</a></div> </div> - <div class="sideMenuPart" id="nav-submenu-0-1"> + <div class="sideMenuPart" id="nav-submenu-0-1" pageId="//function/#kotlin.Function0[kotlin.Unit]//"> <div class="overview"><a href="root//function.html">function</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/-init-.html b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/-init-.html index acfc127a..68608d40 100644 --- a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/-init-.html +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/-init-.html @@ -1,20 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title><init></title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy/<init>/#//">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="-init-.html"><init></a> + <h1><init></h1> + <div class="symbol monospace">final fun <a href="-init-.html"><init></a>()</div> + </div> </div> - <div id="sideMenu"></div> </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="-init-.html"><init></a> - <h1><init></h1> -final fun <a href="-init-.html"><init></a>()</div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/equals.html b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/equals.html index 004f5344..095832b0 100644 --- a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/equals.html +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/equals.html @@ -1,29 +1,26 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>equals</title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy/equals/#kotlin.Any?//">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="equals.html">equals</a> + <h1>equals</h1> + <div class="symbol monospace">open fun <a href="equals.html">equals</a>(other: <a href="">Any</a>): <a href="">Boolean</a></div> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="equals.html">equals</a> - <h1>equals</h1> -open fun <a href="equals.html">equals</a>(<a href="">other</a>: <a href="">Any</a>): <a href="">Boolean</a> - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>other</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/hash-code.html b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/hash-code.html index b395dcda..c600cba6 100644 --- a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/hash-code.html +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/hash-code.html @@ -1,20 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>hashCode</title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy/hashCode/#//">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="hash-code.html">hashCode</a> + <h1>hashCode</h1> + <div class="symbol monospace">open fun <a href="hash-code.html">hashCode</a>(): <a href="">Int</a></div> + </div> </div> - <div id="sideMenu"></div> </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="hash-code.html">hashCode</a> - <h1>hashCode</h1> -open fun <a href="hash-code.html">hashCode</a>(): <a href="">Int</a></div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/index.html b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/index.html index 6a1d3c92..792b72b7 100644 --- a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/index.html +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/index.html @@ -1,50 +1,66 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Fancy</title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy////">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a> + <h1>Fancy</h1> + <div class="symbol monospace">annotation class <a href="index.html">Fancy</a></div> + <h2>Constructors</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="-init-.html"><init></a></td> + <td> + <div class="symbol monospace">final fun <a href="-init-.html"><init></a>()</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="equals.html">equals</a></td> + <td> + <div class="symbol monospace">open fun <a href="equals.html">equals</a>(other: <a href="">Any</a>): <a href="">Boolean</a></div> + <div class="brief "></div> + </td> + </tr> + <tr> + <td><a href="hash-code.html">hashCode</a></td> + <td> + <div class="symbol monospace">open fun <a href="hash-code.html">hashCode</a>(): <a href="">Int</a></div> + <div class="brief "></div> + </td> + </tr> + <tr> + <td><a href="to-string.html">toString</a></td> + <td> + <div class="symbol monospace">open fun <a href="to-string.html">toString</a>(): <a href="">String</a></div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>Final class Fancy : <a href="">Annotation</a> - <h2>Constructors</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="-init-.html"><init></a></td> - <td>final fun <a href="-init-.html"><init></a>()</td> - <td></td> - </tr> - </tbody> - </table> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="equals.html">equals</a></td> - <td>open fun <a href="equals.html">equals</a>(<a href="">other</a>: <a href="">Any</a>): <a href="">Boolean</a></td> - <td></td> - </tr> - <tr> - <td><a href="hash-code.html">hashCode</a></td> - <td>open fun <a href="hash-code.html">hashCode</a>(): <a href="">Int</a></td> - <td></td> - </tr> - <tr> - <td><a href="to-string.html">toString</a></td> - <td>open fun <a href="to-string.html">toString</a>(): <a href="">String</a></td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/to-string.html b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/to-string.html index 84da7873..01f5bd2f 100644 --- a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/to-string.html +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/-fancy/to-string.html @@ -1,20 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>toString</title> <link href="../../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/Fancy/toString/#//">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="to-string.html">toString</a> + <h1>toString</h1> + <div class="symbol monospace">open fun <a href="to-string.html">toString</a>(): <a href="">String</a></div> + </div> </div> - <div id="sideMenu"></div> </div> - <div id="content">//<a href="../../index.html">root</a>/<a href="../index.html"></a>/<a href="index.html">Fancy</a>/<a href="to-string.html">toString</a> - <h1>toString</h1> -open fun <a href="to-string.html">toString</a>(): <a href="">String</a></div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/function.html b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/function.html index 2c0eb890..4a0faa01 100644 --- a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/function.html +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/function.html @@ -1,29 +1,28 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>function</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//function/#kotlin.Function0[kotlin.Unit]//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="function.html">function</a> + <h1>function</h1> + <div class="symbol monospace">final fun <a href="function.html">function</a>(notInlined: + <div class="symbol monospace">() -> <a href="">Unit</a></div> +)</div> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="function.html">function</a> - <h1>function</h1> -final fun <a href="function.html">function</a>(<a href="">notInlined</a>: <a href="">Function0</a><<a href="">Unit</a>>) - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>notInlined</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/index.html b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/index.html index 1797f269..c6e84a04 100644 --- a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/root/index.html @@ -1,41 +1,53 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Types</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="-fancy/index.html">Fancy</a></td> + <td> + <div class="symbol monospace">annotation class <a href="-fancy/index.html">Fancy</a></div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="function.html">function</a></td> + <td> + <div class="symbol monospace">final fun <a href="function.html">function</a>(notInlined: + <div class="symbol monospace">() -> <a href="">Unit</a></div> +)</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Types</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="-fancy/index.html">Fancy</a></td> - <td>Final class Fancy : <a href="">Annotation</a></td> - <td></td> - </tr> - </tbody> - </table> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="function.html">function</a></td> - <td>final fun <a href="function.html">function</a>(<a href="">notInlined</a>: <a href="">Function0</a><<a href="">Unit</a>>)</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/pages.js new file mode 100644 index 00000000..6fe4ba6d --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/pages.js @@ -0,0 +1,10 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "Fancy", "class": "Fancy", "location": "root//-fancy/index.html" }, +{ "name": "<init>", "location": "root//-fancy/-init-.html" }, +{ "name": "equals", "location": "root//-fancy/equals.html" }, +{ "name": "hashCode", "location": "root//-fancy/hash-code.html" }, +{ "name": "toString", "location": "root//-fancy/to-string.html" }, +{ "name": "function", "location": "root//function.html" } +] diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/styles/style.css b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithAnnotatedParam/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/-search.html b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/navigation.html b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/navigation.html index ad2005c3..27b3555e 100644 --- a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//f/#kotlin.String//"> <div class="overview"><a href="root//f.html">f</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/root/f.html b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/root/f.html index 448fdf25..d0f05c33 100644 --- a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/root/f.html +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/root/f.html @@ -1,29 +1,26 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>f</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//f/#kotlin.String//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> + <h1>f</h1> + <div class="symbol monospace">final fun <a href="f.html">f</a>(x: <a href="">String</a>)</div> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> - <h1>f</h1> -final fun <a href="f.html">f</a>(<a href="">x</a>: <a href="">String</a>) - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>x</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/root/index.html b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/root/index.html index d23b9737..8cd1b813 100644 --- a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/root/index.html @@ -1,30 +1,38 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="f.html">f</a></td> + <td> + <div class="symbol monospace">final fun <a href="f.html">f</a>(x: <a href="">String</a>)</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="f.html">f</a></td> - <td>final fun <a href="f.html">f</a>(<a href="">x</a>: <a href="">String</a>)</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/pages.js new file mode 100644 index 00000000..81ed5cc3 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "f", "location": "root//f.html" } +] diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/styles/style.css b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithDefaultParameter/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/-search.html b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/navigation.html b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/navigation.html index 659c441f..66112787 100644 --- a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//function/#kotlin.Function0[kotlin.Unit]//"> <div class="overview"><a href="root//function.html">function</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/root/function.html b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/root/function.html index 2c0eb890..4a0faa01 100644 --- a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/root/function.html +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/root/function.html @@ -1,29 +1,28 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>function</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//function/#kotlin.Function0[kotlin.Unit]//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="function.html">function</a> + <h1>function</h1> + <div class="symbol monospace">final fun <a href="function.html">function</a>(notInlined: + <div class="symbol monospace">() -> <a href="">Unit</a></div> +)</div> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="function.html">function</a> - <h1>function</h1> -final fun <a href="function.html">function</a>(<a href="">notInlined</a>: <a href="">Function0</a><<a href="">Unit</a>>) - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>notInlined</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/root/index.html b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/root/index.html index 2c53c3e2..433663af 100644 --- a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/root/index.html @@ -1,30 +1,40 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="function.html">function</a></td> + <td> + <div class="symbol monospace">final fun <a href="function.html">function</a>(notInlined: + <div class="symbol monospace">() -> <a href="">Unit</a></div> +)</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="function.html">function</a></td> - <td>final fun <a href="function.html">function</a>(<a href="">notInlined</a>: <a href="">Function0</a><<a href="">Unit</a>>)</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/pages.js new file mode 100644 index 00000000..e450fd21 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "function", "location": "root//function.html" } +] diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/styles/style.css b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNoinlineParam/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/-search.html b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/navigation.html b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/navigation.html index ad2005c3..a6a421f1 100644 --- a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//f/#//"> <div class="overview"><a href="root//f.html">f</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/root/f.html b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/root/f.html index 7900fb98..699949e0 100644 --- a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/root/f.html +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/root/f.html @@ -1,20 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>f</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//f/#//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> + <h1>f</h1> + <div class="symbol monospace">final fun <a href="f.html">f</a>()</div> + </div> </div> - <div id="sideMenu"></div> </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> - <h1>f</h1> -final fun <a href="f.html">f</a>()</div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/root/index.html b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/root/index.html index 867d7faa..6ed21e80 100644 --- a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/root/index.html @@ -1,30 +1,38 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="f.html">f</a></td> + <td> + <div class="symbol monospace">final fun <a href="f.html">f</a>()</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="f.html">f</a></td> - <td>final fun <a href="f.html">f</a>()</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/pages.js new file mode 100644 index 00000000..81ed5cc3 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "f", "location": "root//f.html" } +] diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/styles/style.css b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithNotDocumentedAnnotation/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/-search.html b/plugins/base/src/test/resources/expect/functionWithParams/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/functionWithParams/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/navigation.html b/plugins/base/src/test/resources/expect/functionWithParams/out/html/navigation.html index 659c441f..977f2a5f 100644 --- a/plugins/base/src/test/resources/expect/functionWithParams/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//function/#kotlin.Int//"> <div class="overview"><a href="root//function.html">function</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/root/function.html b/plugins/base/src/test/resources/expect/functionWithParams/out/html/root/function.html index 0c62a13d..db1ca3f4 100644 --- a/plugins/base/src/test/resources/expect/functionWithParams/out/html/root/function.html +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/root/function.html @@ -1,33 +1,28 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>function</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="function.html">function</a> - <h1>function</h1> -final fun <a href="function.html">function</a>(<a href="">x</a>: <a href="">Int</a>) - <h3>Description</h3> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//function/#kotlin.Int//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="function.html">function</a> + <h1>function</h1> + <div class="symbol monospace">final fun <a href="function.html">function</a>(x: <a href="">Int</a>)</div> + <h3>Description</h3> MultilineFunction Documentation - - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>x</td> - <td>parameter</td> - </tr> - </tbody> - </table> +</div> + </div> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/root/index.html b/plugins/base/src/test/resources/expect/functionWithParams/out/html/root/index.html index a5fdacb0..3bd8f2ef 100644 --- a/plugins/base/src/test/resources/expect/functionWithParams/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/root/index.html @@ -1,30 +1,38 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="function.html">function</a></td> + <td> + <div class="symbol monospace">final fun <a href="function.html">function</a>(x: <a href="">Int</a>)</div> + <div class="brief ">Multiline Function Documentation</div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="function.html">function</a></td> - <td>final fun <a href="function.html">function</a>(<a href="">x</a>: <a href="">Int</a>)</td> - <td>Multiline Function Documentation</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/pages.js new file mode 100644 index 00000000..e450fd21 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "function", "location": "root//function.html" } +] diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithParams/out/html/styles/style.css b/plugins/base/src/test/resources/expect/functionWithParams/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithParams/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/-search.html b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/navigation.html b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/navigation.html index ebff817d..3a6e4ff3 100644 --- a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//fn/kotlin.String#//"> <div class="overview"><a href="root//fn.html">fn</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/root/fn.html b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/root/fn.html index fc3630fc..519882b8 100644 --- a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/root/fn.html +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/root/fn.html @@ -1,37 +1,33 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>fn</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="fn.html">fn</a> - <h1>fn</h1> -final fun <a href="">String</a>.<a href="fn.html">fn</a>() - <h3>Description</h3> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//fn/kotlin.String#//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="fn.html">fn</a> + <h1>fn</h1> + <div class="symbol monospace">final fun <a href="">String</a>.<a href="fn.html">fn</a>()</div> + <h3>Description</h3> Function with receiver - <h1>fn</h1> -final fun <a href="">String</a>.<a href="fn.html">fn</a>(<a href="">x</a>: <a href="">Int</a>) - <h3>Description</h3> + <h1>fn</h1> + <div class="symbol monospace">final fun <a href="">String</a>.<a href="fn.html">fn</a>(x: <a href="">Int</a>)</div> + <h3>Description</h3> Function with receiver - - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>x</td> - </tr> - </tbody> - </table> +</div> + </div> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/root/index.html b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/root/index.html index cd92f78d..9ca38e30 100644 --- a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/root/index.html @@ -1,35 +1,45 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="fn.html">fn</a></td> + <td> + <div class="symbol monospace">final fun <a href="">String</a>.<a href="fn.html">fn</a>()</div> + <div class="brief ">Function with receiver</div> + </td> + </tr> + <tr> + <td><a href="fn.html">fn</a></td> + <td> + <div class="symbol monospace">final fun <a href="">String</a>.<a href="fn.html">fn</a>(x: <a href="">Int</a>)</div> + <div class="brief ">Function with receiver</div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="fn.html">fn</a></td> - <td>final fun <a href="">String</a>.<a href="fn.html">fn</a>()</td> - <td>Function with receiver</td> - </tr> - <tr> - <td><a href="fn.html">fn</a></td> - <td>final fun <a href="">String</a>.<a href="fn.html">fn</a>(<a href="">x</a>: <a href="">Int</a>)</td> - <td>Function with receiver</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/pages.js new file mode 100644 index 00000000..c0bd7a2f --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "fn", "location": "root//fn.html" } +] diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/styles/style.css b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/functionWithReceiver/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/-search.html b/plugins/base/src/test/resources/expect/genericFunction/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/genericFunction/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/genericFunction/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/genericFunction/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/genericFunction/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/genericFunction/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/navigation.html b/plugins/base/src/test/resources/expect/genericFunction/out/html/navigation.html index dc7dcf2d..e363cdda 100644 --- a/plugins/base/src/test/resources/expect/genericFunction/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//generic/#//"> <div class="overview"><a href="root//generic.html">generic</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/root/generic.html b/plugins/base/src/test/resources/expect/genericFunction/out/html/root/generic.html index a8f1dbd1..0d90a5e5 100644 --- a/plugins/base/src/test/resources/expect/genericFunction/out/html/root/generic.html +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/root/generic.html @@ -1,23 +1,29 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>generic</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="generic.html">generic</a> - <h1>generic</h1> -private final fun <a href="generic.html">generic</a><<a href="generic.html">generic.T</a> : <a href="">Any</a>>() - <h3>Description</h3> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//generic/#//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="generic.html">generic</a> + <h1>generic</h1> + <div class="symbol monospace">private final fun <<a href="generic.html">T</a> : <a href="">Any</a>> <a href="generic.html">generic</a>()</div> + <h3>Description</h3> generic function </div> + </div> + </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/root/index.html b/plugins/base/src/test/resources/expect/genericFunction/out/html/root/index.html index e89383c9..d10d959e 100644 --- a/plugins/base/src/test/resources/expect/genericFunction/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/root/index.html @@ -1,30 +1,38 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="generic.html">generic</a></td> + <td> + <div class="symbol monospace">private final fun <<a href="generic.html">T</a> : <a href="">Any</a>> <a href="generic.html">generic</a>()</div> + <div class="brief ">generic function</div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="generic.html">generic</a></td> - <td>private final fun <a href="generic.html">generic</a><<a href="generic.html">generic.T</a> : <a href="">Any</a>>()</td> - <td>generic function</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/pages.js new file mode 100644 index 00000000..0a6d445a --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "generic", "location": "root//generic.html" } +] diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/genericFunction/out/html/styles/style.css b/plugins/base/src/test/resources/expect/genericFunction/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunction/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/-search.html b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/navigation.html b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/navigation.html index dc7dcf2d..e363cdda 100644 --- a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//generic/#//"> <div class="overview"><a href="root//generic.html">generic</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/root/generic.html b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/root/generic.html index cd1945f8..3e9b2298 100644 --- a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/root/generic.html +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/root/generic.html @@ -1,23 +1,29 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>generic</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="generic.html">generic</a> - <h1>generic</h1> -final fun <a href="generic.html">generic</a><<a href="generic.html">generic.T</a> : org.jetbrains.kotlin.protobuf.GeneratedMessageLite$GeneratedExtension@5a8ec9b6, <a href="generic.html">generic.R</a> : <a href="">Any</a>>() - <h3>Description</h3> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//generic/#//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="generic.html">generic</a> + <h1>generic</h1> + <div class="symbol monospace">final fun <<a href="generic.html">T</a> : R, <a href="generic.html">R</a> : <a href="">Any</a>> <a href="generic.html">generic</a>()</div> + <h3>Description</h3> generic function </div> + </div> + </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/root/index.html b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/root/index.html index 016b01e7..922f615f 100644 --- a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/root/index.html @@ -1,30 +1,38 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="generic.html">generic</a></td> + <td> + <div class="symbol monospace">final fun <<a href="generic.html">T</a> : R, <a href="generic.html">R</a> : <a href="">Any</a>> <a href="generic.html">generic</a>()</div> + <div class="brief ">generic function</div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="generic.html">generic</a></td> - <td>final fun <a href="generic.html">generic</a>()</td> - <td>generic function</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/pages.js new file mode 100644 index 00000000..0a6d445a --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "generic", "location": "root//generic.html" } +] diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/styles/style.css b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/genericFunctionWithConstraints/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/-search.html b/plugins/base/src/test/resources/expect/inlineFunction/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/inlineFunction/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/navigation.html b/plugins/base/src/test/resources/expect/inlineFunction/out/html/navigation.html index ad2005c3..7ec4828b 100644 --- a/plugins/base/src/test/resources/expect/inlineFunction/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//f/#kotlin.Function0[kotlin.String]//"> <div class="overview"><a href="root//f.html">f</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/root/f.html b/plugins/base/src/test/resources/expect/inlineFunction/out/html/root/f.html index 0661e211..c391e913 100644 --- a/plugins/base/src/test/resources/expect/inlineFunction/out/html/root/f.html +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/root/f.html @@ -1,29 +1,28 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>f</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//f/#kotlin.Function0[kotlin.String]//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> + <h1>f</h1> + <div class="symbol monospace">final fun <a href="f.html">f</a>(a: + <div class="symbol monospace">() -> <a href="">String</a></div> +)</div> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> - <h1>f</h1> -final fun <a href="f.html">f</a>(<a href="">a</a>: <a href="">Function0</a><<a href="">String</a>>) - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>a</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/root/index.html b/plugins/base/src/test/resources/expect/inlineFunction/out/html/root/index.html index a5dd2a5d..c2f551a5 100644 --- a/plugins/base/src/test/resources/expect/inlineFunction/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/root/index.html @@ -1,30 +1,40 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="f.html">f</a></td> + <td> + <div class="symbol monospace">final fun <a href="f.html">f</a>(a: + <div class="symbol monospace">() -> <a href="">String</a></div> +)</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="f.html">f</a></td> - <td>final fun <a href="f.html">f</a>(<a href="">a</a>: <a href="">Function0</a><<a href="">String</a>>)</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/pages.js new file mode 100644 index 00000000..81ed5cc3 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "f", "location": "root//f.html" } +] diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/inlineFunction/out/html/styles/style.css b/plugins/base/src/test/resources/expect/inlineFunction/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineFunction/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/-search.html b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/navigation.html b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/navigation.html index ad2005c3..7ec4828b 100644 --- a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//f/#kotlin.Function0[kotlin.String]//"> <div class="overview"><a href="root//f.html">f</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/root/f.html b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/root/f.html index 0661e211..c391e913 100644 --- a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/root/f.html +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/root/f.html @@ -1,29 +1,28 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>f</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//f/#kotlin.Function0[kotlin.String]//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> + <h1>f</h1> + <div class="symbol monospace">final fun <a href="f.html">f</a>(a: + <div class="symbol monospace">() -> <a href="">String</a></div> +)</div> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> - <h1>f</h1> -final fun <a href="f.html">f</a>(<a href="">a</a>: <a href="">Function0</a><<a href="">String</a>>) - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>a</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/root/index.html b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/root/index.html index a5dd2a5d..c2f551a5 100644 --- a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/root/index.html @@ -1,30 +1,40 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="f.html">f</a></td> + <td> + <div class="symbol monospace">final fun <a href="f.html">f</a>(a: + <div class="symbol monospace">() -> <a href="">String</a></div> +)</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="f.html">f</a></td> - <td>final fun <a href="f.html">f</a>(<a href="">a</a>: <a href="">Function0</a><<a href="">String</a>>)</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/pages.js new file mode 100644 index 00000000..81ed5cc3 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "f", "location": "root//f.html" } +] diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/styles/style.css b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/inlineSuspendFunction/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/-search.html b/plugins/base/src/test/resources/expect/signatureTest/out/html/-search.html new file mode 100644 index 00000000..f32a089f --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/-search.html @@ -0,0 +1,28 @@ +<html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Search</title> + <link href="styles/style.css" rel="Stylesheet"> + <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> + <script>var pathToRoot = "";</script> + </head> + <body> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> + </div> + </div> + </body> +</html> + diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/signatureTest/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/signatureTest/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/signatureTest/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/signatureTest/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/navigation.html b/plugins/base/src/test/resources/expect/signatureTest/out/html/navigation.html new file mode 100644 index 00000000..f7cf0041 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/navigation.html @@ -0,0 +1,13 @@ +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> + <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> + <div class="sideMenuPart" id="nav-submenu-0" pageId="signatureTest/////"> + <div class="overview"><a href="root/signatureTest/index.html">signatureTest</a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="signatureTest//test/#kotlin.Function1[kotlin.Int,kotlin.Int]//"> + <div class="overview"><a href="root/signatureTest/test.html">test</a></div> + </div> + <div class="sideMenuPart" id="nav-submenu-0-1" pageId="signatureTest//test2/#kotlin.Function2[kotlin.Int,kotlin.Int,kotlin.Int]//"> + <div class="overview"><a href="root/signatureTest/test2.html">test2</a></div> + </div> + </div> +</div> + diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/root/index.html b/plugins/base/src/test/resources/expect/signatureTest/out/html/root/index.html new file mode 100644 index 00000000..336c1700 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/root/index.html @@ -0,0 +1,35 @@ +<html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>root</title> + <link href="../styles/style.css" rel="Stylesheet"> + <script type="text/javascript" src="../scripts/navigationLoader.js" async="async"></script> + <script>var pathToRoot = "../";</script> + </head> + <body> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="index.html">root</a> + <h1>root</h1> + <h2>Packages</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="signatureTest/index.html">signatureTest</a></td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + </body> +</html> + diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/root/signatureTest/index.html b/plugins/base/src/test/resources/expect/signatureTest/out/html/root/signatureTest/index.html new file mode 100644 index 00000000..8f68531d --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/root/signatureTest/index.html @@ -0,0 +1,50 @@ +<html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>signatureTest</title> + <link href="../../styles/style.css" rel="Stylesheet"> + <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> + <script>var pathToRoot = "../../";</script> + </head> + <body> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="signatureTest/////">//<a href="../index.html">root</a>/<a href="index.html">signatureTest</a> + <h1>Package signatureTest</h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="test.html">test</a></td> + <td> + <div class="symbol monospace">final fun <a href="test.html">test</a>(i: + <div class="symbol monospace">(<a href="">Int</a>) -> <a href="">Int</a></div> +)</div> + <div class="brief "></div> + </td> + </tr> + <tr> + <td><a href="test2.html">test2</a></td> + <td> + <div class="symbol monospace">final fun <a href="test2.html">test2</a>(i: + <div class="symbol monospace"><a href="">Int</a>.(<a href="">Int</a>) -> <a href="">Int</a></div> +)</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + </body> +</html> + diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/root/signatureTest/test.html b/plugins/base/src/test/resources/expect/signatureTest/out/html/root/signatureTest/test.html new file mode 100644 index 00000000..7449b3e1 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/root/signatureTest/test.html @@ -0,0 +1,29 @@ +<html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>test</title> + <link href="../../styles/style.css" rel="Stylesheet"> + <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> + <script>var pathToRoot = "../../";</script> + </head> + <body> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="signatureTest//test/#kotlin.Function1[kotlin.Int,kotlin.Int]//">//<a href="../index.html">root</a>/<a href="index.html">signatureTest</a>/<a href="test.html">test</a> + <h1>test</h1> + <div class="symbol monospace">final fun <a href="test.html">test</a>(i: + <div class="symbol monospace">(<a href="">Int</a>) -> <a href="">Int</a></div> +)</div> + </div> + </div> + </div> + </body> +</html> + diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/root/signatureTest/test2.html b/plugins/base/src/test/resources/expect/signatureTest/out/html/root/signatureTest/test2.html new file mode 100644 index 00000000..9b2b441e --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/root/signatureTest/test2.html @@ -0,0 +1,29 @@ +<html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>test2</title> + <link href="../../styles/style.css" rel="Stylesheet"> + <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> + <script>var pathToRoot = "../../";</script> + </head> + <body> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="signatureTest//test2/#kotlin.Function2[kotlin.Int,kotlin.Int,kotlin.Int]//">//<a href="../index.html">root</a>/<a href="index.html">signatureTest</a>/<a href="test2.html">test2</a> + <h1>test2</h1> + <div class="symbol monospace">final fun <a href="test2.html">test2</a>(i: + <div class="symbol monospace"><a href="">Int</a>.(<a href="">Int</a>) -> <a href="">Int</a></div> +)</div> + </div> + </div> + </div> + </body> +</html> + diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/pages.js new file mode 100644 index 00000000..7c74ea83 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/pages.js @@ -0,0 +1,6 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "signatureTest", "location": "root/signatureTest/index.html" }, +{ "name": "test", "location": "root/signatureTest/test.html" }, +{ "name": "test2", "location": "root/signatureTest/test2.html" } +] diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/signatureTest/out/html/styles/style.css b/plugins/base/src/test/resources/expect/signatureTest/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/signatureTest/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/-search.html b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/navigation.html b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/navigation.html index 5f182c80..176e51b8 100644 --- a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//availableSince1.1/#//"> <div class="overview"><a href="root//available-since1.1.html">availableSince1.1</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/root/available-since1.1.html b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/root/available-since1.1.html index 42aa89c4..543853c8 100644 --- a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/root/available-since1.1.html +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/root/available-since1.1.html @@ -1,23 +1,29 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>availableSince1.1</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="available-since1.1.html">availableSince1.1</a> - <h1>availableSince1.1</h1> -final fun <a href="available-since1.1.html">availableSince1.1</a>(): <a href="">String</a> - <h3>Description</h3> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//availableSince1.1/#//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="available-since1.1.html">availableSince1.1</a> + <h1>availableSince1.1</h1> + <div class="symbol monospace">final fun <a href="available-since1.1.html">availableSince1.1</a>(): <a href="">String</a></div> + <h3>Description</h3> Quite useful <a href="[String]">String</a> </div> + </div> + </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/root/index.html b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/root/index.html index 65836c49..c9ccf331 100644 --- a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/root/index.html @@ -1,30 +1,38 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="available-since1.1.html">availableSince1.1</a></td> + <td> + <div class="symbol monospace">final fun <a href="available-since1.1.html">availableSince1.1</a>(): <a href="">String</a></div> + <div class="brief ">Quite useful String</div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="available-since1.1.html">availableSince1.1</a></td> - <td>final fun <a href="available-since1.1.html">availableSince1.1</a>(): <a href="">String</a></td> - <td>Quite useful String</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/pages.js new file mode 100644 index 00000000..76b18c22 --- /dev/null +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "availableSince1.1", "location": "root//available-since1.1.html" } +] diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/sinceKotlin/out/html/styles/style.css b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/sinceKotlin/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/-search.html b/plugins/base/src/test/resources/expect/suspendFunction/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/suspendFunction/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/navigation.html b/plugins/base/src/test/resources/expect/suspendFunction/out/html/navigation.html index ad2005c3..a6a421f1 100644 --- a/plugins/base/src/test/resources/expect/suspendFunction/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//f/#//"> <div class="overview"><a href="root//f.html">f</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/root/f.html b/plugins/base/src/test/resources/expect/suspendFunction/out/html/root/f.html index 7900fb98..699949e0 100644 --- a/plugins/base/src/test/resources/expect/suspendFunction/out/html/root/f.html +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/root/f.html @@ -1,20 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>f</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//f/#//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> + <h1>f</h1> + <div class="symbol monospace">final fun <a href="f.html">f</a>()</div> + </div> </div> - <div id="sideMenu"></div> </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> - <h1>f</h1> -final fun <a href="f.html">f</a>()</div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/root/index.html b/plugins/base/src/test/resources/expect/suspendFunction/out/html/root/index.html index 867d7faa..6ed21e80 100644 --- a/plugins/base/src/test/resources/expect/suspendFunction/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/root/index.html @@ -1,30 +1,38 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="f.html">f</a></td> + <td> + <div class="symbol monospace">final fun <a href="f.html">f</a>()</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="f.html">f</a></td> - <td>final fun <a href="f.html">f</a>()</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/pages.js new file mode 100644 index 00000000..81ed5cc3 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "f", "location": "root//f.html" } +] diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/suspendFunction/out/html/styles/style.css b/plugins/base/src/test/resources/expect/suspendFunction/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendFunction/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/-search.html b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/-search.html index 1ee812bb..f32a089f 100644 --- a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/-search.html +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/-search.html @@ -1,22 +1,27 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Search</title> <link href="styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="scripts/pages.js" async="async"></script> + <script type="text/javascript" src="scripts/search.js" async="async"></script> <script>var pathToRoot = "";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <h1 id="searchTitle">Search results for </h1> + <table> + <tbody id="searchTable"></tbody> + </table> </div> - <div id="sideMenu"></div> - </div> - <div id="content"> - <h1 id="searchTitle">Search results for </h1> - <table> - <tbody id="searchTable"></tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/arrow_down.svg b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/arrow_down.svg new file mode 100644 index 00000000..89e7df47 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/arrow_down.svg @@ -0,0 +1,3 @@ +<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.71824 1.66658L9.01113 0.959473L5.00497 4.96447L1.00008 0.959473L0.292969 1.66658L5.01113 6.38474L9.71824 1.66658Z" fill="#A1AAB4"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/docs_logo.svg b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/docs_logo.svg new file mode 100644 index 00000000..7c1e3ae8 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/docs_logo.svg @@ -0,0 +1,7 @@ +<svg width="125" height="27" viewBox="0 0 125 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M89.1611 7.6297V25.6345V25.6867H103.843V21.8039H93.3589V10.3852H103.843V6.50244H89.1611V7.6297Z" fill="#27282C"/> +<path d="M124.989 21.8039L114.778 10.3852H124.905V6.50244H109.059V10.3852L119.459 21.8039H109.059V25.6867H125V21.8039H124.989Z" fill="#27282C"/> +<path d="M58.2978 7.76556C56.5872 6.46086 54.4463 5.67804 52.1271 5.67804C46.5336 5.67804 42 10.1871 42 15.7503C42 21.3135 46.5336 25.8226 52.1271 25.8226C54.4463 25.8226 56.5872 25.0502 58.2978 23.735V25.7182H62.4955V0H58.2978V7.76556ZM52.1271 21.8041C48.7584 21.8041 46.0298 19.0903 46.0298 15.7399C46.0298 12.3894 48.7584 9.67563 52.1271 9.67563C55.4958 9.67563 58.2243 12.3894 58.2243 15.7399C58.2138 19.0903 55.4853 21.8041 52.1271 21.8041Z" fill="#27282C"/> +<path d="M75.9698 5.8656C70.3763 5.8656 65.8428 10.3746 65.8428 15.9379C65.8428 21.5011 70.3763 26.0101 75.9698 26.0101C81.5633 26.0101 86.0969 21.5011 86.0969 15.9379C86.0969 10.3746 81.5633 5.8656 75.9698 5.8656ZM75.9698 21.9916C72.6012 21.9916 69.8726 19.2779 69.8726 15.9274C69.8726 12.577 72.6012 9.86319 75.9698 9.86319C79.3385 9.86319 82.0671 12.577 82.0671 15.9274C82.0671 19.2779 79.3385 21.9916 75.9698 21.9916Z" fill="#27282C"/> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/logo-icon.svg b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/logo-icon.svg new file mode 100644 index 00000000..1b3b3670 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/logo-icon.svg @@ -0,0 +1,3 @@ +<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M26 26H0V0H26L12.9243 12.9747L26 26Z" fill="#F8873C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/logo-text.svg b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/logo-text.svg new file mode 100644 index 00000000..7bf3e6c5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/images/logo-text.svg @@ -0,0 +1,6 @@ +<svg width="83" height="27" viewBox="0 0 83 27" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M47.1611 7.6297V25.6345V25.6867H61.8428V21.8039H51.3589V10.3852H61.8428V6.50244H47.1611V7.6297Z" fill="#27282C"/> +<path d="M82.9891 21.8039L72.778 10.3852H82.9051V6.50244H67.0586V10.3852L77.4585 21.8039H67.0586V25.6867H82.9996V21.8039H82.9891Z" fill="#27282C"/> +<path d="M16.2978 7.76556C14.5872 6.46086 12.4463 5.67804 10.1271 5.67804C4.53357 5.67804 0 10.1871 0 15.7503C0 21.3135 4.53357 25.8226 10.1271 25.8226C12.4463 25.8226 14.5872 25.0502 16.2978 23.735V25.7182H20.4955V0H16.2978V7.76556ZM10.1271 21.8041C6.75838 21.8041 4.02984 19.0903 4.02984 15.7399C4.02984 12.3894 6.75838 9.67563 10.1271 9.67563C13.4958 9.67563 16.2243 12.3894 16.2243 15.7399C16.2138 19.0903 13.4853 21.8041 10.1271 21.8041Z" fill="#27282C"/> +<path d="M33.9703 5.86566C28.3768 5.86566 23.8433 10.3747 23.8433 15.9379C23.8433 21.5011 28.3768 26.0102 33.9703 26.0102C39.5638 26.0102 44.0974 21.5011 44.0974 15.9379C44.0974 10.3747 39.5638 5.86566 33.9703 5.86566ZM33.9703 21.9917C30.6016 21.9917 27.8731 19.2779 27.8731 15.9275C27.8731 12.577 30.6016 9.86325 33.9703 9.86325C37.339 9.86325 40.0676 12.577 40.0676 15.9275C40.0676 19.2779 37.339 21.9917 33.9703 21.9917Z" fill="#27282C"/> +</svg> diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/navigation.html b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/navigation.html index ad2005c3..7ec4828b 100644 --- a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/navigation.html +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/navigation.html @@ -1,8 +1,8 @@ -<div class="sideMenuPart" id="nav-submenu"> +<div class="sideMenuPart" id="nav-submenu" pageId="/////"> <div class="overview"><a href="root/index.html">root</a><span class="navButton" onclick="document.getElementById("nav-submenu").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0"> + <div class="sideMenuPart" id="nav-submenu-0" pageId="/////"> <div class="overview"><a href="root//index.html"></a><span class="navButton" onclick="document.getElementById("nav-submenu-0").classList.toggle("hidden");"><span class="navButtonContent"></span></span></div> - <div class="sideMenuPart" id="nav-submenu-0-0"> + <div class="sideMenuPart" id="nav-submenu-0-0" pageId="//f/#kotlin.Function0[kotlin.String]//"> <div class="overview"><a href="root//f.html">f</a></div> </div> </div> diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/root/f.html b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/root/f.html index 0661e211..c391e913 100644 --- a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/root/f.html +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/root/f.html @@ -1,29 +1,28 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title>f</title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="//f/#kotlin.Function0[kotlin.String]//">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> + <h1>f</h1> + <div class="symbol monospace">final fun <a href="f.html">f</a>(a: + <div class="symbol monospace">() -> <a href="">String</a></div> +)</div> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a>/<a href="f.html">f</a> - <h1>f</h1> -final fun <a href="f.html">f</a>(<a href="">a</a>: <a href="">Function0</a><<a href="">String</a>>) - <h2>Parameters</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td>a</td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/root/index.html b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/root/index.html index a5dd2a5d..c2f551a5 100644 --- a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/root/index.html +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/root/index.html @@ -1,30 +1,40 @@ <html> <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="../../styles/style.css" rel="Stylesheet"> <script type="text/javascript" src="../../scripts/navigationLoader.js" async="async"></script> <script>var pathToRoot = "../../";</script> </head> <body> - <div id="navigation"> - <div id="searchBar"> - <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + <div id="container"> + <div id="leftColumn"> + <div id="logo"></div> + <div id="sideMenu"></div> + </div> + <div id="main"> + <div id="searchBar"> + <form action="../../-search.html" method="get" id="searchForm"><input type="search" name="query"><input type="submit" value="Search"></form> + </div> + <div id="content" pageIds="/////">//<a href="../index.html">root</a>/<a href="index.html"></a> + <h1>Package </h1> + <h2>Functions</h2> + <table> + <thead></thead> + <tbody> + <tr> + <td><a href="f.html">f</a></td> + <td> + <div class="symbol monospace">final fun <a href="f.html">f</a>(a: + <div class="symbol monospace">() -> <a href="">String</a></div> +)</div> + <div class="brief "></div> + </td> + </tr> + </tbody> + </table> + </div> </div> - <div id="sideMenu"></div> - </div> - <div id="content">//<a href="../index.html">root</a>/<a href="index.html"></a> - <h1>Package </h1> - <h2>Functions</h2> - <table> - <thead></thead> - <tbody> - <tr> - <td><a href="f.html">f</a></td> - <td>final fun <a href="f.html">f</a>(<a href="">a</a>: <a href="">Function0</a><<a href="">String</a>>)</td> - <td></td> - </tr> - </tbody> - </table> </div> </body> </html> diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/navigationLoader.js b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/navigationLoader.js new file mode 100644 index 00000000..5fe52ade --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/navigationLoader.js @@ -0,0 +1,41 @@ +onload = () => { + fetch(pathToRoot + "navigation.html") + .then(response => response.text()) + .then(data => { + document.getElementById("sideMenu").innerHTML = data; + }).then(() => { + document.querySelectorAll(".overview > a").forEach(link => { + link.setAttribute("href", pathToRoot + link.getAttribute("href")); + console.log(link.attributes["href"]) + }) + }).then(() => { + document.querySelectorAll(".sideMenuPart").forEach(nav => { + if (!nav.classList.contains("hidden")) nav.classList.add("hidden") + }) + }).then(() => { + revealNavigationForCurrentPage() + }) +}; + +revealNavigationForCurrentPage = () => { + let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); + let parts = document.querySelectorAll(".sideMenuPart"); + let found = 0; + do { + parts.forEach(part => { + if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { + found = 1; + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part) + } + }); + pageId = pageId.substring(0, pageId.lastIndexOf("/")) + } while (pageId.indexOf("/") !== -1 && found === 0) +}; + +revealParents = (part) => { + if (part.classList.contains("sideMenuPart")) { + if (part.classList.contains("hidden")) part.classList.remove("hidden"); + revealParents(part.parentNode) + } +};
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/pages.js b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/pages.js new file mode 100644 index 00000000..81ed5cc3 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/pages.js @@ -0,0 +1,5 @@ +var pages = [ +{ "name": "root", "location": "root/index.html" }, +{ "name": "", "location": "root//index.html" }, +{ "name": "f", "location": "root//f.html" } +] diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/scripts.js b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/scripts.js new file mode 100644 index 00000000..c2e29b9f --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/scripts.js @@ -0,0 +1,11 @@ +document.getElementById("navigationFilter").oninput = function (e) { + var input = e.target.value; + var menuParts = document.getElementsByClassName("sideMenuPart") + for (let part of menuParts) { + if(part.querySelector("a").textContent.startsWith(input)) { + part.classList.remove("filtered"); + } else { + part.classList.add("filtered"); + } + } +}
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/search.js b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/search.js new file mode 100644 index 00000000..04d88ab5 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/scripts/search.js @@ -0,0 +1,7 @@ +let query = new URLSearchParams(window.location.search).get("query"); +document.getElementById("searchTitle").innerHTML += '"' + query + '":'; +document.getElementById("searchTable").innerHTML = pages + .filter(el => el.name.toLowerCase().startsWith(query.toLowerCase())) + .reduce((acc, element) => { + return acc + '<tr><td><a href="' + element.location + '">' + element.name + '</a></td></tr>' + }, "");
\ No newline at end of file diff --git a/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/styles/style.css b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/styles/style.css new file mode 100644 index 00000000..063a9502 --- /dev/null +++ b/plugins/base/src/test/resources/expect/suspendInlineFunction/out/html/styles/style.css @@ -0,0 +1,417 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + + +#container { + display: flex; + flex-direction: row; + min-height: 100%; +} + +#main { + width: 100%; + padding-left: 12px; +} + +#leftColumn { + padding-left: 12px; + min-height: 100%; + border-right: 2px solid #DADFE6; +} + +@media screen and (max-width: 600px) { + #container { + flex-direction: column; + } + + #leftColumn { + border-right: none; + } +} + +#sideMenu { + padding-top: 12px; + padding-right: 12px; +} + +#sideMenu .sideMenuPart { + padding-left: 1em; +} + +#sideMenu img { + margin: 1em 0.25em; +} + +#sideMenu hr { + background: #DADFE6; +} + +#searchBar { + width: 100%; + pointer-events: none; +} + +#searchForm { + float: right; + pointer-events: all; +} + +#logo { + padding: 5px; + background-size: 55% 90%; + border-bottom: 2px solid #DADFE6; + background-repeat: no-repeat; + background-image: url(../images/docs_logo.svg); + height: 6vh; +} + +.monospace, +.code { + font-family: monospace; +} + +.strikethrough { + text-decoration: line-through; +} + +.symbol { + padding: 5px; + background-color: #F4F4F4; +} + +.sideMenuPart > .overview { + width: 100%; + display: inline-flex; +} + +.overview > .navButton { + width: 100%; + display: inline-flex; + justify-content: flex-end; +} + +.sideMenuPart > .overview:hover { + background-color: rgba(91, 93, 239, 0.15); +} + +.sideMenuPart .hidden > .overview .navButtonContent::before { + transform: rotate(0deg); +} + +.sideMenuPart > .overview .navButtonContent::before { + content: url("../images/arrow_down.svg"); + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: rotate(180deg); +} + +.sideMenuPart.hidden > .navButton .navButtonContent::after { + content: '\02192'; +} + +.sideMenuPart.hidden > .sideMenuPart { + height: 0; + visibility: hidden; +} + +.filtered > a, .filtered > .navButton { + display: none; +} + +body, table { + font: 14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + background: #F4F4F4; + font-weight: 300; + margin-right: auto; + max-width: 1440px; +} + +table { + width: 100%; + border-collapse: collapse; + background-color: #ffffff; + padding: 5px; +} + +tbody > tr { + border-bottom: 2px solid #F4F4F4; +} + +td:first-child { + width: 20vw; +} + +.keyword { + color: black; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.symbol { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size: 12px; +} + +.identifier { + color: darkblue; + font-size: 12px; + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +.brief { + width: 40vw; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +h1, h2, h3, h4, h5, h6 { + color: #222; +} + +p, ul, ol, table, pre, dl { + margin: 0 0 20px; +} + +h1, h2, h3 { + line-height: 1.1; +} + +h1 { + font-size: 28px; +} + +h2 { + color: #393939; +} + +h3, h4, h5, h6 { + color: #494949; +} + +a { + color: #258aaf; + font-weight: 400; + text-decoration: none; +} + +a:hover { + color: inherit; + text-decoration: underline; +} + +a small { + font-size: 11px; + color: #555; + margin-top: -0.6em; + display: block; +} + +.wrapper { + width: 860px; + margin: 0 auto; +} + +blockquote { + border-left: 1px solid #e5e5e5; + margin: 0; + padding: 0 0 0 20px; + font-style: italic; +} + +code, pre { + font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color: #333; + font-size: 12px; +} + +pre { + display: block; + /* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + */ + overflow-x: auto; +} + +th, td { + text-align: left; + vertical-align: top; + padding: 5px 10px; +} + +dt { + color: #444; + font-weight: 700; +} + +th { + color: #444; +} + +img { + max-width: 100%; +} + +header { + width: 270px; + float: left; + position: fixed; +} + +header ul { + list-style: none; + height: 40px; + + padding: 0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + + border-radius: 5px; + border: 1px solid #d2d2d2; + box-shadow: inset #fff 0 1px 0, inset rgba(0, 0, 0, 0.03) 0 -1px 0; + width: 270px; +} + +header li { + width: 89px; + float: left; + border-right: 1px solid #d2d2d2; + height: 40px; +} + +header ul a { + line-height: 1; + font-size: 11px; + color: #999; + display: block; + text-align: center; + padding-top: 6px; + height: 40px; +} + +strong { + color: #222; + font-weight: 700; +} + +header ul li + li { + width: 88px; + border-left: 1px solid #fff; +} + +header ul li + li + li { + border-right: none; + width: 89px; +} + +header ul a strong { + font-size: 14px; + display: block; + color: #222; +} + +section { + width: 500px; + float: right; + padding-bottom: 50px; +} + +small { + font-size: 11px; +} + +hr { + border: 0; + background: #e5e5e5; + height: 1px; + margin: 0 0 20px; +} + +footer { + width: 270px; + float: left; + position: fixed; + bottom: 50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width: auto; + margin: 0; + } + + header, section, footer { + float: none; + position: static; + width: auto; + } + + header { + padding-right: 320px; + } + + section { + border: 1px solid #e5e5e5; + border-width: 1px 0; + padding: 20px 0; + margin: 0 0 20px; + } + + header a small { + display: inline; + } + + header ul { + position: absolute; + right: 50px; + top: 52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap: break-word; + } + + header { + padding: 0; + } + + header ul, header p.view { + position: static; + } + + pre, code { + word-wrap: normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding: 15px; + } + + header ul { + display: none; + } +} + +@media print { + body { + padding: 0.4in; + font-size: 12pt; + color: #444; + } +} |