mirror of
https://github.com/swift-server/RediStack.git
synced 2026-05-03 07:32:28 +00:00
45 -- Add API Documentation
Motivation: Users need a quick reference available online that is up to date. Modifications: Add CI job to generate and publish API docs with Jazzy Result: Users can view API docs that are updated when new releases are tagged at https://mordil.gitlab.io/swift-redis-nio-client
This commit is contained in:
+22
-3
@@ -8,9 +8,28 @@ pages:
|
||||
only:
|
||||
- tags
|
||||
tags:
|
||||
- private-xcode
|
||||
script:
|
||||
- "echo 'TODO #45 -- Publish API Docs'"
|
||||
- private-macOS
|
||||
script: |
|
||||
version=$(git describe --abbrev=0 --tags || echo "0.0.0")
|
||||
swift build
|
||||
sourcekitten doc --spm-module "RedisNIO" > ./RedisNIO.json
|
||||
swift package generate-xcodeproj
|
||||
jazzy --clean \
|
||||
--author "Nathan Harris (Mordil)" \
|
||||
--readme "./README.md" \
|
||||
--author_url "https://mordil.info" \
|
||||
--github_url "https://gitlab.com/mordil/swift-redis-nio-client" \
|
||||
--github-file-prefix https://gitlab.com/mordil/swift-redis-nio-client/blob/$version \
|
||||
--root-url "https://mordil.gitlab.io/swift-redis-nio-client/docs/RedisNIO" \
|
||||
--module "RedisNIO" \
|
||||
--module-version "$version" \
|
||||
--theme fullwidth \
|
||||
--xcodebuild-arguments -scheme,swift-redis-nio-client-Package \
|
||||
--sourcekitten-sourcefile "./RedisNIO.json" \
|
||||
--output "./public"
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
|
||||
.build:
|
||||
stage: build release
|
||||
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
/* Credit to https://gist.github.com/wataru420/2048287 */
|
||||
|
||||
.highlight {
|
||||
.c { color: #999988; font-style: italic } /* Comment */
|
||||
.err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
||||
.k { color: #000000; font-weight: bold } /* Keyword */
|
||||
.o { color: #000000; font-weight: bold } /* Operator */
|
||||
.cm { color: #999988; font-style: italic } /* Comment.Multiline */
|
||||
.cp { color: #999999; font-weight: bold } /* Comment.Preproc */
|
||||
.c1 { color: #999988; font-style: italic } /* Comment.Single */
|
||||
.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
|
||||
.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
|
||||
.gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
|
||||
.ge { color: #000000; font-style: italic } /* Generic.Emph */
|
||||
.gr { color: #aa0000 } /* Generic.Error */
|
||||
.gh { color: #999999 } /* Generic.Heading */
|
||||
.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
|
||||
.gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
|
||||
.go { color: #888888 } /* Generic.Output */
|
||||
.gp { color: #555555 } /* Generic.Prompt */
|
||||
.gs { font-weight: bold } /* Generic.Strong */
|
||||
.gu { color: #aaaaaa } /* Generic.Subheading */
|
||||
.gt { color: #aa0000 } /* Generic.Traceback */
|
||||
.kc { color: #000000; font-weight: bold } /* Keyword.Constant */
|
||||
.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
|
||||
.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
|
||||
.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
|
||||
.kt { color: #445588; } /* Keyword.Type */
|
||||
.m { color: #009999 } /* Literal.Number */
|
||||
.s { color: #d14 } /* Literal.String */
|
||||
.na { color: #008080 } /* Name.Attribute */
|
||||
.nb { color: #0086B3 } /* Name.Builtin */
|
||||
.nc { color: #445588; font-weight: bold } /* Name.Class */
|
||||
.no { color: #008080 } /* Name.Constant */
|
||||
.ni { color: #800080 } /* Name.Entity */
|
||||
.ne { color: #990000; font-weight: bold } /* Name.Exception */
|
||||
.nf { color: #990000; } /* Name.Function */
|
||||
.nn { color: #555555 } /* Name.Namespace */
|
||||
.nt { color: #000080 } /* Name.Tag */
|
||||
.nv { color: #008080 } /* Name.Variable */
|
||||
.ow { color: #000000; font-weight: bold } /* Operator.Word */
|
||||
.w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.mf { color: #009999 } /* Literal.Number.Float */
|
||||
.mh { color: #009999 } /* Literal.Number.Hex */
|
||||
.mi { color: #009999 } /* Literal.Number.Integer */
|
||||
.mo { color: #009999 } /* Literal.Number.Oct */
|
||||
.sb { color: #d14 } /* Literal.String.Backtick */
|
||||
.sc { color: #d14 } /* Literal.String.Char */
|
||||
.sd { color: #d14 } /* Literal.String.Doc */
|
||||
.s2 { color: #d14 } /* Literal.String.Double */
|
||||
.se { color: #d14 } /* Literal.String.Escape */
|
||||
.sh { color: #d14 } /* Literal.String.Heredoc */
|
||||
.si { color: #d14 } /* Literal.String.Interpol */
|
||||
.sx { color: #d14 } /* Literal.String.Other */
|
||||
.sr { color: #009926 } /* Literal.String.Regex */
|
||||
.s1 { color: #d14 } /* Literal.String.Single */
|
||||
.ss { color: #990073 } /* Literal.String.Symbol */
|
||||
.bp { color: #999999 } /* Name.Builtin.Pseudo */
|
||||
.vc { color: #008080 } /* Name.Variable.Class */
|
||||
.vg { color: #008080 } /* Name.Variable.Global */
|
||||
.vi { color: #008080 } /* Name.Variable.Instance */
|
||||
.il { color: #009999 } /* Literal.Number.Integer.Long */
|
||||
}
|
||||
Vendored
+621
@@ -0,0 +1,621 @@
|
||||
// ===========================================================================
|
||||
//
|
||||
// Variables
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
$body_background: #fff;
|
||||
$body_font: 16px/1.7 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
$text_color: #333;
|
||||
$gray_border: 1px solid #ddd;
|
||||
|
||||
$heading_weight: 700;
|
||||
$light_heading_color: #777;
|
||||
|
||||
$quote_color: #858585;
|
||||
$quote_border: 4px solid #e5e5e5;
|
||||
|
||||
$link_color: #4183c4;
|
||||
|
||||
$table_alt_row_color: #fbfbfb;
|
||||
$table_border_color: #ddd;
|
||||
|
||||
$code_bg_color: #f7f7f7;
|
||||
$code_font: Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
|
||||
|
||||
// ----- Layout
|
||||
|
||||
$gutter: 16px;
|
||||
$navigation_max_width: 300px;
|
||||
|
||||
|
||||
// ----- Header
|
||||
|
||||
$header_bg_color: #444;
|
||||
$header_link_color: #fff;
|
||||
$doc_coverage_color: #999;
|
||||
|
||||
|
||||
// ----- Breadcrumbs
|
||||
|
||||
$breadcrumbs_bg_color: #fbfbfb;
|
||||
$breadcrumbs_border_color: #ddd;
|
||||
|
||||
|
||||
// ----- Navigation
|
||||
|
||||
$navigation_max_width: 300px;
|
||||
$navigation_bg_color: #fbfbfb;
|
||||
$navigation_border_color: #ddd;
|
||||
$navigation_title_color: #333;
|
||||
$navigation_task_color: #808080;
|
||||
|
||||
// ----- Content
|
||||
|
||||
$declaration_title_language_color: #4183c4;
|
||||
$declaration_language_border: 5px solid #cde9f4;
|
||||
$declaration_bg_color: #fff;
|
||||
$declaration_border_color: #ddd;
|
||||
|
||||
$aside_color: #aaa;
|
||||
$aside_border: 5px solid lighten($aside_color, 20%);
|
||||
$aside_warning_color: #ff0000;
|
||||
$aside_warning_border: 5px solid lighten($aside_warning_color, 20%);
|
||||
|
||||
// ----- Footer
|
||||
|
||||
$footer_bg_color: #444;
|
||||
$footer_text_color: #ddd;
|
||||
$footer_link_color: #fff;
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
//
|
||||
// Base
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
*, *:before, *:after {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background: $body_background;
|
||||
color: $text_color;
|
||||
font: $body_font;
|
||||
letter-spacing: .2px;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// ----- Block elements
|
||||
|
||||
@mixin heading($font-size: 1rem, $margin: 1.275em 0 0.85em) {
|
||||
font-size: $font-size;
|
||||
font-weight: $heading_weight;
|
||||
margin: $margin;
|
||||
}
|
||||
|
||||
h1 {
|
||||
@include heading(2rem, 1.275em 0 0.6em);
|
||||
}
|
||||
|
||||
h2 {
|
||||
@include heading(1.75rem, 1.275em 0 0.3em);
|
||||
}
|
||||
|
||||
h3 {
|
||||
@include heading(1.5rem, 1em 0 0.3em);
|
||||
}
|
||||
|
||||
h4 {
|
||||
@include heading(1.25rem);
|
||||
}
|
||||
|
||||
h5 {
|
||||
@include heading;
|
||||
}
|
||||
|
||||
h6 {
|
||||
@include heading;
|
||||
color: $light_heading_color;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 1em;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
padding: 0 0 0 2em;
|
||||
margin: 0 0 0.85em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 0.85em;
|
||||
padding: 0 15px;
|
||||
color: $quote_color;
|
||||
border-left: $quote_border;
|
||||
}
|
||||
|
||||
|
||||
// ----- Inline elements
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $link_color;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover, &:focus {
|
||||
outline: 0;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
&.discouraged {
|
||||
text-decoration: line-through;
|
||||
&:hover, &:focus {
|
||||
text-decoration: underline line-through;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ----- Tables
|
||||
|
||||
table {
|
||||
background: $body_background;
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
overflow: auto;
|
||||
margin: 0 0 0.85em;
|
||||
}
|
||||
|
||||
tr {
|
||||
&:nth-child(2n) {
|
||||
background-color: $table_alt_row_color;
|
||||
}
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 6px 13px;
|
||||
border: 1px solid $table_border_color;
|
||||
}
|
||||
|
||||
|
||||
// ----- Code
|
||||
|
||||
pre {
|
||||
margin: 0 0 1.275em;
|
||||
padding: .85em 1em;
|
||||
overflow: auto;
|
||||
background: $code_bg_color;
|
||||
font-size: .85em;
|
||||
font-family: $code_font;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: $code_font;
|
||||
}
|
||||
|
||||
p, li {
|
||||
> code {
|
||||
background: $code_bg_color;
|
||||
padding: .2em;
|
||||
&:before, &:after {
|
||||
letter-spacing: -.2em;
|
||||
content: "\00a0";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pre code {
|
||||
padding: 0;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
//
|
||||
// Layout
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
.content-wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@media (min-width: 768px) {
|
||||
flex-direction: row;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
//
|
||||
// Header
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
padding: $gutter/2;
|
||||
font-size: 0.875em;
|
||||
background: $header_bg_color;
|
||||
color: $doc_coverage_color;
|
||||
}
|
||||
|
||||
.header-col {
|
||||
margin: 0;
|
||||
padding: 0 $gutter/2
|
||||
}
|
||||
|
||||
.header-col--primary {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.header-link {
|
||||
color: $header_link_color;
|
||||
}
|
||||
|
||||
.header-icon {
|
||||
padding-right: 6px;
|
||||
vertical-align: -4px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
//
|
||||
// Breadcrumbs
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
.breadcrumbs {
|
||||
font-size: 0.875em;
|
||||
padding: $gutter / 2 $gutter;
|
||||
margin: 0;
|
||||
background: $breadcrumbs_bg_color;
|
||||
border-bottom: 1px solid $breadcrumbs_border_color;
|
||||
}
|
||||
|
||||
.carat {
|
||||
height: 10px;
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
//
|
||||
// Navigation
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
.navigation {
|
||||
order: 2;
|
||||
|
||||
@media (min-width: 768px) {
|
||||
order: 1;
|
||||
width: 25%;
|
||||
max-width: $navigation_max_width;
|
||||
padding-bottom: $gutter*4;
|
||||
overflow: hidden;
|
||||
word-wrap: normal;
|
||||
background: $navigation_bg_color;
|
||||
border-right: 1px solid $navigation_border_color;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-groups {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.nav-group-name {
|
||||
border-bottom: 1px solid $navigation_border_color;
|
||||
padding: $gutter/2 0 $gutter/2 $gutter;
|
||||
}
|
||||
|
||||
.nav-group-name-link {
|
||||
color: $navigation_title_color;
|
||||
}
|
||||
|
||||
.nav-group-tasks {
|
||||
margin: $gutter/2 0;
|
||||
padding: 0 0 0 $gutter/2;
|
||||
}
|
||||
|
||||
.nav-group-task {
|
||||
font-size: 1em;
|
||||
list-style-type: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.nav-group-task-link {
|
||||
color: $navigation_task_color;
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
//
|
||||
// Content
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
.main-content {
|
||||
order: 1;
|
||||
@media (min-width: 768px) {
|
||||
order: 2;
|
||||
flex: 1;
|
||||
padding-bottom: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 0 $gutter * 2;
|
||||
border-bottom: 1px solid $navigation_border_color;
|
||||
}
|
||||
|
||||
.section-content {
|
||||
max-width: 834px;
|
||||
margin: 0 auto;
|
||||
padding: $gutter 0;
|
||||
}
|
||||
|
||||
.section-name {
|
||||
color: #666;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.declaration .highlight {
|
||||
overflow-x: initial; // This allows the scrollbar to show up inside declarations
|
||||
padding: $gutter/2 0;
|
||||
margin: 0;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.task-group-section {
|
||||
border-top: $gray_border;
|
||||
}
|
||||
|
||||
.task-group {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.task-name-container {
|
||||
a[name] {
|
||||
&:before {
|
||||
content: "";
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-container {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding-top: 8px;
|
||||
width: 100%;
|
||||
list-style-type: none;
|
||||
|
||||
a[name] {
|
||||
&:before {
|
||||
content: "";
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.token, .direct-link {
|
||||
padding-left: 3px;
|
||||
margin-left: 0px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.declaration-note {
|
||||
font-size: .85em;
|
||||
color: #808080;
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
.pointer-container {
|
||||
border-bottom: $gray_border;
|
||||
left: -23px;
|
||||
padding-bottom: 13px;
|
||||
position: relative;
|
||||
width: 110%;
|
||||
}
|
||||
|
||||
.pointer {
|
||||
left: 21px;
|
||||
top: 7px;
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-left: 1px solid $declaration_border_color;
|
||||
border-top: 1px solid $declaration_border_color;
|
||||
background: $declaration_bg_color;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.height-container {
|
||||
display: none;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
.section {
|
||||
background: $declaration_bg_color;
|
||||
border: $gray_border;
|
||||
border-top-width: 0;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 5px;
|
||||
padding: $gutter / 2 $gutter;
|
||||
}
|
||||
}
|
||||
|
||||
.aside, .language {
|
||||
padding: 6px 12px;
|
||||
margin: 12px 0;
|
||||
border-left: $aside_border;
|
||||
overflow-y: hidden;
|
||||
.aside-title {
|
||||
font-size: 9px;
|
||||
letter-spacing: 2px;
|
||||
text-transform: uppercase;
|
||||
padding-bottom: 0;
|
||||
margin: 0;
|
||||
color: $aside_color;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.language {
|
||||
border-left: $declaration_language_border;
|
||||
.aside-title {
|
||||
color: $declaration_title_language_color;
|
||||
}
|
||||
}
|
||||
|
||||
.aside-warning, .aside-deprecated, .aside-unavailable {
|
||||
border-left: $aside_warning_border;
|
||||
.aside-title {
|
||||
color: $aside_warning_color;
|
||||
}
|
||||
}
|
||||
|
||||
.graybox {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
p {
|
||||
margin: 0;
|
||||
word-break: break-word;
|
||||
min-width: 50px;
|
||||
}
|
||||
td {
|
||||
border: $gray_border;
|
||||
padding: 5px 25px 5px 10px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
tr td:first-of-type {
|
||||
text-align: right;
|
||||
padding: 7px;
|
||||
vertical-align: top;
|
||||
word-break: normal;
|
||||
width: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.slightly-smaller {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
//
|
||||
// Footer
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
.footer {
|
||||
padding: $gutter/2 $gutter;
|
||||
background: $footer_bg_color;
|
||||
color: $footer_text_color;
|
||||
font-size: 0.8em;
|
||||
|
||||
p {
|
||||
margin: $gutter/2 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $footer_link_color;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
//
|
||||
// Dash
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
html.dash {
|
||||
|
||||
.header, .breadcrumbs, .navigation {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.height-container {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
//
|
||||
// Search
|
||||
//
|
||||
// ===========================================================================
|
||||
form[role=search] {
|
||||
input {
|
||||
font: $body_font;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
padding: 0 10px;
|
||||
margin: 0;
|
||||
border: none;
|
||||
border-radius: 1em;
|
||||
.loading & {
|
||||
background: white url(../img/spinner.gif) center right 4px no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
// Typeahead elements
|
||||
|
||||
.tt-menu {
|
||||
margin: 0;
|
||||
min-width: 300px;
|
||||
background: $navigation_bg_color;
|
||||
color: $text_color;
|
||||
border: 1px solid $navigation_border_color;
|
||||
}
|
||||
|
||||
.tt-highlight {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.tt-suggestion {
|
||||
font: $body_font;
|
||||
padding: 0 $gutter/2;
|
||||
span {
|
||||
display: table-cell;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.doc-parent-name {
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
font-weight: normal;
|
||||
font-size: 0.9em;
|
||||
padding-left: $gutter;
|
||||
}
|
||||
}
|
||||
|
||||
.tt-suggestion:hover,
|
||||
.tt-suggestion.tt-cursor {
|
||||
cursor: pointer;
|
||||
background-color: $link_color;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tt-suggestion:hover .doc-parent-name,
|
||||
.tt-suggestion.tt-cursor .doc-parent-name {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 274 B |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
Vendored
BIN
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
Vendored
BIN
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
+59
@@ -0,0 +1,59 @@
|
||||
window.jazzy = {'docset': false}
|
||||
if (typeof window.dash != 'undefined') {
|
||||
document.documentElement.className += ' dash'
|
||||
window.jazzy.docset = true
|
||||
}
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.documentElement.className += ' xcode'
|
||||
window.jazzy.docset = true
|
||||
}
|
||||
|
||||
function toggleItem($link, $content) {
|
||||
var animationDuration = 300;
|
||||
$link.toggleClass('token-open');
|
||||
$content.slideToggle(animationDuration);
|
||||
}
|
||||
|
||||
function itemLinkToContent($link) {
|
||||
return $link.parent().parent().next();
|
||||
}
|
||||
|
||||
// On doc load + hash-change, open any targetted item
|
||||
function openCurrentItemIfClosed() {
|
||||
if (window.jazzy.docset) {
|
||||
return;
|
||||
}
|
||||
var $link = $(`.token[href="${location.hash}"]`);
|
||||
$content = itemLinkToContent($link);
|
||||
if ($content.is(':hidden')) {
|
||||
toggleItem($link, $content);
|
||||
}
|
||||
}
|
||||
|
||||
$(openCurrentItemIfClosed);
|
||||
$(window).on('hashchange', openCurrentItemIfClosed);
|
||||
|
||||
// On item link ('token') click, toggle its discussion
|
||||
$('.token').on('click', function(event) {
|
||||
if (window.jazzy.docset) {
|
||||
return;
|
||||
}
|
||||
var $link = $(this);
|
||||
toggleItem($link, itemLinkToContent($link));
|
||||
|
||||
// Keeps the document from jumping to the hash.
|
||||
var href = $link.attr('href');
|
||||
if (history.pushState) {
|
||||
history.pushState({}, '', href);
|
||||
} else {
|
||||
location.hash = href;
|
||||
}
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
// Clicks on links to the current, closed, item need to open the item
|
||||
$("a:not('.token')").on('click', function() {
|
||||
if (location == this.href) {
|
||||
openCurrentItemIfClosed();
|
||||
}
|
||||
});
|
||||
Vendored
+70
@@ -0,0 +1,70 @@
|
||||
$(function(){
|
||||
var $typeahead = $('[data-typeahead]');
|
||||
var $form = $typeahead.parents('form');
|
||||
var searchURL = $form.attr('action');
|
||||
|
||||
function displayTemplate(result) {
|
||||
return result.name;
|
||||
}
|
||||
|
||||
function suggestionTemplate(result) {
|
||||
var t = '<div class="list-group-item clearfix">';
|
||||
t += '<span class="doc-name">' + result.name + '</span>';
|
||||
if (result.parent_name) {
|
||||
t += '<span class="doc-parent-name label">' + result.parent_name + '</span>';
|
||||
}
|
||||
t += '</div>';
|
||||
return t;
|
||||
}
|
||||
|
||||
$typeahead.one('focus', function() {
|
||||
$form.addClass('loading');
|
||||
|
||||
$.getJSON(searchURL).then(function(searchData) {
|
||||
const searchIndex = lunr(function() {
|
||||
this.ref('url');
|
||||
this.field('name');
|
||||
this.field('abstract');
|
||||
for (const [url, doc] of Object.entries(searchData)) {
|
||||
this.add({url: url, name: doc.name, abstract: doc.abstract});
|
||||
}
|
||||
});
|
||||
|
||||
$typeahead.typeahead(
|
||||
{
|
||||
highlight: true,
|
||||
minLength: 3,
|
||||
autoselect: true
|
||||
},
|
||||
{
|
||||
limit: 10,
|
||||
display: displayTemplate,
|
||||
templates: { suggestion: suggestionTemplate },
|
||||
source: function(query, sync) {
|
||||
const lcSearch = query.toLowerCase();
|
||||
const results = searchIndex.query(function(q) {
|
||||
q.term(lcSearch, { boost: 100 });
|
||||
q.term(lcSearch, {
|
||||
boost: 10,
|
||||
wildcard: lunr.Query.wildcard.TRAILING
|
||||
});
|
||||
}).map(function(result) {
|
||||
var doc = searchData[result.ref];
|
||||
doc.url = result.ref;
|
||||
return doc;
|
||||
});
|
||||
sync(results);
|
||||
}
|
||||
}
|
||||
);
|
||||
$form.removeClass('loading');
|
||||
$typeahead.trigger('focus');
|
||||
});
|
||||
});
|
||||
|
||||
var baseURL = searchURL.slice(0, -"search.json".length);
|
||||
|
||||
$typeahead.on('typeahead:select', function(e, result) {
|
||||
window.location = baseURL + result.url;
|
||||
});
|
||||
});
|
||||
+2
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
+1674
File diff suppressed because it is too large
Load Diff
+12
@@ -0,0 +1,12 @@
|
||||
{{#deprecation_message}}
|
||||
<div class="aside aside-deprecated">
|
||||
<p class="aside-title">Deprecated</p>
|
||||
{{{deprecation_message}}}
|
||||
</div>
|
||||
{{/deprecation_message}}
|
||||
{{#unavailable_message}}
|
||||
<div class="aside aside-unavailable">
|
||||
<p class="aside-title">Unavailable</p>
|
||||
{{{unavailable_message}}}
|
||||
</div>
|
||||
{{/unavailable_message}}
|
||||
Vendored
+59
@@ -0,0 +1,59 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>{{name}} {{kind}} Reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="{{path_to_root}}css/jazzy.css" />
|
||||
<link rel="stylesheet" type="text/css" href="{{path_to_root}}css/highlight.css" />
|
||||
<meta charset="utf-8">
|
||||
<script src="{{path_to_root}}js/jquery.min.js" defer></script>
|
||||
<script src="{{path_to_root}}js/jazzy.js" defer></script>
|
||||
{{{custom_head}}}
|
||||
{{^disable_search}}
|
||||
<script src="{{path_to_root}}js/lunr.min.js" defer></script>
|
||||
<script src="{{path_to_root}}js/typeahead.jquery.js" defer></script>
|
||||
<script src="{{path_to_root}}js/jazzy.search.js" defer></script>
|
||||
{{/disable_search}}
|
||||
</head>
|
||||
<body>
|
||||
|
||||
{{#dash_type}}
|
||||
<a name="//apple_ref/{{language_stub}}/{{dash_type}}/{{name}}" class="dashAnchor"></a>
|
||||
{{/dash_type}}
|
||||
|
||||
<a title="{{name}} {{kind}} Reference"></a>
|
||||
|
||||
{{> header}}
|
||||
|
||||
<p class="breadcrumbs">
|
||||
<a class="breadcrumb" href="{{path_to_root}}index.html">{{module_name}} Reference</a>
|
||||
<img class="carat" src="{{path_to_root}}img/carat.png" />
|
||||
{{name}} {{kind}} Reference
|
||||
</p>
|
||||
|
||||
<div class="content-wrapper">
|
||||
{{> nav}}
|
||||
<article class="main-content">
|
||||
|
||||
<section class="section">
|
||||
<div class="section-content">
|
||||
{{^hide_name}}<h1>{{name}}</h1>{{/hide_name}}
|
||||
{{> deprecation}}
|
||||
{{#declaration}}
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
{{{declaration}}}
|
||||
</div>
|
||||
</div>
|
||||
{{/declaration}}
|
||||
{{{overview}}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{> tasks}}
|
||||
|
||||
</article>
|
||||
</div>
|
||||
{{> footer}}
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
<section class="footer">
|
||||
{{{copyright}}}
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v{{jazzy_version}}</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
Vendored
+34
@@ -0,0 +1,34 @@
|
||||
<header class="header">
|
||||
<p class="header-col header-col--primary">
|
||||
<a class="header-link" href="{{path_to_root}}index.html">
|
||||
{{module_name}} Docs
|
||||
</a>
|
||||
{{#doc_coverage}} ({{doc_coverage}}% documented){{/doc_coverage}}
|
||||
</p>
|
||||
|
||||
{{^disable_search}}
|
||||
<p class="header-col--secondary">
|
||||
<form role="search" action="{{path_to_root}}search.json">
|
||||
<input type="text" placeholder="Search documentation" data-typeahead>
|
||||
</form>
|
||||
</p>
|
||||
{{/disable_search}}
|
||||
|
||||
{{#github_url}}
|
||||
<p class="header-col header-col--secondary">
|
||||
<a class="header-link" href="{{github_url}}">
|
||||
<img class="header-icon" src="{{path_to_root}}img/gl.png"/>
|
||||
View on GitLab
|
||||
</a>
|
||||
</p>
|
||||
{{/github_url}}
|
||||
|
||||
{{#dash_url}}
|
||||
<p class="header-col header-col--secondary">
|
||||
<a class="header-link" href="{{dash_url}}">
|
||||
<img class="header-icon" src="{{path_to_root}}img/dash.png"/>
|
||||
Install in Dash
|
||||
</a>
|
||||
</p>
|
||||
{{/dash_url}}
|
||||
</header>
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
<nav class="navigation">
|
||||
<ul class="nav-groups">
|
||||
{{#structure}}
|
||||
<li class="nav-group-name">
|
||||
<a class="nav-group-name-link" href="{{path_to_root}}{{url}}">{{section}}</a>
|
||||
<ul class="nav-group-tasks">
|
||||
{{#children}}
|
||||
<li class="nav-group-task">
|
||||
<a class="nav-group-task-link" href="{{path_to_root}}{{url}}">{{name}}</a>
|
||||
</li>
|
||||
{{/children}}
|
||||
</ul>
|
||||
</li>
|
||||
{{/structure}}
|
||||
</ul>
|
||||
</nav>
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
<tr>
|
||||
<td>
|
||||
<code>
|
||||
<em>{{name}}</em>
|
||||
</code>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
{{{discussion}}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
Vendored
+104
@@ -0,0 +1,104 @@
|
||||
<div class="task-group">
|
||||
{{#name}}
|
||||
<div class="task-name-container">
|
||||
<a name="/{{uid}}"></a>
|
||||
<a name="//apple_ref/{{language_stub}}/Section/{{name}}" class="dashAnchor"></a>
|
||||
<a href="#/{{uid}}">
|
||||
<h3 class="section-name">{{name}}</h3>
|
||||
</a>
|
||||
</div>
|
||||
{{/name}}
|
||||
<ul class="item-container">
|
||||
{{#items}}
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/{{usr}}"></a>
|
||||
<a name="//apple_ref/{{language_stub}}/{{dash_type}}/{{name}}" class="dashAnchor"></a>
|
||||
{{#direct_link}}
|
||||
<a class="direct-link" href="{{url}}">{{name}}</a>
|
||||
</code>
|
||||
{{/direct_link}}
|
||||
{{^direct_link}}
|
||||
{{^usage_discouraged}}
|
||||
<a class="token" href="#/{{usr}}">{{name}}</a>
|
||||
{{/usage_discouraged}}
|
||||
{{#usage_discouraged}}
|
||||
<a class="token discouraged" href="#/{{usr}}">{{name}}</a>
|
||||
{{/usage_discouraged}}
|
||||
</code>
|
||||
{{#default_impl_abstract}}
|
||||
<span class="declaration-note">
|
||||
Default implementation
|
||||
</span>
|
||||
{{/default_impl_abstract}}
|
||||
{{#from_protocol_extension}}
|
||||
<span class="declaration-note">
|
||||
Extension method
|
||||
</span>
|
||||
{{/from_protocol_extension}}
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
{{> deprecation}}
|
||||
{{#abstract}}
|
||||
<div class="abstract">
|
||||
{{{abstract}}}
|
||||
{{#url}}
|
||||
<a href="{{{path_to_root}}}{{{url}}}" class="slightly-smaller">See more</a>
|
||||
{{/url}}
|
||||
</div>
|
||||
{{/abstract}}
|
||||
{{#default_impl_abstract}}
|
||||
<h4>Default Implementation</h4>
|
||||
<div class="default_impl abstract">
|
||||
{{{default_impl_abstract}}}
|
||||
</div>
|
||||
{{/default_impl_abstract}}
|
||||
{{#declaration}}
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">{{language}}</p>
|
||||
{{{declaration}}}
|
||||
</div>
|
||||
{{#other_language_declaration}}
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
{{{other_language_declaration}}}
|
||||
</div>
|
||||
{{/other_language_declaration}}
|
||||
</div>
|
||||
{{/declaration}}
|
||||
{{#parameters.count}}
|
||||
<div>
|
||||
<h4>Parameters</h4>
|
||||
<table class="graybox">
|
||||
<tbody>
|
||||
{{#parameters}}
|
||||
{{> parameter}}
|
||||
{{/parameters}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{/parameters.count}}
|
||||
{{#return}}
|
||||
<div>
|
||||
<h4>Return Value</h4>
|
||||
{{{return}}}
|
||||
</div>
|
||||
{{/return}}
|
||||
{{#github_token_url}}
|
||||
<div class="slightly-smaller">
|
||||
<a href="{{{github_token_url}}}">Show on GitHub</a>
|
||||
</div>
|
||||
{{/github_token_url}}
|
||||
</section>
|
||||
{{/direct_link}}
|
||||
</div>
|
||||
</li>
|
||||
{{/items}}
|
||||
</ul>
|
||||
</div>
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
{{#tasks.count}}
|
||||
<section class="section">
|
||||
<div class="section-content">
|
||||
{{#tasks}}
|
||||
{{> task}}
|
||||
{{/tasks}}
|
||||
</div>
|
||||
</section>
|
||||
{{/tasks.count}}
|
||||
Reference in New Issue
Block a user