diff --git a/.github/workflows/integ-tests.yml b/.github/workflows/integ-tests.yml index 82825ed7d..2d1b42dc3 100644 --- a/.github/workflows/integ-tests.yml +++ b/.github/workflows/integ-tests.yml @@ -5,12 +5,12 @@ name: integration tests on: push: - branches: [ master, release-1.3.5 ] + branches: [ master ] pull_request: - branches: [ master, release-1.3.5 ] + branches: [ master ] workflow_dispatch: inputs: - branches: [ master, release-1.3.5 ] + branches: [ master] jobs: diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 77fc85ca3..1c16e169c 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -1,6 +1,8 @@ name: build -on: [push] +on: + push: + branches-ignore: jobs: build: diff --git a/README.md b/README.md index d17ea1fd5..008409aea 100644 --- a/README.md +++ b/README.md @@ -7,19 +7,19 @@ Timeseries big data analytics tools - ## User Please find the code/documentation for your version : +* [release v1.3.9](https://github.com/Hurence/historian/tree/v1.3.9) * [release v1.3.6](https://github.com/Hurence/historian/tree/v1.3.6) * [release v1.3.5](https://github.com/Hurence/historian/tree/v1.3.5) -the user guide can be read in [https://github.com/Hurence/historian/tree/master/docs/generated-docs/pdf/en/userguide.pdf](https://github.com/Hurence/historian/tree/master/docs/generated-docs/pdf/en/userguide.pdf) +the user guide can be read in [https://hurence.github.io/historian/](https://hurence.github.io/historian/) ## Development -Please see our documentation [here](DEVELOPMENT.md) +Please see our documentation [here](docs/developer-guide.md) ## Build Build with maven through a JDK 8+ diff --git a/assembly/pom.xml b/assembly/pom.xml index c57efb214..0cf4258ea 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -5,7 +5,7 @@ historian com.hurence.historian - 1.3.8 + 1.3.9 4.0.0 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..eb6a39bac --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,42 @@ +version: '2' +services: + solrnode1: + image: docker.io/bitnami/solr:8 + environment: + - SOLR_ENABLE_CLOUD_MODE=yes + - SOLR_CLOUD_BOOTSTRAP=yes + - SOLR_NUMBER_OF_NODES=1 + - SOLR_ZK_HOSTS=zk1:2181 + - SOLR_HOST=solrnode1 + - SOLR_ENABLE_AUTHENTICATION=no + ports: + - '8983:8983' + volumes: + - 'solr_data:/bitnami/solr' + zk1: + image: docker.io/bitnami/zookeeper:3.7 + ports: + - '2181' + volumes: + - zookeeper_data:/bitnami + environment: + - ZOO_SERVER_ID=1 + - ALLOW_ANONYMOUS_LOGIN=yes + - ZOO_SERVERS=zk1:2888:3888 + - ZOO_4LW_COMMANDS_WHITELIST=srvr,mntr,conf,ruok + grafana: + image: docker.io/bitnami/grafana:8 + ports: + - '3000:3000' + environment: + - 'GF_SECURITY_ADMIN_PASSWORD=bitnami' + volumes: + - grafana_data:/opt/bitnami/grafana/data + +volumes: + solr_data: + driver: local + zookeeper_data: + driver: local + grafana_data: + driver: local \ No newline at end of file diff --git a/docs/404.html b/docs/404.html new file mode 100755 index 000000000..f756ee68b --- /dev/null +++ b/docs/404.html @@ -0,0 +1,10 @@ +--- +layout: default +--- + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100755 index 000000000..fb6044c82 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,85 @@ +# Contributing to this project + +* [Contributors Agreement](#user-content-contributors-agreement) +* [Introduction](#Introduction) + * [I don't want to read this whole thing I just have a question!!!](#user-content-i-dont-want-to-read-this-whole-thing-i-just-have-a-question) +* [How Can I Contribute?](#user-content-how-can-i-contribute) + * [Reporting Bugs](#user-content-reporting-bugs) + * [Suggesting Enhancements](#user-content-suggesting-enhancements) + * [Creating Pull Requests](#user-content-creating-pull-requests) + +## Contributors Agreement + +By submitting patches to this project you agree to allow them to be redistributed under the project's license, according to the normal forms and usages of the open-source community. + +## Introduction + +First off, thank you for considering contributing to this project. It's people like you that make it such a great tool. + +Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. + +This is an open source project and we love to receive contributions from our community — you! There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into the main project itself. + +### I don't want to read this whole thing I just have a question!!! + +We currently allow our users to use the issue tracker for support questions. But please be wary that maintaining an open source project can take a lot of time from the maintainers. If asking for a support question, state it clearly and take the time to explain your problem properly. Also, if your problem is not strictly related to this project we recommend you to use Stack Overlow instead. + +## How Can I Contribute? + +### Reporting Bugs + +Before creating bug reports, please check the existing bug reports as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible. + +#### How Do I Submit A (Good) Bug Report? + +Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on the project's repository and provide the following information. + +Explain the problem and include additional details to help maintainers reproduce the problem: + +* **Use a clear and descriptive title** for the issue to identify the problem. +* **Describe the exact steps which reproduce the problem** in as many details as possible. For example, start by explaining how you used the project. When listing steps, **don't just say what you did, but explain how you did it**. +* **Provide specific examples to demonstrate the steps**. It's always better to get more information. You can include links to files or GitHub projects, copy/pasteable snippets or even print screens or animated GIFS. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). +* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. +* **Explain which behavior you expected to see instead and why.** +* **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below. + +Provide more context by answering these questions: + +* **Did the problem start happening recently** (e.g. after updating to a new version) or was this always a problem? +* If the problem started happening recently, **can you reproduce the problem in an older version?** What's the most recent version in which the problem doesn't happen? +* **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens. + +Include details about your configuration and environment: + +* **Which version of the project are you using?** +* **What's the name and version of the OS you're using**? +* **Any other information that could be useful about you environment** + +### Suggesting Enhancements + +This section guides you through submitting an enhancement suggestion for this project, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions. + +Before creating enhancement suggestions, please check the list of enhancements suggestions in the issue tracker as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please include as many details as possible. + +#### How Do I Submit A (Good) Enhancement Suggestion? + +Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on the project's repository and provide the following information: + +* **Use a clear and descriptive title** for the issue to identify the suggestion. +* **Provide a step-by-step description of the suggested enhancement** in as many details as possible. +* **Provide specific examples to demonstrate the steps**. It's always better to get more information. You can include links to files or GitHub projects, copy/pasteable snippets or even print screens or animated GIFS. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). +* **Describe the current behavior** and **explain which behavior you expected to see instead** and why. +* **List some other similar projects where this enhancement exists.** +* **Specify which version of the project you're using.** +* **Specify the current environment you're using.** if this is a useful information. + +### Creating Pull Requests + +#### How Do I Submit A (Good) Pull Request? + +* **Be warned that the contributors agreement displayed on top of this document is applicable as soon as you create a pull request**. +* **Use a clear and descriptive title** for the pull request to state the improvement you made to the code or the bug you solved. +* **Provide a link to the related issue** if the pull request is a follow up of an existing bug report or enhancement suggestion. +* **Comment why this pull request represents an enhancement** and give a rationale explaining why you did it that way and not another way. +* **Use the same coding style than the one used in this project**. +* **Welcome suggestions from the maintainers to improve your pull request**. diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100755 index 000000000..25ff3efe1 --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,16 @@ +source "https://rubygems.org" + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +#gem "jekyll", "~> 3.7.3" + + +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +gem "github-pages", group: :jekyll_plugins diff --git a/docs/LICENSE.md b/docs/LICENSE.md new file mode 100755 index 000000000..d28231d06 --- /dev/null +++ b/docs/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Nicolas Vanhoren + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/docs/README.md b/docs/README.md old mode 100644 new mode 100755 index 3706678f1..cc976397b --- a/docs/README.md +++ b/docs/README.md @@ -1,24 +1,19 @@ -Building the documentation is simple. You must be in the docs folder and launch the maven process using this command: -``mvn process-resources`` +# Boostrap 4 Github Pages -Currently only the french and english documentation are built. +A [Bootstrap 4](https://getbootstrap.com/) template project for [Github Pages](https://pages.github.com/) and [Jekyll](https://jekyllrb.com/). -The process for editing is the following: the userguide is edited in asciidoc in all supported languages in a -sub-directory corresponding to the language locale. Asciidoctor processors are then used to take the asciidoc -files and generate the other formats. The maven process generates html5 and pdf versions at the moment. -Future versions will support other languages than French as well as the DocBook and EPub formats. +* A full Bootstrap 4 theme usable both on Github Pages and with a standalone Jekyll. +* Recompiles Bootstrap from SCSS files, which allows to customize Bootstrap's variables and use Bootstrap themes. +* Full support of Bootstrap's JavaScript plugins. +* Supports all features of Github Pages and Jekyll. -# Dev +[See the website for demonstration and documentation](https://nicolas-van.github.io/bootstrap-4-github-pages/). -If you are editing the doc and want to test if its work, you can run only your doc generation with this command +## Contribution -```shell script -mvn clean :@ -``` +[See the contribution guide.](CONTRIBUTING.md) -For example if you want to only generate the french user guide in pdf I would execute +## License -```shell script -mvn clean asciidoctor:process-asciidoc@fr-usermanual-to-pdf -``` +[See the license file.](LICENSE.md) diff --git a/docs/_config.yml b/docs/_config.yml old mode 100644 new mode 100755 index 19d134aac..cb6898cad --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,8 +1,46 @@ -theme: jekyll-theme-cayman -title: Hurence Data Historian -description: big data timeseries storage and analytics -show_downloads: "true" -google_analytics: [Your Google Analytics tracking ID] -github: - zip_url: http://example.com/download.zip - hurence_url: http://www.hurence.com +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole blog, values +# which you are expected to set up once and rarely edit after that. If you find +# yourself editing this file very often, consider using Jekyll's data files +# feature for the data you need to update frequently. +# +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'bundle exec jekyll serve'. If you change this file, please restart the server process. + +# Site settings +# These are used to personalize your new site. If you look in the HTML files, +# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. +# You can create any custom variable you would like, and they will be accessible +# in the templates via {{ site.myvariable }}. +title: Hurence Historian +email: "" +description: >- # this means to ignore newlines until "baseurl:" + Main documentation +#baseurl: "" # the subpath of your site, e.g. /blog +#url: "" # the base hostname & protocol for your site, e.g. http://example.com +#twitter_username: jekyllrb +#github_username: jekyll + +repository: "hurence/historian" + +# Build settings +plugins: + - jekyll-feed + - jekyll-sitemap + +# A list of the pages to display in the navigation bar +header_pages: + - features + - getting-started + +# Exclude from processing. +# The following items will not be processed, by default. Create a custom list +# to override the default setting. +exclude: + - Gemfile + - Gemfile.lock + - node_modules + - update_boostrap.sh + +theme: jekyll-theme-minimal \ No newline at end of file diff --git a/docs/_data/members.csv b/docs/_data/members.csv new file mode 100644 index 000000000..c0ac8c942 --- /dev/null +++ b/docs/_data/members.csv @@ -0,0 +1,4 @@ +name,github +Eric Mill,konklone +Parker Moore,parkr +Liu Fengyun,liufengyun \ No newline at end of file diff --git a/docs/_data/pages.yml b/docs/_data/pages.yml new file mode 100644 index 000000000..dfb59535d --- /dev/null +++ b/docs/_data/pages.yml @@ -0,0 +1,53 @@ +toc: + - title: Introduction + subfolderitems: + - page: Features + content: what do we mean by “Industrial Data Management System” ? + url: features + - page: Concepts + content: core entities for manipulating time series and chunks + url: concepts + - page: Architecture + content: all the building blocks of that framework + url: architecture + - page: Data Model + content: to dive deeper into the concepts and the object model. + url: data-model + - page: PromQL dialect + content: to interact with the data + url: promql + - page: REST api + content: query historian with http calls + url: api + - title: Tutorials + subfolderitems: + - page: Getting started + content: the first link to click if you want to play right now + url: tutorials/getting-started + - page: Big Data api with Spark + url: tutorials/spark-api + content: different ways to feed historian with data + - page: Timeseries clustering + url: tutorials/clustering + content: find anomalies with tie series clustering (keans over mllib) + - page: Data visualisation + url: tutorials/data-viz + content: how to use grafana to get visual insights + # - page: Alerting on prediction + # url: data-prediction + # content: how to generate grafana alerts based on predictions + # - page: Data mining with python + # url: py-data-mining + # content: let's play with pandas, scikit and other py toys + - title: Operational + subfolderitems: + - page: Run on kube + content: learn how to use Helm to easily deploy on Kubernetes + url: kube-setup + # - page: Monitoring + # content: how do we monitor our Smart Historian + # url: monitoring + - page: Developer guide + content: everything about building, test and extending the framework + url: developer-guide + diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html new file mode 100755 index 000000000..c8d029d4c --- /dev/null +++ b/docs/_includes/footer.html @@ -0,0 +1,43 @@ + +
+
+ +

{{ site.title | escape }}

+ +
+ +
+
    +
  • + {%- if site.author -%} + {{ site.author | escape }} + {%- else -%} + {{ site.title | escape }} + {%- endif -%} +
  • + {%- if site.email -%} +
  • + + {{ site.email }} + +
  • + {%- endif -%} +
+
+ + +
+

{{- site.description | escape -}}

+ +

+ Powered by hurence +

+

+ GitHub Repo stars +

+

+ +
+ +
+
diff --git a/docs/_includes/head.html b/docs/_includes/head.html new file mode 100755 index 000000000..1a800fbb6 --- /dev/null +++ b/docs/_includes/head.html @@ -0,0 +1,10 @@ + + + + + {%- seo -%} + + {%- feed_meta -%} + + + diff --git a/docs/_includes/header.html b/docs/_includes/header.html new file mode 100755 index 000000000..203d0ace9 --- /dev/null +++ b/docs/_includes/header.html @@ -0,0 +1,73 @@ + + + + + diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html new file mode 100755 index 000000000..d1e2f6282 --- /dev/null +++ b/docs/_layouts/default.html @@ -0,0 +1,20 @@ + + + + {%- include head.html -%} + + + + {%- include header.html -%} + +
+
+ {{ content }} +
+
+ + {%- include footer.html -%} + + + + diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html new file mode 100755 index 000000000..f3867cdf8 --- /dev/null +++ b/docs/_layouts/home.html @@ -0,0 +1,46 @@ +--- +layout: default +--- + +
+ + {%- if page.title -%} +
+

{{ page.title }} !!

+
+ {%- endif -%} + +
+ {{ content }} +
+ + + + + + + {%- if site.posts.size > 0 -%} +

{{ page.list_title | default: "Posts" }}

+
    + {%- for post in site.posts -%} +
  • + + {%- assign date_format = "%b %-d, %Y" -%} + {{ post.date | date: date_format }} + +

    + + {{ post.title | escape }} + +

    + {%- if site.show_excerpts -%} + {{ post.excerpt }} + {%- endif -%} +
  • + {%- endfor -%} +
+ +

subscribe via RSS

+ {%- endif -%} + +
diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html new file mode 100755 index 000000000..94cbc6680 --- /dev/null +++ b/docs/_layouts/page.html @@ -0,0 +1,14 @@ +--- +layout: default +--- +
+ +
+

{{ page.title | escape }}

+
+ +
+ {{ content }} +
+ +
diff --git a/docs/_layouts/post.html b/docs/_layouts/post.html new file mode 100755 index 000000000..77ae73e80 --- /dev/null +++ b/docs/_layouts/post.html @@ -0,0 +1,23 @@ +--- +layout: default +--- +
+ +
+

{{ page.title | escape }}

+

+ + {%- if page.author -%} + • {{ page.author }} + {%- endif -%} +

+
+ +
+ {{ content }} +
+ +
diff --git a/docs/_sass/_bootstrap_customization.scss b/docs/_sass/_bootstrap_customization.scss new file mode 100755 index 000000000..85d77dc16 --- /dev/null +++ b/docs/_sass/_bootstrap_customization.scss @@ -0,0 +1,330 @@ +// This is the place to place Bootstrap-related CSS customizations. +// As example you can start by importing the _bootswatch.scss file from one of the +// theme provided by https://bootswatch.com . + +// Minty 4.3.1 +// Bootswatch + +// Variables =================================================================== + +$web-font-path: "https://fonts.googleapis.com/css?family=Montserrat" !default; +@import url($web-font-path); + +// Navbar ====================================================================== + +.navbar { + font-family: $headings-font-family; +} + +.bg-dark { + background-color: $secondary !important; +} + +.border-dark { + border-color: $secondary !important; +} + +// Buttons ===================================================================== + +.btn { + font-family: $headings-font-family; + + &, + &:hover { + color: $white; + } + + &-light, + &-light:hover { + color: $gray-700; + } + + &-link, + &-link:hover { + color: $primary; + } + + &-link.disabled:hover { + color: $gray-600; + } + + &-outline-primary { + color: $primary; + } + + &-outline-secondary { + color: $secondary; + } + + &-outline-success { + color: $success; + } + + &-outline-info { + color: $info; + } + + &-outline-warning { + color: $warning; + } + + &-outline-danger { + color: $danger; + } + + &-outline-dark { + color: $dark; + } + + &-outline-light { + color: $light; + } +} + +// Typography ================================================================== +h4{ + margin-top: 0.5rem; +} +// Tables ====================================================================== + +.table { + + &-primary, + &-secondary, + &-success, + &-info, + &-warning, + &-danger { + color: #fff; + } + + &-primary { + &, > th, > td { + background-color: $primary; + } + } + + &-secondary { + &, > th, > td { + background-color: $secondary; + } + } + + &-light { + &, > th, > td { + background-color: $light; + } + } + + &-dark { + &, > th, > td { + background-color: $dark; + } + } + + &-success { + &, > th, > td { + background-color: $success; + } + } + + &-info { + &, > th, > td { + background-color: $info; + } + } + + &-danger { + &, > th, > td { + background-color: $danger; + } + } + + &-warning { + &, > th, > td { + background-color: $warning; + } + } + + &-active { + &, > th, > td { + background-color: $table-active-bg; + } + } + + &-hover { + + .table-primary:hover { + &, > th, > td { + background-color: darken($primary, 5%); + } + } + + .table-secondary:hover { + &, > th, > td { + background-color: darken($secondary, 5%); + } + } + + .table-light:hover { + &, > th, > td { + background-color: darken($light, 5%); + } + } + + .table-dark:hover { + &, > th, > td { + background-color: darken($dark, 5%); + } + } + + .table-success:hover { + &, > th, > td { + background-color: darken($success, 5%); + } + } + + .table-info:hover { + &, > th, > td { + background-color: darken($info, 5%); + } + } + + .table-danger:hover { + &, > th, > td { + background-color: darken($danger, 5%); + } + } + + .table-warning:hover { + &, > th, > td { + background-color: darken($warning, 5%); + } + } + + .table-active:hover { + &, > th, > td { + background-color: $table-active-bg; + } + } + } + + .thead-dark th { + background-color: $primary; + border-color: $table-border-color; + font-family: $headings-font-family; + } +} + +// Forms ======================================================================= + +legend { + font-family: $headings-font-family; +} + +// Navs ======================================================================== + +.dropdown-menu { + font-family: $font-family-sans-serif; +} + +.breadcrumb { + a { + color: $navbar-dark-color; + } + + a:hover { + color: $white; + text-decoration: none; + } +} + +// Indicators ================================================================== + +.alert { + color: $white; + + h1, h2, h3, h4, h5, h6 { + color: inherit; + } + + a, + .alert-link { + color: $white; + } + + &-primary { + &, > th, > td { + background-color: $primary; + } + } + + &-secondary { + &, > th, > td { + background-color: $secondary; + } + } + + &-success { + &, > th, > td { + background-color: $success; + } + } + + &-info { + &, > th, > td { + background-color: $info; + } + } + + &-danger { + &, > th, > td { + background-color: $danger; + } + } + + &-warning { + &, > th, > td { + background-color: $warning; + } + } + + &-dark { + &, > th, > td { + background-color: $dark; + } + } + + &-light { + &, > th, > td { + background-color: $light; + } + } + + &-light { + &, + & a:not(.btn), + & .alert-link { + color: $body-color; + } + } +} + +.badge { + color: $white; + + &-light { + color: $gray-700; + } +} + +// Progress bars =============================================================== + +// Containers ================================================================== + +.card, +.list-group-item { + h1, h2, h3, h4, h5, h6 { + color: inherit; + } +} \ No newline at end of file diff --git a/docs/_sass/_syntax-highlighting.scss b/docs/_sass/_syntax-highlighting.scss new file mode 100755 index 000000000..cdd5f842b --- /dev/null +++ b/docs/_sass/_syntax-highlighting.scss @@ -0,0 +1,74 @@ +// Syntax highlighting styles, can be modified to match the theme + + +.highlight { + + color: #111; + + pre { + margin-bottom: 10px; + padding: 8px 12px; + background: #eef; + border: 1px solid #e8e8e8; + } + + .c { color: #998; font-style: italic } // Comment + .err { color: #a61717; background-color: #e3d2d2 } // Error + .k { font-weight: bold } // Keyword + .o { font-weight: bold } // Operator + .cm { color: #998; font-style: italic } // Comment.Multiline + .cp { color: #999; font-weight: bold } // Comment.Preproc + .c1 { color: #998; font-style: italic } // Comment.Single + .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special + .gd { color: #000; background-color: #fdd } // Generic.Deleted + .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific + .ge { font-style: italic } // Generic.Emph + .gr { color: #a00 } // Generic.Error + .gh { color: #999 } // Generic.Heading + .gi { color: #000; background-color: #dfd } // Generic.Inserted + .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific + .go { color: #888 } // Generic.Output + .gp { color: #555 } // Generic.Prompt + .gs { font-weight: bold } // Generic.Strong + .gu { color: #aaa } // Generic.Subheading + .gt { color: #a00 } // Generic.Traceback + .kc { font-weight: bold } // Keyword.Constant + .kd { font-weight: bold } // Keyword.Declaration + .kp { font-weight: bold } // Keyword.Pseudo + .kr { font-weight: bold } // Keyword.Reserved + .kt { color: #458; font-weight: bold } // Keyword.Type + .m { color: #099 } // Literal.Number + .s { color: #d14 } // Literal.String + .na { color: #008080 } // Name.Attribute + .nb { color: #0086B3 } // Name.Builtin + .nc { color: #458; font-weight: bold } // Name.Class + .no { color: #008080 } // Name.Constant + .ni { color: #800080 } // Name.Entity + .ne { color: #900; font-weight: bold } // Name.Exception + .nf { color: #900; font-weight: bold } // Name.Function + .nn { color: #555 } // Name.Namespace + .nt { color: #000080 } // Name.Tag + .nv { color: #008080 } // Name.Variable + .ow { font-weight: bold } // Operator.Word + .w { color: #bbb } // Text.Whitespace + .mf { color: #099 } // Literal.Number.Float + .mh { color: #099 } // Literal.Number.Hex + .mi { color: #099 } // Literal.Number.Integer + .mo { color: #099 } // Literal.Number.Oct + .sb { color: #d14 } // Literal.String.Backtick + .sc { color: #d14 } // Literal.String.Char + .sd { color: #d14 } // Literal.String.Doc + .s2 { color: #d14 } // Literal.String.Double + .se { color: #d14 } // Literal.String.Escape + .sh { color: #d14 } // Literal.String.Heredoc + .si { color: #d14 } // Literal.String.Interpol + .sx { color: #d14 } // Literal.String.Other + .sr { color: #009926 } // Literal.String.Regex + .s1 { color: #d14 } // Literal.String.Single + .ss { color: #990073 } // Literal.String.Symbol + .bp { color: #999 } // Name.Builtin.Pseudo + .vc { color: #008080 } // Name.Variable.Class + .vg { color: #008080 } // Name.Variable.Global + .vi { color: #008080 } // Name.Variable.Instance + .il { color: #099 } // Literal.Number.Integer.Long +} diff --git a/docs/_sass/_variables.scss b/docs/_sass/_variables.scss new file mode 100755 index 000000000..a2e9d2e7e --- /dev/null +++ b/docs/_sass/_variables.scss @@ -0,0 +1,70 @@ +// This is the place to place Bootstrap's variables overrides. +// As example you can start by importing the _variables.scss file from one of the +// theme provided by https://bootswatch.com . + + +// Some customization of the container class to have a better display in the guide. +// Don't hesitate to remove it to have a standard Bootstrap behavior +$container-max-widths: ( + sm: 540px, + md: 640px, + lg: 800px, + xl: 1024px +) !default; + +// United 5.1.3 +// Bootswatch + +$theme: "united" !default; + +// +// Color system +// + +$white: #fff !default; +$gray-100: #f8f9fa !default; +$gray-200: #e9ecef !default; +$gray-300: #dee2e6 !default; +$gray-400: #ced4da !default; +$gray-500: #aea79f !default; +$gray-600: #868e96 !default; +$gray-700: #495057 !default; +$gray-800: #333 !default; +$gray-900: #212529 !default; +$black: #000 !default; + +$blue: #007bff !default; +$indigo: #6610f2 !default; +$purple: #772953 !default; +$pink: #e83e8c !default; +$red: #df382c !default; +$orange: #e95420 !default; +$yellow: #efb73e !default; +$green: #38b44a !default; +$teal: #20c997 !default; +$cyan: #17a2b8 !default; + +$primary: $orange !default; +$secondary: $gray-500 !default; +$success: $green !default; +$info: $cyan !default; +$warning: $yellow !default; +$danger: $red !default; +$light: $gray-200 !default; +$dark: $purple !default; + +$min-contrast-ratio: 1.8 !default; + +// Body + +$body-color: $gray-800 !default; + +// Fonts + +// stylelint-disable-next-line value-keyword-case +$font-family-sans-serif: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default; + +// Tables + +$table-dark-bg: $dark !default; +$table-dark-border-color: darken($dark, 5%) !default; \ No newline at end of file diff --git a/docs/_sass/bootstrap-4-jekyll/_bootstrap-4-jekyll.scss b/docs/_sass/bootstrap-4-jekyll/_bootstrap-4-jekyll.scss new file mode 100755 index 000000000..742597770 --- /dev/null +++ b/docs/_sass/bootstrap-4-jekyll/_bootstrap-4-jekyll.scss @@ -0,0 +1,8 @@ +// Some CSS to ease the integration between Jekyll and Bootstrap 4. +// It is not recommended to edit this file. + +.page-content { + img { + max-width: 100%; + } +} diff --git a/docs/_sass/bootstrap/__DO_NOT_MODIFY b/docs/_sass/bootstrap/__DO_NOT_MODIFY new file mode 100644 index 000000000..e69de29bb diff --git a/docs/_sass/bootstrap/_alert.scss b/docs/_sass/bootstrap/_alert.scss new file mode 100644 index 000000000..4aa1fc203 --- /dev/null +++ b/docs/_sass/bootstrap/_alert.scss @@ -0,0 +1,52 @@ +// +// Base styles +// + +.alert { + position: relative; + padding: $alert-padding-y $alert-padding-x; + margin-bottom: $alert-margin-bottom; + border: $alert-border-width solid transparent; + @include border-radius($alert-border-radius); +} + +// Headings for larger alerts +.alert-heading { + // Specified to prevent conflicts of changing $headings-color + color: inherit; +} + +// Provide class for links that match alerts +.alert-link { + font-weight: $alert-link-font-weight; +} + + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissible { + padding-right: $close-font-size + $alert-padding-x * 2; + + // Adjust close link position + .close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: $alert-padding-y $alert-padding-x; + color: inherit; + } +} + + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +@each $color, $value in $theme-colors { + .alert-#{$color} { + @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); + } +} diff --git a/docs/_sass/bootstrap/_badge.scss b/docs/_sass/bootstrap/_badge.scss new file mode 100644 index 000000000..42c5d08d7 --- /dev/null +++ b/docs/_sass/bootstrap/_badge.scss @@ -0,0 +1,54 @@ +// Base class +// +// Requires one of the contextual, color modifier classes for `color` and +// `background-color`. + +.badge { + display: inline-block; + padding: $badge-padding-y $badge-padding-x; + @include font-size($badge-font-size); + font-weight: $badge-font-weight; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + @include border-radius($badge-border-radius); + @include transition($badge-transition); + + @at-root a#{&} { + @include hover-focus() { + text-decoration: none; + } + } + + // Empty badges collapse automatically + &:empty { + display: none; + } +} + +// Quick fix for badges in buttons +.btn .badge { + position: relative; + top: -1px; +} + +// Pill badges +// +// Make them extra rounded with a modifier to replace v3's badges. + +.badge-pill { + padding-right: $badge-pill-padding-x; + padding-left: $badge-pill-padding-x; + @include border-radius($badge-pill-border-radius); +} + +// Colors +// +// Contextual variations (linked badges get darker on :hover). + +@each $color, $value in $theme-colors { + .badge-#{$color} { + @include badge-variant($value); + } +} diff --git a/docs/_sass/bootstrap/_breadcrumb.scss b/docs/_sass/bootstrap/_breadcrumb.scss new file mode 100644 index 000000000..9c204c7d5 --- /dev/null +++ b/docs/_sass/bootstrap/_breadcrumb.scss @@ -0,0 +1,42 @@ +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: $breadcrumb-padding-y $breadcrumb-padding-x; + margin-bottom: $breadcrumb-margin-bottom; + @include font-size($breadcrumb-font-size); + list-style: none; + background-color: $breadcrumb-bg; + @include border-radius($breadcrumb-border-radius); +} + +.breadcrumb-item { + // The separator between breadcrumbs (by default, a forward-slash: "/") + + .breadcrumb-item { + padding-left: $breadcrumb-item-padding; + + &::before { + float: left; // Suppress inline spacings and underlining of the separator + padding-right: $breadcrumb-item-padding; + color: $breadcrumb-divider-color; + content: escape-svg($breadcrumb-divider); + } + } + + // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built + // without `