asciidocsy-jekyll-theme 0.3.0.pre.dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/_config.yml +66 -0
  4. data/_data/theme/alerts.yml +21 -0
  5. data/_data/theme/blocks.yml +33 -0
  6. data/_data/theme/forms.yml +72 -0
  7. data/_data/theme/navigation.yml +53 -0
  8. data/_data/theme/page-actions.yml +83 -0
  9. data/_data/theme/policies.yml +68 -0
  10. data/_data/theme/release-hx.yml +163 -0
  11. data/_data/theme/scripts.yml +43 -0
  12. data/_data/theme/semantics.yml +14 -0
  13. data/_data/theme/strings.yml +13 -0
  14. data/_data/theme/styles.yml +8 -0
  15. data/_docs/snippets/example_tabset-source.adoc +60 -0
  16. data/_docs/snippets/example_tabset-source_data.json +16 -0
  17. data/_docs/snippets/example_tabset-source_data.xml +17 -0
  18. data/_docs/snippets/example_tabset-source_data.yml +10 -0
  19. data/_docs/snippets/example_toggles.adoc +25 -0
  20. data/_docs/snippets/handlers-table.adoc +40 -0
  21. data/_docs/snippets/reference-cluster.adoc +1 -0
  22. data/_docs/topics/advanced-applications_c.adoc +50 -0
  23. data/_docs/topics/config-api_r.adoc +21 -0
  24. data/_docs/topics/config-release-hx.adoc +4 -0
  25. data/_docs/topics/config-search-algolia.adoc +77 -0
  26. data/_docs/topics/config-search.adoc +47 -0
  27. data/_docs/topics/config-semantics.adoc +45 -0
  28. data/_docs/topics/config-switcher_r.adoc +33 -0
  29. data/_docs/topics/config-tabber_r.adoc +49 -0
  30. data/_docs/topics/config-toggle_r.adoc +20 -0
  31. data/_docs/topics/config-versioning-amenders_r.adoc +76 -0
  32. data/_docs/topics/config-versioning-swaps_r.adoc +193 -0
  33. data/_docs/topics/config-versioning-tabsets_r.adoc +51 -0
  34. data/_docs/topics/config-versioning-toggles_r.adoc +42 -0
  35. data/_docs/topics/config-versioning.adoc +134 -0
  36. data/_docs/topics/config_r.adoc +131 -0
  37. data/_docs/topics/extend.adoc +70 -0
  38. data/_docs/topics/frontend-overview.adoc +62 -0
  39. data/_docs/topics/history-converse.adoc +18 -0
  40. data/_docs/topics/history-patches-merged.adoc +18 -0
  41. data/_docs/topics/history.adoc +23 -0
  42. data/_docs/topics/intro.adoc +6 -0
  43. data/_docs/topics/setup-bootstrap_t.adoc +71 -0
  44. data/_docs/topics/setup-environment_rg.adoc +65 -0
  45. data/_docs/topics/setup-quickstart_t.adoc +10 -0
  46. data/_docs/topics/setup.adoc +9 -0
  47. data/_docs/topics/syntax-highlighter-examples_r.adoc +172 -0
  48. data/_docs/topics/toolchain.adoc +79 -0
  49. data/_includes/_settings.liquid +2 -0
  50. data/_includes/_variables.sass +12 -0
  51. data/_includes/breadcrumbs.html +20 -0
  52. data/_includes/breadcrumbs_alt.html +6 -0
  53. data/_includes/config-api-objects.asciidoc +23 -0
  54. data/_includes/config-api-properties.asciidoc +29 -0
  55. data/_includes/config-api.asciidoc +29 -0
  56. data/_includes/feedback.html +59 -0
  57. data/_includes/footer-links_sup.html +5 -0
  58. data/_includes/footer.html +59 -0
  59. data/_includes/gdpr-message.html +41 -0
  60. data/_includes/google-analytics.html +11 -0
  61. data/_includes/head.html +74 -0
  62. data/_includes/header.html +22 -0
  63. data/_includes/hook.liquid +26 -0
  64. data/_includes/nav-site.html +30 -0
  65. data/_includes/nav-subject-menu.html +49 -0
  66. data/_includes/page-links.html +45 -0
  67. data/_includes/path-active.liquid +18 -0
  68. data/_includes/release-hx-change.asciidoc +7 -0
  69. data/_includes/release-hx-changes-listing.asciidoc +14 -0
  70. data/_includes/release-hx-note.asciidoc +54 -0
  71. data/_includes/release-hx-notes-listing.asciidoc +16 -0
  72. data/_includes/release-hx-revision.asciidoc +86 -0
  73. data/_includes/release-hx.asciidoc +57 -0
  74. data/_includes/scripts.html +8 -0
  75. data/_includes/search-form.html +113 -0
  76. data/_includes/see-also.html +17 -0
  77. data/_includes/social-links.html +10 -0
  78. data/_includes/string-eval.liquid +38 -0
  79. data/_includes/tail.html +7 -0
  80. data/_includes/theme-api-object-sub.asciidoc +4 -0
  81. data/_includes/theme-api-object.asciidoc +35 -0
  82. data/_includes/version-handler.html +245 -0
  83. data/_includes/versioning-controls.html +88 -0
  84. data/_layouts/default.html +94 -0
  85. data/_layouts/landing.html +28 -0
  86. data/_layouts/page.html +9 -0
  87. data/_layouts/post.html +8 -0
  88. data/_layouts/reference.html +6 -0
  89. data/_layouts/search.html +110 -0
  90. data/_layouts/topic.html +19 -0
  91. data/_sass/_asciidocsy.scss +698 -0
  92. data/_sass/_custom.scss +3 -0
  93. data/_sass/bootstrap/_alert.scss +51 -0
  94. data/_sass/bootstrap/_badge.scss +54 -0
  95. data/_sass/bootstrap/_breadcrumb.scss +41 -0
  96. data/_sass/bootstrap/_button-group.scss +163 -0
  97. data/_sass/bootstrap/_buttons.scss +137 -0
  98. data/_sass/bootstrap/_card.scss +289 -0
  99. data/_sass/bootstrap/_carousel.scss +197 -0
  100. data/_sass/bootstrap/_close.scss +41 -0
  101. data/_sass/bootstrap/_code.scss +48 -0
  102. data/_sass/bootstrap/_custom-forms.scss +507 -0
  103. data/_sass/bootstrap/_dropdown.scss +191 -0
  104. data/_sass/bootstrap/_forms.scss +330 -0
  105. data/_sass/bootstrap/_functions.scss +86 -0
  106. data/_sass/bootstrap/_grid.scss +52 -0
  107. data/_sass/bootstrap/_images.scss +42 -0
  108. data/_sass/bootstrap/_input-group.scss +193 -0
  109. data/_sass/bootstrap/_jumbotron.scss +17 -0
  110. data/_sass/bootstrap/_list-group.scss +149 -0
  111. data/_sass/bootstrap/_media.scss +8 -0
  112. data/_sass/bootstrap/_mixins.scss +47 -0
  113. data/_sass/bootstrap/_modal.scss +229 -0
  114. data/_sass/bootstrap/_nav.scss +120 -0
  115. data/_sass/bootstrap/_navbar.scss +294 -0
  116. data/_sass/bootstrap/_pagination.scss +73 -0
  117. data/_sass/bootstrap/_popover.scss +171 -0
  118. data/_sass/bootstrap/_print.scss +141 -0
  119. data/_sass/bootstrap/_progress.scss +43 -0
  120. data/_sass/bootstrap/_reboot.scss +483 -0
  121. data/_sass/bootstrap/_root.scss +19 -0
  122. data/_sass/bootstrap/_spinners.scss +55 -0
  123. data/_sass/bootstrap/_tables.scss +185 -0
  124. data/_sass/bootstrap/_toasts.scss +44 -0
  125. data/_sass/bootstrap/_tooltip.scss +115 -0
  126. data/_sass/bootstrap/_transitions.scss +20 -0
  127. data/_sass/bootstrap/_type.scss +125 -0
  128. data/_sass/bootstrap/_utilities.scss +17 -0
  129. data/_sass/bootstrap/_variables.scss +1123 -0
  130. data/_sass/bootstrap/bootstrap-grid.scss +29 -0
  131. data/_sass/bootstrap/bootstrap-reboot.scss +12 -0
  132. data/_sass/bootstrap/bootstrap.scss +44 -0
  133. data/_sass/bootstrap/mixins/_alert.scss +13 -0
  134. data/_sass/bootstrap/mixins/_background-variant.scss +21 -0
  135. data/_sass/bootstrap/mixins/_badge.scss +17 -0
  136. data/_sass/bootstrap/mixins/_border-radius.scss +63 -0
  137. data/_sass/bootstrap/mixins/_box-shadow.scss +20 -0
  138. data/_sass/bootstrap/mixins/_breakpoints.scss +123 -0
  139. data/_sass/bootstrap/mixins/_buttons.scss +107 -0
  140. data/_sass/bootstrap/mixins/_caret.scss +62 -0
  141. data/_sass/bootstrap/mixins/_clearfix.scss +7 -0
  142. data/_sass/bootstrap/mixins/_deprecate.scss +10 -0
  143. data/_sass/bootstrap/mixins/_float.scss +14 -0
  144. data/_sass/bootstrap/mixins/_forms.scss +192 -0
  145. data/_sass/bootstrap/mixins/_gradients.scss +45 -0
  146. data/_sass/bootstrap/mixins/_grid-framework.scss +66 -0
  147. data/_sass/bootstrap/mixins/_grid.scss +51 -0
  148. data/_sass/bootstrap/mixins/_hover.scss +37 -0
  149. data/_sass/bootstrap/mixins/_image.scss +36 -0
  150. data/_sass/bootstrap/mixins/_list-group.scss +21 -0
  151. data/_sass/bootstrap/mixins/_lists.scss +7 -0
  152. data/_sass/bootstrap/mixins/_nav-divider.scss +10 -0
  153. data/_sass/bootstrap/mixins/_pagination.scss +22 -0
  154. data/_sass/bootstrap/mixins/_reset-text.scss +17 -0
  155. data/_sass/bootstrap/mixins/_resize.scss +6 -0
  156. data/_sass/bootstrap/mixins/_screen-reader.scss +33 -0
  157. data/_sass/bootstrap/mixins/_size.scss +7 -0
  158. data/_sass/bootstrap/mixins/_table-row.scss +39 -0
  159. data/_sass/bootstrap/mixins/_text-emphasis.scss +16 -0
  160. data/_sass/bootstrap/mixins/_text-hide.scss +11 -0
  161. data/_sass/bootstrap/mixins/_text-truncate.scss +8 -0
  162. data/_sass/bootstrap/mixins/_transition.scss +16 -0
  163. data/_sass/bootstrap/mixins/_visibility.scss +8 -0
  164. data/_sass/bootstrap/utilities/_align.scss +8 -0
  165. data/_sass/bootstrap/utilities/_background.scss +19 -0
  166. data/_sass/bootstrap/utilities/_borders.scss +75 -0
  167. data/_sass/bootstrap/utilities/_clearfix.scss +3 -0
  168. data/_sass/bootstrap/utilities/_display.scss +26 -0
  169. data/_sass/bootstrap/utilities/_embed.scss +39 -0
  170. data/_sass/bootstrap/utilities/_flex.scss +51 -0
  171. data/_sass/bootstrap/utilities/_float.scss +11 -0
  172. data/_sass/bootstrap/utilities/_overflow.scss +5 -0
  173. data/_sass/bootstrap/utilities/_position.scss +32 -0
  174. data/_sass/bootstrap/utilities/_screenreaders.scss +11 -0
  175. data/_sass/bootstrap/utilities/_shadows.scss +6 -0
  176. data/_sass/bootstrap/utilities/_sizing.scss +20 -0
  177. data/_sass/bootstrap/utilities/_spacing.scss +73 -0
  178. data/_sass/bootstrap/utilities/_stretched-link.scss +19 -0
  179. data/_sass/bootstrap/utilities/_text.scss +72 -0
  180. data/_sass/bootstrap/utilities/_visibility.scss +13 -0
  181. data/assets/css/asciidocsy.bak.css +722 -0
  182. data/assets/css/asciidocsy.scss +9 -0
  183. data/assets/css/asciidoctor.css +776 -0
  184. data/assets/css/bootstrap-4.3.bak.css +13780 -0
  185. data/assets/css/bootstrap-toc.css +60 -0
  186. data/assets/css/bootstrap.scss +4 -0
  187. data/assets/css/custom.css +2 -0
  188. data/assets/css/font-awesome.css +2337 -0
  189. data/assets/css/font-awesome.min.css +4 -0
  190. data/assets/css/jquery.navgoco.css +69 -0
  191. data/assets/css/palette.css +217 -0
  192. data/assets/css/skins/colony.css +734 -0
  193. data/assets/css/skins/foundation-lime.css +727 -0
  194. data/assets/css/skins/foundation-potion.css +727 -0
  195. data/assets/css/skins/foundation.css +720 -0
  196. data/assets/css/skins/github.css +741 -0
  197. data/assets/css/skins/golo.css +738 -0
  198. data/assets/css/skins/iconic.css +762 -0
  199. data/assets/css/skins/maker.css +738 -0
  200. data/assets/css/skins/readthedocs.css +739 -0
  201. data/assets/css/skins/riak.css +759 -0
  202. data/assets/css/skins/rocket-panda.css +734 -0
  203. data/assets/css/skins/rubygems.css +722 -0
  204. data/assets/css/syntax/hljs/a11y-dark.css +99 -0
  205. data/assets/css/syntax/hljs/a11y-light.css +99 -0
  206. data/assets/css/syntax/hljs/agate.css +108 -0
  207. data/assets/css/syntax/hljs/an-old-hope.css +89 -0
  208. data/assets/css/syntax/hljs/androidstudio.css +66 -0
  209. data/assets/css/syntax/hljs/arduino-light.css +87 -0
  210. data/assets/css/syntax/hljs/arta.css +73 -0
  211. data/assets/css/syntax/hljs/ascetic.css +45 -0
  212. data/assets/css/syntax/hljs/atelier-cave-dark.css +83 -0
  213. data/assets/css/syntax/hljs/atelier-cave-light.css +85 -0
  214. data/assets/css/syntax/hljs/atelier-dune-dark.css +69 -0
  215. data/assets/css/syntax/hljs/atelier-dune-light.css +69 -0
  216. data/assets/css/syntax/hljs/atelier-estuary-dark.css +84 -0
  217. data/assets/css/syntax/hljs/atelier-estuary-light.css +84 -0
  218. data/assets/css/syntax/hljs/atelier-forest-dark.css +69 -0
  219. data/assets/css/syntax/hljs/atelier-forest-light.css +69 -0
  220. data/assets/css/syntax/hljs/atelier-heath-dark.css +69 -0
  221. data/assets/css/syntax/hljs/atelier-heath-light.css +69 -0
  222. data/assets/css/syntax/hljs/atelier-lakeside-dark.css +69 -0
  223. data/assets/css/syntax/hljs/atelier-lakeside-light.css +69 -0
  224. data/assets/css/syntax/hljs/atelier-plateau-dark.css +84 -0
  225. data/assets/css/syntax/hljs/atelier-plateau-light.css +84 -0
  226. data/assets/css/syntax/hljs/atelier-savanna-dark.css +84 -0
  227. data/assets/css/syntax/hljs/atelier-savanna-light.css +84 -0
  228. data/assets/css/syntax/hljs/atelier-seaside-dark.css +69 -0
  229. data/assets/css/syntax/hljs/atelier-seaside-light.css +69 -0
  230. data/assets/css/syntax/hljs/atelier-sulphurpool-dark.css +69 -0
  231. data/assets/css/syntax/hljs/atelier-sulphurpool-light.css +69 -0
  232. data/assets/css/syntax/hljs/atom-one-dark-reasonable.css +75 -0
  233. data/assets/css/syntax/hljs/atom-one-dark.css +96 -0
  234. data/assets/css/syntax/hljs/atom-one-light.css +96 -0
  235. data/assets/css/syntax/hljs/brown-paper.css +64 -0
  236. data/assets/css/syntax/hljs/brown-papersq.png +0 -0
  237. data/assets/css/syntax/hljs/codepen-embed.css +60 -0
  238. data/assets/css/syntax/hljs/color-brewer.css +71 -0
  239. data/assets/css/syntax/hljs/darcula.css +74 -0
  240. data/assets/css/syntax/hljs/dark.css +63 -0
  241. data/assets/css/syntax/hljs/default.css +99 -0
  242. data/assets/css/syntax/hljs/docco.css +97 -0
  243. data/assets/css/syntax/hljs/dracula.css +76 -0
  244. data/assets/css/syntax/hljs/far.css +71 -0
  245. data/assets/css/syntax/hljs/foundation.css +89 -0
  246. data/assets/css/syntax/hljs/github-gist.css +79 -0
  247. data/assets/css/syntax/hljs/github.css +99 -0
  248. data/assets/css/syntax/hljs/gml.css +78 -0
  249. data/assets/css/syntax/hljs/googlecode.css +89 -0
  250. data/assets/css/syntax/hljs/gradient-dark.css +122 -0
  251. data/assets/css/syntax/hljs/gradient-light.css +130 -0
  252. data/assets/css/syntax/hljs/grayscale.css +101 -0
  253. data/assets/css/syntax/hljs/gruvbox-dark.css +108 -0
  254. data/assets/css/syntax/hljs/gruvbox-light.css +108 -0
  255. data/assets/css/syntax/hljs/hopscotch.css +84 -0
  256. data/assets/css/syntax/hljs/hybrid.css +102 -0
  257. data/assets/css/syntax/hljs/idea.css +97 -0
  258. data/assets/css/syntax/hljs/ir-black.css +73 -0
  259. data/assets/css/syntax/hljs/isbl-editor-dark.css +112 -0
  260. data/assets/css/syntax/hljs/isbl-editor-light.css +111 -0
  261. data/assets/css/syntax/hljs/kimbie.dark.css +74 -0
  262. data/assets/css/syntax/hljs/kimbie.light.css +74 -0
  263. data/assets/css/syntax/hljs/lightfair.css +88 -0
  264. data/assets/css/syntax/hljs/lioshi.css +88 -0
  265. data/assets/css/syntax/hljs/magula.css +70 -0
  266. data/assets/css/syntax/hljs/mono-blue.css +56 -0
  267. data/assets/css/syntax/hljs/monokai-sublime.css +83 -0
  268. data/assets/css/syntax/hljs/monokai.css +71 -0
  269. data/assets/css/syntax/hljs/night-owl.css +182 -0
  270. data/assets/css/syntax/hljs/nnfx-dark.css +106 -0
  271. data/assets/css/syntax/hljs/nnfx.css +106 -0
  272. data/assets/css/syntax/hljs/nord.css +309 -0
  273. data/assets/css/syntax/hljs/obsidian.css +88 -0
  274. data/assets/css/syntax/hljs/ocean.css +74 -0
  275. data/assets/css/syntax/hljs/paraiso-dark.css +72 -0
  276. data/assets/css/syntax/hljs/paraiso-light.css +72 -0
  277. data/assets/css/syntax/hljs/pojoaque.css +83 -0
  278. data/assets/css/syntax/hljs/pojoaque.jpg +0 -0
  279. data/assets/css/syntax/hljs/purebasic.css +96 -0
  280. data/assets/css/syntax/hljs/qtcreator_dark.css +83 -0
  281. data/assets/css/syntax/hljs/qtcreator_light.css +83 -0
  282. data/assets/css/syntax/hljs/railscasts.css +106 -0
  283. data/assets/css/syntax/hljs/rainbow.css +85 -0
  284. data/assets/css/syntax/hljs/routeros.css +108 -0
  285. data/assets/css/syntax/hljs/school-book.css +69 -0
  286. data/assets/css/syntax/hljs/school-book.png +0 -0
  287. data/assets/css/syntax/hljs/shades-of-purple.css +96 -0
  288. data/assets/css/syntax/hljs/solarized-dark.css +84 -0
  289. data/assets/css/syntax/hljs/solarized-light.css +84 -0
  290. data/assets/css/syntax/hljs/srcery.css +78 -0
  291. data/assets/css/syntax/hljs/stackoverflow-dark.css +78 -0
  292. data/assets/css/syntax/hljs/stackoverflow-light.css +78 -0
  293. data/assets/css/syntax/hljs/sunburst.css +102 -0
  294. data/assets/css/syntax/hljs/tomorrow-night-blue.css +75 -0
  295. data/assets/css/syntax/hljs/tomorrow-night-bright.css +74 -0
  296. data/assets/css/syntax/hljs/tomorrow-night-eighties.css +74 -0
  297. data/assets/css/syntax/hljs/tomorrow-night.css +75 -0
  298. data/assets/css/syntax/hljs/tomorrow.css +72 -0
  299. data/assets/css/syntax/hljs/vs.css +68 -0
  300. data/assets/css/syntax/hljs/vs2015.css +115 -0
  301. data/assets/css/syntax/hljs/xcode.css +104 -0
  302. data/assets/css/syntax/hljs/xt256.css +92 -0
  303. data/assets/css/syntax/hljs/zenburn.css +80 -0
  304. data/assets/fonts/FontAwesome.otf +0 -0
  305. data/assets/fonts/fontawesome-webfont.eot +0 -0
  306. data/assets/fonts/fontawesome-webfont.svg +2671 -0
  307. data/assets/fonts/fontawesome-webfont.ttf +0 -0
  308. data/assets/fonts/fontawesome-webfont.woff +0 -0
  309. data/assets/fonts/fontawesome-webfont.woff2 +0 -0
  310. data/assets/images/asciidocsy-nav-model.png +0 -0
  311. data/assets/images/asciidocsy-screenshot.png +0 -0
  312. data/assets/images/docops-labs-logo.png +0 -0
  313. data/assets/images/favicons/favicon-16x16.png +0 -0
  314. data/assets/images/favicons/favicon-32x32.png +0 -0
  315. data/assets/images/favicons/favicon.ico +0 -0
  316. data/assets/images/github-repo-download_screenshot.png +0 -0
  317. data/assets/images/logo-full.png +0 -0
  318. data/assets/images/logo.png +0 -0
  319. data/assets/images/logo.svg +87 -0
  320. data/assets/images/search-by-algolia-light-background.svg +1 -0
  321. data/assets/images/thumb-topic-data-source-edit.png +0 -0
  322. data/assets/js/anchor.min.js +9 -0
  323. data/assets/js/asciidoctor.min.js +1472 -0
  324. data/assets/js/bootstrap-toc.js +180 -0
  325. data/assets/js/bootstrap.min.js +7 -0
  326. data/assets/js/highlight.pack.js +870 -0
  327. data/assets/js/jquery-3.3.1.js +10364 -0
  328. data/assets/js/jquery-3.3.1.min.js +2 -0
  329. data/assets/js/jquery.cookie.js +114 -0
  330. data/assets/js/jquery.navgoco.js +314 -0
  331. data/assets/js/semantics.js +58 -0
  332. data/assets/js/tabber.js +111 -0
  333. data/assets/js/tail.js +37 -0
  334. data/assets/js/toggler.js +50 -0
  335. data/lib/asciidocsy/data/dependencies.yml +142 -0
  336. data/lib/asciidocsy/data/releases.yml +197 -0
  337. data/lib/asciidocsy/templates/notice-file.txt +16 -0
  338. data/lib/asciidocsy/version.rb +13 -0
  339. data/lib/asciidocsy.rb +1 -0
  340. metadata +423 -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,2 @@
1
+ {% capture images_url %}{% unless site.baseurl == "" %}/{{ site.baseurl }}{% endunless %}/{{ site.assets_url }}/images{% endcapture %}
2
+ {% capture styles_url %}{% unless site.baseurl == "" %}/{{ site.baseurl }}{% endunless %}/{{ site.assets_url }}/css{% endcapture %}
@@ -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,6 @@
1
+ <!-- {% comment %}
2
+ Experimental file for testing novel extension/hook method.
3
+ {% endcomment %} -->
4
+ <div id="breadcrumbs">
5
+ BREADCRUMBS ALT HOOK
6
+ </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,5 @@
1
+ {% comment %}
2
+ Experimental extension method.
3
+ Established in _data/extensions.yml
4
+ {% endcomment %}
5
+ {% assign alt_links = site.data.stack %}
@@ -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 %}
@@ -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>
@@ -0,0 +1,45 @@
1
+ <!-- {% comment %}
2
+ Generates links for page-related functions.
3
+ {% endcomment %} -->
4
+ {% if site.data.theme.page-actions[page.kind] %}
5
+ <ul id="page-interactions" class="nav flex-column">
6
+ {% for feature in site.data.theme.page-actions[page.kind] %}
7
+ {% assign feat = feature[0] %}
8
+ {% assign ftr = feature[1] %}
9
+ {% unless feat == "$doc" or feat == "data" and page.data-source == nil %}
10
+ <li class="nav-item {% if ftr.role %}role-{{ ftr.role }}-plus{% endif %} nav-item-{{ feat }}">
11
+ <a href="#" class="nav-link"><i class="icon {{ ftr.icon }} fa-fw"></i> {{ ftr.text }}</a>
12
+ </li>
13
+ {% assign git_actions = "make,edit,data,open-docs,open-subj" | split: "," %}
14
+ <script>
15
+ {% if git_actions contains feat %}
16
+ // TODO: This will get moved into distinct function
17
+ // with apologies for the bad JS...
18
+ var feat = '{{ feat }}';
19
+ if (feat == 'edit') {
20
+ var url = "{{ site.source_www }}/edit/{{ site.source_trunk_branch | default: 'main' }}/{{ page.path }}";
21
+ } else if (feat == 'make') {
22
+ var url = "{{ site.source_www }}/new/{{ site.source_trunk_branch | default: 'main' }}";
23
+ } else if (feat == 'data') {
24
+ var url = "{{ site.source_www }}/edit/{{ site.source_trunk_branch | default: 'main' }}/{{ page.data-source }}";
25
+ } else if (feat == 'open-subj') {
26
+ var url = "{{ site.subject_tickets_www }}{{ site.data.theme.page-actions[page.kind].open-subj.path }}";
27
+ } else if (feat == 'open-docs') {
28
+ var url = "{{ site.docs_tickets_www }}{{ site.data.theme.page-actions[page.kind].open-docs.path }}";
29
+ };
30
+ $('.nav-item-{{ feat }} .nav-link').each(function() {
31
+ $(this).attr('href', url);
32
+ });
33
+ {% elsif feat == "peel" %}
34
+ $('.nav-item-peel .nav-link').click(function() {
35
+ $('#sidebar-left').toggleClass('hide')
36
+ $('header').toggleClass('hide')
37
+ $('#sidebar-right').toggleClass('hide')
38
+ $('footer').toggleClass('hide')
39
+ });
40
+ {% endif %}
41
+ </script>
42
+ {% endunless %}
43
+ {% endfor %}
44
+ </ul>
45
+ {% endif %}