feat: Initial commit for public release

This commit is contained in:
tjtanjin 2023-11-26 21:57:16 +08:00
commit 3245d6c12d
231 changed files with 94770 additions and 0 deletions

24
.github/bug_report.md vendored Normal file
View 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
View 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
View File

@ -0,0 +1,3 @@
.idea/
target/
lib

95
README.md Normal file
View 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).**

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View File

@ -0,0 +1 @@
0.0.24

95
docs/_config.yml Normal file
View 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"

View File

@ -0,0 +1,4 @@
- title: About
url: about
- title: Documentation
url: docs

View 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
View 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"

View 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 %}
```

View 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' %}

View 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).

View 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
View 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`).

View 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`).

View 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
View File

@ -0,0 +1 @@
<a href="{{ site.baseurl }}/docs/{{ include.path }}">{% if include.name %}{{ include.name }}{% else %}{{ include.path }}{% endif %}</a>

View 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 -->

View 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/>

View 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>

View 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
View 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&#43;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>

View 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="&#xf002 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

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

View 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> &#xE5CD; </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

View 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
View 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 %}

View 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 %}

View 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>

View 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>

View 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="&#xf002 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
View 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
View 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>

View 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
View File

@ -0,0 +1,7 @@
---
layout: default
---
{{ content }}
{% include toc.html %}
{% include permalinks.html %}
{% include tags.html %}

8
docs/_layouts/post.html Normal file
View 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 }}

View 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.

View 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
---
Youll 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 [Jekylls 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/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

13
docs/_site/COPYRIGHT Normal file
View 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
View 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
View 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
View File

@ -0,0 +1 @@
0.0.24

412
docs/_site/about/index.html Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

18599
docs/_site/assets/css/main.css Normal file

File diff suppressed because it is too large Load Diff

View 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;
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 997 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View 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"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

7
docs/_site/assets/js/lunr.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View 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));

View 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
})();

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

Binary file not shown.

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