feat: Initial commit for public release
24
.github/bug_report.md
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Report bug(s) encountered with the plugin!
|
||||
title: "[Bug]"
|
||||
labels: bug
|
||||
assignees: tjtanjin
|
||||
|
||||
---
|
||||
|
||||
**General Information**
|
||||
Minecraft server version:
|
||||
SurvivalTop version:
|
||||
|
||||
**Bug Description**
|
||||
Describe as clear as possible what the bug is. The more detailed information you give, the better we can help resolve it. If possible, include the steps that can be taken to reproduce the bug as well. You are also strongly encouraged to share the size of your playerbase and claims (for performance related issues) along with any other information of your setup that may be useful.
|
||||
|
||||
**Media**
|
||||
If applicable, add screenshots, videos or any media that may help explain your problem.
|
||||
|
||||
**Configuration File**
|
||||
It is highly preferred for you to share your configuration file so we can better know what are the possible options that may have resulted in the bug. Remember to remove sensitive details like database login credentials if you do so!
|
||||
|
||||
**Additional Information**
|
||||
Include any additional information that may of help to resolving the issue.
|
20
.github/feature_request.md
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest a feature or enhancement for the plugin!
|
||||
title: "[Feature]"
|
||||
labels: enhancement
|
||||
assignees: tjtanjin
|
||||
|
||||
---
|
||||
|
||||
**Feature Description**
|
||||
Describe in detail the feature that you have in mind. You are also strongly encouraged to describe use case scenarios that can show the benefits of your idea. Note that while we are open to suggestions, extremely niche suggestions may be hard to adopt and ideas that are able to benefit the larger population are much more preferable.
|
||||
|
||||
**Alternatives Explored**
|
||||
Describe any alternative solutions or workarounds that you may have considered.
|
||||
|
||||
**Media**
|
||||
If applicable, add screenshots, videos or even drawings/diagrams that may help better explain your idea.
|
||||
|
||||
**Additional Information**
|
||||
Include any additional information that may be relevant to your proposed feature.
|
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
.idea/
|
||||
target/
|
||||
lib
|
95
README.md
Normal file
@ -0,0 +1,95 @@
|
||||
|
||||
<h1 align="center">QuickTax</h1>
|
||||
<p align="center">
|
||||
<img width=300 src="https://i.imgur.com/0YN8YoJ.png" />
|
||||
</p>
|
||||
|
||||
## Table of Contents
|
||||
* [Introduction](#introduction)
|
||||
* [Features](#features)
|
||||
* [Technologies](#technologies)
|
||||
* [Setup](#setup)
|
||||
* [Team](#team)
|
||||
* [Contributing](#contributing)
|
||||
* [Others](#others)
|
||||
|
||||
### Introduction
|
||||
**QuickTax** is a powerful tax management plugin for your server's economy! If you have always
|
||||
struggled with managing your server's ever-growing economy, then this may very well just be the
|
||||
plugin that you need! Whether it's taxing all players equally or based on their ranks or based
|
||||
on their balance, this plugin supports it all! Want to include property tax by taxing based
|
||||
on claimblocks? It's possible as well! Even better, schedule tax collections so that you can set
|
||||
up once and let the plugin do the rest of the work! Worried about performance? the plugin does
|
||||
most of its task asynchronously, minimizing the performance impact that it can have on your server!
|
||||
|
||||
The spigot link to download the plugin can be found **[here](https://www.spigotmc.org/resources/quicktax.96495/)**. If you require any assistance, please reach out for support on our **[discord](https://discord.gg/X8VSdZvBQY).** Alternatively, you may also open a github issue.
|
||||
|
||||
### Features
|
||||
<p align="center">
|
||||
<img src="https://i.imgur.com/6vzKjyl.gif" />
|
||||
<img src="https://i.imgur.com/t8aFkbe.gif" />
|
||||
</p>
|
||||
|
||||
Some of the key features provided by the plugin are as shown below:
|
||||
- Collect tax from all players
|
||||
- Collect tax from players by rank
|
||||
- Collect tax from players by balance
|
||||
- Collect tax from a specific player
|
||||
- Collect additional tax depending on the number of claimblocks the player has (requires
|
||||
[**GriefPrevention**](https://www.spigotmc.org/resources/griefprevention.1884/))
|
||||
- Schedule real-time collection of taxes
|
||||
- Option to play sound to players on collection
|
||||
- Option for players to view next collection tim
|
||||
- Option for players to self-pay tax directly to the server
|
||||
- Track/store player and server tax stats (YAML/MySQL)
|
||||
- Withdraw money from the server tax balance
|
||||
- Setup taxpayer leaderboard via signs and heads!
|
||||
- PlaceholderAPI support (requires PlaceholderAPI)
|
||||
- Fully customizable messages (with options for your own language files!)
|
||||
|
||||
The features above are just a glimpse of what the plugin is capable of. More detailed guides and
|
||||
example setups can be found in our **[wiki](https://github.com/tjtanjin/QuickTax/wiki)**.
|
||||
|
||||
### Technologies
|
||||
Technologies used by QuickTax are as below:
|
||||
##### Done with:
|
||||
|
||||
<p align="center">
|
||||
<img height="150" width="150" src="https://brandlogos.net/wp-content/uploads/2013/03/java-eps-vector-logo.png"/>
|
||||
</p>
|
||||
<p align="center">
|
||||
Java
|
||||
</p>
|
||||
|
||||
##### Project Repository
|
||||
```
|
||||
https://github.com/tjtanjin/QuickTax
|
||||
```
|
||||
|
||||
### Setup
|
||||
Setting up the QuickTax project locally would involve the following steps:
|
||||
1) First, `cd` to the directory of where you wish to store the project and fork/clone this repository. An example is provided below:
|
||||
```
|
||||
$ cd /home/user/exampleuser/projects/
|
||||
$ git clone https://github.com/tjtanjin/QuickTax.git
|
||||
```
|
||||
2) Make any updates/changes you wish to the code. Once ready, you may build the plugin with the following command:
|
||||
```
|
||||
mvn clean install
|
||||
```
|
||||
If you are satisfied with your work and would like to contribute to the project, feel free to open a pull request! The forking workflow is preferred in this case so if you have the intention to contribute from the get-go, consider forking this repository before you start!
|
||||
|
||||
### Team
|
||||
* [Tan Jin](https://github.com/tjtanjin)
|
||||
|
||||
### Contributing
|
||||
If you have code to contribute to the project, open a pull request from your fork and describe
|
||||
clearly the changes and what they are intended to do (enhancement, bug fixes etc). Alternatively,
|
||||
you may simply raise bugs or suggestions by opening an issue.
|
||||
|
||||
Note that as this was my first minecraft plugin, the structure of the codebase leaves more to be
|
||||
desired. My plan to rewrite the plugin for version 2.0.0 is delayed indefinitely until I am able to
|
||||
free up more time (or until a volunteer comes along :stuck_out_tongue_closed_eyes:)
|
||||
|
||||
### Others
|
||||
For any questions regarding the project, please reach out for support via **[discord](https://discord.gg/X8VSdZvBQY).**
|
4
docs/.circleci/circle_urls.sh
Normal file
@ -0,0 +1,4 @@
|
||||
REPO_ID=$(curl https://api.github.com/repos/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME} | jq --raw-output '.id')
|
||||
echo "Repo ID is ${REPO_ID}"
|
||||
BASEURL=https://${CIRCLE_BUILD_NUM}-${REPO_ID}-gh.circle-artifacts.com/0/${CIRCLE_PROJECT_REPONAME}
|
||||
sed -i "26 s,.*,baseurl: $BASEURL,g" "_config.yml"
|
50
docs/.circleci/config.yml
Normal file
@ -0,0 +1,50 @@
|
||||
version: 2.1
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
|
||||
# The build workflow will build a preview for the site, intended for PRs
|
||||
build:
|
||||
jobs:
|
||||
- build-site:
|
||||
filters:
|
||||
branches:
|
||||
ignore: master
|
||||
|
||||
build_jekyll: &build_jekyll
|
||||
name: Jekyll Build
|
||||
command: |
|
||||
echo "Building RSE Blog for Preview"
|
||||
cp ~/repo/.circleci/circle_urls.sh ~/repo/circle_urls.sh
|
||||
cd ~/repo
|
||||
chmod u+x circle_urls.sh
|
||||
bash circle_urls.sh
|
||||
bundle exec jekyll build
|
||||
|
||||
jobs:
|
||||
build-site:
|
||||
docker:
|
||||
- image: circleci/ruby:2.4.1
|
||||
working_directory: ~/repo
|
||||
environment:
|
||||
- JEKYLL_ENV: production
|
||||
- NOKOGIRI_USE_SYSTEM_LIBRARIES: true
|
||||
- BUNDLE_PATH: ~/repo/vendor/bundle
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache:
|
||||
keys:
|
||||
- rubygems-v1
|
||||
- run:
|
||||
name: Bundle Install
|
||||
command: |
|
||||
cd ~/repo
|
||||
bundle check || bundle install
|
||||
- save_cache:
|
||||
key: rubygems-v1
|
||||
paths:
|
||||
- vendor/bundle
|
||||
- run: *build_jekyll
|
||||
- store_artifacts:
|
||||
path: ~/repo/_site
|
||||
destination: docsy-jekyll
|
32
docs/CHANGELOG.md
Normal file
@ -0,0 +1,32 @@
|
||||
# Changelog
|
||||
|
||||
This is a manually generated log to track changes to the repository for each release.
|
||||
Each section should include general headers such as **Implemented enhancements**
|
||||
and **Merged pull requests**. All closed issued and bug fixes should be
|
||||
represented by the pull requests that fixed them.
|
||||
Critical items to know are:
|
||||
|
||||
- renamed commands
|
||||
- deprecated / removed commands
|
||||
- changed defaults
|
||||
- backward incompatible changes
|
||||
- migration guidance
|
||||
- changed behaviour
|
||||
|
||||
## [master](https://github.com/vsoch/docsy-jekyll/tree/master)
|
||||
- adding more verbose example for subfolders (0.0.24)
|
||||
- sidebar fix to support multiple top level menus (0.0.23)
|
||||
- added support for github_branch (default 'master') in config (0.0.22)
|
||||
- adding support in footer to icon and link to linkedin url (0.0.21)
|
||||
- updating repository with copyright notice, google analytics bug fix (0.0.2)
|
||||
- fixing link to repository in about.md (0.0.19)
|
||||
- use jquery locally, in case that jquery is unreachable in some places (0.0.18)
|
||||
- hiding sidebar links to reflect parent functionality (0.0.17)
|
||||
- adding breadcrumb link to documentation root (0.0.16)
|
||||
- bug with link in top breadcrumb (404) missing baseurl (0.0.15)
|
||||
- bug that news items (posts) don't render in search (0.0.14)
|
||||
- minimum width of 150px for top right site name (0.0.13)
|
||||
- tags page and option to link to it from post/docs tags (0.0.12)
|
||||
- adding search endpoint tags to docs (0.0.11)
|
||||
- adding site.url to config, making links in readme absolute (0.0.1)
|
||||
- start of theme (0.0.0)
|
13
docs/COPYRIGHT
Normal file
@ -0,0 +1,13 @@
|
||||
Copyright 2019-2021 Vanessa Sochat
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
24
docs/Gemfile
Normal file
@ -0,0 +1,24 @@
|
||||
source "https://rubygems.org"
|
||||
ruby RUBY_VERSION
|
||||
|
||||
# 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.2.1"
|
||||
|
||||
# This is the default theme for new Jekyll sites. You may change this to anything you like.
|
||||
# gem "minima"
|
||||
|
||||
# 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
|
||||
|
||||
# If you have any plugins, put them here!
|
||||
# group :jekyll_plugins do
|
||||
# gem "jekyll-github-metadata", "~> 1.0"
|
||||
# end
|
280
docs/Gemfile.lock
Normal file
@ -0,0 +1,280 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (6.0.4.1)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
tzinfo (~> 1.1)
|
||||
zeitwerk (~> 2.2, >= 2.2.2)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.11.1)
|
||||
colorator (1.1.0)
|
||||
commonmarker (0.17.13)
|
||||
ruby-enum (~> 0.5)
|
||||
concurrent-ruby (1.1.9)
|
||||
dnsruby (1.61.7)
|
||||
simpleidn (~> 0.1)
|
||||
em-websocket (0.5.2)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
ethon (0.15.0)
|
||||
ffi (>= 1.15.0)
|
||||
eventmachine (1.2.7-x64-mingw32)
|
||||
execjs (2.8.1)
|
||||
faraday (1.8.0)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0.1)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.1)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
ffi (1.15.4-x64-mingw32)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (3.0.1)
|
||||
github-pages (221)
|
||||
github-pages-health-check (= 1.17.9)
|
||||
jekyll (= 3.9.0)
|
||||
jekyll-avatar (= 0.7.0)
|
||||
jekyll-coffeescript (= 1.1.1)
|
||||
jekyll-commonmark-ghpages (= 0.1.6)
|
||||
jekyll-default-layout (= 0.1.4)
|
||||
jekyll-feed (= 0.15.1)
|
||||
jekyll-gist (= 1.5.0)
|
||||
jekyll-github-metadata (= 2.13.0)
|
||||
jekyll-mentions (= 1.6.0)
|
||||
jekyll-optional-front-matter (= 0.3.2)
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-readme-index (= 0.3.0)
|
||||
jekyll-redirect-from (= 0.16.0)
|
||||
jekyll-relative-links (= 0.6.1)
|
||||
jekyll-remote-theme (= 0.4.3)
|
||||
jekyll-sass-converter (= 1.5.2)
|
||||
jekyll-seo-tag (= 2.7.1)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-swiss (= 1.0.0)
|
||||
jekyll-theme-architect (= 0.2.0)
|
||||
jekyll-theme-cayman (= 0.2.0)
|
||||
jekyll-theme-dinky (= 0.2.0)
|
||||
jekyll-theme-hacker (= 0.2.0)
|
||||
jekyll-theme-leap-day (= 0.2.0)
|
||||
jekyll-theme-merlot (= 0.2.0)
|
||||
jekyll-theme-midnight (= 0.2.0)
|
||||
jekyll-theme-minimal (= 0.2.0)
|
||||
jekyll-theme-modernist (= 0.2.0)
|
||||
jekyll-theme-primer (= 0.6.0)
|
||||
jekyll-theme-slate (= 0.2.0)
|
||||
jekyll-theme-tactile (= 0.2.0)
|
||||
jekyll-theme-time-machine (= 0.2.0)
|
||||
jekyll-titles-from-headings (= 0.5.3)
|
||||
jemoji (= 0.12.0)
|
||||
kramdown (= 2.3.1)
|
||||
kramdown-parser-gfm (= 1.1.0)
|
||||
liquid (= 4.0.3)
|
||||
mercenary (~> 0.3)
|
||||
minima (= 2.5.1)
|
||||
nokogiri (>= 1.12.5, < 2.0)
|
||||
rouge (= 3.26.0)
|
||||
terminal-table (~> 1.4)
|
||||
github-pages-health-check (1.17.9)
|
||||
addressable (~> 2.3)
|
||||
dnsruby (~> 1.60)
|
||||
octokit (~> 4.0)
|
||||
public_suffix (>= 3.0, < 5.0)
|
||||
typhoeus (~> 1.3)
|
||||
html-pipeline (2.14.0)
|
||||
activesupport (>= 2)
|
||||
nokogiri (>= 1.4)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (0.9.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (3.9.0)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 0.7)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (>= 1.17, < 3)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.3.3)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 1.7, < 4)
|
||||
safe_yaml (~> 1.0)
|
||||
jekyll-avatar (0.7.0)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-coffeescript (1.1.1)
|
||||
coffee-script (~> 2.2)
|
||||
coffee-script-source (~> 1.11.1)
|
||||
jekyll-commonmark (1.3.1)
|
||||
commonmarker (~> 0.14)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-commonmark-ghpages (0.1.6)
|
||||
commonmarker (~> 0.17.6)
|
||||
jekyll-commonmark (~> 1.2)
|
||||
rouge (>= 2.0, < 4.0)
|
||||
jekyll-default-layout (0.1.4)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-feed (0.15.1)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-gist (1.5.0)
|
||||
octokit (~> 4.2)
|
||||
jekyll-github-metadata (2.13.0)
|
||||
jekyll (>= 3.4, < 5.0)
|
||||
octokit (~> 4.0, != 4.4.0)
|
||||
jekyll-mentions (1.6.0)
|
||||
html-pipeline (~> 2.3)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-optional-front-matter (0.3.2)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-paginate (1.1.0)
|
||||
jekyll-readme-index (0.3.0)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-redirect-from (0.16.0)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-relative-links (0.6.1)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-remote-theme (0.4.3)
|
||||
addressable (~> 2.0)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
|
||||
rubyzip (>= 1.3.0, < 3.0)
|
||||
jekyll-sass-converter (1.5.2)
|
||||
sass (~> 3.4)
|
||||
jekyll-seo-tag (2.7.1)
|
||||
jekyll (>= 3.8, < 5.0)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-swiss (1.0.0)
|
||||
jekyll-theme-architect (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-cayman (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-dinky (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-hacker (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-leap-day (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-merlot (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-midnight (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-minimal (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-modernist (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-primer (0.6.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-github-metadata (~> 2.9)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-slate (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-tactile (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-time-machine (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-titles-from-headings (0.5.3)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
jemoji (0.12.0)
|
||||
gemoji (~> 3.0)
|
||||
html-pipeline (~> 2.2)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
kramdown (2.3.1)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.7.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.3.6)
|
||||
minima (2.5.1)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-feed (~> 0.9)
|
||||
jekyll-seo-tag (~> 2.1)
|
||||
minitest (5.14.4)
|
||||
multipart-post (2.1.1)
|
||||
nokogiri (1.12.5-x64-mingw32)
|
||||
racc (~> 1.4)
|
||||
octokit (4.21.0)
|
||||
faraday (>= 0.9)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (4.0.6)
|
||||
racc (1.6.0)
|
||||
rb-fsevent (0.11.0)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rouge (3.26.0)
|
||||
ruby-enum (0.9.0)
|
||||
i18n
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.7.4)
|
||||
sass-listen (~> 4.0.0)
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
sawyer (0.8.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (> 0.8, < 2.0)
|
||||
simpleidn (0.2.1)
|
||||
unf (~> 0.1.4)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
thread_safe (0.3.6)
|
||||
typhoeus (1.4.0)
|
||||
ethon (>= 0.9.0)
|
||||
tzinfo (1.2.9)
|
||||
thread_safe (~> 0.1)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.8-x64-mingw32)
|
||||
unicode-display_width (1.8.0)
|
||||
zeitwerk (2.5.1)
|
||||
|
||||
PLATFORMS
|
||||
x64-mingw32
|
||||
|
||||
DEPENDENCIES
|
||||
github-pages
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.7.4p191
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.30
|
201
docs/LICENSE
Normal file
@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
101
docs/README.md
Normal file
@ -0,0 +1,101 @@
|
||||
# Docsy Jekyll Theme
|
||||
|
||||
[![CircleCI](https://circleci.com/gh/vsoch/docsy-jekyll/tree/master.svg?style=svg)](https://circleci.com/gh/vsoch/docsy-jekyll/tree/master)
|
||||
<a href="https://jekyll-themes.com/docsy-jekyll/">
|
||||
<img src="https://img.shields.io/badge/featured%20on-JT-red.svg" height="20" alt="Jekyll Themes Shield" >
|
||||
</a>
|
||||
|
||||
![https://raw.githubusercontent.com/vsoch/docsy-jekyll/master/assets/img/docsy-jekyll.png](https://raw.githubusercontent.com/vsoch/docsy-jekyll/master/assets/img/docsy-jekyll.png)
|
||||
|
||||
This is a [starter template](https://vsoch.github.com/docsy-jekyll/) for a Docsy jekyll theme, based
|
||||
on the Beautiful [Docsy](https://github.com/google/docsy) that renders with Hugo. This version is intended for
|
||||
native deployment on GitHub pages. The original [Apache License](https://github.com/vsoch/docsy-jekyll/blob/master/LICENSE) is included.
|
||||
|
||||
## Changes
|
||||
|
||||
The site is intended for purely documentation, so while the front page banner
|
||||
is useful for business or similar, this author (@vsoch) preferred to have
|
||||
the main site page go directly to the Documentation view. Posts
|
||||
are still provided via a feed.
|
||||
|
||||
## Usage
|
||||
|
||||
### 1. Get the code
|
||||
|
||||
You can clone the repository right to where you want to host the docs:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/vsoch/docsy-jekyll.git docs
|
||||
cd docs
|
||||
```
|
||||
|
||||
### 2. Customize
|
||||
|
||||
To edit configuration values, customize the [_config.yml](https://github.com/vsoch/docsy-jekyll/blob/master/_config.yml).
|
||||
To add pages, write them into the [pages](https://github.com/vsoch/docsy-jekyll/blob/master/pages) folder.
|
||||
You define urls based on the `permalink` attribute in your pages,
|
||||
and then add them to the navigation by adding to the content of [_data/toc.myl](https://github.com/vsoch/docsy-jekyll/blob/master/_data/toc.yml).
|
||||
The top navigation is controlled by [_data/navigation.yml](https://github.com/vsoch/docsy-jekyll/blob/master/_data/navigation.yml)
|
||||
|
||||
### 3. Options
|
||||
|
||||
Most of the configuration values in the [_config.yml](https://github.com/vsoch/docsy-jekyll/blob/master/_config.yml) are self explanatory,
|
||||
and for more details, see the [getting started page](https://vsoch.github.io/docsy-jekyll/docs/getting-started)
|
||||
rendered on the site.
|
||||
|
||||
### 4. Serve
|
||||
|
||||
Depending on how you installed jekyll:
|
||||
|
||||
```bash
|
||||
jekyll serve
|
||||
# or
|
||||
bundle exec jekyll serve
|
||||
```
|
||||
|
||||
**NOTE:** If the above serve command throws an error saying `require': cannot load such file -- webrick (LoadError)` try to run `bundle add webrick` to automatically add the webrick gem to your Gemfile, or manually add `gem "webrick"` line to the Gemfile and then run the serve command again.
|
||||
|
||||
|
||||
### 5. Run as a container in dev or prod
|
||||
|
||||
#### Software Dependencies
|
||||
|
||||
If you want to run docsy jekyll via a container for development (dev) or production (prod) you can use containers. This approach requires installing [docker-ce](https://docs.docker.com/engine/install/ubuntu/) and [docker-compose](https://docs.docker.com/compose/install/).
|
||||
|
||||
#### Customization
|
||||
|
||||
Note that the [docker-compose.yml](docker-compose.yml) file is using the [jekyll/jekyll:3.8](https://hub.docker.com/r/jekyll/jekyll/tags) image. If you want to make your build more reproducible, you can specify a particular version for jekyll (tag). Note that at the development time of writing this documentation, the latest was tag 4.0.0,
|
||||
and it [had a bug](https://github.com/fastai/fastpages/issues/267#issuecomment-620612896) that prevented the server from deploying.
|
||||
|
||||
If you are deploying a container to production, you should remove the line to
|
||||
mount the bundles directory to the host in the docker-compose.yml. Change:
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- "./:/srv/jekyll"
|
||||
- "./vendor/bundle:/usr/local/bundle"
|
||||
# remove "./vendor/bundle:/usr/local/bundle" volume when deploying in production
|
||||
```
|
||||
|
||||
to:
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- "./:/srv/jekyll"
|
||||
```
|
||||
|
||||
This additional volume is optimal for development so you can cache the bundle dependencies,
|
||||
but should be removed for production.
|
||||
|
||||
#### Start Container
|
||||
|
||||
Once your docker-compose to download the base container and bring up the server:
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
You can then open your browser to [http://localhost:4000](http://localhost:4000)
|
||||
to see the server running.
|
||||
|
||||
> Node : changes `baseurl: ""` in _config.yml when you are running in local and prod according to the requirement.
|
1
docs/VERSION
Normal file
@ -0,0 +1 @@
|
||||
0.0.24
|
95
docs/_config.yml
Normal file
@ -0,0 +1,95 @@
|
||||
# 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 these 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
|
||||
# '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: QuickTax
|
||||
email: cjtanjin@gmail.com
|
||||
author: tjtanjin
|
||||
description: > # this means to ignore newlines until "baseurl:"
|
||||
QuickTax is a powerful yet performant tax management plugin suited for a vast majority of economy-based servers.
|
||||
This plugin was created in a time where there was a lack of capable and up to date tax plugins to help server
|
||||
owners better balance their economy. It is highly flexible and provides users with lots of control over the
|
||||
collection of taxes on their server.
|
||||
|
||||
# Add your baseurl here (your repository) but DO NOT CHANGE THE LINE NUMBER without editing .circleci/circle_urls.sh
|
||||
baseurl: "/quicktax" # the subpath of your site, e.g. /blog
|
||||
|
||||
# This is mostly for testing
|
||||
url: "tjtanjin.com" # the base hostname & protocol for your site
|
||||
|
||||
# Social (First three Required)
|
||||
repo: "https://github.com/tjtanjin/quicktax"
|
||||
github_user: "tjtanjin"
|
||||
github_repo: "quicktax"
|
||||
github_branch: "master"
|
||||
|
||||
# Optional
|
||||
linkedin: tjtanjin
|
||||
|
||||
# Should there be feedback buttons at the bottom of pages?
|
||||
feedback: true
|
||||
|
||||
# Link to a privacy policy in footer, uncomment and define if wanted
|
||||
# privacy: https://domain.com/privacy
|
||||
|
||||
# google-analytics: UA-XXXXXXXXXX
|
||||
# Image and (square) dimension for logo (don't start with /)
|
||||
# If commented, will use material hat theme
|
||||
# logo: "assets/img/logo/SRCC-square-red.png"
|
||||
logo_pixels: 34
|
||||
color: "#30638e"
|
||||
# color: "#8c1515" # primary color for header, buttons
|
||||
|
||||
# Build settings
|
||||
markdown: kramdown
|
||||
|
||||
# If you add tags to pages, define this variable to link them to some external search
|
||||
# If you want to link to tags locally on the site, leave this commented out
|
||||
# tag_search_endpoint: https://ask.cyberinfrastructure.org/search?q=
|
||||
tag_color: primary # danger, success, warning, primary, info, secondary
|
||||
|
||||
accentColor: red # purple, green, etc.
|
||||
themeColor: red # purple, green, blue, orange, purple, grey
|
||||
fixedNav: 'true' # true or false
|
||||
|
||||
permalink: /:year/:title/
|
||||
markdown: kramdown
|
||||
exclude: [_site, CHANGELOG.md, LICENSE, README.md, vendor]
|
||||
|
||||
# Collections
|
||||
collections:
|
||||
docs:
|
||||
output: true
|
||||
permalink: /:collection/:path
|
||||
|
||||
# Defaults
|
||||
defaults:
|
||||
- scope:
|
||||
path: "_docs"
|
||||
type: "docs"
|
||||
values:
|
||||
layout: page
|
||||
-
|
||||
scope:
|
||||
path: ""
|
||||
type: "pages"
|
||||
values:
|
||||
layout: "page"
|
||||
-
|
||||
scope:
|
||||
path: "posts"
|
||||
type: "posts"
|
||||
values:
|
||||
layout: "post"
|
4
docs/_data/navigation.yml
Normal file
@ -0,0 +1,4 @@
|
||||
- title: About
|
||||
url: about
|
||||
- title: Documentation
|
||||
url: docs
|
25
docs/_data/quizzes/example-quiz.yml
Normal file
@ -0,0 +1,25 @@
|
||||
title: This is the Quiz Title
|
||||
randomized: false
|
||||
questions:
|
||||
|
||||
- type: "multiple-choice"
|
||||
question: "What is your favorite color?"
|
||||
items:
|
||||
- choice: Red
|
||||
correct: null
|
||||
- choice: Blue
|
||||
correct: null
|
||||
- choice: Green
|
||||
correct: null
|
||||
followup: There is no correct answer to asking your favorite color! All choices would be good.
|
||||
|
||||
- type: "multiple-choice"
|
||||
question: "True or False, Pittsburgh is West of Philadelphia"
|
||||
items:
|
||||
- choice: True
|
||||
correct: true
|
||||
- choice: False
|
||||
correct: false
|
||||
followup: |
|
||||
The answer is True! Pittsburgh is 304.9 miles West of Philadelphia, or approximately
|
||||
a car ride of 4 hours and 52 minutes. Buckle up!
|
23
docs/_data/toc.yml
Normal file
@ -0,0 +1,23 @@
|
||||
- title: Documentation
|
||||
url: docs
|
||||
links:
|
||||
- title: "Getting Started"
|
||||
url: "docs/getting-started"
|
||||
children:
|
||||
- title: Features
|
||||
url: "docs/getting-started#getting-started"
|
||||
- title: Development
|
||||
url: "docs/getting-started#development"
|
||||
- title: Customization
|
||||
url: "docs/getting-started#customization"
|
||||
- title: "About"
|
||||
url: "about"
|
||||
- title: "News"
|
||||
url: "news"
|
||||
- title: "Extras"
|
||||
url: "docs/extras"
|
||||
links:
|
||||
- title: Quizzes
|
||||
url: "docs/extras/example-quiz"
|
||||
- title: Tags Page
|
||||
url: "tags"
|
36
docs/_docs/example-page.md
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
title: A Nested Page
|
||||
description: An example of a nested page
|
||||
---
|
||||
|
||||
# A Nested Page
|
||||
|
||||
This is an example of a page that doesn't have a permalink defined, and
|
||||
is not included in the table of contents (`_data/toc.yml`). This means
|
||||
that it will render based on it's path. Since it's in `docs/example-page.md`,
|
||||
the url will be `docs/example-page/`.
|
||||
|
||||
## Link to a subfolder
|
||||
|
||||
Now let's say we want to link to a subfolder, specifically with this
|
||||
setup:
|
||||
|
||||
```
|
||||
docs/
|
||||
example-page.md (-- we are here
|
||||
subfolder/
|
||||
example-page.md (-- we want to link here
|
||||
```
|
||||
|
||||
You can provide the relative path to the file, like `subfolder/example-page.md`
|
||||
and Jekyll will handle parsing it. For example:
|
||||
|
||||
- [here is that link](subfolder/example-page)
|
||||
|
||||
And {% include doc.html name="here" path="subfolder/example-page" %} is the same link,
|
||||
but generated with the include statement:
|
||||
|
||||
```
|
||||
{% raw %}{% include doc.html name="here" path="subfolder/example-page" %}{% endraw %}
|
||||
```
|
||||
|
63
docs/_docs/extras/example-quiz.md
Normal file
@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Quiz
|
||||
description: How to add interactive quizzes to your site.
|
||||
---
|
||||
|
||||
# Quizzes
|
||||
|
||||
As of version 0.0.12, docsy-jekyll has support for basic quizzes! These are
|
||||
intended to help educate your users about the content of your documentation.
|
||||
For a quiz, you can add a new file to the folder `_data/quizzes`, and write a
|
||||
questions file based on the format shown in `_data/quizzes/example-quiz.yml`.
|
||||
Here is a simple example of a multiple choice question (which can also serve as
|
||||
True/False):
|
||||
|
||||
```yaml
|
||||
title: This is the Quiz Title
|
||||
randomized: false
|
||||
questions:
|
||||
|
||||
- type: "multiple-choice"
|
||||
question: "True or False, Pittsburgh is West of Philadelphia"
|
||||
items:
|
||||
- choice: True
|
||||
correct: true
|
||||
- choice: False
|
||||
correct: false
|
||||
followup: |
|
||||
The answer is True! Pittsburgh is 304.9 miles West of
|
||||
Philadelphia, or approximately a car ride of
|
||||
4 hours and 52 minutes. Buckle up!
|
||||
```
|
||||
|
||||
The quiz is rendered with a "Show Answer" button below each question, and when
|
||||
the user clicks it, any questions that are flagged with `correct: true` will be
|
||||
bolded, and if a followup section is included, it will be displayed.
|
||||
See the live example at the end of this page.
|
||||
|
||||
## Options
|
||||
|
||||
#### Title
|
||||
|
||||
If you include a title, it will be rendered at the top of the quiz. This is
|
||||
optional - you can leave it out and add it before the include on the page.
|
||||
|
||||
#### Random
|
||||
|
||||
If you want your questions to be presented randomly, just add randomized: true
|
||||
to the data.
|
||||
|
||||
|
||||
## Example Quiz
|
||||
|
||||
If I want to include the quiz located at `_data/quizzes/example-quiz.yml`, I
|
||||
can do so like this:
|
||||
|
||||
```
|
||||
{% raw %}{% include quiz.html file='example-quiz' %}{% endraw %}
|
||||
```
|
||||
|
||||
The rendered quiz is shown here:
|
||||
|
||||
|
||||
{% include quiz.html file='example-quiz' %}
|
17
docs/_docs/extras/index.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
title: Extras
|
||||
description: Extras, including quizzes.
|
||||
tags:
|
||||
- survey
|
||||
---
|
||||
|
||||
# Extras
|
||||
|
||||
Extras include other integrations that aren't relevant to style or customization,
|
||||
but can further enhance your documentation pages. Currently, we have support
|
||||
for adding interactive quizzes.
|
||||
|
||||
- [Quizzes](example-quiz)
|
||||
- [Tags]({{ site.baseurl }}/tags/)
|
||||
|
||||
Would you like to see another question type, or another kind of extra? Please [open an issue]({{ site.repo }}/issues/new).
|
390
docs/_docs/getting-started.md
Normal file
@ -0,0 +1,390 @@
|
||||
---
|
||||
title: Getting Started
|
||||
tags:
|
||||
- jekyll
|
||||
- github
|
||||
description: Getting started with Docsy Jekyll
|
||||
---
|
||||
|
||||
# Getting Started
|
||||
|
||||
## Features
|
||||
|
||||
### User Interaction
|
||||
|
||||
|
||||
On the right side of any page, you'll notice links to edit the page, or
|
||||
open an issue. This ensures that any time you have a question or want to
|
||||
suggest or request a change, you can do so immediately and link directly
|
||||
to the section of interest. The sections on the page also have permalinks so
|
||||
you can link directly to them.
|
||||
|
||||
### Search
|
||||
|
||||
The entire site, including posts and documentation, is indexed and then available
|
||||
for search at the top or side of the page. Give it a try! The content is rendered
|
||||
into window data that is used by lunr.js to generate the search results.
|
||||
If you want to exclude any file from search, add this to its front end matter:
|
||||
|
||||
```
|
||||
---
|
||||
layout: null
|
||||
excluded_in_search: true
|
||||
---
|
||||
```
|
||||
|
||||
The example above is for a javascript file in the assets folder that is used as a template,
|
||||
but should not be included in search.
|
||||
|
||||
### External Search
|
||||
|
||||
If you have an external site with a search GET endpoint (meaning one that ends
|
||||
in `?q=<term>`, then you can automatically link page tags to search this endpoint.
|
||||
For example, on an HPC site I'd want a tag like "mpi" to do a search on
|
||||
[http://ask.cyberinfrastructure.org](http://ask.cyberinfrastructure.org) for mpi.
|
||||
See the [tags](#tags) section below for how to configure this.
|
||||
|
||||
### Documentation
|
||||
|
||||
Documentation pages should be written in the `docs` folder of the repository,
|
||||
and you are allowed to use whatever level of nesting (subfolders) that
|
||||
works for you! It's a Jekyll [collection](https://jekyllrb.com/docs/collections/), which means that you
|
||||
can add other content (images, scripts) and it will be included for linking to.
|
||||
To create subfolders with files, you can simply create new markdon files. For example:
|
||||
|
||||
- `_docs/subfolder/example-page.md` renders to `http://localhost:4000/docsy-jekyll/docs/subfolder/example-page/`
|
||||
- `_docs/subfolder.md` renders to `http://localhost:4000/docsy-jekyll/docs/subfolder/`
|
||||
|
||||
And the page you are reading now renders from `_docs/getting-started.md`
|
||||
|
||||
#### Organization
|
||||
|
||||
The url that will render is based on the path. For example, if we had the following structure:
|
||||
|
||||
```
|
||||
docs/
|
||||
getting-started.md
|
||||
clusters/
|
||||
sherlock/
|
||||
getting-started.md
|
||||
```
|
||||
|
||||
The first page (akin to the one you are reading) would render at it's path,
|
||||
`/docs/getting-started/`.
|
||||
|
||||
|
||||
#### Linking
|
||||
|
||||
From that page, we could provide the
|
||||
direct path in markdown to any subfolder to link to it, such as the second
|
||||
getting started page for sherlock:
|
||||
|
||||
```
|
||||
{% raw %}[example](clusters/sherlock/getting-started.md){% endraw %}
|
||||
```
|
||||
|
||||
[Here](example-page) is an example link to a relative path of a file (`example-page.md`)
|
||||
in the same directory, and from that page you can test linking to a subfolder.
|
||||
In the case of not having a subfolder, we could write the link out directly:
|
||||
|
||||
```
|
||||
{% raw %}[example]({{ site.baseurl }}/docs/clusters/sherlock/getting-started.md){% endraw %}
|
||||
```
|
||||
|
||||
or just put the relative path:
|
||||
|
||||
```
|
||||
{% raw %}[Here](example-page){% endraw %}
|
||||
```
|
||||
|
||||
or better, there is a shortand trick! We can use the provided "includes"
|
||||
template to do the same based on the path to create a link:
|
||||
|
||||
```
|
||||
{% raw %}{% include doc.html name="Sherlock Cluster" path="clusters/sherlock/getting-started" %}{% endraw %}
|
||||
```
|
||||
The path should be relative to the docs folder.
|
||||
|
||||
### Pages
|
||||
|
||||
The `pages` folder uses the same page layout, but is not part of the docs collection.
|
||||
The two are provided to create a distinction between website pages (e.g., about,
|
||||
feed.xml) and documentation pages.
|
||||
|
||||
### Navigation
|
||||
|
||||
Whether you place your page under "pages" or "docs," for those pages that you want added to the navigation,
|
||||
you should add them to `_data/toc.yml`. If you've defined a `permalink` in the
|
||||
front end matter, you can use that (e.g., "About" below). If you haven't and
|
||||
want to link to docs, the url is the path starting with the docs folder.
|
||||
Here is an example (currently the active example):
|
||||
|
||||
```yaml
|
||||
- title: Documentation
|
||||
url: docs
|
||||
links:
|
||||
- title: "Getting Started"
|
||||
url: "docs/getting-started"
|
||||
children:
|
||||
- title: Features
|
||||
url: "docs/getting-started#getting-started"
|
||||
- title: Development
|
||||
url: "docs/getting-started#development"
|
||||
- title: Customization
|
||||
url: "docs/getting-started#customization"
|
||||
- title: "Extras"
|
||||
url: "docs/extras"
|
||||
children:
|
||||
- title: Quizzes
|
||||
url: "docs/extras/example-quiz"
|
||||
- title: "About"
|
||||
url: "about"
|
||||
- title: "News"
|
||||
url: "news
|
||||
```
|
||||
|
||||
If you want to add an external url for a parent or child, do this:
|
||||
|
||||
```yaml
|
||||
- title: GitHub Repository
|
||||
external_url: https://www.github.com/vsoch/mkdocs-jekyll
|
||||
```
|
||||
|
||||
### News Posts
|
||||
|
||||
It might be the case that your site or group has news items that would
|
||||
warrent sharing with the community, and should be available as a feed.
|
||||
For this reason, you can write traditional [posts](https://jekyllrb.com/docs/posts/) in the `_posts`
|
||||
folder that will parse into the site [feed]({{ site.baseurl }}/feed.xml)
|
||||
The bottom of the page links the user to a post archive, where posts are organized
|
||||
according to the year.
|
||||
|
||||
### Buttons
|
||||
|
||||
Buttons come in a nice array of colors. Here is the code for a basic example,
|
||||
and you'd want to vary the `.btn-<tag>` to get different classes.
|
||||
|
||||
```html
|
||||
<button class="btn btn-success">.btn-success</button>
|
||||
```
|
||||
|
||||
<button class="btn btn-success">.btn-success</button>
|
||||
<button class="btn btn-info">.btn-info</button>
|
||||
<button class="btn btn-secondary">.btn-secondary</button>
|
||||
<button class="btn btn-primary">.btn-primary</button>
|
||||
<button class="btn btn-danger">.btn-danger</button>
|
||||
<button class="btn btn-warning">.btn-warning</button>
|
||||
|
||||
### Badges
|
||||
|
||||
For news post items, it's nice to be able to tag it with something that indicates
|
||||
a status, such as "warning" or "alert." For this reason, you can add badges to
|
||||
the front end matter of any post page, and they will render colored by a type,
|
||||
with the tag of your choice. For example, here is an example header for
|
||||
a post:
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "Two Thousand Nineteen"
|
||||
date: 2019-06-28 18:52:21
|
||||
categories: jekyll update
|
||||
badges:
|
||||
- type: warning
|
||||
tag: warning-badge
|
||||
- type: danger
|
||||
tag: danger-badge
|
||||
---
|
||||
```
|
||||
|
||||
And here is the post preview with the rendered badges that it produces:
|
||||
|
||||
<span class="badge badge-warning">warning-badge</span>
|
||||
<span class="badge badge-danger">danger-badge</span>
|
||||
|
||||
And the other badges that you can define include success, info, secondary,
|
||||
and primary.
|
||||
|
||||
<span class="badge badge-success">success-badge</span>
|
||||
<span class="badge badge-info">info-badge</span>
|
||||
<span class="badge badge-secondary">secondary-badge</span>
|
||||
<span class="badge badge-primary">primary-badge</span>
|
||||
|
||||
### Alerts
|
||||
|
||||
{% include alert.html type="info" title="What is an alert?" content="An alert is a box that can stand out to indicate important information. You can choose from levels success, warning, danger, info, and primary. This example is an info box, and the code for another might look like this:" %}
|
||||
|
||||
```
|
||||
{%raw%}{% include alert.html type="info" title="Here is another!" %}{%endraw%}
|
||||
```
|
||||
|
||||
Just for fun, here are all the types:
|
||||
|
||||
{% include alert.html type="warning" content="This is a warning" %}
|
||||
{% include alert.html type="danger" content="This alerts danger!" %}
|
||||
{% include alert.html type="success" content="This alerts success" %}
|
||||
{% include alert.html type="info" content="This is useful information." %}
|
||||
{% include alert.html type="primary" content="This is a primary alert" %}
|
||||
{% include alert.html type="secondary" content="This is a secondary alert" %}
|
||||
|
||||
### Quotes
|
||||
|
||||
You can include block quotes to emphasize text.
|
||||
|
||||
> Here is an example. Isn't this much more prominent to the user?
|
||||
|
||||
## Development
|
||||
|
||||
Initially (on OS X), you will need to setup [Brew](http://brew.sh/) which is a package manager for OS X and [Git](https://git-scm.com/). To install Brew and Git, run the following commands:
|
||||
|
||||
```bash
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
brew install git
|
||||
```
|
||||
|
||||
If you are on Debian/Ubuntu, then you can easily install git with `apt-get`
|
||||
|
||||
```bash
|
||||
apt-get update && apt-get install -y git
|
||||
```
|
||||
|
||||
### Install Jekyll
|
||||
|
||||
You can also install Jekyll with brew.
|
||||
|
||||
```bash
|
||||
$ brew install ruby
|
||||
$ gem install jekyll
|
||||
$ gem install bundler
|
||||
$ bundle install
|
||||
```
|
||||
|
||||
On Ubuntu I do a different method:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
|
||||
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
|
||||
exec $SHELL
|
||||
rbenv install 2.3.1
|
||||
rbenv global 2.3.1
|
||||
gem install bundler
|
||||
rbenv rehash
|
||||
ruby -v
|
||||
|
||||
# Rails
|
||||
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs
|
||||
gem install rails -v 4.2.6
|
||||
rbenv rehash
|
||||
|
||||
# Jekyll
|
||||
gem install jekyll
|
||||
gem install github-pages
|
||||
gem install jekyll-sass-converter
|
||||
|
||||
rbenv rehash
|
||||
```
|
||||
|
||||
### Get the code
|
||||
|
||||
You should first fork the repository to your GitHub organization or username,
|
||||
and then clone it.
|
||||
|
||||
```bash
|
||||
$ git clone https://github.com/<username>/mkdocs-jekyll.git docs
|
||||
$ cd docs
|
||||
```
|
||||
|
||||
You can clone the repository right to where you want to host the docs:
|
||||
|
||||
```bash
|
||||
$ git clone https://github.com/<username>/mkdocs-jekyll.git docs
|
||||
$ cd docs
|
||||
```
|
||||
|
||||
|
||||
### Serve
|
||||
|
||||
Depending on how you installed jekyll:
|
||||
|
||||
```bash
|
||||
jekyll serve
|
||||
# or
|
||||
bundle exec jekyll serve
|
||||
```
|
||||
|
||||
|
||||
### Preview
|
||||
|
||||
We provide a [CircleCI](https://circleci.com/) configuration recipe that you
|
||||
can use to preview your site on CircleCI before merging into master. You
|
||||
should follow the instructions to [set up a project](https://circleci.com/docs/enterprise/quick-start/),
|
||||
and then in the project settings be sure to enable building forked build requests,
|
||||
and to cancel redundant builds. The preview will be built on CircleCI, and saved
|
||||
to static files for you to browse. The only change you will need is to edit
|
||||
the static files location to be the name of your respository, which is at te
|
||||
bottom of the `.circleci/config.yml` file:
|
||||
|
||||
```yaml
|
||||
- store_artifacts:
|
||||
path: ~/repo/_site
|
||||
destination: mkdocs-jekyll
|
||||
```
|
||||
|
||||
In the above, the destination should coincide with your repository name.
|
||||
Remember that for most links, CircleCI won't honor an `index.html` file in a subfolder
|
||||
(e.g., `subfolder/index.html` will not be served as `subfolder/`, so for example,
|
||||
you might need to turn this:
|
||||
|
||||
```
|
||||
https://<circleci>/0/mkdocs-jekyll/docs/getting-started/
|
||||
```
|
||||
into this:
|
||||
|
||||
```
|
||||
https://<circleci>/0/mkdocs-jekyll/docs/getting-started/index.html
|
||||
```
|
||||
|
||||
## Customization
|
||||
|
||||
#### config.yml
|
||||
|
||||
To edit configuration values, customize the [_config.yml](_config.yml).
|
||||
Most are documented there, and please [open an issue](https://www.github.com/{{ site.github_user }}/{{ site.github_user }}/issues) if you have questions.
|
||||
|
||||
#### Adding pages
|
||||
|
||||
To add pages, write them into the [pages](pages) folder.
|
||||
You define urls based on the `permalink` attribute in your pages,
|
||||
and then add them to the navigation by adding to the content of [_data/toc.yml](_data/toc.yml).
|
||||
|
||||
#### Tags
|
||||
|
||||
If you include tags on a page, by default they will link to the [tags page]({{ site.url }}{{ site.baseurl }}/tags) on the site. However, if you define a `tag_search_endpoint` url in your configuration file, by clicking
|
||||
the tag, the user will be taken to this page to search for it. As an example,
|
||||
we define the current search endpoint to be Ask Cyberinfrastructure, and
|
||||
page tags link to a search on it:
|
||||
|
||||
```yaml
|
||||
tag_search_endpoint: https://ask.cyberinfrastructure.org/search?q=
|
||||
tag_color: danger # danger, success, warning, primary, secondary, info
|
||||
```
|
||||
|
||||
Note that you can also choose a color! The tags appear at the top of the page,
|
||||
as they do on this page. The tags should be defined like this in the front end
|
||||
matter:
|
||||
|
||||
```yaml
|
||||
tags:
|
||||
- jekyll
|
||||
- github
|
||||
```
|
||||
|
||||
They are appended to the first h1 block, so generally your pages should have a header.
|
||||
If you comment out this variable, then each of your tags will link to it's appropriate
|
||||
spot on the tags page linked above.
|
||||
|
||||
```yaml
|
||||
#tag_search_endpoint: https://ask.cyberinfrastructure.org/search?q=
|
||||
tag_color: primary # danger, success, warning, primary, info, secondary
|
||||
```
|
||||
|
9
docs/_docs/subfolder.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
title: The Subfolder Page
|
||||
description: An example of a subfolder page.
|
||||
---
|
||||
|
||||
# A Subfolder Page.
|
||||
|
||||
This is an example of a page that doesn't have a permalink defined, and
|
||||
is not included in the table of contents (`_data/toc.yml`).
|
9
docs/_docs/subfolder/example-page.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
title: A Nested Page
|
||||
description: An example of a nested page in a subfolder.
|
||||
---
|
||||
|
||||
# A Nested Page
|
||||
|
||||
This is an example of a page that doesn't have a permalink defined, and
|
||||
is not included in the table of contents (`_data/toc.yml`).
|
4
docs/_includes/alert.html
Normal file
@ -0,0 +1,4 @@
|
||||
<div class="alert alert-{{ include.type }}" role="alert">
|
||||
<h4 class="alert-heading">{% if include.title %}{{ include.title }}{% else %}{{ include.type }}{% endif %}</h4>
|
||||
{{ include.content }}
|
||||
</div>
|
1
docs/_includes/doc.html
Normal file
@ -0,0 +1 @@
|
||||
<a href="{{ site.baseurl }}/docs/{{ include.path }}">{% if include.name %}{{ include.name }}{% else %}{{ include.path }}{% endif %}</a>
|
6
docs/_includes/editable.html
Normal file
@ -0,0 +1,6 @@
|
||||
<a href="{{ site.repo }}/edit/{% if site.github_branch %}{{ site.github_branch }}{% else %}master{% endif %}/{{ page.path }}" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
|
||||
<a href="{{ site.repo }}/issues/new?labels={% if page.editable %}{{ page.editable }}{% else %}question{% endif %}&title=Question:&body=Question on: {{ site.repo }}/tree/master/{{ page.path }}" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
|
||||
<a href="{{ site.repo }}/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
|
||||
<!-- this will parse through the header fields and add a button to open
|
||||
an issue / ask a question on Github. The editable field should be in
|
||||
the post frontend matter, and refer to the label to open the issue for -->
|
58
docs/_includes/feedback.html
Normal file
@ -0,0 +1,58 @@
|
||||
{% if site.feedback %}<style>
|
||||
.feedback--answer {
|
||||
display: inline-block;
|
||||
}
|
||||
.feedback--answer-no {
|
||||
margin-left: 1em;
|
||||
}
|
||||
.feedback--response {
|
||||
display: none;
|
||||
margin-top: 1em;
|
||||
}
|
||||
.feedback--response__visible {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
<h5 class="feedback--title">Feedback</h5>
|
||||
<p class="feedback--question">Was this page helpful?</p>
|
||||
<button class="feedback--answer feedback--answer-yes">Yes</button>
|
||||
<button class="feedback--answer feedback--answer-no">No</button>
|
||||
<p class="feedback--response feedback--response-yes">
|
||||
Glad to hear it! Please <a href="{{ site.repo }}/issues/new">tell us how we can improve</a>.
|
||||
</p>
|
||||
<p class="feedback--response feedback--response-no">
|
||||
Sorry to hear that. Please <a href="{{ site.repo }}/issues/new">tell us how we can improve</a>.
|
||||
</p>
|
||||
<script>
|
||||
const yesButton = document.querySelector('.feedback--answer-yes');
|
||||
const noButton = document.querySelector('.feedback--answer-no');
|
||||
const yesResponse = document.querySelector('.feedback--response-yes');
|
||||
const noResponse = document.querySelector('.feedback--response-no');
|
||||
const disableButtons = () => {
|
||||
yesButton.disabled = true;
|
||||
noButton.disabled = true;
|
||||
};
|
||||
const sendFeedback = (value) => {
|
||||
if (typeof ga !== 'function') return;
|
||||
const args = {
|
||||
command: 'send',
|
||||
hitType: 'event',
|
||||
category: 'Helpful',
|
||||
action: 'click',
|
||||
label: window.location.pathname,
|
||||
value: value
|
||||
};
|
||||
ga(args.command, args.hitType, args.category, args.action, args.label, args.value);
|
||||
};
|
||||
yesButton.addEventListener('click', () => {
|
||||
yesResponse.classList.add('feedback--response__visible');
|
||||
disableButtons();
|
||||
sendFeedback(1);
|
||||
});
|
||||
noButton.addEventListener('click', () => {
|
||||
noResponse.classList.add('feedback--response__visible');
|
||||
disableButtons();
|
||||
sendFeedback(0);
|
||||
});
|
||||
</script>{% endif %}<br/>
|
||||
|
38
docs/_includes/footer.html
Normal file
@ -0,0 +1,38 @@
|
||||
<footer class="bg-dark py-5 row d-print-none">
|
||||
<div class="container-fluid mx-sm-5">
|
||||
<div class="row">
|
||||
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
|
||||
<ul class="list-inline mb-0">
|
||||
{% if site.twitter %}
|
||||
<li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="" aria-label="Twitter" data-original-title="Twitter">
|
||||
<a class="text-white" target="_blank" href="https://twitter.com/{{ site.twitter }}">
|
||||
<i class="fab fa-twitter"></i>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if site.linkedin %}
|
||||
<li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="" aria-label="LinkedIn" data-original-title="LinkedIn">
|
||||
<a class="text-white" target="_blank" href="https://linkedin.com/in/{{ site.linkedin }}">
|
||||
<i class="fab fa-linkedin"></i>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
|
||||
<ul class="list-inline mb-0">
|
||||
<li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="" aria-label="GitHub" data-original-title="GitHub">
|
||||
<a class="text-white" target="_blank" href="{{ site.repo }}">
|
||||
<i class="fab fa-github"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
|
||||
<small class="text-white">© {{ 'now' | date: "%Y" }} {{ site.author }} All Rights Reserved</small>
|
||||
{% if site.privacy %}<small class="ml-1"><a href="{{ site.privacy }}" target="_blank">Privacy Policy</a></small>{% endif %}
|
||||
<p class="mt-2"><a href="/about/">About Docsy</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
9
docs/_includes/google-analytics.html
Normal file
@ -0,0 +1,9 @@
|
||||
{% if site.google-analytics %}<script async src='https://www.google-analytics.com/analytics.js'></script>
|
||||
<script type="application/javascript">
|
||||
var doNotTrack = false;
|
||||
if (!doNotTrack) {
|
||||
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
|
||||
ga('create', '{{ site.google-analytics }}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
}
|
||||
</script>{% endif %}
|
43
docs/_includes/head.html
Normal file
@ -0,0 +1,43 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<!-- Copyright 2019-2021 Vanessa Sochat-->
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="generator" content="Hugo 0.55.6" />
|
||||
|
||||
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="/docs/index.xml">
|
||||
|
||||
<link rel="shortcut icon" href="{{ site.baseurl }}/assets/favicons/favicon.ico" >
|
||||
<link rel="apple-touch-icon" href="{{ site.baseurl }}/assets/favicons/apple-touch-icon-180x180.png" sizes="180x180">
|
||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicons/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicons/favicon-32x32.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicons/android-36x36.png" sizes="36x36">
|
||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicons/android-48x48.png" sizes="48x48">
|
||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicons/android-72x72.png" sizes="72x72">
|
||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicons/android-96x196.png" sizes="96x196">
|
||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicons/android-144x144.png" sizes="144x144">
|
||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicons/android-192x192.png"sizes="192x192">
|
||||
|
||||
<title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
|
||||
<meta property="og:title" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}" />
|
||||
<meta property="og:description" content="{% if page.description %}{{ page.description }}{% else %}{{ site.description }}{% endif %}" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="{{ site.url }}" />
|
||||
<meta property="og:site_name" content="{{ site.url }}" />
|
||||
|
||||
<meta itemprop="name" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}">
|
||||
<meta itemprop="description" content="{% if page.description %}{{ page.description | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}"/>
|
||||
<meta name="twitter:description" content="{% if page.description %}{{ page.description | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}"/>
|
||||
|
||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css">
|
||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/palette.css">
|
||||
<script
|
||||
src="{{ site.baseurl }}/assets/js/jquery-3.3.1/jquery-3.3.1.min.js"
|
||||
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
|
||||
crossorigin="anonymous"></script>
|
||||
</head>
|
48
docs/_includes/header.html
Normal file
@ -0,0 +1,48 @@
|
||||
<header>
|
||||
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
|
||||
<a class="navbar-brand" href="{{ site.baseurl }}/">
|
||||
<span class="navbar-logo"></span>{% include logo.svg %}<span class="text-uppercase font-weight-bold">{{ site.title }}</span>
|
||||
</a>
|
||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||
<ul class="navbar-nav mt-2 mt-lg-0">{% if site.repo %}
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class="nav-link" href="{{ site.repo }}" target="_blank"><span>GitHub</span></a>
|
||||
</li>{% endif %}{% for link in site.data.navigation %}
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class="nav-link" href="{% if link.url %}{{ site.baseurl }}/{{ link.url }}{% else %}{{ link.external_url }}{% endif %}" ><span>{{ link.title }}</span></a>
|
||||
</li>{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navbar-nav d-none d-lg-block">
|
||||
<input type="search" class="form-control td-search-input" placeholder=" Search this site…" aria-label="Search this site…" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<div class="navbar-nav d-none d-lg-block">
|
||||
<a class="gh-source" data-gh-source="github" href="{{ site.repo }}" title="Go to repository" data-md-state="done">
|
||||
<div class="gh-source__repository">
|
||||
<i class="fab fa fa-github fa-2x" style='padding-right:20px; float:left; margin-top:5px'></i>
|
||||
{{ site.github_user }}/{{ site.github_repo }}
|
||||
<ul class="gh-source__facts"><li class="gh-source__fact" id='stars'></li><li id="forks" class="gh-source__fact"></li></ul></div></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var url = "https://api.github.com/search/repositories?q={{ site.github_user }}/{{ site.github_repo }}";
|
||||
fetch(url, {
|
||||
headers: {"Accept":"application/vnd.github.preview"}
|
||||
}).then(function(e) {
|
||||
return e.json()
|
||||
}).then(function(r) {
|
||||
console.log(r.items[0])
|
||||
stars = r.items[0]['stargazers_count']
|
||||
forks = r.items[0]['forks_count']
|
||||
$('#stars').text(stars + " Stars")
|
||||
$('#forks').text(forks + " Forks")
|
||||
});
|
||||
});
|
||||
</script>
|
1
docs/_includes/logo.svg
Normal file
After Width: | Height: | Size: 15 KiB |
60
docs/_includes/navigation.html
Normal file
@ -0,0 +1,60 @@
|
||||
<svg class="md-svg">
|
||||
<defs>
|
||||
<svg>
|
||||
<path d="M160 304q0 10-3.125 20.5t-10.75 19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM320 304q0 10-3.125 20.5t-10.75 19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM360 304q0-30-17.25-51t-46.75-21q-10.25 0-48.75 5.25-17.75 2.75-39.25 2.75t-39.25-2.75q-38-5.25-48.75-5.25-29.5 0-46.75 21t-17.25 51q0 22 8 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0 37.25-1.75t35-7.375 30.5-15 20.25-25.75 8-38.375zM416 260q0 51.75-15.25 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5-41.75 1.125q-19.5 0-35.5-0.75t-36.875-3.125-38.125-7.5-34.25-12.875-30.25-20.25-21.5-28.75q-15.5-30.75-15.5-82.75 0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25 30.875q36.75-8.75 77.25-8.75 37 0 70 8 26.25-20.5 46.75-30.25t47.25-9.75q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34 99.5z" fill="currentColor"></path></svg>
|
||||
</defs></svg>
|
||||
|
||||
<input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off>
|
||||
<input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off>
|
||||
<label class=md-overlay data-md-component=overlay for=__drawer></label> <a href="#{{ page.title | slugify }}" tabindex=1 class=md-skip> Skip to content </a>
|
||||
<header class=md-header data-md-component=header>
|
||||
<nav class="md-header-nav md-grid">
|
||||
<div class=md-flex>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<a class="md-header-nav__button md-logo" href="{{ site.url }}" title="{{ site.title }}">
|
||||
{% if site.logo %}<img height="{{ site.logo_pixels }}" src="{{ site.baseurl }}/{{ site.logo }}" width="{{ site.logo_pixels }}">{% else %}<i class="md-icon" style="margin-top:5px"></i>{% endif %}</a>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<label class="md-icon md-icon--menu md-header-nav__button" for=__drawer></label>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--stretch">
|
||||
<div class="md-flex__ellipsis md-header-nav__title" data-md-component=title>
|
||||
<span class=md-header-nav__topic>{{ site.title }}</span>
|
||||
<span class=md-header-nav__topic>{{ page.title }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<label class="md-icon md-icon--search md-header-nav__button" for=__search></label>
|
||||
<div class=md-search data-md-component=search role=dialog>
|
||||
<label class=md-search__overlay for=__search></label>
|
||||
<div class=md-search__inner role=search>
|
||||
<form class=md-search__form name=search>
|
||||
<input type=text class=md-search__input name=query placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=query data-md-state=active>
|
||||
<label class="md-icon md-search__icon" for=__search></label>
|
||||
<button type=reset class="md-icon md-search__icon" data-md-component=reset tabindex=-1>  </button>
|
||||
</form>
|
||||
<div class=md-search__output>
|
||||
<div class=md-search__scrollwrap data-md-scrollfix>
|
||||
<div class=md-search-result data-md-component=result>
|
||||
<div class=md-search-result__meta> Type to start searching </div>
|
||||
<ol class=md-search-result__list></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<div class="md-header-nav__source">
|
||||
<a class="md-source" data-md-source="github" href="{{ site.repo }}" title="Go to repository">
|
||||
<div class="md-source__icon" style="padding-top:5px">
|
||||
<i class="fa fa-github fa-3x"></i>
|
||||
</div>
|
||||
<div class="md-source__repository" style="min-width:150px">
|
||||
{{ site.github_user }}/{{ site.github_repo }}
|
||||
</div></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
After Width: | Height: | Size: 4.5 KiB |
12
docs/_includes/permalinks.html
Normal file
@ -0,0 +1,12 @@
|
||||
<script>
|
||||
var headers = ["h1", "h2", "h3", "h4"]
|
||||
var colors = ["red", "orange", "green", "blue"]
|
||||
|
||||
$.each(headers, function(i, header){
|
||||
var color = colors[i];
|
||||
$(header).each(function () {
|
||||
var href=$(this).attr("id");
|
||||
$(this).append('<a class="headerlink" style="color:' + color + '" href="#' + href + '" title="Permanent link">¶</a>')
|
||||
});
|
||||
})
|
||||
</script>
|
3
docs/_includes/quiz.html
Normal file
@ -0,0 +1,3 @@
|
||||
{% assign quiz = site.data.quizzes[include.file] %}
|
||||
{% if quiz.randomize == true %}{% assign questions = quiz.questions | sample %}{% else %}{% assign questions = quiz.questions %}{% endif %}{% if quiz.title %}<h2>{{ quiz.title }}</h2>{% endif %}{% for item in questions %}
|
||||
{% if item.type == "multiple-choice" %}{% include quiz/multiple-choice.html item=item count=forloop.index %}{% endif %}<br>{% endfor %}
|
5
docs/_includes/quiz/multiple-choice.html
Normal file
@ -0,0 +1,5 @@
|
||||
<div class="admonition question">
|
||||
<p class="admonition-title">{% if include.item.question %}{{ include.item.question }}{% else %}Question {{ include.count }}{% endif %}</p>
|
||||
<p>{% for choice in include.item.items %}{% if choice.correct == true %}<span class="correct-{{ include.count }}">{% endif %}{{ forloop.index }}. {{ choice.choice }}{% if choice.correct == true %}</span>{% endif %}<br>{% endfor %}</p>
|
||||
</div><button class="btn btn-success" onclick='$(".correct-{{ include.count }}").css("font-weight", 600);$(".correct-more-{{ include.count }}").css("display", "inline")'>Show Answer</button>
|
||||
{% if include.item.followup %}<p class="well correct-more-{{ include.count }}" style="display:none">{{ include.item.followup }}</p>{% endif %}
|
3
docs/_includes/scripts.html
Normal file
@ -0,0 +1,3 @@
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
|
||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
|
||||
<script src="{{ site.baseurl }}/assets/js/main.js"></script>
|
42
docs/_includes/scrolltop.html
Normal file
@ -0,0 +1,42 @@
|
||||
<style>
|
||||
#scrolltop {
|
||||
display: none; /* Hidden by default */
|
||||
position: fixed; /* Fixed/sticky position */
|
||||
bottom: 20px; /* Place the button at the bottom of the page */
|
||||
right: 30px; /* Place the button 30px from the right */
|
||||
z-index: 99; /* Make sure it does not overlap */
|
||||
border: none; /* Remove borders */
|
||||
outline: none; /* Remove outline */
|
||||
background-color: {{ site.color }}; /* Set a background color */
|
||||
color: white; /* Text color */
|
||||
cursor: pointer; /* Add a mouse pointer on hover */
|
||||
padding: 10px 15px; /* Some padding */
|
||||
border-radius: 100px; /* Rounded corners */
|
||||
font-size: 18px; /* Increase font size */
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#scrolltop:hover {
|
||||
background-color: #555; /* Add a dark-grey background on hover */
|
||||
}
|
||||
</style>
|
||||
<button onclick="topFunction()" id="scrolltop" title="Go to top">🔝</button>
|
||||
|
||||
<script>
|
||||
// When the user scrolls down 20px from the top of the document, show the button
|
||||
window.onscroll = function() {scrollFunction()};
|
||||
|
||||
function scrollFunction() {
|
||||
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
|
||||
document.getElementById("scrolltop").style.display = "block";
|
||||
} else {
|
||||
document.getElementById("scrolltop").style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
// When the user clicks on the button, scroll to the top of the document
|
||||
function topFunction() {
|
||||
document.body.scrollTop = 0; // For Safari
|
||||
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
|
||||
}
|
||||
</script>
|
54
docs/_includes/sidebar.html
Normal file
@ -0,0 +1,54 @@
|
||||
<div id="td-sidebar-menu" class="td-sidebar__inner">
|
||||
|
||||
<form class="td-sidebar__search d-flex align-items-center">
|
||||
<input type="search" class="form-control td-search-input" placeholder=" Search this site…" aria-label="Search this site…" autocomplete="off">
|
||||
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
|
||||
{% for section in site.data.toc %}
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
{% capture sectionUrl %}
|
||||
{{ section.url | replace: "/", "" }}
|
||||
{% endcapture %}
|
||||
{% capture pageUrl %}
|
||||
{{ page.url | replace: "/", "" }}
|
||||
{% endcapture %}
|
||||
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="{% if section.url %}{{ site.baseurl }}/{{ section.url }}{% else %}{{ section.external_url }}{% endif %}" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">{{ section.title }}</a>
|
||||
</li>
|
||||
{% if section.links %}
|
||||
<ul>
|
||||
<li class="collapse show" id="{{ section.title | slugify }}">
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
{% for entry in section.links %}
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="{% if entry.url %}
|
||||
{{ site.baseurl }}/{{ entry.url }}
|
||||
{% else %}
|
||||
{{ entry.external_url }}
|
||||
{% endif %}"
|
||||
class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">{{ entry.title }}
|
||||
</a>
|
||||
</li>
|
||||
{% if page.url contains entry.url or pageUrl == sectionUrl %}
|
||||
<ul>
|
||||
<li class="collapse show" id="{{ child.title | slugify }}">
|
||||
{% if entry.children %}
|
||||
{% for child in entry.children %}
|
||||
<a class="td-sidebar-link td-sidebar-link__page " id="m-{{ section.title | slugify }}-{{ entry.title | slugify }}-{{ child.title | slugify }}" href="{% if child.url %}{{ site.baseurl }}/{{ child.url }}{% else %}{{ child.external_url }}{% endif %}">{{ child.title }}</a>{% endfor %}
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endfor %}
|
||||
</nav>
|
||||
</div>
|
2
docs/_includes/tags.html
Normal file
@ -0,0 +1,2 @@
|
||||
{% if page.tags %}<script>
|
||||
$('h1').first().append('<div>{% for tag in page.tags %}<span style="font-size:12px" class="badge badge-{{ site.tag_color }}"><a style="cursor:pointer; color:white" href="{% if site.tag_search_endpoint %}{{ site.tag_search_endpoint }}{{ tag }}{% else %}{{ site.url }}{{ site.baseurl }}/tags#{{ tag }} {% endif %}">{{ tag }}</a></span>{% endfor %}</div>')</script>{% endif %}
|
35
docs/_includes/toc.html
Normal file
@ -0,0 +1,35 @@
|
||||
<script
|
||||
src="{{ site.baseurl }}/assets/js/jquery-3.3.1/jquery-3.3.1.min.js"
|
||||
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
|
||||
crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
var toc = $('#TOC');
|
||||
|
||||
// Select each header
|
||||
sections = $('.td-content h1');
|
||||
$.each(sections, function(idx, v) {
|
||||
section = $(v);
|
||||
var div_id = $(section).attr('id');
|
||||
var div_text = section.text().split('¶')[0];
|
||||
var parent = $("#" + div_id)
|
||||
var content = '<li id="link_' + div_id + '" class="md-nav__item"><a class="md-nav__link" href="#' + div_id + '" title="' + div_text +'">' + div_text +'</a></li>';
|
||||
$(toc).append(content);
|
||||
|
||||
// Add section code to subnavigation
|
||||
var children = $('<nav class="md-nav"><ul class="md-nav__list"></nav></ul>')
|
||||
var contenders = $("#" + div_id).nextUntil("h1");
|
||||
$.each(contenders, function(idx, contender){
|
||||
if($(contender).is('h2') || $(contender).is('h3')) {
|
||||
var contender_id = $(contender).attr('id');
|
||||
var contender_text = $(contender).text().split('¶')[0];
|
||||
var content = '<li class="md-nav__item"><a class="md-nav__link" href="#' + contender_id + '" title="' + contender_text +'">' + contender_text +'</a></li>';
|
||||
children.append(content);
|
||||
}
|
||||
})
|
||||
$("#link_" + div_id).append(children);
|
||||
});
|
||||
});
|
||||
</script>
|
58
docs/_layouts/default.html
Normal file
@ -0,0 +1,58 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" class="no-js">
|
||||
<!-- Copyright 2019-2021 Vanessa Sochat-->
|
||||
{% include head.html %}
|
||||
{% include google-analytics.html %}
|
||||
<body class="td-section">
|
||||
{% include header.html %}
|
||||
<div class="container-fluid td-outer">
|
||||
<div class="td-main">
|
||||
<div class="row flex-xl-nowrap">
|
||||
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
|
||||
{% include sidebar.html %}
|
||||
</div>
|
||||
<div class="d-none d-xl-block col-xl-2 td-toc d-print-none">
|
||||
<div class="td-page-meta ml-2 pb-1 pt-2 mb-0">
|
||||
{% include editable.html %}
|
||||
</div>
|
||||
<nav id="TableOfContents"><ul>
|
||||
<li><ul id="TOC">
|
||||
<!-- Links will be appended here-->
|
||||
</ul></li>
|
||||
</ul></nav>
|
||||
</div>
|
||||
<main class="col-12 col-md-9 col-xl-8 pl-md-5" role="main">
|
||||
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
|
||||
<ol class="breadcrumb spb-1">
|
||||
{% assign crumbs = page.url | append: "/" | replace: '//', '/' | split: '/' %}
|
||||
{% for crumb in crumbs offset: 1 %}{% if crumb != "index" %}{% if forloop.last %}
|
||||
<li class="breadcrumb-item active" aria-current="page">
|
||||
<a href="{{ site.url }}{{ site.baseurl }}{{ page.url }}">{{ page.title }}</a>
|
||||
</li>{% else %}
|
||||
{% if page.url != "/docs/" %}<li class="breadcrumb-item">
|
||||
<a href="{{ site.url }}{{ site.baseurl }}{% assign crumb_limit = forloop.index | plus: 1 %}{% for crumb in crumbs limit: crumb_limit %}{{ crumb | append: '/' }}{% endfor %}">{% if crumb == "docs" %}Documentation{% else %}{{ crumb | replace:'-',' ' | remove:'.html' | capitalize }}{% endif %}</a>
|
||||
</li>{% endif %}{% endif %}
|
||||
{% endif %}{% endfor %}
|
||||
</ol>
|
||||
</nav>
|
||||
<div class="td-content">
|
||||
{{ content }}
|
||||
{% if section.links %}<div class="section-index">
|
||||
<hr class="panel-line">{% for child in section.links %}
|
||||
<div class="entry">
|
||||
<h5>
|
||||
<a href="{% if child.url %}{{ site.baseurl }}{{ child.url }}{% else %}{{ child.external_url }}{% endif %}">{{ child.title }}</a>
|
||||
</h5>
|
||||
<p>{{ child.description }}</p>
|
||||
</div>{% endfor %}
|
||||
</div>{% endif %}
|
||||
{% include feedback.html %}
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
{% include footer.html %}
|
||||
</div>
|
||||
{% include scripts.html %}
|
||||
</body>
|
||||
</html>
|
7
docs/_layouts/page.html
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
{{ content }}
|
||||
{% include toc.html %}
|
||||
{% include permalinks.html %}
|
||||
{% include tags.html %}
|
8
docs/_layouts/post.html
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
<!-- Copyright 2019-2021 Vanessa Sochat-->
|
||||
<h1 style="margin-bottom:0px">{{ page.title }}</h1>
|
||||
{% if page.badges %}{% for badge in page.badges %}<span class="badge badge-{{ badge.type }}">{{ badge.tag }}</span>{% endfor %}{% endif %}
|
||||
<span class="post-date" style="font-style: italic;">{{ page.date | date: "%B %d, %Y" }}</span>
|
||||
{{ content }}
|
12
docs/_posts/2019-06-28-hello-world.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: "Two Thousand Nineteen"
|
||||
date: 2019-06-28 18:52:21
|
||||
categories: jekyll update
|
||||
badges:
|
||||
- type: warning
|
||||
tag: warning-badge
|
||||
- type: danger
|
||||
tag: danger-badge
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
36
docs/_posts/2019-06-29-welcome.md
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
title: "Welcome to Docsy Jekyll"
|
||||
date: 2019-06-28 5:52:21 -0500
|
||||
categories: jekyll update
|
||||
badges:
|
||||
- type: primary
|
||||
tag: primary-badge
|
||||
- type: secondary
|
||||
tag: secondary-badge
|
||||
- type: info
|
||||
tag: info-badge
|
||||
- type: success
|
||||
tag: success-badge
|
||||
---
|
||||
|
||||
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
|
||||
|
||||
<!--more-->
|
||||
|
||||
To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.
|
||||
|
||||
Jekyll also offers powerful support for code snippets:
|
||||
|
||||
{% highlight ruby %}
|
||||
def print_hi(name)
|
||||
puts "Hi, #{name}"
|
||||
end
|
||||
print_hi('Tom')
|
||||
#=> prints 'Hi, Tom' to STDOUT.
|
||||
{% endhighlight %}
|
||||
|
||||
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
|
||||
|
||||
[jekyll-docs]: http://jekyllrb.com/docs/home
|
||||
[jekyll-gh]: https://github.com/jekyll/jekyll
|
||||
[jekyll-talk]: https://talk.jekyllrb.com/
|
407
docs/_site/2019/hello-world/index.html
Normal file
422
docs/_site/2019/welcome/index.html
Normal file
13
docs/_site/COPYRIGHT
Normal file
@ -0,0 +1,13 @@
|
||||
Copyright 2019-2021 Vanessa Sochat
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
24
docs/_site/Gemfile
Normal file
@ -0,0 +1,24 @@
|
||||
source "https://rubygems.org"
|
||||
ruby RUBY_VERSION
|
||||
|
||||
# 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.2.1"
|
||||
|
||||
# This is the default theme for new Jekyll sites. You may change this to anything you like.
|
||||
# gem "minima"
|
||||
|
||||
# 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
|
||||
|
||||
# If you have any plugins, put them here!
|
||||
# group :jekyll_plugins do
|
||||
# gem "jekyll-github-metadata", "~> 1.0"
|
||||
# end
|
280
docs/_site/Gemfile.lock
Normal file
@ -0,0 +1,280 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (6.0.4.1)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
tzinfo (~> 1.1)
|
||||
zeitwerk (~> 2.2, >= 2.2.2)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.11.1)
|
||||
colorator (1.1.0)
|
||||
commonmarker (0.17.13)
|
||||
ruby-enum (~> 0.5)
|
||||
concurrent-ruby (1.1.9)
|
||||
dnsruby (1.61.7)
|
||||
simpleidn (~> 0.1)
|
||||
em-websocket (0.5.2)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
ethon (0.15.0)
|
||||
ffi (>= 1.15.0)
|
||||
eventmachine (1.2.7-x64-mingw32)
|
||||
execjs (2.8.1)
|
||||
faraday (1.8.0)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0.1)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.1)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
ffi (1.15.4-x64-mingw32)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (3.0.1)
|
||||
github-pages (221)
|
||||
github-pages-health-check (= 1.17.9)
|
||||
jekyll (= 3.9.0)
|
||||
jekyll-avatar (= 0.7.0)
|
||||
jekyll-coffeescript (= 1.1.1)
|
||||
jekyll-commonmark-ghpages (= 0.1.6)
|
||||
jekyll-default-layout (= 0.1.4)
|
||||
jekyll-feed (= 0.15.1)
|
||||
jekyll-gist (= 1.5.0)
|
||||
jekyll-github-metadata (= 2.13.0)
|
||||
jekyll-mentions (= 1.6.0)
|
||||
jekyll-optional-front-matter (= 0.3.2)
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-readme-index (= 0.3.0)
|
||||
jekyll-redirect-from (= 0.16.0)
|
||||
jekyll-relative-links (= 0.6.1)
|
||||
jekyll-remote-theme (= 0.4.3)
|
||||
jekyll-sass-converter (= 1.5.2)
|
||||
jekyll-seo-tag (= 2.7.1)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-swiss (= 1.0.0)
|
||||
jekyll-theme-architect (= 0.2.0)
|
||||
jekyll-theme-cayman (= 0.2.0)
|
||||
jekyll-theme-dinky (= 0.2.0)
|
||||
jekyll-theme-hacker (= 0.2.0)
|
||||
jekyll-theme-leap-day (= 0.2.0)
|
||||
jekyll-theme-merlot (= 0.2.0)
|
||||
jekyll-theme-midnight (= 0.2.0)
|
||||
jekyll-theme-minimal (= 0.2.0)
|
||||
jekyll-theme-modernist (= 0.2.0)
|
||||
jekyll-theme-primer (= 0.6.0)
|
||||
jekyll-theme-slate (= 0.2.0)
|
||||
jekyll-theme-tactile (= 0.2.0)
|
||||
jekyll-theme-time-machine (= 0.2.0)
|
||||
jekyll-titles-from-headings (= 0.5.3)
|
||||
jemoji (= 0.12.0)
|
||||
kramdown (= 2.3.1)
|
||||
kramdown-parser-gfm (= 1.1.0)
|
||||
liquid (= 4.0.3)
|
||||
mercenary (~> 0.3)
|
||||
minima (= 2.5.1)
|
||||
nokogiri (>= 1.12.5, < 2.0)
|
||||
rouge (= 3.26.0)
|
||||
terminal-table (~> 1.4)
|
||||
github-pages-health-check (1.17.9)
|
||||
addressable (~> 2.3)
|
||||
dnsruby (~> 1.60)
|
||||
octokit (~> 4.0)
|
||||
public_suffix (>= 3.0, < 5.0)
|
||||
typhoeus (~> 1.3)
|
||||
html-pipeline (2.14.0)
|
||||
activesupport (>= 2)
|
||||
nokogiri (>= 1.4)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (0.9.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (3.9.0)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 0.7)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (>= 1.17, < 3)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.3.3)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 1.7, < 4)
|
||||
safe_yaml (~> 1.0)
|
||||
jekyll-avatar (0.7.0)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-coffeescript (1.1.1)
|
||||
coffee-script (~> 2.2)
|
||||
coffee-script-source (~> 1.11.1)
|
||||
jekyll-commonmark (1.3.1)
|
||||
commonmarker (~> 0.14)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-commonmark-ghpages (0.1.6)
|
||||
commonmarker (~> 0.17.6)
|
||||
jekyll-commonmark (~> 1.2)
|
||||
rouge (>= 2.0, < 4.0)
|
||||
jekyll-default-layout (0.1.4)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-feed (0.15.1)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-gist (1.5.0)
|
||||
octokit (~> 4.2)
|
||||
jekyll-github-metadata (2.13.0)
|
||||
jekyll (>= 3.4, < 5.0)
|
||||
octokit (~> 4.0, != 4.4.0)
|
||||
jekyll-mentions (1.6.0)
|
||||
html-pipeline (~> 2.3)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-optional-front-matter (0.3.2)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-paginate (1.1.0)
|
||||
jekyll-readme-index (0.3.0)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-redirect-from (0.16.0)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-relative-links (0.6.1)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-remote-theme (0.4.3)
|
||||
addressable (~> 2.0)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
|
||||
rubyzip (>= 1.3.0, < 3.0)
|
||||
jekyll-sass-converter (1.5.2)
|
||||
sass (~> 3.4)
|
||||
jekyll-seo-tag (2.7.1)
|
||||
jekyll (>= 3.8, < 5.0)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-swiss (1.0.0)
|
||||
jekyll-theme-architect (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-cayman (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-dinky (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-hacker (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-leap-day (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-merlot (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-midnight (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-minimal (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-modernist (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-primer (0.6.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-github-metadata (~> 2.9)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-slate (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-tactile (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-time-machine (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-titles-from-headings (0.5.3)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
jemoji (0.12.0)
|
||||
gemoji (~> 3.0)
|
||||
html-pipeline (~> 2.2)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
kramdown (2.3.1)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.7.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.3.6)
|
||||
minima (2.5.1)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-feed (~> 0.9)
|
||||
jekyll-seo-tag (~> 2.1)
|
||||
minitest (5.14.4)
|
||||
multipart-post (2.1.1)
|
||||
nokogiri (1.12.5-x64-mingw32)
|
||||
racc (~> 1.4)
|
||||
octokit (4.21.0)
|
||||
faraday (>= 0.9)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (4.0.6)
|
||||
racc (1.6.0)
|
||||
rb-fsevent (0.11.0)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rouge (3.26.0)
|
||||
ruby-enum (0.9.0)
|
||||
i18n
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.7.4)
|
||||
sass-listen (~> 4.0.0)
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
sawyer (0.8.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (> 0.8, < 2.0)
|
||||
simpleidn (0.2.1)
|
||||
unf (~> 0.1.4)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
thread_safe (0.3.6)
|
||||
typhoeus (1.4.0)
|
||||
ethon (>= 0.9.0)
|
||||
tzinfo (1.2.9)
|
||||
thread_safe (~> 0.1)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.8-x64-mingw32)
|
||||
unicode-display_width (1.8.0)
|
||||
zeitwerk (2.5.1)
|
||||
|
||||
PLATFORMS
|
||||
x64-mingw32
|
||||
|
||||
DEPENDENCIES
|
||||
github-pages
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.7.4p191
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.30
|
1
docs/_site/VERSION
Normal file
@ -0,0 +1 @@
|
||||
0.0.24
|
412
docs/_site/about/index.html
Normal file
408
docs/_site/archive/index.html
Normal file
18599
docs/_site/assets/css/main.css
Normal file
213
docs/_site/assets/css/palette.css
Normal file
@ -0,0 +1,213 @@
|
||||
.highlight pre {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.highlight table td { padding: 5px; }
|
||||
.highlight table pre { margin: 0; }
|
||||
.highlight .cm {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .cp {
|
||||
color: #999999;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .c1 {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .cs {
|
||||
color: #999999;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .err {
|
||||
color: #a61717;
|
||||
background-color: #e3d2d2;
|
||||
}
|
||||
.highlight .gd {
|
||||
color: #000000;
|
||||
background-color: #ffdddd;
|
||||
}
|
||||
.highlight .ge {
|
||||
color: #000000;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .gr {
|
||||
color: #aa0000;
|
||||
}
|
||||
.highlight .gh {
|
||||
color: #999999;
|
||||
}
|
||||
.highlight .gi {
|
||||
color: #000000;
|
||||
background-color: #ddffdd;
|
||||
}
|
||||
.highlight .go {
|
||||
color: #888888;
|
||||
}
|
||||
.highlight .gp {
|
||||
color: #555555;
|
||||
}
|
||||
.highlight .gs {
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .gu {
|
||||
color: #aaaaaa;
|
||||
}
|
||||
.highlight .gt {
|
||||
color: #aa0000;
|
||||
}
|
||||
.highlight .kc {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kd {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kn {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kp {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kr {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kt {
|
||||
color: #445588;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .k, .highlight .kv {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .mf {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .mh {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .il {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .mi {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .mo {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .m, .highlight .mb, .highlight .mx {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .sb {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sc {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sd {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .s2 {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .se {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sh {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .si {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sx {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sr {
|
||||
color: #009926;
|
||||
}
|
||||
.highlight .s1 {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .ss {
|
||||
color: #990073;
|
||||
}
|
||||
.highlight .s, .highlight .sa, .highlight .dl {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .na {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .bp {
|
||||
color: #999999;
|
||||
}
|
||||
.highlight .nb {
|
||||
color: #0086B3;
|
||||
}
|
||||
.highlight .nc {
|
||||
color: #445588;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .no {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .nd {
|
||||
color: #3c5d5d;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .ni {
|
||||
color: #800080;
|
||||
}
|
||||
.highlight .ne {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nf, .highlight .fm {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nl {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nn {
|
||||
color: #555555;
|
||||
}
|
||||
.highlight .nt {
|
||||
color: #000080;
|
||||
}
|
||||
.highlight .vc {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .vg {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .vi {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .nv, .highlight .vm {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .ow {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .o {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .w {
|
||||
color: #bbbbbb;
|
||||
}
|
||||
.highlight {
|
||||
background-color: #f8f8f8;
|
||||
}
|
2883
docs/_site/assets/css/style.css
Normal file
BIN
docs/_site/assets/favicons/android-icon-144x144.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
docs/_site/assets/favicons/android-icon-192x192.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
docs/_site/assets/favicons/android-icon-36x36.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
docs/_site/assets/favicons/android-icon-48x48.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
docs/_site/assets/favicons/android-icon-72x72.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
docs/_site/assets/favicons/android-icon-96x96.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
docs/_site/assets/favicons/apple-icon-114x114.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
docs/_site/assets/favicons/apple-icon-120x120.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
docs/_site/assets/favicons/apple-icon-144x144.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
docs/_site/assets/favicons/apple-icon-152x152.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
docs/_site/assets/favicons/apple-icon-180x180.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
docs/_site/assets/favicons/apple-icon-57x57.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
docs/_site/assets/favicons/apple-icon-60x60.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
docs/_site/assets/favicons/apple-icon-72x72.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
docs/_site/assets/favicons/apple-icon-76x76.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
docs/_site/assets/favicons/apple-icon-precomposed.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
docs/_site/assets/favicons/apple-icon.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
2
docs/_site/assets/favicons/browserconfig.xml
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
BIN
docs/_site/assets/favicons/favicon-16x16.png
Normal file
After Width: | Height: | Size: 832 B |
BIN
docs/_site/assets/favicons/favicon-32x32.png
Normal file
After Width: | Height: | Size: 997 B |
BIN
docs/_site/assets/favicons/favicon-96x96.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
docs/_site/assets/favicons/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
41
docs/_site/assets/favicons/manifest.json
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "App",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/android-icon-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image\/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image\/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image\/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image\/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image\/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image\/png",
|
||||
"density": "4.0"
|
||||
}
|
||||
]
|
||||
}
|
BIN
docs/_site/assets/favicons/ms-icon-144x144.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
docs/_site/assets/favicons/ms-icon-150x150.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
docs/_site/assets/favicons/ms-icon-310x310.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
docs/_site/assets/favicons/ms-icon-70x70.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
docs/_site/assets/img/docker-clear.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
docs/_site/assets/img/docker.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
docs/_site/assets/img/docsy-jekyll-preview.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
docs/_site/assets/img/docsy-jekyll.png
Normal file
After Width: | Height: | Size: 232 KiB |
BIN
docs/_site/assets/img/favicon.png
Normal file
After Width: | Height: | Size: 521 B |
BIN
docs/_site/assets/img/logo.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
docs/_site/assets/img/open-source-halloween-2021.png
Normal file
After Width: | Height: | Size: 32 KiB |
10364
docs/_site/assets/js/jquery-3.3.1/jquery-3.3.1.js
vendored
Normal file
2
docs/_site/assets/js/jquery-3.3.1/jquery-3.3.1.min.js
vendored
Normal file
7
docs/_site/assets/js/lunr.min.js
vendored
Normal file
56
docs/_site/assets/js/main.js
Normal file
@ -0,0 +1,56 @@
|
||||
(function($) {
|
||||
'use strict';
|
||||
$(function() {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
$('[data-toggle="popover"]').popover();
|
||||
$('.popover-dismiss').popover({
|
||||
trigger: 'focus'
|
||||
})
|
||||
});
|
||||
|
||||
function bottomPos(element) {
|
||||
return element.offset().top + element.outerHeight();
|
||||
}
|
||||
$(function() {
|
||||
var promo = $(".js-td-cover");
|
||||
if (!promo.length) {
|
||||
return
|
||||
}
|
||||
var promoOffset = bottomPos(promo);
|
||||
var navbarOffset = $('.js-navbar-scroll').offset().top;
|
||||
var threshold = Math.ceil($('.js-navbar-scroll').outerHeight());
|
||||
if ((promoOffset - navbarOffset) < threshold) {
|
||||
$('.js-navbar-scroll').addClass('navbar-bg-onscroll');
|
||||
}
|
||||
$(window).on('scroll', function() {
|
||||
var navtop = $('.js-navbar-scroll').offset().top - $(window).scrollTop();
|
||||
var promoOffset = bottomPos($('.js-td-cover'));
|
||||
var navbarOffset = $('.js-navbar-scroll').offset().top;
|
||||
if ((promoOffset - navbarOffset) < threshold) {
|
||||
$('.js-navbar-scroll').addClass('navbar-bg-onscroll');
|
||||
} else {
|
||||
$('.js-navbar-scroll').removeClass('navbar-bg-onscroll');
|
||||
$('.js-navbar-scroll').addClass('navbar-bg-onscroll--fade');
|
||||
}
|
||||
});
|
||||
});
|
||||
}(jQuery));
|
||||
(function($) {
|
||||
'use strict';
|
||||
var Search = {
|
||||
init: function() {
|
||||
$(document).ready(function() {
|
||||
$(document).on('keypress', '.td-search-input', function(e) {
|
||||
if (e.keyCode !== 13) {
|
||||
return
|
||||
}
|
||||
var query = $(this).val();
|
||||
var searchPage = "http://localhost:4000/quicktax/search/?q=" + query;
|
||||
document.location = searchPage;
|
||||
return false;
|
||||
});
|
||||
});
|
||||
},
|
||||
};
|
||||
Search.init();
|
||||
}(jQuery));
|
104
docs/_site/assets/js/search.js
Normal file
@ -0,0 +1,104 @@
|
||||
(function () {
|
||||
function getQueryVariable(variable) {
|
||||
var query = window.location.search.substring(1),
|
||||
vars = query.split("&");
|
||||
|
||||
for (var i = 0; i < vars.length; i++) {
|
||||
var pair = vars[i].split("=");
|
||||
|
||||
if (pair[0] === variable) {
|
||||
return decodeURIComponent(pair[1].replace(/\+/g, '%20')).trim();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getPreview(query, content, previewLength) {
|
||||
previewLength = previewLength || (content.length * 2);
|
||||
|
||||
var parts = query.split(" "),
|
||||
match = content.toLowerCase().indexOf(query.toLowerCase()),
|
||||
matchLength = query.length,
|
||||
preview;
|
||||
|
||||
// Find a relevant location in content
|
||||
for (var i = 0; i < parts.length; i++) {
|
||||
if (match >= 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
match = content.toLowerCase().indexOf(parts[i].toLowerCase());
|
||||
matchLength = parts[i].length;
|
||||
}
|
||||
|
||||
// Create preview
|
||||
if (match >= 0) {
|
||||
var start = match - (previewLength / 2),
|
||||
end = start > 0 ? match + matchLength + (previewLength / 2) : previewLength;
|
||||
|
||||
preview = content.substring(start, end).trim();
|
||||
|
||||
if (start > 0) {
|
||||
preview = "..." + preview;
|
||||
}
|
||||
|
||||
if (end < content.length) {
|
||||
preview = preview + "...";
|
||||
}
|
||||
|
||||
// Highlight query parts
|
||||
preview = preview.replace(new RegExp("(" + parts.join("|") + ")", "gi"), "<strong>$1</strong>");
|
||||
} else {
|
||||
// Use start of content if no match found
|
||||
preview = content.substring(0, previewLength).trim() + (content.length > previewLength ? "..." : "");
|
||||
}
|
||||
|
||||
return preview;
|
||||
}
|
||||
|
||||
function displaySearchResults(results, query) {
|
||||
var searchResultsEl = document.getElementById("search-results"),
|
||||
searchProcessEl = document.getElementById("search-process");
|
||||
|
||||
if (results.length) {
|
||||
var resultsHTML = "";
|
||||
results.forEach(function (result) {
|
||||
|
||||
var item = window.data[result.ref]
|
||||
if (item.title) {
|
||||
contentPreview = getPreview(query, item.content, 170),
|
||||
titlePreview = getPreview(query, item.title);
|
||||
resultsHTML += "<li><h4><a href='/quicktax" + item.url.trim() + "'>" + titlePreview + "</a></h4><p><small>" + contentPreview + "</small></p></li>";
|
||||
}
|
||||
});
|
||||
|
||||
searchResultsEl.innerHTML = resultsHTML;
|
||||
searchProcessEl.innerText = "Showing";
|
||||
} else {
|
||||
searchResultsEl.style.display = "none";
|
||||
searchProcessEl.innerText = "No";
|
||||
}
|
||||
}
|
||||
|
||||
window.index = lunr(function () {
|
||||
this.field("id");
|
||||
this.field("title", {boost: 10});
|
||||
this.field("categories");
|
||||
this.field("url");
|
||||
this.field("content");
|
||||
});
|
||||
|
||||
var query = decodeURIComponent((getQueryVariable("q") || "").replace(/\+/g, "%20")),
|
||||
searchQueryContainerEl = document.getElementById("search-query-container"),
|
||||
searchQueryEl = document.getElementById("search-query");
|
||||
|
||||
searchQueryEl.innerText = query;
|
||||
if (query != ""){
|
||||
searchQueryContainerEl.style.display = "inline";
|
||||
}
|
||||
|
||||
for (var key in window.data) {
|
||||
window.index.add(window.data[key]);
|
||||
}
|
||||
|
||||
displaySearchResults(window.index.search(query), query); // Hand the results off to be displayed
|
||||
})();
|
BIN
docs/_site/assets/webfonts/fa-brands-400.eot
Normal file
3442
docs/_site/assets/webfonts/fa-brands-400.svg
Normal file
After Width: | Height: | Size: 674 KiB |