diff --git a/docfx_project/.gitignore b/docfx_project/.gitignore
new file mode 100644
index 0000000..4378419
--- /dev/null
+++ b/docfx_project/.gitignore
@@ -0,0 +1,9 @@
+###############
+# folder #
+###############
+/**/DROP/
+/**/TEMP/
+/**/packages/
+/**/bin/
+/**/obj/
+_site
diff --git a/docfx_project/api/.gitignore b/docfx_project/api/.gitignore
new file mode 100644
index 0000000..e8079a3
--- /dev/null
+++ b/docfx_project/api/.gitignore
@@ -0,0 +1,5 @@
+###############
+# temp file #
+###############
+*.yml
+.manifest
diff --git a/docfx_project/api/index.md b/docfx_project/api/index.md
new file mode 100644
index 0000000..78dc9c0
--- /dev/null
+++ b/docfx_project/api/index.md
@@ -0,0 +1,2 @@
+# PLACEHOLDER
+TODO: Add .NET projects to the *src* folder and run `docfx` to generate **REAL** *API Documentation*!
diff --git a/docfx_project/articles/intro.md b/docfx_project/articles/intro.md
new file mode 100644
index 0000000..c0478ce
--- /dev/null
+++ b/docfx_project/articles/intro.md
@@ -0,0 +1 @@
+# Add your introductions here!
diff --git a/docfx_project/articles/toc.yml b/docfx_project/articles/toc.yml
new file mode 100644
index 0000000..ff89ef1
--- /dev/null
+++ b/docfx_project/articles/toc.yml
@@ -0,0 +1,2 @@
+- name: Introduction
+ href: intro.md
diff --git a/docfx_project/docfx.json b/docfx_project/docfx.json
new file mode 100644
index 0000000..304c063
--- /dev/null
+++ b/docfx_project/docfx.json
@@ -0,0 +1,66 @@
+{
+ "metadata": [
+ {
+ "src": [
+ {
+ "src": "../",
+ "files": [
+ "X10D/**/**.csproj",
+ "X10D.Unity/**/**.csproj"
+ ]
+ }
+ ],
+ "dest": "api",
+ "disableGitFeatures": false,
+ "disableDefaultFilter": false
+ }
+ ],
+ "build": {
+ "content": [
+ {
+ "files": [
+ "api/**.yml",
+ "api/index.md"
+ ]
+ },
+ {
+ "files": [
+ "articles/**.md",
+ "articles/**/toc.yml",
+ "toc.yml",
+ "*.md"
+ ]
+ }
+ ],
+ "resource": [
+ {
+ "files": [
+ "images/**"
+ ]
+ }
+ ],
+ "overwrite": [
+ {
+ "files": [
+ "apidoc/**.md"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "dest": "_site",
+ "globalMetadataFiles": [],
+ "fileMetadataFiles": [],
+ "template": [
+ "default", "templates/singulinkfx"
+ ],
+ "postProcessors": [],
+ "markdownEngineName": "markdig",
+ "noLangKeyword": false,
+ "keepFileLink": false,
+ "cleanupCacheHistory": false,
+ "disableGitFeatures": false
+ }
+}
\ No newline at end of file
diff --git a/docfx_project/index.md b/docfx_project/index.md
new file mode 100644
index 0000000..3ae2506
--- /dev/null
+++ b/docfx_project/index.md
@@ -0,0 +1,4 @@
+# This is the **HOMEPAGE**.
+Refer to [Markdown](http://daringfireball.net/projects/markdown/) for how to write markdown files.
+## Quick Start Notes:
+1. Add images to the *images* folder if the file is referencing an image.
diff --git a/docfx_project/templates/singulinkfx/layout/_master.tmpl b/docfx_project/templates/singulinkfx/layout/_master.tmpl
new file mode 100644
index 0000000..a309bf5
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/layout/_master.tmpl
@@ -0,0 +1,62 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+{{!include(/^styles/.*/)}}
+{{!include(/^fonts/.*/)}}
+{{!include(favicon.ico)}}
+{{!include(logo.svg)}}
+{{!include(search-stopwords.json)}}
+
+
+
+ {{>partials/head}}
+
+
+
+
+
+
+
+ {{>partials/logo}}
+
+
+
+
+
+
+
+
+ {{#_enableSearch}}
+ {{>partials/searchResults}}
+ {{/_enableSearch}}
+
+
+ {{^_disableBreadcrumb}}
+ {{>partials/breadcrumb}}
+ {{/_disableBreadcrumb}}
+
+
+ {{!body}}
+
+
+
+ {{#_copyrightFooter}}
+
+ {{/_copyrightFooter}}
+
+
+
+ {{>partials/scripts}}
+
+
diff --git a/docfx_project/templates/singulinkfx/partials/footer.tmpl.partial b/docfx_project/templates/singulinkfx/partials/footer.tmpl.partial
new file mode 100644
index 0000000..dd601a9
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/partials/footer.tmpl.partial
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/partials/head.tmpl.partial b/docfx_project/templates/singulinkfx/partials/head.tmpl.partial
new file mode 100644
index 0000000..01f8b63
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/partials/head.tmpl.partial
@@ -0,0 +1,24 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
+
+
+ {{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}
+
+
+
+ {{#_description}} {{/_description}}
+
+
+
+
+
+
+
+
+
+
+ {{#_noindex}} {{/_noindex}}
+ {{#_enableSearch}} {{/_enableSearch}}
+ {{#_enableNewTab}} {{/_enableNewTab}}
+
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/partials/li.tmpl.partial b/docfx_project/templates/singulinkfx/partials/li.tmpl.partial
new file mode 100644
index 0000000..2c8a3d0
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/partials/li.tmpl.partial
@@ -0,0 +1,31 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
+ {{#items}}
+ {{^dropdown}}
+
+ {{^leaf}}
+
+ {{/leaf}}
+ {{#topicHref}}
+
+ {{/topicHref}}
+ {{^topicHref}}
+ {{{name}}}
+ {{/topicHref}}
+
+ {{^leaf}}
+ {{>partials/li}}
+ {{/leaf}}
+
+ {{/dropdown}}
+ {{#dropdown}}
+
+ {{name}}
+
+
+ {{/dropdown}}
+ {{/items}}
+
diff --git a/docfx_project/templates/singulinkfx/partials/logo.tmpl.partial b/docfx_project/templates/singulinkfx/partials/logo.tmpl.partial
new file mode 100644
index 0000000..738ab5b
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/partials/logo.tmpl.partial
@@ -0,0 +1,6 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
+
+ {{_appName}}
+
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/partials/namespace.tmpl.partial b/docfx_project/templates/singulinkfx/partials/namespace.tmpl.partial
new file mode 100644
index 0000000..42d64e6
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/partials/namespace.tmpl.partial
@@ -0,0 +1,13 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+{{>partials/title}}
+{{{summary}}}
+{{{conceptual}}}
+
+{{#children}}
+ {{>partials/namespaceSubtitle}}
+ {{#children}}
+
+
+ {{/children}}
+{{/children}}
diff --git a/docfx_project/templates/singulinkfx/partials/navbar.tmpl.partial b/docfx_project/templates/singulinkfx/partials/navbar.tmpl.partial
new file mode 100644
index 0000000..cfddfd8
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/partials/navbar.tmpl.partial
@@ -0,0 +1,19 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
+
+ {{>partials/logo}}
+
+
+ {{#_enableSearch}}
+
+
+
+ {{/_enableSearch}}
+
+
+
+
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/partials/scripts.tmpl.partial b/docfx_project/templates/singulinkfx/partials/scripts.tmpl.partial
new file mode 100644
index 0000000..90fb7d5
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/partials/scripts.tmpl.partial
@@ -0,0 +1,12 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/partials/searchResults.tmpl.partial b/docfx_project/templates/singulinkfx/partials/searchResults.tmpl.partial
new file mode 100644
index 0000000..9f08c90
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/partials/searchResults.tmpl.partial
@@ -0,0 +1,9 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
+
{{__global.searchResults}}
+
+
+
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/partials/toc.tmpl.partial b/docfx_project/templates/singulinkfx/partials/toc.tmpl.partial
new file mode 100644
index 0000000..c660966
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/partials/toc.tmpl.partial
@@ -0,0 +1,5 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
diff --git a/docfx_project/templates/singulinkfx/styles/config.css b/docfx_project/templates/singulinkfx/styles/config.css
new file mode 100644
index 0000000..9f3ca69
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/styles/config.css
@@ -0,0 +1,114 @@
+/* Theme Configuration Options */
+
+:root
+{
+ /* General */
+
+ --base-font-size: 16px;
+ --smalldevice-base-font-size: 14px; /* Base font size for devices < 1024px */
+
+ --main-bg-color: #1f1f23;
+ --footer-bg-color: rgba(0,0,0,.4);
+ --separator-color: #42474f;
+
+ --table-strip-bg-color: #151515;
+ --table-header-bg-color: black;
+ --table-header-color: hsla(0,0%,100%,.8);
+ --table-header-border-color: #040405;
+
+ /* Text */
+
+ --appname-color: white;
+
+ --h1-color: white;
+ --h2-color: #f2f2f2;
+ --h3-color: #e3e3e3;
+ --h4-color: #ffffff;
+ --h5-color: #e0e0e0;
+
+ --text-color: #e1e1e1;
+ --link-color: #00b0f4;
+ --link-hover-color: #2ec4ff;
+
+ /* Mobile Topbar */
+
+ --topbar-bg-color: #18191c;
+
+ /* Button */
+
+ --button-color: #747f8d;
+
+ /* Sidebar */
+
+ --sidebar-width: 400px;
+ --sidebar-bg-color: #292B30;
+
+ --search-color: #bdbdbd;
+ --search-bg-color: #1b1e21;
+ --search-searchicon-color: #e3e3e3;
+ --search-border-color: black;
+
+ --sidebar-item-color: white;
+ --sidebar-active-item-color: #00b0f4;
+ --sidebar-level1-item-bg-color: #222429;
+ --sidebar-level1-item-hover-bg-color: #1D1F22;
+
+ --toc-filter-color: #bdbdbd;
+ --toc-filter-bg-color: #1b1e21;
+ --toc-filter-filtericon-color: #e3e3e3;
+ --toc-filter-clearicon-color: #e68585;
+ --toc-filter-border-color: black;
+
+ /* Scrollbars */
+
+ --scrollbar-bg-color: transparent;
+ --scrollbar-thumb-bg-color: rgba(0,0,0,.4);
+ --scrollbar-thumb-border-color: transparent;
+
+ /* Alerts and Blocks */
+
+ --alert-info-border-color: rgba(114,137,218,.5);
+ --alert-info-bg-color: rgba(114,137,218,.1);
+
+ --alert-warning-border-color: rgba(250,166,26,.5);
+ --alert-warning-bg-color: rgba(250,166,26,.1);
+
+ --alert-danger-border-color: rgba(240,71,71,.5);
+ --alert-danger-bg-color: rgba(240,71,71,.1);
+
+ --alert-tip-border-color: rgba(255,255,255,.5);
+ --alert-tip-bg-color: rgba(255,255,255,.1);
+
+ --blockquote-border-color: rgba(255,255,255,.5);
+ --blockquote-bg-color: rgba(255,255,255,.1);
+
+ --breadcrumb-bg-color: #2f3136;
+
+ /* Inline Code */
+
+ --ref-bg-color: black;
+ --ref-color: #89d4f1;
+
+ /* Code Blocks */
+
+ --code-bg-color: #151515;
+ --code-color: #d6deeb;
+ --code-keyword-color: #569cd6;
+ --code-comment-color: #57a64a;
+ --code-macro-color: #beb7ff;
+ --code-string-color: #d69d85;
+ --code-string-escape-color: #ffd68f;
+ --code-field-color: #c8c8c8;
+ --code-function-color: #dcdcaa;
+ --code-control-color: #d8a0df;
+ --code-class-color: #4ec9b0;
+ --code-number-color: #b5cea8;
+ --code-params-color: #9a9a9a;
+ --code-breakpoint-color: #8c2f2f;
+}
+
+/* Code Block Overrides */
+
+pre, legend {
+ --scrollbar-thumb-bg-color: #333;
+}
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/styles/discord.css b/docfx_project/templates/singulinkfx/styles/discord.css
new file mode 100644
index 0000000..bb3e55a
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/styles/discord.css
@@ -0,0 +1,681 @@
+/* Discord Style */
+
+::-webkit-scrollbar {
+ width: 10px;
+}
+
+::-webkit-scrollbar-track {
+ background: var(--scrollbar-bg-color);
+}
+
+::-webkit-scrollbar-thumb {
+ background: var(--scrollbar-thumb-bg-color);
+ border-color: var(--scrollbar-thumb-border-color);
+ border-radius: 5px;
+}
+
+::marker {
+ unicode-bidi: isolate;
+ font-variant-numeric: tabular-nums;
+ text-transform: none;
+ text-indent: 0px !important;
+ text-align: start !important;
+ text-align-last: start !important;
+}
+
+*, :after, :before
+{
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+html, body
+{
+ padding: 0;
+ margin: 0;
+ font: 15px/150% 'Roboto', sans-serif;
+ overflow: hidden;
+ color: var(--text-color);
+ background-color: var(--main-bg-color);
+
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+}
+
+img {
+ max-width: 100%;
+}
+
+ul > li, ol > li {
+ display: list-item;
+}
+
+h1,h2,h3,h4,h5
+{
+ color: var(--link-active-color);
+ position: relative;
+}
+
+h1, h2
+{
+ margin-block-start: 2em;
+}
+
+h3
+{
+ margin-block-start: 1em;
+ font-weight: 300;
+ font-size: 1.5em;
+ color: var(--h3-color);
+ margin-block-start: 3em;
+}
+
+h4
+{
+ opacity: 1;
+ color: var(--h4-color);
+ font-size: large;
+ border-bottom: 2px solid var(--separator-color);
+ margin: 20px 0 0 0;
+}
+
+
+h5 {
+ margin-block-end: .8em;
+ margin-block-start: 1em;
+ font-size: .85em;
+ font-weight: 500;
+ color: var(--h5-color);
+}
+
+h6 {
+ font-size: .75em;
+ margin: 0;
+}
+
+p
+{
+ font-weight: 400;
+}
+
+ul
+{
+ position: relative;
+}
+
+ul, ol
+{
+ padding-inline-start: 3em;
+}
+
+ul.level1
+{
+ list-style-type: none;
+ padding-inline-start: 0;
+}
+
+ul.level2, ul.level3
+{
+ padding-inline-start: 1em;
+ list-style-type: none;
+ font-size: .9em;
+}
+
+a
+{
+ color: var(--link-color);
+ text-decoration: none;
+ transition: color .25s;
+}
+
+a:focus, a:hover
+{
+ color: var(--link-hover-color);
+ text-decoration: underline;
+}
+
+a.anchorjs-link:hover {
+ text-decoration: none;
+}
+
+a.active, a:active
+{
+ color: var(--link-active-color);
+}
+
+.body-content
+{
+ display: flex;
+ flex-direction: row;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: hidden;
+}
+
+.page-title
+{
+ margin-block-start: 0;
+}
+
+nav
+{
+ width: 300px;
+ transition: left .5s ease-out;
+ position: fixed;
+ left: -350px;
+ top: 40px;
+ bottom: 0;
+ background-color: var(--sidebar-bg-color);
+ overflow-y: auto;
+
+ display: flex;
+ flex-direction: column;
+
+ z-index: 1000;
+}
+
+h1:first-child
+{
+ margin-block-start: 1.1em;
+ margin-top: 1.1em;
+}
+
+.sidebar
+{
+ padding: 32px 17px 32px 32px;
+ flex: 1;
+}
+
+.sidebar-item
+{
+ font-size: 1em;
+ font-weight: 400;
+ display: block;
+ padding: 4px 16px;
+ color: var(--sidebar-item-color);
+}
+
+.sidebar-item.large, #navbar .sidebar-item
+{
+ padding: 8px 16px;
+}
+
+a.sidebar-item:hover, a.sidebar-item:focus
+{
+ color: var(--link-active-color);
+ text-decoration: none;
+}
+
+a.sidebar-item.active
+{
+ color: var(--link-active-color);
+}
+
+ul.level1 > li > a.sidebar-item
+{
+ background-color: transparent;
+ border-radius: 4px;
+}
+
+#toc ul.level1 > li > a.sidebar-item.active
+{
+ background-color: var(--link-active-bg-color);
+}
+
+.sidebar-item-separator
+{
+ height: 2px;
+ width: 100%;
+ background-color: var(--separator-color);
+ margin: 2em 0;
+ opacity: .8;
+}
+
+span.sidebar-item
+{
+ font-weight: 700;
+ text-transform: uppercase;
+ font-size: .8em;
+ color: var(--text-color);
+ margin-block-start: 1.25em;
+}
+
+.main-panel
+{
+ background-color: var(--main-bg-color);
+ flex: 1;
+ overflow-y: auto;
+ padding: 20px 40px;
+}
+
+.top-navbar
+{
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ padding: 0 40px;
+ height: 40px;
+ background-color: var(--topbar-bg-color);
+}
+
+.burger-icon
+{
+ margin-right: 1em;
+ color: var(--button-color);
+}
+
+.burger-icon:hover, .burger-icon:focus
+{
+ color: var(--link-active-color);
+}
+
+.burger-icon.active, .burger-icon:active
+{
+ color: var(--link-active-color);
+}
+
+.brand
+{
+ display: flex;
+ align-items: center;
+ justify-content: start;
+}
+
+.logomark
+{
+ height: 28px;
+}
+
+.brand-title
+{
+ padding: 0 .5em;
+ font-size: .9em;
+ color: var(--link-active-color);
+}
+
+.footer
+{
+ background-color: var(--footer-bg-color);
+ padding: 20px;
+ margin: 0 20px 20px 20px;
+ border-radius: 8px;
+ color: var(--link-active-color);
+}
+
+.footer > h4
+{
+ margin-block-start: 0;
+}
+
+.blackout
+{
+ display: block;
+ visibility: hidden;
+ position: absolute;
+ z-index: 100;
+ top: 40px;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background-color: var(--footer-bg-color);
+}
+
+@keyframes showThat {
+ 0% { opacity: 0; visibility: hidden; }
+ 1% { opacity: 0; visibility: visible; }
+ 100% { opacity: 1; visibility: visible;}
+}
+
+@keyframes hideThat {
+ 0% { opacity: 1; visibility: visible; }
+ 99% { opacity: 0; visibility: visible; }
+ 100% { opacity: 0; visibility: hidden;}
+}
+
+.showThat
+{
+ animation: showThat .5s forwards;
+}
+
+.hideThat
+{
+ animation: hideThat .5s forwards;
+}
+
+
+
+@media (min-width: 1024px)
+{
+ nav
+ {
+ position: relative;
+ left: 0!important;
+ top: 0;
+ bottom: 0;
+ }
+
+ .top-navbar
+ {
+ display: none;
+ }
+
+ .blackout
+ {
+ display: none;
+ }
+}
+
+/* Table */
+
+.table-responsive
+{
+ overflow-x: auto;
+ margin-bottom: 64px;
+}
+
+table
+{
+ background-color: var(--code-bg-color);
+ border-collapse: collapse;
+ width: 100%;
+ table-layout: auto;
+}
+
+table.table-striped tbody tr:nth-child(2n)
+{
+ background-color: var(--table-strip-bg-color);
+}
+
+table thead
+{
+ background: var(--table-header-bg-color);
+}
+
+table th
+{
+ color: var(--table-header-color);
+ text-transform: uppercase;
+ font-size: 12px;
+ line-height: 15px;
+ border-bottom: 1px solid var(--table-header-border-color);
+ padding: 8px;
+}
+
+.table-condensed th {
+ text-align: left;
+}
+
+table td
+{
+ padding: 8px;
+ font-weight: 300;
+}
+
+table td > p
+{
+ margin: 0;
+}
+
+/* Alerts */
+.alert {
+ border-radius: 4px;
+ padding: 8px;
+ margin: 25px 0;
+}
+
+.alert > h5
+{
+ display: none;
+ margin: 0;
+}
+
+.alert > p
+{
+ margin: 0;
+ font-weight: 300;
+ font-size: 13px;
+}
+
+.alert.alert-info
+{
+ border: 2px solid var(--alert-info-border-color);
+ background: var(--alert-info-bg-color);
+}
+
+.alert.alert-warning
+{
+ border: 2px solid var(--alert-warning-border-color);
+ background: var(--alert-warning-bg-color);
+}
+
+.alert.alert-danger
+{
+ border: 2px solid var(--alert-danger-border-color);
+ background: var(--alert-danger-bg-color);
+}
+
+.TIP.alert.alert-info
+{
+ border: 2px solid var(--alert-tip-border-color);
+ background: var(--alert-tip-bg-color);
+}
+
+blockquote {
+ margin: 8px 0;
+ border-left: 4px solid var(--blockquote-border-color);
+ padding: 8px;
+ background: var(--blockquote-bg-color);
+ border-radius: 4px;
+}
+
+blockquote > p {
+ margin: 0;
+ font-style: italic;
+ font-size: 13px;
+}
+
+
+/* Breadcrumb */
+
+#breadcrumb
+{
+ padding: 8px 16px;
+ background: var(--breadcrumb-bg-color);
+ border-radius: 4px;
+ margin-bottom: 30px;
+}
+
+#breadcrumb:empty
+{
+ display: none;
+}
+
+ul.breadcrumb
+{
+ display: flex;
+ flex-direction: row;
+ margin: 0;
+}
+
+ul.breadcrumb > li {
+ margin-right: 6px;
+}
+
+ul.breadcrumb > li::before
+{
+ content: "/";
+ margin-right: 5px;
+}
+
+ul.breadcrumb > li:first-child::before
+{
+ content: "";
+ margin: 0;
+}
+
+
+/* Code */
+
+legend, pre
+{
+ display: block;
+ background-color: var(--code-bg-color);
+ padding: 16px;
+ border-radius: 4px;
+}
+
+code
+{
+ background-color: var(--code-bg-color);
+ padding: 2px 4px;
+ border-radius: 4px;
+}
+
+.hljs
+{
+ background: transparent;
+}
+
+/* DocFX related */
+
+.small {
+ font-size: .9em;
+}
+
+.pull-right
+{
+ float: right;
+}
+
+.hide
+{
+ display: none;
+}
+
+@media (max-width: 1023.98px)
+{
+ .mobile-hide
+ {
+ display: none;
+ }
+}
+
+li
+{
+ display: block;
+ position: relative;
+}
+
+.expand-stub
+{
+ cursor: pointer;
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ left: -10px;
+}
+
+ul.level1 > li > .expand-stub
+{
+ display: none;
+}
+
+.toc .nav > li > .expand-stub::before, .toc .nav > li.active > .expand-stub::before
+{
+ content: " ";
+ position: absolute;
+ transform: rotate(-90deg);
+ width: 10px;
+ height: 10px;
+ top: 5px;
+ left: 5px;
+ background-repeat: no-repeat;
+ background: url(down-arrow.svg);
+}
+
+.toc .nav > li.active > .expand-stub::before, .toc .nav > li.in > .expand-stub::before, .toc .nav > li.in.active > .expand-stub::before, .toc .nav > li.filtered > .expand-stub::before
+{
+ transform: none;
+}
+
+li > ul
+{
+ display: none;
+}
+
+li.in > ul
+{
+ display: block;
+}
+
+ul.level2 > li > a.sidebar-item,
+ul.level3 > li > a.sidebar-item
+{
+ font-weight: 500;
+ font-size: .95em;
+ padding: 0;
+ margin: 2px 16px;
+}
+
+ul.level2 > li > a.sidebar-item
+{
+ color: var(--sidebar-item-2nd-color);
+}
+
+ul.level3 > li > a.sidebar-item
+{
+ color: var(--sidebar-item-3rd-color);
+}
+
+ul.level2 > li > a.sidebar-item:hover,
+ul.level2 > li > a.sidebar-item:focus,
+ul.level3 > li > a.sidebar-item:hover,
+ul.level3 > li > a.sidebar-item:focus
+{
+ color: var(--link-active-color);
+ text-decoration: underline;
+}
+
+ul.level2 > li > a.sidebar-item.active,
+ul.level3 > li > a.sidebar-item.active
+{
+ color: var(--link-active-color);
+}
+
+.inheritance .level0:before,
+.inheritance .level1:before,
+.inheritance .level2:before,
+.inheritance .level3:before,
+.inheritance .level4:before,
+.inheritance .level5:before {
+ content: '↳';
+ margin-right: 5px;
+}
+
+.inheritance .level0 {
+ margin-left: 0em;
+}
+
+.inheritance .level1 {
+ margin-left: 1em;
+}
+
+.inheritance .level2 {
+ margin-left: 2em;
+}
+
+.inheritance .level3 {
+ margin-left: 3em;
+}
+
+.inheritance .level4 {
+ margin-left: 4em;
+}
+
+.inheritance .level5 {
+ margin-left: 5em;
+}
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/styles/down-arrow.svg b/docfx_project/templates/singulinkfx/styles/down-arrow.svg
new file mode 100644
index 0000000..e086126
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/styles/down-arrow.svg
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docfx_project/templates/singulinkfx/styles/jquery.twbsPagination.js b/docfx_project/templates/singulinkfx/styles/jquery.twbsPagination.js
new file mode 100644
index 0000000..332c01c
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/styles/jquery.twbsPagination.js
@@ -0,0 +1,317 @@
+/*!
+ * jQuery pagination plugin v1.4.1
+ * http://esimakin.github.io/twbs-pagination/
+ *
+ * Copyright 2014-2016, Eugene Simakin
+ * Released under Apache 2.0 license
+ * http://apache.org/licenses/LICENSE-2.0.html
+ */
+(function ($, window, document, undefined) {
+
+ 'use strict';
+
+ var old = $.fn.twbsPagination;
+
+ // PROTOTYPE AND CONSTRUCTOR
+
+ var TwbsPagination = function (element, options) {
+ this.$element = $(element);
+ this.options = $.extend({}, $.fn.twbsPagination.defaults, options);
+
+ if (this.options.startPage < 1 || this.options.startPage > this.options.totalPages) {
+ throw new Error('Start page option is incorrect');
+ }
+
+ this.options.totalPages = parseInt(this.options.totalPages);
+ if (isNaN(this.options.totalPages)) {
+ throw new Error('Total pages option is not correct!');
+ }
+
+ this.options.visiblePages = parseInt(this.options.visiblePages);
+ if (isNaN(this.options.visiblePages)) {
+ throw new Error('Visible pages option is not correct!');
+ }
+
+ if (this.options.onPageClick instanceof Function) {
+ this.$element.first().on('page', this.options.onPageClick);
+ }
+
+ // hide if only one page exists
+ if (this.options.hideOnlyOnePage && this.options.totalPages == 1) {
+ this.$element.trigger('page', 1);
+ return this;
+ }
+
+ if (this.options.totalPages < this.options.visiblePages) {
+ this.options.visiblePages = this.options.totalPages;
+ }
+
+ if (this.options.href) {
+ this.options.startPage = this.getPageFromQueryString();
+ if (!this.options.startPage) {
+ this.options.startPage = 1;
+ }
+ }
+
+ var tagName = (typeof this.$element.prop === 'function') ?
+ this.$element.prop('tagName') : this.$element.attr('tagName');
+
+ if (tagName === 'UL') {
+ this.$listContainer = this.$element;
+ } else {
+ this.$listContainer = $('');
+ }
+
+ this.$listContainer.addClass(this.options.paginationClass);
+
+ if (tagName !== 'UL') {
+ this.$element.append(this.$listContainer);
+ }
+
+ if (this.options.initiateStartPageClick) {
+ this.show(this.options.startPage);
+ } else {
+ this.render(this.getPages(this.options.startPage));
+ this.setupEvents();
+ }
+
+ return this;
+ };
+
+ TwbsPagination.prototype = {
+
+ constructor: TwbsPagination,
+
+ destroy: function () {
+ this.$element.empty();
+ this.$element.removeData('twbs-pagination');
+ this.$element.off('page');
+
+ return this;
+ },
+
+ show: function (page) {
+ if (page < 1 || page > this.options.totalPages) {
+ throw new Error('Page is incorrect.');
+ }
+ this.currentPage = page;
+
+ this.render(this.getPages(page));
+ this.setupEvents();
+
+ this.$element.trigger('page', page);
+
+ return this;
+ },
+
+ buildListItems: function (pages) {
+ var listItems = [];
+
+ if (this.options.first) {
+ listItems.push(this.buildItem('first', 1));
+ }
+
+ if (this.options.prev) {
+ var prev = pages.currentPage > 1 ? pages.currentPage - 1 : this.options.loop ? this.options.totalPages : 1;
+ listItems.push(this.buildItem('prev', prev));
+ }
+
+ for (var i = 0; i < pages.numeric.length; i++) {
+ listItems.push(this.buildItem('page', pages.numeric[i]));
+ }
+
+ if (this.options.next) {
+ var next = pages.currentPage < this.options.totalPages ? pages.currentPage + 1 : this.options.loop ? 1 : this.options.totalPages;
+ listItems.push(this.buildItem('next', next));
+ }
+
+ if (this.options.last) {
+ listItems.push(this.buildItem('last', this.options.totalPages));
+ }
+
+ return listItems;
+ },
+
+ buildItem: function (type, page) {
+ var $itemContainer = $(' '),
+ $itemContent = $(' '),
+ itemText = this.options[type] ? this.makeText(this.options[type], page) : page;
+
+ $itemContainer.addClass(this.options[type + 'Class']);
+ $itemContainer.data('page', page);
+ $itemContainer.data('page-type', type);
+ $itemContainer.append($itemContent.attr('href', this.makeHref(page)).addClass(this.options.anchorClass).html(itemText));
+
+ return $itemContainer;
+ },
+
+ getPages: function (currentPage) {
+ var pages = [];
+
+ var half = Math.floor(this.options.visiblePages / 2);
+ var start = currentPage - half + 1 - this.options.visiblePages % 2;
+ var end = currentPage + half;
+
+ // handle boundary case
+ if (start <= 0) {
+ start = 1;
+ end = this.options.visiblePages;
+ }
+ if (end > this.options.totalPages) {
+ start = this.options.totalPages - this.options.visiblePages + 1;
+ end = this.options.totalPages;
+ }
+
+ var itPage = start;
+ while (itPage <= end) {
+ pages.push(itPage);
+ itPage++;
+ }
+
+ return {"currentPage": currentPage, "numeric": pages};
+ },
+
+ render: function (pages) {
+ var _this = this;
+ this.$listContainer.children().remove();
+ var items = this.buildListItems(pages);
+ jQuery.each(items, function(key, item){
+ _this.$listContainer.append(item);
+ });
+
+ this.$listContainer.children().each(function () {
+ var $this = $(this),
+ pageType = $this.data('page-type');
+
+ switch (pageType) {
+ case 'page':
+ if ($this.data('page') === pages.currentPage) {
+ $this.addClass(_this.options.activeClass);
+ }
+ break;
+ case 'first':
+ $this.toggleClass(_this.options.disabledClass, pages.currentPage === 1);
+ break;
+ case 'last':
+ $this.toggleClass(_this.options.disabledClass, pages.currentPage === _this.options.totalPages);
+ break;
+ case 'prev':
+ $this.toggleClass(_this.options.disabledClass, !_this.options.loop && pages.currentPage === 1);
+ break;
+ case 'next':
+ $this.toggleClass(_this.options.disabledClass,
+ !_this.options.loop && pages.currentPage === _this.options.totalPages);
+ break;
+ default:
+ break;
+ }
+
+ });
+ },
+
+ setupEvents: function () {
+ var _this = this;
+ this.$listContainer.off('click').on('click', 'li', function (evt) {
+ var $this = $(this);
+ if ($this.hasClass(_this.options.disabledClass) || $this.hasClass(_this.options.activeClass)) {
+ return false;
+ }
+ // Prevent click event if href is not set.
+ !_this.options.href && evt.preventDefault();
+ _this.show(parseInt($this.data('page')));
+ });
+ },
+
+ makeHref: function (page) {
+ return this.options.href ? this.generateQueryString(page) : "#";
+ },
+
+ makeText: function (text, page) {
+ return text.replace(this.options.pageVariable, page)
+ .replace(this.options.totalPagesVariable, this.options.totalPages)
+ },
+ getPageFromQueryString: function (searchStr) {
+ var search = this.getSearchString(searchStr),
+ regex = new RegExp(this.options.pageVariable + '(=([^]*)|&|#|$)'),
+ page = regex.exec(search);
+ if (!page || !page[2]) {
+ return null;
+ }
+ page = decodeURIComponent(page[2]);
+ page = parseInt(page);
+ if (isNaN(page)) {
+ return null;
+ }
+ return page;
+ },
+ generateQueryString: function (pageNumber, searchStr) {
+ var search = this.getSearchString(searchStr),
+ regex = new RegExp(this.options.pageVariable + '=*[^]*');
+ if (!search) return '';
+ return '?' + search.replace(regex, this.options.pageVariable + '=' + pageNumber);
+
+ },
+ getSearchString: function (searchStr) {
+ var search = searchStr || window.location.search;
+ if (search === '') {
+ return null;
+ }
+ if (search.indexOf('?') === 0) search = search.substr(1);
+ return search;
+ }
+
+ };
+
+ // PLUGIN DEFINITION
+
+ $.fn.twbsPagination = function (option) {
+ var args = Array.prototype.slice.call(arguments, 1);
+ var methodReturn;
+
+ var $this = $(this);
+ var data = $this.data('twbs-pagination');
+ var options = typeof option === 'object' ? option : {};
+
+ if (!data) $this.data('twbs-pagination', (data = new TwbsPagination(this, options) ));
+ if (typeof option === 'string') methodReturn = data[ option ].apply(data, args);
+
+ return ( methodReturn === undefined ) ? $this : methodReturn;
+ };
+
+ $.fn.twbsPagination.defaults = {
+ totalPages: 1,
+ startPage: 1,
+ visiblePages: 5,
+ initiateStartPageClick: true,
+ hideOnlyOnePage: false,
+ href: false,
+ pageVariable: '{{page}}',
+ totalPagesVariable: '{{total_pages}}',
+ page: null,
+ first: 'First',
+ prev: 'Previous',
+ next: 'Next',
+ last: 'Last',
+ loop: false,
+ onPageClick: null,
+ paginationClass: 'pagination',
+ nextClass: 'page-item next',
+ prevClass: 'page-item prev',
+ lastClass: 'page-item last',
+ firstClass: 'page-item first',
+ pageClass: 'page-item',
+ activeClass: 'active',
+ disabledClass: 'disabled',
+ anchorClass: 'page-link'
+ };
+
+ $.fn.twbsPagination.Constructor = TwbsPagination;
+
+ $.fn.twbsPagination.noConflict = function () {
+ $.fn.twbsPagination = old;
+ return this;
+ };
+
+ $.fn.twbsPagination.version = "1.4.1";
+
+})(window.jQuery, window, document);
diff --git a/docfx_project/templates/singulinkfx/styles/main.css b/docfx_project/templates/singulinkfx/styles/main.css
new file mode 100644
index 0000000..e69de29
diff --git a/docfx_project/templates/singulinkfx/styles/main.js b/docfx_project/templates/singulinkfx/styles/main.js
new file mode 100644
index 0000000..e69de29
diff --git a/docfx_project/templates/singulinkfx/styles/singulink.css b/docfx_project/templates/singulinkfx/styles/singulink.css
new file mode 100644
index 0000000..b7200ca
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/styles/singulink.css
@@ -0,0 +1,471 @@
+body {
+ font-size: var(--base-font-size);
+}
+
+@media (max-width: 1024px) {
+ body {
+ font-size: var(--smalldevice-base-font-size);
+ }
+}
+
+/* Headings */
+
+h1, h2, h3, h4, h5 {
+ line-height: initial;
+}
+
+h1, h1:first-child {
+ font-size: 2.25em;
+ letter-spacing: 0.5px;
+ color: var(--h1-color);
+ margin-block-start: 1em;
+ margin-block-end: -0.05em;
+}
+
+.article h1 {
+ margin-block-end: -0.2em;
+}
+
+h2 {
+ font-size: 2.1em;
+ color: var(--h2-color);
+}
+
+.article h2 {
+ margin-block-start: 1.3em;
+ padding-bottom: 6px;
+ border-bottom: 1px solid var(--separator-color);
+}
+
+h3 {
+ font-size: 1.95em;
+ font-weight: 500;
+ margin-block-start: 1.7em;
+}
+
+.article h3 {
+ font-size: 1.85em;
+ font-weight: 500;
+ margin-block-start: 1.2em;
+ margin-block-end: 0.9em;
+}
+
+h4 {
+ font-size: 1.8em;
+ font-weight: 400;
+ margin-block-start: 2em;
+ padding-bottom: 10px;
+}
+
+.article h4 {
+ font-size: 1.5em;
+ font-weight: 300;
+ margin-block-start: 1em;
+ margin-block-end: 1em;
+ padding-bottom: 0;
+ border-bottom: none;
+}
+
+h5 {
+ font-size: 1.1em;
+}
+
+.article h5 {
+ font-size: 1.13em;
+ font-weight: 400;
+ text-decoration: underline;
+ margin-block-start: 1.5em;
+ margin-block-end: 1.0em;
+}
+
+a.brand:hover
+{
+ text-decoration: none;
+}
+
+a.brand .brand-title {
+ font-size: 1.4em;
+ font-weight: 500;
+ letter-spacing: 0.5px;
+ color: var(--appname-color);
+ margin-top: 1px;
+ padding: 0 0 0 0.4em;
+}
+
+@media (min-width: 1024px) {
+ a.brand .brand-title {
+ font-size: 1.55em;
+ }
+}
+
+
+a.brand .logomark {
+ height: 35px;
+}
+
+/* Top bar */
+
+.top-navbar {
+ height: 60px;
+ padding: 0 0 0 10px;
+}
+
+.burger-icon {
+ margin-right: 10px;
+}
+
+/* Side Bar */
+
+.sidebar {
+ padding: 25px 17px 32px 17px;
+}
+
+.blackout {
+ top: 60px;
+}
+
+@media (max-width: 1023.98px) {
+ .navbar-nav {
+ margin-top: 0;
+ }
+}
+
+nav {
+ width: 94%;
+ max-width: var(--sidebar-width);
+ left: calc(var(--sidebar-width) * -1);
+}
+
+@media (max-width: 1023.98px) {
+ nav {
+ top: 60px;
+ }
+}
+
+nav ul {
+ list-style-type: none;
+}
+
+nav .nav a, nav .nav a:hover {
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+nav a.sidebar-item {
+ padding: 4px 0 4px 10px;
+ cursor: pointer;
+}
+
+nav a:focus, nav a.sidebar-item:hover, nav a.sidebar-item:focus {
+ text-decoration: underline;
+}
+
+nav a, nav a:hover, nav a:focus {
+ color: var(--sidebar-item-color) !important;
+}
+
+nav a.active, nav a.active:hover, nav a.active:focus {
+ color: var(--sidebar-active-item-color) !important;
+}
+
+.sidebar-item-separator {
+ margin: 20px 0;
+}
+
+#toc ul li a {
+ padding: 0 0 0 10px;
+}
+
+.search {
+ background: var(--search-bg-color);
+ border: 1px solid var(--search-border-color);
+ border-radius: 5px;
+ position: relative;
+ margin-block-start: 25px;
+}
+
+@media (max-width: 1023.98px) {
+ .search {
+ margin-block-start: 0;
+ margin-block-end: 15px;
+ }
+}
+
+.search > input {
+ font-size: 0.95em;
+ color: var(--search-color);
+ border: 0;
+ background: none;
+ padding: 11px 30px 10px 37px;
+ width: 100%;
+}
+
+.search > input:focus {
+ outline: 0;
+}
+
+.search > .search-icon {
+ font-size: 1.2em;
+ color: var(--search-searchicon-color);
+ position: absolute;
+ top: 9px;
+ left: 9px;
+}
+
+.toc-filter {
+ background: var(--toc-filter-bg-color);
+ border: 1px solid var(--toc-filter-border-color);
+ border-radius: 5px;
+ position: relative;
+}
+
+.toc-filter > input {
+ font-size: 0.95em;
+ color: var(--toc-filter-color);
+ border: 0;
+ background: none;
+ padding: 11px 30px 10px 37px;
+ width: 100%;
+}
+
+.toc-filter > input:focus {
+ outline: 0;
+}
+
+.toc-filter > .filter-icon {
+ font-size: 1.2em;
+ color: var(--toc-filter-filtericon-color);
+ position: absolute;
+ top: 9px;
+ left: 9px;
+}
+
+.toc-filter > .clear-icon {
+ color: var(--toc-filter-clearicon-color);
+ position: absolute;
+ top: 9px;
+ right: 9px;
+ cursor: pointer;
+}
+
+.toc .nav > li > .expand-stub::before, .toc .nav > li.active > .expand-stub::before
+{
+ width: 8px;
+ height: 8px;
+ top: 6px;
+ left: 6px;
+}
+
+#toc ul.level2
+{
+ margin-bottom: 20px;
+}
+
+#toc ul.level1 > li > a {
+ font-weight: 500;
+ margin-bottom: 10px;
+ padding: 5px 10px;
+}
+
+#toc ul.level1 > li > a, #toc ul.level1 > li > a.active {
+ background-color: var(--sidebar-level1-item-bg-color) !important;
+ border-radius: 2px;
+}
+
+#toc ul.level1 > li > a:hover, #toc ul.level1 > li > a.active:hover,
+#toc ul.level1 > li > a:focus, #toc ul.level1 > li > a.active:focus {
+ background-color: var(--sidebar-level1-item-hover-bg-color) !important;
+ text-decoration: none;
+}
+
+ul.level2 {
+ padding-inline-start: 0.7em;
+}
+
+ul.level2 .expand-stub {
+ top: 1px;
+}
+
+ul.level2 > li > a, ul.level2 > li > a.sidebar-item {
+ font-weight: 400;
+ color: var(--sidebar-item-color);
+ margin: 4px 0 4px;
+}
+
+ul.level3 {
+ padding-inline-start: 1em;
+}
+
+ul.level3 > li > a, ul.level3 > li > a.sidebar-item {
+ font-size: 1.05em;
+ color: var(--sidebar-item-color);
+ margin: 4px 0;
+}
+
+ul.level4 {
+ padding-inline-start: 0;
+ margin-bottom: 12px;
+}
+
+ul.level4 > li > a, ul.level4 > li > a.sidebar-item {
+ font-size: 1.05em;
+ color: var(--sidebar-item-color);
+ margin: 5px 0 5px 10px;
+}
+
+/* Breadcrumbs */
+
+.subnav.navbar {
+ margin: 0 -15px;
+}
+
+#breadcrumb {
+ overflow: scroll;
+ margin-bottom: 0;
+}
+
+#breadcrumb::-webkit-scrollbar {
+ display: none;
+}
+
+#breadcrumb a {
+ white-space: nowrap;
+}
+
+#breadcrumb wbr {
+ display: none;
+}
+
+/* Search Results */
+
+#search-results h1 {
+ margin-block-start: 0.5em;
+}
+
+#search-results .item-title {
+ font-size: 1.3em;
+ margin-top: 1.5em;
+}
+
+#search-results .item-href {
+ font-size: 0.85em;
+}
+
+#search-results .item-brief {
+ margin-top: 0.7em;
+}
+
+#search-results ul.pagination {
+ text-align: center;
+ padding: 10px 0 0 0;
+ margin-block-start: 40px;
+ border-top: 1px solid var(--separator-color);
+}
+
+#search-results ul.pagination > li {
+ display: inline-block;
+ margin: 0 10px;
+}
+
+#search-results ul.pagination > li.disabled a, #search-results ul.pagination > li.disabled a:hover {
+ color: var(--text-color);
+ cursor: txt;
+ text-decoration: none;
+}
+
+/* Content */
+
+.main-panel {
+ margin-bottom: 60px;
+ padding: 20px;
+}
+
+@media (min-width: 1024px) {
+ .main-panel {
+ margin-bottom: 0;
+ padding: 20px 40px;
+ }
+}
+
+.pull-right {
+ margin-top: 70px;
+ /* Fix unclickable links */
+ position: relative;
+ z-index: 1;
+}
+
+.divider {
+ margin-left: 4px;
+}
+
+article ul li, article ol li {
+ margin-bottom: 10px;
+}
+
+legend, pre {
+ padding: 6px;
+}
+
+.hljs {
+ color: var(--code-color);
+}
+
+.hljs::-webkit-scrollbar {
+ height: 6px;
+}
+
+.hljs-keyword, .hljs-title, .hljs-built_in {
+ font-style: normal;
+}
+
+p .xref, code {
+ background-color: var(--ref-bg-color);
+ color: var(--ref-color);
+ padding: 2px 3px;
+ font-family: monospace;
+ font-size: 0.95em;
+ border-radius: 6px;
+}
+
+span.parametername {
+ font-family: monospace;
+}
+
+.table {
+ width: auto;
+}
+
+.table-responsive {
+ margin-bottom: 0;
+}
+
+table th {
+ font-size: 14px;
+ padding: 9px 10px;
+}
+
+table td p {
+ font-weight: 300;
+}
+
+table td {
+ padding: 6px 10px;
+}
+
+.footer {
+ text-align: center;
+ color: var(--text-color);
+ padding: 10px;
+}
+
+.footer a:hover, .footer a:focus {
+ text-decoration: underline;
+}
+
+.copyright-footer {
+ font-size: 0.85em;
+ font-weight: bold;
+ text-align: center;
+ margin-block-start: 30px;
+}
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/styles/singulink.js b/docfx_project/templates/singulinkfx/styles/singulink.js
new file mode 100644
index 0000000..c2c0b4c
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/styles/singulink.js
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+function toggleMenu() {
+
+ var sidebar = document.getElementById("sidebar");
+ var blackout = document.getElementById("blackout");
+
+ if (sidebar.style.left === "0px")
+ {
+ sidebar.style.left = "-" + sidebar.offsetWidth + "px";
+ blackout.classList.remove("showThat");
+ blackout.classList.add("hideThat");
+ }
+ else
+ {
+ sidebar.style.left = "0px";
+ blackout.classList.remove("hideThat");
+ blackout.classList.add("showThat");
+ }
+}
+
+$(function() {
+ $('table').each(function(a, tbl) {
+ var currentTableRows = $(tbl).find('tbody tr').length;
+ $(tbl).find('th').each(function(i) {
+ var remove = 0;
+ var currentTable = $(this).parents('table');
+
+ var tds = currentTable.find('tr td:nth-child(' + (i + 1) + ')');
+ tds.each(function(j) { if ($(this).text().trim() === '') remove++; });
+
+ if (remove == currentTableRows) {
+ $(this).hide();
+ tds.hide();
+ }
+ });
+ });
+});
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/styles/url.min.js b/docfx_project/templates/singulinkfx/styles/url.min.js
new file mode 100644
index 0000000..8057e0a
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/styles/url.min.js
@@ -0,0 +1 @@
+/*! url - v1.8.6 - 2013-11-22 */window.url=function(){function a(a){return!isNaN(parseFloat(a))&&isFinite(a)}return function(b,c){var d=c||window.location.toString();if(!b)return d;b=b.toString(),"//"===d.substring(0,2)?d="http:"+d:1===d.split("://").length&&(d="http://"+d),c=d.split("/");var e={auth:""},f=c[2].split("@");1===f.length?f=f[0].split(":"):(e.auth=f[0],f=f[1].split(":")),e.protocol=c[0],e.hostname=f[0],e.port=f[1]||("https"===e.protocol.split(":")[0].toLowerCase()?"443":"80"),e.pathname=(c.length>3?"/":"")+c.slice(3,c.length).join("/").split("?")[0].split("#")[0];var g=e.pathname;"/"===g.charAt(g.length-1)&&(g=g.substring(0,g.length-1));var h=e.hostname,i=h.split("."),j=g.split("/");if("hostname"===b)return h;if("domain"===b)return/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/.test(h)?h:i.slice(-2).join(".");if("sub"===b)return i.slice(0,i.length-2).join(".");if("port"===b)return e.port;if("protocol"===b)return e.protocol.split(":")[0];if("auth"===b)return e.auth;if("user"===b)return e.auth.split(":")[0];if("pass"===b)return e.auth.split(":")[1]||"";if("path"===b)return e.pathname;if("."===b.charAt(0)){if(b=b.substring(1),a(b))return b=parseInt(b,10),i[0>b?i.length+b:b-1]||""}else{if(a(b))return b=parseInt(b,10),j[0>b?j.length+b:b]||"";if("file"===b)return j.slice(-1)[0];if("filename"===b)return j.slice(-1)[0].split(".")[0];if("fileext"===b)return j.slice(-1)[0].split(".")[1]||"";if("?"===b.charAt(0)||"#"===b.charAt(0)){var k=d,l=null;if("?"===b.charAt(0)?k=(k.split("?")[1]||"").split("#")[0]:"#"===b.charAt(0)&&(k=k.split("#")[1]||""),!b.charAt(1))return k;b=b.substring(1),k=k.split("&");for(var m=0,n=k.length;n>m;m++)if(l=k[m].split("="),l[0]===b)return l[1]||"";return null}}return""}}(),"undefined"!=typeof jQuery&&jQuery.extend({url:function(a,b){return window.url(a,b)}});
\ No newline at end of file
diff --git a/docfx_project/templates/singulinkfx/toc.html.tmpl b/docfx_project/templates/singulinkfx/toc.html.tmpl
new file mode 100644
index 0000000..6549e62
--- /dev/null
+++ b/docfx_project/templates/singulinkfx/toc.html.tmpl
@@ -0,0 +1,22 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
+
+ {{^_disableSideFilter}}
+
+
+
+ {{/_disableSideFilter}}
+
+
+ {{^leaf}}
+ {{>partials/li}}
+ {{/leaf}}
+
+
+
+
\ No newline at end of file
diff --git a/docfx_project/toc.yml b/docfx_project/toc.yml
new file mode 100644
index 0000000..59f8010
--- /dev/null
+++ b/docfx_project/toc.yml
@@ -0,0 +1,5 @@
+- name: Articles
+ href: articles/
+- name: Api Documentation
+ href: api/
+ homepage: api/index.md