Compare commits

...

22 Commits

Author SHA1 Message Date
Mark Dumay
df017d9d5d Merge pull request #475 from gethinode/develop
Fix timeline content
2023-08-28 15:56:11 +02:00
Mark Dumay
9c0ea3e564 Merge branch 'main' into develop 2023-08-28 15:47:06 +02:00
github-actions[bot]
eb5d4b3dec Merge pull request #477 from gethinode/dependabot/npm_and_yarn/eslint-8.48.0
Bump eslint from 8.47.0 to 8.48.0
2023-08-28 13:45:44 +00:00
Mark Dumay
8de7ad2d82 Merge branch 'main' into develop 2023-08-28 15:41:18 +02:00
dependabot[bot]
96fb918b7a Bump eslint from 8.47.0 to 8.48.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.47.0 to 8.48.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.47.0...v8.48.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 13:41:06 +00:00
github-actions[bot]
d2e81917d3 Merge pull request #476 from gethinode/dependabot/npm_and_yarn/markdownlint-cli2-0.9.2
Bump markdownlint-cli2 from 0.9.0 to 0.9.2
2023-08-28 13:40:10 +00:00
dependabot[bot]
020e11a06c Bump markdownlint-cli2 from 0.9.0 to 0.9.2
Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.9.0 to 0.9.2.
- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.9.0...v0.9.2)

---
updated-dependencies:
- dependency-name: markdownlint-cli2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 13:34:18 +00:00
Mark Dumay
8470b4f809 Merge branch 'main' into develop 2023-08-28 14:50:11 +02:00
mark
12f29b765d Bump package release 2023-08-28 14:49:23 +02:00
mark
4bf56b9c99 Fix rendering of timeline content 2023-08-28 14:48:11 +02:00
mark
584a51a5bf Use quoted abbr example 2023-08-28 14:47:41 +02:00
mark
e36858d1e1 Exclude abbr data from mounts 2023-08-28 14:47:22 +02:00
Mark Dumay
860b12a63a Merge pull request #473 from gethinode/develop
Add abbr shortcode
2023-08-28 14:15:40 +02:00
mark
50708e2f89 Update package version 2023-08-28 14:02:01 +02:00
mark
ad24e44041 Fix abbr example 2023-08-28 14:00:56 +02:00
mark
ad143b87c9 Update build stats 2023-08-28 13:57:35 +02:00
mark
f17914a3ef Add abr shortcode 2023-08-28 13:57:29 +02:00
mark
3feeff793e Include data folder in module mounts 2023-08-28 13:57:10 +02:00
mark
fe603eca70 Fix timeline arg 2023-08-27 14:07:51 +02:00
Mark Dumay
7904caa902 Merge branch 'main' into develop 2023-08-27 13:53:12 +02:00
mark
f4dcb16d24 Add support for translated timeline data 2023-08-27 13:52:26 +02:00
Mark Dumay
cce017c646 Update npm-publish.yml 2023-08-27 09:41:35 +02:00
10 changed files with 138 additions and 8896 deletions

View File

@@ -31,8 +31,9 @@ jobs:
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Perform clean install of npm
run: npm ci
# [27/AUG/23] Adjusted from npm ci to prevent EBADPLATFORM error due to fsevents
- name: Install npm
run: npm i
- name: Publish package to npm
run: npm publish

View File

@@ -14,6 +14,16 @@ thumbnail:
Hinode provides several shortcodes that wrap common Bootstrap components. Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
## Abbr
As an example, the following shortcode displays the full text of an abbreviation on hover.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* abbr "CI/CD" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Accordion
As an example, the following shortcode displays an accordion with three elements, of which the first element is expanded.
@@ -347,11 +357,11 @@ Loading...
## Timeline
As an example, the following shortcode displays a timeline with the file `data/timeline-en.yml` as data.
As an example, the following shortcode displays a timeline with the file `data/timeline.en.yml` as data.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* timeline data="timeline-en" background="dark" */>}}
{{</* timeline data="timeline" background="dark" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->

11
exampleSite/data/abbr.yml Normal file
View File

@@ -0,0 +1,11 @@
- id: css
long: "Cascading Style Sheets"
- id: html
long: "HyperText Markup Language"
- id: svg
long: "Scalable Vector Graphics"
- id: ci/cd
long: "Continous Integration/Continuous Deployment"

View File

@@ -2,6 +2,7 @@
"htmlElements": {
"tags": [
"a",
"abbr",
"body",
"br",
"button",
@@ -258,7 +259,7 @@
"mt-3",
"mt-5",
"mt-auto",
"multi-docs-collapse-14",
"multi-docs-collapse-15",
"multi-file-collapse-1",
"mx-auto",
"mx-md-2",
@@ -403,6 +404,7 @@
"-theme",
"-theme-collapsed",
"TableOfContents",
"abbr",
"accordion",
"accordion-0",
"accordion-0-heading-0",
@@ -413,7 +415,7 @@
"accordion-0-item-2",
"alert",
"badge",
"body-docs-collapse-14",
"body-docs-collapse-15",
"body-file-collapse-1",
"breadcrumb",
"btn-webshare",
@@ -429,7 +431,7 @@
"docs",
"example",
"file",
"footer-docs-collapse-14",
"footer-docs-collapse-15",
"footer-file-collapse-1",
"formula-katex",
"icon",

View File

@@ -0,0 +1,64 @@
<!--
Creates an HTML element that shows the long form of an abbrevitation. The abbreviation data is centrally stored in a
data file. By default, the shortcode uses "abbr.yaml" with translation support.
The data file is expected to store key-value pairs, where "id" is the lower-case abbrevation and "long" its long
form. The following example illustrates this using YML:
- id: css
long: "Cascading Style Sheets"
The shortcode supports the following arguments:
"key" Required case-insensitive key of the abbreviation. In shorthand notation, this is the first (and
only) matched argument.
"data" Optional filename of the abbrevation input. It defaults to "abbr.yaml" with translation support.
You can omit the file extension. The file should reside in the "data" folder. The data supports
language extensions. For example, "abbr.en.yaml" refers to the English translation of the
abbrevation data. The filename "abbr.yaml" is used when no suitable translation is found.
-->
{{ $error := false }}
{{ $key := "" }}
{{- if .IsNamedParams }}{{ $key = .Get "key" }}{{ else }}{{ $key = .Get 0 }}{{ end }}
{{ if not $key -}}
{{ errorf "Missing param 'key': %s" .Position -}}
{{ $error = true }}
{{ end -}}
{{- $data := .Get "data" | default "abbr" -}}
{{ if not $data -}}
{{ errorf "Missing param 'data': %s" .Position -}}
{{ $error = true }}
{{ end -}}
{{ if not $error }}
{{/* Try language-specific file first */}}
{{ $path := path.Join (path.Dir $data) (printf "%s.%s" (path.BaseName $data) .Page.Language.Lang) (path.Ext $data) }}
{{ $entries := index site.Data $path }}
{{/* Use exact provided path as backup */}}
{{ if not $entries -}}
{{ $entries = index site.Data $data }}
{{ end }}
{{ if not $entries -}}
{{ errorf "Invalid abbrevation data '%s': %s" $data .Position -}}
{{ $error = true }}
{{ end -}}
{{ $title := "" }}
{{ if not $error }}
{{ $elements := (where $entries "id" (lower $key)) }}
{{ if gt (len $elements) 0 }}
{{ $title = index (index $elements 0) "long" }}
{{ end -}}
{{ if not $title -}}
{{ errorf "Cannot find value for '%s': %s" $key .Position -}}
{{ $error = true }}
{{ end -}}
{{ end }}
{{ if not $error }}
<abbr title="{{ $title }}">{{ $key }}</abbr>
{{ end }}
{{ end }}

View File

@@ -3,13 +3,16 @@
Show items ordered on a vertical timelime. The shortcode supports the following arguments:
"data" Required filename of the timeline input. You can omit the file extension. The file should reside in
the "data" folder.
the "data" folder. The data supports language extensions. For example, "timeline.en.yaml" refers to
the English translation of the timeline data. The filename "timeline.yaml" is used when no suitable
translation is found.
"background" Optional border color of the connector dots, defaults to the body background color. If set, uses a
subtle background color that is adaptive to the current color mode.
"class" Optional class attribute of the timeline's container.
-->
{{ $error := false }}
{{- $page := .Page -}}
{{- $data := .Get "data" -}}
{{ if not $data -}}
@@ -17,7 +20,13 @@
{{ $error = true }}
{{ end -}}
{{ $entries := index site.Data $data }}
{{/* Try language-specific file first */}}
{{ $path := path.Join (path.Dir $data) (printf "%s.%s" (path.BaseName $data) .Page.Language.Lang) (path.Ext $data) }}
{{ $entries := index site.Data $path }}
{{/* Use exact provided path as backup */}}
{{ if not $entries -}}
{{ $entries = index site.Data $data }}
{{ end }}
{{ if not $entries -}}
{{ errorf "Invalid timeline data '%s': %s" $data .Position -}}
{{ $error = true }}
@@ -51,6 +60,7 @@
<!-- Inline partial to render icon -->
{{- define "partials/timeline-panel.html" -}}
{{- $col := default 6 .col -}}
{{- $page := .page -}}
{{- $content := .content -}}
{{- $color := .color -}}
{{- $title := .title -}}
@@ -79,7 +89,7 @@
{{ $datestr := (partial "utilities/date.html" (dict "date" $date "format" "long")) -}}
<p class="mb-0"><small class="text-body-secondary text-uppercase">{{ $datestr -}}</small></p>
{{ end }}
<p class="mt-3 mb-0">{{ $content | .Page.RenderString }}</p>
<p class="mt-3 mb-0">{{ $content | $page.RenderString }}</p>
</div>
</div>
</div>
@@ -90,11 +100,11 @@
{{ range $index, $item := $entries }}
<div class="row timeline timeline-{{ $item.color }} timeline-dot g-0 ">
{{ if eq (mod $index 2) 1 }}
{{ partial "partials/timeline-panel.html" (dict "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "start") }}
{{ partial "partials/timeline-panel.html" (dict "page" $page "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "start") }}
{{ partial "partials/timeline-icon.html" (dict "icon" $item.icon "direction" "start") }}
{{ else }}
{{ partial "partials/timeline-icon.html" (dict "icon" $item.icon "direction" "end") }}
{{ partial "partials/timeline-panel.html" (dict "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end") }}
{{ partial "partials/timeline-panel.html" (dict "page" $page "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end") }}
{{ end }}
</div>
<div class="row timeline g-0 p-3"> </div>
@@ -106,7 +116,7 @@
{{ range $index, $item := $entries }}
<div class="row timeline-sm timeline-{{ $item.color }} timeline-dot g-0">
{{ partial "partials/timeline-icon.html" (dict "icon" $item.icon "direction" "end" "col" 3) }}
{{ partial "partials/timeline-panel.html" (dict "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end" "col" 9) }}
{{ partial "partials/timeline-panel.html" (dict "page" $page "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end" "col" 9) }}
</div>
<div class="row timeline-sm g-0 p-3"> </div>
{{ end }}

8904
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "0.19.0-alpha",
"version": "0.19.0-alpha3",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [
"hugo",
@@ -70,13 +70,13 @@
"autoprefixer": "^10.4.15",
"cssnano": "^6.0.1",
"cssnano-preset-advanced": "^6.0.1",
"eslint": "^8.47.0",
"eslint": "^8.48.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-n": "^16.0.2",
"eslint-plugin-promise": "^6.1.1",
"hugo-bin": "^0.113.0",
"markdownlint-cli2": "^0.9.0",
"markdownlint-cli2": "^0.9.2",
"npm-run-all": "^4.1.5",
"postcss-cli": "^10.1.0",
"purgecss-whitelister": "^2.4.0",