mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-14 13:33:09 +00:00
Compare commits
121 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
edc30ad0cd | ||
![]() |
b9780c5515 | ||
![]() |
9bb6578c61 | ||
![]() |
f360bbf3c6 | ||
![]() |
b749367999 | ||
![]() |
4bcb83a1a4 | ||
![]() |
97e6ec8f99 | ||
![]() |
023e552157 | ||
![]() |
17973c1090 | ||
![]() |
28b5bd8c58 | ||
![]() |
62f94369c9 | ||
![]() |
c9fc53a546 | ||
![]() |
946f8ca938 | ||
![]() |
ffbeb3ede7 | ||
![]() |
6dd4678339 | ||
![]() |
82090571d6 | ||
![]() |
63bfe64e71 | ||
![]() |
5121f92870 | ||
![]() |
1b95b3a265 | ||
![]() |
e8d926eca8 | ||
![]() |
2076081405 | ||
![]() |
da5b898250 | ||
![]() |
cf2f806820 | ||
![]() |
3ebbea542b | ||
![]() |
cce963aaba | ||
![]() |
4e6156cae0 | ||
![]() |
457f122861 | ||
![]() |
d94b54b90f | ||
![]() |
834ac4744b | ||
![]() |
2716af78be | ||
![]() |
3d37a93336 | ||
![]() |
1d976cb7df | ||
![]() |
4e2a5a39e9 | ||
![]() |
63ef832ab4 | ||
![]() |
f480dfa6b4 | ||
![]() |
bd85cabce9 | ||
![]() |
76a5408bda | ||
![]() |
61537afb93 | ||
![]() |
12417340f2 | ||
![]() |
b7533957b2 | ||
![]() |
15512c9448 | ||
![]() |
f69efa7ec8 | ||
![]() |
f3c392760a | ||
![]() |
d59e6ea87b | ||
![]() |
476d36d41c | ||
![]() |
0ccc0c64f4 | ||
![]() |
c5b4db6141 | ||
![]() |
6d0f917a0e | ||
![]() |
497dbe6bce | ||
![]() |
1da8133e09 | ||
![]() |
b3354a35ad | ||
![]() |
827fe5b5e1 | ||
![]() |
fc98b2d768 | ||
![]() |
dd5c6886cd | ||
![]() |
72f6f5d260 | ||
![]() |
d54fd6abf8 | ||
![]() |
5c75a78a3d | ||
![]() |
653c2b9d4b | ||
![]() |
dba91ad560 | ||
![]() |
108672e9a1 | ||
![]() |
18499d12c5 | ||
![]() |
79e97f0b5b | ||
![]() |
dba7ad3e09 | ||
![]() |
d260ada9ec | ||
![]() |
1503937c48 | ||
![]() |
585f4d7c5c | ||
![]() |
b125085315 | ||
![]() |
ee605fb4eb | ||
![]() |
2e14d200ed | ||
![]() |
de28b1b2e3 | ||
![]() |
467815e8d5 | ||
![]() |
98687a0ec1 | ||
![]() |
bc92818c53 | ||
![]() |
3fd6806549 | ||
![]() |
3f76ed2f59 | ||
![]() |
c4b9f91376 | ||
![]() |
c797a2f7a8 | ||
![]() |
c23ceafddd | ||
![]() |
e0b1b0250c | ||
![]() |
ce54758f36 | ||
![]() |
a80efa9578 | ||
![]() |
04bad29146 | ||
![]() |
8816c0c40e | ||
![]() |
b6c9ce4a9f | ||
![]() |
c8d16104d5 | ||
![]() |
215d125032 | ||
![]() |
ccdf4ab391 | ||
![]() |
8bd7d68d2e | ||
![]() |
03f1df615e | ||
![]() |
86ee2d3d2f | ||
![]() |
9c608b0583 | ||
![]() |
bdc84fb36d | ||
![]() |
4dda37ad3d | ||
![]() |
7559010b83 | ||
![]() |
75644ae046 | ||
![]() |
994ffe5ab5 | ||
![]() |
1dc016a6f8 | ||
![]() |
44e3b31c67 | ||
![]() |
3cbfd60098 | ||
![]() |
fc0715aa97 | ||
![]() |
84fff0fe8b | ||
![]() |
153ef9bf1f | ||
![]() |
bbe8f3a32c | ||
![]() |
eb7c9b5c3c | ||
![]() |
90e73ed010 | ||
![]() |
e613017c13 | ||
![]() |
6404bb84ed | ||
![]() |
55ec9acccf | ||
![]() |
0197b79427 | ||
![]() |
828e531b52 | ||
![]() |
23279d9710 | ||
![]() |
0caf473897 | ||
![]() |
8e68534b28 | ||
![]() |
0f07ccfd3f | ||
![]() |
77fad02da7 | ||
![]() |
7a9cb1b2ca | ||
![]() |
d82ed79989 | ||
![]() |
ff82ded064 | ||
![]() |
78167f2d03 | ||
![]() |
80f2084822 | ||
![]() |
a7d67e993f |
15
.github/workflows/auto-merge.yml
vendored
15
.github/workflows/auto-merge.yml
vendored
@@ -16,27 +16,24 @@ jobs:
|
||||
uses: dependabot/fetch-metadata@v1
|
||||
with:
|
||||
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
- name: Enable auto-merge for Dependabot PRs
|
||||
run: gh pr merge --auto --merge "$PR_URL"
|
||||
env:
|
||||
PR_URL: ${{github.event.pull_request.html_url}}
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||
|
||||
- name: Approve patch and minor updates
|
||||
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' || steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor'}}
|
||||
run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a patch or minor update**"
|
||||
env:
|
||||
PR_URL: ${{github.event.pull_request.html_url}}
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||
- name: Approve major updates of development dependencies
|
||||
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:development'}}
|
||||
run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a major update of a dependency used only in development**"
|
||||
env:
|
||||
PR_URL: ${{github.event.pull_request.html_url}}
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||
- name: Comment on major updates of non-development dependencies
|
||||
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:production'}}
|
||||
|
||||
- name: Comment on major updates of any dependencies
|
||||
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major'}}
|
||||
run: |
|
||||
gh pr comment $PR_URL --body "I'm **not approving** this PR because **it includes a major update of a dependency used in production**"
|
||||
gh pr comment $PR_URL --body "I'm **not approving** this PR because **it includes a major update of a dependency**"
|
||||
gh pr edit $PR_URL --add-label "requires-manual-qa"
|
||||
env:
|
||||
PR_URL: ${{github.event.pull_request.html_url}}
|
||||
|
30
.github/workflows/build.yml
vendored
30
.github/workflows/build.yml
vendored
@@ -1,30 +0,0 @@
|
||||
name: build
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- v*
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-latest, windows-latest, ubuntu-latest]
|
||||
node-version: [16.x, 18.x, 20.x]
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
- run: npm ci
|
||||
- run: npm run build
|
||||
- run: npm run build:example
|
78
.github/workflows/lint-build.yml
vendored
Normal file
78
.github/workflows/lint-build.yml
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
name: Lint & build
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- v*
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
env:
|
||||
CACHE_KEY: 'hugo-hinode'
|
||||
CACHE_PATH_DEBIAN: '/tmp/hugo_cache_runner'
|
||||
CACHE_PATH_WIN: '~\AppData\Local\hugo_cache'
|
||||
CACHE_PATH_MAC: '/Users/runner/Library/Caches/hugo_cache'
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: lts/*
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
|
||||
- name: Perform clean install of npm
|
||||
run: npm ci
|
||||
|
||||
- name: Lint the source files
|
||||
run: npm run lint
|
||||
|
||||
build:
|
||||
needs: lint
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-latest, windows-latest, ubuntu-latest]
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
node-version: [16.x, 18.x, 20.x]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
|
||||
- name: Perform clean install of npm
|
||||
run: npm ci
|
||||
|
||||
# Cache Hugo cachedir and resourcedir (configured in config/ci/hugo.toml) for each OS
|
||||
# No additional cache invalidation is needed, Hugo uses checksums itself
|
||||
- name: Use Hugo cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ runner.os == 'Windows' && env.CACHE_PATH_WIN || runner.os == 'macOS' && env.CACHE_PATH_MAC || env.CACHE_PATH_DEBIAN }}
|
||||
key: ${{ runner.os }}-${{ env.CACHE_KEY }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-${{ env.CACHE_KEY }}
|
||||
|
||||
- name: Build main site
|
||||
run: npm run build:cache
|
||||
|
||||
# The example site is to be published to demo.gethinode.com
|
||||
- name: Build example site
|
||||
run: npm run build:example:ci
|
31
.github/workflows/lint.yml
vendored
31
.github/workflows/lint.yml
vendored
@@ -1,31 +0,0 @@
|
||||
name: lint
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- v*
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x, 18.x, 20.x]
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
|
||||
- run: npm ci --ignore-scripts
|
||||
- run: npm run lint
|
61
.github/workflows/mod-update.yml
vendored
Normal file
61
.github/workflows/mod-update.yml
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
name: Update Hugo dependencies
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 3 * * *' # run daily at 03:00 AM
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
update-mod:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: lts/*
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
|
||||
- name: Perform clean install of npm
|
||||
run: npm ci
|
||||
|
||||
- name: Update Hugo module dependencies
|
||||
id: mod-updates
|
||||
run: |
|
||||
MOD_OUTPUT=$(npm run mod:update 2>&1)
|
||||
echo "$MOD_OUTPUT"
|
||||
MOD_UPDATES=$(echo "$MOD_OUTPUT" | grep '^go: upgraded' | sed 's/go: / - /' | sort -u)
|
||||
echo 'MOD_UPDATES<<EOF' >> $GITHUB_OUTPUT
|
||||
echo "$MOD_UPDATES" >> "$GITHUB_OUTPUT"
|
||||
echo 'EOF' >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: gethinode-actions/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.HUGO_MOD_PR }}
|
||||
commit-message: 'fix: update Hugo module dependencies'
|
||||
committer: GitHub <noreply@github.com>
|
||||
branch: hugo-mod-dependencies
|
||||
delete-branch: true
|
||||
title: 'Update Hugo module dependencies'
|
||||
body: |
|
||||
This PR is auto-generated by [create-pull-request][1].
|
||||
|
||||
Changes to go.mod:
|
||||
|
||||
${{ steps.mod-updates.outputs.MOD_UPDATES }}
|
||||
|
||||
[1]: https://github.com/peter-evans/create-pull-request
|
||||
labels: dependencies
|
||||
add-paths: |
|
||||
go.mod
|
||||
go.sum
|
||||
**/go.mod
|
||||
**/go.sum
|
53
.github/workflows/npm-publish.yml
vendored
53
.github/workflows/npm-publish.yml
vendored
@@ -1,35 +1,40 @@
|
||||
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
|
||||
|
||||
name: Node.js Package
|
||||
# This workflow will run tests using node and then publish a package to npmjs.org when a release is created
|
||||
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
|
||||
name: Publish package to npmjs
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
branches: [ main ]
|
||||
release:
|
||||
types: [created]
|
||||
types: [published]
|
||||
|
||||
env:
|
||||
REGISTRY_URL: 'https://registry.npmjs.org/'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
- run: npm ci
|
||||
- run: npm test
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
node-version: [20.x]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
publish-npm:
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup .npmrc file to publish to npm
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
registry-url: https://registry.npmjs.org/
|
||||
- run: npm ci
|
||||
- run: npm publish
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: ${{ env.REGISTRY_URL }}
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
|
||||
- name: Perform clean install of npm
|
||||
run: npm ci
|
||||
|
||||
- name: Publish package to npm
|
||||
run: npm publish
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
37
.github/workflows/update.yml
vendored
37
.github/workflows/update.yml
vendored
@@ -1,37 +0,0 @@
|
||||
name: Update Hugo Dependencies
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 3 * * *' # run daily at 03:00 AM
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
update-dep:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: "lts/*"
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
- name: Update Hugo module dependencies
|
||||
run: npm run mod:update
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.HUGO_MOD_PR }}
|
||||
commit-message: 'fix: update Hugo module dependencies'
|
||||
branch: hugo-mod-dependencies
|
||||
delete-branch: true
|
||||
title: 'Update Hugo module dependencies'
|
||||
body: >
|
||||
This PR is auto-generated by
|
||||
[create-pull-request](https://github.com/peter-evans/create-pull-request).
|
||||
labels: dependencies
|
@@ -31,5 +31,5 @@ defaultMarkdownHandler = "goldmark"
|
||||
block = true
|
||||
[goldmark.renderer]
|
||||
hardWraps = false
|
||||
unsafe = true
|
||||
unsafe = false
|
||||
xhtml = false
|
@@ -27,6 +27,7 @@
|
||||
[debugging]
|
||||
showJS = false
|
||||
showSCSS = false
|
||||
purgeHTMLComments = false
|
||||
# toml-docs-end debugging
|
||||
|
||||
# toml-docs-start docs
|
||||
@@ -55,6 +56,7 @@
|
||||
breadcrumb = true
|
||||
toc = true
|
||||
sidebar = true
|
||||
size = "md"
|
||||
# toml-docs-end navigation
|
||||
|
||||
# toml-docs-start messages
|
||||
|
23
config/ci/hugo.toml
Normal file
23
config/ci/hugo.toml
Normal file
@@ -0,0 +1,23 @@
|
||||
# cachedir default on POSIX: '/tmp/hugo_cache_runner'
|
||||
# cachedir default on Windows: '~\AppData\Local\hugo_cache'
|
||||
# cachedir default on macOS: '/Users/runner/Library/Caches/hugo_cache'
|
||||
|
||||
[caches]
|
||||
[caches.assets]
|
||||
dir = ':cacheDir/resources/_gen' # map to cacheDir instead of resourceDir to utilize GitHub action/cache
|
||||
maxAge = -1
|
||||
[caches.getcsv]
|
||||
dir = ':cacheDir/:project'
|
||||
maxAge = -1
|
||||
[caches.getjson]
|
||||
dir = ':cacheDir/:project'
|
||||
maxAge = -1
|
||||
[caches.getresource]
|
||||
dir = ':cacheDir/:project'
|
||||
maxAge = -1
|
||||
[caches.images]
|
||||
dir = ':cacheDir/resources/_gen' # map to cacheDir instead of resourceDir to utilize GitHub action/cache
|
||||
maxAge = -1
|
||||
[caches.modules]
|
||||
dir = ':cacheDir/modules'
|
||||
maxAge = -1
|
@@ -1,3 +1,4 @@
|
||||
resourcedir = '../resources/'
|
||||
title = "Hinode"
|
||||
copyright = "Copyright © 2023 Mark Dumay."
|
||||
paginate = 9
|
||||
|
@@ -31,5 +31,5 @@ defaultMarkdownHandler = "goldmark"
|
||||
block = true
|
||||
[goldmark.renderer]
|
||||
hardWraps = false
|
||||
unsafe = true
|
||||
unsafe = false
|
||||
xhtml = false
|
@@ -21,6 +21,7 @@
|
||||
[debugging]
|
||||
showJS = false
|
||||
showSCSS = false
|
||||
purgeHTMLComments = true # prevents a Goldmark warning when processing HTML comments (as used by markdownlint)
|
||||
|
||||
[docs]
|
||||
basePath = "/" # TODO: replace
|
||||
@@ -44,6 +45,7 @@
|
||||
breadcrumb = true
|
||||
toc = true
|
||||
sidebar = true
|
||||
size = "md"
|
||||
|
||||
[messages]
|
||||
placement = "bottom-right"
|
||||
|
22
exampleSite/config/ci/hugo.toml
Normal file
22
exampleSite/config/ci/hugo.toml
Normal file
@@ -0,0 +1,22 @@
|
||||
# cachedir default on POSIX: '/tmp/hugo_cache_runner'
|
||||
# cachedir default on Windows: '~\AppData\Local\hugo_cache'
|
||||
|
||||
[caches]
|
||||
[caches.assets]
|
||||
dir = ':cacheDir/resources/_gen' # map to cacheDir instead of resourceDir to utilize GitHub action/cache
|
||||
maxAge = -1
|
||||
[caches.getcsv]
|
||||
dir = ':cacheDir/:project'
|
||||
maxAge = -1
|
||||
[caches.getjson]
|
||||
dir = ':cacheDir/:project'
|
||||
maxAge = -1
|
||||
[caches.getresource]
|
||||
dir = ':cacheDir/:project'
|
||||
maxAge = -1
|
||||
[caches.images]
|
||||
dir = ':cacheDir/resources/_gen' # map to cacheDir instead of resourceDir to utilize GitHub action/cache
|
||||
maxAge = -1
|
||||
[caches.modules]
|
||||
dir = ':cacheDir/modules'
|
||||
maxAge = -1
|
@@ -6,29 +6,19 @@ updated: 2023-08-02
|
||||
showComments: false
|
||||
---
|
||||
|
||||
<p class="text-center"><svg class="img-fluid w-50"><use href="/img/logo_var.svg#logo"></use></svg></p>
|
||||
{{< image src="/img/logo_var.svg#logo" class="img-fluid w-50" wrapper="text-center" >}}
|
||||
|
||||
<section class="section section-sm mt-5 mb-5">
|
||||
<div class="container-fluid">
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="col-lg-4">
|
||||
{{< icon fab bootstrap fa-2xl >}}
|
||||
<h2 class="h4">Bootstrap framework</h2>
|
||||
<p>Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source Sass files.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
{{< icon fas magnifying-glass fa-2xl >}}
|
||||
<h2 class="h4">Full text search</h2>
|
||||
<p>Search your site with FlexSearch, a full-text search library with zero dependencies.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
{{< icon fas code fa-2xl >}}
|
||||
<h2 class="h4">Development tools</h2>
|
||||
<p>Use Node Package Manager to automate the build process and to keep track of dependencies.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{< card-group class="text-center border-0" padding="3" >}}
|
||||
{{< card title="Bootstrap framework" icon="fab bootstrap" >}}
|
||||
Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source Sass files.
|
||||
{{< /card >}}
|
||||
{{< card title="Full text search" icon="fas magnifying-glass" >}}
|
||||
Search your site with FlexSearch, a full-text search library with zero dependencies.
|
||||
{{< /card >}}
|
||||
{{< card title="Development tools" icon="fas code" >}}
|
||||
Use Node Package Manager to automate the build process and to keep track of dependencies.
|
||||
{{< /card >}}
|
||||
{{< /card-group >}}
|
||||
|
||||
Additional features include:
|
||||
|
||||
|
@@ -22,11 +22,10 @@ As an example, the following shortcode displays an accordion with three elements
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* accordion */>}}
|
||||
{{</* accordion-item header="Accordion Item #1" show="true" */>}}
|
||||
This is the first item's accordion body. It supports HTML content. The item is shown by adding the value
|
||||
<code>show</code> to the <code>class</code> argument.
|
||||
This is the first item's accordion body. It supports HTML content, if enabled in the goldmark renderer. The item is shown by adding the value `show` to the `class` argument.
|
||||
{{</* /accordion-item */>}}
|
||||
{{</* accordion-item header="Accordion Item #2" */>}}
|
||||
This is the second item's accordion body. It supports HTML content too.
|
||||
This is the second item's accordion body.
|
||||
{{</* /accordion-item */>}}
|
||||
{{</* accordion-item header="Accordion Item #3" */>}}
|
||||
This is the third item's accordion body.
|
||||
@@ -102,7 +101,28 @@ As an example, the following shortcode displays a stacked card that links to the
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* card path="about" padding="3" class="w-50" color="body-tertiary" header="publication" footer="none" */>}}
|
||||
{{</* card path="about" padding="3" class="col-6 mx-auto" color="body-tertiary" header="publication" footer="none" /*/>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Card group
|
||||
|
||||
As an example, the following shortcode displays a card group of three elements.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* card-group padding="3" */>}}
|
||||
{{</* card title="Bootstrap framework" icon="fab bootstrap" */>}}
|
||||
Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source
|
||||
Sass files.
|
||||
{{</* /card */>}}
|
||||
{{</* card title="Full text search" icon="fas magnifying-glass" */>}}
|
||||
Search your site with FlexSearch, a full-text search library with zero dependencies.
|
||||
{{</* /card */>}}
|
||||
{{</* card title="Development tools" icon="fas code" */>}}
|
||||
Use Node Package Manager to automate the build process and to keep track of dependencies.
|
||||
{{</* /card */>}}
|
||||
{{</* /card-group */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
@@ -250,11 +270,10 @@ As an example, the following shortcode displays a tab group with vertically alig
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* nav type="pills" vertical="true" */>}}
|
||||
{{</* nav-item header="Nav Item #1" show="true" */>}}
|
||||
This is the first item's nav body. It supports HTML content. The item is shown by adding the value
|
||||
<code>show</code> to the <code>class</code> argument.
|
||||
This is the first item's nav body. It supports HTML content, if enabled in the goldmark renderer. The item is shown by adding the value `show` to the `class` argument.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* nav-item header="Nav Item #2" */>}}
|
||||
This is the second item's nav body. It too supports HTML content.
|
||||
This is the second item's nav body.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* nav-item header="Nav Item #3" */>}}
|
||||
This is the third item's nav body.
|
||||
|
@@ -7,30 +7,19 @@ updated: 2023-08-02
|
||||
showComments: false
|
||||
---
|
||||
|
||||
<p class="text-center"><svg class="img-fluid w-50"><use href="/img/logo_var.svg#logo"></use></svg></p>
|
||||
{{< image src="/img/logo_var.svg#logo" class="img-fluid w-50" wrapper="text-center" >}}
|
||||
|
||||
<section class="section section-sm mt-5">
|
||||
<div class="container-fluid">
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="col-lg-4">
|
||||
{{< icon fab bootstrap fa-2xl >}}
|
||||
<h2 class="h4">Framework Bootstrap</h2>
|
||||
<p>Créez des sites rapides et réactifs avec Bootstrap 5. Personnalisez facilement votre site avec les fichiers source Sass.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
{{< icon fas magnifying-glass fa-2xl >}}
|
||||
<h2 class="h4">Recherche en texte intégral</h2>
|
||||
<p>Recherchez votre site avec FlexSearch, une bibliothèque de recherche en texte intégral avec zéro dépendances.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
{{< icon fas code fa-2xl >}}
|
||||
<h2 class="h4">Outils de développement</h2>
|
||||
<p>Utilisez Node Package Manager pour automatiser le processus de construction et suivre les dépendances.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{< card-group class="text-center border-0" padding="3" >}}
|
||||
{{< card title="Framework Bootstrap" icon="fab bootstrap" >}}
|
||||
Créez des sites rapides et réactifs avec Bootstrap 5. Personnalisez facilement votre site avec les fichiers source Sass.
|
||||
{{< /card >}}
|
||||
{{< card title="Recherche en texte intégral" icon="fas magnifying-glass" >}}
|
||||
Recherchez votre site avec FlexSearch, une bibliothèque de recherche en texte intégral avec zéro dépendances.
|
||||
{{< /card >}}
|
||||
{{< card title="Outils de développement" icon="fas code" >}}
|
||||
Utilisez Node Package Manager pour automatiser le processus de construction et suivre les dépendances.
|
||||
{{< /card >}}
|
||||
{{< /card-group >}}
|
||||
|
||||
Les fonctionnalités supplémentaires incluent:
|
||||
|
||||
|
@@ -7,30 +7,20 @@ updated: 2023-08-02
|
||||
showComments: false
|
||||
---
|
||||
|
||||
<p class="text-center"><svg class="img-fluid w-50"><use href="/img/logo_var.svg#logo"></use></svg></p>
|
||||
|
||||
<section class="section section-sm mt-5">
|
||||
<div class="container-fluid">
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="col-lg-4">
|
||||
{{< icon fab bootstrap fa-2xl >}}
|
||||
<h2 class="h4">Bootstrap raamwerk</h2>
|
||||
<p>Bouw snelle websites geschikt voor mobiele en desktop schermen met Bootstrap 5. Pas de site eenvoudig aan met bronbestanden in Sass.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
{{< icon fas magnifying-glass fa-2xl >}}
|
||||
<h2 class="h4">Volledig doorzoekbaar</h2>
|
||||
<p>Doorzoek je site met FlexSearch, een software bibliotheek zonder afhankelijkheden.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
{{< icon fas code fa-2xl >}}
|
||||
<h2 class="h4">Ontwikkelgereedschap</h2>
|
||||
<p>Gebruik Node Package Manager om het bouwproces inclusief versiebeheer volledig te automatiseren.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{< image src="/img/logo_var.svg#logo" class="img-fluid w-50" wrapper="text-center" >}}
|
||||
|
||||
{{< card-group class="text-center border-0" padding="3" >}}
|
||||
{{< card title="Bootstrap raamwerk" icon="fab bootstrap" >}}
|
||||
Bouw snelle websites geschikt voor mobiele en desktop schermen met Bootstrap 5. Pas de site eenvoudig aan met bronbestanden in Sass.
|
||||
{{< /card >}}
|
||||
{{< card title="Volledig doorzoekbaar" icon="fas magnifying-glass" >}}
|
||||
Doorzoek je site met FlexSearch, een software bibliotheek zonder afhankelijkheden.
|
||||
{{< /card >}}
|
||||
{{< card title="Ontwikkelgereedschap" icon="fas code" >}}
|
||||
Gebruik Node Package Manager om het bouwproces inclusief versiebeheer volledig te automatiseren.
|
||||
{{< /card >}}
|
||||
{{< /card-group >}}
|
||||
|
||||
Overige functies:
|
||||
|
||||
|
@@ -10,6 +10,7 @@ github.com/gethinode/mod-fontawesome v1.2.4 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t
|
||||
github.com/gethinode/mod-fontawesome v1.2.4/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.5 h1:RqkLRj6+s+gM4nKd0IwNMMDA8cRmxfp0fxkVH4FdAGU=
|
||||
github.com/gethinode/mod-fontawesome v1.2.5/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-katex v1.0.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-katex v1.0.2 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPKdAXk=
|
||||
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-leaflet v0.3.4 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp4ia4r4=
|
||||
|
@@ -27,13 +27,13 @@
|
||||
"link",
|
||||
"meta",
|
||||
"nav",
|
||||
"nil",
|
||||
"noscript",
|
||||
"ol",
|
||||
"p",
|
||||
"path",
|
||||
"pre",
|
||||
"script",
|
||||
"section",
|
||||
"small",
|
||||
"span",
|
||||
"strong",
|
||||
@@ -162,8 +162,8 @@
|
||||
"fa",
|
||||
"fa-10x",
|
||||
"fa-2x",
|
||||
"fa-2xl",
|
||||
"fa-2xs",
|
||||
"fa-4x",
|
||||
"fa-arrow-left",
|
||||
"fa-arrow-right",
|
||||
"fa-bootstrap",
|
||||
@@ -213,11 +213,11 @@
|
||||
"fw-bold",
|
||||
"fw-semibold",
|
||||
"g-0",
|
||||
"g-3",
|
||||
"gap-2",
|
||||
"gap-3",
|
||||
"gradient",
|
||||
"h-100",
|
||||
"h4",
|
||||
"h6",
|
||||
"heading",
|
||||
"highlight",
|
||||
@@ -258,7 +258,7 @@
|
||||
"mt-3",
|
||||
"mt-5",
|
||||
"mt-auto",
|
||||
"multi-docs-collapse-14",
|
||||
"multi-docs-collapse-15",
|
||||
"multi-file-collapse-1",
|
||||
"mx-auto",
|
||||
"mx-md-2",
|
||||
@@ -328,8 +328,8 @@
|
||||
"row-cols-sm-3",
|
||||
"row-cols-sm-4",
|
||||
"search",
|
||||
"section",
|
||||
"section-sm",
|
||||
"search-input",
|
||||
"search-suggestions",
|
||||
"shadow",
|
||||
"show",
|
||||
"slide",
|
||||
@@ -412,13 +412,14 @@
|
||||
"accordion-0-item-2",
|
||||
"alert",
|
||||
"badge",
|
||||
"body-docs-collapse-14",
|
||||
"body-docs-collapse-15",
|
||||
"body-file-collapse-1",
|
||||
"breadcrumb",
|
||||
"btn-webshare",
|
||||
"button",
|
||||
"button-group",
|
||||
"card",
|
||||
"card-group",
|
||||
"carousel",
|
||||
"carousel-0",
|
||||
"collapse",
|
||||
@@ -427,7 +428,7 @@
|
||||
"docs",
|
||||
"example",
|
||||
"file",
|
||||
"footer-docs-collapse-14",
|
||||
"footer-docs-collapse-15",
|
||||
"footer-file-collapse-1",
|
||||
"formula-katex",
|
||||
"icon",
|
||||
@@ -447,9 +448,7 @@
|
||||
"navbar-0-collapse",
|
||||
"navbar-sample-collapse",
|
||||
"release",
|
||||
"search",
|
||||
"spinner",
|
||||
"suggestions",
|
||||
"timeline",
|
||||
"toast",
|
||||
"toast-container",
|
||||
|
@@ -155,6 +155,8 @@
|
||||
"row-cols-sm-3",
|
||||
"row-cols-sm-4",
|
||||
"search",
|
||||
"search-input",
|
||||
"search-suggestions",
|
||||
"shadow",
|
||||
"svg-inline--fa",
|
||||
"switch-mode-collapsed",
|
||||
@@ -177,8 +179,6 @@
|
||||
"-theme",
|
||||
"-theme-collapsed",
|
||||
"navbar-0-collapse",
|
||||
"search",
|
||||
"suggestions",
|
||||
"toast-container",
|
||||
"toast-copied-code-message"
|
||||
]
|
||||
|
@@ -30,7 +30,8 @@
|
||||
"page" .
|
||||
"fixed" (string .Site.Params.navigation.fixed)
|
||||
"color" (.Site.Params.navigation.color)
|
||||
"style" (default "light" .Site.Params.navigation.style))
|
||||
"style" (default "light" .Site.Params.navigation.style)
|
||||
"size" (default "md" .Site.Params.navigation.size))
|
||||
-}}
|
||||
</div>
|
||||
{{ if .IsHome -}}
|
||||
|
@@ -83,7 +83,8 @@
|
||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "21x9" "outerClass" "img-wrap" "innerClass" "rounded" "title" .Params.title "caption" $credits) -}}
|
||||
{{ end -}}
|
||||
{{ end }}
|
||||
{{ .Content }}
|
||||
|
||||
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent )}}
|
||||
{{ end -}}
|
||||
|
||||
{{ define "partials/footer.html" -}}
|
||||
|
@@ -7,6 +7,7 @@
|
||||
The shortcode supports the following arguments:
|
||||
"page" Required context of the current page.
|
||||
"list" Required array of pages.
|
||||
"cards" Optional string of rendered cards.
|
||||
"max" Required maximum number of cards to display.
|
||||
"cols" Required number of columns for the grid, must be a value between 1 and 5.
|
||||
"title" Optional title of the card group.
|
||||
@@ -30,21 +31,61 @@
|
||||
-->
|
||||
|
||||
{{- $page := .page -}}
|
||||
{{- if ne (printf "%T" $page) "*hugolib.pageState" -}}
|
||||
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'page'" -}}
|
||||
|
||||
{{- if not (in (slice "*hugolib.pageState" "*hugolib.pageForShortcode") (printf "%T" $page)) -}}
|
||||
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'page': %T" $page -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $supportedTypes := slice "page.Pages" "resource.Resources" -}}
|
||||
{{ $list := .list }}
|
||||
{{- if not (in $supportedTypes (printf "%T" $list)) -}}
|
||||
{{ warnf "Type: %T" $list }}
|
||||
{{ $pages := .list }}
|
||||
{{- if and $pages (not (in $supportedTypes (printf "%T" $pages))) -}}
|
||||
{{ warnf "Type: %T" $pages }}
|
||||
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'list'" -}}
|
||||
{{- end -}}
|
||||
{{ $cards := .cards }}
|
||||
|
||||
{{- $paginate := false -}}
|
||||
{{- with .paginate -}}
|
||||
{{- if ne (printf "%T" .) "bool" -}}
|
||||
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'paginate'" -}}
|
||||
{{- end -}}
|
||||
{{- $paginate = . -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ $paginator := "" }}
|
||||
{{ if $paginate }}
|
||||
{{ $paginator = $page.Paginate $pages }}
|
||||
{{ $pages = first $paginator.PageSize (after (mul (sub $paginator.PageNumber 1) $paginator.PageSize) $pages) }}
|
||||
{{ end }}
|
||||
{{ $list := slice }}
|
||||
{{ range $index, $element := $pages }}
|
||||
{{ $params := dict }}
|
||||
<!-- regular page -->
|
||||
{{- if $element.RelPermalink -}}
|
||||
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
||||
<!-- headless page -->
|
||||
{{- else -}}
|
||||
{{- $thumbnail := (or (and (reflect.IsMap $element.Params.Thumbnail) $element.Params.Thumbnail.url) $element.Params.Thumbnail) -}}
|
||||
{{- $params = merge $params (dict
|
||||
"title" $element.Title
|
||||
"href" $element.RelPermalink
|
||||
"description" (partial "utilities/GetDescription.html" $element)
|
||||
"thumbnail" $thumbnail
|
||||
"icon" $element.Params.icon
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $list = $list | append $params }}
|
||||
{{ end }}
|
||||
|
||||
{{- $count := len $list -}}
|
||||
{{- $max := .max -}}
|
||||
{{- if ne (printf "%T" $max) "int" -}}
|
||||
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'max'" -}}
|
||||
{{- $max := $count -}}
|
||||
{{- with .max }}
|
||||
{{- if ne (printf "%T" .) "int" -}}
|
||||
{{- warnf "partial [assets/card-group.html] - Invalid value for param 'max': %s" . -}}
|
||||
{{- else -}}
|
||||
{{- $max = . -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $max = math.Min $max $count -}}
|
||||
|
||||
@@ -58,13 +99,6 @@
|
||||
{{- else if eq $cols 4 }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-4" -}}
|
||||
{{- else if eq $cols 5 }}{{ $colGrid = "row-cols-1 row-cols-sm-3 row-cols-md-5" }}{{ end -}}
|
||||
|
||||
{{- $paginate := false -}}
|
||||
{{- with .paginate -}}
|
||||
{{- if ne (printf "%T" .) "bool" -}}
|
||||
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'paginate'" -}}
|
||||
{{- end -}}
|
||||
{{- $paginate = . -}}
|
||||
{{- end -}}
|
||||
{{- if not $paginate -}}
|
||||
{{- $list = first $max $list -}}
|
||||
{{- end -}}
|
||||
@@ -89,13 +123,7 @@
|
||||
|
||||
{{- if and (eq $cols 1) (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
|
||||
|
||||
<div class="container-fluid p-4 px-xxl-0">
|
||||
{{ $paginator := "" }}
|
||||
{{ if $paginate }}
|
||||
{{ $paginator = $page.Paginate $list }}
|
||||
{{ $list = first $paginator.PageSize (after (mul (sub $paginator.PageNumber 1) $paginator.PageSize) $list) }}
|
||||
{{ end }}
|
||||
|
||||
<div class="container-fluid p-4 px-xxl-0 ">
|
||||
<div class="row {{ $colGrid }}">
|
||||
{{ range $index, $element := $list }}
|
||||
{{- $params := (dict
|
||||
@@ -106,19 +134,7 @@
|
||||
"footer" $footer
|
||||
"orientation" $orientation
|
||||
) -}}
|
||||
|
||||
{{- if $element.RelPermalink -}}
|
||||
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
||||
{{- else -}}
|
||||
{{- $thumbnail := (or (and (reflect.IsMap $element.Params.Thumbnail) $element.Params.Thumbnail.url) $element.Params.Thumbnail) -}}
|
||||
{{- $params = merge $params (dict
|
||||
"title" $element.Title
|
||||
"href" $element.RelPermalink
|
||||
"description" (partial "utilities/GetDescription.html" $element)
|
||||
"thumbnail" $thumbnail
|
||||
"icon" $element.Params.icon
|
||||
) -}}
|
||||
{{- end -}}
|
||||
{{- $params = merge $params $element }}
|
||||
|
||||
<div class="col pt-3 pb-3">
|
||||
{{- partial "assets/card.html" $params -}}
|
||||
@@ -129,6 +145,7 @@
|
||||
</div>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- print $cards | safeHTML }}
|
||||
</div>
|
||||
|
||||
{{ if $paginate }}
|
||||
|
@@ -37,7 +37,7 @@
|
||||
{{- else -}}
|
||||
<div>
|
||||
<p class="card-title fs-5 fw-bold">{{ $title }}</p>
|
||||
{{ with $description }}<p class="card-text mb-4 {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}}
|
||||
{{ with $description }}<p class="card-text mb-4">{{ . }}</p>{{ end -}}
|
||||
</div>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
@@ -2,14 +2,25 @@
|
||||
Render a local or remote image with responsive image sizing. Images are resized using default media breakpoints
|
||||
and are converted to webp format. The image is processed using the quality setting specified in the [imaging]
|
||||
section of the main config file (defaults to 75). A fallback image is provided for older browsers. The image is
|
||||
wrapped in a figure if a caption is provided, else the image is wrapped in a div with a ratio constraint. The
|
||||
partial supports the following arguments:
|
||||
"url": Required relative url of the image, e.g. "img/example.jpg"
|
||||
wrapped in a figure if a caption is provided, else the image is wrapped in a div with a ratio constraint.
|
||||
|
||||
If the url starts with 'http', the image is retrieved from an external location. Else, the url is matched with a
|
||||
page resource and site asset (in that order). The path of a remote image is rewritten to ensure processed files are
|
||||
stored in the final '/img' folder.
|
||||
|
||||
The partial supports the following bitmap image formats: "png", "jpeg", "gif", "tiff", "bmp", and "webp". Vector
|
||||
graphics of type "svg" are supported too, although these images do no support additional processing. This means
|
||||
the arguments "ratio" and "portrait" have no effect for vector images. Vector graphics support an optional anchor
|
||||
"#" in their url to denote a styling reference.
|
||||
|
||||
The partial supports the following arguments:
|
||||
"url": Required path or url of the image, e.g. "img/example.jpg"
|
||||
"mode": Optional flag indicating if the image should support color modes.
|
||||
"ratio": Optional ratio of the image, either "1x1", "3x2", "4x3", "16x9", or "21x9". If set, the image is
|
||||
resized and cropped to match the ratio. Else the original aspect ratio of the image is kept.
|
||||
resized and cropped to match the ratio. Else the original aspect ratio of the image is kept. Not
|
||||
applicable to vector graphics.
|
||||
"portrait": Optional flag to adjust the ratio from landscape to portrait. The image itself is not rotated, only
|
||||
the crop area is adjusted.
|
||||
the crop area is adjusted. Not applicable to vector graphics.
|
||||
"outerClass": Optional class attribute of the outer div element, e.g. "img-wrap".
|
||||
"innerClass": Optional class attribute of the inner img element, e.g. "rounded".
|
||||
"title": Optional alternate text of the image.
|
||||
@@ -171,13 +182,24 @@
|
||||
{{- $title := .title -}}
|
||||
{{- $caption := .caption -}}
|
||||
{{- $fallbackURL := "" -}}
|
||||
{{- $anchor := "" -}}
|
||||
{{- $imgset := "" -}}
|
||||
{{- $mode := .mode -}}
|
||||
{{- $modes := .modes -}}
|
||||
{{- $page := .page -}}
|
||||
{{- $isVector := false -}}
|
||||
|
||||
{{- $segments := split $url "#" -}}
|
||||
{{- if gt (len $segments) 2 -}}
|
||||
{{- errorf "Invalid path or url: %q" $url -}}
|
||||
{{- else if eq (len $segments) 2 }}
|
||||
{{- $url = index $segments 0 -}}
|
||||
{{- $anchor = index $segments 1 -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if hasSuffix $url "svg" -}}
|
||||
{{- $fallbackURL = $url -}}
|
||||
{{- $isVector = true -}}
|
||||
{{- else -}}
|
||||
{{- $img := partial "utilities/GetImage.html" (dict "url" $url "page" $page) -}}
|
||||
{{- if $img -}}
|
||||
@@ -200,6 +222,7 @@
|
||||
{{- if $caption -}}
|
||||
<figure {{ with $outerClass }}class="{{ . }}"{{ end }}>
|
||||
{{ end }}
|
||||
{{- if not $isVector -}}
|
||||
<div class="{{ if not $caption }}{{ $outerClass }}{{ end }}">
|
||||
<img class="img-fluid {{ $innerClass }}"
|
||||
{{ with $imgset -}}
|
||||
@@ -209,6 +232,13 @@
|
||||
src="{{ $fallbackURL }}"
|
||||
alt="{{ $title }}">
|
||||
</div>
|
||||
{{ else }}
|
||||
<div class="{{ if not $caption }}{{ $outerClass }}{{ end }}">
|
||||
<svg class="{{ $innerClass }}">
|
||||
<use href="{{ $fallbackURL }}{{ with $anchor }}#{{ . }}{{ end }}"></use>
|
||||
</svg>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{- if $caption -}}
|
||||
<figcaption class="figure-caption">{{ $caption | safeHTML }}</figcaption>
|
||||
</figure>
|
||||
|
@@ -4,7 +4,7 @@
|
||||
including a color mode switcher, version switcher, and collapse panel.
|
||||
"page" Required object reference to the current page.
|
||||
"menus" Optional name of the menu configuration, defaults to "main".
|
||||
"size" Optional size of the button, either "sm", "md" (default), or "lg".
|
||||
"size" Optional breakpoint of the navbar toggler, either "xs", "sm", "md" (default), "lg", or "xl".
|
||||
"fixed" Optional flag to indicate the navbar should stick to the top, defaults to false.
|
||||
"color" Optional background color of the navbar, either "primary", "secondary", "success",
|
||||
"danger", "warning", "info", "white", "black", "body", or "body-tertiary". The default color is
|
||||
@@ -174,7 +174,32 @@
|
||||
{{- $enableLanguage := or $page.IsTranslated site.IsMultiLingual -}}
|
||||
|
||||
{{- $logo := site.Params.navigation.logo -}}
|
||||
{{- with .logo }}{{ $logo = . }}{{ end -}}
|
||||
{{- $logoLight := "" -}}
|
||||
{{- $logoDark := "" -}}
|
||||
{{- with .logo }}
|
||||
{{ $logo = . }}
|
||||
{{- end -}}
|
||||
{{- if $enableDarkMode -}}
|
||||
{{ $ext := path.Ext $logo -}}
|
||||
{{- $logoLight = printf "%s-light%s" (strings.TrimSuffix $ext $logo) $ext -}}
|
||||
{{- $logoDark = printf "%s-dark%s" (strings.TrimSuffix $ext $logo) $ext -}}
|
||||
{{- $light := fileExists (path.Join "/static" $logoLight) -}}
|
||||
{{- $dark := fileExists (path.Join "/static" $logoDark) -}}
|
||||
{{- if and $light (not $dark) -}}
|
||||
{{- warnf "partial [assets/navbar.html] - Missing file: %s" $logoDark -}}
|
||||
{{- $logoLight = "" -}}
|
||||
{{- $logoDark = "" -}}
|
||||
{{- end -}}
|
||||
{{- if and (not $light) $dark -}}
|
||||
{{- warnf "partial [assets/navbar.html] - Missing file: %s" $logoLight -}}
|
||||
{{- $logoLight = "" -}}
|
||||
{{- $logoDark = "" -}}
|
||||
{{- end -}}
|
||||
{{- if not (or $light $dark) -}}
|
||||
{{- $logoLight = "" -}}
|
||||
{{- $logoDark = "" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $title := site.Title -}}
|
||||
{{- if .title -}}
|
||||
@@ -214,7 +239,10 @@
|
||||
|
||||
<!-- Insert the brand logo or name -->
|
||||
<a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}">
|
||||
{{- if $logo -}}
|
||||
{{- if (and $logoLight $logoDark) -}}
|
||||
<img src="{{if $absoluteURL }}{{ absURL $logoLight }}{{ else }}{{ $logoLight }}{{ end }}" class="d-none-dark" alt="{{ $title }} logo" height="30">
|
||||
<img src="{{if $absoluteURL }}{{ absURL $logoDark }}{{ else }}{{ $logoDark }}{{ end }}" class="d-none-light" alt="{{ $title }} logo" height="30">
|
||||
{{- else if $logo -}}
|
||||
<img src="{{if $absoluteURL }}{{ absURL $logo }}{{ else }}{{ $logo }}{{ end }}" alt="{{ $title }} logo" height="30">
|
||||
{{- else -}}
|
||||
<span class="fw-bold">{{ $title }}</span>
|
||||
|
@@ -5,27 +5,29 @@
|
||||
{{ warnf "DEPRECATED: parameter `Params.home.socialCaption` has been deprecated in release v0.18"}}
|
||||
{{ end }}
|
||||
|
||||
{{- $tab := site.Params.main.externalLinks.tab -}}
|
||||
<div class="container-fluid">
|
||||
<div class="row row-cols-1 row-cols-sm-4 bg-primary p-3 bg-opacity-{{ .Site.Params.style.themeOpacity | default "25" | safeHTML }} align-items-center">
|
||||
<div class="col col-md-2 d-none d-md-block"></div>
|
||||
<div class="col col-sm-6 col-md-4">
|
||||
{{ if gt .Site.Menus.social 0 }}
|
||||
<div class="fs-3 fw-bold">{{ or .Site.Params.footer.socialTitle .Site.Params.social.title }}</div>
|
||||
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
|
||||
{{ end }}
|
||||
{{ if gt .Site.Menus.social 0 }}
|
||||
{{- $tab := site.Params.main.externalLinks.tab -}}
|
||||
<div class="container-fluid">
|
||||
<div class="row row-cols-1 row-cols-sm-4 bg-primary p-3 bg-opacity-{{ .Site.Params.style.themeOpacity | default "25" | safeHTML }} align-items-center">
|
||||
<div class="col col-md-2 d-none d-md-block"></div>
|
||||
<div class="col col-sm-6 col-md-4">
|
||||
{{ if gt .Site.Menus.social 0 }}
|
||||
<div class="fs-3 fw-bold">{{ or .Site.Params.footer.socialTitle .Site.Params.social.title }}</div>
|
||||
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="col text-sm-start text-center col-sm-6 col-md-4">
|
||||
{{ range .Site.Menus.social -}}
|
||||
<a href="{{ .URL }}" {{ if $tab }} target="_blank" rel="noopener noreferrer"{{ end }} aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
|
||||
{{ if hasPrefix .Pre "<i" }}
|
||||
{{ .Pre | safeHTML }}
|
||||
{{ else }}
|
||||
{{ partial "assets/icon.html" (dict "icon" (printf "%s fa-2x" .Pre) )}}
|
||||
{{ end }}
|
||||
</a>
|
||||
{{ end -}}
|
||||
</div>
|
||||
<div class="col col-md-2 d-none d-md-block"></div>
|
||||
</div>
|
||||
<div class="col text-sm-start text-center col-sm-6 col-md-4">
|
||||
{{ range .Site.Menus.social -}}
|
||||
<a href="{{ .URL }}" {{ if $tab }} target="_blank" rel="noopener noreferrer"{{ end }} aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
|
||||
{{ if hasPrefix .Pre "<i" }}
|
||||
{{ .Pre | safeHTML }}
|
||||
{{ else }}
|
||||
{{ partial "assets/icon.html" (dict "icon" (printf "%s fa-2x" .Pre) )}}
|
||||
{{ end }}
|
||||
</a>
|
||||
{{ end -}}
|
||||
</div>
|
||||
<div class="col col-md-2 d-none d-md-block"></div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
@@ -2,10 +2,14 @@
|
||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||
{{ if .Site.Params.favicon.logo -}}
|
||||
{{ $favicon := resources.Get .Site.Params.favicon.logo -}}
|
||||
{{ range $i := .Site.Params.favicon.sizes -}}
|
||||
{{ $image := $favicon.Resize (printf "%dx%d CatmullRom" $i $i) -}}
|
||||
<link rel="icon" type="image/png" sizes="{{$i}}x{{$i}}" href="{{ if $absoluteURL }}{{ $image.Permalink }}{{ else }}{{ $image.RelPermalink }}{{ end }}">
|
||||
{{ end -}}
|
||||
{{ $image := $favicon.Resize "180x CatmullRom" -}}
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ if $absoluteURL }}{{ $image.Permalink }}{{ else }}{{ $image.RelPermalink }}{{ end }}">
|
||||
{{- if $favicon -}}
|
||||
{{ range $i := .Site.Params.favicon.sizes -}}
|
||||
{{ $image := $favicon.Resize (printf "%dx%d CatmullRom" $i $i) -}}
|
||||
<link rel="icon" type="image/png" sizes="{{$i}}x{{$i}}" href="{{ if $absoluteURL }}{{ $image.Permalink }}{{ else }}{{ $image.RelPermalink }}{{ end }}">
|
||||
{{ end -}}
|
||||
{{ $image := $favicon.Resize "180x CatmullRom" -}}
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ if $absoluteURL }}{{ $image.Permalink }}{{ else }}{{ $image.RelPermalink }}{{ end }}">
|
||||
{{ else }}
|
||||
{{- errorf "partial [head/favicon.html] - Cannot find file: %s" .Site.Params.favicon.logo -}}
|
||||
{{ end }}
|
||||
{{ end -}}
|
22
layouts/partials/utilities/GetArg.html
Normal file
22
layouts/partials/utilities/GetArg.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
Retrieve the value from a given argument within the shortcode context. If a parent is set and merge is false, the
|
||||
value of the parent's argument is retrieved when the current context is unavailable. If merge is true, the parent's
|
||||
value is merged with the value of the shortcode context, separated by a single space.
|
||||
-->
|
||||
|
||||
{{ $page := .page -}}
|
||||
{{ $arg := .arg -}}
|
||||
{{ $merge := .merge -}}
|
||||
{{ $val := $page.Get $arg }}
|
||||
|
||||
{{- with $page.Parent -}}
|
||||
{{ with .Get $arg }}
|
||||
{{ if $merge }}
|
||||
{{ $val = trim (printf "%s %s" . $val) " " }}
|
||||
{{ else if not $val }}
|
||||
{{ $val = . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- return $val -}}
|
13
layouts/partials/utilities/ProcessContent.html
Normal file
13
layouts/partials/utilities/ProcessContent.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<!--
|
||||
Purges any HTML comments from raw content, if applicable. The partial supports the following arguments:
|
||||
"page" Required page context, used to render shortcodes properly.
|
||||
"raw" Raw page content, e.g. .Page.RawContent.
|
||||
-->
|
||||
|
||||
{{ $page := .page -}}
|
||||
{{ $raw := .raw -}}
|
||||
{{- if site.Params.debugging.purgeHTMLComments -}}
|
||||
{{- $raw = replaceRE "<!--(.|\n)*?-->" "" $raw -}}
|
||||
{{- end -}}
|
||||
{{ $content := $raw | $page.RenderString | safeHTML }}
|
||||
{{ return $content }}
|
50
layouts/shortcodes/card-group.html
Normal file
50
layouts/shortcodes/card-group.html
Normal file
@@ -0,0 +1,50 @@
|
||||
<!--
|
||||
Displays a grid of Bootstrap cards with 1 to 5 columns. The cards are rendered using a provided list of pages.
|
||||
Cards on the same row are aligned to each other. The grid renders pages up to a provided maximum amount. The
|
||||
remaining items are accessible via either a paginator or button to a list page (default behavior). Be aware a page
|
||||
can only contain one paginator at a time.
|
||||
|
||||
The shortcode supports the following arguments:
|
||||
"cols" Required number of columns for the grid, must be a value between 1 and 5.
|
||||
"title" Optional title of the card group.
|
||||
"separator" Optional flag to indicate a horizontal line should be added between items on small screens.
|
||||
"gutter" Gutter between columns in a group, either "0", "1", "2", "3" (default), "4", or "5".
|
||||
|
||||
In addition, the following arguments are passed to the individual cards.
|
||||
"class" Optional class attribute of the card element, e.g. “w-50”.
|
||||
"color": Optional theme color of the card, either "primary", "secondary", "success", "danger",
|
||||
"warning", "info", "light", "dark", or "body". By default, no color is specified.
|
||||
"padding": Optional padding of the content, either "0", "1", "2", "3" (default), "4", "5", or "auto".
|
||||
"header" Optional header components of the card, displayed in small caps. Supported values are "full"
|
||||
(default), "publication", "tags", and "none".
|
||||
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
|
||||
"publication", "tags", and "none" (default).
|
||||
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
|
||||
-->
|
||||
|
||||
{{- $cols := 3 -}}
|
||||
{{ with .Get "cols" }}{{ $cols = int . }}{{ end -}}
|
||||
{{- $title := .Get "title" -}}
|
||||
{{- $separator := .Get "separator" -}}
|
||||
{{- $class := .Get "class" -}}
|
||||
{{- $wrapper := .Get "wrapper" -}}
|
||||
{{- $color := .Get "color" -}}
|
||||
{{- $padding := .Get "padding" | default "3" -}}
|
||||
{{- $header := .Get "header" -}}
|
||||
{{- $footer := .Get "footer" -}}
|
||||
{{- $orientation := .Get "orientation" -}}
|
||||
|
||||
{{- partial "assets/card-group.html" (dict
|
||||
"page" .Page
|
||||
"cards" .Inner
|
||||
"cols" $cols
|
||||
"title" $title
|
||||
"separator" $separator
|
||||
"class" $class
|
||||
"color" $color
|
||||
"padding" $padding
|
||||
"header" $header
|
||||
"footer" $footer
|
||||
"orientation" $orientation
|
||||
)
|
||||
-}}
|
@@ -1,31 +1,38 @@
|
||||
<!--
|
||||
Displays a Bootstrap card that links to a page. The shortcode supports the following arguments:
|
||||
"path" Required path of the page.
|
||||
Displays a Bootstrap card that links to a page. Any inner text is used as description The shortcode supports the
|
||||
following arguments:
|
||||
"path" Optional path of the page. If omitted, specify the title, icon, thumbnail, and body as needed.
|
||||
"title" Optional title of the card.
|
||||
"class" Optional class attribute of the card element, e.g. “w-50”.
|
||||
"color": Optional theme color of the card, either "primary", "secondary", "success", "danger",
|
||||
"color" Optional theme color of the card, either "primary", "secondary", "success", "danger",
|
||||
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
|
||||
color is specified.
|
||||
"padding": Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
|
||||
"padding" Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
|
||||
"gutter" Gutter between columns in a group, either "0", "1", "2", "3" (default), "4", or "5".
|
||||
"header" Optional header components of the card, displayed in small caps. Supported values are "full"
|
||||
(default), "publication", "tags", and "none".
|
||||
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
|
||||
"publication", "tags", and "none" (default).
|
||||
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
|
||||
"thumbnail" Optional thumbnail image url, displayed on top or the left of the card.
|
||||
"icon" Optional Font Awesome icon, displayed on top or the left of the card.
|
||||
-->
|
||||
|
||||
{{ $error := false }}
|
||||
|
||||
{{ $path := .Get "path" }}
|
||||
{{ $page := .Site.GetPage $path }}
|
||||
{{ if not $page }}
|
||||
{{ errorf "Invalid or missing value for param 'path': %s" .Position -}}
|
||||
{{ $error = true }}
|
||||
{{ $page := .Page }}
|
||||
{{ with $path }}
|
||||
{{ $page = $.Site.GetPage $path }}
|
||||
{{ if not $page }}
|
||||
{{ errorf "Invalid or missing value for param 'path': %s" .Position -}}
|
||||
{{ $error = true }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ $class := .Get "class" }}
|
||||
{{- $class := partial "utilities/GetArg" (dict "page" . "arg" "class" "merge" true) -}}
|
||||
|
||||
{{ $color := "" -}}
|
||||
{{ with .Get "color" }}{{ $color = . }}{{ end -}}
|
||||
{{- $color := partial "utilities/GetArg" (dict "page" . "arg" "color") -}}
|
||||
{{ if $color }}
|
||||
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" "body" "body-tertiary" -}}
|
||||
{{ if not (in $supportedColors $color) -}}
|
||||
@@ -34,43 +41,64 @@
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $header := "full" }}
|
||||
{{ with .Get "header" }}{{ $header = . }}{{ end -}}
|
||||
{{- $header := partial "utilities/GetArg" (dict "page" . "arg" "header") | default "full" -}}
|
||||
{{ $supportedKeywords := slice "full" "publication" "tags" "none" -}}
|
||||
{{ if not (in $supportedKeywords $header) -}}
|
||||
{{ errorf "Invalid value for param 'header': %s" .Position -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $footer := "none" }}
|
||||
{{ with .Get "footer" }}{{ $footer = . }}{{ end -}}
|
||||
{{- $footer := partial "utilities/GetArg" (dict "page" . "arg" "footer") | default "none" -}}
|
||||
{{ if not (in $supportedKeywords $footer) -}}
|
||||
{{ errorf "Invalid value for param 'footer': %s" .Position -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $padding := "auto" }}
|
||||
{{ with .Get "padding" }}{{ $padding = . }}{{ end -}}
|
||||
{{- $padding := partial "utilities/GetArg" (dict "page" . "arg" "padding") | default "auto" -}}
|
||||
{{ $supportedPaddings := slice "0" "1" "2" "3" "4" "5" "auto" -}}
|
||||
{{ if not (in $supportedPaddings $padding) -}}
|
||||
{{ errorf "Invalid value for param 'padding': %s" .Position -}}
|
||||
{{ $error = true -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $orientation := "stacked" -}}
|
||||
{{ with .Get "orientation" }}{{ $orientation = . }}{{ end -}}
|
||||
{{- $gutter := partial "utilities/GetArg" (dict "page" . "arg" "gutter") | default "3" -}}
|
||||
{{ $supportedGutters:= slice "0" "1" "2" "3" "4" "5" -}}
|
||||
{{ if not (in $supportedGutters $gutter) -}}
|
||||
{{ errorf "Invalid value for param 'gutter': %s" .Position -}}
|
||||
{{ $error = true -}}
|
||||
{{ end -}}
|
||||
|
||||
{{- $orientation := partial "utilities/GetArg" (dict "page" . "arg" "orientation") | default "stacked" -}}
|
||||
{{ $supportedOrientations := slice "stacked" "horizontal" "none" -}}
|
||||
{{ if not (in $supportedOrientations $orientation) -}}
|
||||
{{ errorf "Invalid value for param 'orientation': %s" .Position -}}
|
||||
{{ $error = true -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $layout := "rich" -}}
|
||||
{{ with .Get "layout" }}{{ $layout = . }}{{ end -}}
|
||||
{{- $layout := partial "utilities/GetArg" (dict "page" . "arg" "layout") | default "rich" -}}
|
||||
{{ $supportedLayouts := slice "rich" "minimal" -}}
|
||||
{{ if not (in $supportedLayouts $layout) -}}
|
||||
{{ errorf "Invalid value for param 'layout': %s" .Position -}}
|
||||
{{ $error = true -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $description := trim .Inner " \r\n" | .Page.RenderString | safeHTML }}
|
||||
{{ $title := .Get "title" }}
|
||||
{{ $icon := .Get "icon" }}
|
||||
{{ $thumbnail := .Get "thumbnail" }}
|
||||
|
||||
{{ if not $error -}}
|
||||
{{- partial "assets/card.html" (dict "path" $path "class" $class "color" $color "padding" $padding "header" $header "footer" $footer "orientation" $orientation) -}}
|
||||
<div class="g-{{ $gutter }}">
|
||||
{{- partial "assets/card.html" (dict
|
||||
"path" $path
|
||||
"title" $title
|
||||
"class" (printf "h-100 %s" $class)
|
||||
"color" $color
|
||||
"padding" $padding
|
||||
"header" $header
|
||||
"footer" $footer
|
||||
"orientation" $orientation
|
||||
"description" $description
|
||||
"icon" $icon
|
||||
"thumbnail" $thumbnail
|
||||
) -}}
|
||||
</div>
|
||||
{{ end -}}
|
9327
package-lock.json
generated
9327
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
36
package.json
36
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.18.4",
|
||||
"version": "0.18.7",
|
||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||
"keywords": [
|
||||
"hugo",
|
||||
@@ -17,25 +17,26 @@
|
||||
"registry": "https://registry.npmjs.org/"
|
||||
},
|
||||
"scripts": {
|
||||
"prestart": "npm run -s mod:vendor",
|
||||
"start": "hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings",
|
||||
"start:example": "hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings -s exampleSite",
|
||||
"start:prod": "hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings -e production",
|
||||
"prebuild": "npm run clean:public && npm run -s mod:install",
|
||||
"start:example": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings -s exampleSite",
|
||||
"start:prod": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings -e production",
|
||||
"prebuild": "npm run clean:public && npm run -s mod:vendor",
|
||||
"build": "hugo --gc --minify",
|
||||
"build:cache": "npm run -s prebuild && hugo config | grep cachedir && hugo --gc --minify -e ci",
|
||||
"build:example": "npm run -s prebuild && hugo --gc --minify -s exampleSite",
|
||||
"build:example:ci": "npm run -s prebuild && hugo --gc --minify -s exampleSite -e ci",
|
||||
"build:debug": "hugo -e debug --debug",
|
||||
"build:preview": "npm run build -D -F",
|
||||
"clean:public": "rimraf public",
|
||||
"clean:public": "rimraf public exampleSite/public",
|
||||
"clean:install": "rimraf package-lock.json node_modules",
|
||||
"lint": "npm run -s lint:scripts && npm run -s lint:styles && npm run -s lint:markdown",
|
||||
"lint:scripts": "eslint assets/js",
|
||||
"lint:styles": "stylelint \"assets/scss/**/*.{css,sass,scss,sss,less}\"",
|
||||
"lint": "npm-run-all lint:**",
|
||||
"lint:scripts": "eslint assets/js --no-error-on-unmatched-pattern",
|
||||
"lint:styles": "stylelint \"assets/scss/**/*.{css,sass,scss,sss,less}\" --allow-empty-input",
|
||||
"lint:markdown": "markdownlint-cli2 \"*.md\" \"content/**/*.md\" \"exampleSite/**/*.md\"",
|
||||
"lint:markdown-fix": "markdownlint-cli2-fix \"*.md\" \"content/**/*.md\" \"exampleSite/**/*.md\"",
|
||||
"mod:clean": "hugo mod clean",
|
||||
"mod:install": "hugo mod get ./... && npm run -s mod:vendor && npm run -s mod:tidy",
|
||||
"mod:update": "hugo mod get -u ./... && npm run -s mod:vendor && npm run -s mod:tidy",
|
||||
"mod:tidy": "hugo mod tidy",
|
||||
"mod:update": "rimraf _vendor && hugo mod get -u ./... && hugo mod get -u && npm run -s mod:vendor && npm run -s mod:tidy",
|
||||
"mod:tidy": "hugo mod tidy && hugo mod tidy -s exampleSite",
|
||||
"mod:vendor": "rimraf _vendor && hugo mod vendor",
|
||||
"test": "npm run -s lint",
|
||||
"env": "hugo env",
|
||||
@@ -71,20 +72,23 @@
|
||||
"cssnano-preset-advanced": "^6.0.1",
|
||||
"eslint": "^8.47.0",
|
||||
"eslint-config-standard": "^17.1.0",
|
||||
"eslint-plugin-import": "^2.28.0",
|
||||
"eslint-plugin-n": "^16.0.1",
|
||||
"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.8.1",
|
||||
"markdownlint-cli2": "^0.9.0",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"postcss-cli": "^10.1.0",
|
||||
"purgecss-whitelister": "^2.4.0",
|
||||
"replace-in-files-cli": "^2.2.0",
|
||||
"rimraf": "^5.0.1",
|
||||
"shx": "^0.3.4",
|
||||
"stylelint": "^15.10.2",
|
||||
"stylelint": "^15.10.3",
|
||||
"stylelint-config-standard-scss": "^10.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "^2.3.3"
|
||||
},
|
||||
"hugo-bin": {
|
||||
"buildTags": "extended"
|
||||
}
|
||||
|
Reference in New Issue
Block a user