asciidocsy 0.3.0.pre.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +201 -0
- data/_config.yml +66 -0
- data/_data/theme/alerts.yml +21 -0
- data/_data/theme/blocks.yml +33 -0
- data/_data/theme/forms.yml +72 -0
- data/_data/theme/navigation.yml +53 -0
- data/_data/theme/page-actions.yml +83 -0
- data/_data/theme/policies.yml +68 -0
- data/_data/theme/release-hx.yml +163 -0
- data/_data/theme/scripts.yml +43 -0
- data/_data/theme/semantics.yml +14 -0
- data/_data/theme/strings.yml +13 -0
- data/_data/theme/styles.yml +8 -0
- data/_docs/snippets/example_tabset-source.adoc +60 -0
- data/_docs/snippets/example_tabset-source_data.json +16 -0
- data/_docs/snippets/example_tabset-source_data.xml +17 -0
- data/_docs/snippets/example_tabset-source_data.yml +10 -0
- data/_docs/snippets/example_toggles.adoc +25 -0
- data/_docs/snippets/handlers-table.adoc +40 -0
- data/_docs/snippets/reference-cluster.adoc +1 -0
- data/_docs/topics/advanced-applications_c.adoc +50 -0
- data/_docs/topics/config-api_r.adoc +21 -0
- data/_docs/topics/config-release-hx.adoc +4 -0
- data/_docs/topics/config-search-algolia.adoc +77 -0
- data/_docs/topics/config-search.adoc +47 -0
- data/_docs/topics/config-semantics.adoc +45 -0
- data/_docs/topics/config-switcher_r.adoc +33 -0
- data/_docs/topics/config-tabber_r.adoc +49 -0
- data/_docs/topics/config-toggle_r.adoc +20 -0
- data/_docs/topics/config-versioning-amenders_r.adoc +76 -0
- data/_docs/topics/config-versioning-swaps_r.adoc +193 -0
- data/_docs/topics/config-versioning-tabsets_r.adoc +51 -0
- data/_docs/topics/config-versioning-toggles_r.adoc +42 -0
- data/_docs/topics/config-versioning.adoc +134 -0
- data/_docs/topics/config_r.adoc +131 -0
- data/_docs/topics/extend.adoc +70 -0
- data/_docs/topics/frontend-overview.adoc +62 -0
- data/_docs/topics/intro.adoc +6 -0
- data/_docs/topics/setup-bootstrap_t.adoc +71 -0
- data/_docs/topics/setup-environment_rg.adoc +65 -0
- data/_docs/topics/setup-quickstart_t.adoc +10 -0
- data/_docs/topics/setup.adoc +31 -0
- data/_docs/topics/syntax-highlighter-examples_r.adoc +172 -0
- data/_docs/topics/toolchain.adoc +79 -0
- data/_docs/topics/upgrade-0-3-0.adoc +49 -0
- data/_includes/_settings.liquid +2 -0
- data/_includes/_variables.sass +12 -0
- data/_includes/breadcrumbs.html +20 -0
- data/_includes/breadcrumbs_alt.html +6 -0
- data/_includes/config-api-objects.asciidoc +23 -0
- data/_includes/config-api-properties.asciidoc +29 -0
- data/_includes/config-api.asciidoc +29 -0
- data/_includes/feedback.html +59 -0
- data/_includes/footer-links_sup.html +5 -0
- data/_includes/footer.html +59 -0
- data/_includes/gdpr-message.html +41 -0
- data/_includes/google-analytics.html +11 -0
- data/_includes/head.html +74 -0
- data/_includes/header.html +22 -0
- data/_includes/hook.liquid +26 -0
- data/_includes/nav-site.html +30 -0
- data/_includes/nav-subject-menu.html +49 -0
- data/_includes/page-links.html +45 -0
- data/_includes/path-active.liquid +18 -0
- data/_includes/release-hx-change.asciidoc +7 -0
- data/_includes/release-hx-changes-listing.asciidoc +14 -0
- data/_includes/release-hx-note.asciidoc +54 -0
- data/_includes/release-hx-notes-listing.asciidoc +16 -0
- data/_includes/release-hx-revision.asciidoc +86 -0
- data/_includes/release-hx.asciidoc +57 -0
- data/_includes/scripts.html +8 -0
- data/_includes/search-form.html +113 -0
- data/_includes/see-also.html +17 -0
- data/_includes/social-links.html +10 -0
- data/_includes/string-eval.liquid +38 -0
- data/_includes/tail.html +7 -0
- data/_includes/theme-api-object-sub.asciidoc +4 -0
- data/_includes/theme-api-object.asciidoc +35 -0
- data/_includes/version-handler.html +245 -0
- data/_includes/versioning-controls.html +88 -0
- data/_layouts/default.html +94 -0
- data/_layouts/landing.html +28 -0
- data/_layouts/page.html +9 -0
- data/_layouts/post.html +8 -0
- data/_layouts/reference.html +6 -0
- data/_layouts/search.html +110 -0
- data/_layouts/topic.html +19 -0
- data/_sass/_asciidocsy.scss +698 -0
- data/_sass/_custom.scss +3 -0
- data/_sass/bootstrap/_alert.scss +51 -0
- data/_sass/bootstrap/_badge.scss +54 -0
- data/_sass/bootstrap/_breadcrumb.scss +41 -0
- data/_sass/bootstrap/_button-group.scss +163 -0
- data/_sass/bootstrap/_buttons.scss +137 -0
- data/_sass/bootstrap/_card.scss +289 -0
- data/_sass/bootstrap/_carousel.scss +197 -0
- data/_sass/bootstrap/_close.scss +41 -0
- data/_sass/bootstrap/_code.scss +48 -0
- data/_sass/bootstrap/_custom-forms.scss +507 -0
- data/_sass/bootstrap/_dropdown.scss +191 -0
- data/_sass/bootstrap/_forms.scss +330 -0
- data/_sass/bootstrap/_functions.scss +86 -0
- data/_sass/bootstrap/_grid.scss +52 -0
- data/_sass/bootstrap/_images.scss +42 -0
- data/_sass/bootstrap/_input-group.scss +193 -0
- data/_sass/bootstrap/_jumbotron.scss +17 -0
- data/_sass/bootstrap/_list-group.scss +149 -0
- data/_sass/bootstrap/_media.scss +8 -0
- data/_sass/bootstrap/_mixins.scss +47 -0
- data/_sass/bootstrap/_modal.scss +229 -0
- data/_sass/bootstrap/_nav.scss +120 -0
- data/_sass/bootstrap/_navbar.scss +294 -0
- data/_sass/bootstrap/_pagination.scss +73 -0
- data/_sass/bootstrap/_popover.scss +171 -0
- data/_sass/bootstrap/_print.scss +141 -0
- data/_sass/bootstrap/_progress.scss +43 -0
- data/_sass/bootstrap/_reboot.scss +483 -0
- data/_sass/bootstrap/_root.scss +19 -0
- data/_sass/bootstrap/_spinners.scss +55 -0
- data/_sass/bootstrap/_tables.scss +185 -0
- data/_sass/bootstrap/_toasts.scss +44 -0
- data/_sass/bootstrap/_tooltip.scss +115 -0
- data/_sass/bootstrap/_transitions.scss +20 -0
- data/_sass/bootstrap/_type.scss +125 -0
- data/_sass/bootstrap/_utilities.scss +17 -0
- data/_sass/bootstrap/_variables.scss +1123 -0
- data/_sass/bootstrap/bootstrap-grid.scss +29 -0
- data/_sass/bootstrap/bootstrap-reboot.scss +12 -0
- data/_sass/bootstrap/bootstrap.scss +44 -0
- data/_sass/bootstrap/mixins/_alert.scss +13 -0
- data/_sass/bootstrap/mixins/_background-variant.scss +21 -0
- data/_sass/bootstrap/mixins/_badge.scss +17 -0
- data/_sass/bootstrap/mixins/_border-radius.scss +63 -0
- data/_sass/bootstrap/mixins/_box-shadow.scss +20 -0
- data/_sass/bootstrap/mixins/_breakpoints.scss +123 -0
- data/_sass/bootstrap/mixins/_buttons.scss +107 -0
- data/_sass/bootstrap/mixins/_caret.scss +62 -0
- data/_sass/bootstrap/mixins/_clearfix.scss +7 -0
- data/_sass/bootstrap/mixins/_deprecate.scss +10 -0
- data/_sass/bootstrap/mixins/_float.scss +14 -0
- data/_sass/bootstrap/mixins/_forms.scss +192 -0
- data/_sass/bootstrap/mixins/_gradients.scss +45 -0
- data/_sass/bootstrap/mixins/_grid-framework.scss +66 -0
- data/_sass/bootstrap/mixins/_grid.scss +51 -0
- data/_sass/bootstrap/mixins/_hover.scss +37 -0
- data/_sass/bootstrap/mixins/_image.scss +36 -0
- data/_sass/bootstrap/mixins/_list-group.scss +21 -0
- data/_sass/bootstrap/mixins/_lists.scss +7 -0
- data/_sass/bootstrap/mixins/_nav-divider.scss +10 -0
- data/_sass/bootstrap/mixins/_pagination.scss +22 -0
- data/_sass/bootstrap/mixins/_reset-text.scss +17 -0
- data/_sass/bootstrap/mixins/_resize.scss +6 -0
- data/_sass/bootstrap/mixins/_screen-reader.scss +33 -0
- data/_sass/bootstrap/mixins/_size.scss +7 -0
- data/_sass/bootstrap/mixins/_table-row.scss +39 -0
- data/_sass/bootstrap/mixins/_text-emphasis.scss +16 -0
- data/_sass/bootstrap/mixins/_text-hide.scss +11 -0
- data/_sass/bootstrap/mixins/_text-truncate.scss +8 -0
- data/_sass/bootstrap/mixins/_transition.scss +16 -0
- data/_sass/bootstrap/mixins/_visibility.scss +8 -0
- data/_sass/bootstrap/utilities/_align.scss +8 -0
- data/_sass/bootstrap/utilities/_background.scss +19 -0
- data/_sass/bootstrap/utilities/_borders.scss +75 -0
- data/_sass/bootstrap/utilities/_clearfix.scss +3 -0
- data/_sass/bootstrap/utilities/_display.scss +26 -0
- data/_sass/bootstrap/utilities/_embed.scss +39 -0
- data/_sass/bootstrap/utilities/_flex.scss +51 -0
- data/_sass/bootstrap/utilities/_float.scss +11 -0
- data/_sass/bootstrap/utilities/_overflow.scss +5 -0
- data/_sass/bootstrap/utilities/_position.scss +32 -0
- data/_sass/bootstrap/utilities/_screenreaders.scss +11 -0
- data/_sass/bootstrap/utilities/_shadows.scss +6 -0
- data/_sass/bootstrap/utilities/_sizing.scss +20 -0
- data/_sass/bootstrap/utilities/_spacing.scss +73 -0
- data/_sass/bootstrap/utilities/_stretched-link.scss +19 -0
- data/_sass/bootstrap/utilities/_text.scss +72 -0
- data/_sass/bootstrap/utilities/_visibility.scss +13 -0
- data/_sass/bootstrap/vendor/_rfs.scss +204 -0
- data/assets/css/asciidocsy.scss +9 -0
- data/assets/css/asciidoctor.css +776 -0
- data/assets/css/bootstrap-toc.css +60 -0
- data/assets/css/bootstrap.scss +4 -0
- data/assets/css/custom.css +2 -0
- data/assets/css/font-awesome.css +2337 -0
- data/assets/css/font-awesome.min.css +4 -0
- data/assets/css/jquery.navgoco.css +69 -0
- data/assets/css/palette.css +217 -0
- data/assets/css/skins/colony.css +734 -0
- data/assets/css/skins/foundation-lime.css +727 -0
- data/assets/css/skins/foundation-potion.css +727 -0
- data/assets/css/skins/foundation.css +720 -0
- data/assets/css/skins/github.css +741 -0
- data/assets/css/skins/golo.css +738 -0
- data/assets/css/skins/iconic.css +762 -0
- data/assets/css/skins/maker.css +738 -0
- data/assets/css/skins/readthedocs.css +739 -0
- data/assets/css/skins/riak.css +759 -0
- data/assets/css/skins/rocket-panda.css +734 -0
- data/assets/css/skins/rubygems.css +722 -0
- data/assets/css/syntax/hljs/a11y-dark.css +99 -0
- data/assets/css/syntax/hljs/a11y-light.css +99 -0
- data/assets/css/syntax/hljs/agate.css +108 -0
- data/assets/css/syntax/hljs/an-old-hope.css +89 -0
- data/assets/css/syntax/hljs/androidstudio.css +66 -0
- data/assets/css/syntax/hljs/arduino-light.css +87 -0
- data/assets/css/syntax/hljs/arta.css +73 -0
- data/assets/css/syntax/hljs/ascetic.css +45 -0
- data/assets/css/syntax/hljs/atelier-cave-dark.css +83 -0
- data/assets/css/syntax/hljs/atelier-cave-light.css +85 -0
- data/assets/css/syntax/hljs/atelier-dune-dark.css +69 -0
- data/assets/css/syntax/hljs/atelier-dune-light.css +69 -0
- data/assets/css/syntax/hljs/atelier-estuary-dark.css +84 -0
- data/assets/css/syntax/hljs/atelier-estuary-light.css +84 -0
- data/assets/css/syntax/hljs/atelier-forest-dark.css +69 -0
- data/assets/css/syntax/hljs/atelier-forest-light.css +69 -0
- data/assets/css/syntax/hljs/atelier-heath-dark.css +69 -0
- data/assets/css/syntax/hljs/atelier-heath-light.css +69 -0
- data/assets/css/syntax/hljs/atelier-lakeside-dark.css +69 -0
- data/assets/css/syntax/hljs/atelier-lakeside-light.css +69 -0
- data/assets/css/syntax/hljs/atelier-plateau-dark.css +84 -0
- data/assets/css/syntax/hljs/atelier-plateau-light.css +84 -0
- data/assets/css/syntax/hljs/atelier-savanna-dark.css +84 -0
- data/assets/css/syntax/hljs/atelier-savanna-light.css +84 -0
- data/assets/css/syntax/hljs/atelier-seaside-dark.css +69 -0
- data/assets/css/syntax/hljs/atelier-seaside-light.css +69 -0
- data/assets/css/syntax/hljs/atelier-sulphurpool-dark.css +69 -0
- data/assets/css/syntax/hljs/atelier-sulphurpool-light.css +69 -0
- data/assets/css/syntax/hljs/atom-one-dark-reasonable.css +75 -0
- data/assets/css/syntax/hljs/atom-one-dark.css +96 -0
- data/assets/css/syntax/hljs/atom-one-light.css +96 -0
- data/assets/css/syntax/hljs/brown-paper.css +64 -0
- data/assets/css/syntax/hljs/brown-papersq.png +0 -0
- data/assets/css/syntax/hljs/codepen-embed.css +60 -0
- data/assets/css/syntax/hljs/color-brewer.css +71 -0
- data/assets/css/syntax/hljs/darcula.css +74 -0
- data/assets/css/syntax/hljs/dark.css +63 -0
- data/assets/css/syntax/hljs/default.css +99 -0
- data/assets/css/syntax/hljs/docco.css +97 -0
- data/assets/css/syntax/hljs/dracula.css +76 -0
- data/assets/css/syntax/hljs/far.css +71 -0
- data/assets/css/syntax/hljs/foundation.css +89 -0
- data/assets/css/syntax/hljs/github-gist.css +79 -0
- data/assets/css/syntax/hljs/github.css +99 -0
- data/assets/css/syntax/hljs/gml.css +78 -0
- data/assets/css/syntax/hljs/googlecode.css +89 -0
- data/assets/css/syntax/hljs/gradient-dark.css +122 -0
- data/assets/css/syntax/hljs/gradient-light.css +130 -0
- data/assets/css/syntax/hljs/grayscale.css +101 -0
- data/assets/css/syntax/hljs/gruvbox-dark.css +108 -0
- data/assets/css/syntax/hljs/gruvbox-light.css +108 -0
- data/assets/css/syntax/hljs/hopscotch.css +84 -0
- data/assets/css/syntax/hljs/hybrid.css +102 -0
- data/assets/css/syntax/hljs/idea.css +97 -0
- data/assets/css/syntax/hljs/ir-black.css +73 -0
- data/assets/css/syntax/hljs/isbl-editor-dark.css +112 -0
- data/assets/css/syntax/hljs/isbl-editor-light.css +111 -0
- data/assets/css/syntax/hljs/kimbie.dark.css +74 -0
- data/assets/css/syntax/hljs/kimbie.light.css +74 -0
- data/assets/css/syntax/hljs/lightfair.css +88 -0
- data/assets/css/syntax/hljs/lioshi.css +88 -0
- data/assets/css/syntax/hljs/magula.css +70 -0
- data/assets/css/syntax/hljs/mono-blue.css +56 -0
- data/assets/css/syntax/hljs/monokai-sublime.css +83 -0
- data/assets/css/syntax/hljs/monokai.css +71 -0
- data/assets/css/syntax/hljs/night-owl.css +182 -0
- data/assets/css/syntax/hljs/nnfx-dark.css +106 -0
- data/assets/css/syntax/hljs/nnfx.css +106 -0
- data/assets/css/syntax/hljs/nord.css +309 -0
- data/assets/css/syntax/hljs/obsidian.css +88 -0
- data/assets/css/syntax/hljs/ocean.css +74 -0
- data/assets/css/syntax/hljs/paraiso-dark.css +72 -0
- data/assets/css/syntax/hljs/paraiso-light.css +72 -0
- data/assets/css/syntax/hljs/pojoaque.css +83 -0
- data/assets/css/syntax/hljs/pojoaque.jpg +0 -0
- data/assets/css/syntax/hljs/purebasic.css +96 -0
- data/assets/css/syntax/hljs/qtcreator_dark.css +83 -0
- data/assets/css/syntax/hljs/qtcreator_light.css +83 -0
- data/assets/css/syntax/hljs/railscasts.css +106 -0
- data/assets/css/syntax/hljs/rainbow.css +85 -0
- data/assets/css/syntax/hljs/routeros.css +108 -0
- data/assets/css/syntax/hljs/school-book.css +69 -0
- data/assets/css/syntax/hljs/school-book.png +0 -0
- data/assets/css/syntax/hljs/shades-of-purple.css +96 -0
- data/assets/css/syntax/hljs/solarized-dark.css +84 -0
- data/assets/css/syntax/hljs/solarized-light.css +84 -0
- data/assets/css/syntax/hljs/srcery.css +78 -0
- data/assets/css/syntax/hljs/stackoverflow-dark.css +78 -0
- data/assets/css/syntax/hljs/stackoverflow-light.css +78 -0
- data/assets/css/syntax/hljs/sunburst.css +102 -0
- data/assets/css/syntax/hljs/tomorrow-night-blue.css +75 -0
- data/assets/css/syntax/hljs/tomorrow-night-bright.css +74 -0
- data/assets/css/syntax/hljs/tomorrow-night-eighties.css +74 -0
- data/assets/css/syntax/hljs/tomorrow-night.css +75 -0
- data/assets/css/syntax/hljs/tomorrow.css +72 -0
- data/assets/css/syntax/hljs/vs.css +68 -0
- data/assets/css/syntax/hljs/vs2015.css +115 -0
- data/assets/css/syntax/hljs/xcode.css +104 -0
- data/assets/css/syntax/hljs/xt256.css +92 -0
- data/assets/css/syntax/hljs/zenburn.css +80 -0
- data/assets/fonts/FontAwesome.otf +0 -0
- data/assets/fonts/fontawesome-webfont.eot +0 -0
- data/assets/fonts/fontawesome-webfont.svg +2671 -0
- data/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/assets/fonts/fontawesome-webfont.woff +0 -0
- data/assets/fonts/fontawesome-webfont.woff2 +0 -0
- data/assets/images/asciidocsy-nav-model.png +0 -0
- data/assets/images/asciidocsy-screenshot.png +0 -0
- data/assets/images/docops-labs-logo.png +0 -0
- data/assets/images/favicons/favicon-16x16.png +0 -0
- data/assets/images/favicons/favicon-32x32.png +0 -0
- data/assets/images/favicons/favicon.ico +0 -0
- data/assets/images/github-repo-download_screenshot.png +0 -0
- data/assets/images/logo-full.png +0 -0
- data/assets/images/logo.png +0 -0
- data/assets/images/logo.svg +87 -0
- data/assets/images/search-by-algolia-light-background.svg +1 -0
- data/assets/images/thumb-topic-data-source-edit.png +0 -0
- data/assets/js/anchor.min.js +9 -0
- data/assets/js/asciidoctor.min.js +1472 -0
- data/assets/js/bootstrap-toc.js +180 -0
- data/assets/js/bootstrap.min.js +7 -0
- data/assets/js/highlight.pack.js +870 -0
- data/assets/js/jquery-3.3.1.js +10364 -0
- data/assets/js/jquery-3.3.1.min.js +2 -0
- data/assets/js/jquery.cookie.js +114 -0
- data/assets/js/jquery.navgoco.js +314 -0
- data/assets/js/semantics.js +58 -0
- data/assets/js/tabber.js +111 -0
- data/assets/js/tail.js +37 -0
- data/assets/js/toggler.js +50 -0
- data/lib/asciidocsy/data/dependencies.yml +142 -0
- data/lib/asciidocsy/data/releases.yml +245 -0
- data/lib/asciidocsy/templates/notice-file.txt +16 -0
- data/lib/asciidocsy/version.rb +13 -0
- data/lib/asciidocsy.rb +1 -0
- metadata +462 -0
@@ -0,0 +1,79 @@
|
|
1
|
+
:page-permalink: /docs/theme/toolchain
|
2
|
+
= AsciiDocsy Toolchain
|
3
|
+
include::{path_to_readme}[tags="globals"]
|
4
|
+
|
5
|
+
Like any theme, AsciiDocsy can be modified to accommodate an assortment of components.
|
6
|
+
In fact, AsciiDocsy mainly _is_ an assortment of components.
|
7
|
+
Here are the ones I have chosen, after building numerous Jekyll/AsciiDoc sites across more than five years.
|
8
|
+
|
9
|
+
[NOTE]
|
10
|
+
Neither AcsiiDocsy nor its author have any financial stake in these tooling choices.
|
11
|
+
They are all free and open-source of freemium and OS-friendly.
|
12
|
+
They can all be replaced by competent alternatives, but these are my sincere favorites.
|
13
|
+
|
14
|
+
== Asciidoctor and Jekyll-AsciiDoc
|
15
|
+
|
16
|
+
If you're working in AsciiDoc, which is _the_ choice for serious technical documentation projects (including books), you're working with Asciidoctor.
|
17
|
+
link:https://www.asciidoctor.org[Asciidoctor] has a terrific, growing community.
|
18
|
+
The organization provides all kinds of converters and related tools for numerous environments, and Ascsiidoctor maintains the link:https://github.com/asciidoctor/jekyll-asciidoc[jekyll-asciidoc] plugin as a top-notch Ruby gem.
|
19
|
+
|
20
|
+
== Bootstrap
|
21
|
+
|
22
|
+
Every good website has an HTML/CSS/JS framework, and like millions of others, for AsciiDocsy that framework is Twitter's link:https://getbootstrap.com[Bootstrap library].
|
23
|
+
Sure, some components wind up looking commonplace, but the convenience and consistency of Bootstrap makes it easy to resist -- especially because it's so easy to modify, extend, and disguise.
|
24
|
+
|
25
|
+
At this time, AsciiDocsy uses link:https://getbootstrap.com/docs/4.3/getting-started/introduction/[Bootstrap version 4.3], but we will probably upgrade to link:https://getbootstrap.com/docs/5.0/getting-started/introduction/[version 5] before long.
|
26
|
+
|
27
|
+
== Highlight.js
|
28
|
+
|
29
|
+
For code-block syntax hiding, there are several options.
|
30
|
+
Asciidoctor does a good job of laying out the link:https://docs.asciidoctor.org/asciidoctor/latest/syntax-highlighting/[four highlighters] it comes ready to handle.
|
31
|
+
|
32
|
+
AsciiDocsy enables both Rouge and Highlight.js.
|
33
|
+
Highlight.js is not available for PDFs, so Rouge is a better fit there.
|
34
|
+
|
35
|
+
Highlight.js is the choice for the AsciiDocsy site itself largely because Hjs provides syntax highlighting for AsciiDoc source itself, and Rouge as of yet does not.
|
36
|
+
|
37
|
+
== Navgoco Menu
|
38
|
+
|
39
|
+
I have tried a lot of collapsing/multi-tiered menu components, but I always come back to link:https://github.com/tefra/navgoco[Navgoco].
|
40
|
+
It is simple and applies elegantly to a conventional HTML structure (normal unordered lists).
|
41
|
+
It collapses and nests, if you want it to, and it's easy to style.
|
42
|
+
|
43
|
+
I would not mind extending this menu system a bit, but I need more concrete direction.
|
44
|
+
Something to discuss in the link:{theme_source_www}/issues[Issues], perhaps?
|
45
|
+
|
46
|
+
== Bootstrap TOC
|
47
|
+
|
48
|
+
There are several ways to implement scrollspy-capable tables of contents, but this is my new favorite.
|
49
|
+
The nested levels make it perfect for long documents, where other such TOCs often force you to scroll the TOC itself.
|
50
|
+
I just love this little component.
|
51
|
+
|
52
|
+
== Netlify CI/CD/Hosting
|
53
|
+
|
54
|
+
link:https://www.netlify.com[Netlify] makes continuous integration and deployment a relative breeze.
|
55
|
+
It's free to tinker with, and even for modestly sized production sites.
|
56
|
+
They also accommodate enterprise-scale needs.
|
57
|
+
|
58
|
+
Niche turnkey CI/CD platforms (in this case, for publishing) have great potential to save hundreds and hundreds of IT/DevOps hours every year.
|
59
|
+
Others prefer to handle this aspect in-house, if they have the resources.
|
60
|
+
|
61
|
+
== Algolia Search
|
62
|
+
|
63
|
+
link:https://www.algolia.com[Algolia] provides the cloud platform that the AsciiDocsy indexes to and queries from.
|
64
|
+
It also provides a widget framework for building great search apps.
|
65
|
+
|
66
|
+
Unlike hosting, this is almost certainly a nut no organization wants to crack in-house, as search algorithms are proprietary.
|
67
|
+
You are going to pay for good search -- my clients get good results and a good value from Algolia.
|
68
|
+
|
69
|
+
I believe all of the clients I have put on Algolia have kept it as their needs have grown.
|
70
|
+
|
71
|
+
.Goodbye Lunr Search
|
72
|
+
****
|
73
|
+
Although I have never used it in production, I have always been rather fond of Lunr, the JavaScript-only search engine that comes set up by default on most Jekyll and other SSG themes.
|
74
|
+
It's a work of wonder, but alas, good search is not a client-side production, and Lunr has some bugs that are nearly inherent, and therefore unsolvable, to my understanding.
|
75
|
+
|
76
|
+
I decided to rip it out of the Docsy Jekyll code I started out with.
|
77
|
+
It's probably sufficient for blog searches, but I cannot fathom a serious product documentation site using it.
|
78
|
+
If people would strongly prefer Lunr, I will add it back in as an option so search works out of the box.
|
79
|
+
****
|
@@ -0,0 +1,49 @@
|
|
1
|
+
:page-permalink: /docs/theme/setup/upgrade-0-3-0
|
2
|
+
include::{path_to_readme}[tags="globals"]
|
3
|
+
= Upgrading to AsciiDocsy v0.3.0
|
4
|
+
|
5
|
+
As of AsciiDocsy v0.3.0, the whole theme ships as a proper Ruby gem.
|
6
|
+
Jekyll handles gemified themes differently than collocated themes.
|
7
|
+
|
8
|
+
The latter type, as with AsciiDocsy prior to 0.3.0, means storing all core theme files locally.
|
9
|
+
With a gemified theme, you only store alternate files locally, for overwriting core theme files.
|
10
|
+
|
11
|
+
In order to release AsciiDocsy as a conventionally structured Jekyll theme plugin, I made changes that may necessitate some reorganizing if you wish to upgrade from a prior release.
|
12
|
+
|
13
|
+
With a few small adjustments, you should be able to serve exactly the same site using the new gem-based theme.
|
14
|
+
|
15
|
+
[NOTE]
|
16
|
+
No significant front-end or back-end feature changes were made for the 0.3.0 release, other than the major repackaging alterations.
|
17
|
+
It should generate HTML in an identical fashion, and the newly organized styles should match up 1:1.
|
18
|
+
|
19
|
+
== Alterations
|
20
|
+
|
21
|
+
Here are the major changes:
|
22
|
+
|
23
|
+
. Assets moved to `assets/` directory.
|
24
|
+
* `css/`, `images/`, `js/`, and `fonts/` all moved.
|
25
|
+
* `_includes/` and `_layouts/` stayed in root path.
|
26
|
+
|
27
|
+
. Bootstrap and AsciiDocsy styles are now sourced as Sass.
|
28
|
+
* New `_sass/` directory contains dynamic CSS source.
|
29
|
+
* New files `assets/css/bootstrap.scss` and `assets/css/asciidocsy.scss` define compiling of Sass source.
|
30
|
+
|
31
|
+
. AsciiDocsy's own docs content has moved around a bit.
|
32
|
+
* The strings `theme_` and `style_` prepended to filenames in `_docs/topics/` have been removed.
|
33
|
+
* Files from `_docs/topics/` that were labeled with `style_` and displayed under the Style Guides domain have been moved to the new link:{theme_docs_repo_www}[AsciiDocsy Docs repo].
|
34
|
+
|
35
|
+
. Dependency definitions are included in gem specification.
|
36
|
+
+
|
37
|
+
--
|
38
|
+
* Theme-specific dependencies like jekyll-liquify, jekyll-asciidoc will be imported automatically.
|
39
|
+
--
|
40
|
+
+
|
41
|
+
[NOTE]
|
42
|
+
We still advise including `jekyll` gem explicitly in your application's Gemfile.
|
43
|
+
|
44
|
+
== Using AsciiDocsy 0.3.0
|
45
|
+
|
46
|
+
It's easier than ever to add AsciiDocsy to your theme!
|
47
|
+
Use any of the link:https://jekyllrb.com/docs/themes/#installing-a-theme[methods Jekyll provides].
|
48
|
+
|
49
|
+
See the link:{theme_docs_repo_www}/blob/main/Gemfile[Gemfile in the AsciiDocsy Docs repo] for exemplary usage.
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// customize Sass variables here
|
2
|
+
$primary: {{ site.data.theme.styles.color.theme-primary }};
|
3
|
+
// $secondary: {{ site.data.theme.styles.color.theme-secondary }};
|
4
|
+
// $success: ;
|
5
|
+
// $info: ;
|
6
|
+
// $warning: ;
|
7
|
+
// $danger: ;
|
8
|
+
// $light: ;
|
9
|
+
// $dark: ;
|
10
|
+
$example-block-bg: #e6f0f5;
|
11
|
+
$font-size-base: 1rem;
|
12
|
+
$font-size-para: $font-size-base;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<!-- {% comment %}
|
2
|
+
Generates a "breadcrumb trail" of parent categories.
|
3
|
+
Defined by:
|
4
|
+
`breadcrumbs` object of `site.data.manifest.breadcrumbs`
|
5
|
+
`breadcrumbs` object in the Jekyll configuration path
|
6
|
+
{% endcomment %} -->
|
7
|
+
{% assign crumbs = page.url | remove:'/index.html' | split: '/' %}
|
8
|
+
{% assign delim = site.data.navs.breadcrumbs.show.opts.delim | default: "/" %}
|
9
|
+
<div id="breadcrumbs">
|
10
|
+
<a href="/">{{ site.data.navs.breadcrumbs.show.home | default: "Home" }}</a>
|
11
|
+
{% for crumb in crumbs offset: 1 %}
|
12
|
+
{% if forloop.last %}
|
13
|
+
{{delim}} {{ page.title }}
|
14
|
+
{% else %}
|
15
|
+
{% assign crumb_default = crumb | replace:'-',' ' | remove:'.html' | capitalize %}
|
16
|
+
{% assign crumb_qry = site.data.manifest.breadcrumbs | where: "slug",crumb %}
|
17
|
+
{{delim}} <a href="{% assign crumb_limit = forloop.index | plus: 1 %}{% for crumb in crumbs limit: crumb_limit %}{{ crumb | append: '/' }}{% endfor %}">{{ crumb_qry[0]['text'] | default: crumb_default }}</a>
|
18
|
+
{% endif %}
|
19
|
+
{% endfor %}
|
20
|
+
</div>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
{% include string-eval.liquid string=include.key_str %}
|
2
|
+
{% for obj in data_obj %}
|
3
|
+
{% capture obj_str %}{{ include.key_str }}.{{ obj[0] }}{% endcapture %}
|
4
|
+
{% unless obj[1]['$doc'] == 'none' %}
|
5
|
+
{% if obj[1] and obj[0] != '$doc' %}
|
6
|
+
{% assign docs = obj[1]['$doc'] %}
|
7
|
+
{% assign name_def = obj[0] | capitalize %}
|
8
|
+
{% assign obj_name = docs.name | default: name_def %}
|
9
|
+
|
10
|
+
=== {{ obj_name }}
|
11
|
+
|
12
|
+
[big]`{{ obj_str }}`
|
13
|
+
{% if docs %}
|
14
|
+
{% if docs.desc %}
|
15
|
+
{{ docs.desc }}
|
16
|
+
{% endif %}
|
17
|
+
{% if docs.args.size > 0 %}
|
18
|
+
{% include config-api-properties.asciidoc base=obj_str args=docs.args %}
|
19
|
+
{% endif %}
|
20
|
+
{% endif %}
|
21
|
+
{% endif %}
|
22
|
+
{% endunless %}
|
23
|
+
{% endfor %}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
{% if include.args.size > 0 %}
|
2
|
+
[discrete]
|
3
|
+
==== Properties
|
4
|
+
|
5
|
+
[.api-object-properties]
|
6
|
+
--
|
7
|
+
{% for arg in include.args %}
|
8
|
+
{% assign arg_key = arg[0] | replace: "_","." %}
|
9
|
+
{% capture prop_key %}{{ include.base }}.{{ arg_key }}{% endcapture %}
|
10
|
+
|
11
|
+
[discrete]
|
12
|
+
===== `{{ prop_key }}`
|
13
|
+
|
14
|
+
[horizontal]
|
15
|
+
{%- if arg[1].desc %}
|
16
|
+
usage:: {{ arg[1].desc }}
|
17
|
+
{%- endif %}
|
18
|
+
{%- if arg[1].type %}
|
19
|
+
type:: {{ arg[1].type }}
|
20
|
+
{%- endif %}
|
21
|
+
{%- include string-eval.liquid string=prop_key %}
|
22
|
+
{%- if data_obj %}
|
23
|
+
default:: `{{ data_obj }}`
|
24
|
+
{% endif %}
|
25
|
+
{% endfor %}
|
26
|
+
--
|
27
|
+
{% else %}
|
28
|
+
No properties found.
|
29
|
+
{% endif %}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
[.api-reference]
|
2
|
+
{% for cat in site.data.theme %}
|
3
|
+
{% assign catkey = cat[0] %}
|
4
|
+
{% capture catkey_str %}site.data.theme.{{ catkey }}{% endcapture %}
|
5
|
+
{% if cat[1]['$doc'] %}
|
6
|
+
{% assign doc = cat[1]['$doc'] %}
|
7
|
+
{% unless doc.skip %}
|
8
|
+
== {{catkey | replace: "-"," " | upcase}}
|
9
|
+
|
10
|
+
[big]`{{ catkey_str }}`
|
11
|
+
{% if doc.desc %}
|
12
|
+
{{ doc.desc }}
|
13
|
+
{% endif %}
|
14
|
+
{% include config-api-objects.asciidoc key_str=catkey_str %}
|
15
|
+
{% else %}
|
16
|
+
{% for subcat in site.data.theme[catkey] %}
|
17
|
+
{% unless subcat[0] == "$doc" %}
|
18
|
+
{% assign subkey = subcat[0] %}
|
19
|
+
{% capture subkey_str %}{{ catkey_str }}.{{ subkey }}{% endcapture %}
|
20
|
+
== {{catkey | replace: "-"," " | upcase}}: {{ subkey | upcase }}
|
21
|
+
|
22
|
+
[big]`{{ subkey_str }}`
|
23
|
+
|
24
|
+
{% include config-api-objects.asciidoc key_str=subkey_str %}
|
25
|
+
{% endunless %}
|
26
|
+
{% endfor %}
|
27
|
+
{% endunless %}
|
28
|
+
{% endif %}
|
29
|
+
{% endfor %}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<!-- feedback form {% comment %}
|
2
|
+
Generates feedback form.
|
3
|
+
{% endcomment %} -->
|
4
|
+
{% if site.data.theme.forms.feedback-form %}
|
5
|
+
{% assign fform = site.data.theme.forms.feedback-form %}
|
6
|
+
<style>
|
7
|
+
.feedback--answer {
|
8
|
+
display: inline-block;
|
9
|
+
}
|
10
|
+
.feedback--response {
|
11
|
+
display: none;
|
12
|
+
margin-top: 1em;
|
13
|
+
}
|
14
|
+
.feedback--response__visible {
|
15
|
+
display: block;
|
16
|
+
}
|
17
|
+
</style>
|
18
|
+
<div class="jumbotron col-sm-4">
|
19
|
+
<i class="icon {{ fform.show.icon }} fa-4x float-right" style="margin-top: .5em;"></i>
|
20
|
+
<div class="h5">{{ fform.show.name }}</div>
|
21
|
+
<p class="feedback--question">{{ fform.show.text }}</p>
|
22
|
+
<form name="feedback" method="POST" data-netlify="true">
|
23
|
+
{% for opt in fform.send.opts %}
|
24
|
+
<button type="button" class="btn btn-sm btn-{{opt.color | default:'secondary'}} feedback--answer feedback--answer-{{ opt.slug }}">{{ opt.text }}</button>
|
25
|
+
{% endfor %}
|
26
|
+
</form>
|
27
|
+
</div>
|
28
|
+
<div class="feedback--response feedback--response-{{ opt.slug }}"></div>
|
29
|
+
<script>
|
30
|
+
{% for opt in fform.send.opts %}
|
31
|
+
const {{opt.slug}}Button = document.querySelector('.feedback--answer-{{opt.slug}}');
|
32
|
+
const {{opt.slug}}Response = document.querySelector('.feedback--response-{{opt.slug}}');
|
33
|
+
{% endfor %}
|
34
|
+
const disableButtons = () => {
|
35
|
+
{% for opt in fform.send.opts %}
|
36
|
+
{{opt.slug}}Button.disabled = true;
|
37
|
+
{% endfor %}
|
38
|
+
};
|
39
|
+
const sendFeedback = (value) => {
|
40
|
+
if (typeof ga !== 'function') return;
|
41
|
+
const args = {
|
42
|
+
command: 'send',
|
43
|
+
hitType: 'event',
|
44
|
+
category: 'Helpful',
|
45
|
+
action: 'click',
|
46
|
+
label: window.location.pathname,
|
47
|
+
value: value
|
48
|
+
};
|
49
|
+
ga(args.command, args.hitType, args.category, args.action, args.label, args.value);
|
50
|
+
};
|
51
|
+
{% for opt in fform.send.opts %}
|
52
|
+
{{opt.slug}}Button.addEventListener('click', () => {
|
53
|
+
{{opt.slug}}Response.classList.add('feedback--response__visible');
|
54
|
+
disableButtons();
|
55
|
+
sendFeedback(1);
|
56
|
+
});
|
57
|
+
{% endfor %}
|
58
|
+
</script>
|
59
|
+
{% endif %}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
{% assign footer_config = site.data.theme.blocks.page-footer %}
|
2
|
+
{% assign footer_nav = site.data.navs.footer %}
|
3
|
+
{% assign footer_str = site.data.theme.strings.footer %}
|
4
|
+
{% comment %}var alt_links set by hook{% endcomment %}
|
5
|
+
{% include hook.liquid template="footer_html" spot="head" %}
|
6
|
+
<footer class="{{ footer_config.show.opts.class | default: 'row flex-xl-nowrap' }}"><!-- COMPANY REF/NAV -->
|
7
|
+
<div class="container-fluid">
|
8
|
+
<div class="row">
|
9
|
+
<div class="col-md-4">
|
10
|
+
{% if footer_config.show.logo %}
|
11
|
+
<span class="company-logo">
|
12
|
+
<img src="{{ footer_config.show.logo.source | liquify }}" class="logo" width="{{ footer_config.show.logo.width | default: '100px' }}">
|
13
|
+
</span>
|
14
|
+
{% endif %}
|
15
|
+
{% if footer_str.title %}
|
16
|
+
<div class="footer-title h4">{{ footer_str.title }}</div>
|
17
|
+
{% endif %}
|
18
|
+
{% if footer_str.tagline %}
|
19
|
+
<div class="footer-title h5">{{ footer_str.tagline }}</div>
|
20
|
+
{% endif %}
|
21
|
+
{% if site.data.theme.blocks.social.show.spot == "footer" %}
|
22
|
+
{% include social-links.html list-class="list-inline" %}
|
23
|
+
{% endif %}
|
24
|
+
</div>
|
25
|
+
{% for col in footer_nav.columns %}
|
26
|
+
{% assign col_class = "" %}
|
27
|
+
{% if forloop.index == 1 %}
|
28
|
+
{% assign col_offset = 5 | minus: forloop.length %}
|
29
|
+
{% assign col_class = "offset-" | append: col_offset %}
|
30
|
+
{% endif %}
|
31
|
+
<div class="col-md-2 {{ col_class }}">
|
32
|
+
<ul class="list-unstyled">
|
33
|
+
<li class="footer-heading h5">{{ col.text }}</li>
|
34
|
+
{% for link in col.kids %}
|
35
|
+
{% assign link_ref = alt_links | where: "app",link.text | first %}
|
36
|
+
<li><a href="{{ link_ref.url | default: link.href | default: '#' }}" data-toggle="tooltip" title="{{ link_ref.use | default: link.text }}">{{ link.text }}</a></li>
|
37
|
+
{% endfor %}
|
38
|
+
</ul>
|
39
|
+
</div>
|
40
|
+
{% endfor %}
|
41
|
+
</div>
|
42
|
+
{% if footer_str.copyright or footer_str.madewith %}
|
43
|
+
<div class="row justify-content-md-center">
|
44
|
+
<div class="footer-strings col-md-8 text-center">
|
45
|
+
{% if footer_str.copyright %}
|
46
|
+
<div class="copyright">
|
47
|
+
<p>{{ footer_str.copyright | asciidocify }}</p>
|
48
|
+
</div>
|
49
|
+
{% endif %}
|
50
|
+
{% if footer_str.madewith %}
|
51
|
+
<div class="madewith">
|
52
|
+
<p>{{ footer_str.madewith | asciidocify }}</p>
|
53
|
+
</div>
|
54
|
+
{% endif %}
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
{% endif %}
|
58
|
+
{% include hook.liquid template="footer_html" spot="tail" %}
|
59
|
+
</footer>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
{% assign alert = site.features.alerts.gdpr-message %}
|
2
|
+
{% assign actions = site.features.actions.gdpr-alert %}
|
3
|
+
<script>
|
4
|
+
$.gdprcookie.init({
|
5
|
+
cookieTypes: [
|
6
|
+
{% for type in actions.pick.opts %}
|
7
|
+
{
|
8
|
+
type: "{{ type.name }}",
|
9
|
+
value: "{{ type.slug }}",
|
10
|
+
description: "{{ type.desc }}"
|
11
|
+
}{% unless forloop.index == actions.picks.opts.size %},{% endunless %}
|
12
|
+
{% endfor %}
|
13
|
+
],
|
14
|
+
title: "{{ alert.name }}",
|
15
|
+
subtitle: "{{ alert.show.line }}",
|
16
|
+
message: "{{ alert.show.text }}",
|
17
|
+
delay: 2000, // delay in milliseconds
|
18
|
+
expires: 30, // expiration <a href="https://www.jqueryscript.net/time-clock/">date</a>
|
19
|
+
cookieName: "cookieControlPrefs",
|
20
|
+
acceptReload: false,
|
21
|
+
acceptBtnLabel: "{{ action.sign.text }}",
|
22
|
+
advancedBtnLabel: "{{ action.pick.text }}",
|
23
|
+
customShowMessage: undefined,
|
24
|
+
customHideMessage: undefined,
|
25
|
+
customShowChecks: undefined
|
26
|
+
});
|
27
|
+
|
28
|
+
$.gdprcookie.display()
|
29
|
+
|
30
|
+
$(document.body)
|
31
|
+
.on("gdpr:show", function() {
|
32
|
+
console.log("Cookie dialog is shown");
|
33
|
+
})
|
34
|
+
.on("gdpr:accept", function() {
|
35
|
+
var preferences = $.gdprcookie.preference();
|
36
|
+
console.log("Preferences saved:", preferences);
|
37
|
+
})
|
38
|
+
.on("gdpr:advanced", function() {
|
39
|
+
console.log("Advanced button was pressed");
|
40
|
+
});
|
41
|
+
</script>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{% if site.services.analytics.google %}
|
2
|
+
<script async src='https://www.google-analytics.com/analytics.js'></script>
|
3
|
+
<script type="application/javascript">
|
4
|
+
var doNotTrack = false;
|
5
|
+
if (!doNotTrack) {
|
6
|
+
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
|
7
|
+
ga('create', '{{ site.services.analytics.google }}', 'auto');
|
8
|
+
ga('send', 'pageview');
|
9
|
+
}
|
10
|
+
</script>
|
11
|
+
{% endif %}
|
data/_includes/head.html
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
{% include _settings.liquid %}
|
2
|
+
<head>
|
3
|
+
<meta charset="utf-8">
|
4
|
+
<!-- Some HTML templates copyright 2019-2021 Vanessa Sochat | Apache 2.0 License -->
|
5
|
+
<!-- Adapted and re-released as AsciiDocsy under Apache 2.0 and MIT licenses
|
6
|
+
in 2021 by Codewriting LLC -->
|
7
|
+
{% assign page_url = site.deploy_url | append: page.url %}
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
9
|
+
<meta name="generator" content="Jekyll+Asciidoctor" />
|
10
|
+
{% if page.search-index %}
|
11
|
+
{% assign search_index = "index" %}
|
12
|
+
{% else %}
|
13
|
+
{% assign search_index = "noindex" %}
|
14
|
+
{% endif %}
|
15
|
+
<meta name="robots" content="{{ search_index }}, follow">
|
16
|
+
{% assign canonical_def = site.canonical_url | append: page.url %}
|
17
|
+
<link rel="canonical" href="{{ page.canonical | default: canonical_def }}" />
|
18
|
+
<link rel="shortcut icon" href="{{ images_url }}/favicons/favicon.ico" >
|
19
|
+
<link rel="icon" type="image/png" href="{{ images_url }}/favicons/favicon-16x16.png" sizes="16x16">
|
20
|
+
<link rel="icon" type="image/png" href="{{ images_url }}/favicons/favicon-32x32.png" sizes="32x32">
|
21
|
+
<!--
|
22
|
+
<link rel="apple-touch-icon" href="{{ images_url }}/favicons/apple-touch-icon-180x180.png" sizes="180x180">
|
23
|
+
<link rel="icon" type="image/png" href="{{ images_url }}/favicons/android-36x36.png" sizes="36x36">
|
24
|
+
<link rel="icon" type="image/png" href="{{ images_url }}/favicons/android-48x48.png" sizes="48x48">
|
25
|
+
<link rel="icon" type="image/png" href="{{ images_url }}/favicons/android-72x72.png" sizes="72x72">
|
26
|
+
<link rel="icon" type="image/png" href="{{ images_url }}/favicons/android-96x196.png" sizes="96x196">
|
27
|
+
<link rel="icon" type="image/png" href="{{ images_url }}/favicons/android-144x144.png" sizes="144x144">
|
28
|
+
<link rel="icon" type="image/png" href="{{ images_url }}/favicons/android-192x192.png" sizes="192x192">
|
29
|
+
-->
|
30
|
+
|
31
|
+
<title>
|
32
|
+
{% if page.title %}
|
33
|
+
{{ page.title }} |
|
34
|
+
{% endif %}
|
35
|
+
{{ site.title }}
|
36
|
+
</title>
|
37
|
+
|
38
|
+
<meta property="og:title" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}" />
|
39
|
+
<meta property="og:description" content="{% if page.description %}{{ page.description }}{% else %}{{ site.description }}{% endif %}" />
|
40
|
+
<meta property="og:type" content="website" />
|
41
|
+
<meta property="og:url" content="{{ site.url }}" />
|
42
|
+
<meta property="og:site_name" content="{{ site.url }}" />
|
43
|
+
|
44
|
+
<meta itemprop="name" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}">
|
45
|
+
<meta itemprop="description" content="{% if page.description %}{{ page.description | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
|
46
|
+
|
47
|
+
{% include hook.liquid template="head_html" spot="css_head" %}
|
48
|
+
<link rel="stylesheet" href="{{ styles_url }}/bootstrap.css"/>
|
49
|
+
<link rel="stylesheet" href="{{ styles_url }}/bootstrap-toc.css"/>
|
50
|
+
<link rel="stylesheet" href="{{ styles_url }}/jquery.navgoco.css"/>
|
51
|
+
<link rel="stylesheet" href="{{ styles_url }}/palette.css"/>
|
52
|
+
<link rel="stylesheet" href="{{ styles_url }}/asciidoctor.css"/>
|
53
|
+
<link rel="stylesheet" href="{{ styles_url }}/font-awesome.css"/>
|
54
|
+
<link rel="stylesheet" href="{{ styles_url }}/skins/foundation.css" id="theme-skin"/>
|
55
|
+
<link rel="stylesheet" href="{{ styles_url }}/syntax/hljs/a11y-light.css" id="syntax-skin"/>
|
56
|
+
{% if site.source-highlighter == "highlight.js" %}
|
57
|
+
<link rel="stylesheet" href="{{ styles_url }}/highlight.pack.css"/>
|
58
|
+
{% endif %}
|
59
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.10.4/dist/instantsearch-theme-algolia.min.css">
|
60
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.css@7.3.1/themes/reset-min.css" integrity="sha256-t2ATOGCtAIZNnzER679jwcFcKYfLlw01gli6F6oszk8=" crossorigin="anonymous"/>
|
61
|
+
<link rel="stylesheet" href="{{ styles_url }}/asciidocsy.css"/>
|
62
|
+
<link rel="stylesheet" href="{{ styles_url }}/custom.css"/>
|
63
|
+
{% include hook.liquid template="head_html" spot="css_tail" %}
|
64
|
+
|
65
|
+
{% assign empty_array = "" | split: "," %}
|
66
|
+
{% assign page_scripts = page.scripts | default: layout.scripts %}
|
67
|
+
{% assign all_scripts = site.data.theme.scripts %}
|
68
|
+
{% include scripts.html spot="head" %}
|
69
|
+
<script>
|
70
|
+
// invoke highligher.js
|
71
|
+
hljs.highlightAll();
|
72
|
+
</script>
|
73
|
+
{% include hook.liquid template="head_html" spot="tail" %}
|
74
|
+
</head>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<header><!-- DOCSITE REF/NAV -->
|
2
|
+
<nav id="nav-site" class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar td-navbar-{{ site.data.theme.styles.nav-site.position | default: 'fixed' }}">
|
3
|
+
<a class="navbar-brand" href="/{{ site.baseurl }}">
|
4
|
+
<span class="navbar-logo"></span>
|
5
|
+
<img src="{{ site.data.theme.blocks.header.show.logo.source }}" class="logo" width="{{ site.data.theme.blocks.header.show.logo.width | default: '50px' }}">
|
6
|
+
<span class="site-title">{{ site.name }}</span>
|
7
|
+
</a>
|
8
|
+
<div class="td-navbar-nav-scroll ml-md-auto align-content-end" id="navbarNavDropdown">
|
9
|
+
{% include nav-site.html %}
|
10
|
+
</div>
|
11
|
+
{% if site.data.theme.search.site.show.spot == "#nav-site" %}
|
12
|
+
{% include search-form.html search="site" %}
|
13
|
+
{% endif %}
|
14
|
+
{% if site.source_www %}
|
15
|
+
<div class="navbar-nav d-none d-lg-block">
|
16
|
+
<a class="nav-link" href="{{ site.source_www }}" target="_blank">
|
17
|
+
<i class="icon fab {{ site.source_icon | default: 'fa-code-fork' }} fa-2x"></i>
|
18
|
+
</a>
|
19
|
+
</div>
|
20
|
+
{% endif %}
|
21
|
+
</nav>
|
22
|
+
</header>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
{% comment %}
|
2
|
+
Inserts the data-designated template into calling template at `spot`...
|
3
|
+
REPLACES WHOLE template (if spot == 'file' & calling template is conditional)
|
4
|
+
{% endcomment %}
|
5
|
+
{% assign hook_replace_tpl = false %}
|
6
|
+
{% assign spot = include.spot | default: 'file' %}
|
7
|
+
{% assign hook = site.data.theme.extend.hooks.templates[include.template][spot] %}
|
8
|
+
{% if hook %}
|
9
|
+
{% if spot == "file" %}
|
10
|
+
{% assign tpl_ext = include.template | split: "_" | last %}
|
11
|
+
{% case tpl_ext %}
|
12
|
+
{% when "html","htm" %}
|
13
|
+
{% assign cmt_start = "<!-- " %}
|
14
|
+
{% assign cmt_end = " -->" %}
|
15
|
+
{% when "yaml","yml" %}
|
16
|
+
{% assign cmt_start = "# " %}
|
17
|
+
{% assign cmt_end = "" %}
|
18
|
+
{% when "asciidoc","adoc","ad" %}
|
19
|
+
{% assign cmt_start = "// " %}
|
20
|
+
{% assign cmt_end = "" %}
|
21
|
+
{% endcase %}
|
22
|
+
{% assign hook_replace_tpl = true %}
|
23
|
+
{{ cmt_start }}template replaced by hook ({{hook.template}}){{ cmt_end }}
|
24
|
+
{% endif %}
|
25
|
+
{% include {{ hook.template }} %}
|
26
|
+
{% endif %}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<!-- nav menu {% comment %}
|
2
|
+
Generates header navigation menu.
|
3
|
+
{% endcomment %} -->
|
4
|
+
<ul class="navbar-nav mt-2 mt-lg-0">
|
5
|
+
{% for link in site.data.navs.header.links %}
|
6
|
+
{% assign link_match = link.href | append: "/" | replace: "//","/" %}
|
7
|
+
{% assign page_path = page.url | truncate: link_match.size, "" | append: "/" | replace: "//","/" %}
|
8
|
+
{% if link_match == page_path %}
|
9
|
+
{% assign active = "active" %}
|
10
|
+
{% endif %}
|
11
|
+
{% if link.kids %}
|
12
|
+
<li class="nav-item mr-4 mb-2 mb-lg-0 dropdown">
|
13
|
+
<a class="nav-link dropdown-toggle {{active}}" href="{{ link.href | default: '#' }}" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
14
|
+
{{ link.text }}</a>
|
15
|
+
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
|
16
|
+
{% for kid in link.kids %}
|
17
|
+
<a class="dropdown-item" href="{{ kid.href }}">
|
18
|
+
{{ kid.text }}
|
19
|
+
</a>
|
20
|
+
{% endfor %}
|
21
|
+
</div>
|
22
|
+
</li>
|
23
|
+
{% else %}
|
24
|
+
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
25
|
+
<a class="nav-link {{active}}" href="{{ link.href }}">{{ link.text}}</a>
|
26
|
+
</li>
|
27
|
+
{% endif %}
|
28
|
+
{% assign active = "" %}
|
29
|
+
{% endfor %}
|
30
|
+
</ul>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<!-- {% comment %}
|
2
|
+
Generates #sidebar-left navigation for subject/product
|
3
|
+
{% endcomment %} NAVGOCO menu component -->
|
4
|
+
<ul id="subject-menu" class="nav flex-column">
|
5
|
+
{% for item in include.manifest['menu'] %}
|
6
|
+
{% include path-active.liquid href=item.href kids=item.kids %}
|
7
|
+
<li class="nav-item open card tier-1 {{parent}} {{active}}">
|
8
|
+
{% if item.href %}<a href="{{ item.href }}" class="{{active}} {{open}}">{% endif %}
|
9
|
+
{{ item.text }}
|
10
|
+
{% if item.href %}</a>{% endif %}
|
11
|
+
<!-- tag::sample-nesting[] -->
|
12
|
+
{% if item.kids %}
|
13
|
+
<ul>
|
14
|
+
{% for topic in item.kids %}
|
15
|
+
{% include path-active.liquid href=topic.href kids=topic.kids %}
|
16
|
+
<li class="nav-item tier-2 {{open}} {{parent}} {{active}}">
|
17
|
+
<a href="{{ topic.href }}" class="nav-link {{active}} {{open}}">
|
18
|
+
{{ topic.text }}
|
19
|
+
</a>
|
20
|
+
{% if topic.kids %}
|
21
|
+
<ul>
|
22
|
+
{% for subtopic in topic.kids %}
|
23
|
+
{% include path-active.liquid href=subtopic.href kids=subtopic.kids %}
|
24
|
+
<li class="nav-item tier-3 {{open}} {{parent}} {{active}}">
|
25
|
+
<a href="{{ subtopic.href }}" class="nav-link {{active}}">{{ subtopic.text }}</a>
|
26
|
+
{% if subtopic.kids %}
|
27
|
+
<ul>
|
28
|
+
{% for sst in subtopic.kids %}
|
29
|
+
{% include path-active.liquid href=sst.href kids=sst.kids %}
|
30
|
+
<li class="nav-item tier-4 {{open}} {{parent}} {{active}}">
|
31
|
+
<a href="{{ sst.href }}" class="nav-link {{active}}">{{ sst.text }}</a>
|
32
|
+
</li>
|
33
|
+
{% endfor %}
|
34
|
+
</ul>
|
35
|
+
{% endif %}
|
36
|
+
</li>
|
37
|
+
{% endfor %}
|
38
|
+
</ul>
|
39
|
+
{% endif %}
|
40
|
+
</li>
|
41
|
+
{% endfor %}
|
42
|
+
</ul>
|
43
|
+
{% endif %}
|
44
|
+
<!-- end::sample-nesting[] -->
|
45
|
+
</li>
|
46
|
+
{% assign active = "" %}
|
47
|
+
{% assign open = "" %}
|
48
|
+
{% endfor %}
|
49
|
+
</ul>
|