Compare commits
No commits in common. "master" and "projects" have entirely different histories.
|
@ -26,17 +26,9 @@ pipeline {
|
||||||
sh '. ci/build.sh'
|
sh '. ci/build.sh'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post {
|
|
||||||
success {
|
|
||||||
archiveArtifacts 'dustin.web.tar.xz'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Publish') {
|
stage('Publish') {
|
||||||
when {
|
|
||||||
branch 'master'
|
|
||||||
}
|
|
||||||
steps {
|
steps {
|
||||||
container('rsync') {
|
container('rsync') {
|
||||||
sshagent(['jenkins-web']) {
|
sshagent(['jenkins-web']) {
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
python3 -m pip install --user ruamel.yaml
|
python3 -m pip install --user ruamel.yaml
|
||||||
python3 /dev/fd/3 < songquotes.yml > public/songquotes.json 3<<EOF
|
python3 /dev/fd/3 < songquotes.yml > public/songquotes.json 3<<EOF
|
||||||
from ruamel.yaml import YAML
|
from ruamel.yaml import safe_load as load
|
||||||
from json import dump
|
from json import dump
|
||||||
import sys
|
import sys
|
||||||
yaml = YAML()
|
dump(load(sys.stdin), sys.stdout)
|
||||||
dump(yaml.load(sys.stdin), sys.stdout)
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
tar -cJf dustin.web.tar.xz -C public .
|
|
||||||
|
|
|
@ -5,19 +5,16 @@ spec:
|
||||||
- name: zola
|
- name: zola
|
||||||
image: git.pyrocufflink.net/containerimages/zola
|
image: git.pyrocufflink.net/containerimages/zola
|
||||||
- name: python
|
- name: python
|
||||||
image: docker.io/python:3
|
image: docker.io/python:3.10
|
||||||
command:
|
command:
|
||||||
- python
|
- python
|
||||||
args:
|
args:
|
||||||
- -c
|
- -c
|
||||||
- |-
|
- import signal; signal.pause()
|
||||||
import signal
|
|
||||||
signal.signal(signal.SIGTERM, lambda x, y: None)
|
|
||||||
signal.pause()
|
|
||||||
- name: rsync
|
- name: rsync
|
||||||
image: git.pyrocufflink.net/containerimages/rsync
|
image: git.pyrocufflink.net/containerimages/rsync
|
||||||
volumeMounts:
|
command:
|
||||||
- mountPath: /etc/ssh/ssh_known_hosts
|
- python3
|
||||||
name: volume-0
|
args:
|
||||||
subPath: ssh_known_hosts
|
- -c
|
||||||
readOnly: true
|
- import signal; signal.pause()
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 33 KiB |
|
@ -353,6 +353,7 @@ article.post .post-date {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: $panel-color-dark;
|
background-color: $panel-color-dark;
|
||||||
margin: 0.75em;
|
margin: 0.75em;
|
||||||
|
padding: 0 0.75em;
|
||||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
||||||
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||||
}
|
}
|
||||||
|
@ -375,24 +376,14 @@ article.post .post-date {
|
||||||
|
|
||||||
.project-card a {
|
.project-card a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-card h2 {
|
.project-card h2 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 0.75em;
|
|
||||||
font-size: 1.1em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-card img {
|
.project-card img {
|
||||||
width: 100%;
|
max-width: 100%;
|
||||||
aspect-ratio: 640 / 480;
|
|
||||||
object-fit: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project-card p {
|
|
||||||
margin: 0.75em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CV */
|
/* CV */
|
||||||
|
|
|
@ -1,41 +1,37 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% macro project_card(path, permalink, title, description, image_path) %}
|
|
||||||
<div class="project-card">
|
|
||||||
<a href="{{ permalink }}">
|
|
||||||
{% if image_path is defined %}
|
|
||||||
{% set image = resize_image(path=image_path, width=640, height=480, op="fit") %}
|
|
||||||
<img src="{{ image.url }}" />
|
|
||||||
{% else %}
|
|
||||||
<img src="//picsum.photos/seed/{{ path | slugify }}/320/240" />
|
|
||||||
{% endif %}
|
|
||||||
<h2>{{ title }}</h2>
|
|
||||||
<p>{{ description }}</p>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
{% endmacro %}
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<article class="post panel">
|
<article class="post panel">
|
||||||
<h1 class="post-title">{{ section.title }}</h1>
|
<h1 class="post-title">{{ section.title }}</h1>
|
||||||
{{ section.content | safe }}
|
{{ section.content | safe }}
|
||||||
<div class="project-cards">
|
<div class="project-cards">
|
||||||
{% for path in section.subsections %}
|
{% for path in section.subsections %}
|
||||||
|
<div class="project-card">
|
||||||
{% set sect = get_section(path=path) %}
|
{% set sect = get_section(path=path) %}
|
||||||
{{ self::project_card(
|
<a href="{{ sect.permalink }}">
|
||||||
path=path,
|
<h2>{{ sect.title }}</h2>
|
||||||
permalink=sect.permalink,
|
{% if sect.extra.image is defined %}
|
||||||
title=sect.title,
|
{% set image = resize_image(path=sect.extra.image, width=640, height=480, op="fit") %}
|
||||||
description=sect.description,
|
<img src="{{ image.url }}" />
|
||||||
image_path=sect.extra.image,
|
{% else %}
|
||||||
) }}
|
<img src="//picsum.photos/seed/{{ path | slugify }}/320/240" />
|
||||||
|
{% endif %}
|
||||||
|
<p>{{ sect.description }}</p>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% for page in section.pages %}
|
{% for page in section.pages %}
|
||||||
{{ self::project_card(
|
<div class="project-card">
|
||||||
path=page.path,
|
<a href="{{ page.permalink }}">
|
||||||
permalink=page.permalink,
|
<h2>{{ page.title }}</h2>
|
||||||
title=page.title,
|
{% if page.extra.image is defined %}
|
||||||
description=page.description,
|
{% set image = resize_image(path=page.extra.image, width=640, height=480, op="fit") %}
|
||||||
image_path=page.extra.image,
|
<img src="{{ image.url }}" />
|
||||||
) }}
|
{% else %}
|
||||||
|
<img src="//picsum.photos/seed/{{ page.path | slugify }}/320/240" />
|
||||||
|
{% endif %}
|
||||||
|
<p>{{ page.description }}</p>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
Loading…
Reference in New Issue