@trimble-oss/modus-docs-hugo-theme 1.0.0-alpha1

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 (137) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -0
  3. package/assets/js/auto-complete.min.js +1 -0
  4. package/assets/js/loglevel-plugin-remote.min.js +1 -0
  5. package/assets/js/loglevel.min.js +2 -0
  6. package/assets/js/lunr.min.js +7 -0
  7. package/assets/js/scroll-to-top.js +33 -0
  8. package/assets/js/search.min.js +1 -0
  9. package/assets/js/tdcafLogger.min.js +1 -0
  10. package/assets/js/theme-toggle.js +48 -0
  11. package/assets/js/was-this-page-helpful.js +15 -0
  12. package/assets/styles/_article.scss +110 -0
  13. package/assets/styles/_autocomplete.scss +63 -0
  14. package/assets/styles/_cards.scss +25 -0
  15. package/assets/styles/_codefences-dark.scss +16 -0
  16. package/assets/styles/_codefences.scss +243 -0
  17. package/assets/styles/_col-sidebar.scss +3 -0
  18. package/assets/styles/_font-open-sans.scss +69 -0
  19. package/assets/styles/_footer.scss +4 -0
  20. package/assets/styles/_javascript-disabled.scss +21 -0
  21. package/assets/styles/_list-js.scss +27 -0
  22. package/assets/styles/_menu-right.scss +55 -0
  23. package/assets/styles/_mobile.scss +52 -0
  24. package/assets/styles/_navbar-search.scss +53 -0
  25. package/assets/styles/_navbar.scss +5 -0
  26. package/assets/styles/_news.scss +6 -0
  27. package/assets/styles/_onetrust-cookie-banner.scss +166 -0
  28. package/assets/styles/_posts.scss +17 -0
  29. package/assets/styles/_print.scss +5 -0
  30. package/assets/styles/_scroll-to-top-btn.scss +17 -0
  31. package/assets/styles/_sidebar.scss +65 -0
  32. package/assets/styles/_skippy.scss +15 -0
  33. package/assets/styles/_tables.scss +5 -0
  34. package/assets/styles/_theme-dark.scss +10 -0
  35. package/assets/styles/_theme-light.scss +5 -0
  36. package/assets/styles/_theme-toggle.scss +83 -0
  37. package/assets/styles/_utilities.scss +9 -0
  38. package/assets/styles/_was-this-page-helpful.scss +28 -0
  39. package/assets/styles/_xxl.scss +18 -0
  40. package/assets/styles/styles.scss +66 -0
  41. package/data/menu.yml +19 -0
  42. package/data/navbar_apps.yml +15 -0
  43. package/layouts/_default/_markup/render-heading.html +23 -0
  44. package/layouts/_default/_markup/render-image.html +4 -0
  45. package/layouts/_default/_markup/render-link.html +4 -0
  46. package/layouts/_default/baseof.html +65 -0
  47. package/layouts/_default/home.html +31 -0
  48. package/layouts/_default/list.html +41 -0
  49. package/layouts/_default/redirect.html +19 -0
  50. package/layouts/_default/single.html +113 -0
  51. package/layouts/index.json +18 -0
  52. package/layouts/index.rss.xml +49 -0
  53. package/layouts/partials/analytics.html +9 -0
  54. package/layouts/partials/blog-brief.html +34 -0
  55. package/layouts/partials/blog-share.html +58 -0
  56. package/layouts/partials/btn-theme-toggle.html +20 -0
  57. package/layouts/partials/card-component.html +29 -0
  58. package/layouts/partials/col-sidebar-menu.html +74 -0
  59. package/layouts/partials/col-sidebar.html +25 -0
  60. package/layouts/partials/custom-footer.html +1 -0
  61. package/layouts/partials/custom-header.html +1 -0
  62. package/layouts/partials/footer.html +13 -0
  63. package/layouts/partials/header.html +14 -0
  64. package/layouts/partials/icons/brands/codepen.svg +2 -0
  65. package/layouts/partials/icons/brands/facebook-square.svg +2 -0
  66. package/layouts/partials/icons/brands/github-alt.svg +1 -0
  67. package/layouts/partials/icons/brands/github.svg +2 -0
  68. package/layouts/partials/icons/brands/linkedin.svg +1 -0
  69. package/layouts/partials/icons/brands/square-x-twitter.svg +2 -0
  70. package/layouts/partials/icons/brands/vimeo-square.svg +2 -0
  71. package/layouts/partials/icons/modus-outlined/accessibility-circle.svg +3 -0
  72. package/layouts/partials/icons/modus-outlined/arrow-up.svg +3 -0
  73. package/layouts/partials/icons/modus-outlined/bar-graph-square.svg +3 -0
  74. package/layouts/partials/icons/modus-outlined/launch.svg +3 -0
  75. package/layouts/partials/icons/modus-outlined/menu.svg +3 -0
  76. package/layouts/partials/icons/modus-outlined/more-vertical.svg +3 -0
  77. package/layouts/partials/icons/modus-outlined/person-account.svg +3 -0
  78. package/layouts/partials/icons/modus-outlined/search.svg +3 -0
  79. package/layouts/partials/icons/modus-outlined/sync.svg +3 -0
  80. package/layouts/partials/icons/modus-outlined/thumbs-down.svg +3 -0
  81. package/layouts/partials/icons/modus-outlined/thumbs-up.svg +3 -0
  82. package/layouts/partials/icons/modus-outlined/web.svg +3 -0
  83. package/layouts/partials/icons/modus-solid/email.svg +3 -0
  84. package/layouts/partials/icons/modus-solid/palette.svg +3 -0
  85. package/layouts/partials/icons/navbar-toggler-icon.svg +1 -0
  86. package/layouts/partials/icons/transportation/truck.svg +3 -0
  87. package/layouts/partials/icons/trimble-logo.svg +1 -0
  88. package/layouts/partials/index/list-blog-brief.html +17 -0
  89. package/layouts/partials/logos/trimble.svg +1 -0
  90. package/layouts/partials/menu-right.html +24 -0
  91. package/layouts/partials/meta.html +81 -0
  92. package/layouts/partials/navbar-dropdown.html +21 -0
  93. package/layouts/partials/navbar-search.html +19 -0
  94. package/layouts/partials/navbar.html +31 -0
  95. package/layouts/partials/related-content.html +50 -0
  96. package/layouts/partials/skippy.html +11 -0
  97. package/layouts/partials/trimble-logo.html +47 -0
  98. package/layouts/partials/was-this-page-helpful.html +19 -0
  99. package/layouts/shortcodes/alert.html +18 -0
  100. package/layouts/shortcodes/blocks/cover.html +50 -0
  101. package/layouts/shortcodes/blocks/feature.html +17 -0
  102. package/layouts/shortcodes/blocks/link-down.html +7 -0
  103. package/layouts/shortcodes/blocks/section.html +13 -0
  104. package/layouts/shortcodes/checklist.html +7 -0
  105. package/layouts/shortcodes/cloakemail.html +38 -0
  106. package/layouts/shortcodes/date-today.html +1 -0
  107. package/layouts/shortcodes/example.html +50 -0
  108. package/layouts/shortcodes/iframe.html +24 -0
  109. package/layouts/shortcodes/img.html +10 -0
  110. package/layouts/shortcodes/markdown.html +1 -0
  111. package/layouts/shortcodes/message.html +7 -0
  112. package/layouts/shortcodes/partial.html +1 -0
  113. package/layouts/shortcodes/tab.html +55 -0
  114. package/layouts/shortcodes/table.html +9 -0
  115. package/layouts/shortcodes/tabpane.html +172 -0
  116. package/layouts/sitemap.xml +8 -0
  117. package/package.json +47 -0
  118. package/static/favicon.ico +0 -0
  119. package/static/favicon.svg +1 -0
  120. package/static/fonts/open-sans-v27-latin-300.woff +0 -0
  121. package/static/fonts/open-sans-v27-latin-300.woff2 +0 -0
  122. package/static/fonts/open-sans-v27-latin-300italic.woff +0 -0
  123. package/static/fonts/open-sans-v27-latin-300italic.woff2 +0 -0
  124. package/static/fonts/open-sans-v27-latin-600.woff +0 -0
  125. package/static/fonts/open-sans-v27-latin-600.woff2 +0 -0
  126. package/static/fonts/open-sans-v27-latin-700.woff +0 -0
  127. package/static/fonts/open-sans-v27-latin-700.woff2 +0 -0
  128. package/static/fonts/open-sans-v27-latin-800.woff +0 -0
  129. package/static/fonts/open-sans-v27-latin-800.woff2 +0 -0
  130. package/static/fonts/open-sans-v27-latin-italic.woff +0 -0
  131. package/static/fonts/open-sans-v27-latin-italic.woff2 +0 -0
  132. package/static/fonts/open-sans-v27-latin-regular.woff +0 -0
  133. package/static/fonts/open-sans-v27-latin-regular.woff2 +0 -0
  134. package/static/img/trimble-logo.svg +1 -0
  135. package/static/js/instant-page.min.js +2 -0
  136. package/static/js/theme-toggle.js +48 -0
  137. package/static/staticwebapp.config.json +24 -0
@@ -0,0 +1,17 @@
1
+ // blog posts
2
+ header.header-blog {
3
+ background-size: cover;
4
+ min-height: 90px;
5
+ aspect-ratio: 21/9;
6
+ background-position: center;
7
+ border-radius: 8px;
8
+ max-height: 600px;
9
+ }
10
+
11
+ .share svg {
12
+ opacity: 0.8;
13
+ }
14
+
15
+ .share svg:hover {
16
+ opacity: 0.6;
17
+ }
@@ -0,0 +1,5 @@
1
+ @media only print {
2
+ .badge {
3
+ border: 0;
4
+ }
5
+ }
@@ -0,0 +1,17 @@
1
+ .btn-to-top {
2
+ font-size: 18px;
3
+ line-height: 48px !important;
4
+ background-color: #353a40 !important;
5
+ width: 48px;
6
+ bottom: 20px;
7
+ right: 20px;
8
+ z-index: 6000;
9
+ opacity: 0;
10
+ transform: translateY(100px);
11
+ transition: all 1s ease;
12
+ }
13
+
14
+ .btn-to-top-show {
15
+ opacity: 0.9;
16
+ transform: translateY(0);
17
+ }
@@ -0,0 +1,65 @@
1
+ .card-blog-brief {
2
+ transition: none;
3
+ }
4
+
5
+ #sidebar-menu {
6
+ max-height: calc(100vh - 66px);
7
+ }
8
+
9
+ @media (min-width: 768px) {
10
+ #sidebar-menu {
11
+ max-width: 250px;
12
+ min-width: 250px;
13
+ }
14
+ }
15
+
16
+ #sidebar a:hover {
17
+ color: #000 !important;
18
+ }
19
+
20
+ [data-bs-theme="dark"] {
21
+ #sidebar a:hover {
22
+ color: #fff !important;
23
+ }
24
+ }
25
+
26
+ #sidebar.collapsing .sticky-offset {
27
+ top: 0 !important;
28
+ }
29
+
30
+ #sidebar.collapsing.collapse-horizontal {
31
+ height: unset !important;
32
+ }
33
+
34
+ #sidebar.show {
35
+ min-width: 250px;
36
+ }
37
+
38
+ #sidebar.show .sticky-offset {
39
+ top: 65px !important;
40
+ }
41
+
42
+ .col-main {
43
+ max-width: calc(100vw - 81px);
44
+ }
45
+
46
+ .collapse-horizontal.collapse:not(.show) {
47
+ width: 0;
48
+ }
49
+
50
+ .row-main {
51
+ height: calc(100dvh - 66px);
52
+ }
53
+
54
+ #sidebar.collapsing {
55
+ transition: none;
56
+ }
57
+
58
+ #sidebar.collapsing + div,
59
+ #sidebar.show + div {
60
+ max-width: calc(100vw - 332px);
61
+ }
62
+
63
+ .col-sidebar .sticky-offset {
64
+ top: 65px !important;
65
+ }
@@ -0,0 +1,15 @@
1
+ // Accessibility
2
+
3
+ .skippy:focus {
4
+ outline: 0;
5
+ }
6
+
7
+ .skippy div {
8
+ outline: 1px dotted;
9
+ }
10
+
11
+ .sr-only-focusable:focus {
12
+ top: 0 !important;
13
+ margin-bottom: 30px;
14
+ z-index: 22222;
15
+ }
@@ -0,0 +1,5 @@
1
+ main table {
2
+ width: 100%;
3
+ margin-bottom: 1rem;
4
+ vertical-align: top;
5
+ }
@@ -0,0 +1,10 @@
1
+ [data-bs-theme="dark"] {
2
+ .menu-right a[href^="http"]::after,
3
+ article a:not(.stretched-link)[href^="http"]::after {
4
+ filter: invert(1);
5
+ }
6
+
7
+ .card-blog-brief .card-header img {
8
+ filter: invert(1) brightness(111%);
9
+ }
10
+ }
@@ -0,0 +1,5 @@
1
+ [data-bs-theme="light"] {
2
+ article a.btn-primary::after {
3
+ filter: invert(1);
4
+ }
5
+ }
@@ -0,0 +1,83 @@
1
+ .sun-and-moon > :is(.moon, .sun, .sun-beams) {
2
+ transform-origin: center center;
3
+ }
4
+
5
+ .sun-and-moon > :is(.moon, .sun) {
6
+ fill: var(--icon-fill);
7
+ }
8
+
9
+ .sun-and-moon > .sun-beams {
10
+ stroke: var(--icon-fill);
11
+ stroke-width: 2px;
12
+ }
13
+
14
+ [data-bs-theme="dark"] .sun-and-moon > .sun {
15
+ transform: scale(1.75);
16
+ }
17
+
18
+ [data-bs-theme="dark"] .sun-and-moon > .sun-beams {
19
+ opacity: 0;
20
+ }
21
+
22
+ [data-bs-theme="dark"] .sun-and-moon > .moon > circle {
23
+ transform: translate(-7px);
24
+ }
25
+
26
+ @media (prefers-reduced-motion: no-preference) {
27
+ .sun-and-moon > .sun {
28
+ transition: transform 0.5s cubic-bezier(0.5, 1.25, 0.75, 1.25);
29
+ }
30
+
31
+ .sun-and-moon > .sun-beams {
32
+ transition:
33
+ transform 0.5s cubic-bezier(0.5, 1.5, 0.75, 1.25),
34
+ opacity 0.5s cubic-bezier(0.25, 0, 0.3, 1);
35
+ }
36
+
37
+ .sun-and-moon .moon > circle {
38
+ transition: transform 0.25s cubic-bezier(0, 0, 0, 1);
39
+ }
40
+
41
+ @supports (cx: 1) {
42
+ .sun-and-moon .moon > circle {
43
+ transition: cx 0.25s cubic-bezier(0, 0, 0, 1);
44
+ }
45
+ }
46
+
47
+ [data-bs-theme="dark"] .sun-and-moon > :is(.moon, .sun) {
48
+ fill: rgb(255, 255, 255);
49
+ }
50
+
51
+ [data-bs-theme="dark"] .sun-and-moon > .sun {
52
+ transform: scale(1.75);
53
+ transition-timing-function: cubic-bezier(0.25, 0, 0.3, 1);
54
+ transition-duration: 0.25s;
55
+ }
56
+
57
+ [data-bs-theme="dark"] .sun-and-moon > .sun-beams {
58
+ transform: rotate(-25deg);
59
+ transition-duration: 0.15s;
60
+ }
61
+
62
+ [data-bs-theme="dark"] .sun-and-moon > .moon > circle {
63
+ transition-delay: 0.25s;
64
+ transition-duration: 0.5s;
65
+ }
66
+ }
67
+
68
+ .theme-toggle {
69
+ --icon-fill: rgb(0, 0, 0);
70
+
71
+ aspect-ratio: 1;
72
+ cursor: pointer;
73
+ touch-action: manipulation;
74
+ -webkit-tap-highlight-color: transparent;
75
+ }
76
+
77
+ .theme-toggle > svg {
78
+ inline-size: 100%;
79
+ block-size: 100%;
80
+ max-height: 18px;
81
+ max-width: 18px;
82
+ stroke-linecap: round;
83
+ }
@@ -0,0 +1,9 @@
1
+ // Utility Classes
2
+
3
+ .img-white {
4
+ filter: grayscale(100%) brightness(800%);
5
+ }
6
+
7
+ .img-grayscale {
8
+ filter: grayscale(100%);
9
+ }
@@ -0,0 +1,28 @@
1
+ .feedback {
2
+ border-color: #90939f !important;
3
+ }
4
+
5
+ .btn-feedback {
6
+ opacity: 0.7;
7
+ min-width: 32px;
8
+ }
9
+
10
+ .btn-feedback svg {
11
+ margin-top: -3px;
12
+ }
13
+
14
+ .btn-feedback:hover:enabled {
15
+ opacity: 1;
16
+ }
17
+
18
+ .btn-feedback[disabled] {
19
+ opacity: 0.4;
20
+ cursor: default;
21
+ pointer-events: none;
22
+ }
23
+
24
+ @media (min-width: 1200px) {
25
+ .feedback-center {
26
+ display: none;
27
+ }
28
+ }
@@ -0,0 +1,18 @@
1
+ /* XXL */
2
+ @media (min-width: 1400px) {
3
+ nav button .menu-btn {
4
+ opacity: 0.1;
5
+ }
6
+
7
+ button[data-bs-target="#sidebar"] {
8
+ pointer-events: none !important;
9
+ }
10
+
11
+ #sidebar.show {
12
+ pointer-events: auto !important;
13
+ }
14
+
15
+ #sidebar {
16
+ width: 250px !important;
17
+ }
18
+ }
@@ -0,0 +1,66 @@
1
+ @import "theme-toggle";
2
+ @import "theme-light";
3
+ @import "theme-dark";
4
+ @import "autocomplete"; // search autocomplete dropdown
5
+ @import "article";
6
+ @import "cards";
7
+ @import "col-sidebar"; // 1st column
8
+ @import "codefences"; // code syntax highlighting
9
+ @import "codefences-dark"; // code syntax highlighting
10
+ @import "javascript-disabled"; // display message at top if JS is disabled
11
+ // @import "list-js";
12
+ @import "sidebar";
13
+ @import "menu-right"; // 'On this page' menu
14
+ @import "mobile"; // optimizations for xxs mobile screens
15
+ @import "navbar";
16
+ @import "navbar-search";
17
+ @import "news";
18
+ @import "posts";
19
+ @import "print";
20
+ @import "scroll-to-top-btn";
21
+ @import "skippy"; // skip to content accessibility
22
+ @import "tables";
23
+ @import "footer";
24
+ @import "utilities";
25
+ @import "was-this-page-helpful";
26
+
27
+ // @import "xxl"; // extra extra large screens
28
+
29
+ body {
30
+ overflow-x: hidden;
31
+ }
32
+
33
+ h1,
34
+ h2,
35
+ h3,
36
+ h4,
37
+ h5,
38
+ h6 {
39
+ text-wrap: balance;
40
+ }
41
+
42
+ // underline links
43
+ main a {
44
+ text-decoration: underline;
45
+ }
46
+
47
+ // don't underline links in buttons or navbar
48
+ .menu-left a,
49
+ .guide-example-block a,
50
+ table a,
51
+ nav a,
52
+ .btn {
53
+ text-decoration: none;
54
+ }
55
+
56
+ .popover-body small {
57
+ line-height: 100%;
58
+ }
59
+
60
+ code {
61
+ font-size: inherit;
62
+ }
63
+
64
+ main {
65
+ min-height: calc(100vh - 418px);
66
+ }
package/data/menu.yml ADDED
@@ -0,0 +1,19 @@
1
+ - title: Get Started
2
+ prefix: ""
3
+ pages:
4
+ - title: Introduction
5
+
6
+ - title: Customization
7
+ prefix: ""
8
+ pages:
9
+ - title: Adding Content
10
+ - title: Search
11
+ - title: Shortcodes
12
+ - title: Analytics
13
+ - title: Repository Links
14
+
15
+ - title: Community
16
+ pages:
17
+ - title: GitHub Discussions
18
+ url: "https://github.com/orgs/trimble-oss/discussions"
19
+ external: true
@@ -0,0 +1,15 @@
1
+ - title: Modus Web Components
2
+ icon: ""
3
+ url: "https://modus-web-components.trimble.com/"
4
+
5
+ - title: Modus Icons
6
+ icon: ""
7
+ url: "https://modus-icons.trimble.com"
8
+
9
+ - title: Modus Bootstrap
10
+ icon: ""
11
+ url: "https://modus-bootstrap.trimble.com/"
12
+
13
+ - title: Modus on GitHub
14
+ icon: ""
15
+ url: "https://github.com/trimble-oss/?q=modus&type=all&language=&sort=stargazers"
@@ -0,0 +1,23 @@
1
+ <h{{ .Level }} id="{{ .Anchor | safeURL }}"
2
+ class="{{- if (eq .Level 2 ) }}
3
+ h1 mt-5 {{- end -}}
4
+ {{- if (eq .Level 3 ) }}
5
+ h2 mt-5 {{- end -}}
6
+ {{- if (eq .Level 4 ) }}h4 fw-bold mt-3{{- end -}}{{ if eq .Anchor "use-when" }} text-success{{- end -}}{{ if eq .Anchor "dont-use-when" }} text-danger{{- end -}}">
7
+ {{ if eq .Anchor "use-when" }}
8
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" class="mx-1 mb-1"
9
+ viewBox="0 0 24 24">
10
+ <path
11
+ d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2Zm5.56 7.74-6.39 6.4a1 1 0 0 1-1.42-.01l-3.3-3.34-.01-.01a.993.993 0 0 1 .01-1.4.996.996 0 0 1 1.41 0l2.6 2.62 5.68-5.69a.996.996 0 0 1 1.41 0v.02h.01c.39.39.39 1.02 0 1.41Z" />
12
+ </svg>{{- end -}}
13
+ {{- if eq .Anchor "dont-use-when" -}}
14
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" class="mx-1 mb-1"
15
+ viewBox="0 0 24 24">
16
+ <path
17
+ d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2Zm4.3 14.3a.996.996 0 0 1-1.41 0L12 13.41 9.11 16.3a.996.996 0 1 1-1.41-1.41L10.59 12 7.7 9.11A.996.996 0 1 1 9.11 7.7L12 10.59l2.89-2.89a.996.996 0 1 1 1.41 1.41L13.41 12l2.89 2.89c.38.38.38 1.02 0 1.41Z" />
18
+ </svg>{{- end -}}
19
+ {{- .Text | safeHTML -}}
20
+ {{ if and (ne .Anchor "use-when") (ne .Anchor "dont-use-when") }}
21
+ <a class="header-link text-light text-decoration-none fw-normal" href="#{{- .Anchor | safeURL -}}"
22
+ aria-label="anchor"></a>{{ end }}
23
+ </h{{ .Level }}>
@@ -0,0 +1,4 @@
1
+ <img src="{{- .Destination | safeURL -}}" class="img-fluid" alt="{{- .Text -}}" loading="lazy" decoding="async"
2
+ {{ if strings.HasPrefix .Destination "http" }}{{else}}{{ if strings.HasSuffix .Destination "png" }}
3
+ {{ with imageConfig ( printf "static/%s" .Destination ) }} width="{{- .Width -}}" height="{{- .Height -}}"
4
+ {{ end }}{{ end }}{{ end }}>
@@ -0,0 +1,4 @@
1
+ <a href="{{ .Destination | safeURL }}" {{ with .Title}} title="{{ . }}"
2
+ {{- end -}}{{ if strings.HasPrefix .Destination "http" }} target="_blank" rel="noopener" {{ end }}>
3
+ {{- .Text | safeHTML -}}
4
+ </a>
@@ -0,0 +1,65 @@
1
+ <!doctype html>
2
+ <html lang="en-US" class="h-100 no-js {{ with .Page.Params.html_class }}{{ . -}}{{- end -}}">
3
+
4
+ <head>
5
+ {{ partial "meta" . }}
6
+ </head>
7
+
8
+ <body data-url="{{ .RelPermalink }}" class="overflow-x-hidden {{ with .Page.Params.body_class -}}{{ . -}}{{- end -}}"
9
+ {{ if not .Params.disableScrollSpy }}{{- end -}}>
10
+ {{ if not .Params.NavbarFalse }}{{ partial "navbar" . }}{{ end }}
11
+ {{ block "body" . }}{{ block "main" . }}
12
+ {{- end -}}
13
+ {{- end -}}
14
+ <script>
15
+ // Initialize Bootstrap tooltips
16
+ var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
17
+ var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
18
+ return new bootstrap.Tooltip(tooltipTriggerEl, {
19
+ trigger: 'hover'
20
+ });
21
+ });
22
+ </script>
23
+ <script>
24
+ // Hide Bootstrap tooltips when user presses Escape
25
+ document.addEventListener('keyup', function (event) {
26
+ if (event.which === 27) {
27
+ const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
28
+ tooltipTriggerList.forEach(function (tooltipTriggerEl) {
29
+ $(tooltipTriggerEl).tooltip('hide');
30
+ });
31
+ }
32
+ });
33
+ </script>
34
+ <script>
35
+ // Initialize Bootstrap popovers
36
+ const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]')
37
+ const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))
38
+ </script>
39
+ <script>
40
+ // Disable all links with #
41
+ var links = document.querySelectorAll('a[href="#"]');
42
+ // Add event listener to each link
43
+ links.forEach(function (link) {
44
+ link.addEventListener('click', function (event) {
45
+ // Prevent default behavior
46
+ event.preventDefault();
47
+ });
48
+ });
49
+ </script>
50
+ {{- if not .IsHome -}}
51
+ <script>
52
+ // Change Submit buttons within docs examples to type=button
53
+ var article = document.querySelector('article');
54
+ var forms = article.querySelectorAll('form');
55
+ forms.forEach(function (form) {
56
+ var submitButtons = form.querySelectorAll('button[type="submit"], input[type="submit"]');
57
+ submitButtons.forEach(function (submitButton) {
58
+ submitButton.type = 'button';
59
+ });
60
+ });
61
+ </script>
62
+ {{- end -}}
63
+ </body>
64
+
65
+ </html>
@@ -0,0 +1,31 @@
1
+ {{ define "main" }}
2
+
3
+ <div class="container-fluid">
4
+ <div class="row row-main px-0">
5
+
6
+ <div class="col-1 col-sidebar px-0 bg-body shadow-sm">
7
+ {{ partial "col-sidebar" . }}
8
+ </div>
9
+
10
+ <div class="col col-auto px-0 collapse collapse-horizontal bg-dark bg-opacity-10" id="sidebar">
11
+ <div id="sidebar-menu" class="z-2 sticky-top sticky-offset shadow-sm overflow-auto w-100">
12
+ {{ partial "col-sidebar-menu" . }}
13
+ </div>
14
+ </div>
15
+
16
+ <div class="col col-auto col-12 col-main border-start p-0 overflow-x-hidden">
17
+
18
+ <main id="main" class="container">
19
+
20
+ {{ .Content }}
21
+
22
+ </main>
23
+
24
+ <footer class="p-2 footer py-4 bg-secondary bg-opacity-10">
25
+ {{ partial "footer" . }}
26
+ </footer>
27
+ </div>
28
+
29
+ </div>
30
+ </div>
31
+ {{- end -}}
@@ -0,0 +1,41 @@
1
+ {{ define "main" }}
2
+
3
+ <div class="container-fluid">
4
+ <div class="row row-main px-0">
5
+
6
+ <div class="col-1 col-sidebar px-0 bg-body shadow-sm">
7
+ {{ partial "col-sidebar" . }}
8
+ </div>
9
+
10
+ <div class="col col-auto px-0 collapse collapse-horizontal bg-dark bg-opacity-10 show" id="sidebar">
11
+ <div id="sidebar-menu" class="sticky-top sticky-offset shadow-sm overflow-auto"
12
+ style="min-height: calc(100vh - 66px);max-height: calc(100vh - 66px);">
13
+ {{ partial "col-sidebar-menu" . }}
14
+ </div>
15
+ </div>
16
+
17
+ <div class="col col-auto col-12 col-main border-start p-0">
18
+ <div class="mx-auto mw-100">
19
+
20
+ {{ partial "header" . }}
21
+
22
+ <main class="my-5 container mx-auto h-100" style="max-width: 1090px;">
23
+ {{ .Content }}
24
+ <div class="container mb-5">
25
+ <div class="row">
26
+ {{ range first 99 (where .Pages.ByPublishDate.Reverse "Section" "news") }}
27
+ {{- partial "blog-brief.html" . -}}
28
+ {{- end -}}
29
+ </div>
30
+ </div>
31
+ </main>
32
+
33
+ <footer class="p-2 footer py-4 bg-dark bg-opacity-10">
34
+ {{ partial "footer" . }}
35
+ </footer>
36
+ </div>
37
+ </div>
38
+
39
+ </div>
40
+ </div>
41
+ {{- end -}}
@@ -0,0 +1,19 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <meta name="robots" content="noindex">
8
+ <!-- redirects to new URL and keeps the hash in place -->
9
+ <script>
10
+ var anchor = window.location.hash.substr(1)
11
+ location.href = '{{- .Page.Params.redirect | relURL -}}' +
12
+ (anchor ? '#' + anchor : '');
13
+ </script>
14
+ <!-- fallback redirect if JavaScript is not available-->
15
+ <meta http-equiv="refresh" content="0; url={{- .Page.Params.redirect | relURL -}}">
16
+ <title>{{- .Title -}}</title>
17
+ </head>
18
+
19
+ </html>