+ add training page (add admonition shortcode)

+ Finish translation
+ clean unused asset
This commit is contained in:
2025-01-23 16:48:37 +01:00
parent f91aba8329
commit fc87d59dbb
33 changed files with 468 additions and 93 deletions

View File

@@ -12,3 +12,5 @@
// Custom CSS
@import "./custom.scss";
@import "./admonition.scss";

View File

@@ -0,0 +1,70 @@
.admonition {
position: relative;
margin: 1rem 0;
padding: 0 0.75rem;
background-color: map-get($admonition-background-color-map, "note");
border-left: 0.25rem solid map-get($admonition-color-map, "note");
overflow: auto;
.admonition-title {
font-weight: bold;
margin: 0 -0.75rem;
padding: 0.25rem 1.8rem;
border-bottom: 1px solid map-get($admonition-background-color-map, "note");
background-color: opacify(
map-get($admonition-background-color-map, "note"),
0.15
);
}
&.open .admonition-title {
background-color: map-get($admonition-background-color-map, "note");
}
.admonition-content {
padding: 0.5rem 0;
}
span.icon > svg {
font-size: 0.85rem;
color: map-get($admonition-color-map, "note");
position: absolute;
top: 0.6rem;
left: 0.4rem;
}
span.details-icon > svg {
position: absolute;
top: 0.6rem;
right: 0.3rem;
}
@each $type, $color in $admonition-color-map {
&.#{$type} {
border-left-color: $color;
span.icon > svg {
color: $color;
}
}
}
@each $type, $color in $admonition-background-color-map {
&.#{$type} {
background-color: $color;
.admonition-title {
border-bottom-color: $color;
background-color: opacify($color, 0.15);
}
&.open .admonition-title {
background-color: $color;
}
}
}
&:last-child {
margin-bottom: 0.75rem;
}
}

View File

@@ -18,12 +18,16 @@ body {
vertical-align: middle;
}
#site-page-head {
height: 0%;
}
#site-head.withCenteredImage{
/* can't be used together with video */
background: var(--section-light-bg-color) no-repeat center center;
}
#site-head, #site-head.withCenteredImage {
#site-head, #site-head.withCenteredImage, #site-page-head {
// position: relative;
display: table;
width: 100%;
@@ -131,7 +135,6 @@ body {
}
}
#site-head-content {
// position: absolute;

View File

@@ -53,3 +53,39 @@
/* define list element for unnumbered lists, leave empty for default list element */
--ul-li-icon: fa-asterisk;
}
// ========== Admonition ========== //
// Color map of the admonition
$admonition-color-map: (
"note": #448aff,
"abstract": #00b0ff,
"info": #00b8d4,
"tip": #00bfa5,
"success": #00c853,
"question": #64dd17,
"warning": #ff9100,
"failure": #ff5252,
"danger": #ff1744,
"bug": #f50057,
"example": #651fff,
"quote": #9e9e9e,
"important": #8957e5,
"caution": #da3633,
) !default;
// Color map of the admonition background
$admonition-background-color-map: (
"note": rgba(68, 138, 255, 0.1),
"abstract": rgba(0, 176, 255, 0.1),
"info": rgba(0, 184, 212, 0.1),
"tip": rgba(0, 191, 165, 0.1),
"success": rgba(0, 200, 83, 0.1),
"question": rgba(100, 221, 23, 0.1),
"warning": rgba(255, 145, 0, 0.1),
"failure": rgba(255, 82, 82, 0.1),
"danger": rgba(255, 23, 68, 0.1),
"bug": rgba(245, 0, 87, 0.1),
"example": rgba(101, 31, 255, 0.1),
"quote": rgba(159, 159, 159, 0.1),
"important": rgba(137, 87, 229, 0.1),
"caution": rgba(218, 54, 51, 0.1),
) !default;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 KiB

View File

@@ -0,0 +1,3 @@
{{- partial "plugin/admonitionPre.html" (dict "Type" .AlertType "Title" (.AlertTitle | default (strings.FirstUpper .AlertType)) "Open" (not (eq .AlertSign "-"))) -}}
{{- .Text -}}
{{- partial "plugin/admonitionPost.html" -}}

View File

@@ -0,0 +1,6 @@
{{- $destination := .Destination -}}
{{- with dict "Path" $destination "Resources" .Page.Resources | partial "function/resource.html" -}}
{{- $destination = .RelPermalink -}}
{{- end -}}
{{- $options := dict "Destination" $destination "Title" .Title "Content" .Text -}}
{{- partial "plugin/link.html" $options -}}

View File

@@ -101,22 +101,18 @@
</div>
</div>
<div id="site-head-content" class="inner">
<div id="site-head-content" class="inner">
{{ if .Site.Params.title_guard }}<div class="title-and-description-guard">{{ end }}
{{ with .Params.header_subheadline }}<h2 class="blog-description">{{ . | safeHTML }}</h2>{{ end }}
{{ with .Params.header_subsubheadline }}<h3 class="blog-description">{{ . | safeHTML }}</h3>{{ end }}
{{ if .Site.Params.title_guard }}</div>{{ end }}
{{ with (index $content 0) }}
{{ $first_title := .Title }}{{ with .Params.navigation_menu_title }}{{ $first_title = . }}{{ end }}
<a id='header-arrow' href="#{{- anchorize $first_title -}}" aria-label="Go to first section"><i class="fa fa-angle-down"></i></a>
{{ end }}
</div>
{{ if .Site.Params.title_guard }}<div class="title-and-description-guard">{{ end }}
{{ with resources.Get .Params.header_logo }}<img id="blog-logo" alt="" src="{{ .RelPermalink }}" />{{ end }}
{{ with .Params.header_subheadline }}<h2 class="blog-description">{{ . | safeHTML }}</h2>{{ end }}
{{ with .Params.header_subsubheadline }}<h3 class="blog-description">{{ . | safeHTML }}</h3>{{ end }}
{{ if .Site.Params.title_guard }}</div>{{ end }}
{{ with (index $content 0) }}
{{ $first_title := .Title }}{{ with .Params.navigation_menu_title }}{{ $first_title = . }}{{ end }}
<a id='header-arrow' href="#{{- anchorize $first_title -}}" aria-label="Go to first section"><i class="fa fa-angle-down"></i></a>
{{ end }}
</div>
</div>
</header>

View File

@@ -0,0 +1 @@
{{- return and (not (eq .Scheme "")) .Host -}}

View File

@@ -0,0 +1,17 @@
{{- $resource := 0 -}}
{{- $url := urls.Parse .Path -}}
{{- if not (partial "function/isUrlRemote.html" $url) -}}
{{- $dest := strings.TrimPrefix "./" $url.Path -}}
{{- if .Resources -}}
{{- with .Resources.GetMatch $dest -}}
{{- $resource = . -}}
{{- end -}}
{{- end -}}
{{- if not $resource -}}
{{- with resources.Get $dest -}}
{{- $resource = . -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- return $resource -}}

View File

@@ -0,0 +1 @@
</div></div></div>

View File

@@ -0,0 +1,39 @@
{{- $iconMap := dict "note" ("pencil-alt") -}}
{{- $iconMap = dict "abstract" ("list-ul") | merge $iconMap -}}
{{- $iconMap = dict "info" ("info-circle") | merge $iconMap -}}
{{- $iconMap = dict "tip" ("lightbulb") | merge $iconMap -}}
{{- $iconMap = dict "success" ("check-circle") | merge $iconMap -}}
{{- $iconMap = dict "question" ("question-circle") | merge $iconMap -}}
{{- $iconMap = dict "warning" ("exclamation-triangle") | merge $iconMap -}}
{{- $iconMap = dict "failure" ("times-circle") | merge $iconMap -}}
{{- $iconMap = dict "danger" ("skull-crossbones") | merge $iconMap -}}
{{- $iconMap = dict "bug" ("bug") | merge $iconMap -}}
{{- $iconMap = dict "example" ("list-ol") | merge $iconMap -}}
{{- $iconMap = dict "quote" ("quote-right") | merge $iconMap -}}
{{- $iconMap = dict "important" ("exclamation") | merge $iconMap -}}
{{- $iconMap = dict "caution" ("exclamation-circle") | merge $iconMap -}}
{{/*
This partial is used to render an admonition block.
The following parameters are available:
- Inner: The content of the admonition block.
- Type: The type of the admonition block. The default value is "note".
- Title: The title of the admonition block. The default value is the translated value of the type.
- Open: A boolean value to determine whether the admonition block is open. The default value is true.
Usage example:
{{- dict "Inner" $inner "Type" "note" "Title" "title" "Open" false | partial "plugin/admonition.html" -}}
*/}}
{{- $type := .Type | default "note" -}}
{{- $title := .Title | default (T $type) -}}
{{- $open := .Open | default true -}}
<div class="details admonition {{ $type }}{{ if $open | ne false }} open{{ end }}">
<div class="details-summary admonition-title">
<span class="icon"><i class="fa fa-{{ index $iconMap $type | default (index $iconMap "note") }}"></i>
<!--{ {- partial "plugin/fontawesome.html" (index $iconMap $type | default (index $iconMap "note")) -}}-->
</span>
</div>
<div class="details-content">
<div class="admonition-content">

View File

@@ -0,0 +1,9 @@
{{- $rel := "" -}}
<a href="{{ .Destination | safeURL }}"{{ with .Title }} title="{{ . }}"{{ end }}{{ if (urls.Parse .Destination).Host | or .Newtab }}{{ $rel = "noopener noreferrer" }} target="_blank"{{ end }} rel="{{ $rel }}{{ with .Rel }} {{ . }}{{ end }}"{{ with .Class }} class="{{ . }}"{{ end }}>
{{- with .Icon -}}
{{- partial "plugin/icon.html" . -}}
{{- end -}}
{{- with .Content -}}
{{- . | safeHTML -}}
{{- end -}}
</a>

View File

@@ -0,0 +1,6 @@
{{- $type := cond .IsNamedParams (.Get "type") (.Get 0) | default "note" -}}
{{- $title := cond .IsNamedParams (.Get "title") (.Get 1) | default (T $type) -}}
{{- $open := cond .IsNamedParams (.Get "open") (.Get 2) -}}
{{- partial "plugin/admonitionPre.html" (dict "Type" $type "Title" $title "Open" $open) -}}
{{- .Inner | .Page.RenderString -}}
{{- partial "plugin/admonitionPost.html" -}}

View File

@@ -1,26 +0,0 @@
[build]
publish = "exampleSite/public"
[build.environment]
HUGO_VERSION = "0.134.2"
HUGO_THEME = "repo"
[context.production]
command = "cd exampleSite && hugo --minify --gc --themesDir ../.. -b ${URL}"
[context.production.environment]
HUGO_ENV = "production"
[context.branch-deploy]
command = "cd exampleSite && hugo --minify --gc --themesDir ../.. -b ${DEPLOY_PRIME_URL}"
[context.deploy-preview]
command = "cd exampleSite && hugo --minify --gc --themesDir ../.. -b ${DEPLOY_PRIME_URL}"
[[plugins]]
package = "netlify-plugin-hugo-cache-resources"
[plugins.inputs]
# If it should show more verbose logs (optional, default = true)
debug = true
# Relative path to source directory in case you use Hugo's "--s" option
srcdir = "exampleSite"