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

Sign up to get free protection for your applications and to get access to all the features.
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>