jekyll-theme-centos 2.52.0.beta.3 → 2.52.0.beta.5
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.
- checksums.yaml +4 -4
- data/_data/base/announcement_schema.yml +50 -0
- data/_data/base/artwork_schema.yml +46 -0
- data/_data/base/backtotop_schema.yml +53 -0
- data/_data/base/bits.yml +96 -0
- data/_data/base/bits_schema.yml +183 -0
- data/_data/base/breadcrumb_schema.yml +14 -0
- data/_data/base/breakingnews_schema.yml +59 -0
- data/_data/base/color.yml +1042 -0
- data/_data/base/color_schema.yml +1036 -0
- data/_data/base/content.yml +2 -0
- data/_data/base/content_schema.yml +26 -0
- data/_data/base/converter_link_schema.yml +48 -0
- data/_data/base/copyright.yml +12 -0
- data/_data/base/copyright_schema.yml +34 -0
- data/_data/base/copyvalue_schema.yml +49 -0
- data/_data/base/datatable_schema.yml +57 -0
- data/_data/base/event_schema.yml +122 -0
- data/_data/base/fontawesome_schema.yml +49 -0
- data/_data/base/highlight_schema.yml +68 -0
- data/_data/base/languages.yml +186 -0
- data/_data/base/link_schema.yml +153 -0
- data/_data/base/locales_schema.yml +25 -0
- data/_data/base/navbar.yml +20 -0
- data/_data/base/navbar_schema.yml +121 -0
- data/_data/base/navindex_schema.yml +67 -0
- data/_data/base/ogp_schema.yml +186 -0
- data/_data/base/project.yml +37 -0
- data/_data/base/project_schema.yml +120 -0
- data/_data/base/shortcut_schema.yml +74 -0
- data/_data/base/social.yml +25 -0
- data/_data/base/social_schema.yml +53 -0
- data/_data/base/title_schema.yml +49 -0
- data/_data/base/toc_schema.yml +100 -0
- data/_data/download/cards.yml +309 -0
- data/_data/download/navbar.yml +11 -0
- data/_data/sponsors/carousel.yml +37 -0
- data/_data/sponsors/navbar.yml +6 -0
- data/_includes/base/announcement.html.liquid +51 -0
- data/_includes/base/artwork.html.liquid +49 -0
- data/_includes/base/backtotop.html.liquid +51 -0
- data/_includes/base/bits.html.liquid +135 -0
- data/_includes/base/breadcrumb.html.liquid +37 -0
- data/_includes/base/breakingnews.html.liquid +74 -0
- data/_includes/base/card.html.liquid +96 -0
- data/_includes/base/copyright.html.liquid +56 -0
- data/_includes/base/copyvalue.html.liquid +59 -0
- data/_includes/base/datatable.html.liquid +64 -0
- data/_includes/base/event.html.liquid +89 -0
- data/_includes/base/fontawesome.html.liquid +58 -0
- data/_includes/base/head.html.liquid +101 -0
- data/_includes/base/highlight.html.liquid +65 -0
- data/_includes/base/image.html.liquid +42 -0
- data/_includes/base/link.html.liquid +139 -0
- data/_includes/base/locales.html.liquid +41 -0
- data/_includes/base/navbar.html.liquid +106 -0
- data/_includes/base/navindex.html.liquid +162 -0
- data/_includes/base/ogp.html.liquid +118 -0
- data/_includes/base/project.html.liquid +90 -0
- data/_includes/base/script.html.liquid +59 -0
- data/_includes/base/shortcut.html.liquid +65 -0
- data/_includes/base/social.html.liquid +59 -0
- data/_includes/base/title.html.liquid +52 -0
- data/_includes/base/toc.html.liquid +91 -0
- data/_includes/base/toc_generator.html.liquid +189 -0
- data/_includes/download/cards-body-commands.html +7 -0
- data/_includes/download/cards-body-convert.html +10 -0
- data/_includes/download/cards-body-doc.html +9 -0
- data/_includes/download/cards-body-documentation.html +11 -0
- data/_includes/download/cards-body-eol.html +16 -0
- data/_includes/download/cards-body-mirrors.html +8 -0
- data/_includes/download/cards-body-screenshot.html +26 -0
- data/_includes/download/cards-body-screenshots.html +32 -0
- data/_includes/download/cards-body.html +8 -0
- data/_includes/download/cards-footer.html +3 -0
- data/_includes/download/cards-header-commands.html +8 -0
- data/_includes/download/cards-header-convert.html +8 -0
- data/_includes/download/cards-header-doc.html +8 -0
- data/_includes/download/cards-header-documentation.html +8 -0
- data/_includes/download/cards-header-eol.html +8 -0
- data/_includes/download/cards-header-mirrors.html +13 -0
- data/_includes/download/cards-header-screenshot.html +8 -0
- data/_includes/download/cards-header-screenshots.html +8 -0
- data/_includes/download/cards-header.html +13 -0
- data/_includes/download/cards.html +120 -0
- data/_includes/sponsors/cards.html +11 -0
- data/_includes/sponsors/carousel.html +24 -0
- data/_layouts/base/default.html +117 -0
- data/_layouts/download/cards.html +7 -0
- data/_layouts/download/default.html +7 -0
- data/_layouts/people/default.html +68 -0
- data/_sass/base/_customization.scss +251 -0
- data/_sass/base/_light-dark.scss +10 -0
- data/_sass/base/_maps.scss +104 -0
- data/_sass/base/_variables.scss +232 -0
- data/_sass/bootstrap/_accordion.scss +153 -0
- data/_sass/bootstrap/_alert.scss +68 -0
- data/_sass/bootstrap/_badge.scss +38 -0
- data/_sass/bootstrap/_breadcrumb.scss +40 -0
- data/_sass/bootstrap/_button-group.scss +147 -0
- data/_sass/bootstrap/_buttons.scss +216 -0
- data/_sass/bootstrap/_card.scss +238 -0
- data/_sass/bootstrap/_carousel.scss +226 -0
- data/_sass/bootstrap/_close.scss +66 -0
- data/_sass/bootstrap/_containers.scss +41 -0
- data/_sass/bootstrap/_dropdown.scss +250 -0
- data/_sass/bootstrap/_forms.scss +9 -0
- data/_sass/bootstrap/_functions.scss +302 -0
- data/_sass/bootstrap/_grid.scss +39 -0
- data/_sass/bootstrap/_helpers.scss +12 -0
- data/_sass/bootstrap/_images.scss +42 -0
- data/_sass/bootstrap/_list-group.scss +199 -0
- data/_sass/bootstrap/_maps.scss +174 -0
- data/_sass/bootstrap/_mixins.scss +42 -0
- data/_sass/bootstrap/_modal.scss +240 -0
- data/_sass/bootstrap/_nav.scss +197 -0
- data/_sass/bootstrap/_navbar.scss +289 -0
- data/_sass/bootstrap/_offcanvas.scss +147 -0
- data/_sass/bootstrap/_pagination.scss +109 -0
- data/_sass/bootstrap/_placeholders.scss +51 -0
- data/_sass/bootstrap/_popover.scss +196 -0
- data/_sass/bootstrap/_progress.scss +68 -0
- data/_sass/bootstrap/_reboot.scss +617 -0
- data/_sass/bootstrap/_root.scss +187 -0
- data/_sass/bootstrap/_spinners.scss +86 -0
- data/_sass/bootstrap/_tables.scss +171 -0
- data/_sass/bootstrap/_toasts.scss +73 -0
- data/_sass/bootstrap/_tooltip.scss +119 -0
- data/_sass/bootstrap/_transitions.scss +27 -0
- data/_sass/bootstrap/_type.scss +106 -0
- data/_sass/bootstrap/_utilities.scss +806 -0
- data/_sass/bootstrap/_variables-dark.scss +102 -0
- data/_sass/bootstrap/_variables.scss +1753 -0
- data/_sass/bootstrap/bootstrap-grid.scss +62 -0
- data/_sass/bootstrap/bootstrap-reboot.scss +10 -0
- data/_sass/bootstrap/bootstrap-utilities.scss +19 -0
- data/_sass/bootstrap/bootstrap.scss +52 -0
- data/_sass/bootstrap/forms/_floating-labels.scss +97 -0
- data/_sass/bootstrap/forms/_form-check.scss +189 -0
- data/_sass/bootstrap/forms/_form-control.scss +214 -0
- data/_sass/bootstrap/forms/_form-range.scss +91 -0
- data/_sass/bootstrap/forms/_form-select.scss +80 -0
- data/_sass/bootstrap/forms/_form-text.scss +11 -0
- data/_sass/bootstrap/forms/_input-group.scss +132 -0
- data/_sass/bootstrap/forms/_labels.scss +36 -0
- data/_sass/bootstrap/forms/_validation.scss +12 -0
- data/_sass/bootstrap/helpers/_clearfix.scss +3 -0
- data/_sass/bootstrap/helpers/_color-bg.scss +7 -0
- data/_sass/bootstrap/helpers/_colored-links.scss +30 -0
- data/_sass/bootstrap/helpers/_focus-ring.scss +5 -0
- data/_sass/bootstrap/helpers/_icon-link.scss +25 -0
- data/_sass/bootstrap/helpers/_position.scss +36 -0
- data/_sass/bootstrap/helpers/_ratio.scss +26 -0
- data/_sass/bootstrap/helpers/_stacks.scss +15 -0
- data/_sass/bootstrap/helpers/_stretched-link.scss +15 -0
- data/_sass/bootstrap/helpers/_text-truncation.scss +7 -0
- data/_sass/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/_sass/bootstrap/helpers/_vr.scss +8 -0
- data/_sass/bootstrap/mixins/_alert.scss +18 -0
- data/_sass/bootstrap/mixins/_backdrop.scss +14 -0
- data/_sass/bootstrap/mixins/_banner.scss +7 -0
- data/_sass/bootstrap/mixins/_border-radius.scss +78 -0
- data/_sass/bootstrap/mixins/_box-shadow.scss +24 -0
- data/_sass/bootstrap/mixins/_breakpoints.scss +127 -0
- data/_sass/bootstrap/mixins/_buttons.scss +70 -0
- data/_sass/bootstrap/mixins/_caret.scss +69 -0
- data/_sass/bootstrap/mixins/_clearfix.scss +9 -0
- data/_sass/bootstrap/mixins/_color-mode.scss +21 -0
- data/_sass/bootstrap/mixins/_color-scheme.scss +7 -0
- data/_sass/bootstrap/mixins/_container.scss +11 -0
- data/_sass/bootstrap/mixins/_deprecate.scss +10 -0
- data/_sass/bootstrap/mixins/_forms.scss +163 -0
- data/_sass/bootstrap/mixins/_gradients.scss +47 -0
- data/_sass/bootstrap/mixins/_grid.scss +151 -0
- data/_sass/bootstrap/mixins/_image.scss +16 -0
- data/_sass/bootstrap/mixins/_list-group.scss +26 -0
- data/_sass/bootstrap/mixins/_lists.scss +7 -0
- data/_sass/bootstrap/mixins/_pagination.scss +10 -0
- data/_sass/bootstrap/mixins/_reset-text.scss +17 -0
- data/_sass/bootstrap/mixins/_resize.scss +6 -0
- data/_sass/bootstrap/mixins/_table-variants.scss +24 -0
- data/_sass/bootstrap/mixins/_text-truncate.scss +8 -0
- data/_sass/bootstrap/mixins/_transition.scss +26 -0
- data/_sass/bootstrap/mixins/_utilities.scss +97 -0
- data/_sass/bootstrap/mixins/_visually-hidden.scss +38 -0
- data/_sass/bootstrap/utilities/_api.scss +47 -0
- data/_sass/bootstrap/vendor/_rfs.scss +348 -0
- data/assets/css/base/stylesheet.min.scss +35 -0
- data/assets/icons/android-chrome-192.png +0 -0
- data/assets/icons/android-chrome-512.png +0 -0
- data/assets/icons/apple-touch-icon.png +0 -0
- data/assets/icons/favicon-16.png +0 -0
- data/assets/icons/favicon-32.png +0 -0
- data/assets/icons/favicon.ico +0 -0
- data/assets/icons/favicon.svg +1 -0
- data/assets/img/anaconda-symbolic.svg +1 -0
- data/assets/img/anaconda.svg +1 -0
- data/assets/img/base/centos-colors.gpl +55 -0
- data/assets/img/base/page-layout-default.png +0 -0
- data/assets/img/base/page-layout-default.svg +1158 -0
- data/assets/img/base/page-with-alert.png +0 -0
- data/assets/img/base/page-with-alert.svg +359 -0
- data/assets/img/base/page-with-announcement.png +0 -0
- data/assets/img/base/page-with-announcement.svg +499 -0
- data/assets/img/base/page-with-artwork.png +0 -0
- data/assets/img/base/page-with-artwork.svg +368 -0
- data/assets/img/base/page-with-backtotop.png +0 -0
- data/assets/img/base/page-with-backtotop.svg +275 -0
- data/assets/img/base/page-with-bits.png +0 -0
- data/assets/img/base/page-with-bits.svg +311 -0
- data/assets/img/base/page-with-breadcrumb.png +0 -0
- data/assets/img/base/page-with-breadcrumb.svg +676 -0
- data/assets/img/base/page-with-breakingnews.png +0 -0
- data/assets/img/base/page-with-breakingnews.svg +903 -0
- data/assets/img/base/page-with-color.png +0 -0
- data/assets/img/base/page-with-color.svg +57 -0
- data/assets/img/base/page-with-copyright.png +0 -0
- data/assets/img/base/page-with-copyright.svg +233 -0
- data/assets/img/base/page-with-copyvalue.png +0 -0
- data/assets/img/base/page-with-copyvalue.svg +57 -0
- data/assets/img/base/page-with-datatable.png +0 -0
- data/assets/img/base/page-with-datatable.svg +857 -0
- data/assets/img/base/page-with-event.png +0 -0
- data/assets/img/base/page-with-event.svg +522 -0
- data/assets/img/base/page-with-fontawesome.png +0 -0
- data/assets/img/base/page-with-fontawesome.svg +147 -0
- data/assets/img/base/page-with-heading.png +0 -0
- data/assets/img/base/page-with-heading.svg +57 -0
- data/assets/img/base/page-with-highlight.png +0 -0
- data/assets/img/base/page-with-highlight.svg +86 -0
- data/assets/img/base/page-with-link.png +0 -0
- data/assets/img/base/page-with-link.svg +395 -0
- data/assets/img/base/page-with-locales.png +0 -0
- data/assets/img/base/page-with-locales.svg +724 -0
- data/assets/img/base/page-with-navbar.png +0 -0
- data/assets/img/base/page-with-navbar.svg +438 -0
- data/assets/img/base/page-with-navindex.png +0 -0
- data/assets/img/base/page-with-navindex.svg +279 -0
- data/assets/img/base/page-with-ogp.png +0 -0
- data/assets/img/base/page-with-ogp.svg +368 -0
- data/assets/img/base/page-with-project.png +0 -0
- data/assets/img/base/page-with-project.svg +822 -0
- data/assets/img/base/page-with-shortcut.png +0 -0
- data/assets/img/base/page-with-shortcut.svg +233 -0
- data/assets/img/base/page-with-social.png +0 -0
- data/assets/img/base/page-with-social.svg +233 -0
- data/assets/img/base/page-with-title.png +0 -0
- data/assets/img/base/page-with-title.svg +584 -0
- data/assets/img/base/page-with-toc.png +0 -0
- data/assets/img/base/page-with-toc.svg +438 -0
- data/assets/img/base/screenshot-example-1200x600.png +0 -0
- data/assets/img/base/screenshot-example-1200x600.svg +114 -0
- data/assets/img/centos-dynamicmsg-logo.svg +1 -0
- data/assets/img/centos-dynamicmsg-type.svg +1 -0
- data/assets/img/centos-dynamicmsg-whitelogo.svg +1 -0
- data/assets/img/centos-dynamicmsg-whitetype.svg +1 -0
- data/assets/img/centos-gdm-whitelogo.svg +1 -0
- data/assets/img/centos-ipa-whiteheader.svg +1 -0
- data/assets/img/centos-logo-2bits.svg +1 -0
- data/assets/img/centos-logo.svg +1 -0
- data/assets/img/centos-message-logo.svg +1 -0
- data/assets/img/centos-motif.png +0 -0
- data/assets/img/centos-poweredby-logo.svg +1 -0
- data/assets/img/centos-social-share.png +0 -0
- data/assets/img/centos-symbol-2bits.svg +1 -0
- data/assets/img/centos-symbol.svg +1 -0
- data/assets/img/centos-type.svg +1 -0
- data/assets/img/centos-vertical-logo.svg +1 -0
- data/assets/img/centos-vertical-message-logo.svg +1 -0
- data/assets/img/centos-whitelogo.svg +1 -0
- data/assets/img/download/centos-linux-7-2009-screenshot-n.png +0 -0
- data/assets/img/download/centos-stream-8-screenshot-n.png +0 -0
- data/assets/img/download/centos-stream-9-screenshot-n.png +0 -0
- data/assets/img/download/distribution-release-screenshot-1.png +0 -0
- data/assets/img/download/distribution-release-screenshot-2.png +0 -0
- data/assets/img/download/distribution-release-screenshot-3.png +0 -0
- data/assets/img/download/distribution-release-screenshot-n.png +0 -0
- data/assets/img/download/distribution-release-screenshot-n.svg +134 -0
- data/assets/img/download/download.svg +421 -0
- data/assets/img/download/fig-the-downloads-cards-presentation-template.png +0 -0
- data/assets/img/people/page.svg +900 -0
- data/assets/img/people/page.webp +0 -0
- data/assets/img/people/username.webp +0 -0
- data/assets/img/sponsors/screenshot-sponsors-cards-layout.png +0 -0
- data/assets/img/sponsors/screenshot-sponsors-cards.png +0 -0
- data/assets/img/sponsors/screenshot-sponsors-carousel.png +0 -0
- data/assets/img/sponsors/screenshot-sponsors-default-layout.png +0 -0
- data/assets/img/sponsors/screenshot-sponsors-logo.png +0 -0
- data/assets/img/sponsors/sponsor-logo-1.png +0 -0
- data/assets/img/sponsors/sponsor-logo-2.png +0 -0
- data/assets/img/sponsors/sponsor-logo-3.png +0 -0
- data/assets/img/sponsors/sponsor-logo-4.png +0 -0
- data/assets/img/sponsors/sponsor-logo-5.png +0 -0
- data/assets/img/sponsors/sponsor-logo-6.png +0 -0
- data/assets/img/sponsors/sponsor-logo-7.png +0 -0
- data/assets/img/sponsors/sponsor-logo-8.png +0 -0
- data/assets/img/sponsors/sponsors-logo.svg +563 -0
- data/assets/js/base/backtotop.js +23 -0
- data/assets/js/base/copyvalue.js +251 -0
- data/assets/js/base/datatable.js +55 -0
- data/assets/js/base/highlight.js +6 -0
- data/assets/js/base/init-tooltips.js +5 -0
- data/assets/js/bootstrap.bundle.js +6312 -0
- data/assets/js/bootstrap.bundle.js.map +1 -0
- data/assets/js/bootstrap.bundle.min.js +7 -0
- data/assets/js/bootstrap.bundle.min.js.map +1 -0
- data/assets/js/bootstrap.esm.js +4447 -0
- data/assets/js/bootstrap.esm.js.map +1 -0
- data/assets/js/bootstrap.esm.min.js +7 -0
- data/assets/js/bootstrap.esm.min.js.map +1 -0
- data/assets/js/bootstrap.js +4494 -0
- data/assets/js/bootstrap.js.map +1 -0
- data/assets/js/bootstrap.min.js +7 -0
- data/assets/js/bootstrap.min.js.map +1 -0
- metadata +314 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Template: Project Showcase Component
|
|
4
|
+
Purpose: Renders a full-width project/product hero section with featured
|
|
5
|
+
content and supplementary resource links.
|
|
6
|
+
================================================================================
|
|
7
|
+
|
|
8
|
+
Design Logic:
|
|
9
|
+
- Hero-style layout: full-width container with dark background
|
|
10
|
+
- Wraps card component for flexible content presentation
|
|
11
|
+
- Dark theme (text-bg-dark) for high contrast and visual prominence
|
|
12
|
+
- Resource section for downloadable/related content links
|
|
13
|
+
- Data source hierarchy enables both page-level and site-level config
|
|
14
|
+
- Container-based layout for max-width constraint on large screens
|
|
15
|
+
- Reuses link component for action and resource buttons
|
|
16
|
+
|
|
17
|
+
Optional Inputs:
|
|
18
|
+
- data: Project data object (overrides all fallbacks)
|
|
19
|
+
- project.name, description, icon, image, screenshot: Content
|
|
20
|
+
- project.actions, resources: Arrays of buttons [{name, url, icon}]
|
|
21
|
+
|
|
22
|
+
Data Source Hierarchy (priority):
|
|
23
|
+
1. include.data
|
|
24
|
+
2. page.with_project_data
|
|
25
|
+
3. site.data.project
|
|
26
|
+
4. site.data.base.project
|
|
27
|
+
================================================================================
|
|
28
|
+
{% endcomment %}
|
|
29
|
+
|
|
30
|
+
{%- assign project = include.data | default: page.with_project_data | default: site.data.project | default: site.data.base.project %}
|
|
31
|
+
|
|
32
|
+
{% assign project_class = project.class | default: "flex-column text-bg-dark bg-image" %}
|
|
33
|
+
{% assign project_screenshot = project.screenshot | default: nil %}
|
|
34
|
+
{% assign project_screenshot_class = project.screenshot_class | default: nil %}
|
|
35
|
+
{% assign project_screenshot_alt = project.screenshot_alt | default: nil %}
|
|
36
|
+
{% assign project_image = project.image | default: nil %}
|
|
37
|
+
{% assign project_image_alt = project.image_alt | default: nil %}
|
|
38
|
+
{% assign project_image_class = project.image_class | default: "img-fluid mb-3" %}
|
|
39
|
+
{% assign project_image_style = project.image_style | default: nil %}
|
|
40
|
+
{% assign project_icon = project.icon | default: nil %}
|
|
41
|
+
{% assign project_icon_class = project.icon_class | default: "display-3 fw-bold mb-1" %}
|
|
42
|
+
{% assign project_name = project.name | default: nil %}
|
|
43
|
+
{% assign project_name_class = project.name_class | default: "display-3 fw-bold mb-1" %}
|
|
44
|
+
{% assign project_description = project.description | default: nil %}
|
|
45
|
+
{% assign project_description_class = project.description_class | default: "lead mb-3 text-center" %}
|
|
46
|
+
{% assign project_actions = project.actions | default: nil %}
|
|
47
|
+
{% assign project_actions_class = project.actions_class | default: "mb-3" %}
|
|
48
|
+
{% assign project_actions_btn_class = project.actions_btn_class | default: "btn text-nowrap m-1 btn-" %}
|
|
49
|
+
{% assign project_resources = project.resources | default: nil %}
|
|
50
|
+
{% assign project_resources_class = project.resources_class | default: "gap-2 d-md-flex justify-content-lg-center bg-dark p-2 rounded-top" %}
|
|
51
|
+
{% assign project_resources_btn_class = project.resources_btn_class | default: "btn text-start text-nowrap btn-dark" %}
|
|
52
|
+
|
|
53
|
+
<div class="d-flex{% if project_class != "" %} {{ project_class }}{% endif %}">
|
|
54
|
+
<div class="container pt-5">
|
|
55
|
+
{% include base/card.html.liquid
|
|
56
|
+
class = "flex-column align-items-center pb-3"
|
|
57
|
+
color = "primary"
|
|
58
|
+
screenshot = project_screenshot
|
|
59
|
+
screenshot_class = project_screenshot_class
|
|
60
|
+
screenshot_alt = project_screenshot_alt
|
|
61
|
+
image = project_image
|
|
62
|
+
image_class = project_image_class
|
|
63
|
+
image_style = project_image_style
|
|
64
|
+
image_alt = project_image_alt
|
|
65
|
+
icon = project_icon
|
|
66
|
+
icon_class = project_icon_class
|
|
67
|
+
name = project_name
|
|
68
|
+
name_class = project_name_class
|
|
69
|
+
description = project_description
|
|
70
|
+
description_class = project_description_class
|
|
71
|
+
actions = project_actions
|
|
72
|
+
actions_btn_class = project_actions_btn_class
|
|
73
|
+
actions_class = project_actions_class
|
|
74
|
+
%}
|
|
75
|
+
{%- if project_resources.size > 0 %}
|
|
76
|
+
<div class="d-grid{% if project_resources_class %} {{ project_resources_class }}{% endif %}">
|
|
77
|
+
{%- for resource in project_resources %}
|
|
78
|
+
{% include base/link.html.liquid
|
|
79
|
+
class = project_resources_btn_class
|
|
80
|
+
role = "button"
|
|
81
|
+
name = resource.name
|
|
82
|
+
link = resource.link
|
|
83
|
+
icon = resource.icon
|
|
84
|
+
icon_position = resource.icon_position
|
|
85
|
+
%}
|
|
86
|
+
{%- endfor %}
|
|
87
|
+
</div>
|
|
88
|
+
{%- endif %}
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Template: Script Initialization Component
|
|
4
|
+
Purpose: Loads Bootstrap and initializes tooltips. Conditionally includes
|
|
5
|
+
optional libraries (Font Awesome, Highlight.js, DataTables, Back-to-Top).
|
|
6
|
+
Place before closing </body> tag.
|
|
7
|
+
================================================================================
|
|
8
|
+
|
|
9
|
+
Strategic Design Logic:
|
|
10
|
+
- Bootstrap loading: core JS functionality
|
|
11
|
+
- Tooltip initialization: data-bs-toggle support
|
|
12
|
+
- Optional library includes: conditional loading
|
|
13
|
+
- Performance: deferred to end of body
|
|
14
|
+
- Vanilla JavaScript: no jQuery required
|
|
15
|
+
|
|
16
|
+
Required Inputs:
|
|
17
|
+
None - loads common libraries automatically
|
|
18
|
+
|
|
19
|
+
Conditional Inputs (from page front matter):
|
|
20
|
+
- page.with_fontawesome: Load Font Awesome JS (boolean)
|
|
21
|
+
- page.with_highlight: Load Highlight.js (boolean)
|
|
22
|
+
- page.with_datatable: Load DataTables (boolean)
|
|
23
|
+
- page.with_backtotop: Load Back-to-Top (boolean)
|
|
24
|
+
- page.with_copyvalue: Load Copy Value functionality (boolean)
|
|
25
|
+
|
|
26
|
+
Bootstrap Tooltip Initialization:
|
|
27
|
+
```javascript
|
|
28
|
+
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
|
|
29
|
+
const tooltipList = [...tooltipTriggerList].map(el => new bootstrap.Tooltip(el));
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Dependencies:
|
|
33
|
+
- Bootstrap JS: included locally
|
|
34
|
+
- Other libraries: loaded via CDN (conditional)
|
|
35
|
+
================================================================================
|
|
36
|
+
{% endcomment %}
|
|
37
|
+
|
|
38
|
+
<script src="{{ site.baseurl }}/assets/js/bootstrap.bundle.min.js"></script>
|
|
39
|
+
<script src="{{ site.baseurl }}/assets/js/base/init-tooltips.min.js"></script>
|
|
40
|
+
|
|
41
|
+
{% if page.with_fontawesome -%}
|
|
42
|
+
{% include base/fontawesome.html.liquid type="script" %}
|
|
43
|
+
{% endif %}
|
|
44
|
+
|
|
45
|
+
{% if page.with_highlight %}
|
|
46
|
+
{% include base/highlight.html.liquid type="script" %}
|
|
47
|
+
{% endif -%}
|
|
48
|
+
|
|
49
|
+
{% if page.with_datatable %}
|
|
50
|
+
{% include base/datatable.html.liquid type="script" %}
|
|
51
|
+
{% endif %}
|
|
52
|
+
|
|
53
|
+
{% if page.with_backtotop -%}
|
|
54
|
+
{% include base/backtotop.html.liquid %}
|
|
55
|
+
{% endif %}
|
|
56
|
+
|
|
57
|
+
{% if page.with_copyvalue -%}
|
|
58
|
+
{% include base/copyvalue.html.liquid %}
|
|
59
|
+
{% endif %}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Template: Shortcuts Navigation Component
|
|
4
|
+
Purpose: Renders footer navigation shortcuts grouped by category. Displays
|
|
5
|
+
sections of related links in multi-column layout suitable for footer placement.
|
|
6
|
+
================================================================================
|
|
7
|
+
|
|
8
|
+
Strategic Design Logic:
|
|
9
|
+
- Grouped navigation: categories of related links
|
|
10
|
+
- Column layout: multi-column footer display
|
|
11
|
+
- Filtered items: only shows items with visible_on='footer'
|
|
12
|
+
- Reusable link component: consistent styling
|
|
13
|
+
- Empty state handling: no output if no items
|
|
14
|
+
- Category headings: uppercase section titles
|
|
15
|
+
|
|
16
|
+
Required Inputs (from data objects):
|
|
17
|
+
- navitems[]: Array with visible_on='footer'
|
|
18
|
+
|
|
19
|
+
Optional Inputs (from include):
|
|
20
|
+
- data: Shortcuts configuration object
|
|
21
|
+
|
|
22
|
+
Data Source Hierarchy (in priority order):
|
|
23
|
+
1. include.data - Explicitly passed configuration
|
|
24
|
+
2. page.with_shortcut_data - Page front matter
|
|
25
|
+
3. site.data.shortcut - Site configuration
|
|
26
|
+
4. site.data.base.shortcut - Theme defaults
|
|
27
|
+
|
|
28
|
+
Conditional Logic:
|
|
29
|
+
- shortcut_navitems.size > 0: Only render if items exist
|
|
30
|
+
- Loop through sections and their menus
|
|
31
|
+
- Each item rendered as link via link component
|
|
32
|
+
- Color: "light" (suitable for dark footers)
|
|
33
|
+
================================================================================
|
|
34
|
+
{% endcomment %}
|
|
35
|
+
|
|
36
|
+
{%- assign shortcut = include.data
|
|
37
|
+
| default: page.with_shortcut_data
|
|
38
|
+
| default: page.with_navbar_data
|
|
39
|
+
| default: site.data.shortcut
|
|
40
|
+
| default: site.data.navbar
|
|
41
|
+
| default: site.data.base.shortcut
|
|
42
|
+
| default: site.data.base.navbar %}
|
|
43
|
+
{%- assign shortcut_navitems = shortcut.navitems | where: "visible_on", "footer" %}
|
|
44
|
+
|
|
45
|
+
{%- comment %} === Presentation === {% endcomment %}
|
|
46
|
+
{% if shortcut_navitems.size > 0 %}
|
|
47
|
+
<div class="d-flex flex-wrap justify-content-center m-2">
|
|
48
|
+
{% for section in shortcut_navitems -%}
|
|
49
|
+
<div class="px-4 text-center">
|
|
50
|
+
<div class="h6">{{ section.name | upcase }}</div>
|
|
51
|
+
<ul class="px-4 mb-4">
|
|
52
|
+
{% for item in section.menu -%}
|
|
53
|
+
<li class="list-unstyled my-1">
|
|
54
|
+
{% include base/link.html.liquid
|
|
55
|
+
name = item.name
|
|
56
|
+
link = item.link
|
|
57
|
+
color = "light"
|
|
58
|
+
%}
|
|
59
|
+
</li>
|
|
60
|
+
{% endfor %}
|
|
61
|
+
</ul>
|
|
62
|
+
</div>
|
|
63
|
+
{% endfor %}
|
|
64
|
+
</div>
|
|
65
|
+
{% endif %}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Template: Social Links Component
|
|
4
|
+
Purpose: Renders a collection of social media and external links as styled
|
|
5
|
+
buttons with icons. Includes optional site description header.
|
|
6
|
+
================================================================================
|
|
7
|
+
|
|
8
|
+
Strategic Design Logic:
|
|
9
|
+
- Multi-level data source hierarchy for flexible configuration
|
|
10
|
+
- Site description display for context/branding purposes
|
|
11
|
+
- Link rendering via reusable link component with icon support
|
|
12
|
+
- Icon-based visual identification for different platforms
|
|
13
|
+
- Accessibility-first approach with proper ARIA labels
|
|
14
|
+
- Centered layout for prominent footer or banner placement
|
|
15
|
+
|
|
16
|
+
Required Inputs (from data objects):
|
|
17
|
+
- link: URL for the social media or external platform
|
|
18
|
+
- icon: Icon class for Font Awesome (e.g., 'fa-brands fa-github')
|
|
19
|
+
- name: Platform name for accessibility label (e.g., 'GitHub')
|
|
20
|
+
|
|
21
|
+
Optional Inputs (from include):
|
|
22
|
+
- data: Array of social link objects (overrides all fallbacks)
|
|
23
|
+
|
|
24
|
+
Optional Inputs (from site configuration):
|
|
25
|
+
- site.description: Brief site description displayed above social links
|
|
26
|
+
|
|
27
|
+
Data Source Hierarchy (in priority order):
|
|
28
|
+
1. include.data - Explicitly passed social link array
|
|
29
|
+
2. page.with_social_data - Page front matter configuration
|
|
30
|
+
3. site.data.social - Site-specific social configuration
|
|
31
|
+
4. site.data.base.social - Theme default social links
|
|
32
|
+
|
|
33
|
+
Conditional Logic:
|
|
34
|
+
- Site description displays only if site.description is defined
|
|
35
|
+
- Loops through all social links in resolved data source
|
|
36
|
+
- Each link rendered with consistent button styling
|
|
37
|
+
================================================================================
|
|
38
|
+
{% endcomment %}
|
|
39
|
+
|
|
40
|
+
{%- assign social = include.data | default: page.with_social_data | default: site.data.social | default: site.data.base.social %}
|
|
41
|
+
|
|
42
|
+
{%- comment %} === Presentation === {% endcomment %}
|
|
43
|
+
{% if site.description %}
|
|
44
|
+
<div class="lead text-center mb-2">{{ site.description }}</div>
|
|
45
|
+
{% endif %}
|
|
46
|
+
<div class="text-center">
|
|
47
|
+
{%- for item in social -%}
|
|
48
|
+
{%- include base/link.html.liquid
|
|
49
|
+
class = "btn btn-primary ms-0 m-2 fs-5"
|
|
50
|
+
link = item.link
|
|
51
|
+
role = "button"
|
|
52
|
+
icon = item.icon
|
|
53
|
+
aria_label = item.name
|
|
54
|
+
data_bs_toggle = "tooltip"
|
|
55
|
+
data_bs_title = item.name
|
|
56
|
+
data_bs_placement = "bottom"
|
|
57
|
+
%}
|
|
58
|
+
{%- endfor %}
|
|
59
|
+
</div>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Template: Page Title Component
|
|
4
|
+
Purpose: Renders page title section with optional subtitle/lead text. Displays
|
|
5
|
+
primary heading and descriptive lead with customizable styling.
|
|
6
|
+
================================================================================
|
|
7
|
+
|
|
8
|
+
Strategic Design Logic:
|
|
9
|
+
- Semantic headings: h1 primary, lead text for subtitle
|
|
10
|
+
- Data source hierarchy: flexible configuration
|
|
11
|
+
- Customizable styling: class overrides per element
|
|
12
|
+
- Optional lead text: subtitle/description support
|
|
13
|
+
- Schema-based defaults: consistent styling
|
|
14
|
+
- Responsive layout: bootstrap grid
|
|
15
|
+
|
|
16
|
+
Required Inputs (from data objects):
|
|
17
|
+
None - uses page.title as fallback
|
|
18
|
+
|
|
19
|
+
Optional Inputs (from data objects):
|
|
20
|
+
- title: Page heading text (defaults to page.title)
|
|
21
|
+
- title_lead: Subtitle/description text
|
|
22
|
+
|
|
23
|
+
Optional Inputs (from include):
|
|
24
|
+
- data: Title configuration object
|
|
25
|
+
|
|
26
|
+
Data Source Hierarchy (in priority order):
|
|
27
|
+
1. include.data - Explicitly passed configuration
|
|
28
|
+
2. page.with_title_data - Page front matter
|
|
29
|
+
3. site.data.title - Site configuration
|
|
30
|
+
4. site.data.base.title - Theme defaults
|
|
31
|
+
|
|
32
|
+
Conditional Logic:
|
|
33
|
+
- title_lead present: Only renders subtitle if not empty
|
|
34
|
+
================================================================================
|
|
35
|
+
{% endcomment %}
|
|
36
|
+
|
|
37
|
+
{%- assign title_data = include.data | default: page.with_title_data | default: site.data.title | default: site.data.base.title %}
|
|
38
|
+
{%- assign title_schema = site.data.base.title_schema.properties["with_title_data"].properties %}
|
|
39
|
+
|
|
40
|
+
{%- comment %} === Presentation === {% endcomment %}
|
|
41
|
+
{%- assign class = title_data.class | default: title_schema["class"].default %}
|
|
42
|
+
{%- assign title = title_data.title | default: page.title %}
|
|
43
|
+
{%- assign title_class = title_data.title_class | default: title_schema["title_class"].default %}
|
|
44
|
+
{%- assign title_lead = title_data.title_lead | default: page.title_lead %}
|
|
45
|
+
{%- assign title_lead_class = title_data.title_lead_class | default: title_schema["title_lead_class"].default %}
|
|
46
|
+
|
|
47
|
+
<div class="{{ class }}">
|
|
48
|
+
<div class="{{ title_class }}">{{ title }}</div>
|
|
49
|
+
{% if title_lead != "" %}
|
|
50
|
+
<div class="{{ title_lead_class }}">{{ title_lead }}</div>
|
|
51
|
+
{% endif %}
|
|
52
|
+
</div>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Template: Table of Contents (TOC) Component
|
|
4
|
+
Purpose: Generates interactive table of contents from page content headings
|
|
5
|
+
using Jekyll-TOC generator. Displays in collapsible Bootstrap accordion.
|
|
6
|
+
================================================================================
|
|
7
|
+
|
|
8
|
+
Strategic Design Logic:
|
|
9
|
+
- Accordion wrapper: collapsible expandable container
|
|
10
|
+
- Heading extraction: automatic from page content
|
|
11
|
+
- Hierarchy support: nested outline structure
|
|
12
|
+
- Configuration-driven: customizable via data object
|
|
13
|
+
- Automatic anchor generation: heading IDs for linking
|
|
14
|
+
- Responsive: works on all screen sizes
|
|
15
|
+
|
|
16
|
+
Required Inputs (from page object):
|
|
17
|
+
- content: Page HTML content (automatically generated)
|
|
18
|
+
|
|
19
|
+
Optional Inputs (from data objects):
|
|
20
|
+
- class: Container CSS classes
|
|
21
|
+
- id: TOC wrapper ID (default: "page-toc")
|
|
22
|
+
- item_class: TOC item CSS classes (default: "my-2")
|
|
23
|
+
- anchor_class: Anchor link CSS classes
|
|
24
|
+
- h_min/h_max: Heading level range (h2-h4 typical)
|
|
25
|
+
- ordered: Use ordered list (true/false)
|
|
26
|
+
- submenu_class: Submenu CSS classes
|
|
27
|
+
- base_url: Base URL for anchors
|
|
28
|
+
- sanitize: Clean HTML in headings (boolean)
|
|
29
|
+
- skip_no_ids: Skip headings without IDs (boolean)
|
|
30
|
+
- flat_toc: Flatten hierarchy (boolean)
|
|
31
|
+
|
|
32
|
+
Optional Inputs (from include):
|
|
33
|
+
- data: TOC configuration object
|
|
34
|
+
|
|
35
|
+
Data Source Hierarchy (in priority order):
|
|
36
|
+
1. include.data - Explicitly passed configuration
|
|
37
|
+
2. page.with_toc_data - Page front matter
|
|
38
|
+
3. site.data.toc - Site configuration
|
|
39
|
+
4. site.data.base.toc - Theme defaults
|
|
40
|
+
================================================================================
|
|
41
|
+
{% endcomment %}
|
|
42
|
+
|
|
43
|
+
{%- assign toc = include.data | default: page.with_toc_data | default: site.data.toc | default: site.data.base.toc %}
|
|
44
|
+
{%- assign toc_schema = site.data.base.toc_schema.properties["with_toc_data"].properties %}
|
|
45
|
+
|
|
46
|
+
{%- comment %} === Configuration properties === {% endcomment %}
|
|
47
|
+
{%- assign class = toc.class | default: toc_schema["class"].default %}
|
|
48
|
+
{%- assign id = toc.id | default: toc_schema["id"].default | default: "page-toc" %}
|
|
49
|
+
{%- assign item_class = toc.item_class | default: toc_schema["item_class"].default | default: "my-2" %}
|
|
50
|
+
{%- assign anchor_class = toc.anchor_class | default: toc_schema["anchor_class"].default | default: site.converter_link.default_link_classes %}
|
|
51
|
+
{%- assign h_min = toc.h_min | default: toc_schema["h_min"].default %}
|
|
52
|
+
{%- assign h_max = toc.h_max | default: toc_schema["h_max"].default %}
|
|
53
|
+
{%- assign ordered = toc.ordered | default: toc_schema["ordered"].default %}
|
|
54
|
+
{%- assign submenu_class = toc.submenu_class | default: toc_schema["submenu_class"].default %}
|
|
55
|
+
{%- assign base_url = toc.base_url | default: toc_schema["base_url"].default %}
|
|
56
|
+
{%- assign sanitize = toc.sanitize | default: toc_schema["sanitize"].default %}
|
|
57
|
+
{%- assign skip_no_ids = toc.skip_no_ids | default: toc_schema["skip_no_ids"].default %}
|
|
58
|
+
{%- assign flat_toc = toc.flat_toc | default: toc_schema["flat_toc"].default %}
|
|
59
|
+
|
|
60
|
+
{%- comment %} === Presentation === {% endcomment %}
|
|
61
|
+
|
|
62
|
+
{%- comment %} --- HTML --- {% endcomment %}
|
|
63
|
+
<div class="accordion shadow-sm" id="pageToc">
|
|
64
|
+
<div class="accordion-item">
|
|
65
|
+
<div class="accordion-header" id="flush-headingOne">
|
|
66
|
+
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseOne" aria-expanded="false" aria-controls="flush-collapseOne">
|
|
67
|
+
<i class="fa-solid fa-list"></i>
|
|
68
|
+
<span class="mx-3 fw-bold">On this page</span>
|
|
69
|
+
</button>
|
|
70
|
+
</div>
|
|
71
|
+
<div id="flush-collapseOne" class="accordion-collapse collapse" data-bs-parent="#pageToc">
|
|
72
|
+
<div class="accordion-body small">
|
|
73
|
+
{%- include base/toc_generator.html.liquid
|
|
74
|
+
id=id
|
|
75
|
+
html=content
|
|
76
|
+
class=class
|
|
77
|
+
item_class=item_class
|
|
78
|
+
anchor_class=anchor_class
|
|
79
|
+
h_min=h_min
|
|
80
|
+
h_max=h_max
|
|
81
|
+
ordered=ordered
|
|
82
|
+
submenu_class=submenu_class
|
|
83
|
+
base_url=base_url
|
|
84
|
+
sanitize=sanitize
|
|
85
|
+
skip_no_ids=skip_no_ids
|
|
86
|
+
flat_toc=flat_toc
|
|
87
|
+
%}
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
{% capture tocWorkspace %}
|
|
2
|
+
{% comment %}
|
|
3
|
+
Copyright (c) 2017 Vladimir "allejo" Jimenez
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person
|
|
6
|
+
obtaining a copy of this software and associated documentation
|
|
7
|
+
files (the "Software"), to deal in the Software without
|
|
8
|
+
restriction, including without limitation the rights to use,
|
|
9
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the
|
|
11
|
+
Software is furnished to do so, subject to the following
|
|
12
|
+
conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be
|
|
15
|
+
included in all copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
19
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
20
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
21
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
22
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
23
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
24
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
25
|
+
{% endcomment %}
|
|
26
|
+
{% comment %}
|
|
27
|
+
Version 1.2.1
|
|
28
|
+
https://github.com/allejo/jekyll-toc
|
|
29
|
+
|
|
30
|
+
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
|
|
31
|
+
|
|
32
|
+
Usage:
|
|
33
|
+
{% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
|
|
34
|
+
|
|
35
|
+
Parameters:
|
|
36
|
+
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
|
|
37
|
+
|
|
38
|
+
Optional Parameters:
|
|
39
|
+
* sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
|
|
40
|
+
* class (string) : '' - a CSS class assigned to the TOC
|
|
41
|
+
* id (string) : '' - an ID to assigned to the TOC
|
|
42
|
+
* h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
|
|
43
|
+
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
|
|
44
|
+
* ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
|
|
45
|
+
* item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
|
|
46
|
+
* submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level
|
|
47
|
+
* base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
|
|
48
|
+
* anchor_class (string) : '' - add custom class(es) for each anchor element
|
|
49
|
+
* skip_no_ids (bool) : false - skip headers that do not have an `id` attribute
|
|
50
|
+
* flat_toc (bool) : false - when set to true, the TOC will be a single level list
|
|
51
|
+
|
|
52
|
+
Output:
|
|
53
|
+
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
|
|
54
|
+
generate the table of contents and will NOT output the markdown given to it
|
|
55
|
+
{% endcomment %}
|
|
56
|
+
|
|
57
|
+
{% capture newline %}
|
|
58
|
+
{% endcapture %}
|
|
59
|
+
{% assign newline = newline | rstrip %} <!-- Remove the extra spacing but preserve the newline -->
|
|
60
|
+
|
|
61
|
+
{% capture deprecation_warnings %}{% endcapture %}
|
|
62
|
+
|
|
63
|
+
{% if include.baseurl %}
|
|
64
|
+
{% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "baseurl" has been deprecated, use "base_url" instead -->{{ newline }}{% endcapture %}
|
|
65
|
+
{% endif %}
|
|
66
|
+
|
|
67
|
+
{% if include.skipNoIDs %}
|
|
68
|
+
{% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "skipNoIDs" has been deprecated, use "skip_no_ids" instead -->{{ newline }}{% endcapture %}
|
|
69
|
+
{% endif %}
|
|
70
|
+
|
|
71
|
+
{% capture jekyll_toc %}{% endcapture %}
|
|
72
|
+
{% assign orderedList = include.ordered | default: false %}
|
|
73
|
+
{% assign flatToc = include.flat_toc | default: false %}
|
|
74
|
+
{% assign baseURL = include.base_url | default: include.baseurl | default: '' %}
|
|
75
|
+
{% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %}
|
|
76
|
+
{% assign minHeader = include.h_min | default: 1 %}
|
|
77
|
+
{% assign maxHeader = include.h_max | default: 6 %}
|
|
78
|
+
{% assign nodes = include.html | strip | split: '<h' %}
|
|
79
|
+
|
|
80
|
+
{% assign firstHeader = true %}
|
|
81
|
+
{% assign currLevel = 0 %}
|
|
82
|
+
{% assign lastLevel = 0 %}
|
|
83
|
+
|
|
84
|
+
{% capture listModifier %}{% if orderedList %}ol{% else %}ul{% endif %}{% endcapture %}
|
|
85
|
+
|
|
86
|
+
{% for node in nodes %}
|
|
87
|
+
{% if node == "" %}
|
|
88
|
+
{% continue %}
|
|
89
|
+
{% endif %}
|
|
90
|
+
|
|
91
|
+
{% assign currLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
|
|
92
|
+
|
|
93
|
+
{% if currLevel < minHeader or currLevel > maxHeader %}
|
|
94
|
+
{% continue %}
|
|
95
|
+
{% endif %}
|
|
96
|
+
|
|
97
|
+
{% assign _workspace = node | split: '</h' %}
|
|
98
|
+
|
|
99
|
+
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
|
100
|
+
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
|
101
|
+
{% assign htmlID = _idWorkspace[0] %}
|
|
102
|
+
|
|
103
|
+
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
|
|
104
|
+
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
|
|
105
|
+
{% assign htmlClass = _classWorkspace[0] %}
|
|
106
|
+
|
|
107
|
+
{% if htmlClass contains "no_toc" %}
|
|
108
|
+
{% continue %}
|
|
109
|
+
{% endif %}
|
|
110
|
+
|
|
111
|
+
{% if firstHeader %}
|
|
112
|
+
{% assign minHeader = currLevel %}
|
|
113
|
+
{% endif %}
|
|
114
|
+
|
|
115
|
+
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
|
116
|
+
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
|
117
|
+
|
|
118
|
+
{% if include.item_class and include.item_class != blank %}
|
|
119
|
+
{% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %}
|
|
120
|
+
{% endif %}
|
|
121
|
+
|
|
122
|
+
{% if include.submenu_class and include.submenu_class != blank %}
|
|
123
|
+
{% assign subMenuLevel = currLevel | minus: 1 %}
|
|
124
|
+
{% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %}
|
|
125
|
+
{% endif %}
|
|
126
|
+
|
|
127
|
+
{% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
|
|
128
|
+
|
|
129
|
+
{% if htmlID %}
|
|
130
|
+
{% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %}
|
|
131
|
+
|
|
132
|
+
{% if include.anchor_class %}
|
|
133
|
+
{% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %}
|
|
134
|
+
{% endif %}
|
|
135
|
+
|
|
136
|
+
{% capture listItem %}<a{{ anchorAttributes }}>{{ anchorBody }}</a>{% endcapture %}
|
|
137
|
+
{% elsif skipNoIDs == true %}
|
|
138
|
+
{% continue %}
|
|
139
|
+
{% else %}
|
|
140
|
+
{% capture listItem %}{{ anchorBody }}{% endcapture %}
|
|
141
|
+
{% endif %}
|
|
142
|
+
|
|
143
|
+
{% if currLevel > lastLevel and flatToc == false %}
|
|
144
|
+
{% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
|
|
145
|
+
{% elsif currLevel < lastLevel and flatToc == false %}
|
|
146
|
+
{% assign repeatCount = lastLevel | minus: currLevel %}
|
|
147
|
+
|
|
148
|
+
{% for i in (1..repeatCount) %}
|
|
149
|
+
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
|
|
150
|
+
{% endfor %}
|
|
151
|
+
|
|
152
|
+
{% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
|
|
153
|
+
{% else %}
|
|
154
|
+
{% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
|
|
155
|
+
{% endif %}
|
|
156
|
+
|
|
157
|
+
{% capture jekyll_toc %}{{ jekyll_toc }}<li{{ listItemClass }}>{{ listItem }}{% endcapture %}
|
|
158
|
+
|
|
159
|
+
{% assign lastLevel = currLevel %}
|
|
160
|
+
{% assign firstHeader = false %}
|
|
161
|
+
{% endfor %}
|
|
162
|
+
|
|
163
|
+
{% if flatToc == true %}
|
|
164
|
+
{% assign repeatCount = 1 %}
|
|
165
|
+
{% else %}
|
|
166
|
+
{% assign repeatCount = minHeader | minus: 1 %}
|
|
167
|
+
{% assign repeatCount = lastLevel | minus: repeatCount %}
|
|
168
|
+
{% endif %}
|
|
169
|
+
|
|
170
|
+
{% for i in (1..repeatCount) %}
|
|
171
|
+
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
|
|
172
|
+
{% endfor %}
|
|
173
|
+
|
|
174
|
+
{% if jekyll_toc != '' %}
|
|
175
|
+
{% assign rootAttributes = '' %}
|
|
176
|
+
{% if include.class and include.class != blank %}
|
|
177
|
+
{% capture rootAttributes %} class="{{ include.class | split: '.' | join: ' ' }}"{% endcapture %}
|
|
178
|
+
{% endif %}
|
|
179
|
+
|
|
180
|
+
{% if include.id and include.id != blank %}
|
|
181
|
+
{% capture rootAttributes %}{{ rootAttributes }} id="{{ include.id }}"{% endcapture %}
|
|
182
|
+
{% endif %}
|
|
183
|
+
|
|
184
|
+
{% if rootAttributes %}
|
|
185
|
+
{% assign nodes = jekyll_toc | split: '>' %}
|
|
186
|
+
{% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %}
|
|
187
|
+
{% endif %}
|
|
188
|
+
{% endif %}
|
|
189
|
+
{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc -}}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<tr>
|
|
2
|
+
<td>
|
|
3
|
+
{% if row.commands != "" %}
|
|
4
|
+
<div class="input-group">
|
|
5
|
+
<textarea id="{{ card.page }}-{{ release[0] }}-key-{{ forloop.index }}" class="form-control font-monospace" placeholder="{{ row.overview }}" aria-label="{{ row.overview }}" aria-describedby="{{ card.page }}-button-{{ forloop.index }}" readonly rows="2">{{ row.commands }}</textarea>
|
|
6
|
+
<button id="{{ card.page }}-{{ release[0] }}-button-{{ forloop.index }}" class="btn btn-clipboard" type="button" aria-label="Copy to clipboard" data-clipboard-target="#{{ card.page }}-{{ release[0] }}-key-{{ forloop.index }}" data-bs-toggle="tooltip" data-bs-title="Copy to clipboard"><i class="fa-solid fa-clipboard"></i></button>
|
|
7
|
+
</div>
|
|
8
|
+
{% endif %}
|
|
9
|
+
</td>
|
|
10
|
+
</tr>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<tr>
|
|
2
|
+
<td>
|
|
3
|
+
{% for rows in release %}
|
|
4
|
+
{% for row in rows.docs %}
|
|
5
|
+
<a class="btn btn-sm btn-primary{% if row.name == "" %} disabled" aria-disabled="true"{% else %}" href="{{ row.link }}"{% endif %} role="button"><i class="fa-solid fa-file"></i> {{ row.name }}</a>
|
|
6
|
+
{% endfor %}
|
|
7
|
+
{% endfor %}
|
|
8
|
+
</td>
|
|
9
|
+
</tr>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<tr>
|
|
2
|
+
<td>
|
|
3
|
+
{% for rows in release %}
|
|
4
|
+
{% for row in rows.documentation %}
|
|
5
|
+
{% if row.title != "" %}
|
|
6
|
+
<a class="btn btn-primary" href="{{ row.link }}" role="button"><i class="fa-solid fa-up-right-from-square"></i> {{ row.title }}</a>
|
|
7
|
+
{% endif %}
|
|
8
|
+
{% endfor %}
|
|
9
|
+
{% endfor %}
|
|
10
|
+
</td>
|
|
11
|
+
</tr>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<tr>
|
|
2
|
+
<td>
|
|
3
|
+
{% if row.overview != "" %}
|
|
4
|
+
{{ row.overview }}
|
|
5
|
+
{% endif %}
|
|
6
|
+
|
|
7
|
+
{% if row.date != "" %}
|
|
8
|
+
{{ row.date | date_to_string: "ordinal", "US" }}
|
|
9
|
+
{% endif %}
|
|
10
|
+
|
|
11
|
+
{% if row.url != "" %}
|
|
12
|
+
<a href="{{ row.url }}"><i class="fas fa-exclamation-circle"></i> Know more</a>
|
|
13
|
+
{% else %}
|
|
14
|
+
{% endif %}
|
|
15
|
+
</td>
|
|
16
|
+
</tr>
|