Compare commits

...
Sign in to create a new pull request.

11 commits
main ... main

Author SHA1 Message Date
9c4fce1969
Merging in changes 2025-02-14 00:38:12 +00:00
PeaceNira
251daae066
read me 2025-02-14 00:33:03 +00:00
PeaceNira
8857d34b01
added files 2025-02-14 00:32:38 +00:00
6ff09c4bfe
fix: this file does nothing in hugo 2025-02-13 16:56:30 +00:00
04edb53fef
doc: also pull in the submodules 2025-02-13 15:37:44 +00:00
4f3cc82296
doc: added minor instruction on how to install hugo via nix 2025-02-13 15:31:12 +00:00
PeaceNira
ec8ebf0e86
read me
(cherry picked from commit e50075b542)
2025-02-13 14:24:50 +00:00
7517534eb0
test: pipeline 2025-02-13 14:10:22 +00:00
fd91e8cc92
test: have one post and one draft 2025-02-13 14:05:26 +00:00
29d6b5a22c
feat: copied in the pipeline Peace did 2025-02-13 14:01:52 +00:00
b52a477c51
feat: initial setup for hugo 2025-02-13 13:54:56 +00:00
16 changed files with 367 additions and 42 deletions

View file

@ -4,25 +4,46 @@ on:
push: push:
branches: branches:
- 'main' - 'main'
# paths:
# - src/**/*
jobs: jobs:
build: build:
runs-on: docker runs-on: docker
steps: steps:
# get the repo first # Step 1: Checkout the repository
- uses: https://code.forgejo.org/actions/checkout@v4 - uses: https://code.forgejo.org/actions/checkout@v4
# Make sure all files are pulled down # Make sure all files are pulled down
- uses: https://forgejo.skynet.ie/Skynet/actions/get_lfs@v6 - uses: https://forgejo.skynet.ie/Skynet/actions/get_lfs@v6
with: with:
repository: ${{ gitea.repository }} repository: ${{ gitea.repository }}
ref_name: ${{ gitea.ref_name }} ref_name: ${{ gitea.ref_name }}
# temp one just to get it "built"
# Step 2: Install latest Hugo
- name: Install Hugo
run: |
HUGO_VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep -Po '"tag_name": "\K[^"]+' | sed 's/^v//')
wget -q https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-amd64.deb
dpkg -i ./hugo_extended_${HUGO_VERSION}_Linux-amd64.deb
hugo version
# Step 3: Ensure submodules or themes are initialized (only needed if your using github submodules for theme purposes)
- name: Initialize Submodules
run: git submodule update --init --recursive
# Step 4: Set the correct URL for skynet
- name: Set the site URL correctly
run: sed -i "s%baseURL.*%baseURL='https://${{ env.GITHUB_REPOSITORY_OWNER }}.users.skynet.ie'%" hugo.toml
# Step 5: Build the Hugo site
- name: Build Hugo site
env:
HUGO_ENV: production
run: hugo --minify # Reduce resources by minifying content
# Step 6: Deploy the /public directory to the server
- uses: https://forgejo.skynet.ie/Skynet/actions/deploy_user@v6 - uses: https://forgejo.skynet.ie/Skynet/actions/deploy_user@v6
with: with:
ssh_key: ${{ secrets.SSH_KEY }} ssh_key: ${{ secrets.SSH_KEY }}
username: ${{ env.GITHUB_REPOSITORY_OWNER }} username: ${{ env.GITHUB_REPOSITORY_OWNER }}
folder: "src" folder: "public"
# uncomment below if you want to deploy to a subfolder # uncomment below if you want to deploy to a subfolder
#destination: "subfolder" #destination: "subfolder"

11
.gitignore vendored
View file

@ -26,3 +26,14 @@ test.*
# Dealing with Mac users # Dealing with Mac users
.DS_Store .DS_Store
###################################################
# Hugo Stuff
###################################################
# Dont commit lockfiles used for building like this
.hugo_build.lock
# public is generated
/public
/**/_gen

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "themes/PaperMod"]
path = themes/PaperMod
url = https://github.com/adityatelange/hugo-PaperMod.git

0
.hugo_build.lock Normal file
View file

View file

@ -1,34 +1,46 @@
# Deploying to Skynet
This is a repo that is used as a template to deploy to Skynet
## Create a Skynet Account ---
To be able to have a website on Skynet you must first have a Skynet account.
[Instructions on how to create a Skynet Account](https://wiki.skynet.ie/tutorials/skynet/create_account)
## Create SSH Key # Hugo Site Setup Guide
Details to do this can be found here: [wiki](https://wiki.skynet.ie/tutorials/skynet/create_ssh/)
It is recommended to create a new key for just Forgejo Actions.
**_Do not add a password to the key_**, it will cause the pipeline to fail.
### Add key to Skynet account ## **1. Set Up Remote Keys**
Add the contents of ``$USERNAME.pub`` (public key) to [your skynet account](https://account.skynet.ie/modify_ssh) Follow the steps in the link below to configure your remote keys:
``[CTRL]+[A]`` and ``[CTRL]+[V]`` will copy/paste everything. 🔗 [Remote Key Setup Instructions](https://forgejo.skynet.ie/Skynet/deploy_user)
The key must remain in its "armor" and the trailing newline at the end must be preserved.
## Secrets ---
One secret must be added to make this work.
Secrets are found in your repo under ``Settings > Actions > Secrets`` ## **2. Install Hugo**
Install Hugo by following the official guide:
🔗 [Hugo Installation Instructions](https://gohugo.io/installation/)
* SSH_KEY ### Nix
* This is your private key that was generated above If you are using Nix or NixOS you can use ``nix develop`` to enable a local shell which contains Hugo.
* Copy paste it exactly
End result should look like this: ---
![Secrets](resources/Secrets.png)
## **3. Clone the Repository**
Run the following command to clone the repository:
```sh
git clone <repo>
## Make changes to ``src`` # Update the submodules
Make changes to the files in ``src``. git submodule update --init --recursive
Commit and push. ```
If everything was set up fine then your site will soon be live on ``https://$USERNAME.users.skynet.ie``
Replace `<repo>` with the actual repository URL.
---
## **4. Choose & Configure a Theme**
### **If you want to continue using PaperMod**
You can find customization and usage details here:
🔗 [PaperMod Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki/)
### **If you want to switch themes**
Browse other Hugo themes here:
🔗 [Hugo Themes](https://themes.gohugo.io/)
**Note:** This project uses **YAML** for configuration, while many Hugo themes use **TOML**. Adjust the settings accordingly.
---

5
archetypes/default.md Normal file
View file

@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = {{ .Date }}
draft = true
+++

View file

@ -0,0 +1,7 @@
+++
title = 'My First Draft'
date = 2025-02-13T13:26:35Z
draft = true
+++
This page wont be shown publicly yet

View file

@ -0,0 +1,7 @@
+++
title = 'My First Post'
date = 2025-02-13T13:26:35Z
draft = false
+++
Put yer markdown content here

View file

@ -0,0 +1,37 @@
---
title: "My 1st post"
date: 2020-09-15T11:30:03+00:00
# weight: 1
# aliases: ["/first"]
tags: ["first"]
author: "Me"
# author: ["Me", "You"] # multiple authors
showToc: true
TocOpen: false
draft: false
hidemeta: false
comments: false
description: "Desc Text."
canonicalURL: "https://canonical.url/to/page"
disableHLJS: true # to disable highlightjs
disableShare: false
disableHLJS: false
hideSummary: false
searchHidden: true
ShowReadingTime: true
ShowBreadCrumbs: true
ShowPostNavLinks: true
ShowWordCount: true
ShowRssButtonInSectionTermList: true
UseHugoToc: true
cover:
image: "<image path/url>" # image path/url
alt: "<alt text>" # alt text
caption: "<text>" # display caption under cover
relative: false # when using page bundles set this to true
hidden: true # only hide on current single page
editPost:
URL: "https://github.com/<path_to_repo>/content"
Text: "Suggest Changes" # edit text
appendFilePath: true # to append file path to Edit link
---

8
content/search.md Normal file
View file

@ -0,0 +1,8 @@
---
title: "Search" # in any language you want
layout: "search" # necessary for search
# url: "/archive"
# description: "Description for Search"
summary: "search"
placeholder: "search"
---

60
flake.lock generated Normal file
View file

@ -0,0 +1,60 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1739214665,
"narHash": "sha256-26L8VAu3/1YRxS8MHgBOyOM8xALdo6N0I04PgorE7UM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "64e75cd44acf21c7933d61d7721e812eac1b5a0a",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

24
flake.nix Normal file
View file

@ -0,0 +1,24 @@
{
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {
self,
nixpkgs,
...
} @ inputs: let
pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgs;
in {
devShells.x86_64-linux.default = pkgs.mkShell {
name = "Hugo build env";
nativeBuildInputs = [
pkgs.hugo
];
buildInputs = [];
# shellHook = ''export EDITOR="${pkgs.nano}/bin/nano --nonewlines"; unset LD_LIBRARY_PATH;'';
};
};
}

4
hugo.toml Normal file
View file

@ -0,0 +1,4 @@
baseURL = 'https://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
theme = 'PaperMod'

137
hugo.yaml Normal file
View file

@ -0,0 +1,137 @@
baseURL: "https://examplesite.com/"
title: ExampleSite
paginate: 5
theme: PaperMod
enableRobotsTXT: true
buildDrafts: false
buildFuture: false
buildExpired: false
minify:
disableXML: true
minifyOutput: true
params:
env: production # to enable google analytics, opengraph, twitter-cards and schema.
title: ExampleSite
description: "ExampleSite description"
keywords: [Blog, Portfolio, PaperMod]
author: Me
# author: ["Me", "You"] # multiple authors
images: ["<link or path of image for opengraph, twitter-cards>"]
DateFormat: "January 2, 2006"
defaultTheme: auto # dark, light
disableThemeToggle: false
ShowReadingTime: true
ShowShareButtons: true
ShowPostNavLinks: true
ShowBreadCrumbs: true
ShowCodeCopyButtons: false
ShowWordCount: true
ShowRssButtonInSectionTermList: true
UseHugoToc: true
disableSpecial1stPost: false
disableScrollToTop: false
comments: false
hidemeta: false
hideSummary: false
showtoc: false
tocopen: false
assets:
# disableHLJS: true # to disable highlight.js
# disableFingerprinting: true
favicon: "<link / abs url>"
favicon16x16: "<link / abs url>"
favicon32x32: "<link / abs url>"
apple_touch_icon: "<link / abs url>"
safari_pinned_tab: "<link / abs url>"
label:
text: "Home"
icon: /apple-touch-icon.png
iconHeight: 35
# profile-mode
profileMode:
enabled: false # needs to be explicitly set
title: ExampleSite
subtitle: "This is subtitle"
imageUrl: "<img location>"
imageWidth: 120
imageHeight: 120
imageTitle: my image
buttons:
- name: Posts
url: posts
- name: Tags
url: tags
# home-info mode
homeInfoParams:
Title: "Hi there \U0001F44B"
Content: Welcome to my blog
socialIcons:
- name: x
url: "https://x.com/"
- name: stackoverflow
url: "https://stackoverflow.com"
- name: github
url: "https://github.com/"
analytics:
google:
SiteVerificationTag: "XYZabc"
bing:
SiteVerificationTag: "XYZabc"
yandex:
SiteVerificationTag: "XYZabc"
cover:
hidden: true # hide everywhere but not in structured data
hiddenInList: true # hide on list pages and home
hiddenInSingle: true # hide on single page
editPost:
URL: "https://github.com/<path_to_repo>/content"
Text: "Suggest Changes" # edit text
appendFilePath: true # to append file path to Edit link
# for search
# https://fusejs.io/api/options.html
fuseOpts:
isCaseSensitive: false
shouldSort: true
location: 0
distance: 1000
threshold: 0.4
minMatchCharLength: 0
limit: 10 # refer: https://www.fusejs.io/api/methods.html#search
keys: ["title", "permalink", "summary", "content"]
menu:
main:
- identifier: categories
name: categories
url: /categories/
weight: 10
- identifier: tags
name: tags
url: /tags/
weight: 20
- identifier: example
name: example.org
url: https://example.org
weight: 30
# Read: https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#using-hugos-syntax-highlighter-chroma
pygmentsUseClasses: true
markup:
highlight:
noClasses: false
# anchorLineNos: true
# codeFences: true
# guessSyntax: true
# lineNos: true
# style: monokai

View file

@ -1,12 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
</head>
<body>
<div>
<h1>Hello World!</h1>
<h2>All hail Skynet!!</h2>
</div>
</body>
</html>

1
themes/PaperMod Submodule

@ -0,0 +1 @@
Subproject commit a020be2137458dd0a1f4f3a024cd7b076931e9e3