mirror of
https://github.com/oliverbooth/X10D
synced 2024-11-23 01:28:48 +00:00
Merge branch 'main' into develop
This commit is contained in:
commit
838a7cf72a
133
.github/CODE_OF_CONDUCT.md
vendored
Normal file
133
.github/CODE_OF_CONDUCT.md
vendored
Normal file
@ -0,0 +1,133 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||
identity and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the overall
|
||||
community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||
any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email address,
|
||||
without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
yiliansource@gmail.com or me@olivr.me.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series of
|
||||
actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or permanent
|
||||
ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||
community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.1, available at
|
||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
||||
|
||||
Community Impact Guidelines were inspired by
|
||||
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
||||
[https://www.contributor-covenant.org/translations][translations].
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
||||
[Mozilla CoC]: https://github.com/mozilla/diversity
|
||||
[FAQ]: https://www.contributor-covenant.org/faq
|
||||
[translations]: https://www.contributor-covenant.org/translations
|
||||
|
63
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
Normal file
63
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
name: Bug Report
|
||||
description: File a bug report
|
||||
title: "[Bug]: "
|
||||
labels: ["bug"]
|
||||
assignees:
|
||||
- oliverbooth
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
- type: textarea
|
||||
id: expected-behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: What did you expect to happen?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual-behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: What actually happened?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: snippet
|
||||
attributes:
|
||||
label: MCVE
|
||||
description: Provide a [minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the code that causes the behaviour. This will be automatically formatted into code, so no need for backticks.
|
||||
render: csharp
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of the package are you running?
|
||||
options:
|
||||
- 3.1.0
|
||||
- 3.0.0
|
||||
- 2.6.0
|
||||
- 2.5.0
|
||||
- 2.4.0
|
||||
- 2.3.0
|
||||
- 2.2.0
|
||||
- 2.1.0
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant log output
|
||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||
render: shell
|
||||
- type: checkboxes
|
||||
id: terms
|
||||
attributes:
|
||||
label: Code of Conduct
|
||||
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/oliverbooth/X10D/blob/main/.github/CODE_OF_CONDUCT.md)
|
||||
options:
|
||||
- label: I agree to follow this project's Code of Conduct
|
||||
required: true
|
24
.github/ISSUE_TEMPLATE/bug_report.md
vendored
24
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -1,24 +0,0 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: oliverbooth
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
@ -1,45 +0,0 @@
|
||||
---
|
||||
name: Extension method request
|
||||
about: Make a request for an extension method you believe should be implemented
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: oliverbooth
|
||||
|
||||
---
|
||||
|
||||
**Type**
|
||||
Provide the fully-qualified type name of the extension method you wish to have here. Example:
|
||||
```cs
|
||||
System.String
|
||||
```
|
||||
|
||||
**Extension method signature**
|
||||
Provide the full method signature here, without parameter names, but do not include the leading `this T x` parameter. Example:
|
||||
```cs
|
||||
string Random(int, System.Random)
|
||||
```
|
||||
|
||||
**Parameters**
|
||||
Document each of the parameters here, with their name and description - i.e. this would be equivalent to the entry in the XMLDoc. Use a table layout like in the following example:
|
||||
| Parameter | Type | Description |
|
||||
|- |- |- |
|
||||
|length|`int`|The length of the string to generate.|
|
||||
|random|`System.Random`|The instance of `System.Random` to use for the operation|
|
||||
|
||||
**Description**
|
||||
Briefly but concisely document the method's purpose here. i.e. This would be the `<summary>` entry in the XMLDoc.
|
||||
|
||||
**Benefits**
|
||||
Give a reason as to why this method should be added. Does it add a need not satisified by any other X10D method? Does .NET not offer similar operations? Why should this method exist?
|
||||
|
||||
**Drawbacks**
|
||||
Give a reason as to why this method should *not* be added. Is it an expensive operation? Does it defy .NET guidelines? If you cannot think of any, leave this blank.
|
||||
|
||||
**(Optional) Implementation example**
|
||||
If you prefer, you can give an example of how this method might be implemented using a C# codeblock.
|
||||
Do not include the method signature here - just the body.
|
||||
```cs
|
||||
{
|
||||
// code
|
||||
}
|
||||
```
|
84
.github/ISSUE_TEMPLATE/extension-method-request.yml
vendored
Normal file
84
.github/ISSUE_TEMPLATE/extension-method-request.yml
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
name: Extension Method Request
|
||||
description: Make a request for an extension method you believe should be implemented
|
||||
title: "[Request]: "
|
||||
labels: ["enhancement"]
|
||||
assignees:
|
||||
- oliverbooth
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to suggest an extension method!
|
||||
- type: input
|
||||
id: fqn
|
||||
attributes:
|
||||
label: Type to extend
|
||||
description: Provide the fully qualified type name of the extension method you're suggesting.
|
||||
placeholder: "Example: System.Drawing.Color"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: signature
|
||||
attributes:
|
||||
label: Signature
|
||||
description: Provide the method signature here. __**DO NOT**__ include `public static` or the leading `this` parameter - these are inherent to extension methods. __**DO**__ include the return type and parameter names. This will be automatically formatted into code, so no need for backticks.
|
||||
placeholder: "Example: Color WithR(int r)"
|
||||
render: csharp
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: summary
|
||||
attributes:
|
||||
label: Summary
|
||||
description: Briefly but concisely document the method's purpose. i.e. This would be the `<summary>` entry in the XMLDoc.
|
||||
placeholder: "Example: Returns a new Color whose A, B and G components are the same as the specified color, and whose R component is a new value."
|
||||
render: md
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: parameters
|
||||
attributes:
|
||||
label: Parameters
|
||||
description: "If this method accepts parameters, document each of the parameters here, with their name and description - i.e. this would be equivalent to the `<param>` entry in the XMLDoc. __**DO NOT**__ include the leading `this` parameter. Use a table layout like in the provided example."
|
||||
value:
|
||||
|
|
||||
| Parameter | Type | Description |
|
||||
| - | - | - |
|
||||
| r | `float` | The new value for the R component. |
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: Give a reason as to why this method should be added. Does it add a need not satisfied by any other X10D method? Does .NET not offer similar functionality?
|
||||
placeholder: "Example: 'with' expressions are not supported for Color, as the setters of R G and B are get-only."
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: drawbacks
|
||||
attributes:
|
||||
label: Drawbacks
|
||||
description: Give a reason as to why this method should *not* be added. Is it an expensive operation? Does it defy .NET guidelines? If you cannot think of any drawbacks, you may leave this blank.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: implementation-example
|
||||
attributes:
|
||||
label: Implementation Example
|
||||
description: If you prefer, you can give an example of how this method might be implemented. __**DO NOT**__ include the signature here, only the body. This will be automatically formatted into code, so no need for backticks.
|
||||
placeholder:
|
||||
|
|
||||
Example: return Color.FromArgb(value.A, r, value.G, value.B);
|
||||
|
||||
render: csharp
|
||||
validations:
|
||||
required: false
|
||||
- type: checkboxes
|
||||
id: terms
|
||||
attributes:
|
||||
label: Code of Conduct
|
||||
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/oliverbooth/X10D/blob/main/.github/CODE_OF_CONDUCT.md)
|
||||
options:
|
||||
- label: I agree to follow this project's Code of Conduct
|
||||
required: true
|
27
.github/workflows/docfx.yml
vendored
27
.github/workflows/docfx.yml
vendored
@ -3,23 +3,20 @@ name: DocFX
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
docfx:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: Publish Documentation
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup .NET Core
|
||||
uses: actions/setup-dotnet@v1
|
||||
- uses: actions/checkout@v1
|
||||
- uses: nikeee/docfx-action@v1.0.0
|
||||
name: Build Documentation
|
||||
with:
|
||||
dotnet-version: 3.1.101
|
||||
- name: Install DocFX
|
||||
run: |
|
||||
curl -L https://github.com/dotnet/docfx/releases/latest/download/docfx.zip -o docfx.zip
|
||||
unzip -d .docfx docfx.zip
|
||||
- name: Build documentation
|
||||
run: dotnet run .docfx/docfx.exe --project X10D.sln
|
||||
args: docfx_project/docfx.json
|
||||
- uses: maxheld83/ghpages@master
|
||||
name: Publish Documentation on GitHub Pages
|
||||
env:
|
||||
BUILD_DIR: docfx_project/_site
|
||||
GH_PAT: ${{ secrets.GH_PAT }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
1
.github/workflows/nightly.yml
vendored
1
.github/workflows/nightly.yml
vendored
@ -3,7 +3,6 @@ name: Publish Nightly
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- develop
|
||||
|
||||
jobs:
|
||||
|
4
.github/workflows/prerelease.yml
vendored
4
.github/workflows/prerelease.yml
vendored
@ -25,8 +25,8 @@ jobs:
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
|
||||
- name: Publish
|
||||
run: dotnet publish -c Release -r linux-x64 --self-contained true
|
||||
- name: Build
|
||||
run: dotnet build -c Release
|
||||
|
||||
- name: Build NuGet package
|
||||
run: |
|
||||
|
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@ -25,8 +25,8 @@ jobs:
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
|
||||
- name: Publish
|
||||
run: dotnet publish -c Release -r linux-x64 --self-contained true
|
||||
- name: Build
|
||||
run: dotnet build -c Release
|
||||
|
||||
- name: Build NuGet package
|
||||
run: |
|
||||
|
@ -17,7 +17,7 @@ X10D (pronounced *extend*), is a .NET package that provides extension methods fo
|
||||
## Installation
|
||||
### NuGet installation
|
||||
```ps
|
||||
Install-Package X10D -Version 3.0.0
|
||||
Install-Package X10D -Version 3.1.0
|
||||
```
|
||||
|
||||
### Manual installation
|
||||
|
9
docfx_project/.gitignore
vendored
Normal file
9
docfx_project/.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
###############
|
||||
# folder #
|
||||
###############
|
||||
/**/DROP/
|
||||
/**/TEMP/
|
||||
/**/packages/
|
||||
/**/bin/
|
||||
/**/obj/
|
||||
_site
|
5
docfx_project/api/.gitignore
vendored
Normal file
5
docfx_project/api/.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
###############
|
||||
# temp file #
|
||||
###############
|
||||
*.yml
|
||||
.manifest
|
2
docfx_project/api/index.md
Normal file
2
docfx_project/api/index.md
Normal file
@ -0,0 +1,2 @@
|
||||
# PLACEHOLDER
|
||||
TODO: Add .NET projects to the *src* folder and run `docfx` to generate **REAL** *API Documentation*!
|
1
docfx_project/articles/intro.md
Normal file
1
docfx_project/articles/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Add your introductions here!
|
2
docfx_project/articles/toc.yml
Normal file
2
docfx_project/articles/toc.yml
Normal file
@ -0,0 +1,2 @@
|
||||
- name: Introduction
|
||||
href: intro.md
|
66
docfx_project/docfx.json
Normal file
66
docfx_project/docfx.json
Normal file
@ -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
|
||||
}
|
||||
}
|
4
docfx_project/index.md
Normal file
4
docfx_project/index.md
Normal file
@ -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.
|
62
docfx_project/templates/singulinkfx/layout/_master.tmpl
Normal file
62
docfx_project/templates/singulinkfx/layout/_master.tmpl
Normal file
@ -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)}}
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE]><![endif]-->
|
||||
<html>
|
||||
{{>partials/head}}
|
||||
|
||||
<body>
|
||||
<div class="top-navbar">
|
||||
<a class="burger-icon" onclick="toggleMenu()">
|
||||
<svg name="Hamburger"
|
||||
style="vertical-align: middle;"
|
||||
width="34" height="34" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M20 6H4V9H20V6ZM4 10.999H20V13.999H4V10.999ZM4 15.999H20V18.999H4V15.999Z"></path></svg>
|
||||
</a>
|
||||
|
||||
{{>partials/logo}}
|
||||
</div>
|
||||
|
||||
<div class="body-content">
|
||||
<div id="blackout" class="blackout" onclick="toggleMenu()"></div>
|
||||
|
||||
<nav id="sidebar" role="navigation">
|
||||
<div class="sidebar">
|
||||
{{>partials/navbar}}
|
||||
<div class="sidebar-item-separator"></div>
|
||||
{{^_disableToc}}
|
||||
{{>partials/toc}}
|
||||
{{/_disableToc}}
|
||||
</div>
|
||||
{{>partials/footer}}
|
||||
</nav>
|
||||
|
||||
<main class="main-panel">
|
||||
{{#_enableSearch}}
|
||||
{{>partials/searchResults}}
|
||||
{{/_enableSearch}}
|
||||
|
||||
<div role="main" class="hide-when-search" >
|
||||
{{^_disableBreadcrumb}}
|
||||
{{>partials/breadcrumb}}
|
||||
{{/_disableBreadcrumb}}
|
||||
|
||||
<article class="content wrap" id="_content" data-uid="{{uid}}">
|
||||
{{!body}}
|
||||
</article>
|
||||
</div>
|
||||
|
||||
{{#_copyrightFooter}}
|
||||
<div class="copyright-footer">
|
||||
<span>{{_copyrightFooter}}</span>
|
||||
</div>
|
||||
{{/_copyrightFooter}}
|
||||
</main>
|
||||
</div>
|
||||
|
||||
{{>partials/scripts}}
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,4 @@
|
||||
<div class="footer">
|
||||
{{{_appFooter}}}
|
||||
{{^_appFooter}}<strong><a href='https://dotnet.github.io/docfx/'>DocFX</a> + <a href='https://www.singulink.com'>Singulink</a> = ♥</strong>{{/_appFooter}}
|
||||
</div>
|
@ -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.}}
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}</title>
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="title" content="{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}">
|
||||
<meta name="generator" content="docfx {{_docfxVersion}}">
|
||||
{{#_description}}<meta name="description" content="{{_description}}">{{/_description}}
|
||||
<link rel="shortcut icon" href="{{_rel}}{{{_appFaviconPath}}}{{^_appFaviconPath}}favicon.ico{{/_appFaviconPath}}">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/night-owl.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css" integrity="sha384-EvBWSlnoFgZlXJvpzS+MAUEjvN7+gcCwH+qh7GRFOGgZO0PuwOFro7qPOJnLfe7l" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{{_rel}}styles/config.css">
|
||||
<link rel="stylesheet" href="{{_rel}}styles/discord.css">
|
||||
<link rel="stylesheet" href="{{_rel}}styles/singulink.css">
|
||||
<link rel="stylesheet" href="{{_rel}}styles/main.css">
|
||||
<meta property="docfx:navrel" content="{{_navRel}}">
|
||||
<meta property="docfx:tocrel" content="{{_tocRel}}">
|
||||
{{#_noindex}}<meta name="searchOption" content="noindex">{{/_noindex}}
|
||||
{{#_enableSearch}}<meta property="docfx:rel" content="{{_rel}}">{{/_enableSearch}}
|
||||
{{#_enableNewTab}}<meta property="docfx:newtab" content="true">{{/_enableNewTab}}
|
||||
</head>
|
31
docfx_project/templates/singulinkfx/partials/li.tmpl.partial
Normal file
31
docfx_project/templates/singulinkfx/partials/li.tmpl.partial
Normal file
@ -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.}}
|
||||
|
||||
<ul class="nav level{{level}}">
|
||||
{{#items}}
|
||||
{{^dropdown}}
|
||||
<li>
|
||||
{{^leaf}}
|
||||
<span class="expand-stub"></span>
|
||||
{{/leaf}}
|
||||
{{#topicHref}}
|
||||
<a href="{{topicHref}}" class="sidebar-item" name="{{tocHref}}" title="{{name}}">{{name}}</a>
|
||||
{{/topicHref}}
|
||||
{{^topicHref}}
|
||||
<a>{{{name}}}</a>
|
||||
{{/topicHref}}
|
||||
|
||||
{{^leaf}}
|
||||
{{>partials/li}}
|
||||
{{/leaf}}
|
||||
</li>
|
||||
{{/dropdown}}
|
||||
{{#dropdown}}
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">{{name}} <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu level{{level}}">
|
||||
{{>partials/dd-li}}
|
||||
</ul>
|
||||
</li>
|
||||
{{/dropdown}}
|
||||
{{/items}}
|
||||
</ul>
|
@ -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.}}
|
||||
|
||||
<a class="brand" href="{{_rel}}index.html">
|
||||
<img src="{{_rel}}{{{_appLogoPath}}}{{^_appLogoPath}}logo.svg{{/_appLogoPath}}" alt="{{_appName}}" class="logomark">
|
||||
<span class="brand-title">{{_appName}}</span>
|
||||
</a>
|
@ -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.}}
|
||||
|
||||
<h1 id="{{id}}" data-uid="{{uid}}" class="text-break">{{>partials/title}}</h1>
|
||||
<div class="markdown level0 summary">{{{summary}}}</div>
|
||||
<div class="markdown level0 conceptual">{{{conceptual}}}</div>
|
||||
<div class="markdown level0 remarks">{{{remarks}}}</div>
|
||||
{{#children}}
|
||||
<h3 id="{{id}}">{{>partials/namespaceSubtitle}}</h3>
|
||||
{{#children}}
|
||||
<h5><xref uid="{{uid}}" altProperty="fullName" displayProperty="name"/></h5>
|
||||
<section>{{{summary}}}</section>
|
||||
{{/children}}
|
||||
{{/children}}
|
@ -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.}}
|
||||
|
||||
<div>
|
||||
<div class="mobile-hide">
|
||||
{{>partials/logo}}
|
||||
</div>
|
||||
|
||||
{{#_enableSearch}}
|
||||
<div class="sidesearch">
|
||||
<form id="search" role="search" class="search">
|
||||
<i class="bi bi-search search-icon"></i>
|
||||
<input type="text" id="search-query" placeholder="{{__global.search}}" autocomplete="off">
|
||||
</form>
|
||||
</div>
|
||||
{{/_enableSearch}}
|
||||
|
||||
<div id="navbar">
|
||||
</div>
|
||||
</div>
|
@ -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.}}
|
||||
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
|
||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/jquery.twbsPagination.js"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/url.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/anchor-js/anchor.min.js"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/docfx.js"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/singulink.js"></script>
|
||||
<script type="text/javascript" src="{{_rel}}styles/main.js"></script>
|
@ -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.}}
|
||||
|
||||
<div id="search-results" style="display: none;">
|
||||
<h1 class="search-list">{{__global.searchResults}} <span></span></h1>
|
||||
<div class="sr-items">
|
||||
<p><i class="bi bi-hourglass-split index-loading"></i></p>
|
||||
</div>
|
||||
<ul id="pagination" data-first={{__global.pageFirst}} data-prev={{__global.pagePrev}} data-next={{__global.pageNext}} data-last={{__global.pageLast}}></ul>
|
||||
</div>
|
@ -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.}}
|
||||
|
||||
<div id="sidetoggle">
|
||||
<div id="sidetoc"></div>
|
||||
</div>
|
114
docfx_project/templates/singulinkfx/styles/config.css
Normal file
114
docfx_project/templates/singulinkfx/styles/config.css
Normal file
@ -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;
|
||||
}
|
681
docfx_project/templates/singulinkfx/styles/discord.css
Normal file
681
docfx_project/templates/singulinkfx/styles/discord.css
Normal file
@ -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;
|
||||
}
|
44
docfx_project/templates/singulinkfx/styles/down-arrow.svg
Normal file
44
docfx_project/templates/singulinkfx/styles/down-arrow.svg
Normal file
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 491.996 491.996" style="enable-background:new 0 0 491.996 491.996;" xml:space="preserve">
|
||||
<g>
|
||||
<g color="white">
|
||||
<path d="M484.132,124.986l-16.116-16.228c-5.072-5.068-11.82-7.86-19.032-7.86c-7.208,0-13.964,2.792-19.036,7.86l-183.84,183.848
|
||||
L62.056,108.554c-5.064-5.068-11.82-7.856-19.028-7.856s-13.968,2.788-19.036,7.856l-16.12,16.128
|
||||
c-10.496,10.488-10.496,27.572,0,38.06l219.136,219.924c5.064,5.064,11.812,8.632,19.084,8.632h0.084
|
||||
c7.212,0,13.96-3.572,19.024-8.632l218.932-219.328c5.072-5.064,7.856-12.016,7.864-19.224
|
||||
C491.996,136.902,489.204,130.046,484.132,124.986z" fill="currentcolor"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
@ -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 = $('<ul></ul>');
|
||||
}
|
||||
|
||||
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 = $('<li></li>'),
|
||||
$itemContent = $('<a></a>'),
|
||||
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);
|
0
docfx_project/templates/singulinkfx/styles/main.css
Normal file
0
docfx_project/templates/singulinkfx/styles/main.css
Normal file
0
docfx_project/templates/singulinkfx/styles/main.js
Normal file
0
docfx_project/templates/singulinkfx/styles/main.js
Normal file
471
docfx_project/templates/singulinkfx/styles/singulink.css
Normal file
471
docfx_project/templates/singulinkfx/styles/singulink.css
Normal file
@ -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;
|
||||
}
|
38
docfx_project/templates/singulinkfx/styles/singulink.js
Normal file
38
docfx_project/templates/singulinkfx/styles/singulink.js
Normal file
@ -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();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
1
docfx_project/templates/singulinkfx/styles/url.min.js
vendored
Normal file
1
docfx_project/templates/singulinkfx/styles/url.min.js
vendored
Normal file
@ -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)}});
|
22
docfx_project/templates/singulinkfx/toc.html.tmpl
Normal file
22
docfx_project/templates/singulinkfx/toc.html.tmpl
Normal file
@ -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.}}
|
||||
|
||||
<div id="sidetoggle">
|
||||
<div>
|
||||
{{^_disableSideFilter}}
|
||||
<div class="sidefilter">
|
||||
<form class="toc-filter">
|
||||
<i class="bi bi-funnel-fill filter-icon"></i>
|
||||
<i id="toc_filter_clear" class="bi bi-x-lg clear-icon"></i>
|
||||
<input type="text" id="toc_filter_input" placeholder="{{__global.tocFilter}}" autocomplete="off" onkeypress="if(event.keyCode==13) {return false;}">
|
||||
</form>
|
||||
</div>
|
||||
{{/_disableSideFilter}}
|
||||
<div class="sidetoc">
|
||||
<div class="toc" id="toc">
|
||||
{{^leaf}}
|
||||
{{>partials/li}}
|
||||
{{/leaf}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
5
docfx_project/toc.yml
Normal file
5
docfx_project/toc.yml
Normal file
@ -0,0 +1,5 @@
|
||||
- name: Articles
|
||||
href: articles/
|
||||
- name: Api Documentation
|
||||
href: api/
|
||||
homepage: api/index.md
|
Loading…
Reference in New Issue
Block a user