tide-disco 0.9.7

Discoverability for Tide
[meta]
FORMAT_VERSION = "0.1.0"

HTML_TOP = """
<!DOCTYPE html>
<html lang='en'>
  <head>
    <meta charset='utf-8'>
    <title>{{NAME}} Reference</title>
    <link rel='stylesheet' href='/public/css/style.css'>
    <script src='/public/js/script.js'></script>
    <link rel='icon' type='image/svg+xml'
     href='/public/favicon.svg'>
  </head>
  <body>
    <div><a href='https://espressosys.com'><img src='/public/espressosys_logo.svg'
              alt='Espresso Systems Logo'
              /></a></div>
    <h1>{{NAME}} API {{FORMAT_VERSION}} Reference</h1>
    <p>{{DESCRIPTION}}</p>
"""

HTML_BOTTOM = """
    <h1>&nbsp;</h1>
    <p>Copyright © 2022 Espresso Systems. All rights reserved.</p>
  </body>
</html>
"""

HEADING_ENTRY = "<a name='{{NAME}}'><h3 class='entry'><span class='meth'>{{METHOD}}</span> {{NAME}}</h3></a>\n"
HEADING_ROUTES = "<h3>Routes</h3>\n"
HEADING_PARAMETERS = "<h3>Parameters</h3>\n"
HEADING_DESCRIPTION = "<h3>Description</h3>\n"

ROUTE_PATH = "<p class='path'><a href='{{PATH}}'>{{PATH}}</a></p>\n"

PARAMETER_TABLE_OPEN = "<table>\n"
PARAMETER_TABLE_CLOSE = "</table>\n\n"
PARAMETER_ROW = "<tr><td class='parameter'>{{NAME}}</td><td class='type'>{{TYPE}}</td></tr>\n"
PARAMETER_NONE = "<div class='meta'>None</div>"

# TODO https://github.com/EspressoSystems/tide-disco/issues/52
MINIMAL_HTML = """
<!doctype html>
<html lang='en'>
  <head>
    <meta charset='utf-8'>
    <link rel='stylesheet' href='/public/css/style.css'>
    <title>{{TITLE}}</title>
    <link rel='icon' type='image/svg+xml'
     href='/public/favicon.svg'>
  </head>
  <body>
    <div><img src='/public/espressosys_logo.svg'
              alt='Espresso Systems Logo'
              /></div>
    <h1>{{TITLE}}</h1>
    {{BODY}}
    <h1>&nbsp;</h1>
    <p>Copyright © 2022 Espresso Systems. All rights reserved.</p>
  </body>
</html>
"""

[route.help]
PATH = ["/help", "/help/:endpoint/tag/:tag"]
METHOD = "GET"
#"endpoint" = "Literal"
":endpoint" = "Integer"
":tag" = "TaggedBase64" # E.g. LA~SG9tZbo
DOC = "Provides complete reference documentation if no endpoint is provided or help on a single endpoint"

[route.healthcheck]
PATH = ["/healthcheck"]
METHOD = "GET"
DOC = "Provides server status as JSON such as `{status: Available}`"

[route.version]
PATH = ["/version"]
METHOD = "GET"
DOC = "Reports versions as JSON"