use submodule for docsy & improve website styling (#3078)

* remove docsy code

* add docsy submodule link

* remove unneeded files from repo

* update hugo & improve website styling

* remove invalid netlify "image" config

* remove need for `_nav.scss` override

* remove search from navbar

* remove `sidebar-tree.html` override

* add guide for updating docsy

* update repo readme
This commit is contained in:
Mathew Wicks 2021-12-08 09:59:58 +11:00 committed by GitHub
parent 0c9e5e1401
commit dc68b1d687
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7389 changed files with 2096 additions and 426068 deletions

305
README.md
View File

@ -1,151 +1,112 @@
# Creating and updating the Kubeflow docs
# Kubeflow Website
Welcome to the GitHub repository for Kubeflow's public website. The docs are
hosted at https://www.kubeflow.org.
Welcome to the GitHub repository for Kubeflow's public website!
We use [Hugo](https://gohugo.io/) to format and generate our website, the
[Docsy](https://github.com/google/docsy) theme for styling and site structure,
and [Netlify](https://www.netlify.com/) to manage the deployment of the site.
Hugo is an open-source static site generator that provides us with templates,
content organization in a standard directory structure, and a website generation
engine. You write the pages in Markdown, and Hugo wraps them up into a website.
The docs website is hosted at https://www.kubeflow.org.
We use [Hugo](https://gohugo.io/) with the [google/docsy](https://github.com/google/docsy)
theme for styling and site structure, and [Netlify](https://www.netlify.com/) to manage the deployment of the site.
## Quickstart
Here's a quick guide to updating the docs. It assumes you're familiar with the
GitHub workflow and you're happy to use the automated preview of your doc
updates:
Here's a quick guide to updating the docs:
1. Fork the [kubeflow/website
repository](https://github.com/kubeflow/website) on GitHub.
1. Make your changes and send a pull request (PR).
1. If you're not yet ready for a review, add "WIP" to the PR name to indicate
it's a work in progress. Alternatively, you can also add `/hold` in a comment
to mark the PR as not ready for merge. (**Don't** add the Hugo property
"draft = true" to the page front matter, because that prevents the
auto-deployment of the content preview described in the next point.) See the
[Prow guide](https://prow.k8s.io/command-help) for help with the commands that
you can use in a PR comment.
1. Wait for the automated PR workflow to do some checks. When it's ready,
you should see a comment like this: **deploy/netlify — Deploy preview ready!**
1. Click **Details** to the right of "Deploy preview ready" to see a preview
of your updates.
1. Continue updating your doc and pushing your changes until you're happy with
the content.
1. When you're ready for a review, add a comment to the PR, remove any holds or
"WIP" markers, and assign a reviewer/approver. See the
[Kubeflow contributor guide](https://www.kubeflow.org/docs/about/contributing/).
1. Fork the [kubeflow/website repository](https://github.com/kubeflow/website) on GitHub.
If you need more help with the GitHub workflow, follow this
[guide to a standard GitHub
workflow](https://github.com/kubeflow/website/blob/master/quick-github-guide.md).
2. Make your changes and send a pull request (PR).
## Previewing your changes on a local website server
3. If you're not yet ready for a review, add "WIP" to the PR name to indicate it's a work in progress.
Alternatively, you use the `/hold` [prow command](https://prow.k8s.io/command-help) in a comment to mark the PR as not ready for merge.
If you'd like to preview your doc updates as you work, you can install Hugo
and run a local server to host your website. This section shows you how.
4. Wait for the automated PR workflow to do some checks.
When it's ready, you should see a comment like this: `deploy/netlify — Deploy preview ready!`
### Install Hugo and other dependencies
5. Click **Details** to the right of "Deploy preview ready" to see a preview of your updates.
You need Hugo version 0.80 or later, and it must be the **extended** version of
Hugo. Hugo version 0.80 and later support the Goldmark renderer for Markdown.
Goldmark offers improved rendering of some text formatting such as lists.
6. Continue updating your doc and pushing your changes until you're happy with the content.
**Note:** From April 2020 onwards, Kubeflow recommends that you use
**Hugo version 0.89.2** or later. The Kubeflow website now uses Hugo 0.89.2 via
Netlify.
7. When you're ready for a review, add a comment to the PR, remove any holds or "WIP" markers, and assign a reviewer/approver.
See the [Kubeflow contributor guide](https://www.kubeflow.org/docs/about/contributing/).
To get the latest extended version of Hugo:
If you need more help with the GitHub workflow, follow
this [guide to a standard GitHub workflow](https://github.com/kubeflow/website/blob/master/quick-github-guide.md).
1. Go to the [Hugo releases](https://github.com/gohugoio/hugo/releases) page.
1. In the most recent release, scroll down until you find a list of
**extended** versions.
1. Download the relevant file for your operating system.
1. Unzip the downloaded file into a location of your choice.
## Local development
For example, to install Hugo on Linux:
This section will show you how to develop the website locally, by running a local Hugo server.
1. Download `hugo_extended_0.89.2_Linux-64bit.tar.gz`
(or the latest version) from the
[Hugo releases](https://github.com/gohugoio/hugo/releases/tag/v0.89.2) page.
### Install Hugo
1. Create a new directory:
To install Hugo, follow the [instructions for your system type](https://gohugo.io/getting-started/installing/).
mkdir $HOME/hugo
**NOTE:** we recommend that you use Hugo version `0.89.4`, as this is currently the version we deploy to Netlify.
1. Extract the file you downloaded to `$HOME/hugo`.
For example, using homebrew to install hugo on macOS or linux:
tar -zxvf hugo_extended_0.89.2_Linux-64bit.tar.gz
```bash
# WARNING: this may install a newer version than `0.89.4`
brew install hugo
```
For more details about installing Hugo, See the
[Hugo installation guide](https://gohugo.io/getting-started/installing/).
### Install Node Packages
If you plan to make changes to the site styling, you need to install some
**CSS libraries** as well. Follow the instructions in the
[Docsy theme's setup
guide](https://www.docsy.dev/docs/getting-started/#install-postcss).
If you plan to make changes to the site styling, you need to install some **node libraries** as well.
(See the [Docsy setup guide](https://www.docsy.dev/docs/getting-started/#install-postcss) for more information)
### Fork and clone the website repository and run a local website server
You can install the same versions we use in Netlify (defined in `package.json`) with the following command:
Follow the usual GitHub workflow to fork the repository on GitHub and clone it
to your local machine, then use your local repository as input to your Hugo web
server:
```bash
npm install -D
```
1. **Fork** the [kubeflow/website
repository](https://github.com/kubeflow/website) in the GitHub UI.
1. Clone your fork locally. This example uses SSH cloning:
### Run local hugo server
```
mkdir kubeflow
cd kubeflow/
Follow the usual GitHub workflow of forking the repository on GitHub and then cloning your fork to your local machine.
1. **Fork** the [kubeflow/website repository](https://github.com/kubeflow/website) in the GitHub UI.
2. Clone your fork locally:
```bash
git clone git@github.com:<your-github-username>/website.git
cd website/
```
1. Start your website server. Make sure you run this command from the
`/website/` directory, so that Hugo can find the config files it needs:
3. Recursively download the submodules (for docsy):
```bash
git submodule update --init --recursive
```
4. Start your local Hugo server:
```bash
hugo server -D
```
1. You can access your website at
[http://localhost:1313/](http://localhost:1313/) (bind address 127.0.0.1)
5. You can access your website at [http://localhost:1313/](http://localhost:1313/)
1. Continue with the usual GitHub workflow to edit files, commit them, push the
changes up to your fork, and create a pull request. (There's some help with
the GitHub workflow near the bottom of this page.)
### Useful docs
1. While making the changes, you can preview them on your local version of the
website at [http://localhost:1313/](http://localhost:1313/). Note that if you
have more than one local Git branch, when you switch between Git branches the
local website reflects the files in the current branch.
Useful docs:
- [User guide for the Docsy theme](https://www.docsy.dev/docs/getting-started/)
- [Hugo installation guide](https://gohugo.io/getting-started/installing/)
- [Hugo basic usage](https://gohugo.io/getting-started/usage/)
- [Hugo site directory structure](https://gohugo.io/getting-started/directory-structure/)
- [hugo server reference](https://gohugo.io/commands/hugo_server/)
* [User guide for the Docsy theme](https://www.docsy.dev/docs/getting-started/)
* [Hugo installation guide](https://gohugo.io/getting-started/installing/)
* [Hugo basic usage](https://gohugo.io/getting-started/usage/)
* [Hugo site directory structure](https://gohugo.io/getting-started/directory-structure/)
* [hugo server reference](https://gohugo.io/commands/hugo_server/)
## Menu structure
The site theme has one Hugo menu (`main`), which defines the top navigation bar.
You can find and adjust the definition of the menu in the [site configuration
file](https://github.com/kubeflow/website/blob/master/config.toml).
The site theme has one Hugo menu (`main`), which defines the top navigation bar. You can find and adjust the definition
of the menu in the [site configuration file](https://github.com/kubeflow/website/blob/master/config.toml).
The left-hand navigation panel is defined by the directory structure under
the
[`docs` directory](https://github.com/kubeflow/website/tree/master/content/en/docs).
The left-hand navigation panel is defined by the directory structure under the [`docs` directory](https://github.com/kubeflow/website/tree/master/content/en/docs).
A `weight` property in the _front matter_ of each page determines the position
of the page relative to the others in the same directory. The lower the weight,
the earlier the page appears in the section. A weight of 1 appears before a
a weight of 2, and so on. For example, see the front matter of the
[Getting Started with Kubeflow](https://raw.githubusercontent.com/kubeflow/website/master/content/en/docs/started/getting-started.md)
page. The page front matter looks like this:
A `weight` property in the _front matter_ of each page determines the position of the page relative to the others in the same directory.
The lower the weight, the earlier the page appears in the section.
```
Here is an example `_index.md` file:
```md
+++
title = "Getting Started with Kubeflow"
description = "Overview"
@ -153,93 +114,83 @@ weight = 1
+++
```
## Working with the theme
## Docsy Theme
The theme files are in the
[`themes/docsy` directory](https://github.com/kubeflow/website/tree/master/themes/docsy).
**Do not change these files**, because they are overwritten each time we update
the website to a later version of the theme, and your changes will be lost.
We use the [Docsy](https://www.docsy.dev/) theme for the website.
The theme files are managed with a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) in the `themes/docsy` directory.
**Do not change these files**, they are not actually inside this repo, but are part of the [google/docsy](https://github.com/google/docsy) repo.
To update referenced docsy commit, run the following command at the root of the repo:
```bash
git submodule update --remote
```
## Documentation style guide
For guidance on writing effective documentation, see the [style guide for the
Kubeflow docs](https://kubeflow.org/docs/about/style-guide/).
For guidance on writing effective documentation, see
the [style guide for the Kubeflow docs](https://kubeflow.org/docs/about/style-guide/).
## Styling your content
The theme holds its styles in the
[`assets/scss` directory](https://github.com/kubeflow/website/tree/master/themes/docsy/assets/scss).
**Do not change these files**, because they are overwritten each time we update
the website to a later version of the theme, and your changes will be lost.
The theme holds its styles in the [`assets/scss` directory](https://github.com/kubeflow/website/tree/master/themes/docsy/assets/scss).
**Do not change these files**, they are not actually inside this repo, but are part of the [google/docsy](https://github.com/google/docsy) repo.
You can override the default styles and add new ones:
* In general, put your files in the project directory structure under `website`
rather than in the theme directory. Use the same file name as the theme does,
and put the file in the same relative position. Hugo looks first at the file
in the main project directories, if present, then at the files under the theme
directory. For example, the Kubeflow website's
[`layouts/partials/navbar.html`](https://github.com/kubeflow/website/blob/master/layouts/partials/navbar.html)
overrides the theme's
[`layouts/partials/navbar.html`](https://github.com/kubeflow/website/blob/master/themes/docsy/layouts/partials/navbar.html).
* You can update the Kubeflow website's project variables in the
[`_variables_project.scss` file](https://github.com/kubeflow/website/blob/master/assets/scss/_variables_project.scss).
Values in that file override the
[Docsy variables](https://github.com/kubeflow/website/blob/master/themes/docsy/assets/scss/_variables.scss).
You can also use `_variables_project.scss` to specify your own values for any
of the default
[Bootstrap 4 variables](https://getbootstrap.com/docs/4.0/getting-started/theming/).
* Custom styles [`_styles_project` file](https://github.com/kubeflow/website/blob/master/assets/scss/_styles_project.scss) and regenerate resources
```
hugo
```
* In general, put your files in the project directory structure under `website` rather than in the theme directory.
Use the same file name as the theme does, and put the file in the same relative position.
Hugo looks first at the file in the main project directories, if present, then at the files under the theme directory.
For example, the Kubeflow website's [`layouts/partials/navbar.html`](https://github.com/kubeflow/website/blob/master/layouts/partials/navbar.html)
overrides the theme's [`layouts/partials/navbar.html`](https://github.com/kubeflow/website/blob/master/themes/docsy/layouts/partials/navbar.html)
* You can update the Kubeflow website's project variables in the [`_variables_project.scss` file](https://github.com/kubeflow/website/blob/master/assets/scss/_variables_project.scss).
Values in that file override the [Docsy variables](https://github.com/kubeflow/website/blob/master/themes/docsy/assets/scss/_variables.scss).
You can also use `_variables_project.scss` to specify your own values for any of the default [Bootstrap 4 variables](https://getbootstrap.com/docs/4.0/getting-started/theming/).
* Custom styles [`_styles_project` file](https://github.com/kubeflow/website/blob/master/assets/scss/_styles_project.scss)
Styling of images:
* To see some examples of styled images, take a look at the
[OAuth setup page](https://www.kubeflow.org/docs/gke/deploy/oauth-setup/)
in the Kubeflow docs. Search for `.png` in the
[page source](https://raw.githubusercontent.com/kubeflow/website/master/content/en/docs/gke/deploy/oauth-setup.md).
* To see some examples of styled images, take a look at the [OAuth setup page](https://www.kubeflow.org/docs/gke/deploy/oauth-setup/) in the Kubeflow docs.
Search for `.png` in the [page source](https://raw.githubusercontent.com/kubeflow/website/master/content/en/docs/gke/deploy/oauth-setup.md).
* For more help, see the guide to
[Bootstrap image styling](https://getbootstrap.com/docs/4.0/content/images/).
* Also see the Bootstrap utilities, such as
* Also see the Bootstrap utilities, such as
[borders](https://getbootstrap.com/docs/4.0/utilities/borders/).
The site's [front page](https://www.kubeflow.org/):
* See the [page source](https://github.com/kubeflow/website/blob/master/content/en/_index.html).
* The CSS styles are in the
[project variables file](https://github.com/kubeflow/website/blob/master/assets/scss/_variables_project.scss).
* The page uses the
[cover block](https://www.docsy.dev/docs/adding-content/shortcodes/#blocks-cover)
defined by the theme.
* The page also uses the
[linkdown block](https://www.docsy.dev/docs/adding-content/shortcodes/#blocks-link-down).
* The CSS styles are in the [project variables file](https://github.com/kubeflow/website/blob/master/assets/scss/_variables_project.scss).
* The page uses the [cover block](https://www.docsy.dev/docs/adding-content/shortcodes/#blocks-cover) defined by the theme.
* The page also uses the [linkdown block](https://www.docsy.dev/docs/adding-content/shortcodes/#blocks-link-down).
## Using Hugo shortcodes
Sometimes it's useful to define a snippet of information in one place and reuse
it wherever we need it. For example, we want to be able to refer to the minimum
version of various frameworks/libraries throughout the docs, without
causing a maintenance nightmare.
Sometimes it's useful to define a snippet of information in one place and reuse it wherever we need it.
For example, we want to be able to refer to the minimum version of various frameworks/libraries throughout the docs,
without causing a maintenance nightmare.
For this purpose, we use Hugo's "shortcodes". Shortcodes are similar to Django
variables. You define a shortcode in a file, then use a specific markup to
invoke the shortcode in the docs. That markup is replaced by the content of the
shortcode file when the page is built.
For this purpose, we use Hugo's "shortcodes".
Shortcodes are similar to Django variables. You define a shortcode in a file, then use a specific markup
to invoke the shortcode in the docs. That markup is replaced by the content of the shortcode file when the page is built.
To create a shortcode:
1. Add an HTML file in the `/website/layouts/shortcodes/` directory.
The file name must be short and meaningful, as it determines the shortcode
you and others use in the docs.
1. Add an HTML file in the `/website/layouts/shortcodes/` directory.
The file name must be short and meaningful, as it determines the shortcode you and others use in the docs.
1. For the file content, add the text and HTML markup that should replace the
shortcode markup when the web page is built.
2. For the file content, add the text and HTML markup that should replace the shortcode markup when the web page is built.
To use a shortcode in a document, wrap the name of the shortcode in braces and
percent signs like this:
To use a shortcode in a document, wrap the name of the shortcode in braces and percent signs like this:
```
{{% shortcode-name %}}
@ -247,50 +198,50 @@ percent signs like this:
The shortcode name is the file name minus the `.html` file extension.
**Example:** The following shortcode defines the minimum required version of
Kubernetes:
**Example:** The following shortcode defines the minimum required version of Kubernetes:
- File name of the shortcode:
* File name of the shortcode:
```
kubernetes-min-version.html
```
- Content of the shortcode:
* Content of the shortcode:
```
1.8
```
- Usage in a document:
* Usage in a document:
```
You need Kubernetes version {{% kubernetes-min-version %}} or later.
```
Useful Hugo docs:
- [Shortcode templates](https://gohugo.io/templates/shortcode-templates/)
- [Shortcodes](https://gohugo.io/content-management/shortcodes/)
* [Shortcode templates](https://gohugo.io/templates/shortcode-templates/)
* [Shortcodes](https://gohugo.io/content-management/shortcodes/)
## Versioning of the docs
For each stable release, we create a new branch for the relevant documentation. For
example, the documentation for the v0.2 stable release is maintained in the
[v0.2-branch](https://github.com/kubeflow/website/tree/v0.2-branch).
For each stable release, we create a new branch for the relevant documentation.
For example, the documentation for the v0.2 stable release is maintained in the [v0.2-branch](https://github.com/kubeflow/website/tree/v0.2-branch).
Each branch has a corresponding Netlify website that automatically syncs each merged PR.
The versioned sites follow this convention:
* `www.kubeflow.org` always points to the current *master branch*
* `master.kubeflow.org` always points to GitHub head
* `vXXX-YYY.kubeflow.org` points to the release at vXXX.YYY-branch
We also hook up each version to the dropdown on the website menu bar. For
information on how to update the website to a new version, see the [Kubeflow
release guide](https://github.com/kubeflow/kubeflow/blob/master/docs_dev/releasing.md#releasing-a-new-version-of-the-website).
We also hook up each version to the dropdown on the website menu bar.
For information on how to update the website to a new version, see the [Kubeflow release guide](https://github.com/kubeflow/kubeflow/blob/master/docs_dev/releasing.md#releasing-a-new-version-of-the-website).
Whenever any documents reference any source code, you should use the version
shortcode in the links, like so:
Whenever any documents reference any source code, you should use the version shortcode in the links, like so:
```
https://github.com/kubeflow/kubeflow/blob/{{< params "githubbranch" >}}/scripts/gke/deploy.sh
```
This ensures that all the links in a versioned webpage point to the correct branch.

View File

@ -1,7 +0,0 @@
+++
title = ""
description = ""
weight = 20
publishDate = {{ .Date }}
draft = false
+++

View File

@ -1,7 +0,0 @@
+++
title = ""
description = ""
date = {{ .Date }}
weight = 20
draft = false
+++

View File

@ -1,122 +0,0 @@
//
// Top navbar - copied from Docsy theme and additional styling included.
//
.td-navbar-cover {
background: $primary;
@include media-breakpoint-up(md) {
background: transparent !important;
.nav-link {
text-shadow: 1px 1px 2px $dark;
}
.brand-name {
display: none;}
}
&.navbar-bg-onscroll .nav-link {
text-shadow: none;
}
}
.navbar-bg-onscroll {
background: $primary !important;
opacity: inherit;
}
.td-navbar {
background: $primary;
min-height: 4rem;
margin: 0;
z-index: 32;
.brand-name {
display: none;}
@include media-breakpoint-up(md) {
position: fixed;
top: 0;
width: 100%;
}
.navbar-brand {
text-transform: none;
text-align: middle;
margin: 0;
padding: 0;
.nav-link {
display: inline-block;
margin-right: -30px;
}
.navbar-logo {
svg {
display: inline-block;
position: absolute;
top: 0;
left: 26px;
z-index: 33;
padding: 10px;
height: 95px;
background: white;
border: 2px solid #4279f4;
border-top: none;
@include media-breakpoint-down(md) {
left: 16px;
width: 80px;
height: auto;
padding: 6px;
}
}
}
}
.nav-link {
text-transform: none;
font-weight: $font-weight-bold;
}
.td-search-input {
border: none;
@include placeholder {
color: $navbar-dark-color;
}
}
.dropdown {
min-width: 100px;
}
@include media-breakpoint-down(md) {
padding-right: .5rem;
padding-left: .75rem;
align-items: flex-end;
.td-navbar-nav-scroll {
max-width: calc(100% + .75rem - 96px - 1.5rem);
height: 2.5rem;
margin-top: .25rem;
overflow: hidden;
font-size: .875rem;
.nav-link {
padding-right: .25rem;
padding-left: 0;
}
.navbar-nav {
margin-top: 0 !important;
padding-bottom: 2rem;
overflow-x: auto;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
}
}
}
}

View File

@ -1,32 +1,81 @@
// --------------------------------------------------
// remove whitespace after footer
// --------------------------------------------------
footer {
min-height: auto;
@media (max-width: 991.98px) {
min-height: auto;
}
}
@media (min-width: 768px) {
.td-sidebar-nav__section > ul {
padding-left: .5rem !important;
}
// --------------------------------------------------
// prevent overflow of long names in sidebar
// --------------------------------------------------
.td-sidebar-nav__section > ul {
overflow-wrap: break-word;
}
// --------------------------------------------------
// custom navbar with larger logo, dropdown on mobile
// --------------------------------------------------
.td-navbar {
min-height: auto;
}
.navbar-nav {
@media (max-width: 992px) {
font-size: .875rem;
.dropdown {
min-width: inherit;
.navbar-brand {
margin: 0;
padding: 0;
.text-uppercase {
display: none;
}
.navbar-logo {
svg {
display: inline-block;
position: absolute;
top: 0;
z-index: 33;
padding: 10px;
height: 95px;
background: white;
border: 2px solid #4279f4;
border-top: none;
@include media-breakpoint-down(md) {
width: 80px;
height: auto;
padding: 6px;
}
}
}
}
.navbar-nav {
@include media-breakpoint-down(md) {
font-size: .875rem;
.dropdown {
min-width: inherit;
}
}
}
}
.td-sidebar {
padding-bottom: 0.5rem;
.td-sidebar__inner {
padding-top: 30px;
@include media-breakpoint-down(md) {
padding-top: 10px;
}
}
}
// --------------------------------------------------
// 404 page
// --------------------------------------------------
.error-page {
margin-top: 120px;
ul {
margin-bottom: 50px;
list-style-type: none;
@ -47,11 +96,39 @@ footer {
margin-bottom: 20px;
}
@media (min-width: 768px) and (max-width: 991px){
@media (min-width: 768px) and (max-width: 991px) {
margin-top: 100px;
}
@media (max-width: 767px) {
margin-top: 50px;
}
}
// --------------------------------------------------
// for tabbed code blocks
// https://github.com/kubeflow/website/pull/2779
// --------------------------------------------------
.nav-tabs {
border-bottom: none !important;
}
.td-content > ul li,
.td-content > ol li.nav-item {
margin-bottom: 0px;
}
.td-content .tab-content .highlight {
margin: 0;
}
.tab-pane {
border-radius: 0.25rem;
padding: 0 16px 16px;
border: 1px solid #dee2e6;
&:first-of-type.active {
border-top-left-radius: 0;
}
}

View File

@ -1,23 +0,0 @@
// nav-tabs and tab-content
.nav-tabs {
border-bottom: none !important;
}
.td-content > ul li,
.td-content > ol li.nav-item {
margin-bottom: 0px;
}
.td-content .tab-content .highlight {
margin: 0;
}
.tab-pane {
border-radius: 0.25rem;
padding: 0 16px 16px;
border: 1px solid #dee2e6;
&:first-of-type.active {
border-top-left-radius: 0;
}
}

View File

@ -1,7 +1,5 @@
/*
Add styles or override the theme's variables here.
*/
html.smooth-scroll {
@ -9,7 +7,6 @@ html.smooth-scroll {
}
// Theme colors
$primary: #4279f4;
$secondary: #fff;
$dark: #213d7a;
@ -17,18 +14,15 @@ $info: #adb5bd;
$light: #dee2e6;
// Nav bar colors
$white: #fff;
$navbar-dark-color: rgba($white, 1);
$navbar-dark-hover-color: rgba($white, 0.75);
$navbar-dark-active-color: $navbar-dark-color;
// Fonts
$google_font_family: "Open+Sans:300,300i,400,400i,600,600i,700,700i&display=swap" !default;
// Front page styling
.card-img-top {
object-fit: scale-down;
}

View File

@ -1,61 +0,0 @@
@import "support/functions";
@import "variables_project";
@import "variables";
@import "support/mixins";
@import "../vendor/bootstrap/scss/bootstrap";
@import "../vendor/Font-Awesome/scss/fontawesome.scss";
@import "../vendor/Font-Awesome/scss/solid.scss";
@import "../vendor/Font-Awesome/scss/brands.scss";
@import "support/utilities";
@import "colors";
@import "boxes";
@import "blog";
@import "code";
@import "nav";
@import "sidebar-tree";
@import "sidebar-toc";
@import "buttons";
@import "breadcrumb";
@import "alerts";
@import "content";
@import "search";
@import "main-container";
@import "blocks/blocks";
@import "section-index";
@import "pageinfo";
@if $td-enable-google-fonts {
@import url('#{$web-font-path}');
}
footer {
min-height: 150px;
@include media-breakpoint-down(md) {
min-height: 200px;
}
}
// Adjust anchors vs the fixed menu.
@include media-breakpoint-up(md) {
.td-offset-anchor:target {
display: block;
position: relative;
top: -4rem;
visibility: hidden;
}
h2[id]:before, h3[id]:before, h4[id]:before, h5[id]:before {
display: block;
content: " ";
margin-top: -5rem;
height: 5rem;
visibility: hidden;
}
}
@import "styles_project";
@import "tabs";

View File

@ -1,246 +1,216 @@
baseURL = "/"
languageCode = "en-us"
title = "Kubeflow"
theme = ["docsy"]
description = "Kubeflow makes deployment of ML Workflows on Kubernetes straightforward and automated"
Paginate = 20
# SEO
enableRobotsTXT = true
# Docsy: Gives values to .Lastmod etc.
theme = ["docsy"]
###############################################################################
# Docsy
###############################################################################
enableGitInfo = true
# Docsy: Language settings
# language settings
contentDir = "content/en"
defaultContentLanguage = "en"
# Tell Hugo not to include the /en/ element in the URL path for English docs:
# tell Hugo not to include the /en/ element in the URL path for English docs
defaultContentLanguageInSubdir = false
# Docsy: Useful when translating.
# useful when translating
enableMissingTranslationPlaceholders = true
# disable taxonomies
disableKinds = ["taxonomy", "taxonomyTerm"]
# Docsy: Highlighting config
pygmentsCodeFences = true
pygmentsUseClasses = false
# Use the new Chroma Go highlighter in Hugo.
pygmentsUseClassic = false
#pygmentsOptions = "linenos=table"
# See https://help.farbox.com/pygments.html
pygmentsStyle = "tango"
# Docsy: First one is picked as the Twitter card image if not set on page.
#images = ["images/project-illustration.png"]
# Top-level navigation (horizontal)
[[menu.main]]
###############################################################################
# Hugo - Top-level navigation (horizontal)
###############################################################################
[menu]
[[menu.main]]
name = "Documentation"
weight = -101
pre = "<i class='fas fa-book pr-2'></i>"
url = "/docs/"
[[menu.main]]
[[menu.main]]
name = "Blog"
weight = -100
pre = "<i class='fas fa-rss pr-2'></i>"
url = "https://blog.kubeflow.org/"
[[menu.main]]
[[menu.main]]
name = "GitHub"
weight = -99
pre = "<i class='fab fa-github pr-2'></i>"
url = "https://github.com/kubeflow/"
# Docsy: Configure the format of URLs per section.
#[permalinks]
#blog = "/:section/:year/:month/:day/:slug/"
# Docsy: Configuration for Goldmark markdown parser, which is default from
# Hugo 0.60 onwards. https://github.com/yuin/goldmark/
###############################################################################
# Docsy - Goldmark markdown parser
###############################################################################
[markup]
[markup.goldmark]
[markup.goldmark.renderer]
# Allow Goldmark to render raw HTML:
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true
[markup.highlight]
# See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html
style = "tango"
guessSyntax = "true"
# Docsy: Image processing configuration.
###############################################################################
# Docsy - Image processing configuration
###############################################################################
[imaging]
resampleFilter = "CatmullRom"
quality = 75
anchor = "smart"
resampleFilter = "CatmullRom"
quality = 75
anchor = "smart"
###############################################################################
# Docsy - Services configuration
###############################################################################
[services]
[services.googleAnalytics]
id = "UA-135379910-1"
# Docsy: Language configuration
[services.googleAnalytics]
id = "UA-135379910-1"
###############################################################################
# Docsy - Language configuration
###############################################################################
[languages]
[languages.en]
title = "Kubeflow"
description = "Kubeflow makes deployment of ML Workflows on Kubernetes straightforward and automated"
languageName ="English"
# Weight used for sorting in the language menu:
weight = 1
# Below is an example of another language (Norwegian):
#[languages.no]
#title = "Docsy"
#description = "Docsy er operativsystem for skyen"
#languageName ="Norsk"
#contentDir = "content/no"
time_format_default = "02.01.2006"
time_format_blog = "02.01.2006"
# Site params
[languages.en]
title = "Kubeflow"
description = "Kubeflow makes deployment of ML Workflows on Kubernetes straightforward and automated"
languageName ="English"
# weight used for sorting in the language menu
weight = 1
###############################################################################
# Docsy - Site Parameters
###############################################################################
[params]
github_repo = "https://github.com/kubeflow/website"
github_project_repo = "https://github.com/kubeflow/kubeflow"
# GitHub repository for in-page links to editing a page and opening and issues.
github_repo = "https://github.com/kubeflow/website"
# An optional link to a related project repo. For example, the sibling repository where your product code lives.
github_project_repo = "https://github.com/kubeflow/kubeflow"
RSSLink = "/index.xml"
author = "kubeflow.org" # add your company name
github = "kubeflow" # add your github profile name
twitter = "kubeflow" # add your twitter profile
RSSLink = "/index.xml"
author = "kubeflow.org" # add your company name
github = "kubeflow" # add your github profile name
twitter = "kubeflow" # add your twitter profile
#email = "myemail@myaddress.xxx"
copyright = "The Kubeflow Authors."
privacy_policy = "https://policies.google.com/privacy"
copyright = "The Kubeflow Authors."
privacy_policy = "https://policies.google.com/privacy"
# Google Custom Search Engine ID.
gcs_engine_id = "007239566369470735695:624rglujm-w"
# Docsy: Google Custom Search Engine ID. Remove or comment out to disable search.
gcs_engine_id = "007239566369470735695:624rglujm-w"
# Text label for the version menu in the top bar of the website.
version_menu = "Kubeflow Version"
# Text label for the version menu in the top bar of the website.
version_menu = "Kubeflow Version"
# The major.minor version tag for the version of the docs represented in this
# branch of the repository. Used in the "version-banner" partial to display a
# version number for this doc set.
version = "master"
# Flag used in the "version-banner" partial to decide whether to display a
# banner on every page indicating that this is an archived version of the docs.
archived_version = false
# A link to latest version of the docs. Used in the "version-banner" partial to
# point people to the main doc site.
url_latest_version = "https://kubeflow.org/docs/"
# A variable used in various docs to determine URLs for config files etc.
# To find occurrences, search the repo for 'params "githubbranch"'.
githubbranch = "master"
# Add new release versions here. These entries appear in the drop-down menu
# at the top of the website.
[[params.versions]]
# The major.minor version tag for the version of the docs represented in this
# branch of the repository. Used in the "version-banner" partial to display a
# version number for this doc set.
version = "master"
# Flag used in the "version-banner" partial to decide whether to display a
# banner on every page indicating that this is an archived version of the docs.
archived_version = false
# A link to latest version of the docs. Used in the "version-banner" partial to
# point people to the main doc site.
url_latest_version = "https://kubeflow.org/docs/"
# A variable used in various docs to determine URLs for config files etc.
# To find occurrences, search the repo for 'params "githubbranch"'.
githubbranch = "master"
url = "https://master.kubeflow.org"
[[params.versions]]
version = "v1.4"
githubbranch = "v1.4-branch"
url = "https://v1-4-branch.kubeflow.org"
# These entries appear in the drop-down menu at the top of the website.
[[params.versions]]
version = "master"
githubbranch = "master"
url = "https://master.kubeflow.org"
[[params.versions]]
version = "v1.4"
githubbranch = "v1.4-branch"
url = "https://v1-4-branch.kubeflow.org"
[[params.versions]]
version = "v1.3"
githubbranch = "v1.3-branch"
url = "https://v1-3-branch.kubeflow.org"
[[params.versions]]
version = "v1.2"
githubbranch = "v1.2-branch"
url = "https://v1-2-branch.kubeflow.org"
[[params.versions]]
version = "v1.1"
githubbranch = "v1.1-branch"
url = "https://v1-1-branch.kubeflow.org"
[[params.versions]]
version = "v1.0"
githubbranch = "v1.0-branch"
url = "https://v1-0-branch.kubeflow.org"
[[params.versions]]
version = "v0.7"
githubbranch = "v0.7-branch"
url = "https://v0-7.kubeflow.org"
[[params.versions]]
version = "v0.6"
githubbranch = "v0.6-branch"
url = "https://v0-6.kubeflow.org"
[[params.versions]]
version = "v0.5"
githubbranch = "v0.5-branch"
url = "https://v0-5.kubeflow.org"
[[params.versions]]
version = "v0.4"
githubbranch = "v0.4-branch"
url = "https://v0-4.kubeflow.org"
[[params.versions]]
version = "v0.3"
githubbranch = "v0.3-branch"
url = "https://v0-3.kubeflow.org"
[[params.versions]]
version = "v0.2"
githubbranch = "v0.2-branch"
url = "https://v0-2.kubeflow.org"
[[params.versions]]
version = "v1.3"
githubbranch = "v1.3-branch"
url = "https://v1-3-branch.kubeflow.org"
# User interface configuration
[params.ui]
# Enable the logo
navbar_logo = true
# Enable to show the side bar menu in its compact state.
sidebar_menu_compact = true
# Enable the search box in the side bar.
sidebar_search_disable = false
# Set to true to disable breadcrumb navigation.
breadcrumb_disable = false
# Show expand/collapse icon for sidebar sections
sidebar_menu_foldable = true
# Disable about button in footer
footer_about_disable = true
[[params.versions]]
version = "v1.2"
githubbranch = "v1.2-branch"
url = "https://v1-2-branch.kubeflow.org"
# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events.
# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set.
# If you want this feature, but occasionally need to remove the "Feedback" section from a single page,
# add "hide_feedback: true" to the page's front matter.
[params.ui.feedback]
enable = true
# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful).
yes = 'Glad to hear it! Please <a href="https://github.com/kubeflow/website/issues/new">tell us how we can improve</a>.'
no = 'Sorry to hear that. Please <a href="https://github.com/kubeflow/website/issues/new">tell us how we can improve</a>.'
[[params.versions]]
version = "v1.1"
githubbranch = "v1.1-branch"
url = "https://v1-1-branch.kubeflow.org"
[[params.versions]]
version = "v1.0"
githubbranch = "v1.0-branch"
url = "https://v1-0-branch.kubeflow.org"
[[params.versions]]
version = "v0.7"
githubbranch = "v0.7-branch"
url = "https://v0-7.kubeflow.org"
[[params.versions]]
version = "v0.6"
githubbranch = "v0.6-branch"
url = "https://v0-6.kubeflow.org"
[[params.versions]]
version = "v0.5"
githubbranch = "v0.5-branch"
url = "https://v0-5.kubeflow.org"
[[params.versions]]
version = "v0.4"
githubbranch = "v0.4-branch"
url = "https://v0-4.kubeflow.org"
[[params.versions]]
version = "v0.3"
githubbranch = "v0.3-branch"
url = "https://v0-3.kubeflow.org"
[[params.versions]]
version = "v0.2"
githubbranch = "v0.2-branch"
url = "https://v0-2.kubeflow.org"
# Docsy: User interface configuration
[params.ui]
# Docsy: Enable to show the side bar menu in its compact state.
sidebar_menu_compact = true
# Docsy: Disable the search box in the side bar.
sidebar_search_disable = true
# Docsy: Set to true to disable breadcrumb navigation.
breadcrumb_disable = false
# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events.
# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set.
# If you want this feature, but occasionally need to remove the "Feedback" section from a single page,
# add "hide_feedback: true" to the page's front matter.
[params.ui.feedback]
enable = true
# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful).
yes = 'Glad to hear it! Please <a href="https://github.com/kubeflow/website/issues/new">tell us how we can improve</a>.'
no = 'Sorry to hear that. Please <a href="https://github.com/kubeflow/website/issues/new">tell us how we can improve</a>.'
[params.links]
# Docsy: "User" links will show on left side of footer and in the community page if you have one.
[[params.links.user]]
name = "Twitter"
url = "https://twitter.com/kubeflow/"
icon = "fab fa-twitter"
desc = "Follow us on Twitter to get the latest news!"
[[params.links.user]]
name = "Slack"
url = "/docs/about/community/#slack"
icon = "fab fa-slack"
desc = "Join the Kubeflow Slack Workspace!"
[[params.links.user]]
name = "Mailing list"
url = "/docs/about/community/#mailing-list"
icon = "fa fa-envelope"
desc = "Join the Kubeflow Mailing List!"
[[params.links.user]]
name = "Weekly Community Call"
url = "/docs/about/community/#weekly-community-call"
icon = "fa fa-calendar"
desc = "Join the weekly Kubeflow Community Call!"
# Docsy: "Developer" links will show on right side of footer and in the community page if you have one.
#[[params.links.developer]]
# name = "A name"
# url = "http://example.com"
# icon = "fab fa-envelope"
# desc = "A description"
# Links in footer
[params.links]
[[params.links.user]]
name = "Twitter"
url = "https://twitter.com/kubeflow/"
icon = "fab fa-twitter"
desc = "Follow us on Twitter to get the latest news!"
[[params.links.user]]
name = "Slack"
url = "/docs/about/community/#slack"
icon = "fab fa-slack"
desc = "Join the Kubeflow Slack Workspace!"
[[params.links.user]]
name = "Mailing list"
url = "/docs/about/community/#mailing-list"
icon = "fa fa-envelope"
desc = "Join the Kubeflow Mailing List!"
[[params.links.user]]
name = "Weekly Community Call"
url = "/docs/about/community/#weekly-community-call"
icon = "fa fa-calendar"
desc = "Join the weekly Kubeflow Community Call!"

View File

@ -1,18 +0,0 @@
<!doctype html>
<html lang="{{ .Site.Language.Lang }}" class="no-js {{ if .IsHome }}smooth-scroll{{ end }}">
<head>
{{ partial "head.html" . }}
</head>
<body class="td-{{ .Kind }}">
<header>
{{ partial "navbar.html" . }}
</header>
<div class="container-fluid td-default td-outer">
<main role="main" class="td-main">
{{ block "main" . }}{{ end }}
</main>
{{ partial "footer.html" . }}
</div>
{{ partialCached "scripts.html" . }}
</body>
</html>

View File

@ -13,17 +13,19 @@
display: block;
}
</style>
<div class="d-print-none">
<h2 class="feedback--title">Feedback</h2>
<p class="feedback--question">Was this page helpful?</p>
<button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button>
<p class="feedback--response feedback--response-yes">
{{ .yes | safeHTML }}
</p>
<p class="feedback--response feedback--response-no">
{{ .no | safeHTML }}
</p>
<div class="card mt-4 col-12 col-sm-6">
<div class="card-body">
<h3 class="card-title">Feedback</h3>
<p class="card-text">Was this page helpful?</p>
<button class="btn btn-primary feedback--answer feedback--answer-yes" style="width: 5rem;">Yes</button>
<button class="btn btn-primary feedback--answer feedback--answer-no" style="width: 5rem;">No</button>
<p class="feedback--response feedback--response-yes">
{{ .yes | safeHTML }}
</p>
<p class="feedback--response feedback--response-no">
{{ .no | safeHTML }}
</p>
</div>
</div>
<script>
const yesButton = document.querySelector('.feedback--answer-yes');

View File

@ -1,5 +1,5 @@
{{ $links := .Site.Params.links }}
<footer class="bg-dark pt-4 row d-print-none">
<footer class="bg-dark pt-3 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
@ -16,12 +16,12 @@
{{ end }}
{{ end }}
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
{{ with .Site.Params.copyright }}<small class="text-white">Copyright &copy; 2018-{{ now.Year }} {{ .}} <br>{{ "Documentation Distributed under CC BY 4.0" }}</small>{{ end }}
{{ with .Site.Params.privacy_policy }}<small class="ml-1"><a href="{{ . }}" target="_blank">{{ T "footer_privacy_policy" }}</a></small>{{ end }}
{{ if not .Site.Params.ui.footer_about_disable }}
{{ with .Site.GetPage "about" }}<p class="mt-2"><a href="{{ .RelPermalink }}">{{ .Title }}</a></p>{{ end }}
{{ end }}
<div class="col-12 col-sm-5 text-center py-2 order-sm-2">
{{ with .Site.Params.copyright }}<small class="text-white">&copy; {{ now.Year}} {{ .}} {{ "| Documentation Distributed under CC BY 4.0" }}</small>{{ end }}
{{ with .Site.Params.privacy_policy }}<p><small class="ml-1"><a href="{{ . }}" target="_blank" rel="noopener">{{ T "footer_privacy_policy" }}</a></small></p>{{ end }}
{{ if not .Site.Params.ui.footer_about_disable }}
{{ with .Site.GetPage "about" }}<p class="mt-2"><a href="{{ .RelPermalink }}">{{ .Title }}</a></p>{{ end }}
{{ end }}
</div>
</div>
</div>
@ -30,7 +30,7 @@
<ul class="list-inline mb-0">
{{ range . }}
<li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="{{ .name }}" aria-label="{{ .name }}">
<a class="text-white" target="_blank" href="{{ .url }}">
<a class="text-white" target="_blank" rel="noopener" href="{{ .url }}" aria-label="{{ .name }}">
<i class="{{ .icon }}"></i>
</a>
</li>

View File

@ -1,46 +1,57 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{{ hugo.Generator }}
{{- $outputFormat := partial "outputformat.html" . -}}
{{ range .AlternativeOutputFormats -}}
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}">
{{ end -}}
{{ if and (eq (getenv "HUGO_ENV") "production") (ne $outputFormat "print") -}}
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
{{ $outputFormat := partial "outputformat.html" . -}}
{{ if and hugo.IsProduction (ne $outputFormat "print") -}}
<meta name="robots" content="index, follow">
{{ else -}}
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<meta name="robots" content="noindex, nofollow">
{{ end -}}
<!-- include our custom Kubeflow "seo_schema" partial -->
{{ partial "seo_schema" . }}
{{ partialCached "favicons.html" . }}
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} | {{ end }}{{ .Site.Title }}{{ end }}</title>
<meta name="description" content="{{ .Site.Params.Description }}">
{{- template "_internal/opengraph.html" . -}}
{{- template "_internal/google_news.html" . -}}
{{- template "_internal/schema.html" . -}}
{{- template "_internal/twitter_cards.html" . -}}
{{ partialCached "head-css.html" . "asdf" }}
<title>
{{- if .IsHome -}}
{{ .Site.Title -}}
{{ else -}}
{{ with .Title }}{{ . }} | {{ end -}}
{{ .Site.Title -}}
{{ end -}}
</title>
{{ $desc := .Page.Description | default (.Page.Content | safeHTML | truncate 150) -}}
<meta name="description" content="{{ $desc }}">
{{ template "_internal/opengraph.html" . -}}
{{ template "_internal/schema.html" . -}}
{{ template "_internal/twitter_cards.html" . -}}
{{ partialCached "head-css.html" . "asdf" -}}
<script
src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
{{ if .Site.Params.offlineSearch }}
{{ if .Site.Params.offlineSearch -}}
<script
src="https://unpkg.com/lunr@2.3.8/lunr.min.js"
integrity="sha384-vRQ9bDyE0Wnu+lMfm57BlYLO0/XauFuKpVsZPs7KEDwYKktWi5+Kz3MP8++DFlRY"
crossorigin="anonymous"></script>
{{end}}
{{ if .Site.Params.prism_syntax_highlighting }}
<!-- stylesheet for Prism -->
{{ end -}}
{{ if .Site.Params.prism_syntax_highlighting -}}
<link rel="stylesheet" href="{{ "/css/prism.css" | relURL }}"/>
{{ end }}
{{ partial "hooks/head-end.html" . }}
<!--To comply with GDPR, cookie consent scripts places in head-end must execute before Google Analytics is enabled -->
{{ if eq (getenv "HUGO_ENV") "production" }}
{{ template "_internal/google_analytics_async.html" . }}
{{ end }}
{{ end -}}
{{ partial "hooks/head-end.html" . -}}
{{/* To comply with GDPR, cookie consent scripts places in head-end must execute before Google Analytics is enabled */ -}}
{{ if hugo.IsProduction -}}
{{ if hasPrefix .Site.GoogleAnalytics "G-" -}}
{{ template "_internal/google_analytics.html" . -}}
{{ else -}}
{{ template "_internal/google_analytics_async.html" . -}}
{{ end -}}
{{ end -}}

View File

@ -1,7 +1,7 @@
{{ $cover := .HasShortcode "blocks/cover" }}
<nav class="js-navbar-scroll navbar navbar-expand-md navbar-dark {{ if $cover}} td-navbar-cover {{ end }} td-navbar py-2">
<a class="navbar-brand" href="{{ .Site.Home.RelPermalink }}">
<span class="navbar-logo">{{ with resources.Get "icons/logo.svg" }}{{ ( . | minify).Content | safeHTML }} {{ end }}</span><span class="brand-name text-uppercase font-weight-bold">{{ .Site.Title }}</span>
{{ $cover := and (.HasShortcode "blocks/cover") (not .Site.Params.ui.navbar_translucent_over_cover_disable) }}
<nav class="js-navbar-scroll navbar navbar-expand-md navbar-dark {{ if $cover}} td-navbar-cover {{ end }} td-navbar">
<a class="navbar-brand" href="{{ .Site.Home.RelPermalink }}">
<span class="navbar-logo">{{ if .Site.Params.ui.navbar_logo }}{{ with resources.Get "icons/logo.svg" }}{{ ( . | minify).Content | safeHTML }}{{ end }}{{ end }}</span><span class="text-uppercase font-weight-bold">{{ .Site.Title }}</span>
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#main_navbar" aria-controls="main_navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
@ -23,8 +23,8 @@
</li>
{{ end }}
{{ if .Site.Params.versions }}
<li class="nav-item dropdown mt-1 mt-lg-0 mr-2">
{{ partial "navbar-version-selector.html" . }}
<li class="nav-item dropdown mt-1 mt-lg-0 mr-2">
{{ partial "navbar-version-selector.html" . }}
</li>
{{ end }}
{{ if (gt (len .Site.Home.Translations) 0) }}
@ -34,5 +34,4 @@
{{ end }}
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">{{ partial "search-input.html" . }}</div>
</nav>

View File

@ -1,28 +0,0 @@
{{ if .Path }}
{{ $pathFormatted := replace .Path "\\" "/" }}
{{ $gh_repo := ($.Param "github_repo") }}
{{ $gh_subdir := ($.Param "github_subdir") }}
{{ $gh_project_repo := ($.Param "github_project_repo") }}
{{ $gh_branch := (default "master" ($.Param "github_branch")) }}
{{ if $gh_repo }}
<div class="td-page-meta ml-2 pb-1 pt-2 mb-0">
{{ $editURL := printf "%s/edit/%s/content/%s" $gh_repo $gh_branch $pathFormatted }}
{{ if and ($gh_subdir) (.Site.Language.Lang) }}
{{ $editURL = printf "%s/edit/%s/%s/content/%s/%s" $gh_repo $gh_branch $gh_subdir ($.Site.Language.Lang) $pathFormatted }}
{{ else if .Site.Language.Lang }}
{{ $editURL = printf "%s/edit/%s/content/%s/%s" $gh_repo $gh_branch ($.Site.Language.Lang) $pathFormatted }}
{{ else if $gh_subdir }}
{{ $editURL = printf "%s/edit/%s/%s/content/%s" $gh_repo $gh_branch $gh_subdir $pathFormatted }}
{{ end }}
{{/* Kubeflow customization to add the page URL to the issue body. */}}
{{$doc_url := printf "https://www.kubeflow.org%s" .URL }}
{{ $issuesURL := printf "%s/issues/new?title=%s&body=%s" $gh_repo (htmlEscape $.Title) (htmlEscape $doc_url) }}
<a href="{{ $editURL }}" target="_blank"><i class="fa fa-edit fa-fw"></i> {{ T "post_edit_this" }}</a>
<a href="{{ $issuesURL }}" target="_blank"><i class="fab fa-github fa-fw"></i> {{ T "post_create_issue" }}</a>
{{ if $gh_project_repo }}
{{ $project_issueURL := printf "%s/issues/new/choose" $gh_project_repo }}
<a href="{{ $project_issueURL }}" target="_blank"><i class="fas fa-tasks fa-fw"></i> {{ T "post_create_project_issue" }}</a>
{{ end }}
</div>
{{ end }}
{{ end }}

View File

@ -1,66 +0,0 @@
{{/* We cache this partial for bigger sites and set the active class client side. */}}
{{ $sidebarCacheLimit := cond (isset .Site.Params.ui "sidebar_cache_limit") .Site.Params.ui.sidebar_cache_limit 2000 }}
{{ $shouldDelayActive := ge (len .Site.Pages) $sidebarCacheLimit }}
<div id="td-sidebar-menu" class="td-sidebar__inner{{ if $shouldDelayActive }} d-none{{ end }}">
{{ if not .Site.Params.ui.sidebar_search_disable }}
<form class="td-sidebar__search d-flex align-items-center">
{{ partial "search-input.html" . }}
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
{{ else }}
<div id="content-mobile">
<form class="td-sidebar__search d-flex align-items-center pt-4 pt-lg-">
{{ partial "search-input.html" . }}
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
</div>
<div id="content-desktop"></div>
{{ end }}
<nav class="collapse td-sidebar-nav" id="td-section-nav">
{{ if (gt (len .Site.Home.Translations) 0) }}
<div class="nav-item dropdown d-block d-lg-none">
{{ partial "navbar-lang-selector.html" . }}
</div>
{{ end }}
{{ $navRoot := cond (and (ne .Params.toc_root true) (eq .Site.Home.Type "docs")) .Site.Home .FirstSection }}
{{ $ulNr := 0 }}
{{ $ulShow := cond (isset .Site.Params.ui "ul_show") .Site.Params.ui.ul_show 1 }}
{{ $sidebarMenuTruncate := cond (isset .Site.Params.ui "sidebar_menu_truncate") .Site.Params.ui.sidebar_menu_truncate 50 }}
<ul class="td-sidebar-nav__section pr-md-3 pt-lg-5 ul-{{ $ulNr }}">
{{ template "section-tree-nav-section" (dict "page" . "section" $navRoot "shouldDelayActive" $shouldDelayActive "sidebarMenuTruncate" $sidebarMenuTruncate "ulNr" $ulNr "ulShow" (add $ulShow 1)) }}
</ul>
</nav>
</div>
{{ define "section-tree-nav-section" }}
{{ $s := .section }}
{{ $p := .page }}
{{ $shouldDelayActive := .shouldDelayActive }}
{{ $sidebarMenuTruncate := .sidebarMenuTruncate }}
{{ $treeRoot := cond (eq .ulNr 0) true false }}
{{ $ulNr := .ulNr }}
{{ $ulShow := .ulShow }}
{{ $active := and (not $shouldDelayActive) (eq $s $p) }}
{{ $activePath := and (not $shouldDelayActive) ($p.IsDescendant $s) }}
{{ $show := cond (or (lt $ulNr $ulShow) $activePath (and (not $shouldDelayActive) (eq $s.Parent $p.Parent)) (and (not $shouldDelayActive) (eq $s.Parent $p)) (not $p.Site.Params.ui.sidebar_menu_compact)) true false }}
{{ $mid := printf "m-%s" ($s.RelPermalink | anchorize) }}
{{ $pages_tmp := where (union $s.Pages $s.Sections).ByWeight ".Params.toc_hide" "!=" true }}
{{ $pages := $pages_tmp | first $sidebarMenuTruncate }}
{{ $withChild := gt (len $pages) 0 }}
{{ $manualLink := cond (isset $s.Params "manuallink") $s.Params.manualLink ( cond (isset $s.Params "manuallinkrelref") (relref $s $s.Params.manualLinkRelref) $s.RelPermalink) }}
{{ $manualLinkTitle := cond (isset $s.Params "manuallinktitle") $s.Params.manualLinkTitle $s.Title }}
<li class="td-sidebar-nav__section-title td-sidebar-nav__section{{ if $withChild }} with-child{{ else }} without-child{{ end }}{{ if $activePath }} active-path{{ end }}{{ if not $show }} collapse{{ end }}" id="{{ $mid }}-li">
<a href="{{ $manualLink }}"{{ if ne $s.LinkTitle $manualLinkTitle }} title="{{ $manualLinkTitle }}"{{ end }}{{ with $s.Params.manualLinkTarget }} target="{{ . }}"{{ if eq . "_blank" }} rel="noopener"{{ end }}{{ end }} class="align-left pl-0 pr-2{{ if $active}} active{{ end }} td-sidebar-link{{ if $s.IsPage }} td-sidebar-link__page{{ else }} td-sidebar-link__section{{ end }}{{ if $treeRoot }} tree-root{{ end }}" id="{{ $mid }}">{{ with $s.Params.Icon}}<i class="{{ . }}"></i>{{ end }}<span class="{{ if $active }}td-sidebar-nav-active-item{{ end }}">{{ $s.LinkTitle }}</span></a>
{{if $withChild }}
{{ $ulNr := add $ulNr 1 }}
<ul class="pr-md-3 ul-{{ $ulNr }}">
{{ range $pages }}
{{ if (not (and (eq $s $p.Site.Home) (eq .Params.toc_root true))) }}
{{ template "section-tree-nav-section" (dict "page" $p "section" . "shouldDelayActive" $shouldDelayActive "sidebarMenuTruncate" $sidebarMenuTruncate "ulNr" $ulNr "ulShow" $ulShow) }}
{{ end }}
{{ end }}
</ul>
{{ end }}
</li>
{{ end }}

View File

@ -1,13 +1,16 @@
[build]
publish = "public"
command = "hugo"
command = "git submodule update --init --recursive && hugo --gc --minify"
[context.deploy-preview.environment]
HUGO_VERSION = "0.89.2"
HUGO_VERSION = "0.89.4"
NODE_VERSION = "16"
[context.production.environment]
HUGO_VERSION = "0.89.2"
HUGO_VERSION = "0.89.4"
HUGO_ENV = "production"
NODE_VERSION = "16"
[context.branch-deploy.environment]
HUGO_VERSION = "0.89.2"
HUGO_VERSION = "0.89.4"
NODE_VERSION = "16"

1630
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

8
package.json Normal file
View File

@ -0,0 +1,8 @@
{
"name": "website",
"devDependencies": {
"autoprefixer": "^10.4.0",
"postcss": "^8.4.1",
"postcss-cli": "^9.0.2"
}
}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
{"Target":"scss/main.min.797772673f37ce78a15938bdbdda7696d357de982f66b9cc958277c685d6da4d.css","MediaType":"text/css","Data":{"Integrity":"sha256-eXdyZz83znihWTi9vdp2ltNX3pgvZrnMlYJ3xoXW2k0="}}

1
themes/docsy Submodule

@ -0,0 +1 @@
Subproject commit 3ae94a0573a8c14f61c832b6e7fdcc46af62187c

View File

@ -1,10 +0,0 @@
# Editor configuration, see https://editorconfig.org
root = true
# All files
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

View File

@ -1,9 +0,0 @@
public/
resources/
node_modules/
tech-doc-hugo
# vim temporary files
*~
*.sw?

View File

@ -1,6 +0,0 @@
[submodule "assets/vendor/bootstrap"]
path = assets/vendor/bootstrap
url = https://github.com/twbs/bootstrap.git
[submodule "assets/vendor/Font-Awesome"]
path = assets/vendor/Font-Awesome
url = https://github.com/FortAwesome/Font-Awesome.git

View File

@ -1,5 +0,0 @@
{
"semi": true,
"singleQuote": true,
"tabWidth": 4
}

View File

@ -1,14 +0,0 @@
routes:
- route: "^.+\\.(js|css|svg|ttf)$"
# cache static assets for 20 years
headers:
Cache-Control: "max-age=630720000, no-transform, public"
gzip: true
- route: "^.+\\.(png|jpg)$"
headers:
Cache-Control: "max-age=630720000, no-transform, public"
gzip: true
- route: "^.+\\.(html|xml|json)$"
gzip: true

View File

@ -1,34 +0,0 @@
# How to Contribute
We'd love to accept your patches and contributions to this project. There are
just a few small guidelines you need to follow.
## Contributor License Agreement
Contributions to this project must be accompanied by a Contributor License
Agreement. You (or your employer) retain the copyright to your contribution;
this simply gives us permission to use and redistribute your contributions as
part of the project. Head over to <https://cla.developers.google.com/> to see
your current agreements on file or to sign a new one.
You generally only need to submit a CLA once, so if you've already submitted one
(even if it was for a different project), you probably don't need to do it
again.
## Code reviews
All submissions, including submissions by project members, require review. We
use GitHub pull requests for this purpose. Consult
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
information on using pull requests.
## Community Guidelines
This project follows
[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/).
## How to contribute
See the [contribution
guidelines](https://www.docsy.dev/docs/contribution-guidelines/)
in the Docsy user guide.

View File

@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -1,59 +0,0 @@
# Docsy
Docsy is a [Hugo](https://gohugo.io/) theme for technical documentation sets, providing simple navigation, site structure, and more.
This is not an officially supported Google product. This project is actively being maintained.
## Prerequisites
The following are basic prerequisites for using Docsy in your site:
- Install a recent release of the Hugo "extended" version (we recommend version 0.53 or later). If you install from the
[release page](https://github.com/gohugoio/hugo/releases), make sure you download the `_extended` version
which supports SCSS.
- Install `PostCSS` so that the site build can create the final CSS assets. You can install it locally by running
the following commands from the root directory of your project:
```
sudo npm install -D --save autoprefixer
sudo npm install -D --save postcss-cli
```
## Example and usage
You can find an example project that uses Docsy in the [Docsy Example Project repo](https://github.com/google/docsy-example).The Docsy Example Project is hosted at [https://example.docsy.dev/](https://example.docsy.dev/). For real-life examples of sites that use Docsy (and their source repos), see our [Examples](https://www.docsy.dev/docs/examples/) page.
To use the Docsy theme for your own site:
- (Recommended) Use the [example project](https://github.com/google/docsy-example),
which includes the Docsy theme as a submodule, as a template to create your project.
You can customize this pre-configured basic site into your own Docsy themed site.
[Learn more...](https://github.com/google/docsy-example)
- Add Docsy to your existing Hugo site repo's `themes` directory. You can either add Docsy as a Git submodule, or
clone the Docsy theme into your project.
See the [Docsy Getting Started Guide](https://docsy.dev/docs/getting-started/) for
details about the various usage options.
## Documentation
Docsy has its own user guide (using Docsy, of course!) with lots more information about using the theme, which you can find at [https://docsy.dev/](https://docsy.dev/). Alternatively you can use Hugo to generate and serve a local copy of the guide (also useful for testing local theme changes), making sure you have installed all the prerequisites listed above:
```
git clone --recurse-submodules --depth 1 https://github.com/google/docsy.git
cd docsy/userguide/
hugo server --themesDir ../..
```
Note: you need the `themesDir` flag when running Hugo because the site files are inside the theme repo.
## Contributing ![GitHub](https://img.shields.io/github/contributors/google/docsy)
Please read [CONTRIBUTING.md](https://github.com/google/docsy/blob/master/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
See also the list of [contributors](https://github.com/google/docsy/graphs/contributors) who participated in this project.
## License ![GitHub](https://img.shields.io/github/license/google/docsy)
This project is licensed under the Apache License 2.0 - see the [LICENSE.md](https://github.com/google/docsy/blob/master/LICENSE) file for details

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

View File

@ -1,237 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.3, 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 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">
<g>
<path style="fill:#FFFFFF;" d="M116.8525,421.9722c-5.7041,0-10.3442-4.3127-10.3442-9.6129V88.183
c0-5.3002,4.6401-9.6117,10.3442-9.6117H320.858c3.0347,0,9.3959,0.5498,11.7506,2.6302l0.3545,0.3442l58.905,63.2912
c2.3101,2.491,2.9202,8.4928,2.9202,11.3184v256.2039c0,5.3002-4.6407,9.6129-10.3436,9.6129H116.8525z"/>
<g>
<g>
<g>
<path style="fill:#767676;" d="M384.4445,423.2066H116.852c-6.3839,0-11.5786-4.8658-11.5786-10.8474V88.1831
c0-5.9804,5.1947-10.8461,11.5786-10.8461h204.0062c0.377,0,9.2786,0.0329,12.568,2.9389l0.3947,0.3833l58.9508,63.337
c3.2135,3.4652,3.2514,11.7924,3.2514,12.1593v256.2036C396.0231,418.3408,390.8284,423.2066,384.4445,423.2066z
M116.5079,411.9189c0.0848,0.0278,0.1999,0.0531,0.3441,0.0531h267.5925c0.1442,0,0.2581-0.0253,0.3441-0.0531V156.1556
c-0.0076-0.9033-0.3593-3.7347-0.7034-5.0037l-57.6527-61.9416c-1.4651-0.3176-4.4533-0.6389-5.5742-0.6389H116.852
c-0.143,0-0.2594,0.024-0.3441,0.0531V411.9189z M383.9612,150.7699L383.9612,150.7699L383.9612,150.7699z M327.0321,89.371
v0.0013V89.371z"/>
</g>
</g>
</g>
<g>
<g>
<path style="fill:#5B7FC0;" d="M189.0874,210.1754l0.0012-0.0012c7.7751,0.0012,15.0295,4.1862,18.932,10.9234
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3304-6.4032,15.4604
c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032c-5.8394,0-11.328-2.2733-15.458-6.4032s-6.4032-9.6186-6.4056-15.4628
c0.0012-6.025,2.454-11.4897,6.4116-15.4473C177.5953,212.627,183.0601,210.1742,189.0874,210.1754z M197.0804,232.033
c0.0012-1.4042-0.3687-2.7868-1.063-3.9887c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993
c0,2.1356,0.832,4.1431,2.3427,5.6539c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
S197.0816,234.1722,197.0804,232.033z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.0898,210.176c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613c0-6.0285,2.4516-11.4921,6.4116-15.452
C177.5977,212.6276,183.0612,210.176,189.0898,210.176z M197.0839,232.0372c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,236.239,197.0839,234.2399,197.0839,232.0372z"/>
<g>
<defs>
<path id="SVGID_1_" d="M194.7376,237.6875c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.999,7.9942-7.9942c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.0839,234.2399,196.1861,236.239,194.7376,237.6875z"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_2_);fill:#FFFFFF;" d="M190.0704,225.0237c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354c-1.7447-1.4674-2.8575-3.663-2.8588-6.116
c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C193.7885,225.7247,191.9774,225.0237,190.0704,225.0237z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_2_);fill:#020202;" d="M190.0704,225.0237
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354
c-1.7447-1.4674-2.8575-3.663-2.8588-6.116c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C193.7885,225.7247,191.9774,225.0237,190.0704,225.0237z"/>
</g>
<g>
<defs>
<path id="SVGID_3_" d="M189.0898,210.176c7.7763,0,15.0283,4.1826,18.926,10.9151c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462
c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613
c0-6.0285,2.4516-11.4921,6.4116-15.452C177.5977,212.6276,183.0612,210.176,189.0898,210.176z M197.0839,232.0372
c0-1.4078-0.3711-2.7892-1.0702-3.9959c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,236.239,197.0839,234.2399,197.0839,232.0372z"/>
</defs>
<clipPath id="SVGID_4_">
<use xlink:href="#SVGID_3_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_4_);fill:#5B7FC0;" d="M172.6595,215.6045c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8612c12.0547,0.0024,21.8636-9.797,21.8613-21.8612
c0.0024-3.8475-1.0151-7.6326-2.9353-10.9462c-3.8977-6.7324-11.1497-10.9151-18.926-10.9151
C182.0806,209.1953,176.6171,211.647,172.6595,215.6045z"/>
</g>
</g>
<rect x="198.8952" y="225.1043" style="fill:#5B7FC0;" width="122.6266" height="13.8671"/>
</g>
<g>
<path style="fill:#D95140;" d="M189.0874,155.7611l0.0012-0.0012c7.7751,0.0012,15.0295,4.1862,18.932,10.9234
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3304-6.4032,15.4604c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032
c-5.8394,0-11.328-2.2733-15.458-6.4032s-6.4032-9.6186-6.4056-15.4628c0.0012-6.0249,2.454-11.4897,6.4116-15.4473
C177.5953,158.2128,183.0601,155.7599,189.0874,155.7611z M197.0804,177.6188c0.0012-1.4042-0.3687-2.7868-1.063-3.9887
c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993c0,2.1356,0.832,4.1431,2.3427,5.6539
c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
C196.2508,181.7667,197.0816,179.758,197.0804,177.6188z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.0898,155.7617c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613c0-6.0285,2.4516-11.4921,6.4116-15.452
C177.5977,158.2134,183.0612,155.7617,189.0898,155.7617z M197.0839,177.623c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,181.8248,197.0839,179.8256,197.0839,177.623z"/>
<g>
<defs>
<path id="SVGID_5_" d="M194.7376,183.2733c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.9989,7.9942-7.9942c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.0839,179.8256,196.1861,181.8248,194.7376,183.2733z"/>
</defs>
<clipPath id="SVGID_6_">
<use xlink:href="#SVGID_5_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_6_);fill:#FFFFFF;" d="M190.0704,170.6095c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354c-1.7447-1.4674-2.8575-3.663-2.8588-6.116c0.0024-4.4125,3.5936-7.999,7.9942-7.9942
c2.3802-0.0001,4.616,1.0833,6.1218,2.8788C193.7885,171.3104,191.9774,170.6095,190.0704,170.6095z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_6_);fill:#020202;" d="M190.0704,170.6095
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354
c-1.7447-1.4674-2.8575-3.663-2.8588-6.116c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C193.7885,171.3104,191.9774,170.6095,190.0704,170.6095z"/>
</g>
<g>
<defs>
<path id="SVGID_7_" d="M189.0898,155.7617c7.7763,0,15.0283,4.1826,18.926,10.9151c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462
c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613
c0-6.0285,2.4516-11.4921,6.4116-15.452C177.5977,158.2134,183.0612,155.7617,189.0898,155.7617z M197.0839,177.623
c0-1.4078-0.3711-2.7892-1.0702-3.9959c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,181.8248,197.0839,179.8256,197.0839,177.623z"/>
</defs>
<clipPath id="SVGID_8_">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_8_);fill:#D95140;" d="M172.6595,161.1903c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8613c12.0547,0.0024,21.8636-9.797,21.8613-21.8613
c0.0024-3.8474-1.0151-7.6326-2.9353-10.9462c-3.8977-6.7324-11.1497-10.9151-18.926-10.9151
C182.0806,154.7811,176.6171,157.2327,172.6595,161.1903z"/>
</g>
<rect x="198.8952" y="170.69" style="fill:#D95140;" width="122.6266" height="13.8671"/>
</g>
<g>
<g>
<path style="fill:#56A55C;" d="M189.5379,264.6147l0.0012-0.0012c7.7751,0.0012,15.0294,4.1862,18.932,10.9235
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3304-6.4032,15.4604
c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032c-5.8394,0-11.3281-2.2733-15.458-6.4032c-4.13-4.13-6.4032-9.6186-6.4056-15.4628
c0.0012-6.0249,2.454-11.4897,6.4116-15.4472C178.0458,267.0663,183.5105,264.6135,189.5379,264.6147z M197.5309,286.4723
c0.0012-1.4042-0.3687-2.7868-1.063-3.9887c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993
c0,2.1356,0.832,4.1431,2.3427,5.6538c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
C196.7013,290.6202,197.5321,288.6115,197.5309,286.4723z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.5403,264.6153c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8613c0-6.0285,2.4516-11.492,6.4116-15.452
C178.0482,267.0669,183.5117,264.6153,189.5403,264.6153z M197.5344,286.4765c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.6366,290.6783,197.5344,288.6792,197.5344,286.4765z"/>
<g>
<defs>
<path id="SVGID_9_" d="M195.1881,292.1268c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.9989,7.9942-7.9941c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.5344,288.6792,196.6366,290.6783,195.1881,292.1268z"/>
</defs>
<clipPath id="SVGID_10_">
<use xlink:href="#SVGID_9_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_10_);fill:#FFFFFF;" d="M190.5209,279.463c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941
c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354c-1.7446-1.4674-2.8575-3.6631-2.8588-6.1161
c0.0024-4.4125,3.5936-7.999,7.9942-7.9941c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C194.239,280.164,192.4279,279.463,190.5209,279.463z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_10_);fill:#020202;" d="M190.5209,279.463
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354
c-1.7446-1.4674-2.8575-3.6631-2.8588-6.1161c0.0024-4.4125,3.5936-7.999,7.9942-7.9941
c2.3802-0.0001,4.616,1.0833,6.1218,2.8788C194.239,280.164,192.4279,279.463,190.5209,279.463z"/>
</g>
<g>
<defs>
<path id="SVGID_11_" d="M189.5403,264.6153c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8613c0-6.0285,2.4516-11.492,6.4116-15.452
C178.0482,267.0669,183.5117,264.6153,189.5403,264.6153z M197.5344,286.4765c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.6366,290.6783,197.5344,288.6792,197.5344,286.4765z"/>
</defs>
<clipPath id="SVGID_12_">
<use xlink:href="#SVGID_11_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_12_);fill:#56A55C;" d="M173.11,270.0439c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8613c12.0547,0.0024,21.8636-9.797,21.8613-21.8613
c0.0024-3.8474-1.0151-7.6326-2.9353-10.9462c-3.8977-6.7325-11.1497-10.9151-18.926-10.9151
C182.5311,263.6346,177.0676,266.0863,173.11,270.0439z"/>
</g>
</g>
<rect x="199.3456" y="279.5436" style="fill:#56A55C;" width="122.6266" height="13.8671"/>
</g>
<g>
<g>
<path style="fill:#F1BC42;" d="M189.0874,318.7208l0.0012-0.0012c7.7751,0.0012,15.0295,4.1862,18.932,10.9234
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3305-6.4032,15.4604
c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032c-5.8394,0-11.328-2.2733-15.458-6.4032c-4.13-4.1299-6.4032-9.6186-6.4056-15.4628
c0.0012-6.025,2.454-11.4897,6.4116-15.4472C177.5953,321.1724,183.0601,318.7196,189.0874,318.7208z M197.0804,340.5784
c0.0012-1.4042-0.3687-2.7868-1.063-3.9887c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993
c0,2.1356,0.832,4.1431,2.3427,5.6539c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
S197.0816,342.7176,197.0804,340.5784z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.0898,318.7214c7.7763,0,15.0283,4.1826,18.926,10.915
c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8612
c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8612c0-6.0285,2.4516-11.4921,6.4116-15.452
C177.5977,321.173,183.0612,318.7214,189.0898,318.7214z M197.0839,340.5826c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,344.7844,197.0839,342.7853,197.0839,340.5826z"/>
<g>
<defs>
<path id="SVGID_13_" d="M194.7376,346.2329c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.999,7.9942-7.9942c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.0839,342.7853,196.1861,344.7844,194.7376,346.2329z"/>
</defs>
<clipPath id="SVGID_14_">
<use xlink:href="#SVGID_13_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_14_);fill:#FFFFFF;" d="M190.0704,333.5691c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354c-1.7447-1.4674-2.8575-3.6631-2.8588-6.1161
c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0834,6.1218,2.8788
C193.7885,334.2701,191.9774,333.5691,190.0704,333.5691z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_14_);fill:#020202;" d="M190.0704,333.5691
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354
c-1.7447-1.4674-2.8575-3.6631-2.8588-6.1161c0.0024-4.4125,3.5936-7.999,7.9942-7.9942
c2.3802-0.0001,4.616,1.0834,6.1218,2.8788C193.7885,334.2701,191.9774,333.5691,190.0704,333.5691z"/>
</g>
<g>
<defs>
<path id="SVGID_15_" d="M189.0898,318.7214c7.7763,0,15.0283,4.1826,18.926,10.915c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462
c0.0024,12.0643-9.8065,21.8636-21.8613,21.8612c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8612
c0-6.0285,2.4516-11.4921,6.4116-15.452C177.5977,321.173,183.0612,318.7214,189.0898,318.7214z M197.0839,340.5826
c0-1.4078-0.3711-2.7892-1.0702-3.9959c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,344.7844,197.0839,342.7853,197.0839,340.5826z"/>
</defs>
<clipPath id="SVGID_16_">
<use xlink:href="#SVGID_15_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_16_);fill:#F1BC42;" d="M172.6595,324.15c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8612c12.0547,0.0024,21.8636-9.797,21.8613-21.8612
c0.0024-3.8474-1.0151-7.6327-2.9353-10.9462c-3.8977-6.7324-11.1497-10.9151-18.926-10.9151
C182.0806,317.7407,176.6171,320.1924,172.6595,324.15z"/>
</g>
</g>
<rect x="198.8952" y="333.6497" style="fill:#F1BC42;" width="122.6266" height="13.8671"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,49 +0,0 @@
/*
* Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
(function ($) {
'use strict';
// Headers' anchor link that shows on hover
$(function () {
// append anchor links to headings in markdown.
var article = document.getElementsByTagName('main')[0];
if (!article) {
return;
}
var headings = article.querySelectorAll('h1, h2, h3, h4, h5, h6');
headings.forEach(function (heading) {
if (heading.id) {
var a = document.createElement('a');
// set visibility: hidden, not display: none to avoid layout change
a.style.visibility = 'hidden';
// [a11y] hide this from screen readers, etc..
a.setAttribute('aria-hidden', 'true');
// material insert_link icon in svg format
a.innerHTML = ' <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>';
a.href = '#' + heading.id;
heading.insertAdjacentElement('beforeend', a);
heading.addEventListener('mouseenter', function () {
a.style.visibility = 'initial';
});
heading.addEventListener('mouseleave', function () {
a.style.visibility = 'hidden';
});
}
});
});
}(jQuery));

View File

@ -1,65 +0,0 @@
/*
* Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
(function($) {
'use strict';
$(function() {
$('[data-toggle="tooltip"]').tooltip();
$('[data-toggle="popover"]').popover();
$('.popover-dismiss').popover({
trigger: 'focus'
})
});
function bottomPos(element) {
return element.offset().top + element.outerHeight();
}
// Bootstrap Fixed Header
$(function() {
var promo = $(".js-td-cover");
if (!promo.length) {
return
}
var promoOffset = bottomPos(promo);
var navbarOffset = $('.js-navbar-scroll').offset().top;
var threshold = Math.ceil($('.js-navbar-scroll').outerHeight());
if ((promoOffset - navbarOffset) < threshold) {
$('.js-navbar-scroll').addClass('navbar-bg-onscroll');
}
$(window).on('scroll', function() {
var navtop = $('.js-navbar-scroll').offset().top - $(window).scrollTop();
var promoOffset = bottomPos($('.js-td-cover'));
var navbarOffset = $('.js-navbar-scroll').offset().top;
if ((promoOffset - navbarOffset) < threshold) {
$('.js-navbar-scroll').addClass('navbar-bg-onscroll');
} else {
$('.js-navbar-scroll').removeClass('navbar-bg-onscroll');
$('.js-navbar-scroll').addClass('navbar-bg-onscroll--fade');
}
});
});
}(jQuery));

View File

@ -1,38 +0,0 @@
{{ with .Site.Params.mermaid }}
{{ if .enable }}
(function($) {
var needMermaid = false;
$('.language-mermaid').parent().replaceWith(function() {
needMermaid = true;
return $('<pre class="mermaid">').text($(this).text());
});
if (!needMermaid) {
mermaid.initialize({startOnLoad: false});
return;
}
var params = {{ . | jsonify | safeJS }};
// site params are stored with lowercase keys; lookup correct casing
// from Mermaid default config.
var norm = function(defaultConfig, params) {
var result = {};
for (const key in defaultConfig) {
const keyLower = key.toLowerCase();
if (defaultConfig.hasOwnProperty(key) && params.hasOwnProperty(keyLower)) {
if (typeof defaultConfig[key] === "object") {
result[key] = norm(defaultConfig[key], params[keyLower]);
} else {
result[key] = params[keyLower];
}
}
}
return result;
};
var settings = norm(mermaid.mermaidAPI.defaultConfig, params);
settings.startOnLoad = true;
mermaid.initialize(settings);
})(jQuery);
{{ end }}
{{ end }}

View File

@ -1,201 +0,0 @@
// Adapted from code by Matt Walters https://www.mattwalters.net/posts/hugo-and-lunr/
(function ($) {
'use strict';
$(document).ready(function () {
const $searchInput = $('.td-search-input');
//
// Options for popover
//
$searchInput.data('html', true);
$searchInput.data('placement', 'bottom');
$searchInput.data(
'template',
'<div class="popover offline-search-result" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
);
//
// Register handler
//
$searchInput.on('change', (event) => {
render($(event.target));
// Hide keyboard on mobile browser
$searchInput.blur();
});
// Prevent reloading page by enter key on sidebar search.
$searchInput.closest('form').on('submit', () => {
return false;
});
//
// Lunr
//
let idx = null; // Lunr index
const resultDetails = new Map(); // Will hold the data for the search results (titles and summaries)
// Set up for an Ajax call to request the JSON data file that is created by Hugo's build process
$.ajax($searchInput.data('offline-search-index-json-src')).then(
(data) => {
idx = lunr(function () {
this.ref('ref');
// If you added more searchable fields to the search index, list them here.
// Here you can specify searchable fields to the search index - e.g. individual toxonomies for you project
// With "boost" you can add weighting for specific (default weighting without boost: 1)
this.field('title', { boost: 5 });
this.field('categories', { boost: 3 });
this.field('tags', { boost: 3 });
// this.field('projects', { boost: 3 }); // example for an individual toxonomy called projects
this.field('description', { boost: 2 });
this.field('body');
data.forEach((doc) => {
this.add(doc);
resultDetails.set(doc.ref, {
title: doc.title,
excerpt: doc.excerpt,
});
});
});
$searchInput.trigger('change');
}
);
const render = ($targetSearchInput) => {
// Dispose the previous result
$targetSearchInput.popover('dispose');
//
// Search
//
if (idx === null) {
return;
}
const searchQuery = $targetSearchInput.val();
if (searchQuery === '') {
return;
}
const results = idx
.query((q) => {
const tokens = lunr.tokenizer(searchQuery.toLowerCase());
tokens.forEach((token) => {
const queryString = token.toString();
q.term(queryString, {
boost: 100,
});
q.term(queryString, {
wildcard:
lunr.Query.wildcard.LEADING |
lunr.Query.wildcard.TRAILING,
boost: 10,
});
q.term(queryString, {
editDistance: 2,
});
});
})
.slice(
0,
$targetSearchInput.data('offline-search-max-results')
);
//
// Make result html
//
const $html = $('<div>');
$html.append(
$('<div>')
.css({
display: 'flex',
justifyContent: 'space-between',
marginBottom: '1em',
})
.append(
$('<span>')
.text('Search results')
.css({ fontWeight: 'bold' })
)
.append(
$('<i>')
.addClass('fas fa-times search-result-close-button')
.css({
cursor: 'pointer',
})
)
);
const $searchResultBody = $('<div>').css({
maxHeight: `calc(100vh - ${
$targetSearchInput.offset().top -
$(window).scrollTop() +
180
}px)`,
overflowY: 'auto',
});
$html.append($searchResultBody);
if (results.length === 0) {
$searchResultBody.append(
$('<p>').text(`No results found for query "${searchQuery}"`)
);
} else {
results.forEach((r) => {
const doc = resultDetails.get(r.ref);
const href =
$searchInput.data('offline-search-base-href') +
r.ref.replace(/^\//, '');
const $entry = $('<div>').addClass('mt-4');
$entry.append(
$('<small>').addClass('d-block text-muted').text(r.ref)
);
$entry.append(
$('<a>')
.addClass('d-block')
.css({
fontSize: '1.2rem',
})
.attr('href', href)
.text(doc.title)
);
$entry.append($('<p>').text(doc.excerpt));
$searchResultBody.append($entry);
});
}
$targetSearchInput.on('shown.bs.popover', () => {
$('.search-result-close-button').on('click', () => {
$targetSearchInput.val('');
$targetSearchInput.trigger('change');
});
});
// Enable inline styles in popover.
const whiteList = $.fn.tooltip.Constructor.Default.whiteList;
whiteList['*'].push('style');
$targetSearchInput
.data('content', $html[0].outerHTML)
.popover({ whiteList: whiteList })
.popover('show');
};
});
})(jQuery);

View File

@ -1,62 +0,0 @@
{{ with .Site.Params.plantuml }}
{{ if .enable }}
(function($) {
function encode64(data) {
r = "";
for (i = 0; i < data.length; i += 3) {
if (i + 2 == data.length) {
r += append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1), 0);
} else if (i + 1 == data.length) {
r += append3bytes(data.charCodeAt(i), 0, 0);
} else {
r += append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1),
data.charCodeAt(i + 2));
}
}
return r;
}
function append3bytes(b1, b2, b3) {
c1 = b1 >> 2;
c2 = ((b1 & 0x3) << 4) | (b2 >> 4);
c3 = ((b2 & 0xF) << 2) | (b3 >> 6);
c4 = b3 & 0x3F;
r = "";
r += encode6bit(c1 & 0x3F);
r += encode6bit(c2 & 0x3F);
r += encode6bit(c3 & 0x3F);
r += encode6bit(c4 & 0x3F);
return r;
}
function encode6bit(b) {
if (b < 10) {
return String.fromCharCode(48 + b);
}
b -= 10;
if (b < 26) {
return String.fromCharCode(65 + b);
}
b -= 26;
if (b < 26) {
return String.fromCharCode(97 + b);
}
b -= 26;
if (b == 0) {
return '-';
}
if (b == 1) {
return '_';
}
return '?';
}
var needPlantuml = false;
$('.language-plantuml').parent().replaceWith(function() {
let s = unescape(encodeURIComponent($(this).text()));
return $('<img src="{{.svg_image_url | default "http://www.plantuml.com/plantuml/svg/"}}' + encode64(deflate(s, 9)) + '">')
});
})(jQuery);
{{ end }}
{{ end }}

View File

@ -1,43 +0,0 @@
/*
Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
(function($) {
'use strict';
var Search = {
init: function() {
$(document).ready(function() {
$(document).on('keypress', '.td-search-input', function(e) {
if (e.keyCode !== 13) {
return
}
var query = $(this).val();
var searchPage = "{{ "search/" | absURL }}?q=" + query;
document.location = searchPage;
return false;
});
});
},
};
Search.init();
}(jQuery));

View File

@ -1,7 +0,0 @@
{{- $.Scratch.Add "offline-search-index" slice -}}
{{- range where .Site.AllPages ".Params.exclude_search" "!=" true -}}
{{/* We have to apply `htmlUnescape` again after `truncate` because `truncate` applies `html.EscapeString` if the argument is not HTML. */}}
{{/* Indvidual taxonomies can be added in the next line by add '"taxonomy-name" (.Params.taxonomy-name | default "")' to the dict (as seen for categories and tags). */}}
{{- $.Scratch.Add "offline-search-index" (dict "ref" .RelPermalink "title" .Title "categories" (.Params.categories | default "") "tags" (.Params.tags | default "") "description" (.Description | default "") "body" (.Plain | htmlUnescape) "excerpt" ((.Description | default .Plain) | htmlUnescape | truncate (.Site.Params.offlineSearchSummaryLength | default 70) | htmlUnescape)) -}}
{{- end -}}
{{- $.Scratch.Get "offline-search-index" | jsonify -}}

View File

@ -1,20 +0,0 @@
// Style alert boxes.
.alert {
font-weight: $font-weight-medium;
background: $white;
color: inherit;
border-radius: 0;
@each $color, $value in $theme-colors {
&-#{$color} {
& .alert-heading {
color: $value;
}
border-style: solid;
border-color: $value;
border-width: 0 0 0 4px;
}
}
}

View File

@ -1,10 +0,0 @@
// Blog related styles.
.td-blog {
.td-rss-button {
position: absolute;
top: 5.5rem;
right: 1rem;
z-index: 22;
}
}

View File

@ -1,127 +0,0 @@
// Boxes on the home page and similar.
.td-box {}
// box-variant creates the main style for a colored section used on the site.
@mixin box-variant($parent, $color-name, $color-value) {
$text-color: color-yiq($color-value);
$link-color: mix($blue, $text-color, lightness($color-value));
$link-hover-color: rgba($link-color, 0.5) !default;
#{$parent} {
&--#{$color-name} {
color: $text-color;
background-color: #{$color-value};
.td-arrow-down {
&::before {
left: 50%;
margin-left: -30px;
bottom: -25px;
border: {
style: solid;
width: 25px 30px 0 30px;
color: #{$color-value} transparent transparent transparent;
};
z-index: 3;
position: absolute;
content: "";
}
}
}
}
// Improve contrast for the links in paragraphs.
@include link-variant("#{$parent}--#{$color-name} p > a", $link-color, $link-hover-color, false);
@if $enable-gradients {
@include bg-gradient-variant("#{$parent}--1#{$color-name}#{$parent}--gradient", $color-value,true);
}
}
// Common min-height modifiers used for boxes.
@mixin td-box-height-modifiers($parent) {
#{$parent} {
&--height-auto {}
&--height-min {
min-height: 300px;
}
&--height-med {
min-height: 400px;
}
&--height-max {
min-height: 500px;
}
&--height-full {
min-height: 100vh;
}
@include media-breakpoint-up(md) {
&--height-min {
min-height: 450px;
}
&--height-med {
min-height: 500px;
}
&--height-max {
min-height: 650px;
}
}
}
}
@include td-box-height-modifiers(".td-box");
// Styling for section boxes
.td-box {
.row.section {
padding-left: 5vw;
padding-right: 5vw;
flex-direction: column;
> table {
@extend .table-striped;
@extend .table-responsive;
@extend .table;
}
}
.row {
padding-left: 5vw;
padding-right: 5vw;
flex-direction: row;
}
}
// Styling for community page link boxes
.td-box.linkbox {
padding: 5vh 5vw;
}
// This allows "painting by numbers"
@for $i from 1 through length($td-box-colors) {
$c: nth($td-box-colors, $i);
$name: $i - 1;
@include box-variant(".td-box", $name, $c);
}
// Same as above with all the theme color names.
@each $color, $value in $colors {
@include box-variant(".td-box", $color, $value);
}
@each $color, $value in $theme-colors {
@include box-variant(".td-box", $color, $value);
}
@each $color, $value in $grays {
@include box-variant(".td-box", $color, $value);
}

View File

@ -1,7 +0,0 @@
// Breadcrumb
.breadcrumb {
background: none;
padding-left: 0;
padding-top: 0;
}

View File

@ -1,15 +0,0 @@
// Buttons
@if $enable-rounded {
.btn {
border-radius: 1rem;
&-lg {
border-radius: 2rem;
}
&-sm {
border-radius: 1rem;
}
}
}

View File

@ -1,55 +0,0 @@
// Code formatting.
.td-content {
// Highlighted code.
.highlight {
@extend .card;
margin: 2rem 0;
padding: 0;
pre {
margin: 0;
padding: 1rem;
}
}
// Inline code
p code, li > code, table code {
color: inherit;
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
word-break: normal;
background-color: rgba($black, 0.05);
border-radius: $border-radius;
br {
display: none;
}
}
// Code blocks
pre {
word-wrap: normal;
background-color: $gray-100;
padding: $spacer;
> code {
background-color: inherit !important;
padding: 0;
margin: 0;
font-size: 100%;
word-break: normal;
white-space: pre;
border: 0;
}
}
pre.mermaid {
background-color: inherit;
font-size: 0;
}
}

View File

@ -1,41 +0,0 @@
// Add some local palette classes so you can do -bg-warning -text-warning etc. Even -bg-1 if you want to paint by numbers.
@mixin palette-variant($color-name, $color-value) {
$text-color: color-yiq($color-value);
$link-color: mix($blue, $text-color, lightness($color-value));
$link-hover-color: rgba($link-color, .5) !default;
.-bg-#{$color-name} {
color: $text-color;
background-color: $color-value;
}
// Make links in paragraphs stand out more.
@include link-variant(".-bg-#{$color-name} p > a", $link-color, $link-hover-color, false);
.-text-#{$color-name} {
color: $color-value;
}
}
@each $color, $value in $colors {
@include palette-variant($color, $value);
}
@each $color, $value in $theme-colors {
@include palette-variant($color, $value);
}
@each $color, $value in $grays {
@include palette-variant($color, $value);
}
// This allows "painting by numbers", i.e. picking colors by a shortcode Ordianal.
@for $i from 1 through length($td-box-colors) {
$value: nth($td-box-colors, $i);
$name: $i - 1;
$text-color: color-yiq($value);
@include palette-variant($name, $value);
}

View File

@ -1,82 +0,0 @@
//
// Style Markdown content
//
.td-content {
order: 1;
p, li, td {
font-weight: $font-weight-body-text;
}
> h1 {
font-weight: $font-weight-bold;
margin-bottom: 1rem;
}
> h2 {
margin-bottom: 1rem;
}
> h2:not(:first-child) {
margin-top: 3rem;
}
> h2 + h3 {
margin-top: 1rem;
}
> h3, > h4, > h5, > h6 {
margin-bottom: 1rem;
margin-top: 2rem;
}
img {
@extend .img-fluid;
}
> table {
@extend .table-striped;
@extend .table-responsive;
@extend .table;
}
> blockquote {
padding: 0 0 0 1rem;
margin-bottom: $spacer;
color: $gray-600;
border-left: 6px solid $secondary;
}
> ul li, > ol li {
margin-bottom: .25rem;
}
strong {
font-weight: $font-weight-bold;
}
> pre, > .highlight, > .lead, > h1, > h2, > ul, > ol, > p, > blockquote, > dl dd, .footnotes, > .alert {
@extend .td-max-width-on-larger-screens;
}
.alert:not(:first-child) {
margin-top: 2 * $spacer;
margin-bottom: 2 * $spacer;
}
.lead {
margin-bottom: 1.5rem;
}
}
.td-title {
margin-top: 1rem;
margin-bottom: .5rem;
@include media-breakpoint-up(sm) {
font-size: 3rem;
}
}

View File

@ -1,34 +0,0 @@
// The outer page container i.e. common styles for any page.
.td-outer {
display: flex;
flex-direction: column;
height: 100vh;
}
// The outer page container for the default base template.
.td-default {
main {
> section:first-of-type {
@include media-breakpoint-up(md) {
padding-top: 8rem;
}
}
section {
@extend .td-block-padding;
}
}
}
.td-main {
flex-grow: 1;
main {
@include media-breakpoint-up(md) {
padding-top: 5.5rem;
}
padding-bottom: 2rem;
}
}

View File

@ -1,131 +0,0 @@
//
// Main navbar
//
.td-navbar-cover {
background: $primary;
@include media-breakpoint-up(md) {
background: transparent !important;
.nav-link {
text-shadow: 1px 1px 2px $dark;
}
}
&.navbar-bg-onscroll .nav-link {
text-shadow: none;
}
}
.navbar-bg-onscroll {
background: $primary !important;
opacity: inherit;
}
.td-navbar {
background: $primary;
min-height: 4rem;
margin: 0;
z-index: 32;
@include media-breakpoint-up(md) {
position: fixed;
top: 0;
width: 100%;
}
.navbar-brand {
text-transform: none;
text-align: middle;
.nav-link {
display: inline-block;
margin-right: -30px;
}
svg {
display: inline-block;
margin: 0 10px;
height: 30px;
}
}
.nav-link {
text-transform: none;
font-weight: $font-weight-bold;
}
.td-search-input {
border: none;
@include placeholder {
color: $navbar-dark-color;
}
}
.dropdown {
min-width: 100px;
}
@include media-breakpoint-down(md) {
padding-right: .5rem;
padding-left: .75rem;
.td-navbar-nav-scroll {
max-width: 100%;
height: 2.5rem;
margin-top: .25rem;
overflow: hidden;
font-size: .875rem;
.nav-link {
padding-right: .25rem;
padding-left: 0;
}
.navbar-nav {
padding-bottom: 2rem;
overflow-x: auto;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
}
}
}
}
// Icons
#main_navbar {
li i {
padding-right: 0.5em;
&:before {
display: inline-block;
text-align: center;
min-width: 1em;
}
}
.alert {
background-color: inherit;
padding:0;
color: $secondary;
border: 0;
font-weight: inherit;
&:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: "Font Awesome 5 Free";
font-weight: 900;
content: "\f0d9";
padding-left: 0.5em;
padding-right: 0.5em;
}
}
}

View File

@ -1,18 +0,0 @@
.pageinfo {
font-weight: $font-weight-medium;
background: $gray-100;
color: inherit;
border-radius: 0;
margin: 2rem;
padding: 1.5rem;
padding-bottom: 0.5rem;
@each $color, $value in $theme-colors {
&-#{$color} {
border-style: solid;
border-color: $value;
}
}
}

View File

@ -1,30 +0,0 @@
// Search
.td-search-input {
background: transparent;
max-width: 90%;
&.form-control:focus {
border-color: lighten($primary, 60%);
box-shadow: 0 0 0 2px lighten($primary, 30%);
}
@if $enable-rounded {
border-radius: 1rem;
}
font-family: "Font Awesome 5 Free", $font-family-base;
}
.popover.offline-search-result {
// Override bootstrap default style (max-width: $popover-max-width;)
max-width: 90%;
.card {
margin-bottom: $spacer * .5;
.card-header {
font-weight: bold;
}
}
}

View File

@ -1,57 +0,0 @@
//
// Right side toc
//
.td-toc {
border-left: 1px solid $border-color;
@supports (position: sticky) {
position: sticky;
top: 4rem;
height: calc(100vh - 10rem);
overflow-y: auto;
}
order: 2;
padding-top: 0.75rem;
padding-bottom: 1.5rem;
vertical-align: top;
a {
display: block;
font-weight: $font-weight-light;
padding-bottom: .25rem;
}
li {
list-style: none;
display: block;
}
li li {
margin-left: 0.5rem;
}
.td-page-meta {
a {
font-weight: $font-weight-medium;
}
}
#TableOfContents {
// Hugo's ToC is a mouthful, this can be used to style the top level h2 entries.
> ul > li > ul > li > a {}
a {
color: $gray-600;
&:hover {
color: $blue;
text-decoration: none;
}
}
}
ul {
padding-left: 0;
}
}

View File

@ -1,162 +0,0 @@
//
// Left side navigation
//
.td-sidebar-nav {
padding-right: 0.5rem;
margin-right: -15px;
margin-left: -15px;
@include media-breakpoint-up(md) {
@supports (position: sticky) {
max-height: calc(100vh - 10rem);
overflow-y: auto;
}
}
@include media-breakpoint-up(md) {
display: block !important;
}
&__section {
li {
list-style: none;
}
ul {
padding: 0;
margin: 0;
}
@include media-breakpoint-up(md) {
& .ul-1 ul {
padding-left: 1.5em;
}
}
padding-left: 0;
}
&__section-title {
display: block;
font-weight: $font-weight-medium;
.active {
font-weight: $font-weight-bold;
}
a {
color: $gray-900;
}
}
.td-sidebar-link {
display: block;
padding-bottom: 0.375rem;
&__page {
color: $gray-700;
font-weight: $font-weight-light;
}
}
a {
&:hover {
color: $blue;
text-decoration: none;
}
&.active {
font-weight: $font-weight-bold;
}
}
.dropdown {
a {
color: $gray-700;
}
.nav-link {
padding: 0 0 1rem;
}
}
& > .td-sidebar-nav__section {
padding-top: .5rem;
padding-left: 1.5rem;
}
li i { // Layout of icons
padding-right: 0.5em;
&:before{
display: inline-block;
text-align: center;
min-width: 1em;
}
}
.td-sidebar-link.tree-root{
font-weight: $font-weight-bold;
color: $primary;
border-bottom: 1px $primary solid;
margin-bottom: 1rem;
}
}
.td-sidebar {
@include media-breakpoint-up(md) {
padding-top: 4rem;
background-color: $td-sidebar-bg-color;
padding-right: 1rem;
border-right: 1px solid $td-sidebar-border-color;
}
padding-bottom: 1rem;
&__toggle {
line-height: 1;
color: $gray-900;
margin: 1rem;
}
&__search {
padding: 1rem 15px;
margin-right: -15px;
margin-left: -15px;
}
&__inner {
order: 0;
@include media-breakpoint-up(md) {
@supports (position: sticky) {
position: sticky;
top: 4rem;
z-index: 10;
height: calc(100vh - 6rem);
}
}
@include media-breakpoint-up(xl) {
flex: 0 1 320px;
}
.td-search-box {
width: 100%;
}
}
#content-desktop {display: block;}
#content-mobile {display: none;}
@include media-breakpoint-down(md) {
#content-desktop {display: none;}
#content-mobile {display: block;}
}
}

View File

@ -1,7 +0,0 @@
/*
Nothing defined here. The Hugo project that uses this theme can override Bootstrap by adding a file to:
assets/scss/_styles_project.scss
*/

View File

@ -1,131 +0,0 @@
/*
Bootstrap variables overrides for theme.
See https://github.com/twbs/bootstrap/pull/23260
*/
@fa-font-path : "../webfonts";
// Bootstrap flags. For more, see https://getbootstrap.com/docs/4.0/getting-started/theming/
$enable-gradients: true !default;
$enable-rounded: true !default;
$enable-shadows: true !default;
// Theme flags.
$td-enable-google-fonts: true !default;
// Theme colors
$primary: #30638E !default;
$primary-light: lighten($primary, 75%) !default;
$secondary: #FFA630 !default;
$success: #3772FF !default;
$info: #C0E0DE !default;
$warning: #ED6A5A !default;
$danger: #ED6A5A !default;
$white: #fff !default;
$light: #D3F3EE !default;
$dark: #403F4C !default;
$blue: #72A1E5 !default;
$orange: #BA5A31 !default;
$gray-100: #f8f9fa !default;
$gray-200: #eee !default;
$gray-300: #dee2e6 !default;
$gray-400: #ccc !default;
$gray-500: #adb5bd !default;
$gray-600: #797676 !default;
$gray-700: #495057 !default;
$gray-800: #333 !default;
$gray-900: #222 !default;
$black: #000 !default;
$code-color: darken($secondary, 20%) !default;
// UI element colors
$border-color: $gray-300 !default;
$td-sidebar-bg-color: rgba($primary, 0.03) !default;
$td-sidebar-border-color: $border-color !default;
// Background colors for the sections on home page etc. It is a paint by number system, starting at 0, where the number is taken from the shortcode's ordinal
// if not provided by the user.
// These colors are all part of the theme palette, but the mix is fairly random to create variation. This can be overridden by the project if needed.
$td-box-colors: $dark, $primary, $secondary, $info, $primary-light, $gray-600, $success, $warning, $dark, $danger, $primary, $secondary, $primary-light, $info !default;
$link-color: darken($blue, 15%) !default;
$link-decoration: none !default;
$link-hover-color: darken($link-color, 15%) !default;
$link-hover-decoration: none !default;
// Fonts
$google_font_name: "Open Sans" !default;
$google_font_family: "Open+Sans:300,300i,400,400i,700,700i" !default;
$web-font-path: "https://fonts.googleapis.com/css?family=#{$google_font_family}&display=swap";
$td-fonts-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
@if $td-enable-google-fonts {
$td-fonts-serif: prepend($td-fonts-serif, "#{$google_font_name}");
}
$font-family-sans-serif: $td-fonts-serif !default;
$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
$font-family-base: $font-family-sans-serif !default;
$font-size-base: 1rem !default;
// Font weights
$font-weight-light: 300 !default;
$font-weight-normal: 400 !default;
$font-weight-medium: 500 !default;
$font-weight-bold: 700 !default;
$font-weight-body-text: $font-weight-normal !default;
$headings-font-weight: $font-weight-medium !default;
// Heading sizes
$h1-font-size: $font-size-base * 2.25 !default;
$h2-font-size: $font-size-base * 2 !default;
$h3-font-size: $font-size-base * 1.5 !default;
$h4-font-size: $font-size-base * 1.35 !default;
$h5-font-size: $font-size-base * 1.15 !default;
$h6-font-size: $font-size-base !default;
// Display styles
$display1-weight: $font-weight-bold !default;
$display2-weight: $font-weight-bold !default;
$display3-weight: $font-weight-bold !default;
$display4-weight: $font-weight-bold !default;
$display1-size: 3rem !default;
$display2-size: 2.5rem !default;
$display3-size: 2rem !default;
$display4-size: 1.75rem !default;
// Space
$spacer: 1rem;
$td-block-space-top-base: 4 * $spacer !default;
$td-block-space-bottom-base: 4 * $spacer !default;
// Pagination
$pagination-color: $gray-600 !default;
$pagination-border-color: rgba($black, 0.1) !default;
$pagination-active-border-color: darken($primary, 5%) !default;
$pagination-disabled-color: $gray-300 !default;
// Navbar
$navbar-dark-color: rgba($white, 0.75) !default;
$navbar-dark-hover-color: rgba($white, 0.5) !default;
$navbar-dark-active-color: $white !default;
$navbar-dark-disabled-color: rgba($white, 0.25) !default;
// The yiq lightness value that determines when the lightness of color changes from "dark" to "light".
$yiq-contrasted-threshold: 200 !default;

View File

@ -1,7 +0,0 @@
/*
Nothing defined here. The Hugo project that uses this theme can override theme variables by adding a file to:
assets/scss/_variables_project.scss
*/

View File

@ -1,7 +0,0 @@
@import "cover";
.td-bg-arrow {
&-wrapper {
position: relative;
}
}

View File

@ -1,24 +0,0 @@
// A cover block is a full size cover with a fixed background for smaller screens.
@include td-box-height-modifiers(".td-cover-block");
.td-cover-logo {
margin-right: 0.5em;
}
.td-cover-block {
position: relative;
padding-top: 5rem;
padding-bottom: 5rem;
background: {
repeat: no-repeat;
position: 50% 0;
size: cover;
};
& > .byline {
position: absolute;
bottom: 2px;
right: 4px;
}
}

View File

@ -1,64 +0,0 @@
@import "support/functions";
@import "variables_project";
@import "variables";
@import "support/mixins";
@import "../vendor/bootstrap/scss/bootstrap";
@import "../vendor/Font-Awesome/scss/fontawesome.scss";
@import "../vendor/Font-Awesome/scss/solid.scss";
@import "../vendor/Font-Awesome/scss/brands.scss";
@import "support/utilities";
@import "colors";
@import "boxes";
@import "blog";
@import "code";
@import "nav";
@import "sidebar-tree";
@import "sidebar-toc";
@import "buttons";
@import "breadcrumb";
@import "alerts";
@import "content";
@import "search";
@import "main-container";
@import "blocks/blocks";
@import "section-index";
@import "pageinfo";
@if $td-enable-google-fonts {
@import url($web-font-path);
}
footer {
min-height: 150px;
@include media-breakpoint-down(md) {
min-height: 200px;
}
}
// Adjust anchors vs the fixed menu.
@include media-breakpoint-up(md) {
.td-offset-anchor:target {
display: block;
position: relative;
top: -4rem;
visibility: hidden;
}
h2[id]:before,
h3[id]:before,
h4[id]:before,
h5[id]:before {
display: block;
content: " ";
margin-top: -5rem;
height: 5rem;
visibility: hidden;
}
}
@import "rtl/main";
@import "styles_project";

View File

@ -1,46 +0,0 @@
body:lang(fa),
body:lang(ar),
body:lang(az),
body:lang(dv),
body:lang(he),
body:lang(ku),
body:lang(ur) {
@import 'spacing';
direction: rtl;
text-align: right;
.dropdown-menu {
text-align: right;
}
.text-right {
text-align: left !important;
}
pre {
text-align: left;
direction: ltr;
}
.td-rss-button {
left: 1rem !important;
right: auto !important;
}
}
body:lang(fa) {
@import url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font@v27.0.1/dist/font-face.css');
font-family: 'Vazir', "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
body:lang(he) {
@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700&display=swap');
font-family: 'Rubik', "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
body:lang(ar) {
@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@300;400;500;700&display=swap');
font-family: 'Tajawal', "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

View File

@ -1,91 +0,0 @@
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
@each $prop,
$abbrev in (margin: m, padding: p) {
@each $size,
$length in $spacers {
.#{$abbrev}#{$infix}-#{$size} {
#{$prop}: $length !important;
}
.#{$abbrev}t#{$infix}-#{$size},
.#{$abbrev}y#{$infix}-#{$size} {
#{$prop}-top: $length !important;
}
.#{$abbrev}r#{$infix}-#{$size},
.#{$abbrev}x#{$infix}-#{$size} {
#{$prop}-inline-end: $length !important;
}
.#{$abbrev}b#{$infix}-#{$size},
.#{$abbrev}y#{$infix}-#{$size} {
#{$prop}-bottom: $length !important;
}
.#{$abbrev}l#{$infix}-#{$size},
.#{$abbrev}x#{$infix}-#{$size} {
#{$prop}-inline-start: $length !important;
}
}
}
// Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)
@each $size,
$length in $spacers {
@if $size !=0 {
.m#{$infix}-n#{$size} {
margin: -$length !important;
}
.mt#{$infix}-n#{$size},
.my#{$infix}-n#{$size} {
margin-top: -$length !important;
}
.mr#{$infix}-n#{$size},
.mx#{$infix}-n#{$size} {
margin-right: -$length !important;
}
.mb#{$infix}-n#{$size},
.my#{$infix}-n#{$size} {
margin-bottom: -$length !important;
}
.ml#{$infix}-n#{$size},
.mx#{$infix}-n#{$size} {
margin-left: -$length !important;
}
}
}
// Some special margin utils
.m#{$infix}-auto {
margin: auto !important;
}
.mt#{$infix}-auto,
.my#{$infix}-auto {
margin-top: auto !important;
}
.mr#{$infix}-auto,
.mx#{$infix}-auto {
margin-right: auto !important;
}
.mb#{$infix}-auto,
.my#{$infix}-auto {
margin-bottom: auto !important;
}
.ml#{$infix}-auto,
.mx#{$infix}-auto {
margin-left: auto !important;
}
}
}

View File

@ -1,18 +0,0 @@
.section-index {
.entry {
padding: .75rem;
}
h5 {
margin-bottom: 0;
a {
font-weight: 700;
}
}
p {
margin-top: 0;
}
}

View File

@ -1,21 +0,0 @@
// Common functions.
@function prepend($list, $value) {
@return join($value, $list);
}
// See https://www.sitepoint.com/using-sass-build-color-palettes/
@function color-diff($a, $b) {
$sat: saturation($a) - saturation($b);
$lig: lightness($a) - lightness($b);
$fn-sat: if($sat > 0, 'desaturate', 'saturate');
$fn-lig: if($lig > 0, 'darken', 'lighten');
@return (
adjust-hue: -(hue($a) - hue($b)),
#{$fn-sat}: abs($sat),
#{$fn-lig}: abs($lig)
);
}

View File

@ -1,49 +0,0 @@
// Some simple mixins.
@mixin bg-gradient-variant($parent, $color,$ignore-warning: false) {
#{$parent} {
background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
}
}
@mixin link-variant($parent, $color, $hover-color, $underline: false) {
#{$parent} {
color: $color;
&:hover {
color: $hover-color;
}
@if $underline {
text-decoration: underline;
}
}
}
@mixin optional-at-root($sel) {
@at-root #{if(not &, $sel, selector-append(&, $sel))} {
@content;
}
}
// placeholder allows styling of the placeholder used in search input etc.
@mixin placeholder {
@include optional-at-root("::-webkit-input-placeholder") {
@content;
}
@include optional-at-root(":-moz-placeholder") {
@content;
}
@include optional-at-root("::-moz-placeholder") {
@content;
}
@include optional-at-root(":-ms-input-placeholder") {
@content;
}
}

View File

@ -1,82 +0,0 @@
// Mixins
@mixin optional-at-root($sel) {
@at-root #{if(not &, $sel, selector-append(&, $sel))} {
@content;
}
}
@mixin placeholder {
@include optional-at-root("::-webkit-input-placeholder") {
@content;
}
@include optional-at-root(":-moz-placeholder") {
@content;
}
@include optional-at-root("::-moz-placeholder") {
@content;
}
@include optional-at-root(":-ms-input-placeholder") {
@content;
}
}
// Common util classes.
.td-border-top {
border: none;
border-top: 1px solid #eee;
}
.td-border-none {
border: none;
}
.td-block-padding {
padding-top: $td-block-space-top-base ;
padding-bottom: $td-block-space-bottom-base;
@include media-breakpoint-up(md) {
padding-top: $td-block-space-top-base * 1.25;
padding-bottom: $td-block-space-bottom-base * 1.25;
}
}
.td-overlay {
position: relative;
&::after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
&--dark::after {
background-color: rgba($dark, 0.3);
}
&--light::after {
background-color: rgba($light, 0.3);
}
&__inner {
position: relative;
z-index: 1;
}
}
.td-max-width-on-larger-screens {
@include media-breakpoint-up(lg) {
max-width: 80%;
}
}

View File

@ -1,16 +0,0 @@
---
title: "Long Page Title"
linkTitle: "Short Nav Title"
weight: 100
description: >-
Page description for heading and indexes.
---
## Heading
Edit this template to create your new page.
* Give it a good name, ending in `.md` - e.g. `getting-started.md`
* Edit the "front matter" section at the top of the page (weight controls how its ordered amongst other pages in the same directory; lowest number first).
* Add a good commit message at the bottom of the page (<80 characters; use the extended description field for more detail).
* Create a new branch so you can preview your new file and request a review via Pull Request.

View File

@ -1,36 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
What happened? What are you seeing? How did you arrive here?
**To Reproduce**
Insert a URL to your test case - use codepen.io, jsfiddle.net, jsbin.com, codesandbox.io, or whatever.
Describe any details about the test case that we need to know like "whatever you do, don't click the red button."
**Expected behavior**
How would you like this to work instead?
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Version and implementation**
Version: <!--- Give us the version number here -->
Browser and version: <!--- If applicable give us the browser specs -->
- [ ] SVG with JS
- [ ] Web Fonts with CSS
- [ ] SVG Sprites
- [ ] On the Desktop
**Bug report checklist**
- [ ] I have filled out as much of the above information as I can
- [ ] I have included a test case because my odds go _way_ up that the team can fix this when I do
- [ ] I have [searched for existing issues](https://github.com/FortAwesome/Font-Awesome/issues) and to the best of my knowledge this is not a duplicate

View File

@ -1,25 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
**Feature request checklist**
- [ ] This is a single feature (i.e. not a re-write of all of Font Awesome)
- [ ] The title starts with "Feature request: " and is followed by a clear feature name (Ex: `Feature request: moar cowbell`)
- [ ] I have [searched for existing issues](https://github.com/FortAwesome/Font-Awesome-Pro/issues) and to the best of my knowledge this is not a duplicate

View File

@ -1,21 +0,0 @@
---
name: Icon request
about: Suggest an icon to be included in Font Awesome
title: ''
labels: ''
assignees: ''
---
**What can it be used for?**
Describe how this could be used / the use case for this icon.
**Example image (optional)**
Insert the example image here if necessary.
**Icon request checklist**
- [ ] This is a single icon or matched pair (Ex: `lock` / `unlock`)
- [ ] The title starts with "Icon request: " and is followed by the requested icon name (Ex: `Icon request: magical-unicorn`)
- [ ] I have [searched for existing issues](https://github.com/FortAwesome/Font-Awesome/issues) and to the best of my knowledge this is not a duplicate
- [ ] I have included at least one example image if it could be helpful (optional)
- [ ] The request is for a concrete object (it's harder to make an icon to represent happiness, it's easier to make a smiley face. ☺)

View File

@ -1,6 +0,0 @@
<!--- WARNING Pull Requests made to this repository cannot be merged -->
I understand that:
- [ ] I'm submitting this PR for reference only. It shows an example of what I'd like to see changed but
I understand that it will not be merged and I will not be listed as a contributor on this project.

File diff suppressed because it is too large Load Diff

View File

@ -1,74 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers 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, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at <hello@fontawesome.com>. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [https://contributor-covenant.org/version/1/4][version]
[homepage]: https://contributor-covenant.org
[version]: https://contributor-covenant.org/version/1/4/

View File

@ -1,25 +0,0 @@
# Contributing to Font Awesome
Looking to contribute something to Font Awesome? **Here's how you can help.**
## Quick start
We only accept issues that are icon requests, bug reports, or feature requests.
Bugs must be isolated and reproducible problems that we can fix within the Font
Awesome core.
* [Request a new icon](https://github.com/FortAwesome/Font-Awesome/issues/new?title=Icon%20request:%20icon-name&template=icon-request.md)
* [Request a new feature](https://github.com/FortAwesome/Font-Awesome/issues/new??title=Feature%20request:feature-name&template=feature-request.md)
* [Submit a bug report](https://github.com/FortAwesome/Font-Awesome/issues/new?template=bug-report.md)
## Key branches
- `master` is the latest, deployed version
## Pull requests
- At the moment we are not accepting pull requests containing icons
- Pull requests that do not solve an existing issue are essentially un-prioritizeddon't expect these to be addressed quickly
- The files in this repository are generated elsewhere and we do not merge PR's directly into master
- Try not to pollute your pull request with unintended changeskeep them simple and small
- Try to share which browsers your code has been tested in before submitting a pull request

View File

@ -1,34 +0,0 @@
Font Awesome Free License
-------------------------
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
Full Font Awesome Free license: https://fontawesome.com/license/free.
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
# Code: MIT License (https://opensource.org/licenses/MIT)
In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
# Attribution
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn't need to do anything additional when using these
files normally.
We've kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They're a great way for folks to
learn about Font Awesome.
# Brand Icons
All brand icons are trademarks of their respective owners. The use of these
trademarks does not indicate endorsement of the trademark holder by Font
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
to represent the company, product, or service to which they refer.**

View File

@ -1,138 +0,0 @@
<h1><img src="https://img.fortawesome.com/349cfdf6/logo-fa-free.svg" alt="Font Awesome 5 Free" width="50%"></h1>
> Version 5 the iconic SVG, font, and CSS framework
The internet's most popular icon toolkit has been redesigned and built from
scratch. On top of this, features like icon font ligatures, an SVG framework,
official NPM packages for popular frontend libraries like React, and access to
a new CDN.
Not familiar with Font Awesome 5? [Learn
more](https://www.kickstarter.com/projects/232193852/font-awesome-5) about our
successful Kickstarter and plan. You can also **[order Font Awesome
Pro](https://fontawesome.com/pro)** which includes tons more icons directly
from [fontawesome.com](https://fontawesome.com).
## Documentation
Learn how to get started with Font Awesome and then dive deeper into other and advanced topics:
### Using Font Awesome on the Web
* [With SVG with JavaScript](https://fontawesome.com/how-to-use/on-the-web/setup/getting-started?using=svg-with-js)
* [With web fonts with CSS](https://fontawesome.com/how-to-use/on-the-web/setup/getting-started?using=web-fonts-with-css)
* [Upgrading from version 4](https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4)
* [Installing Font Awesome with a package manager](https://fontawesome.com/how-to-use/on-the-web/setup/using-package-managers)
* [Downloading + hosting Font Awesome yourself](https://fontawesome.com/how-to-use/on-the-web/setup/hosting-font-awesome-yourself)
* [Performance and security](https://fontawesome.com/how-to-use/performance-and-security)
* [Accessibility](https://fontawesome.com/how-to-use/on-the-web/other-topics/accessibility)
* [Troubleshooting](https://fontawesome.com/how-to-use/on-the-web/other-topics/troubleshooting)
#### Advanced Options & Techniques
* [Using CSS pseudo-elements](https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements)
* [SVG sprites](https://fontawesome.com/how-to-use/svg-sprites)
* [The Font Awesome API](https://fontawesome.com/how-to-use/font-awesome-api)
* [SVG symbols](https://fontawesome.com/how-to-use/on-the-web/advanced/svg-symbols)
* [SVG JavaScript Core](https://fontawesome.com/how-to-use/on-the-web/advanced/svg-javascript-core)
* [Server side rendering](https://fontawesome.com/how-to-use/server-side-rendering)
### Using Font Awesome on the Desktop
* [Getting started](https://fontawesome.com/how-to-use/on-the-desktop/setup/getting-started)
* [Upgrading from version 4](https://fontawesome.com/how-to-use/on-the-desktop/setup/upgrading-from-version-4)
* [Using ligatures](https://fontawesome.com/how-to-use/on-the-desktop/referencing-icons/using-ligatures)
* [Using glyphs](https://fontawesome.com/how-to-use/on-the-desktop/referencing-icons/using-glyphs)
* [Troubleshooting](https://fontawesome.com/how-to-use/on-the-desktop/other-topics/troubleshooting)
### Where did Font Awesome 4 (or 3) go?
Now that Font Awesome 5 has been released we are marking version 4 as
end-of-life. We don't plan on releasing any further versions of the 4.x or 3.x.
Documentation is still available but it's moved to
[https://fontawesome.com/v4.7.0](https://fontawesome.com/v4.7.0) and
[https://fontawesome.com/v3.2.1](https://fontawesome.com/v3.2.1).
The Git repository for
[v4.7.0](https://github.com/FortAwesome/Font-Awesome/releases/tag/v4.7.0) and
[v3.2.1](https://github.com/FortAwesome/Font-Awesome/releases/tag/v3.2.1) can
be found in our GitHub releases.
## Change log
We'll keep track of each release in the [CHANGELOG.md](./CHANGELOG.md)
Looking for older versions of Font Awesome? Check the [releases](https://github.com/FortAwesome/Font-Awesome/releases).
## Upgrading
From time-to-time we'll have special upgrading instructions from one version to the next.
Check out the [UPGRADING.md](./UPGRADING.md) guide when you upgrade your dependencies.
## Code of conduct
We will behave ourselves if you behave yourselves. For more details see our
[CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).
## Contributing
Please read through our [contributing guidelines](./CONTRIBUTING.md). Included
are directions for opening issues.
## Versioning
Font Awesome will be maintained under the Semantic Versioning guidelines as much as possible. Releases will be numbered
with the following format:
`<major>.<minor>.<patch>`
For more information on SemVer, please visit http://semver.org.
**The major version "5" is part of an umbrella release. It includes many different types of files and technologies. Therefore
we deviate from normal SemVer in the following ways:**
* Any release may update the design, look-and-feel, or branding of an existing
icon
* We will never intentionally release a `patch` version update that breaks
backward compatibility
* A `minor` release **may include backward-incompatible changes** but we will
write clear upgrading instructions in UPGRADING.md
* A `minor` or `patch` release will never remove icons
* Bug fixes will be addressed as `patch` releases unless they include backward
incompatibility then they will be `minor` releases
## License
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
- Icons — CC BY 4.0 License
- In the Font Awesome Free download, the CC BY 4.0 license applies to all icons packaged as .svg and .js files types.
- Fonts — SIL OFL 1.1 License
- In the Font Awesome Free download, the SIL OLF license applies to all icons packaged as web and desktop font files.
- Code — MIT License
- In the Font Awesome Free download, the MIT license applies to all non-font and non-icon files.
Attribution is required by MIT, SIL OLF, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn't need to do anything additional when using these
files normally.
We've kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They're a great way for folks to
learn about Font Awesome.
## Team
* [Dave Gandy](https://github.com/davegandy)
* [Travis Chase](https://github.com/supercodepoet)
* [Rob Madole](https://github.com/robmadole)
* [Brian Talbot](https://github.com/talbs)
* [Jory Raphael](https://github.com/sensibleworld)
* [Mike Wilkerson](https://github.com/mlwilkerson)
* [Trevor Chase](https://github.com/trevorchase)
* [Jason Lundien](https://github.com/jasonlundien)
* [Jason Otero](https://github.com/deathnfudge)
* [Edward Emanuel](https://github.com/ej2)
* [Geremia Taglialatela](https://github.com/tagliala)

View File

@ -1,613 +0,0 @@
# Upgrading Guide
See the [CHANGELOG.md](./CHANGELOG.md) for detailed information about what has changed between versions.
This guide is useful to figure out what you need to do between breaking changes.
As always, [submit issues](https://github.com/FortAwesome/Font-Awesome/issues/new) that you run into with this guide or with these upgrades to us.
---
## 5.15.1 to 5.15.2
There are no breaking changes in this version upgrade.
---
## 5.15.0 to 5.15.1
There are no breaking changes in this version upgrade.
---
## 5.14.0 to 5.15.0
The adobe icon has been removed by legal request of Adobe.
Font Awesome is no longer able to provide any logos or marks for the Adobe
brand or their products.
---
## 5.12.x/5.13.x to 5.14.0
In version 5.12.0 and 5.13.0 some of the icons were assigned unicode values
that were outside the Private Unicode Area (PUA). This caused problems with
some desktop software and caused the icons to show up as Chinese, Japanese, or
Korean (CJK) ideographs.
The unicode values have been re-assigned to values within the PUA range.
If you were using any of the following icons with pseudo-elements you will need
to change the CSS `content` value to the new unicode value.
| Icon name | Old | New |
| ---------------------- | ---- | ---- |
| bacteria | f959 | e059 |
| bacterium | f95a | e05a |
| box-tissue | f95b | e05b |
| caravan-alt | f900 | e000 |
| cat-space | f901 | e001 |
| coffee-pot | f902 | e002 |
| coffin-cross | f951 | e051 |
| comet | f903 | e003 |
| dailymotion | f952 | e052 |
| deezer | f977 | e077 |
| edge-legacy | f978 | e078 |
| fan-table | f904 | e004 |
| faucet | f905 | e005 |
| faucet-drip | f906 | e006 |
| firefox-browser | f907 | e007 |
| folder-download | f953 | e053 |
| folder-upload | f954 | e054 |
| galaxy | f908 | e008 |
| garage | f909 | e009 |
| garage-car | f90a | e00a |
| garage-open | f90b | e00b |
| google-pay | f979 | e079 |
| hand-holding-medical | f95c | e05c |
| hand-sparkles | f95d | e05d |
| hands-wash | f95e | e05e |
| handshake-alt-slash | f95f | e05f |
| handshake-slash | f960 | e060 |
| head-side-cough | f961 | e061 |
| head-side-cough-slash | f962 | e062 |
| head-side-mask | f963 | e063 |
| head-side-virus | f964 | e064 |
| heat | f90c | e00c |
| house | f90d | e00d |
| house-day | f90e | e00e |
| house-leave | f90f | e00f |
| house-night | f910 | e010 |
| house-return | f911 | e011 |
| house-signal | f912 | e012 |
| house-user | f965 | e065 |
| ideal | f913 | e013 |
| instagram-square | f955 | e055 |
| lamp-desk | f914 | e014 |
| lamp-floor | f915 | e015 |
| laptop-house | f966 | e066 |
| light-ceiling | f916 | e016 |
| light-switch | f917 | e017 |
| light-switch-off | f918 | e018 |
| light-switch-on | f919 | e019 |
| lungs-virus | f967 | e067 |
| microblog | f91a | e01a |
| microwave | f91b | e01b |
| mixer | f956 | e056 |
| outlet | f91c | e01c |
| oven | f91d | e01d |
| people-arrows | f968 | e068 |
| pied-piper-square | f91e | e01e |
| plane-slash | f969 | e069 |
| planet-moon | f91f | e01f |
| planet-ringed | f920 | e020 |
| police-box | f921 | e021 |
| portal-enter | f922 | e022 |
| portal-exit | f923 | e023 |
| pump-medical | f96a | e06a |
| pump-soap | f96b | e06b |
| radar | f924 | e024 |
| raygun | f925 | e025 |
| refrigerator | f926 | e026 |
| rocket-launch | f927 | e027 |
| rust | f97a | e07a |
| sensor | f928 | e028 |
| sensor-alert | f929 | e029 |
| sensor-fire | f92a | e02a |
| sensor-on | f92b | e02b |
| sensor-smoke | f92c | e02c |
| shield-virus | f96c | e06c |
| shopify | f957 | e057 |
| sink | f96d | e06d |
| siren | f92d | e02d |
| siren-on | f92e | e02e |
| soap | f96e | e06e |
| solar-system | f92f | e02f |
| sort-circle | f930 | e030 |
| sort-circle-down | f931 | e031 |
| sort-circle-up | f932 | e032 |
| space-station-moon | f933 | e033 |
| space-station-moon-alt | f934 | e034 |
| sprinkler | f935 | e035 |
| star-shooting | f936 | e036 |
| starfighter | f937 | e037 |
| starfighter-alt | f938 | e038 |
| starship | f939 | e039 |
| starship-freighter | f93a | e03a |
| stopwatch-20 | f96f | e06f |
| store-alt-slash | f970 | e070 |
| store-slash | f971 | e071 |
| sword-laser | f93b | e03b |
| sword-laser-alt | f93c | e03c |
| swords-laser | f93d | e03d |
| telescope | f93e | e03e |
| temperature-down | f93f | e03f |
| temperature-up | f940 | e040 |
| tiktok | f97b | e07b |
| toilet-paper-slash | f972 | e072 |
| trailer | f941 | e041 |
| transporter | f942 | e042 |
| transporter-1 | f943 | e043 |
| transporter-2 | f944 | e044 |
| transporter-3 | f945 | e045 |
| transporter-empty | f946 | e046 |
| ufo | f947 | e047 |
| ufo-beam | f948 | e048 |
| unity | f949 | e049 |
| unsplash | f97c | e07c |
| user-alien | f94a | e04a |
| user-robot | f94b | e04b |
| user-unlock | f958 | e058 |
| user-visor | f94c | e04c |
| users-slash | f973 | e073 |
| vacuum | f94d | e04d |
| vacuum-robot | f94e | e04e |
| virus | f974 | e074 |
| virus-slash | f975 | e075 |
| viruses | f976 | e076 |
| window-frame | f94f | e04f |
| window-frame-open | f950 | e050 |
---
## 5.13.0 to 5.13.1
There are no breaking changes in this version upgrade.
---
## 5.12.1 to 5.13.0
There are no breaking changes in this version upgrade.
---
## 5.12.0 to 5.12.1
There are no breaking changes in this version upgrade.
---
## 5.11.2 to 5.12.0
The 9-pointed icon named "haykal" was renamed to "bahai" to better match the
symbol. If you were previously using the misnamed icon rename to "bahai" when
upgrading.
---
## 5.11.1 to 5.11.2
The scanner-image icon was previously using the same unicode value as the scanner icon.
This has now been fixed and the scanner-image icon has a unique unicode value.
The film-canister icon was misspelled as "film-cannister". This has been fixed.
---
## 5.11.0 to 5.11.1
There are no breaking changes in this version upgrade.
---
## 5.10.2 to 5.11.0
There are no breaking changes in this version upgrade.
---
## 5.10.1 to 5.10.2
There are no breaking changes in this version upgrade.
---
## 5.10.0 to 5.10.1
The Sass function `fa-content-secondary` which was part of the `duotone.scss`
file has been removed due to its inconsistent behavior in different versions of
Sass pre-processors. Specifically [`node-sass`](https://github.com/sass/node-sass) and
[`sass`](https://github.com/sass/dart-sass) didn't produce the same output.
---
## 5.9.0 to 5.10.0
The following icon shims have been changed to better match the original version 4 icon:
* sort-alpha-desc
* sort-amount-desc
* sort-numeric-desc
---
## 5.8.2 to 5.9.0
The nintendo-switch icon has been removed by legal request of Nintendo of America Inc.
Font Awesome is no longer able to provide icons related to Nintendo, their
gaming consoles, accessories, or games.
---
## 5.8.1 to 5.8.2
There are no breaking changes in this version upgrade.
---
## 5.8.0 to 5.8.1
There are no breaking changes in this version upgrade.
---
## 5.7.x to 5.8.0
### Removing title elements from SVG sprites
Since the initial release of version 5, all the way back to 5.0.0 actually,
we've included `<title>` elements in the SVG sprites.
In https://github.com/FortAwesome/Font-Awesome/issues/14595 a discussion
outlines that this practice actually prevents normal efforts to make these
sprites accessible according to web accessibility standards.
If you are using sprites please refer to [our documentation on accessibility with Font Awesome](https://fontawesome.com/how-to-use/on-the-web/other-topics/accessibility).
### Removing vertical-align from the .fa-icon Sass mixin
Font Awesome has supported Sass and Less CSS pre-processors for a long time.
The version 5 `.fa-icon` mixin which is present in `scss/_mixins.scss`
previously included `vertical-align` which was incorrectly shifting icons.
If you have used this mixin in your own Sass files you will need to check the
alignment of those icons after upgrading to 5.8.0.
---
## 5.7.1 to 5.7.2
There are no breaking changes in this version upgrade.
---
## 5.7.0 to 5.7.1
The cheeseburger icon incorrectly placed the cheese _under_ the patty. This is unacceptable and we've fixed it.
---
## 5.6.x to 5.7.0
### OTF and TTF files
The PostScript name has been changed from `FontAwesome5ProSolid` to `FontAwesome5Pro-Solid`. This was done to be more compatible with tooling such as XCode.
We've also update the `Version` specifier. Font files only support a MAJOR and MINOR version number so we have modifed our schema. For example, version 5.7.0 of Font Awesome is reflected as 329.472 in the individual font files.
### Icon changes
The calendar-alt icon has been reverted back to the previous design in versions <= 5.6.0.
---
## 5.6.x to 5.6.3
The fire icon has been reverted back to the previous design in versions <= 5.5.0.
We have moved the redesigned icon to fire-alt.
---
## 5.6.0 to 5.6.1
There are no breaking changes in this version upgrade.
---
## 5.5.0 to 5.6.0
In this release we've taken time to re-organize the directory structure to
prevent redundancy and improve findability.
### Directory structure changes
| Old path | New path |
|-----------------------------------|-------------|
| advanced-options/metadata | metadata |
| advanced-options/raw-svg | svgs |
| advanced-options/svg-sprites | sprites |
| advanced-options/use-with-node-js | js-packages |
| svg-with-js/js | js |
| svg-with-js/css | css |
| use-on-desktop | otfs |
| web-fonts-with-css/css | css |
| web-fonts-with-css/less | less |
| web-fonts-with-css/scss | scss |
| web-fonts-with-css/webfonts | webfonts |
---
## 5.4.x to 5.5.0
There are no breaking changes in this version upgrade.
---
## 5.4.0 to 5.4.1
Categories were renamed from:
* Holiday to Halloween
* Seasonal to Autumn
The "wand" icon in version 5.4.0 matched the "wand-magic" icon. The magical
sparkles have been removed for "wand". If you were relying on this decoration
in your design switch to "wand-magic" to bring the magic back.
---
## 5.3.x to 5.4.0
There are no breaking changes in this version upgrade.
---
## 5.3.0 to 5.3.1
The following Pro-only icons were removed from Font Awesome Free as of 5.3.1:
* abacus
* calculator-alt
* empty-set
* function
* integral
* intersection
* lambda
* omega
* pi
* sigma
* signal-alt
* signal-alt-slash
* signal-slash
* square-root
* tally
* theta
* tilde
* union
* value-absolute
* volume
* volume-down
* volume-slash
* wifi-slash
These icons were unintentionally included in 5.3.0.
---
## 5.x.x to 5.3.0
Sass mixin syntax has been updated to address a bug.
Use `@extend %fa-icon` to correctly maintain CSS order in output files.
~~Old way:~~
```
.twitter {
@include fa-icon; /* incorrect */
@extend .fab;
&:before {
content: fa-content($fa-var-twitter);
}
}
```
New way:
```
.twitter {
@extend %fa-icon; /* correct */
@extend .fab;
&:before {
content: fa-content($fa-var-twitter);
}
}
```
---
## 5.1.x to 5.2.x
There are no breaking changes in this version upgrade.
---
## 5.1.0 to 5.1.1
Less and Sass files incorrectly contained the "fa-" prefix for style files.
These files have been renamed to be consistent with other files in the
packages.
If you are using the Less or Sass file styles individually you will need to
correct the names in your builds.
| Old filename | New filename |
| --------------------------- | ------------------------ |
| less/fa-solid.less | less/solid.less |
| less/fa-regular.less | less/regular.less |
| less/fa-light.less | less/light.less |
| less/fa-brands.less | less/brands.less |
| scss/fa-solid.scss | scss/solid.scss |
| scss/fa-regular.scss | scss/regular.scss |
| scss/fa-light.scss | scss/light.scss |
| scss/fa-brands.scss | scss/brands.scss |
---
## 5.0.x to 5.1.0
### New packages available for browser-only integration
**If you were previously using @fortawesome/fontawesome you need to switch to one of the new packages.**
Our Free and Pro CDN provide access to JS, CSS, sprites, and separate SVG files.
We've now made these files conveniently available through NPM.
* [@fortawesome/fontawesome-free](https://www.npmjs.com/package/@fortawesome/fontawesome-free)
* @fortawesome/fontawesome-pro (private package, requires Pro subscription)
If you are familiar with the paths and options available with the CDN these
packages should be familiar.
Information about [Font Awesome Pro subscriptions](https://fontawesome.com/pro)
can be found in your [Font Awesome awesome
account](https://fontawesome.com/account/services).
### Renamed packages
The following packages have been renamed as part of 5.1.0 of Font Awesome.
_All packages are in the [@fortawesome NPM scope](https://www.npmjs.com/search?q=scope:fortawesome&ranking=optimal)_
| Old package(1) | New package |
|---------------------------|------------------------|
| fontawesome-free-webfonts | fontawesome-free |
| fontawesome-pro-webfonts | fontawesome-pro |
| fontawesome-free-solid   | free-solid-svg-icons |
| fontawesome-free-regular | free-regular-svg-icons |
| fontawesome-free-brands   | free-brands-svg-icons |
| fontawesome-pro-solid   | pro-solid-svg-icons |
| fontawesome-pro-regular   | pro-regular-svg-icons |
| fontawesome-pro-light   | pro-light-svg-icons |
(1) Old packages have now been deprecated. They are still available but will only receive high priority patch release fixes.
**You'll need to update your package.json file with the renamed packages and new versions.**
### No more default imports
Recently we spent a good deal of time supporting TypeScript to enable us to
create the Angular Font Awesome component. During that adventure we
[were](https://basarat.gitbooks.io/typescript/docs/tips/defaultIsBad.html)
[convinced](https://blog.neufund.org/why-we-have-banned-default-exports-and-you-should-do-the-same-d51fdc2cf2ad)
that we were going to remove default exports from all of our components,
libraries, and packages. This is complete with the umbrella release of `5.1.0` of Font Awesome.
What does that mean?
~~Old way:~~
```javascript
import fontawesome from '@fortawesome/fontawesome'
import solid from '@fortawesome/fontawesome-free-solid'
import faTwitter from '@fortawesome/fontawesome-free-brands/faTwitter'
import FontAwesomeIcon from '@fortawesome/vue-fontawesome'
library.add(solid, faTwitter)
```
New way:
```javascript
import { library, dom } from '@fortawesome/fontawesome-svg-core'
import { fas } from '@fortawesome/free-solid-svg-icons'
import { faTwitter } from '@fortawesome/free-brands-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
library.add(fas, faTwitter)
// Kicks off the process of finding <i> tags and replacing with <svg>
dom.watch()
```
This is also a valid way to import icons that works if your tool does not support tree shaking:
```javascript
import { faTwitter } from '@fortawesome/free-brands-svg-icons/faTwitter'
```
### Improved support for tree shaking
Tree shaking is now functional by default and no additional configuration is required to make it work.
The `shakable.es.js` module has been removed and is no longer needed.
If you've previously configured tree shaking by modifying your webpack or rollup you can safely remove these.
**We recommend that you check your bundle size after upgrading an ensure that file sizes are as you would expect.**
```javascript
module.exports = {
// ...
resolve: {
alias: {
'@fortawesome/fontawesome-free-solid$': '@fortawesome/fontawesome-free-solid/shakable.es.js'
}
}
}
```
```javascript
const alias = require('rollup-plugin-alias')
rollup({
// ...
plugins: [
alias({
'@fortawesome/fontawesome-free-solid': 'node_modules/@fortawesome/fontawesome-free-solid/shakable.es.js'
})
]
})
```
---
## 5.0.11 to 5.0.12
Due to a collision with the "r" glyph the R Project brand icon has been renamed to `r-project`.
---
## 5.0.x to 5.0.6
### SVG Attribute was changed from data-fa-processed to data-fa-i2svg
As part of a bug fix for the release of 5.0.6 we renamed an attribute that was found on `<svg>` elements from
`data-fa-processed` to `data-fa-i2svg`. We feel this more accurately reflects the intent and purpose.
This attribute is added to any icon that has been generated using `fontawesome.dom.i2svg()`.
Be aware that `data-fa-i2svg` (or `data-fa-processed`) will no longer be present on icons that are created using
`fontawesome.icon()`.
If you've written and DOM queries that rely on `data-fa-processed` you should get things working again by doing a
simple find and replace.

View File

@ -1,47 +0,0 @@
{
"name": "fortawesome/font-awesome",
"description": "The iconic font, CSS, and SVG framework",
"keywords": ["font", "awesome", "fontawesome", "icon", "svg", "font", "bootstrap"],
"homepage": "https://fontawesome.com",
"authors": [
{
"name": "Travis Chase",
"homepage": "http://twitter.com/supercodepoet"
},
{
"name": "Dave Gandy",
"homepage": "http://twitter.com/davegandy"
},
{
"name": "Rob Madole",
"homepage": "http://twitter.com/robmadole"
},
{
"name": "Jory Raphael",
"homepage": "http://twitter.com/sensibleworld"
},
{
"name": "Geremia Taglialatela",
"homepage": "http://twitter.com/gtagliala"
},
{
"name": "Brian Talbot",
"homepage": "http://twitter.com/talbs"
},
{
"name": "Mike Wilkerson",
"homepage": "http://twitter.com/mw77"
}
],
"support": {
"email": "hello@fontawesome.com",
"issues": "https://github.com/FortAwesome/Font-Awesome/issues",
"source": "https://github.com/FortAwesome/Font-Awesome",
"docs": "http://fontawesome.com/how-to-use"
},
"license": [
"CC-BY-4.0",
"OFL-1.1",
"MIT"
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,15 +0,0 @@
/*!
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: 400;
font-display: block;
src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
.fab {
font-family: 'Font Awesome 5 Brands';
font-weight: 400; }

View File

@ -1,5 +0,0 @@
/*!
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,15 +0,0 @@
/*!
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 400;
font-display: block;
src: url("../webfonts/fa-regular-400.eot");
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
.far {
font-family: 'Font Awesome 5 Free';
font-weight: 400; }

View File

@ -1,5 +0,0 @@
/*!
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}

View File

@ -1,16 +0,0 @@
/*!
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 900;
font-display: block;
src: url("../webfonts/fa-solid-900.eot");
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
.fa,
.fas {
font-family: 'Font Awesome 5 Free';
font-weight: 900; }

View File

@ -1,5 +0,0 @@
/*!
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}

View File

@ -1,371 +0,0 @@
/*!
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
svg:not(:root).svg-inline--fa {
overflow: visible; }
.svg-inline--fa {
display: inline-block;
font-size: inherit;
height: 1em;
overflow: visible;
vertical-align: -.125em; }
.svg-inline--fa.fa-lg {
vertical-align: -.225em; }
.svg-inline--fa.fa-w-1 {
width: 0.0625em; }
.svg-inline--fa.fa-w-2 {
width: 0.125em; }
.svg-inline--fa.fa-w-3 {
width: 0.1875em; }
.svg-inline--fa.fa-w-4 {
width: 0.25em; }
.svg-inline--fa.fa-w-5 {
width: 0.3125em; }
.svg-inline--fa.fa-w-6 {
width: 0.375em; }
.svg-inline--fa.fa-w-7 {
width: 0.4375em; }
.svg-inline--fa.fa-w-8 {
width: 0.5em; }
.svg-inline--fa.fa-w-9 {
width: 0.5625em; }
.svg-inline--fa.fa-w-10 {
width: 0.625em; }
.svg-inline--fa.fa-w-11 {
width: 0.6875em; }
.svg-inline--fa.fa-w-12 {
width: 0.75em; }
.svg-inline--fa.fa-w-13 {
width: 0.8125em; }
.svg-inline--fa.fa-w-14 {
width: 0.875em; }
.svg-inline--fa.fa-w-15 {
width: 0.9375em; }
.svg-inline--fa.fa-w-16 {
width: 1em; }
.svg-inline--fa.fa-w-17 {
width: 1.0625em; }
.svg-inline--fa.fa-w-18 {
width: 1.125em; }
.svg-inline--fa.fa-w-19 {
width: 1.1875em; }
.svg-inline--fa.fa-w-20 {
width: 1.25em; }
.svg-inline--fa.fa-pull-left {
margin-right: .3em;
width: auto; }
.svg-inline--fa.fa-pull-right {
margin-left: .3em;
width: auto; }
.svg-inline--fa.fa-border {
height: 1.5em; }
.svg-inline--fa.fa-li {
width: 2em; }
.svg-inline--fa.fa-fw {
width: 1.25em; }
.fa-layers svg.svg-inline--fa {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0; }
.fa-layers {
display: inline-block;
height: 1em;
position: relative;
text-align: center;
vertical-align: -.125em;
width: 1em; }
.fa-layers svg.svg-inline--fa {
-webkit-transform-origin: center center;
transform-origin: center center; }
.fa-layers-text, .fa-layers-counter {
display: inline-block;
position: absolute;
text-align: center; }
.fa-layers-text {
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-transform-origin: center center;
transform-origin: center center; }
.fa-layers-counter {
background-color: #ff253a;
border-radius: 1em;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: #fff;
height: 1.5em;
line-height: 1;
max-width: 5em;
min-width: 1.5em;
overflow: hidden;
padding: .25em;
right: 0;
text-overflow: ellipsis;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top right;
transform-origin: top right; }
.fa-layers-bottom-right {
bottom: 0;
right: 0;
top: auto;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: bottom right;
transform-origin: bottom right; }
.fa-layers-bottom-left {
bottom: 0;
left: 0;
right: auto;
top: auto;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: bottom left;
transform-origin: bottom left; }
.fa-layers-top-right {
right: 0;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top right;
transform-origin: top right; }
.fa-layers-top-left {
left: 0;
right: auto;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top left;
transform-origin: top left; }
.fa-lg {
font-size: 1.33333em;
line-height: 0.75em;
vertical-align: -.0667em; }
.fa-xs {
font-size: .75em; }
.fa-sm {
font-size: .875em; }
.fa-1x {
font-size: 1em; }
.fa-2x {
font-size: 2em; }
.fa-3x {
font-size: 3em; }
.fa-4x {
font-size: 4em; }
.fa-5x {
font-size: 5em; }
.fa-6x {
font-size: 6em; }
.fa-7x {
font-size: 7em; }
.fa-8x {
font-size: 8em; }
.fa-9x {
font-size: 9em; }
.fa-10x {
font-size: 10em; }
.fa-fw {
text-align: center;
width: 1.25em; }
.fa-ul {
list-style-type: none;
margin-left: 2.5em;
padding-left: 0; }
.fa-ul > li {
position: relative; }
.fa-li {
left: -2em;
position: absolute;
text-align: center;
width: 2em;
line-height: inherit; }
.fa-border {
border: solid 0.08em #eee;
border-radius: .1em;
padding: .2em .25em .15em; }
.fa-pull-left {
float: left; }
.fa-pull-right {
float: right; }
.fa.fa-pull-left,
.fas.fa-pull-left,
.far.fa-pull-left,
.fal.fa-pull-left,
.fab.fa-pull-left {
margin-right: .3em; }
.fa.fa-pull-right,
.fas.fa-pull-right,
.far.fa-pull-right,
.fal.fa-pull-right,
.fab.fa-pull-right {
margin-left: .3em; }
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear; }
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8); }
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
.fa-rotate-90 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
-webkit-transform: rotate(90deg);
transform: rotate(90deg); }
.fa-rotate-180 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
-webkit-transform: rotate(180deg);
transform: rotate(180deg); }
.fa-rotate-270 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
-webkit-transform: rotate(270deg);
transform: rotate(270deg); }
.fa-flip-horizontal {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1); }
.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none;
filter: none; }
.fa-stack {
display: inline-block;
height: 2em;
position: relative;
width: 2.5em; }
.fa-stack-1x,
.fa-stack-2x {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0; }
.svg-inline--fa.fa-stack-1x {
height: 1em;
width: 1.25em; }
.svg-inline--fa.fa-stack-2x {
height: 2em;
width: 2.5em; }
.fa-inverse {
color: #fff; }
.sr-only {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px; }
.sr-only-focusable:active, .sr-only-focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto; }
.svg-inline--fa .fa-primary {
fill: var(--fa-primary-color, currentColor);
opacity: 1;
opacity: var(--fa-primary-opacity, 1); }
.svg-inline--fa .fa-secondary {
fill: var(--fa-secondary-color, currentColor);
opacity: 0.4;
opacity: var(--fa-secondary-opacity, 0.4); }
.svg-inline--fa.fa-swap-opacity .fa-primary {
opacity: 0.4;
opacity: var(--fa-secondary-opacity, 0.4); }
.svg-inline--fa.fa-swap-opacity .fa-secondary {
opacity: 1;
opacity: var(--fa-primary-opacity, 1); }
.svg-inline--fa mask .fa-primary,
.svg-inline--fa mask .fa-secondary {
fill: black; }
.fad.fa-inverse {
color: #fff; }

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,34 +0,0 @@
Font Awesome Free License
-------------------------
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
Full Font Awesome Free license: https://fontawesome.com/license/free.
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
# Code: MIT License (https://opensource.org/licenses/MIT)
In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
# Attribution
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn't need to do anything additional when using these
files normally.
We've kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They're a great way for folks to
learn about Font Awesome.
# Brand Icons
All brand icons are trademarks of their respective owners. The use of these
trademarks does not indicate endorsement of the trademark holder by Font
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
to represent the company, product, or service to which they refer.**

View File

@ -1,27 +0,0 @@
# @fortawesome/fontawesome-common-types - SVG with JavaScript
> "I came here to chew bubblegum and install Font Awesome 5 - and I'm all out of bubblegum"
[![npm](https://img.shields.io/npm/v/@fortawesome/fontawesome-common-types.svg?style=flat-square)](https://www.npmjs.com/package/@fortawesome/fontawesome-common-types)
## What is this package?
Font Awesome 5 JavaScript packages support TypeScript. This package abstracts out some of the common definitions that those packages use.
## Here be dragons
If you are trying to import types from this package we *highly* recommend you do the following instead as *all types in this package are re-exported to the main fontawesome package*.
your.ts
```
import {
IconName
} from `@fortawesome/fontawesome-svg-core`
const myIcon: IconName = "..."
```
## Issues and support
Start with [GitHub issues](https://github.com/FortAwesome/Font-Awesome/issues) and ping us on [Twitter](https://twitter.com/fontawesome) if you need to.

View File

@ -1,3 +0,0 @@
console.log(`Font Awesome Free 0.2.34 by @fontawesome - https://fontawesome.com
License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
`)

View File

@ -1,57 +0,0 @@
{
"description": "The iconic font, CSS, and SVG framework",
"keywords": [
"font",
"awesome",
"fontawesome",
"icon",
"svg",
"bootstrap"
],
"homepage": "https://fontawesome.com",
"bugs": {
"url": "http://github.com/FortAwesome/Font-Awesome/issues"
},
"author": {
"name": "Dave Gandy",
"email": "dave@fontawesome.com",
"web": "http://twitter.com/davegandy"
},
"contributors": [
{
"name": "Brian Talbot",
"web": "http://twitter.com/talbs"
},
{
"name": "Travis Chase",
"web": "http://twitter.com/supercodepoet"
},
{
"name": "Rob Madole",
"web": "http://twitter.com/robmadole"
},
{
"name": "Geremia Taglialatela",
"web": "http://twitter.com/gtagliala"
},
{
"name": "Mike Wilkerson",
"web": "http://twitter.com/mw77"
}
],
"repository": {
"type": "git",
"url": "https://github.com/FortAwesome/Font-Awesome"
},
"engines": {
"node": ">=6"
},
"dependencies": {},
"version": "0.2.34",
"name": "@fortawesome/fontawesome-common-types",
"license": "MIT",
"types": "./index.d.ts",
"scripts": {
"postinstall": "node attribution.js"
}
}

View File

@ -1,34 +0,0 @@
Font Awesome Free License
-------------------------
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
Full Font Awesome Free license: https://fontawesome.com/license/free.
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
# Code: MIT License (https://opensource.org/licenses/MIT)
In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
# Attribution
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn't need to do anything additional when using these
files normally.
We've kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They're a great way for folks to
learn about Font Awesome.
# Brand Icons
All brand icons are trademarks of their respective owners. The use of these
trademarks does not indicate endorsement of the trademark holder by Font
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
to represent the company, product, or service to which they refer.**

View File

@ -1,38 +0,0 @@
# @fortawesome/fontawesome-free - The Official Font Awesome 5 NPM package
> "I came here to chew bubblegum and install Font Awesome 5 - and I'm all out of bubblegum"
[![npm](https://img.shields.io/npm/v/@fortawesome/fontawesome-free.svg?style=flat-square)](https://www.npmjs.com/package/@fortawesome/fontawesome-free)
## Installation
```
$ npm i --save @fortawesome/fontawesome-free
```
Or
```
$ yarn add @fortawesome/fontawesome-free
```
## What's included?
**This package includes all the same files available through our Free and Pro CDN.**
* /js - All JavaScript files associated with Font Awesome 5 SVG with JS
* /css - All CSS using the classic Web Fonts with CSS implementation
* /sprites - SVG icons packaged in a convenient sprite
* /scss, /less - CSS Pre-processor files for Web Fonts with CSS
* /webfonts - Accompanying files for Web Fonts with CSS
* /svg - Individual icon files in SVG format
## Documentation
Get started [here](https://fontawesome.com/get-started). Continue your journey [here](https://fontawesome.com/how-to-use).
Or go straight to the [API documentation](https://fontawesome.com/how-to-use/with-the-api).
## Issues and support
Start with [GitHub issues](https://github.com/FortAwesome/Font-Awesome/issues) and ping us on [Twitter](https://twitter.com/fontawesome) if you need to.

Some files were not shown because too many files have changed in this diff Show More