mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2026-04-14 21:29:12 +02:00
feat: add new deploy pipeline
This commit is contained in:
parent
c39cbed1cf
commit
cd1a23845f
4 changed files with 4554 additions and 1197 deletions
57
.github/workflows/build-and-deploy.yml
vendored
Normal file
57
.github/workflows/build-and-deploy.yml
vendored
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
name: Build and Deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- feat/router # or master, depending on your default branch
|
||||
workflow_dispatch: # allows manual trigger
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Emacs
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y emacs-nox elpa-htmlize
|
||||
|
||||
- name: Export Org to HTML
|
||||
run: |
|
||||
emacs --batch \
|
||||
--eval "(require 'org)" \
|
||||
--eval "(setq org-confirm-babel-evaluate nil
|
||||
org-html-validation-link nil
|
||||
org-export-with-broken-links 'mark)" \
|
||||
--visit=SwarselSystems.org \
|
||||
--funcall org-html-export-to-html
|
||||
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v4
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: '.'
|
||||
|
||||
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
|
||||
1976
SwarselSystems.org
1976
SwarselSystems.org
File diff suppressed because it is too large
Load diff
2462
index.html
2462
index.html
File diff suppressed because it is too large
Load diff
320
style.css
Normal file
320
style.css
Normal file
|
|
@ -0,0 +1,320 @@
|
|||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #1d252c;
|
||||
color: #b7c5d3;
|
||||
font-family: "Inter", "Fira Sans", system-ui, sans-serif;
|
||||
line-height: 1.6;
|
||||
overflow-x: hidden; /* prevent horizontal scroll from small overflows */
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#table-of-contents {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 280px;
|
||||
height: 100vh;
|
||||
overflow-y: auto;
|
||||
padding: 1.2rem 1rem;
|
||||
background-color: #232b32;
|
||||
border-right: 1px solid #2f3b45;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
#table-of-contents h2 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#text-table-of-contents ul {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#text-table-of-contents li {
|
||||
margin: 0.2rem 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.toc-entry {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#text-table-of-contents a {
|
||||
color: #b7c5d3;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#text-table-of-contents a:hover {
|
||||
color: #5ec4ff;
|
||||
}
|
||||
|
||||
#text-table-of-contents ul ul {
|
||||
padding-left: 1rem;
|
||||
border-left: 1px solid #2f3b45;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin-left: 300px;
|
||||
margin-right: 320px;
|
||||
padding: 2rem 3rem;
|
||||
max-width: 1200px;
|
||||
width: calc(100vw - 620px);
|
||||
box-sizing: border-box;
|
||||
transition: margin 0.3s ease, padding 0.3s ease, width 0.3s ease, max-width 0.3s ease;
|
||||
}
|
||||
|
||||
#content.pinned-hidden {
|
||||
margin-right: 0;
|
||||
width: calc(100vw - 300px);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5 {
|
||||
color: #70e1e8;
|
||||
font-weight: 500;
|
||||
margin-top: 2.2rem;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
color: #5ec4ff;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
pre, code {
|
||||
font-family: "Fira Code", monospace;
|
||||
background-color: #232b32;
|
||||
color: #b7c5d3;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 1rem;
|
||||
overflow-x: auto;
|
||||
border: 1px solid #2f3b45;
|
||||
border-radius: 4px;
|
||||
max-width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
code {
|
||||
padding: 0.15rem 0.3rem;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
th, td {
|
||||
border: 1px solid #2f3b45;
|
||||
padding: 0.5rem 0.8rem;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #232b32;
|
||||
color: #70e1e8;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 3px solid #5ec4ff;
|
||||
margin-left: 0;
|
||||
padding-left: 1rem;
|
||||
color: #718ca1;
|
||||
}
|
||||
|
||||
#pinned-panel {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 280px;
|
||||
height: 100vh;
|
||||
overflow-y: auto;
|
||||
padding: 1.2rem 1rem;
|
||||
padding-bottom: 5rem;
|
||||
background-color: #232b32;
|
||||
border-left: 1px solid #2f3b45;
|
||||
font-size: 0.9rem;
|
||||
box-sizing: border-box;
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
#pinned-panel.hidden {
|
||||
transform: translateX(100%);
|
||||
}
|
||||
|
||||
#pinned-panel-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
#pinned-panel h2 {
|
||||
margin: 0;
|
||||
font-size: 1rem;
|
||||
color: #70e1e8;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
#toggle-pinned-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
color: #718ca1;
|
||||
cursor: pointer;
|
||||
font-size: 1.2rem;
|
||||
padding: 0;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
#toggle-pinned-btn:hover {
|
||||
color: #5ec4ff;
|
||||
}
|
||||
|
||||
#pinned-list {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#pinned-list li {
|
||||
margin: 0.5rem 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#pinned-list a {
|
||||
color: #b7c5d3;
|
||||
text-decoration: none;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#pinned-list a:hover {
|
||||
color: #5ec4ff;
|
||||
}
|
||||
|
||||
.pin-remove {
|
||||
background: none;
|
||||
border: none;
|
||||
color: #718ca1;
|
||||
cursor: pointer;
|
||||
font-size: 0.9rem;
|
||||
padding: 0 0.3rem;
|
||||
}
|
||||
|
||||
.pin-remove:hover {
|
||||
color: #ff6b6b;
|
||||
}
|
||||
|
||||
.toc-pin-btn {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transition: opacity 0.2s, visibility 0.2s;
|
||||
cursor: pointer;
|
||||
margin-left: 0.4rem;
|
||||
font-size: 0.85rem;
|
||||
color: #718ca1;
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.toc-pin-btn:hover {
|
||||
color: #5ec4ff;
|
||||
}
|
||||
|
||||
#text-table-of-contents .toc-entry:hover .toc-pin-btn {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#show-pinned-btn {
|
||||
position: fixed;
|
||||
top: 4.5rem;
|
||||
right: 1rem;
|
||||
background-color: #232b32;
|
||||
border: 1px solid #2f3b45;
|
||||
color: #b7c5d3;
|
||||
cursor: pointer;
|
||||
padding: 0.5rem 0.8rem;
|
||||
font-size: 0.9rem;
|
||||
border-radius: 4px;
|
||||
display: none;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
#show-pinned-btn:hover {
|
||||
background-color: #2f3b45;
|
||||
color: #5ec4ff;
|
||||
}
|
||||
|
||||
#show-pinned-btn.visible {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media (max-width: 1600px) {
|
||||
#content {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1300px) {
|
||||
#pinned-panel {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#show-pinned-btn {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#content,
|
||||
#content.pinned-hidden {
|
||||
margin-right: 0;
|
||||
width: calc(100vw - 300px);
|
||||
max-width: 100%;
|
||||
padding: 1.8rem 2.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1000px) {
|
||||
#table-of-contents {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100vw;
|
||||
max-width: 100%;
|
||||
padding: 1.5rem 1.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 700px) {
|
||||
#content {
|
||||
padding: 1.2rem 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.darkmode-layer, .darkmode-toggle {
|
||||
z-index: 500;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue