Initial commit
This commit is contained in:
21
.devcontainer/devcontainer.json
Normal file
21
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"image": "mcr.microsoft.com/devcontainers/go:1",
|
||||||
|
"features": {
|
||||||
|
"ghcr.io/devcontainers/features/hugo:1": {
|
||||||
|
"extended": true,
|
||||||
|
"version": "0.132.2"
|
||||||
|
},
|
||||||
|
"ghcr.io/devcontainers/features/node:1": {}
|
||||||
|
},
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"mhutchie.git-graph",
|
||||||
|
"esbenp.prettier-vscode",
|
||||||
|
"tamasfe.even-better-toml",
|
||||||
|
"budparr.language-hugo-vscode"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"forwardPorts": [1313]
|
||||||
|
}
|
||||||
76
.github/workflows/pages.yaml
vendored
Normal file
76
.github/workflows/pages.yaml
vendored
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
||||||
|
name: Deploy Hugo site to Pages
|
||||||
|
|
||||||
|
on:
|
||||||
|
# Runs on pushes targeting the default branch
|
||||||
|
push:
|
||||||
|
branches: ["main"]
|
||||||
|
|
||||||
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||||
|
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||||
|
concurrency:
|
||||||
|
group: "pages"
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
# Default to bash
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Build job
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
HUGO_VERSION: 0.132.2
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # fetch all history for .GitInfo and .Lastmod
|
||||||
|
submodules: recursive
|
||||||
|
- name: Setup Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '1.22'
|
||||||
|
- name: Setup Pages
|
||||||
|
id: pages
|
||||||
|
uses: actions/configure-pages@v4
|
||||||
|
- name: Setup Hugo
|
||||||
|
run: |
|
||||||
|
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
|
||||||
|
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
||||||
|
- name: Build with Hugo
|
||||||
|
env:
|
||||||
|
# For maximum backward compatibility with Hugo modules
|
||||||
|
HUGO_ENVIRONMENT: production
|
||||||
|
HUGO_ENV: production
|
||||||
|
run: |
|
||||||
|
hugo \
|
||||||
|
--gc --minify \
|
||||||
|
--baseURL "${{ steps.pages.outputs.base_url }}/"
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
path: ./public
|
||||||
|
|
||||||
|
# Deployment job
|
||||||
|
deploy:
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
||||||
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Hugo output
|
||||||
|
public/
|
||||||
|
resources/
|
||||||
|
.hugo_build.lock
|
||||||
|
|
||||||
|
# Editor
|
||||||
|
.vscode/
|
||||||
15
.gitpod.yml
Normal file
15
.gitpod.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# This configuration file was automatically generated by Gitpod.
|
||||||
|
# Please adjust to your needs (see https://www.gitpod.io/docs/introduction/learn-gitpod/gitpod-yaml)
|
||||||
|
# and commit this file to your remote git repository to share the goodness with others.
|
||||||
|
|
||||||
|
# Learn more from ready-to-use templates: https://www.gitpod.io/docs/introduction/getting-started/quickstart
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Install Hugo
|
||||||
|
before: brew install hugo
|
||||||
|
init: echo "Your version of Hugo is `hugo version`" && hugo mod tidy
|
||||||
|
command: hugo server -D -F --baseURL $(gp url 1313) --liveReloadPort=443 --appendPort=false --bind=0.0.0.0 --disableFastRender
|
||||||
|
|
||||||
|
ports:
|
||||||
|
- port: 1313
|
||||||
|
onOpen: open-preview
|
||||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2023 Xin
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
83
README.md
Normal file
83
README.md
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
# Hextra Starter Template
|
||||||
|
|
||||||
|
[](https://github.com/imfing/hextra-starter-template/actions/workflows/pages.yaml)
|
||||||
|
[](https://app.netlify.com/sites/hextra-starter-template/deploys)
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
🐣 Minimal template for getting started with [Hextra](https://github.com/imfing/hextra)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
[🌐 Demo ↗](https://imfing.github.io/hextra-starter-template/)
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
Use this template to create your own repository:
|
||||||
|
|
||||||
|
<img src="https://docs.github.com/assets/cb-77734/mw-1440/images/help/repository/use-this-template-button.webp" width=400 />
|
||||||
|
|
||||||
|
You can also quickly start developing using the following online development environment:
|
||||||
|
|
||||||
|
- [GitHub Codespaces](https://github.com/codespaces)
|
||||||
|
|
||||||
|
[](https://codespaces.new/imfing/hextra-starter-template)
|
||||||
|
|
||||||
|
Create a new codespace and follow the [Local Development](#local-development) to launch the preview
|
||||||
|
|
||||||
|
- [Gitpod](https://gitpod.io)
|
||||||
|
|
||||||
|
[](https://gitpod.io/#https://github.com/imfing/hextra-starter-template)
|
||||||
|
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
### GitHub Pages
|
||||||
|
|
||||||
|
A GitHub Actions workflow is provided in [`.github/workflows/pages.yaml`](./.github/workflows/pages.yaml) to [publish to GitHub Pages](https://github.blog/changelog/2022-07-27-github-pages-custom-github-actions-workflows-beta/) for free.
|
||||||
|
|
||||||
|
For details, see [Publishing with a custom GitHub Actions workflow](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow).
|
||||||
|
|
||||||
|
Note: in the settings, make sure to set the Pages deployment source to **GitHub Actions**:
|
||||||
|
|
||||||
|
<img src="https://github.com/imfing/hextra-starter-template/assets/5097752/99676430-884e-42ab-b901-f6534a0d6eee" width=600 />
|
||||||
|
|
||||||
|
[Run the workflow manually](https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow) if it's not triggered automatically.
|
||||||
|
|
||||||
|
### Netlify
|
||||||
|
|
||||||
|
[](https://app.netlify.com/start/deploy?repository=https://github.com/imfing/hextra-starter-template)
|
||||||
|
|
||||||
|
### Vercel
|
||||||
|
|
||||||
|
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fimfing%2Fhextra-starter-template&env=HUGO_VERSION)
|
||||||
|
|
||||||
|
Override the configuration:
|
||||||
|
|
||||||
|
<img src="https://github.com/imfing/hextra-starter-template/assets/5097752/e2e3cecd-c884-47ec-b064-14f896fee08d" width=600 />
|
||||||
|
|
||||||
|
## Local Development
|
||||||
|
|
||||||
|
Pre-requisites: [Hugo](https://gohugo.io/getting-started/installing/), [Go](https://golang.org/doc/install) and [Git](https://git-scm.com)
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Clone the repo
|
||||||
|
git clone https://github.com/imfing/hextra-starter-template.git
|
||||||
|
|
||||||
|
# Change directory
|
||||||
|
cd hextra-starter-template
|
||||||
|
|
||||||
|
# Start the server
|
||||||
|
hugo mod tidy
|
||||||
|
hugo server --logLevel debug --disableFastRender -p 1313
|
||||||
|
```
|
||||||
|
|
||||||
|
### Update theme
|
||||||
|
|
||||||
|
```shell
|
||||||
|
hugo mod get -u
|
||||||
|
hugo mod tidy
|
||||||
|
```
|
||||||
|
|
||||||
|
See [Update modules](https://gohugo.io/hugo-modules/use-modules/#update-modules) for more details.
|
||||||
|
|
||||||
17
content/_index.md
Normal file
17
content/_index.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
title: My Site
|
||||||
|
toc: false
|
||||||
|
---
|
||||||
|
|
||||||
|
This is the landing page.
|
||||||
|
|
||||||
|
## Explore
|
||||||
|
|
||||||
|
{{< cards >}}
|
||||||
|
{{< card link="docs" title="Docs" icon="book-open" >}}
|
||||||
|
{{< card link="about" title="About" icon="user" >}}
|
||||||
|
{{< /cards >}}
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
For more information, visit [Hextra](https://imfing.github.io/hextra).
|
||||||
6
content/about.md
Normal file
6
content/about.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
title: About
|
||||||
|
type: about
|
||||||
|
---
|
||||||
|
|
||||||
|
This is the about page.
|
||||||
18
content/docs/_index.md
Normal file
18
content/docs/_index.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
title: Documentation
|
||||||
|
next: first-page
|
||||||
|
---
|
||||||
|
|
||||||
|
This is a demo of the theme's documentation layout.
|
||||||
|
|
||||||
|
## Hello, World!
|
||||||
|
|
||||||
|
```go {filename="main.go"}
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println("Hello, World!")
|
||||||
|
}
|
||||||
|
```
|
||||||
9
content/docs/first-page.md
Normal file
9
content/docs/first-page.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
title: Demo Page
|
||||||
|
type: docs
|
||||||
|
prev: /
|
||||||
|
next: docs/folder/
|
||||||
|
---
|
||||||
|
|
||||||
|
A simple demo page.
|
||||||
|
|
||||||
10
content/docs/folder/_index.md
Normal file
10
content/docs/folder/_index.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
title: Folder
|
||||||
|
type: docs
|
||||||
|
prev: docs/first-page
|
||||||
|
next: docs/folder/leaf
|
||||||
|
sidebar:
|
||||||
|
open: true
|
||||||
|
---
|
||||||
|
|
||||||
|
Pages can be organized into folders.
|
||||||
7
content/docs/folder/leaf.md
Normal file
7
content/docs/folder/leaf.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Leaf Page
|
||||||
|
type: docs
|
||||||
|
prev: docs/folder/
|
||||||
|
---
|
||||||
|
|
||||||
|
This page is under a folder.
|
||||||
5
go.mod
Normal file
5
go.mod
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
module github.com/imfing/hextra-starter-template
|
||||||
|
|
||||||
|
go 1.21
|
||||||
|
|
||||||
|
require github.com/imfing/hextra v0.8.6 // indirect
|
||||||
2
go.sum
Normal file
2
go.sum
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
github.com/imfing/hextra v0.8.6 h1:fpOqzcUs26Lc/ZzowYSBcnpe00d/aZw4HhiHP7ycSks=
|
||||||
|
github.com/imfing/hextra v0.8.6/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI=
|
||||||
56
hugo.yaml
Normal file
56
hugo.yaml
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# Hugo configuration file
|
||||||
|
title: My Site
|
||||||
|
|
||||||
|
# import hextra as module
|
||||||
|
module:
|
||||||
|
imports:
|
||||||
|
- path: github.com/imfing/hextra
|
||||||
|
|
||||||
|
markup:
|
||||||
|
# allow raw html
|
||||||
|
goldmark:
|
||||||
|
renderer:
|
||||||
|
unsafe: true
|
||||||
|
|
||||||
|
# enable hextra syntax highlight
|
||||||
|
highlight:
|
||||||
|
noClasses: false
|
||||||
|
|
||||||
|
menu:
|
||||||
|
main:
|
||||||
|
- name: Docs
|
||||||
|
pageRef: /docs
|
||||||
|
weight: 1
|
||||||
|
- name: About
|
||||||
|
pageRef: /about
|
||||||
|
weight: 2
|
||||||
|
- name: Contact ↗
|
||||||
|
url: "https://github.com/imfing"
|
||||||
|
weight: 3
|
||||||
|
- name: Search
|
||||||
|
weight: 4
|
||||||
|
params:
|
||||||
|
type: search
|
||||||
|
- name: GitHub
|
||||||
|
weight: 5
|
||||||
|
url: "https://github.com/imfing/hextra-starter-template"
|
||||||
|
params:
|
||||||
|
icon: github
|
||||||
|
- name: Twitter
|
||||||
|
weight: 6
|
||||||
|
url: "https://twitter.com/"
|
||||||
|
params:
|
||||||
|
icon: x-twitter
|
||||||
|
|
||||||
|
params:
|
||||||
|
navbar:
|
||||||
|
displayTitle: true
|
||||||
|
displayLogo: false
|
||||||
|
|
||||||
|
footer:
|
||||||
|
displayCopyright: false
|
||||||
|
displayPoweredBy: true
|
||||||
|
|
||||||
|
editURL:
|
||||||
|
enable: true
|
||||||
|
base: "https://github.com/imfing/hextra-starter-template/edit/main/content"
|
||||||
6
netlify.toml
Normal file
6
netlify.toml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[build]
|
||||||
|
publish = "public"
|
||||||
|
command = "hugo --gc --minify -b ${DEPLOY_PRIME_URL}"
|
||||||
|
|
||||||
|
[build.environment]
|
||||||
|
HUGO_VERSION = "0.132.2"
|
||||||
Reference in New Issue
Block a user