diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..e48dc98be --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,9 @@ +.DS_STORE +_site/ +*.swo +*.swp +_site +.sass-cache +*.psd +*~ + diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 000000000..37f5eaa42 --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'github-pages', group: :jekyll_plugins diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock new file mode 100644 index 000000000..25cbe1315 --- /dev/null +++ b/docs/Gemfile.lock @@ -0,0 +1,136 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.7) + i18n (~> 0.7) + json (~> 1.7, >= 1.7.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.4.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.10.0) + colorator (1.1.0) + ethon (0.9.0) + ffi (>= 1.3.0) + execjs (2.7.0) + faraday (0.9.2) + multipart-post (>= 1.2, < 3) + ffi (1.9.14) + forwardable-extended (2.6.0) + gemoji (2.1.0) + github-pages (93) + activesupport (= 4.2.7) + github-pages-health-check (= 1.2.0) + jekyll (= 3.2.1) + jekyll-coffeescript (= 1.0.1) + jekyll-feed (= 0.5.1) + jekyll-gist (= 1.4.0) + jekyll-github-metadata (= 2.0.2) + jekyll-mentions (= 1.1.3) + jekyll-paginate (= 1.1.0) + jekyll-redirect-from (= 0.11.0) + jekyll-sass-converter (= 1.3.0) + jekyll-seo-tag (= 2.0.0) + jekyll-sitemap (= 0.10.0) + jemoji (= 0.7.0) + kramdown (= 1.11.1) + liquid (= 3.0.6) + listen (= 3.0.6) + mercenary (~> 0.3) + minima (= 1.0.1) + rouge (= 1.11.1) + terminal-table (~> 1.4) + github-pages-health-check (1.2.0) + addressable (~> 2.3) + net-dns (~> 0.8) + octokit (~> 4.0) + public_suffix (~> 1.4) + typhoeus (~> 0.7) + html-pipeline (2.4.2) + activesupport (>= 2) + nokogiri (>= 1.4) + i18n (0.7.0) + jekyll (3.2.1) + colorator (~> 1.0) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 1.1) + kramdown (~> 1.3) + liquid (~> 3.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (~> 1.7) + safe_yaml (~> 1.0) + jekyll-coffeescript (1.0.1) + coffee-script (~> 2.2) + jekyll-feed (0.5.1) + jekyll-gist (1.4.0) + octokit (~> 4.2) + jekyll-github-metadata (2.0.2) + jekyll (~> 3.1) + octokit (~> 4.0) + jekyll-mentions (1.1.3) + html-pipeline (~> 2.3) + jekyll (~> 3.0) + jekyll-paginate (1.1.0) + jekyll-redirect-from (0.11.0) + jekyll (>= 2.0) + jekyll-sass-converter (1.3.0) + sass (~> 3.2) + jekyll-seo-tag (2.0.0) + jekyll (~> 3.1) + jekyll-sitemap (0.10.0) + jekyll-watch (1.5.0) + listen (~> 3.0, < 3.1) + jemoji (0.7.0) + activesupport (~> 4.0) + gemoji (~> 2.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0) + json (1.8.3) + kramdown (1.11.1) + liquid (3.0.6) + listen (3.0.6) + rb-fsevent (>= 0.9.3) + rb-inotify (>= 0.9.7) + mercenary (0.3.6) + mini_portile2 (2.1.0) + minima (1.0.1) + minitest (5.9.0) + multipart-post (2.0.0) + net-dns (0.8.0) + nokogiri (1.6.8) + mini_portile2 (~> 2.1.0) + pkg-config (~> 1.1.7) + octokit (4.3.0) + sawyer (~> 0.7.0, >= 0.5.3) + pathutil (0.14.0) + forwardable-extended (~> 2.6) + pkg-config (1.1.7) + public_suffix (1.5.3) + rb-fsevent (0.9.7) + rb-inotify (0.9.7) + ffi (>= 0.5.0) + rouge (1.11.1) + safe_yaml (1.0.4) + sass (3.4.22) + sawyer (0.7.0) + addressable (>= 2.3.5, < 2.5) + faraday (~> 0.8, < 0.10) + terminal-table (1.6.0) + thread_safe (0.3.5) + typhoeus (0.8.0) + ethon (>= 0.8.0) + tzinfo (1.2.2) + thread_safe (~> 0.1) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages + +BUNDLED WITH + 1.12.5 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..b46c6679b --- /dev/null +++ b/docs/README.md @@ -0,0 +1,48 @@ +# Facebook Open Source Project Site Template: Jekyll Edition + +This is a template for use with Jekyll. You can use it directly on a `gh-pages` branch where it will automatically serve up the content, or you can put it in your `master` branch using a script to copy the static generated markup (from the `_site` folder) into the gh-pages branch. + +## Getting Started + +Clone the contents of this folder, install Jekyll (currently targeting version 3.0), and then run: + +``` +jekyll serve --config=_config.yml,_config_local_dev.yml +``` + +This will serve up the site on your local device at http://127.0.0.1:4000/ - the `_config_local_dev` file over-rides some URL settings that you might be using in production to allow you to test locally without pesky relative URLs. + +## Setting it Up + +First, go through `_config.yml` and adjust the available settings to your project's standard. When you make changes here, you'll have to kill the `jekyll serve` instance and restart it to see those changes, but that's only the case with the config file. + +Next, update some image assets - you'll want to update `favicon.png`, `logo.svg`, and `og_image.png` (used for Like button stories and Shares on Facbeook) in the `static` folder with your own logos. + +Next, if you're going to have docs on your site, keep the `_docs` and `docs` folders, if not, you can safely remove them (or you can safely leave them and not include them in your navigation - Jekyll renders all of this before a client views the site anyway, so there's no performance hit from just leaving it there for a future expansion). + +Same thing with a blog section, either keep or delete the `_posts` and `blog` folders. + +You can customise your homepage in three parts - the first in the homepage header, which is mostly automatically derived from the elements you insert into your config file. However, you can also specify a series of 'promotional' elements in `_data/promo.yml`. You can read that file for more information. + +The second place for your homepage is in `index.md` which contains the bulk of the main content below the header. This is all markdown if you want, but you can use HTML and Jekyll's template tags (called Liquid) in there too. Checkout this folder's index.md for an example of one common template tag that we use on our sites called gridblocks. + +The third and last place is in the `_data/powered_by.yml` and `_data/powered_by_highlight.yml` files. Both these files combine to create a section on the homepage that is intended to show a list of companies or apps that are using your project. The `powered_by_highlight` file is a list of curated companies/apps that you want to show as a highlight at the top of this section, including their logos in whatever format you want. The `powered_by` file is a more open list that is just text links to the companies/apps and can be updated via Pull Request by the community. If you don't want these sections on your homepage, just empty out both files and leave them blank. + +The last thing you'll want to do is setup your top level navigation bar. You can do this by editing `nav.yml` and keeping the existing title/href/category structure used there. Although the nav is responsive and fairly flexible design-wise, no more than 5 or 6 nav items is recommended. + +## Docs + +Editing docs is easy, you can just use lots of markdown. All you need to do is add a new `docname.md` file into the `_docs` folder with the following at the very top of the file (called the Front Matter): + +``` +--- +docid: getting-started +title: Getting started with ProjectName +layout: docs +permalink: /docs/getting-started.html +--- +``` + +Customise these values for each doc (note that the filename of the .md file doesn't actually matter, what is important is the `docid` being unique and the `permalink` correct and unique too). + +Then you'll want to add your new doc to the Docs navigation. Just open `_data/nav_docs.yml` and add the `docid` of the doc you just created into the structure in the location that you want it to appear in the nav. Docs can be grouped in the navigation, checkout the skeleton `nav_docs` file that we've provided to see how you can do that. diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 000000000..6d046e430 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,59 @@ +# Site settings +permalink: /blog/:year/:month/:day/:title.html +title: RocksDB +tagline: A persistent key-value store for fast storage environments +description: > + RocksDB is an embeddable persistent key-value store for fast storage. RocksDB can also be the foundation for a client-server database but our current focus is on embedded workloads. +fbappid: "1615782811974223" +gacode: "UA-12345-6" +# baseurl determines the subpath of your site. For example if you're using an +# organisation.github.io/reponame/ basic site URL, then baseurl would be set +# as "/reponame/" but leave blank if you have a top-level domain URL +baseurl: "" +url: "http://rocksdb.org" # the base hostname & protocol for your site +ghrepo: "facebook/rocksdb" + +# Use these color settings to determine your colour scheme for the site. +color: + # primary should be a vivid color that reflects the project's brand + primary: "#3b5998" + # secondary should be a subtle light or dark color used on page backgrounds + secondary: "#f9f9f9" + # Use the following to specify whether the previous two colours are 'light' + # or 'dark' and therefore what colors can be overlaid on them + primary-overlay: "dark" + secondary-overlay: "light" + +#Uncomment this if you want to enable Algolia doc search with your own values +#searchconfig: +# apikey: "" +# indexname: "" + +collections: + docs: + output: true + permalink: /docs/:name/ + support: + output: true + permalink: /support.html + +# DO NOT ADJUST BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE CHANGING + +markdown: kramdown +kramdown: + input: GFM + syntax_highlighter: rouge + + syntax_highlighter_opts: + css_class: 'rougeHighlight' + span: + line_numbers: false + block: + line_numbers: true + start_line: 1 + +sass: + style: :compressed + +redcarpet: + extensions: [with_toc_data] diff --git a/docs/_config_local_dev.yml b/docs/_config_local_dev.yml new file mode 100644 index 000000000..628a1297e --- /dev/null +++ b/docs/_config_local_dev.yml @@ -0,0 +1,6 @@ +# Local development config settings to over-ride base. +# `jekyll serve` will by default generate a webserver at localhost:4000, so +# only change `url` if you're using a non-default location. + +baseurl: "" +url: "http://127.0.0.1:4000" \ No newline at end of file diff --git a/docs/_data/authors.yml b/docs/_data/authors.yml new file mode 100644 index 000000000..3807dbff9 --- /dev/null +++ b/docs/_data/authors.yml @@ -0,0 +1,4 @@ + +exampleauthor: + full_name: Example Author + fbid: 1234 \ No newline at end of file diff --git a/docs/_data/features.yml b/docs/_data/features.yml new file mode 100644 index 000000000..ea3037415 --- /dev/null +++ b/docs/_data/features.yml @@ -0,0 +1,19 @@ +- title: Feature 1 + text: | + This is a description of the feature which **can** use [markdown](#). + image: images/android.svg + +- title: Feature 2 + text: | + This is another description of a feature. + image: images/apple.svg + +- title: Feature 3 + text: | + This is another description of a feature. + image: images/facebook.png + +- title: Feature 4 + text: | + This is another description of a feature. + image: images/instagram.png \ No newline at end of file diff --git a/docs/_data/nav.yml b/docs/_data/nav.yml new file mode 100644 index 000000000..1d663672d --- /dev/null +++ b/docs/_data/nav.yml @@ -0,0 +1,15 @@ +- title: Docs + href: /docs/ + category: docs + +- title: Support + href: /support.html + category: support + +- title: Blog + href: /blog/ + category: blog + +- title: Facebook + href: http://www.facebook.com/ + category: facebook \ No newline at end of file diff --git a/docs/_data/nav_docs.yml b/docs/_data/nav_docs.yml new file mode 100644 index 000000000..24fbab47a --- /dev/null +++ b/docs/_data/nav_docs.yml @@ -0,0 +1,7 @@ +- title: Quick Start + items: + - id: getting-started + - id: hello-world +- title: Another Doc Group + items: + - id: making-changes diff --git a/docs/_data/powered_by.yml b/docs/_data/powered_by.yml new file mode 100644 index 000000000..83ca5736c --- /dev/null +++ b/docs/_data/powered_by.yml @@ -0,0 +1,6 @@ +- title: Who Uses This Project? + items: + - name: Example Company + url: https://www.example.com/ + - name: Another Example + url: https://www.example.com diff --git a/docs/_data/powered_by_highlight.yml b/docs/_data/powered_by_highlight.yml new file mode 100644 index 000000000..5e9ff2c9c --- /dev/null +++ b/docs/_data/powered_by_highlight.yml @@ -0,0 +1,14 @@ +- title: Who Uses This Project? + items: + - name: Facebook + url: https://facebook.com + img: static/images/facebook.png + - name: Instagram + url: https://www.instagram.com + img: static/images/instagram.png + - name: Facebook + url: https://facebook.com + img: static/images/facebook.png + - name: Instagram + url: https://www.instagram.com + img: static/images/instagram.png diff --git a/docs/_data/promo.yml b/docs/_data/promo.yml new file mode 100644 index 000000000..695ab7b01 --- /dev/null +++ b/docs/_data/promo.yml @@ -0,0 +1,28 @@ +# This file determines the list of promotional elements added to the header of \ +# your site's homepage. Full list of plugins are shown + +- type: button + href: docs/getting-started.html + text: Example Button + +- type: github_star + +- type: github_watch + +- type: like_button + +- type: google_share + +- type: twitter_follow + href: FbOpenSource + +- type: twitter_share + +- type: plugin_row + children: + - type: button + href: docs/getting-started.html + text: Get Started + - type: button + href: https://example.com + text: Another Button \ No newline at end of file diff --git a/docs/_docs/getting-started.md b/docs/_docs/getting-started.md new file mode 100644 index 000000000..a790c7dd4 --- /dev/null +++ b/docs/_docs/getting-started.md @@ -0,0 +1,8 @@ +--- +docid: getting-started +title: Getting started with ProjectName +layout: docs +permalink: /docs/getting-started.html +--- + +This is some placeholder text, but you can use any kind of Markdown syntax here. \ No newline at end of file diff --git a/docs/_docs/hello-world.md b/docs/_docs/hello-world.md new file mode 100644 index 000000000..34e0e3777 --- /dev/null +++ b/docs/_docs/hello-world.md @@ -0,0 +1,8 @@ +--- +docid: hello-world +title: Hello, World! +layout: docs +permalink: /docs/hello-world.html +--- + +This is some placeholder text, but you can use any kind of Markdown syntax here. \ No newline at end of file diff --git a/docs/_docs/making-changes.md b/docs/_docs/making-changes.md new file mode 100644 index 000000000..f4a6bd04e --- /dev/null +++ b/docs/_docs/making-changes.md @@ -0,0 +1,8 @@ +--- +docid: making-changes +title: Making Changes +layout: docs +permalink: /docs/making-changes.html +--- + +This is some placeholder text, but you can use any kind of Markdown syntax here. \ No newline at end of file diff --git a/docs/_includes/blog_pagination.html b/docs/_includes/blog_pagination.html new file mode 100644 index 000000000..58e655de6 --- /dev/null +++ b/docs/_includes/blog_pagination.html @@ -0,0 +1,29 @@ + +{% if paginator.total_pages > 1 %} +
+ +
+{% endif %} + diff --git a/docs/_includes/content/gridblocks.html b/docs/_includes/content/gridblocks.html new file mode 100644 index 000000000..da3b0c8e9 --- /dev/null +++ b/docs/_includes/content/gridblocks.html @@ -0,0 +1,5 @@ +
+{% for item in {{include.data_source}} %} + {% include content/items/gridblock.html item=item layout=include.layout imagealign=include.imagealign align=include.align %} +{% endfor %} +
\ No newline at end of file diff --git a/docs/_includes/content/items/gridblock.html b/docs/_includes/content/items/gridblock.html new file mode 100644 index 000000000..124f33a98 --- /dev/null +++ b/docs/_includes/content/items/gridblock.html @@ -0,0 +1,37 @@ +{% if include.layout == "fourColumn" %} + {% assign layout = "fourByGridBlock" %} +{% else %} + {% assign layout = "twoByGridBlock" %} +{% endif %} + +{% if include.imagealign == "side" %} + {% assign imagealign = "imageAlignSide" %} +{% else %} + {% if item.image %} + {% assign imagealign = "imageAlignTop" %} + {% else %} + {% assign imagealign = "" %} + {% endif %} +{% endif %} + +{% if include.align == "right" %} + {% assign align = "alignRight" %} +{% elsif include.align == "center" %} + {% assign align = "alignCenter" %} +{% else %} + {% assign align = "alignLeft" %} +{% endif %} + +
+ {% if item.image %} +
+ {{ item.title }} +
+ {% endif %} +
+

{{ item.title }}

+ {% if item.text %} + {{ item.text | markdownify }} + {% endif %} +
+
diff --git a/docs/_includes/doc.html b/docs/_includes/doc.html new file mode 100644 index 000000000..e0bb7206e --- /dev/null +++ b/docs/_includes/doc.html @@ -0,0 +1,25 @@ +
+
+

{% if include.truncate %}{{ page.title }}{% else %}{{ page.title }}{% endif %}

+
+ +
+ {% if include.truncate %} + {% if page.content contains '' %} + {{ page.content | split:'' | first }} + + {% else %} + {{ page.content }} + {% endif %} + {% else %} + {{ content }} + +

Edit on GitHub

+ {% endif %} +
+ {% include doc_paging.html %} +
diff --git a/docs/_includes/doc_paging.html b/docs/_includes/doc_paging.html new file mode 100644 index 000000000..e69de29bb diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html new file mode 100644 index 000000000..b158d8871 --- /dev/null +++ b/docs/_includes/footer.html @@ -0,0 +1,33 @@ +
+ +
+ diff --git a/docs/_includes/head.html b/docs/_includes/head.html new file mode 100644 index 000000000..3baa079c5 --- /dev/null +++ b/docs/_includes/head.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + {% if site.searchconfig %} + + {% endif %} + + {% if page.title %}{{ page.title }} | {{ site.title }}{% else %}{{ site.title }}{% endif %} + + + + + + + diff --git a/docs/_includes/header.html b/docs/_includes/header.html new file mode 100644 index 000000000..651982f23 --- /dev/null +++ b/docs/_includes/header.html @@ -0,0 +1,19 @@ +
+
+
+ +

{{ site.title }}

+

{{ site.tagline }}

+ +
+

{% if page.excerpt %}{{ page.excerpt | strip_html }}{% else %}{{ site.description }}{% endif %}

+
+
+ {% for promo in site.data.promo %} + {% include plugins/{{promo.type}}.html button_href=promo.href button_text=promo.text %} +
+ {% endfor %} +
+
+
+
\ No newline at end of file diff --git a/docs/_includes/hero.html b/docs/_includes/hero.html new file mode 100644 index 000000000..e69de29bb diff --git a/docs/_includes/home_header.html b/docs/_includes/home_header.html new file mode 100644 index 000000000..026c9ff47 --- /dev/null +++ b/docs/_includes/home_header.html @@ -0,0 +1,22 @@ +
+
+
+
+

{{ site.tagline }}

+
+

{% if page.excerpt %}{{ page.excerpt | strip_html }}{% else %}{{ site.description }}{% endif %}

+
+
+ {% for promo in site.data.promo %} +
+ {% include plugins/{{promo.type}}.html href=promo.href text=promo.text children=promo.children %} +
+ {% endfor %} +
+
+ +
+
+
diff --git a/docs/_includes/katex_import.html b/docs/_includes/katex_import.html new file mode 100644 index 000000000..6d6b7cf44 --- /dev/null +++ b/docs/_includes/katex_import.html @@ -0,0 +1,3 @@ + + + diff --git a/docs/_includes/katex_render.html b/docs/_includes/katex_render.html new file mode 100644 index 000000000..56e2e8974 --- /dev/null +++ b/docs/_includes/katex_render.html @@ -0,0 +1,210 @@ + diff --git a/docs/_includes/nav.html b/docs/_includes/nav.html new file mode 100644 index 000000000..f6c1ba643 --- /dev/null +++ b/docs/_includes/nav.html @@ -0,0 +1,28 @@ +
+
+
+ + +

{{ site.title }}

+
+ + + +
+
+
diff --git a/docs/_includes/nav/collection_nav.html b/docs/_includes/nav/collection_nav.html new file mode 100644 index 000000000..b246b4262 --- /dev/null +++ b/docs/_includes/nav/collection_nav.html @@ -0,0 +1,65 @@ +
+ +
+ + diff --git a/docs/_includes/nav/collection_nav_group.html b/docs/_includes/nav/collection_nav_group.html new file mode 100644 index 000000000..b236ac5e3 --- /dev/null +++ b/docs/_includes/nav/collection_nav_group.html @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/docs/_includes/nav/collection_nav_group_item.html b/docs/_includes/nav/collection_nav_group_item.html new file mode 100644 index 000000000..826523a0d --- /dev/null +++ b/docs/_includes/nav/collection_nav_group_item.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/_includes/nav/header_nav.html b/docs/_includes/nav/header_nav.html new file mode 100644 index 000000000..0fe945cdc --- /dev/null +++ b/docs/_includes/nav/header_nav.html @@ -0,0 +1,30 @@ +
+ + +
+ \ No newline at end of file diff --git a/docs/_includes/nav_search.html b/docs/_includes/nav_search.html new file mode 100644 index 000000000..84956b9f7 --- /dev/null +++ b/docs/_includes/nav_search.html @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/docs/_includes/plugins/all_share.html b/docs/_includes/plugins/all_share.html new file mode 100644 index 000000000..59b00d615 --- /dev/null +++ b/docs/_includes/plugins/all_share.html @@ -0,0 +1,3 @@ +
+ {% include plugins/like_button.html %}{% include plugins/twitter_share.html %}{% include plugins/google_share.html %} +
\ No newline at end of file diff --git a/docs/_includes/plugins/ascii_cinema.html b/docs/_includes/plugins/ascii_cinema.html new file mode 100644 index 000000000..7d3f97148 --- /dev/null +++ b/docs/_includes/plugins/ascii_cinema.html @@ -0,0 +1,2 @@ +
+ \ No newline at end of file diff --git a/docs/_includes/plugins/button.html b/docs/_includes/plugins/button.html new file mode 100644 index 000000000..9e499fe3f --- /dev/null +++ b/docs/_includes/plugins/button.html @@ -0,0 +1,6 @@ +
+ {{ include.text }} +
\ No newline at end of file diff --git a/docs/_includes/plugins/github_star.html b/docs/_includes/plugins/github_star.html new file mode 100644 index 000000000..6aea70fc7 --- /dev/null +++ b/docs/_includes/plugins/github_star.html @@ -0,0 +1,4 @@ +
+ Star +
+ \ No newline at end of file diff --git a/docs/_includes/plugins/github_watch.html b/docs/_includes/plugins/github_watch.html new file mode 100644 index 000000000..64233b57b --- /dev/null +++ b/docs/_includes/plugins/github_watch.html @@ -0,0 +1,4 @@ +
+ Watch +
+ \ No newline at end of file diff --git a/docs/_includes/plugins/google_share.html b/docs/_includes/plugins/google_share.html new file mode 100644 index 000000000..1b557db86 --- /dev/null +++ b/docs/_includes/plugins/google_share.html @@ -0,0 +1,5 @@ +
+
+
+ + diff --git a/docs/_includes/plugins/iframe.html b/docs/_includes/plugins/iframe.html new file mode 100644 index 000000000..525b59f22 --- /dev/null +++ b/docs/_includes/plugins/iframe.html @@ -0,0 +1,6 @@ +
+ +
+
+ {% include plugins/button.html href=include.href text=include.text %} +
\ No newline at end of file diff --git a/docs/_includes/plugins/like_button.html b/docs/_includes/plugins/like_button.html new file mode 100644 index 000000000..9732836ad --- /dev/null +++ b/docs/_includes/plugins/like_button.html @@ -0,0 +1,18 @@ +
+ \ No newline at end of file diff --git a/docs/_includes/plugins/plugin_row.html b/docs/_includes/plugins/plugin_row.html new file mode 100644 index 000000000..800f50b82 --- /dev/null +++ b/docs/_includes/plugins/plugin_row.html @@ -0,0 +1,5 @@ +
+{% for child in include.children %} + {% include plugins/{{child.type}}.html href=child.href text=child.text %} +{% endfor %} +
\ No newline at end of file diff --git a/docs/_includes/plugins/post_social_plugins.html b/docs/_includes/plugins/post_social_plugins.html new file mode 100644 index 000000000..7b7e9253c --- /dev/null +++ b/docs/_includes/plugins/post_social_plugins.html @@ -0,0 +1,34 @@ +
+ Tweet +
+
+ + + diff --git a/docs/_includes/plugins/slideshow.html b/docs/_includes/plugins/slideshow.html new file mode 100644 index 000000000..d2837abbf --- /dev/null +++ b/docs/_includes/plugins/slideshow.html @@ -0,0 +1,88 @@ +
+ + + \ No newline at end of file diff --git a/docs/_includes/plugins/twitter_follow.html b/docs/_includes/plugins/twitter_follow.html new file mode 100644 index 000000000..9443db3dc --- /dev/null +++ b/docs/_includes/plugins/twitter_follow.html @@ -0,0 +1,5 @@ +
+ Follow @{{ include.href }} +
+ + \ No newline at end of file diff --git a/docs/_includes/plugins/twitter_share.html b/docs/_includes/plugins/twitter_share.html new file mode 100644 index 000000000..67f1d62f9 --- /dev/null +++ b/docs/_includes/plugins/twitter_share.html @@ -0,0 +1,4 @@ +
+ Tweet +
+ \ No newline at end of file diff --git a/docs/_includes/post.html b/docs/_includes/post.html new file mode 100644 index 000000000..73be7f238 --- /dev/null +++ b/docs/_includes/post.html @@ -0,0 +1,35 @@ +
+ {% assign author = site.data.authors[page.author] %} +
+ {% if author.fbid %} +
+ {{ author.fullname }} +
+ {% endif %} + {% if author.full_name %} + + {% endif %} +

{% if include.truncate %}{{ page.title }}{% else %}{{ page.title }}{% endif %}

+ +
+ +
+ {% if include.truncate %} + {% if page.content contains '' %} + {{ page.content | split:'' | first | markdownify }} + + {% else %} + {{ page.content | markdownify }} + {% endif %} + {% else %} + {{ content }} + {% endif %} + {% unless include.truncate %} + {% include plugins/all_share.html %} + {% endunless %} +
+
diff --git a/docs/_includes/powered_by.html b/docs/_includes/powered_by.html new file mode 100644 index 000000000..c629429cd --- /dev/null +++ b/docs/_includes/powered_by.html @@ -0,0 +1,28 @@ +{% if site.data.powered_by.first.items or site.data.powered_by_highlight.first.items %} +
+
+ {% if site.data.powered_by_highlight.first.title %} +

{{ site.data.powered_by_highlight.first.title }}

+ {% else %} +

{{ site.data.powered_by.first.title }}

+ {% endif %} + {% if site.data.powered_by_highlight.first.items %} +
+ {% for item in site.data.powered_by_highlight.first.items %} +
+ {{ item.name }} +
+ {% endfor %} +
+ {% endif %} +
+ {% for item in site.data.powered_by.first.items %} + + {% endfor %} +
+
Does your app use {{ site.title }}? Add it to this list with a pull request!
+
+
+{% endif %} diff --git a/docs/_includes/social_plugins.html b/docs/_includes/social_plugins.html new file mode 100644 index 000000000..5302ec6ad --- /dev/null +++ b/docs/_includes/social_plugins.html @@ -0,0 +1,24 @@ +Tweet +
+ +
+ + + diff --git a/docs/_includes/ui/button.html b/docs/_includes/ui/button.html new file mode 100644 index 000000000..729ccc33b --- /dev/null +++ b/docs/_includes/ui/button.html @@ -0,0 +1 @@ +{{ include.button_text }} \ No newline at end of file diff --git a/docs/_layouts/basic.html b/docs/_layouts/basic.html new file mode 100644 index 000000000..49db80b32 --- /dev/null +++ b/docs/_layouts/basic.html @@ -0,0 +1,12 @@ +--- +layout: doc_default +--- + +
+
+
+ {{ content }} +
+
+
+ diff --git a/docs/_layouts/blog.html b/docs/_layouts/blog.html new file mode 100644 index 000000000..f0c8bf15e --- /dev/null +++ b/docs/_layouts/blog.html @@ -0,0 +1,11 @@ +--- +category: blog +layout: blog_default +--- + +
+
+ {{ content }} +
+
+ diff --git a/docs/_layouts/blog_default.html b/docs/_layouts/blog_default.html new file mode 100644 index 000000000..a29d58d3d --- /dev/null +++ b/docs/_layouts/blog_default.html @@ -0,0 +1,14 @@ + + + {% include head.html %} + + {% include nav.html alwayson=true %} + + + diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html new file mode 100644 index 000000000..2c7f3dc73 --- /dev/null +++ b/docs/_layouts/default.html @@ -0,0 +1,12 @@ + + + {% include head.html %} + + {% include nav.html alwayson=true %} + + + + diff --git a/docs/_layouts/doc_default.html b/docs/_layouts/doc_default.html new file mode 100644 index 000000000..4a4139247 --- /dev/null +++ b/docs/_layouts/doc_default.html @@ -0,0 +1,14 @@ + + + {% include head.html %} + + {% include nav.html alwayson=true %} + + + diff --git a/docs/_layouts/doc_page.html b/docs/_layouts/doc_page.html new file mode 100644 index 000000000..ad86e9874 --- /dev/null +++ b/docs/_layouts/doc_page.html @@ -0,0 +1,10 @@ +--- +layout: doc_default +--- + +
+
+ {{ content }} +
+
+ diff --git a/docs/_layouts/docs.html b/docs/_layouts/docs.html new file mode 100644 index 000000000..2638d1a6f --- /dev/null +++ b/docs/_layouts/docs.html @@ -0,0 +1,5 @@ +--- +layout: doc_page +--- + +{% include doc.html %} \ No newline at end of file diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html new file mode 100644 index 000000000..e92e8f4dc --- /dev/null +++ b/docs/_layouts/home.html @@ -0,0 +1,17 @@ + + + {% include head.html %} + + {% include nav.html alwayson=true %} + + + diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html new file mode 100644 index 000000000..754ca73e8 --- /dev/null +++ b/docs/_layouts/page.html @@ -0,0 +1,3 @@ +--- +layout: blog +--- diff --git a/docs/_layouts/plain.html b/docs/_layouts/plain.html new file mode 100644 index 000000000..8e77f8e61 --- /dev/null +++ b/docs/_layouts/plain.html @@ -0,0 +1,10 @@ +--- +layout: default +--- + +
+
+ {{ content }} +
+
+ diff --git a/docs/_layouts/post.html b/docs/_layouts/post.html new file mode 100644 index 000000000..d2d627415 --- /dev/null +++ b/docs/_layouts/post.html @@ -0,0 +1,8 @@ +--- +collection: blog +layout: blog +--- + +
+{% include post.html %} +
\ No newline at end of file diff --git a/docs/_layouts/redirect.html b/docs/_layouts/redirect.html new file mode 100644 index 000000000..a3f9911d9 --- /dev/null +++ b/docs/_layouts/redirect.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/_layouts/support.html b/docs/_layouts/support.html new file mode 100644 index 000000000..fccc02ce1 --- /dev/null +++ b/docs/_layouts/support.html @@ -0,0 +1,10 @@ +--- +layout: default +--- + +
+
+ {{ content }} +
+
+ diff --git a/docs/_posts/2016-04-07-blog-post-example.md b/docs/_posts/2016-04-07-blog-post-example.md new file mode 100644 index 000000000..324665dc6 --- /dev/null +++ b/docs/_posts/2016-04-07-blog-post-example.md @@ -0,0 +1,12 @@ +--- +title: Blog Post Example +layout: post +author: exampleauthor +category: blog +--- + +This is an example blog post introduction, try to keep it short and about a paragraph long, to encourage people to click through to read the entire post. + + + +Everything below the `` tag will only show on the actual blog post page, not on the /blog/ index. diff --git a/docs/_sass/_base.scss b/docs/_sass/_base.scss new file mode 100644 index 000000000..6d26d9feb --- /dev/null +++ b/docs/_sass/_base.scss @@ -0,0 +1,492 @@ +body { + background: $secondary-bg; + color: $text; + font: normal #{$base-font-size}/#{$base-line-height} $base-font-family; + height: 100vh; + text-align: left; + text-rendering: optimizeLegibility; +} + +img { + max-width: 100%; +} + +article { + p { + img { + max-width: 100%; + display:block; + margin-left: auto; + margin-right: auto; + } + } +} + +a { + border-bottom: 1px dotted $primary-bg; + color: $text; + text-decoration: none; + -webkit-transition: background 0.3s, color 0.3s; + transition: background 0.3s, color 0.3s; +} + +blockquote { + padding: 15px 30px 15px 15px; + margin: 20px 0 0 10px; + background-color: rgba(204, 122, 111, 0.1); + border-left: 10px solid rgba(191, 87, 73, 0.2); +} + +#fb_oss a { + border: 0; +} + +h1, h2, h3, h4 { + font-family: $header-font-family; + font-weight: 900; +} + +.navPusher { + border-top: $header-height + $header-ptop + $header-pbot solid $primary-bg; + height: 100%; + left: 0; + position: relative; + z-index: 99; +} + +.homeContainer { + background: $primary-bg; + color: $primary-overlay; + + a { + color: $primary-overlay; + } + + .homeSplashFade { + color: white; + } + + .homeWrapper { + padding: 2em 10px; + text-align: left; + + .wrapper { + margin: 0px auto; + max-width: $content-width; + padding: 0 20px; + } + + .projectLogo { + img { + height: 100px; + margin-bottom: 0px; + } + } + + h1#project_title { + font-family: $header-font-family; + font-size: 300%; + letter-spacing: -0.08em; + line-height: 1em; + margin-bottom: 80px; + } + + h2#project_tagline { + font-family: $header-font-family; + font-size: 200%; + letter-spacing: -0.04em; + line-height: 1em; + } + } +} + +.wrapper { + margin: 0px auto; + max-width: $content-width; + padding: 0 10px; +} + +.projectLogo { + display: none; + + img { + height: 100px; + margin-bottom: 0px; + } +} + +section#intro { + margin: 40px 0; +} + +.fbossFontLight { + font-family: $base-font-family; + font-weight: 300; + font-style: normal; +} + +.fb-like { + display: block; + margin-bottom: 20px; + width: 100%; +} + +.center { + display: block; + text-align: center; +} + +.mainContainer { + background: $secondary-bg; + overflow: auto; + + .mainWrapper { + padding: 4vh 10px; + text-align: left; + + .allShareBlock { + padding: 10px 0; + + .pluginBlock { + margin: 12px 0; + padding: 0; + } + } + + a { + &:hover, + &:focus { + background: $primary-bg; + color: $primary-overlay; + } + } + + em, i { + font-style: italic; + } + + strong, b { + font-weight: bold; + } + + h1 { + font-size: 300%; + line-height: 1em; + padding: 1.4em 0 1em; + text-align: left; + } + + h2 { + font-size: 250%; + line-height: 1em; + margin-bottom: 20px; + padding: 1.4em 0 20px; + text-align: left; + + & { + border-bottom: 1px solid darken($primary-bg, 10%); + color: darken($primary-bg, 10%); + font-size: 22px; + padding: 10px 0; + } + + &.blockHeader { + border-bottom: 1px solid white; + color: white; + font-size: 22px; + margin-bottom: 20px; + padding: 10px 0; + } + } + + h3 { + font-size: 150%; + line-height: 1.2em; + padding: 1em 0 0.8em; + } + + h4 { + font-size: 130%; + line-height: 1.2em; + padding: 1em 0 0.8em; + } + + p { + padding: 0.8em 0; + } + + ul { + list-style: disc; + } + + ol, ul { + padding-left: 24px; + li { + padding-bottom: 4px; + padding-left: 6px; + } + } + + strong { + font-weight: bold; + } + + .post { + position: relative; + + .katex { + font-weight: 700; + } + + &.basicPost { + margin-top: 30px; + } + + a { + color: $primary-bg; + + &:hover, + &:focus { + color: #fff; + } + } + + h2 { + border-bottom: 4px solid $primary-bg; + font-size: 130%; + } + + h3 { + border-bottom: 1px solid $primary-bg; + font-size: 110%; + } + + ol { + list-style: decimal outside none; + } + + .post-header { + padding: 1em 0; + + h1 { + font-size: 150%; + line-height: 1em; + padding: 0.4em 0 0; + + a { + border: none; + } + } + + .post-meta { + color: $primary-bg; + font-family: $header-font-family; + text-align: center; + } + } + + .postSocialPlugins { + padding-top: 1em; + } + + .docPagination { + background: $primary-bg; + bottom: 0px; + left: 0px; + position: absolute; + right: 0px; + + .pager { + display: inline-block; + width: 50%; + } + + .pagingNext { + float: right; + text-align: right; + } + + a { + border: none; + color: $primary-overlay; + display: block; + padding: 4px 12px; + + &:hover { + background-color: $secondary-bg; + color: $text; + } + + .pagerLabel { + display: inline; + } + + .pagerTitle { + display: none; + } + } + } + } + + .posts { + .post { + margin-bottom: 6vh; + } + } + } +} + +#integrations_title { + font-size: 250%; + margin: 80px 0; +} + +.ytVideo { + height: 0; + overflow: hidden; + padding-bottom: 53.4%; /* 16:9 */ + padding-top: 25px; + position: relative; +} + +.ytVideo iframe, +.ytVideo object, +.ytVideo embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} + +@media only screen and (min-width: 480px) { + h1#project_title { + font-size: 500%; + } + + h2#project_tagline { + font-size: 250%; + } + + .projectLogo { + img { + margin-bottom: 10px; + height: 200px; + } + } + + .homeContainer .homeWrapper { + padding-left: 10px; + padding-right: 10px; + } + + .mainContainer { + .mainWrapper { + .post { + h2 { + font-size: 180%; + } + + h3 { + font-size: 120%; + } + + .docPagination { + a { + .pagerLabel { + display: none; + } + .pagerTitle { + display: inline; + } + } + } + } + } + } +} + +@media only screen and (min-width: 900px) { + .homeContainer { + .homeWrapper { + position: relative; + + #inner { + box-sizing: border-box; + max-width: 600px; + padding-right: 40px; + } + + .projectLogo { + align-items: center; + bottom: 0; + display: flex; + justify-content: flex-end; + left: 0; + padding: 2em 20px 4em; + position: absolute; + right: 20px; + top: 0; + + img { + height: 100%; + max-height: 250px; + } + } + } + } +} + +@media only screen and (min-width: 1024px) { + .mainContainer { + .mainWrapper { + .post { + box-sizing: border-box; + display: block; + + .post-header { + h1 { + font-size: 250%; + } + } + } + + .posts { + .post { + margin-bottom: 4vh; + width: 100%; + } + } + } + } +} + +@media only screen and (min-width: 1200px) { + .homeContainer { + .homeWrapper { + #inner { + max-width: 750px; + } + } + } + + .wrapper { + max-width: 1100px; + } +} + +@media only screen and (min-width: 1500px) { + .homeContainer { + .homeWrapper { + #inner { + max-width: 1100px; + padding-bottom: 40px; + padding-top: 40px; + } + } + } + + .wrapper { + max-width: 1400px; + } +} diff --git a/docs/_sass/_blog.scss b/docs/_sass/_blog.scss new file mode 100644 index 000000000..74335d10b --- /dev/null +++ b/docs/_sass/_blog.scss @@ -0,0 +1,45 @@ +.blogContainer { + .posts { + margin-top: 60px; + + .post { + border: 1px solid $primary-bg; + border-radius: 3px; + padding: 10px 20px 20px; + } + } + + .lonePost { + margin-top: 60px; + + .post { + padding: 10px 0px 0px; + } + } + + .post-header { + h1 { + text-align: center; + } + + .post-authorName { + color: rgba($text, 0.7); + font-size: 14px; + font-weight: 900; + margin-top: 0; + padding: 0; + text-align: center; + } + + .authorPhoto { + border-radius: 50%; + height: 50px; + left: 50%; + margin-left: -25px; + overflow: hidden; + position: absolute; + top: -25px; + width: 50px; + } + } +} \ No newline at end of file diff --git a/docs/_sass/_buttons.scss b/docs/_sass/_buttons.scss new file mode 100644 index 000000000..a0371618f --- /dev/null +++ b/docs/_sass/_buttons.scss @@ -0,0 +1,47 @@ +.button { + border: 1px solid $primary-bg; + border-radius: 3px; + color: $primary-bg; + display: inline-block; + font-size: 14px; + font-weight: 900; + line-height: 1.2em; + padding: 10px; + text-transform: uppercase; + transition: background 0.3s, color 0.3s; + + &:hover { + background: $primary-bg; + color: $primary-overlay; + } +} + +.homeContainer { + .button { + border-color: $primary-overlay; + border-width: 1px; + color: $primary-overlay; + + &:hover { + background: $primary-overlay; + color: $primary-bg; + } + } +} + +.blockButton { + display: block; +} + +.edit-page-link { + float: right; + font-size: 14px; + font-weight: normal; + line-height: 20px; + opacity: 0.6; + transition: opacity 0.5s; +} + +.edit-page-link:hover { + opacity: 1; +} diff --git a/docs/_sass/_footer.scss b/docs/_sass/_footer.scss new file mode 100644 index 000000000..5b7439517 --- /dev/null +++ b/docs/_sass/_footer.scss @@ -0,0 +1,82 @@ +.footerContainer { + background: $secondary-bg; + color: $primary-bg; + overflow: hidden; + padding: 0 10px; + text-align: left; + + .footerWrapper { + border-top: 1px solid $primary-bg; + padding: 0; + + .footerBlocks { + align-items: center; + align-content: center; + display: flex; + flex-flow: row wrap; + margin: 0 -20px; + padding: 10px 0; + } + + .footerSection { + box-sizing: border-box; + flex: 1 1 25%; + font-size: 14px; + min-width: 275px; + padding: 0px 20px; + + a { + border: 0; + color: inherit; + display: inline-block; + line-height: 1.2em; + } + + .footerLink { + padding-right: 20px; + } + } + + .fbOpenSourceFooter { + align-items: center; + display: flex; + flex-flow: row nowrap; + max-width: 25%; + + .facebookOSSLogoSvg { + flex: 0 0 31px; + height: 30px; + margin-right: 10px; + width: 31px; + + path { + fill: $primary-bg; + } + + .middleRing { + opacity: 0.7; + } + + .innerRing { + opacity: 0.45; + } + } + + h2 { + display: block; + font-weight: 900; + line-height: 1em; + } + } + } +} + +@media only screen and (min-width: 900px) { + .footerSection { + &.rightAlign { + margin-left: auto; + max-width: 25%; + text-align: right; + } + } +} \ No newline at end of file diff --git a/docs/_sass/_gridBlock.scss b/docs/_sass/_gridBlock.scss new file mode 100644 index 000000000..679b31c14 --- /dev/null +++ b/docs/_sass/_gridBlock.scss @@ -0,0 +1,115 @@ +.gridBlock { + margin: -5px 0; + padding: 0; + padding-bottom: 20px; + + .blockElement { + padding: 5px 0; + + img { + max-width: 100%; + } + + h3 { + border-bottom: 1px solid rgba($primary-bg, 0.5); + color: $primary-bg; + font-size: 18px; + margin: 0; + padding: 10px 0; + } + } + + .gridClear { + clear: both; + } + +} + +.gridBlock .alignCenter { + text-align: center; +} +.gridBlock .alignRight { + text-align: right; +} +.gridBlock .imageAlignSide { + align-items: center; + display: flex; + flex-flow: row wrap; +} +.blockImage { + max-width: 150px; + width: 50%; +} +.imageAlignTop .blockImage { + margin-bottom: 20px; +} +.imageAlignTop.alignCenter .blockImage { + margin-left: auto; + margin-right: auto; +} +.imageAlignSide .blockImage { + flex: 0 1 100px; + margin-right: 20px; +} +.imageAlignSide .blockContent { + flex: 1 1; +} + +@media only screen and (max-width: 1023px) { + .responsiveList .blockContent { + position: relative; + } + .responsiveList .blockContent > div { + padding-left: 20px; + } + .responsiveList .blockContent::before { + content: "\2022"; + position: absolute; + } +} + +@media only screen and (min-width: 1024px) { + .gridBlock { + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin: -10px -10px 10px -10px; + + .twoByGridBlock { + box-sizing: border-box; + flex: 1 0 50%; + padding: 10px; + } + + .fourByGridBlock { + box-sizing: border-box; + flex: 1 0 25%; + padding: 10px; + } + } + + h2 + .gridBlock { + padding-top: 20px; + } +} + +@media only screen and (min-width: 1400px) { + .gridBlock { + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin: -10px -20px 10px -20px; + + .twoByGridBlock { + box-sizing: border-box; + flex: 1 0 50%; + padding: 10px 20px; + } + + .fourByGridBlock { + box-sizing: border-box; + flex: 1 0 25%; + padding: 10px 20px; + } + } +} \ No newline at end of file diff --git a/docs/_sass/_header.scss b/docs/_sass/_header.scss new file mode 100644 index 000000000..b4cd07113 --- /dev/null +++ b/docs/_sass/_header.scss @@ -0,0 +1,138 @@ +.fixedHeaderContainer { + background: $primary-bg; + color: $primary-overlay; + height: $header-height; + padding: $header-ptop 0 $header-pbot; + position: fixed; + width: 100%; + z-index: 9999; + + a { + align-items: center; + border: 0; + color: $primary-overlay; + display: flex; + flex-flow: row nowrap; + height: $header-height; + } + + header { + display: flex; + flex-flow: row nowrap; + position: relative; + text-align: left; + + img { + height: 24px; + margin-right: 10px; + } + + h2 { + display: block; + font-family: $header-font-family; + font-weight: 900; + line-height: 18px; + position: relative; + } + } +} + +.navigationFull { + height: 34px; + margin-left: auto; + + nav { + position: relative; + + ul { + display: flex; + flex-flow: row nowrap; + margin: 0 -10px; + + li { + padding: 0 10px; + display: block; + + a { + border: 0; + color: $primary-overlay-special; + font-size: 16px; + font-weight: 400; + line-height: 1.2em; + + &:hover { + border-bottom: 2px solid $primary-overlay; + color: $primary-overlay; + } + } + + &.navItemActive { + a { + color: $primary-overlay; + } + } + } + } + } +} + +/* 900px + + + .fixedHeaderContainer { + .navigationWrapper { + nav { + padding: 0 1em; + position: relative; + top: -9px; + + ul { + margin: 0 -0.4em; + li { + display: inline-block; + + a { + padding: 14px 0.4em; + border: 0; + color: $primary-overlay-special; + display: inline-block; + + &:hover { + color: $primary-overlay; + } + } + + &.navItemActive { + a { + color: $primary-overlay; + } + } + } + } + } + + &.navigationFull { + display: inline-block; + } + + &.navigationSlider { + display: none; + } + } + } + + 1200px + + .fixedHeaderContainer { + header { + max-width: 1100px; + } + } + + 1500px + .fixedHeaderContainer { + header { + max-width: 1400px; + } + } + */ \ No newline at end of file diff --git a/docs/_sass/_poweredby.scss b/docs/_sass/_poweredby.scss new file mode 100644 index 000000000..4155b6053 --- /dev/null +++ b/docs/_sass/_poweredby.scss @@ -0,0 +1,69 @@ +.poweredByContainer { + background: $primary-bg; + color: $primary-overlay; + margin-bottom: 20px; + + a { + color: $primary-overlay; + } + + .poweredByWrapper { + h2 { + border-color: $primary-overlay-special; + color: $primary-overlay-special; + } + } + + .poweredByMessage { + color: $primary-overlay-special; + font-size: 14px; + padding-top: 20px; + } +} + +.poweredByItems { + display: flex; + flex-flow: row wrap; + margin: 0 -10px; +} + +.poweredByItem { + box-sizing: border-box; + flex: 1 0 50%; + line-height: 1.1em; + padding: 5px 10px; + + &.itemLarge { + flex-basis: 100%; + padding: 10px; + text-align: center; + + &:nth-child(4) { + padding-bottom: 20px; + } + + img { + max-height: 30px; + } + } +} + +@media only screen and (min-width: 480px) { + .itemLarge { + flex-basis: 50%; + max-width: 50%; + } +} + +@media only screen and (min-width: 1024px) { + .poweredByItem { + flex-basis: 25%; + max-width: 25%; + + &.itemLarge { + padding-bottom: 20px; + text-align: left; + } + } +} + diff --git a/docs/_sass/_promo.scss b/docs/_sass/_promo.scss new file mode 100644 index 000000000..8c9a809dc --- /dev/null +++ b/docs/_sass/_promo.scss @@ -0,0 +1,55 @@ +.promoSection { + display: flex; + flex-flow: column wrap; + font-size: 125%; + line-height: 1.6em; + margin: -10px 0; + position: relative; + z-index: 99; + + .promoRow { + padding: 10px 0; + + .pluginWrapper { + display: block; + + &.ghWatchWrapper, &.ghStarWrapper { + height: 28px; + } + } + + .pluginRowBlock { + display: flex; + flex-flow: row wrap; + margin: 0 -2px; + + .pluginWrapper { + padding: 0 2px; + } + } + } +} + +iframe.pluginIframe { + height: 500px; + margin-top: 20px; + width: 100%; +} + +.iframeContent { + display: none; +} + +.iframePreview { + display: inline-block; + margin-top: 20px; +} + +@media only screen and (min-width: 1024px) { + .iframeContent { + display: block; + } + .iframePreview { + display: none; + } +} \ No newline at end of file diff --git a/docs/_sass/_react_docs_nav.scss b/docs/_sass/_react_docs_nav.scss new file mode 100644 index 000000000..f0a651e7f --- /dev/null +++ b/docs/_sass/_react_docs_nav.scss @@ -0,0 +1,332 @@ +.docsNavContainer { + background: $sidenav; + height: 35px; + left: 0; + position: fixed; + width: 100%; + z-index: 100; +} + +.docMainWrapper { + .wrapper { + &.mainWrapper { + padding-left: 0; + padding-right: 0; + padding-top: 10px; + } + } +} + +.docsSliderActive { + .docsNavContainer { + box-sizing: border-box; + height: 100%; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + padding-bottom: 50px; + } + + .mainContainer { + display: none; + } +} + +.navBreadcrumb { + box-sizing: border-box; + display: flex; + flex-flow: row nowrap; + font-size: 12px; + height: 35px; + overflow: hidden; + padding: 5px 10px; + + a, span { + border: 0; + color: $sidenav-text; + } + + i { + padding: 0 3px; + } +} + +nav.toc { + position: relative; + + section { + padding: 0px; + position: relative; + + .navGroups { + display: none; + padding: 40px 10px 10px; + } + } + + .toggleNav { + background: $sidenav; + color: $sidenav-text; + position: relative; + transition: background-color 0.3s, color 0.3s; + + .navToggle { + cursor: pointer; + height: 24px; + margin-right: 10px; + position: relative; + text-align: left; + width: 18px; + + &::before, &::after { + content: ""; + position: absolute; + top: 50%; + left: 0; + left: 8px; + width: 3px; + height: 6px; + border: 5px solid $sidenav-text; + border-width: 5px 0; + margin-top: -8px; + transform: rotate(45deg); + z-index: 1; + } + + &::after { + transform: rotate(-45deg); + } + + i { + &::before, &::after { + content: ""; + position: absolute; + top: 50%; + left: 2px; + background: transparent; + border-width: 0 5px 5px; + border-style: solid; + border-color: transparent $sidenav-text; + height: 0; + margin-top: -7px; + opacity: 1; + width: 5px; + z-index: 10; + } + + &::after { + border-width: 5px 5px 0; + margin-top: 2px; + } + } + } + + .navGroup { + background: $sidenav-overlay; + margin: 1px 0; + + ul { + display: none; + } + + h3 { + background: $sidenav-overlay; + color: $sidenav-text; + cursor: pointer; + font-size: 14px; + font-weight: 400; + line-height: 1.2em; + padding: 10px; + transition: color 0.2s; + + i:not(:empty) { + width: 16px; + height: 16px; + display: inline-block; + box-sizing: border-box; + text-align: center; + color: rgba($sidenav-text, 0.5); + margin-right: 10px; + transition: color 0.2s; + } + + &:hover { + color: $primary-bg; + + i:not(:empty) { + color: $primary-bg; + } + } + } + + &.navGroupActive { + background: $sidenav-active; + color: $sidenav-text; + + ul { + display: block; + padding-bottom: 10px; + padding-top: 10px; + } + + h3 { + background: $primary-bg; + color: $primary-overlay; + + i { + display: none; + } + } + } + } + + ul { + padding-left: 0; + padding-right: 24px; + + li { + list-style-type: none; + padding-bottom: 0; + padding-left: 0; + + a { + border: none; + color: $sidenav-text; + display: inline-block; + font-size: 14px; + line-height: 1.1em; + margin: 2px 10px 5px; + padding: 5px 0 2px; + transition: color 0.3s; + + &:hover, + &:focus { + color: $primary-bg; + } + + &.navItemActive { + color: $primary-bg; + font-weight: 900; + } + } + } + } + } + + .toggleNavActive { + .navBreadcrumb { + background: $sidenav; + margin-bottom: 20px; + position: fixed; + width: 100%; + } + + section { + .navGroups { + display: block; + } + } + + + .navToggle { + &::before, &::after { + border-width: 6px 0; + height: 0px; + margin-top: -6px; + } + + i { + opacity: 0; + } + } + } +} + +.docsNavVisible { + .navPusher { + .mainContainer { + padding-top: 35px; + } + } +} + +@media only screen and (min-width: 900px) { + .navBreadcrumb { + padding: 5px 0; + } + + nav.toc { + section { + .navGroups { + padding: 40px 0 0; + } + } + } +} + +@media only screen and (min-width: 1024px) { + .navToggle { + display: none; + } + + .docsSliderActive { + .mainContainer { + display: block; + } + } + + .docsNavVisible { + .navPusher { + .mainContainer { + padding-top: 0; + } + } + } + + .docsNavContainer { + background: none; + box-sizing: border-box; + height: auto; + margin: 40px 40px 0 0; + overflow-y: auto; + position: relative; + width: 300px; + } + + nav.toc { + section { + .navGroups { + display: block; + padding-top: 0px; + } + } + + .toggleNavActive { + .navBreadcrumb { + margin-bottom: 0; + position: relative; + } + } + } + + .docMainWrapper { + display: flex; + flex-flow: row nowrap; + margin-bottom: 40px; + + .wrapper { + padding-left: 0; + padding-right: 0; + + &.mainWrapper { + padding-top: 0; + } + } + } + + .navBreadcrumb { + display: none; + h2 { + padding: 0 10px; + } + } +} \ No newline at end of file diff --git a/docs/_sass/_react_header_nav.scss b/docs/_sass/_react_header_nav.scss new file mode 100644 index 000000000..13c0e562b --- /dev/null +++ b/docs/_sass/_react_header_nav.scss @@ -0,0 +1,141 @@ +.navigationFull { + display: none; +} + +.navigationSlider { + position: absolute; + right: 0px; + + .navSlideout { + cursor: pointer; + padding-top: 4px; + position: absolute; + right: 10px; + top: 0; + transition: top 0.3s; + z-index: 101; + } + + .slidingNav { + background: $secondary-bg; + box-sizing: border-box; + height: 0px; + overflow-x: hidden; + padding: 0; + position: absolute; + right: 0px; + top: 0; + transition: height 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55), width 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55); + width: 0; + + ul { + flex-flow: column nowrap; + list-style: none; + padding: 10px; + + li { + margin: 0; + padding: 2px 0; + + a { + color: $primary-bg; + display: inline; + margin: 3px 5px; + padding: 2px 0px; + transition: background-color 0.3s; + + &:focus, + &:hover { + border-bottom: 2px solid $primary-bg; + } + } + } + } + } + + .navSlideoutActive { + .slidingNav { + height: auto; + padding-top: $header-height + $header-pbot; + width: 300px; + } + + .navSlideout { + top: -2px; + .menuExpand { + span:nth-child(1) { + background-color: $text; + top: 16px; + transform: rotate(45deg); + } + span:nth-child(2) { + opacity: 0; + } + span:nth-child(3) { + background-color: $text; + transform: rotate(-45deg); + } + } + } + } +} + +.menuExpand { + display: flex; + flex-flow: column nowrap; + height: 20px; + justify-content: space-between; + + span { + background: $primary-overlay; + border-radius: 3px; + display: block; + flex: 0 0 4px; + height: 4px; + position: relative; + top: 0; + transition: background-color 0.3s, top 0.3s, opacity 0.3s, transform 0.3s; + width: 20px; + } +} + +.navPusher { + border-top: $header-height + $header-ptop + $header-pbot solid $primary-bg; + position: relative; + left: 0; + z-index: 99; + height: 100%; + + &::after { + position: absolute; + top: 0; + right: 0; + width: 0; + height: 0; + background: rgba(0,0,0,0.4); + content: ''; + opacity: 0; + -webkit-transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s; + transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s; + } + + .sliderActive &::after { + width: 100%; + height: 100%; + opacity: 1; + -webkit-transition: opacity 0.5s; + transition: opacity 0.5s; + z-index: 100; + } +} + + +@media only screen and (min-width: 1024px) { + .navigationFull { + display: block; + } + + .navigationSlider { + display: none; + } +} \ No newline at end of file diff --git a/docs/_sass/_reset.scss b/docs/_sass/_reset.scss new file mode 100644 index 000000000..247d92eeb --- /dev/null +++ b/docs/_sass/_reset.scss @@ -0,0 +1,43 @@ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} \ No newline at end of file diff --git a/docs/_sass/_search.scss b/docs/_sass/_search.scss new file mode 100644 index 000000000..49ba03acc --- /dev/null +++ b/docs/_sass/_search.scss @@ -0,0 +1,142 @@ +input[type="search"] { + -moz-appearance: none; + -webkit-appearance: none; +} + +.navSearchWrapper { + align-self: center; + position: relative; + + &::before { + border: 3px solid $primary-overlay-special; + border-radius: 50%; + content: " "; + display: block; + height: 6px; + left: 15px; + width: 6px; + position: absolute; + top: 4px; + z-index: 1; + } + + &::after { + background: $primary-overlay-special; + content: " "; + height: 7px; + left: 24px; + position: absolute; + transform: rotate(-45deg); + top: 12px; + width: 3px; + z-index: 1; + } + + .aa-dropdown-menu { + background: $secondary-bg; + border: 3px solid rgba($text, 0.25); + color: $text; + font-size: 14px; + left: auto !important; + line-height: 1.2em; + right: 0 !important; + + .algolia-docsearch-suggestion--category-header { + background: $primary-overlay-special; + color: $primary-bg; + + .algolia-docsearch-suggestion--highlight { + background-color: $primary-bg; + color: $primary-overlay; + } + } + + .algolia-docsearch-suggestion--title .algolia-docsearch-suggestion--highlight, + .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight { + color: $primary-bg; + } + + .algolia-docsearch-suggestion__secondary, + .algolia-docsearch-suggestion--subcategory-column { + border-color: rgba($text, 0.3); + } + } +} + +input#search_input { + padding-left: 25px; + font-size: 14px; + line-height: 20px; + border-radius: 20px; + background-color: rgba($primary-overlay-special, 0.25); + border: none; + color: rgba($primary-overlay-special, 0); + outline: none; + position: relative; + transition: background-color .2s cubic-bezier(0.68, -0.55, 0.265, 1.55), width .2s cubic-bezier(0.68, -0.55, 0.265, 1.55), color .2s ease; + width: 60px; + + &:focus, &:active { + background-color: $secondary-bg; + color: $text; + width: 240px; + } +} + +.navigationSlider { + .navSearchWrapper { + &::before { + left: 6px; + top: 6px; + } + + &::after { + left: 15px; + top: 14px; + } + } + + input#search_input_react { + box-sizing: border-box; + padding-left: 25px; + font-size: 14px; + line-height: 20px; + border-radius: 20px; + background-color: rgba($primary-overlay-special, 0.25); + border: none; + color: $text; + outline: none; + position: relative; + transition: background-color .2s cubic-bezier(0.68, -0.55, 0.265, 1.55), width .2s cubic-bezier(0.68, -0.55, 0.265, 1.55), color .2s ease; + width: 100%; + + &:focus, &:active { + background-color: $primary-bg; + color: $primary-overlay; + } + } + + .algolia-docsearch-suggestion--subcategory-inline { + display: none; + } + + & > span { + width: 100%; + } + + .aa-dropdown-menu { + background: $secondary-bg; + border: 0px solid $secondary-bg; + color: $text; + font-size: 12px; + line-height: 2em; + max-height: 140px; + min-width: auto; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + padding: 0; + border-radius: 0; + position: relative !important; + width: 100%; + } +} \ No newline at end of file diff --git a/docs/_sass/_slideshow.scss b/docs/_sass/_slideshow.scss new file mode 100644 index 000000000..cde63b696 --- /dev/null +++ b/docs/_sass/_slideshow.scss @@ -0,0 +1,48 @@ +.slideshow { + position: relative; + + .slide { + display: none; + + img { + display: block; + margin: 0 auto; + } + + &.slideActive { + display: block; + } + + a { + border: none; + display: block; + } + } + + .pagination { + display: block; + margin: -10px; + padding: 1em 0; + text-align: center; + width: 100%; + + .pager { + background: transparent; + border: 2px solid rgba(255, 255, 255, 0.5); + border-radius: 50%; + cursor: pointer; + display: inline-block; + height: 12px; + margin: 10px; + transition: background-color 0.3s, border-color 0.3s; + width: 12px; + + &.pagerActive { + background: rgba(255, 255, 255, 0.5); + border-width: 4px; + height: 8px; + width: 8px; + } + } + } +} \ No newline at end of file diff --git a/docs/_sass/_syntax-highlighting.scss b/docs/_sass/_syntax-highlighting.scss new file mode 100644 index 000000000..3bada27e7 --- /dev/null +++ b/docs/_sass/_syntax-highlighting.scss @@ -0,0 +1,129 @@ + + +.rougeHighlight { background-color: $code-bg; color: #93a1a1 } +.rougeHighlight .c { color: #586e75 } /* Comment */ +.rougeHighlight .err { color: #93a1a1 } /* Error */ +.rougeHighlight .g { color: #93a1a1 } /* Generic */ +.rougeHighlight .k { color: #859900 } /* Keyword */ +.rougeHighlight .l { color: #93a1a1 } /* Literal */ +.rougeHighlight .n { color: #93a1a1 } /* Name */ +.rougeHighlight .o { color: #859900 } /* Operator */ +.rougeHighlight .x { color: #cb4b16 } /* Other */ +.rougeHighlight .p { color: #93a1a1 } /* Punctuation */ +.rougeHighlight .cm { color: #586e75 } /* Comment.Multiline */ +.rougeHighlight .cp { color: #859900 } /* Comment.Preproc */ +.rougeHighlight .c1 { color: #72c02c; } /* Comment.Single */ +.rougeHighlight .cs { color: #859900 } /* Comment.Special */ +.rougeHighlight .gd { color: #2aa198 } /* Generic.Deleted */ +.rougeHighlight .ge { color: #93a1a1; font-style: italic } /* Generic.Emph */ +.rougeHighlight .gr { color: #dc322f } /* Generic.Error */ +.rougeHighlight .gh { color: #cb4b16 } /* Generic.Heading */ +.rougeHighlight .gi { color: #859900 } /* Generic.Inserted */ +.rougeHighlight .go { color: #93a1a1 } /* Generic.Output */ +.rougeHighlight .gp { color: #93a1a1 } /* Generic.Prompt */ +.rougeHighlight .gs { color: #93a1a1; font-weight: bold } /* Generic.Strong */ +.rougeHighlight .gu { color: #cb4b16 } /* Generic.Subheading */ +.rougeHighlight .gt { color: #93a1a1 } /* Generic.Traceback */ +.rougeHighlight .kc { color: #cb4b16 } /* Keyword.Constant */ +.rougeHighlight .kd { color: #268bd2 } /* Keyword.Declaration */ +.rougeHighlight .kn { color: #859900 } /* Keyword.Namespace */ +.rougeHighlight .kp { color: #859900 } /* Keyword.Pseudo */ +.rougeHighlight .kr { color: #268bd2 } /* Keyword.Reserved */ +.rougeHighlight .kt { color: #dc322f } /* Keyword.Type */ +.rougeHighlight .ld { color: #93a1a1 } /* Literal.Date */ +.rougeHighlight .m { color: #2aa198 } /* Literal.Number */ +.rougeHighlight .s { color: #2aa198 } /* Literal.String */ +.rougeHighlight .na { color: #93a1a1 } /* Name.Attribute */ +.rougeHighlight .nb { color: #B58900 } /* Name.Builtin */ +.rougeHighlight .nc { color: #268bd2 } /* Name.Class */ +.rougeHighlight .no { color: #cb4b16 } /* Name.Constant */ +.rougeHighlight .nd { color: #268bd2 } /* Name.Decorator */ +.rougeHighlight .ni { color: #cb4b16 } /* Name.Entity */ +.rougeHighlight .ne { color: #cb4b16 } /* Name.Exception */ +.rougeHighlight .nf { color: #268bd2 } /* Name.Function */ +.rougeHighlight .nl { color: #93a1a1 } /* Name.Label */ +.rougeHighlight .nn { color: #93a1a1 } /* Name.Namespace */ +.rougeHighlight .nx { color: #93a1a1 } /* Name.Other */ +.rougeHighlight .py { color: #93a1a1 } /* Name.Property */ +.rougeHighlight .nt { color: #268bd2 } /* Name.Tag */ +.rougeHighlight .nv { color: #268bd2 } /* Name.Variable */ +.rougeHighlight .ow { color: #859900 } /* Operator.Word */ +.rougeHighlight .w { color: #93a1a1 } /* Text.Whitespace */ +.rougeHighlight .mf { color: #2aa198 } /* Literal.Number.Float */ +.rougeHighlight .mh { color: #2aa198 } /* Literal.Number.Hex */ +.rougeHighlight .mi { color: #2aa198 } /* Literal.Number.Integer */ +.rougeHighlight .mo { color: #2aa198 } /* Literal.Number.Oct */ +.rougeHighlight .sb { color: #586e75 } /* Literal.String.Backtick */ +.rougeHighlight .sc { color: #2aa198 } /* Literal.String.Char */ +.rougeHighlight .sd { color: #93a1a1 } /* Literal.String.Doc */ +.rougeHighlight .s2 { color: #2aa198 } /* Literal.String.Double */ +.rougeHighlight .se { color: #cb4b16 } /* Literal.String.Escape */ +.rougeHighlight .sh { color: #93a1a1 } /* Literal.String.Heredoc */ +.rougeHighlight .si { color: #2aa198 } /* Literal.String.Interpol */ +.rougeHighlight .sx { color: #2aa198 } /* Literal.String.Other */ +.rougeHighlight .sr { color: #dc322f } /* Literal.String.Regex */ +.rougeHighlight .s1 { color: #2aa198 } /* Literal.String.Single */ +.rougeHighlight .ss { color: #2aa198 } /* Literal.String.Symbol */ +.rougeHighlight .bp { color: #268bd2 } /* Name.Builtin.Pseudo */ +.rougeHighlight .vc { color: #268bd2 } /* Name.Variable.Class */ +.rougeHighlight .vg { color: #268bd2 } /* Name.Variable.Global */ +.rougeHighlight .vi { color: #268bd2 } /* Name.Variable.Instance */ +.rougeHighlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */ + +.highlighter-rouge { + color: darken(#72c02c, 8%); + font: 800 12px/1.5em Hack, monospace; + max-width: 100%; + + .rougeHighlight { + border-radius: 3px; + margin: 20px 0; + padding: 0px; + overflow-x: scroll; + -webkit-overflow-scrolling: touch; + + table { + background: none; + border: none; + + tbody { + tr { + background: none; + display: flex; + flex-flow: row nowrap; + + td { + display: block; + flex: 1 1; + + &.gutter { + border-right: 1px solid lighten($code-bg, 10%); + color: lighten($code-bg, 15%); + margin-right: 10px; + max-width: 40px; + padding-right: 10px; + + pre { + max-width: 20px; + } + } + } + } + } + } + } +} + +p > .highlighter-rouge, +li > .highlighter-rouge, +a > .highlighter-rouge { + font-size: 16px; + font-weight: 400; + line-height: inherit; +} + +a:hover { + .highlighter-rouge { + color: white; + } +} \ No newline at end of file diff --git a/docs/_sass/_tables.scss b/docs/_sass/_tables.scss new file mode 100644 index 000000000..f847c7013 --- /dev/null +++ b/docs/_sass/_tables.scss @@ -0,0 +1,47 @@ +table { + background: $lightergrey; + border: 1px solid $lightgrey; + border-collapse: collapse; + display:table; + margin: 20px 0; + + thead { + border-bottom: 1px solid $lightgrey; + display: table-header-group; + } + tbody { + display: table-row-group; + } + tr { + display: table-row; + &:nth-of-type(odd) { + background: $greyish; + } + + th, td { + border-right: 1px dotted $lightgrey; + display: table-cell; + font-size: 14px; + line-height: 1.3em; + padding: 10px; + text-align: left; + + &:last-of-type { + border-right: 0; + } + + code { + color: $green; + display: inline-block; + font-size: 12px; + } + } + + th { + color: #000000; + font-weight: bold; + font-family: $header-font-family; + text-transform: uppercase; + } + } +} \ No newline at end of file diff --git a/docs/blog/all.html b/docs/blog/all.html new file mode 100644 index 000000000..bac8ecced --- /dev/null +++ b/docs/blog/all.html @@ -0,0 +1,20 @@ +--- +id: all +layout: blog +category: blog +--- + +
+
+

All Posts

+ {% for post in site.posts %} + {% assign author = site.data.authors[post.author] %} +

+ + {{ post.title }} + + on {{ post.date | date: "%B %e, %Y" }} by {{ author.display_name }} +

+ {% endfor %} +
+
diff --git a/docs/blog/index.html b/docs/blog/index.html new file mode 100644 index 000000000..9f6b25d03 --- /dev/null +++ b/docs/blog/index.html @@ -0,0 +1,12 @@ +--- +id: blog +title: Blog +layout: blog +category: blog +--- + +
+ {% for page in site.posts %} + {% include post.html truncate=true %} + {% endfor %} +
diff --git a/docs/css/main.scss b/docs/css/main.scss new file mode 100644 index 000000000..a13e60875 --- /dev/null +++ b/docs/css/main.scss @@ -0,0 +1,149 @@ +--- +# Only the main Sass file needs front matter (the dashes are enough) +--- +@charset "utf-8"; + +@font-face { + font-family: 'Lato'; + src: url('{{ site.baseurl }}/static/fonts/LatoLatin-Italic.woff2') format('woff2'), + url('{{ site.baseurl }}/static/fonts/LatoLatin-Italic.woff') format('woff'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'Lato'; + src: url('{{ site.baseurl }}/static/fonts/LatoLatin-Black.woff2') format('woff2'), + url('{{ site.baseurl }}/static/fonts/LatoLatin-Black.woff') format('woff'); + font-weight: 900; + font-style: normal; +} + +@font-face { + font-family: 'Lato'; + src: url('{{ site.baseurl }}/static/fonts/LatoLatin-BlackItalic.woff2') format('woff2'), + url('{{ site.baseurl }}/static/fonts/LatoLatin-BlackItalic.woff') format('woff'); + font-weight: 900; + font-style: italic; +} + +@font-face { + font-family: 'Lato'; + src: url('{{ site.baseurl }}/static/fonts/LatoLatin-Light.woff2') format('woff2'), + url('{{ site.baseurl }}/static/fonts/LatoLatin-Light.woff') format('woff'); + font-weight: 300; + font-style: normal; +} + +@font-face { + font-family: 'Lato'; + src: url('{{ site.baseurl }}/static/fonts/LatoLatin-Regular.woff2') format('woff2'), + url('{{ site.baseurl }}/static/fonts/LatoLatin-Regular.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +// Our variables +$base-font-family: 'Lato', Calibri, Arial, sans-serif; +$header-font-family: 'Lato', 'Helvetica Neue', Arial, sans-serif; +$base-font-size: 18px; +$small-font-size: $base-font-size * 0.875; +$base-line-height: 1.4em; + +$spacing-unit: 12px; + +// Two configured colors (see _config.yml) +$primary-bg: {{ site.color.primary }}; +$secondary-bg: {{ site.color.secondary }}; + +// $primary-bg overlays +{% if site.color.primary-overlay == 'light' %} +$primary-overlay: darken($primary-bg, 70%); +$primary-overlay-special: darken($primary-bg, 40%); +{% else %} +$primary-overlay: #fff; +$primary-overlay-special: lighten($primary-bg, 30%); +{% endif %} + +// $secondary-bg overlays +{% if site.color.secondary-overlay == 'light' %} +$text: #393939; +$sidenav: darken($secondary-bg, 20%); +$sidenav-text: $text; +$sidenav-overlay: darken($sidenav, 10%); +$sidenav-active: lighten($sidenav, 10%); +{% else %} +$text: #fff; +$sidenav: lighten($secondary-bg, 20%); +$sidenav-text: $text; +$sidenav-overlay: lighten($sidenav, 10%); +$sidenav-active: darken($sidenav, 10%); +{% endif %} + +$code-bg: #002b36; + +$header-height: 34px; +$header-ptop: 10px; +$header-pbot: 8px; + +// Width of the content area +$content-width: 900px; + +// Table setting variables +$lightergrey: #F8F8F8; +$greyish: #E8E8E8; +$lightgrey: #B0B0B0; +$green: #2db04b; + +// Using media queries with like this: +// @include media-query($on-palm) { +// .wrapper { +// padding-right: $spacing-unit / 2; +// padding-left: $spacing-unit / 2; +// } +// } +@mixin media-query($device) { + @media screen and (max-width: $device) { + @content; + } +} + + + +// Import partials from `sass_dir` (defaults to `_sass`) +@import + "reset", + "base", + "header", + "search", + "syntax-highlighting", + "promo", + "buttons", + "gridBlock", + "poweredby", + "footer", + "react_header_nav", + "react_docs_nav", + "tables", + "blog" +; + +// Anchor links +// http://ben.balter.com/2014/03/13/pages-anchor-links/ +.header-link { + position: absolute; + margin-left: 0.2em; + opacity: 0; + + -webkit-transition: opacity 0.2s ease-in-out 0.1s; + -moz-transition: opacity 0.2s ease-in-out 0.1s; + -ms-transition: opacity 0.2s ease-in-out 0.1s; +} + +h2:hover .header-link, +h3:hover .header-link, +h4:hover .header-link, +h5:hover .header-link, +h6:hover .header-link { + opacity: 1; +} diff --git a/docs/docs/index.html b/docs/docs/index.html new file mode 100644 index 000000000..fa6ec8b5a --- /dev/null +++ b/docs/docs/index.html @@ -0,0 +1,6 @@ +--- +id: docs +title: Docs +layout: redirect +destination: getting-started.html +--- diff --git a/docs/feed.xml b/docs/feed.xml new file mode 100644 index 000000000..a6628bd84 --- /dev/null +++ b/docs/feed.xml @@ -0,0 +1,30 @@ +--- +layout: null +--- + + + + {{ site.title | xml_escape }} + {{ site.description | xml_escape }} + {{ site.url }}{{ site.baseurl }}/ + + {{ site.time | date_to_rfc822 }} + {{ site.time | date_to_rfc822 }} + Jekyll v{{ jekyll.version }} + {% for post in site.posts limit:10 %} + + {{ post.title | xml_escape }} + {{ post.content | xml_escape }} + {{ post.date | date_to_rfc822 }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {% for tag in post.tags %} + {{ tag | xml_escape }} + {% endfor %} + {% for cat in post.categories %} + {{ cat | xml_escape }} + {% endfor %} + + {% endfor %} + + diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..b1c91460e --- /dev/null +++ b/docs/index.md @@ -0,0 +1,49 @@ +--- +layout: home +title: Example - You can over-ride the default title here +id: home +--- + +## Gridblocks + +You can use the gridblocks sub-template to arrange information into nice responsive grids. There are two ways to add a grid block, the first is by adding a yml file to the `_data` folder and then using it as a data source: + +{% include content/gridblocks.html data_source=site.data.features align="center" %} + +The second is simply to use the raw HTML of the grid blocks: + +
+
+
+

Feature 1

+

This is a description of the feature.

+
+
+ +
+
+

Feature 2

+

This is another description of a feature.

+
+
+
+ +Use the first option as a preference, because it will make your site easier for non-technical folks to edit and update. + +Gridblocks have additional options for layout compared to the above: + +Left aligned: + +{% include content/gridblocks.html data_source=site.data.features align="left" %} + +Right aligned: + +{% include content/gridblocks.html data_source=site.data.features align="right" %} + +Images on the side: + +{% include content/gridblocks.html data_source=site.data.features imagealign="side" %} + +Four column layout: + +{% include content/gridblocks.html data_source=site.data.features layout="fourColumn" align="center" %} \ No newline at end of file diff --git a/docs/static/favicon.png b/docs/static/favicon.png new file mode 100644 index 000000000..73b518993 Binary files /dev/null and b/docs/static/favicon.png differ diff --git a/docs/static/fonts/LatoLatin-Black.woff b/docs/static/fonts/LatoLatin-Black.woff new file mode 100644 index 000000000..d1e2579bf Binary files /dev/null and b/docs/static/fonts/LatoLatin-Black.woff differ diff --git a/docs/static/fonts/LatoLatin-Black.woff2 b/docs/static/fonts/LatoLatin-Black.woff2 new file mode 100644 index 000000000..4127b4d0b Binary files /dev/null and b/docs/static/fonts/LatoLatin-Black.woff2 differ diff --git a/docs/static/fonts/LatoLatin-BlackItalic.woff b/docs/static/fonts/LatoLatin-BlackItalic.woff new file mode 100644 index 000000000..142c1c9c4 Binary files /dev/null and b/docs/static/fonts/LatoLatin-BlackItalic.woff differ diff --git a/docs/static/fonts/LatoLatin-BlackItalic.woff2 b/docs/static/fonts/LatoLatin-BlackItalic.woff2 new file mode 100644 index 000000000..e9862e690 Binary files /dev/null and b/docs/static/fonts/LatoLatin-BlackItalic.woff2 differ diff --git a/docs/static/fonts/LatoLatin-Italic.woff b/docs/static/fonts/LatoLatin-Italic.woff new file mode 100644 index 000000000..d8cf84c8b Binary files /dev/null and b/docs/static/fonts/LatoLatin-Italic.woff differ diff --git a/docs/static/fonts/LatoLatin-Italic.woff2 b/docs/static/fonts/LatoLatin-Italic.woff2 new file mode 100644 index 000000000..aaa5a35c3 Binary files /dev/null and b/docs/static/fonts/LatoLatin-Italic.woff2 differ diff --git a/docs/static/fonts/LatoLatin-Light.woff b/docs/static/fonts/LatoLatin-Light.woff new file mode 100644 index 000000000..e7d4278cc Binary files /dev/null and b/docs/static/fonts/LatoLatin-Light.woff differ diff --git a/docs/static/fonts/LatoLatin-Light.woff2 b/docs/static/fonts/LatoLatin-Light.woff2 new file mode 100644 index 000000000..b6d028836 Binary files /dev/null and b/docs/static/fonts/LatoLatin-Light.woff2 differ diff --git a/docs/static/fonts/LatoLatin-Regular.woff b/docs/static/fonts/LatoLatin-Regular.woff new file mode 100644 index 000000000..bf73a6d9f Binary files /dev/null and b/docs/static/fonts/LatoLatin-Regular.woff differ diff --git a/docs/static/fonts/LatoLatin-Regular.woff2 b/docs/static/fonts/LatoLatin-Regular.woff2 new file mode 100644 index 000000000..a4d084bfb Binary files /dev/null and b/docs/static/fonts/LatoLatin-Regular.woff2 differ diff --git a/docs/static/images/android.svg b/docs/static/images/android.svg new file mode 100644 index 000000000..4b26abe11 --- /dev/null +++ b/docs/static/images/android.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + diff --git a/docs/static/images/apple.svg b/docs/static/images/apple.svg new file mode 100644 index 000000000..8da202513 --- /dev/null +++ b/docs/static/images/apple.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/docs/static/images/facebook.png b/docs/static/images/facebook.png new file mode 100644 index 000000000..1166fd33e Binary files /dev/null and b/docs/static/images/facebook.png differ diff --git a/docs/static/images/instagram.png b/docs/static/images/instagram.png new file mode 100644 index 000000000..bc7e3c681 Binary files /dev/null and b/docs/static/images/instagram.png differ diff --git a/docs/static/logo.svg b/docs/static/logo.svg new file mode 100644 index 000000000..ae3f3b681 --- /dev/null +++ b/docs/static/logo.svg @@ -0,0 +1,560 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + 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 +//Lhg38CQK5JQA== + + + diff --git a/docs/static/og_image.png b/docs/static/og_image.png new file mode 100644 index 000000000..3b3c69dd1 Binary files /dev/null and b/docs/static/og_image.png differ diff --git a/docs/static/oss_logo.png b/docs/static/oss_logo.png new file mode 100644 index 000000000..a4699e118 Binary files /dev/null and b/docs/static/oss_logo.png differ diff --git a/docs/support.md b/docs/support.md new file mode 100644 index 000000000..c214590e1 --- /dev/null +++ b/docs/support.md @@ -0,0 +1,8 @@ +--- +layout: support +title: Support Example +id: support +category: support +--- + +This is a static page disconnected from the blog or docs collections that can be added at a top-level. \ No newline at end of file