From 4ca1910b82dd8c2a829b9fed65a5f161bffde0d5 Mon Sep 17 00:00:00 2001 From: Eric Bower Date: Sat, 13 Jan 2024 00:04:22 -0500 Subject: [PATCH] backport pico --- Makefile | 4 +- docs/cmd/ssg.go | 24 +- docs/static/docs.js | 77 ---- docs/static/index.css | 657 +------------------------------ docs/static/syntax.css | 700 ---------------------------------- docs/tmpl/base.layout.tmpl | 7 +- docs/tmpl/marketing.page.tmpl | 32 +- docs/tmpl/post.page.tmpl | 91 ++--- docs/tmpl/toc.partial.tmpl | 8 +- 9 files changed, 92 insertions(+), 1508 deletions(-) delete mode 100644 docs/static/docs.js delete mode 100644 docs/static/syntax.css diff --git a/Makefile b/Makefile index d2cc2d8..237648c 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ ssg: cp ./docs/static/* ./docs/public .PHONY: ssg -docs: ssg +dev: ssg rsync -vr ./docs/public/ hey@pgs.sh:/sish-local # ssh hey@pgs.sh link sish-prod sish-local --write -.PHONY: docs +.PHONY: dev diff --git a/docs/cmd/ssg.go b/docs/cmd/ssg.go index b479597..b30a1d5 100644 --- a/docs/cmd/ssg.go +++ b/docs/cmd/ssg.go @@ -8,18 +8,6 @@ func main() { pager := pdocs.Pager("./docs/docs") sitemap := []*pdocs.Sitemap{ {Text: "Marketing", Href: "/", Page: pager("marketing.md")}, - { - Text: "How it Works", - Href: "/how-it-works", - Page: pager("how-it-works.md"), - Children: []*pdocs.Sitemap{ - {Text: "Port Forward"}, - {Text: "Traditional VPN"}, - {Text: "sish Public"}, - {Text: "sish Private"}, - {Text: "Additional Details"}, - }, - }, { Text: "Getting Started", Href: "/getting-started", @@ -33,6 +21,18 @@ func main() { {Text: "DNS Setup"}, }, }, + { + Text: "How it Works", + Href: "/how-it-works", + Page: pager("how-it-works.md"), + Children: []*pdocs.Sitemap{ + {Text: "Port Forward"}, + {Text: "Traditional VPN"}, + {Text: "sish Public"}, + {Text: "sish Private"}, + {Text: "Additional Details"}, + }, + }, { Text: "Forwarding Types", Href: "/forwarding-types", diff --git a/docs/static/docs.js b/docs/static/docs.js deleted file mode 100644 index 8db408e..0000000 --- a/docs/static/docs.js +++ /dev/null @@ -1,77 +0,0 @@ -document.addEventListener("DOMContentLoaded", init); - -function topNav() { - const topLevel = document.querySelectorAll(".nav-list li"); - topLevel.forEach((li) => { - const link = li.querySelector("a") - const href = link.getAttribute("href"); - if (location.pathname === href) { - li.classList.add("current-page"); - } - }); -} - -function init() { - topNav(); - - let throttle = null; - const headers = document.querySelectorAll('h2,h3,h4') - const scrollEl = document.querySelector(".content"); - scrollEl.addEventListener('scroll', updateNav, { passive: true }) - window.addEventListener('load', updateNav) - - const nav = document.querySelector(".toc"); - const btns = document.querySelectorAll(".toc-btn"); - btns.forEach((btn) => { - btn.addEventListener("click", (e) => { - e.preventDefault(); - nav.classList.toggle("nav-show"); - }); - }); - - function updateNav() { - let h2, h3, h4; - for (let i = 0; i < headers.length; i++) { - const h = headers[i] - const top = h.getBoundingClientRect().top; - if (top > 10) { - break - } - - if (h.tagName === 'H2') { - h2 = h - h3 = h4 = null - } else if (h.tagName === 'H3') { - h3 = h - h4 = null - } else { - h4 = h - } - } - - for (let i = 0; i < headers.length; i++) { - const h = headers[i] - if (h.tagName === 'H4') { - continue - } - const nav = document.getElementById("nav-" + h.id); - if (nav) { - nav.classList.toggle('current', h === (h3 || h2)); - } - } - - // Throttle to avoid crashes in Safari - const h = h4 || h3 || h2; - pathhash = location.pathname + (h ? '#' + h.id : ''); - if (throttle === null) { - throttle = setTimeout(updatePathname, 300); - } - } - - function updatePathname() { - throttle = null - if (location.pathname + location.hash !== pathhash) { - history.replaceState(null, '', pathhash) - } - } -} diff --git a/docs/static/index.css b/docs/static/index.css index d7c0f5f..eef98cb 100644 --- a/docs/static/index.css +++ b/docs/static/index.css @@ -1,656 +1 @@ -*, -::before, -::after { - box-sizing: border-box; -} - -::-moz-focus-inner { - border-style: none; - padding: 0; -} -:-moz-focusring { - outline: 1px dotted ButtonText; -} -:-moz-ui-invalid { - box-shadow: none; -} - -@media (prefers-color-scheme: light) { - :root { - --main-hue: 250; - --white: #6a737d; - --code: #fff8d3; - --code-border: #f0d547; - --pre: #f6f8fa; - --bg-color: #fff; - --text-color: #24292f; - --link-color: #005cc5; - --visited: #6f42c1; - --blockquote: #005cc5; - --blockquote-bg: #fff; - --hover: #d73a49; - --grey: #ccc; - --grey-light: #6a708e; - } -} - -@media (prefers-color-scheme: dark) { - :root { - --main-hue: 250; - --white: #f2f2f2; - --code: #414558; - --code-border: #252525; - --pre: #252525; - --bg-color: #282a36; - --text-color: #f2f2f2; - --link-color: #8be9fd; - --visited: #bd93f9; - --blockquote: #bd93f9; - --blockquote-bg: #414558; - --hover: #ff80bf; - --grey: #414558; - --grey-light: #6a708e; - } -} - -html { - background-color: var(--bg-color); - color: var(--text-color); - line-height: 1.5; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, - Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - -webkit-text-size-adjust: 100%; - -moz-tab-size: 4; - tab-size: 4; -} - -body { - margin: 0 auto; -} - -img { - max-width: 100%; - height: auto; -} - -b, -strong { - font-weight: bold; -} - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, - monospace; -} - -code, -kbd, -samp { - background-color: var(--code); - border: 1px solid var(--code-border); -} - -pre > code { - background-color: inherit; - padding: 0; - border: none; -} - -code { - border-radius: 0.3rem; - padding: 0.15rem 0.2rem 0.05rem; -} - -pre { - border-radius: 5px; - padding: 1rem; - margin: 1rem 0; - overflow-x: auto; - background-color: var(--pre) !important; -} - -small { - font-size: 0.8rem; -} - -summary { - display: list-item; -} - -h1, -h2, -h3 { - margin: 0; - padding: 0.6rem 0 0 0; - border: 0; - font-style: normal; - font-weight: inherit; - font-size: inherit; -} - -h1 > code { - font-size: inherit; -} - -h2 > code { - font-size: inherit; -} - -h3 > code { - font-size: inherit; -} - -path { - fill: var(--text-color); - stroke: var(--text-color); -} - -.md h1, h2, h3, h4 { - margin: 1.5rem 0; - font-weight: bold; - border-bottom: 2px solid var(--grey); - padding-bottom: 15px; -} - -.md h1 { - font-size: 1.60rem; - line-height: 1.15; -} - -.md h2 { - font-size: 1.45rem; - line-height: 1.15; -} - -.md h3 { - font-size: 1.20rem; -} - -.md h4 { - font-size: 1rem; -} - -hr { - color: inherit; - border: 0; - margin: 0; - height: 1px; - background: var(--grey); - margin: 1rem auto; - text-align: center; -} - -a { - text-decoration: underline; - color: var(--link-color); -} - -a:hover, -a:visited:hover { - color: var(--hover); -} - -a:visited { - color: var(--visited); -} - -a.link-grey { - text-decoration: underline; - color: var(--white); -} - -a.link-grey:visited { - color: var(--white); -} - -section { - margin-bottom: 1.4rem; -} - -section:last-child { - margin-bottom: 0; -} - -header { - margin: 1rem auto; -} - -p { - margin: 0.8rem 0; -} - -article { - overflow-wrap: break-word; -} - -blockquote { - border-left: 5px solid var(--blockquote); - background-color: var(--blockquote-bg); - padding: 0.8rem; - margin: 1rem 0; -} - -blockquote > p { - margin: 0; -} - -ul, -ol { - padding: 0 0 0 2rem; - list-style-position: outside; -} - -ul[style*="list-style-type: none;"] { - padding: 0; -} - -li { - margin: 0.5rem 0; -} - -li > pre { - padding: 0; -} - -footer { - text-align: center; - margin-bottom: 4rem; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 0; -} - -dd:not(:last-child) { - margin-bottom: 0.5rem; -} - -figure { - margin: 0; -} - -.container { - max-width: 900px; -} - -.text-grey { - color: var(--grey); -} - -.text-3xl { - font-size: 3rem; -} - -.text-2xl { - font-size: 1.85rem; - line-height: 1.15; -} - -.text-xl { - font-size: 1.55rem; - line-height: 1.15; -} - -.text-lg { - font-size: 1.35rem; - line-height: 1.15; -} - -.text-md { - font-size: 1.15rem; - line-height: 1.15; -} - -.text-sm { - font-size: 0.875rem; -} - -.text-center { - text-align: center; -} - -.text-underline { - border-bottom: 3px solid var(--text-color); - padding-bottom: 3px; -} - -.font-bold { - font-weight: bold; -} - -.font-italic { - font-style: italic; -} - -.inline { - display: inline; -} - -.inline-block { - display: inline-block; -} - -.flex { - display: flex; -} - -.flex-col { - flex-direction: column; -} - -.items-center { - align-items: center; -} - -.m-0 { - margin: 0; -} - -.mt { - margin-top: 0.5rem; -} - -.mt-4 { - margin-top: 1.5rem; -} - -.mb { - margin-bottom: 0.5rem; -} - -.mr { - margin-right: 0.5rem; -} - -.ml-sm { - margin-left: 0.25rem; -} - -.ml { - margin-left: 0.5rem; -} - -.my { - margin-top: 0.5rem; - margin-bottom: 0.5rem; -} - -.my-2 { - margin-top: 1rem; - margin-bottom: 1rem; -} - -.my-4 { - margin-top: 2rem; - margin-bottom: 2rem; -} - -.mx { - margin-left: 0.5rem; - margin-right: 0.5rem; -} - -.mx-2 { - margin-left: 1rem; - margin-right: 1rem; -} - -.p-0 { - padding: 0; -} - -.justify-between { - justify-content: space-between; -} - -.justify-center { - justify-content: center; -} - -.gap { - gap: 1rem; -} - -.flex-1 { - flex: 1; -} - -.hero { - padding: 10rem 0; -} - -.mk-nav { - padding: 1rem; -} - -.mk-nav a, -.mk-nav a:visited, -.mk-nav a:visited:hover, -.mk-nav a:hover { - color: var(--white); - text-decoration: none; -} - -.mk-nav a:visited:hover, -.mk-nav a:hover { - text-decoration: underline; -} - -.mk-header { - line-height: 1; - display: inline-block; - background-image: linear-gradient(to right, #FF5555, #FF79C6, #F8F859); - color: transparent; - background-clip: text; - border: 3px solid #FF79C6; - padding: 8px 10px 10px 10px; - border-radius: 10px; - box-shadow: 0px 2px 4px 0px black; -} - -.mk-subheader { - font-size: 2rem; - line-height: 1; - border-bottom: none; - margin: 10px 0; - padding: 0; -} - -.mk-desc { - margin: 0; -} - -.features { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(225px, 1fr)); - gap: 1rem; -} - -.features > div { - border-radius: 10px; - border: 1px solid var(--white); - padding: 1rem; -} - -.features h2 { - border: none; - padding: 0; -} - -.btn-link { - border: 3px solid hsl(var(--main-hue), 92%, 66%); - background-color: hsl(var(--main-hue), 92%, 66%); - padding: 0.5rem 1rem; - border-radius: 0.25rem; - box-shadow: 0px 1px 2px 0px black; - color: var(--white); - text-decoration: none; - font-weight: bold; -} - -.btn-link:visited, -.btn-link:visited:hover, -.btn-link:hover { - color: var(--white); -} - -.docs { - height: 100vh; - overflow: hidden; - margin: 0; - display: grid; - grid-template-columns: 300px 1fr; - grid-template-rows: auto 1fr; -} - -.container-center { - width: 100%; - height: 100%; - display: flex; - justify-content: center; -} - -.content { - height: 100%; - overflow-y: auto; - padding-bottom: 300px; - padding-right: 1rem; -} - -.toc { - padding: 0 1rem; - overflow-y: auto; -} - -.toc ul, ol { - list-style: none; - padding: 0 0 0 0.5rem; -} - -.toc li { - margin: 0 0 0.15rem 0; -} - -.toc li:first-child { - margin-top: 0; -} - -.toc a { - color: var(--grey-light); -} - -.toc-btn { - display: none; -} - -.current { - background-color: var(--blockquote-bg) !important; - border-right: 5px solid var(--blockquote); -} - -.current a { - color: var(--white); -} - -.current-page a { - color: var(--white); -} - - -.items-end { - align-items: end; -} - -.items-start { - align-items: start; -} - -.justify-end { - justify-content: end; -} - -.box { - border: 2px solid var(--grey-light); - border-radius: .5rem; - padding: 1rem; - text-decoration: none; - box-shadow: 0px 1px 2px 0px black; - color: var(--white); - width: 100%; - max-width: 200px; - height: 100px; -} - -.box:hover { - border: 2px solid var(--white); -} - -.box:visited, -.box:visited:hover, -.box:hover { - color: var(--white); -} - -.font-grey-light { - color: var(--grey-light); -} - -.hiw { - display: flex; - justify-content: center; -} - -.hiw img { - border: 1px solid var(--grey-light); - border-radius: 1rem; - margin: 0.5rem 0; - padding: 0.5rem; - width: 100%; -} - -.text-hdr { - color: var(--hover); -} - -.text-underline-hdr { - border-bottom: 3px solid var(--hover); - padding-bottom: 3px; -} - -@media only screen and (max-width: 600px) { - body { - padding: 0 1rem; - } - - header { - margin: 0; - } - - .toc { - width: 0px; - padding: 0; - } - - .nav-show { - width: 95%; - } - - .toc-btn { - display: block; - } - - .content { - } - - .docs { - grid-template-columns: auto 1fr; - } -} +/* something */ diff --git a/docs/static/syntax.css b/docs/static/syntax.css deleted file mode 100644 index 783ec66..0000000 --- a/docs/static/syntax.css +++ /dev/null @@ -1,700 +0,0 @@ -@media (prefers-color-scheme: light) { - /* Background */ - .bg { - background-color: #ffffff; - } - /* PreWrapper */ - .chroma { - background-color: #ffffff; - } - /* Other */ - .chroma .x { - } - /* Error */ - .chroma .err { - background-color: #a848a8; - } - /* CodeLine */ - .chroma .cl { - } - /* LineTableTD */ - .chroma .lntd { - vertical-align: top; - padding: 0; - margin: 0; - border: 0; - } - /* LineTable */ - .chroma .lntable { - border-spacing: 0; - padding: 0; - margin: 0; - border: 0; - } - /* LineHighlight */ - .chroma .hl { - background-color: #ffffcc; - } - /* LineNumbersTable */ - .chroma .lnt { - white-space: pre; - user-select: none; - margin-right: 0.4em; - padding: 0 0.4em 0 0.4em; - color: #7f7f7f; - } - /* LineNumbers */ - .chroma .ln { - white-space: pre; - user-select: none; - margin-right: 0.4em; - padding: 0 0.4em 0 0.4em; - color: #7f7f7f; - } - /* Line */ - .chroma .line { - display: flex; - } - /* Keyword */ - .chroma .k { - color: #2838b0; - } - /* KeywordConstant */ - .chroma .kc { - color: #444444; - font-style: italic; - } - /* KeywordDeclaration */ - .chroma .kd { - color: #2838b0; - font-style: italic; - } - /* KeywordNamespace */ - .chroma .kn { - color: #2838b0; - } - /* KeywordPseudo */ - .chroma .kp { - color: #2838b0; - } - /* KeywordReserved */ - .chroma .kr { - color: #2838b0; - } - /* KeywordType */ - .chroma .kt { - color: #2838b0; - font-style: italic; - } - /* Name */ - .chroma .n { - } - /* NameAttribute */ - .chroma .na { - color: #388038; - } - /* NameBuiltin */ - .chroma .nb { - color: #388038; - } - /* NameBuiltinPseudo */ - .chroma .bp { - font-style: italic; - } - /* NameClass */ - .chroma .nc { - color: #287088; - } - /* NameConstant */ - .chroma .no { - color: #b85820; - } - /* NameDecorator */ - .chroma .nd { - color: #287088; - } - /* NameEntity */ - .chroma .ni { - color: #709030; - } - /* NameException */ - .chroma .ne { - color: #908828; - } - /* NameFunction */ - .chroma .nf { - color: #785840; - } - /* NameFunctionMagic */ - .chroma .fm { - color: #b85820; - } - /* NameLabel */ - .chroma .nl { - color: #289870; - } - /* NameNamespace */ - .chroma .nn { - color: #289870; - } - /* NameOther */ - .chroma .nx { - } - /* NameProperty */ - .chroma .py { - } - /* NameTag */ - .chroma .nt { - color: #2838b0; - } - /* NameVariable */ - .chroma .nv { - color: #b04040; - } - /* NameVariableClass */ - .chroma .vc { - } - /* NameVariableGlobal */ - .chroma .vg { - color: #908828; - } - /* NameVariableInstance */ - .chroma .vi { - } - /* NameVariableMagic */ - .chroma .vm { - color: #b85820; - } - /* Literal */ - .chroma .l { - } - /* LiteralDate */ - .chroma .ld { - } - /* LiteralString */ - .chroma .s { - color: #b83838; - } - /* LiteralStringAffix */ - .chroma .sa { - color: #444444; - } - /* LiteralStringBacktick */ - .chroma .sb { - color: #b83838; - } - /* LiteralStringChar */ - .chroma .sc { - color: #a848a8; - } - /* LiteralStringDelimiter */ - .chroma .dl { - color: #b85820; - } - /* LiteralStringDoc */ - .chroma .sd { - color: #b85820; - font-style: italic; - } - /* LiteralStringDouble */ - .chroma .s2 { - color: #b83838; - } - /* LiteralStringEscape */ - .chroma .se { - color: #709030; - } - /* LiteralStringHeredoc */ - .chroma .sh { - color: #b83838; - } - /* LiteralStringInterpol */ - .chroma .si { - color: #b83838; - text-decoration: underline; - } - /* LiteralStringOther */ - .chroma .sx { - color: #a848a8; - } - /* LiteralStringRegex */ - .chroma .sr { - color: #a848a8; - } - /* LiteralStringSingle */ - .chroma .s1 { - color: #b83838; - } - /* LiteralStringSymbol */ - .chroma .ss { - color: #b83838; - } - /* LiteralNumber */ - .chroma .m { - color: #444444; - } - /* LiteralNumberBin */ - .chroma .mb { - color: #444444; - } - /* LiteralNumberFloat */ - .chroma .mf { - color: #444444; - } - /* LiteralNumberHex */ - .chroma .mh { - color: #444444; - } - /* LiteralNumberInteger */ - .chroma .mi { - color: #444444; - } - /* LiteralNumberIntegerLong */ - .chroma .il { - color: #444444; - } - /* LiteralNumberOct */ - .chroma .mo { - color: #444444; - } - /* Operator */ - .chroma .o { - color: #666666; - } - /* OperatorWord */ - .chroma .ow { - color: #a848a8; - } - /* Punctuation */ - .chroma .p { - color: #888888; - } - /* Comment */ - .chroma .c { - color: #888888; - font-style: italic; - } - /* CommentHashbang */ - .chroma .ch { - color: #287088; - font-style: italic; - } - /* CommentMultiline */ - .chroma .cm { - color: #888888; - font-style: italic; - } - /* CommentSingle */ - .chroma .c1 { - color: #888888; - font-style: italic; - } - /* CommentSpecial */ - .chroma .cs { - color: #888888; - font-style: italic; - } - /* CommentPreproc */ - .chroma .cp { - color: #289870; - } - /* CommentPreprocFile */ - .chroma .cpf { - color: #289870; - } - /* Generic */ - .chroma .g { - } - /* GenericDeleted */ - .chroma .gd { - color: #c02828; - } - /* GenericEmph */ - .chroma .ge { - font-style: italic; - } - /* GenericError */ - .chroma .gr { - color: #c02828; - } - /* GenericHeading */ - .chroma .gh { - color: #666666; - } - /* GenericInserted */ - .chroma .gi { - color: #388038; - } - /* GenericOutput */ - .chroma .go { - color: #666666; - } - /* GenericPrompt */ - .chroma .gp { - color: #444444; - } - /* GenericStrong */ - .chroma .gs { - font-weight: bold; - } - /* GenericSubheading */ - .chroma .gu { - color: #444444; - } - /* GenericTraceback */ - .chroma .gt { - color: #2838b0; - } - /* GenericUnderline */ - .chroma .gl { - text-decoration: underline; - } - /* TextWhitespace */ - .chroma .w { - color: #a89028; - } -} - -@media (prefers-color-scheme: dark) { - /* Background */ - .bg { - color: #f8f8f2; - background-color: #282a36; - } - /* PreWrapper */ - .chroma { - color: #f8f8f2; - background-color: #282a36; - } - /* Other */ - .chroma .x { - } - /* Error */ - .chroma .err { - } - /* CodeLine */ - .chroma .cl { - } - /* LineTableTD */ - .chroma .lntd { - vertical-align: top; - padding: 0; - margin: 0; - border: 0; - } - /* LineTable */ - .chroma .lntable { - border-spacing: 0; - padding: 0; - margin: 0; - border: 0; - } - /* LineHighlight */ - .chroma .hl { - background-color: #ffffcc; - } - /* LineNumbersTable */ - .chroma .lnt { - white-space: pre; - user-select: none; - margin-right: 0.4em; - padding: 0 0.4em 0 0.4em; - color: #7f7f7f; - } - /* LineNumbers */ - .chroma .ln { - white-space: pre; - user-select: none; - margin-right: 0.4em; - padding: 0 0.4em 0 0.4em; - color: #7f7f7f; - } - /* Line */ - .chroma .line { - display: flex; - } - /* Keyword */ - .chroma .k { - color: #ff79c6; - } - /* KeywordConstant */ - .chroma .kc { - color: #ff79c6; - } - /* KeywordDeclaration */ - .chroma .kd { - color: #8be9fd; - font-style: italic; - } - /* KeywordNamespace */ - .chroma .kn { - color: #ff79c6; - } - /* KeywordPseudo */ - .chroma .kp { - color: #ff79c6; - } - /* KeywordReserved */ - .chroma .kr { - color: #ff79c6; - } - /* KeywordType */ - .chroma .kt { - color: #8be9fd; - } - /* Name */ - .chroma .n { - } - /* NameAttribute */ - .chroma .na { - color: #50fa7b; - } - /* NameBuiltin */ - .chroma .nb { - color: #8be9fd; - font-style: italic; - } - /* NameBuiltinPseudo */ - .chroma .bp { - } - /* NameClass */ - .chroma .nc { - color: #50fa7b; - } - /* NameConstant */ - .chroma .no { - } - /* NameDecorator */ - .chroma .nd { - } - /* NameEntity */ - .chroma .ni { - } - /* NameException */ - .chroma .ne { - } - /* NameFunction */ - .chroma .nf { - color: #50fa7b; - } - /* NameFunctionMagic */ - .chroma .fm { - } - /* NameLabel */ - .chroma .nl { - color: #8be9fd; - font-style: italic; - } - /* NameNamespace */ - .chroma .nn { - } - /* NameOther */ - .chroma .nx { - } - /* NameProperty */ - .chroma .py { - } - /* NameTag */ - .chroma .nt { - color: #ff79c6; - } - /* NameVariable */ - .chroma .nv { - color: #8be9fd; - font-style: italic; - } - /* NameVariableClass */ - .chroma .vc { - color: #8be9fd; - font-style: italic; - } - /* NameVariableGlobal */ - .chroma .vg { - color: #8be9fd; - font-style: italic; - } - /* NameVariableInstance */ - .chroma .vi { - color: #8be9fd; - font-style: italic; - } - /* NameVariableMagic */ - .chroma .vm { - } - /* Literal */ - .chroma .l { - } - /* LiteralDate */ - .chroma .ld { - } - /* LiteralString */ - .chroma .s { - color: #f1fa8c; - } - /* LiteralStringAffix */ - .chroma .sa { - color: #f1fa8c; - } - /* LiteralStringBacktick */ - .chroma .sb { - color: #f1fa8c; - } - /* LiteralStringChar */ - .chroma .sc { - color: #f1fa8c; - } - /* LiteralStringDelimiter */ - .chroma .dl { - color: #f1fa8c; - } - /* LiteralStringDoc */ - .chroma .sd { - color: #f1fa8c; - } - /* LiteralStringDouble */ - .chroma .s2 { - color: #f1fa8c; - } - /* LiteralStringEscape */ - .chroma .se { - color: #f1fa8c; - } - /* LiteralStringHeredoc */ - .chroma .sh { - color: #f1fa8c; - } - /* LiteralStringInterpol */ - .chroma .si { - color: #f1fa8c; - } - /* LiteralStringOther */ - .chroma .sx { - color: #f1fa8c; - } - /* LiteralStringRegex */ - .chroma .sr { - color: #f1fa8c; - } - /* LiteralStringSingle */ - .chroma .s1 { - color: #f1fa8c; - } - /* LiteralStringSymbol */ - .chroma .ss { - color: #f1fa8c; - } - /* LiteralNumber */ - .chroma .m { - color: #bd93f9; - } - /* LiteralNumberBin */ - .chroma .mb { - color: #bd93f9; - } - /* LiteralNumberFloat */ - .chroma .mf { - color: #bd93f9; - } - /* LiteralNumberHex */ - .chroma .mh { - color: #bd93f9; - } - /* LiteralNumberInteger */ - .chroma .mi { - color: #bd93f9; - } - /* LiteralNumberIntegerLong */ - .chroma .il { - color: #bd93f9; - } - /* LiteralNumberOct */ - .chroma .mo { - color: #bd93f9; - } - /* Operator */ - .chroma .o { - color: #ff79c6; - } - /* OperatorWord */ - .chroma .ow { - color: #ff79c6; - } - /* Punctuation */ - .chroma .p { - } - /* Comment */ - .chroma .c { - color: #6272a4; - } - /* CommentHashbang */ - .chroma .ch { - color: #6272a4; - } - /* CommentMultiline */ - .chroma .cm { - color: #6272a4; - } - /* CommentSingle */ - .chroma .c1 { - color: #6272a4; - } - /* CommentSpecial */ - .chroma .cs { - color: #6272a4; - } - /* CommentPreproc */ - .chroma .cp { - color: #ff79c6; - } - /* CommentPreprocFile */ - .chroma .cpf { - color: #ff79c6; - } - /* Generic */ - .chroma .g { - } - /* GenericDeleted */ - .chroma .gd { - color: #ff5555; - } - /* GenericEmph */ - .chroma .ge { - text-decoration: underline; - } - /* GenericError */ - .chroma .gr { - } - /* GenericHeading */ - .chroma .gh { - font-weight: bold; - } - /* GenericInserted */ - .chroma .gi { - color: #50fa7b; - font-weight: bold; - } - /* GenericOutput */ - .chroma .go { - color: #44475a; - } - /* GenericPrompt */ - .chroma .gp { - } - /* GenericStrong */ - .chroma .gs { - } - /* GenericSubheading */ - .chroma .gu { - font-weight: bold; - } - /* GenericTraceback */ - .chroma .gt { - } - /* GenericUnderline */ - .chroma .gl { - text-decoration: underline; - } - /* TextWhitespace */ - .chroma .w { - } -} diff --git a/docs/tmpl/base.layout.tmpl b/docs/tmpl/base.layout.tmpl index a5f7b47..bfe85c6 100644 --- a/docs/tmpl/base.layout.tmpl +++ b/docs/tmpl/base.layout.tmpl @@ -5,12 +5,13 @@ {{template "title" .}} - - {{template "meta" .}} + + + - + {{template "meta" .}} diff --git a/docs/tmpl/marketing.page.tmpl b/docs/tmpl/marketing.page.tmpl index cd1c259..8a85ad4 100644 --- a/docs/tmpl/marketing.page.tmpl +++ b/docs/tmpl/marketing.page.tmpl @@ -3,7 +3,7 @@ {{define "title"}}{{.Data.Title}}{{end}} {{define "meta"}} - + {{end}} {{define "attrs"}}class="container"{{end}} @@ -11,7 +11,7 @@ {{define "body"}}
-
+
-
-

Tunnels to localhost using SSH

+
+

+ Tunnels to localhost using SSH +

Using SSH tunnels, we can forward requests to your localhost from anywhere.

-
-

Create a VPN to a remote service

+
+

+ Create a VPN to a remote service +

Create a private connection from a remote service to your localhost

-
-

Self-hosted

+
+

+ Self-hosted +

With docker it is easier than ever to deploy sish to your own VM.

-
-

Fully managed service tuns.sh

+
+

+ Fully managed service tuns.sh +

We also manage an instance of sish so users don't have to worry about managing it.

diff --git a/docs/tmpl/post.page.tmpl b/docs/tmpl/post.page.tmpl index 2b349d1..e30fdc6 100644 --- a/docs/tmpl/post.page.tmpl +++ b/docs/tmpl/post.page.tmpl @@ -3,53 +3,56 @@ {{define "title"}}{{.Data.Title}}{{end}} {{define "meta"}} + {{end}} -{{define "attrs"}}class="container-center"{{end}} +{{define "attrs"}}class=""{{end}} {{define "body"}} -
- - -
-
- - -

{{.Data.Title}}

-

{{.Data.Description}}

- -
- -
- {{.Data.Html}} -
- -
- {{if .Prev}} - -
-
<< PREVIOUS
-
{{.Prev.Text}}
-
-
- {{end}} - - {{if .Next}} - -
-
- NEXT >> -
-
{{.Next.Text}}
-
-
- {{end}} -
-
-
-
+ + +
+ + +

{{.Data.Title}}

+

{{.Data.Description}}

+ +
+ +
+ {{.Data.Html}} +
+ +
+ {{if .Prev}} + +
+
<< PREVIOUS
+
{{.Prev.Text}}
+
+
+ {{end}} + + {{if .Next}} + +
+
+ NEXT >> +
+
{{.Next.Text}}
+
+
+ {{end}} +
+
{{end}} + + diff --git a/docs/tmpl/toc.partial.tmpl b/docs/tmpl/toc.partial.tmpl index 6111a56..20205f4 100644 --- a/docs/tmpl/toc.partial.tmpl +++ b/docs/tmpl/toc.partial.tmpl @@ -1,7 +1,11 @@ {{define "toc"}} - + -

sish

+

sish