Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8609b30e9 | ||
|
|
9799e04c01 | ||
|
|
f2b94b9c63 | ||
|
|
1dadc1054d | ||
|
|
a92d9e6488 | ||
|
|
195efd007d | ||
|
|
ced7b68762 | ||
|
|
7ecbb4da55 | ||
|
|
d41c1c31ad | ||
|
|
9813219413 | ||
|
|
b15bfc41fc | ||
|
|
05cca16107 | ||
|
|
2866717694 | ||
|
|
2ab6623201 | ||
|
|
406079d076 | ||
|
|
6e4752f62e | ||
|
|
a9a9403744 | ||
|
|
af261e747a | ||
|
|
84faab9b51 | ||
|
|
158621422d | ||
|
|
d926cdc4d6 | ||
|
|
26f1741ae6 | ||
|
|
722a9db853 | ||
|
|
cde62f43dc | ||
|
|
a08bca1fdd | ||
|
|
91165488d0 | ||
|
|
d8529efee9 | ||
|
|
10e8ad3be8 |
@@ -12,35 +12,25 @@ trigger:
|
||||
|
||||
steps:
|
||||
|
||||
- name: git pull submodules
|
||||
image: alpine/git
|
||||
# settings:
|
||||
# user:
|
||||
# from_secret: GIT_USER
|
||||
# password:
|
||||
# from_secret: GIT_PASSWORD
|
||||
commands:
|
||||
- git submodule update --init --recursive
|
||||
|
||||
- name: build hugo site
|
||||
# image: greglebreton/drone-hugo:arm64
|
||||
image: plugins/hugo
|
||||
settings:
|
||||
hugo_version: 0.69.0
|
||||
theme: ameida-cv
|
||||
hugo_version: 0.154.2
|
||||
theme: silhouette-hugo
|
||||
extended: true
|
||||
validate: true
|
||||
config: config.toml
|
||||
content: content
|
||||
output: ./public
|
||||
commands:
|
||||
- apk add libc6-compat libstdc++
|
||||
- /bin/hugo
|
||||
- hugo
|
||||
|
||||
- name: deploy site on server
|
||||
image: greglebreton/drone-rsync:aarch64
|
||||
settings:
|
||||
hosts: ["192.168.1.100"]
|
||||
target: /var/www/html/hugo-site
|
||||
hosts: ["192.168.0.100"]
|
||||
target: /var/www/html/gregandev.fr
|
||||
source: public/*
|
||||
port: 2021
|
||||
user:
|
||||
@@ -48,22 +38,27 @@ steps:
|
||||
key:
|
||||
from_secret: RSYNC_SSH_KEY
|
||||
|
||||
- name: notification
|
||||
image: appleboy/drone-telegram
|
||||
- name: notify
|
||||
image: greglebreton/drone-email:arm64
|
||||
settings:
|
||||
token:
|
||||
from_secret: TELEGRAM_TOKEN
|
||||
to:
|
||||
from_secret: TELEGRAM_USERID
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
format: markdown
|
||||
message: >
|
||||
📝 {{repo.name}} / {{commit.branch}} - {{commit.message}}
|
||||
from.address: contact@gregandev.fr
|
||||
host: mail.gregandev.fr
|
||||
port: 587
|
||||
debug: true
|
||||
username: contact@gregandev.fr
|
||||
password:
|
||||
from_secret: MAIL_PASSWORD
|
||||
recipients: [ greg@gregandev.fr ]
|
||||
subject: >
|
||||
[{{ build.status }}]
|
||||
{{ repo.owner }}/{{ repo.name }}
|
||||
body: >
|
||||
📝 {{repo.name}} / {{commit.branch}} - {{commit.message}} <br />
|
||||
{{#success build.status}}
|
||||
✅ succeeded for 👷♂️ build {{build.number}}
|
||||
{{else}}
|
||||
🛑 failed for 👷♂️ build {{build.number}}
|
||||
{{/success}}
|
||||
{{/success}}
|
||||
<br /><img src='https://git.gregandev.fr/assets/img/logo.svg'/>
|
||||
when:
|
||||
status: [ success, failure ]
|
||||
@@ -1,15 +0,0 @@
|
||||
[submodule "themes/hugo.386"]
|
||||
path = themes/hugo.386
|
||||
url = https://gitlab.com/jmfergeau/hugo.386
|
||||
[submodule "themes/simpleIntro"]
|
||||
path = themes/simpleIntro
|
||||
url = https://github.com/qub1750ul/hugo-simpleIntro
|
||||
[submodule "themes/graysx-hugo"]
|
||||
path = themes/graysx-hugo
|
||||
url = https://github.com/akatiggerx04/graysx-hugo/
|
||||
[submodule "themes/capsule"]
|
||||
path = themes/capsule
|
||||
url = https://github.com/sudorook/capsule
|
||||
[submodule "themes/silhouette-hugo"]
|
||||
path = themes/silhouette-hugo
|
||||
url = https://github.com/mattbutton/silhouette-hugo.git
|
||||
@@ -1,21 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Spencer Lyon
|
||||
|
||||
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.
|
||||
@@ -0,0 +1,15 @@
|
||||
# Migration
|
||||
|
||||
Cette archive est une refonte du contenu et du rendu Hugo.
|
||||
|
||||
À conserver depuis le dépôt existant avant remplacement :
|
||||
- `.drone.yml`
|
||||
- `Dockerfile`
|
||||
- `docker-compose.yml`
|
||||
- `nginx-proxy/`
|
||||
- les secrets CI/CD (ne jamais les mettre dans Git)
|
||||
- les assets/images utiles dans `static/images/`
|
||||
|
||||
Le nouveau `config.toml`, `content/`, `layouts/` et `assets/` sont prêts à remplacer les équivalents existants.
|
||||
|
||||
Les anciens projets VR/jeu vidéo peuvent être conservés dans une branche ou déplacés vers une section d'archive si tu souhaites garder l'historique.
|
||||
@@ -1,41 +1,61 @@
|
||||
# HUGO SITE
|
||||
# gregandev.fr — Portfolio DevOps / SRE
|
||||
|
||||
Hugo est un framework open source pour générer facilement des sites webs (https://gohugo.io/)
|
||||
Portfolio professionnel de Grégory Lebreton, construit avec Hugo.
|
||||
|
||||
## Positionnement
|
||||
|
||||
### HUGO INSTALL
|
||||
Le site est volontairement orienté :
|
||||
|
||||
Voir sur le site https://gohugo.io/ selon vtre OS et distribution
|
||||
- Infrastructure Linux
|
||||
- Automation / Infrastructure as Code
|
||||
- CI/CD
|
||||
- Docker / Kubernetes
|
||||
- Observability
|
||||
- Reliability / backup / PRA
|
||||
- Documentation et transmission
|
||||
|
||||
### UTILISATION
|
||||
## Architecture
|
||||
|
||||
```bash
|
||||
hugo new site monsite
|
||||
Le thème Silhouette a été remplacé par des layouts Hugo locaux afin de maîtriser complètement le rendu et d'éviter qu'un thème générique de portfolio ne domine le positionnement technique.
|
||||
|
||||
```text
|
||||
content/
|
||||
├── experience/
|
||||
├── projects/
|
||||
├── lab/
|
||||
├── stack/
|
||||
├── notes/
|
||||
└── about/
|
||||
|
||||
layouts/
|
||||
├── _default/
|
||||
├── partials/
|
||||
├── projects/
|
||||
├── experience/
|
||||
├── lab/
|
||||
└── notes/
|
||||
|
||||
assets/
|
||||
├── css/
|
||||
└── js/
|
||||
```
|
||||
|
||||
#### Installer un thème:
|
||||
|
||||
```bash
|
||||
git init
|
||||
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
|
||||
echo theme = \"ananke\" >> config.toml
|
||||
```
|
||||
|
||||
#### Ajouter un nouveau post:
|
||||
|
||||
```bash
|
||||
hugo new posts/my-first-post.md
|
||||
```
|
||||
|
||||
|
||||
#### lancer le serveur en local:
|
||||
## Développement local
|
||||
|
||||
```bash
|
||||
hugo server -D
|
||||
```
|
||||
|
||||
Visiter http://localhost:1313
|
||||
Build de production :
|
||||
|
||||
#### Déployer via Docker:
|
||||
```bash
|
||||
hugo --minify
|
||||
```
|
||||
|
||||
Visiter la branch docker
|
||||
## CI/CD
|
||||
|
||||
Le dépôt historique utilise Drone CI pour construire et déployer le site. Cette refonte conserve volontairement cette approche : le portfolio peut ainsi démontrer une chaîne Git → CI → build Hugo → déploiement.
|
||||
|
||||
## Important
|
||||
|
||||
Les projets et expériences sont à compléter avec les réalisations réelles, métriques et liens disponibles. Les sections de lab servent à distinguer les expérimentations personnelles des expériences professionnelles.
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');
|
||||
|
||||
:root {
|
||||
--bg: #0b0d0f;
|
||||
--surface: #111417;
|
||||
--surface-2: #171b1f;
|
||||
--text: #e7ebe8;
|
||||
--muted: #99a39e;
|
||||
--line: #29302e;
|
||||
--accent: #8fe388;
|
||||
--accent-dark: #162319;
|
||||
--max: 1120px;
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
html { scroll-behavior: smooth; }
|
||||
body { margin:0; background:var(--bg); color:var(--text); font-family:Inter,system-ui,sans-serif; line-height:1.7; }
|
||||
a { color:var(--text); text-decoration:none; }
|
||||
a:hover { color:var(--accent); }
|
||||
.container { width:min(calc(100% - 40px), var(--max)); margin:auto; }
|
||||
.site-header { border-bottom:1px solid var(--line); position:sticky; top:0; background:rgba(11,13,15,.94); backdrop-filter:blur(12px); z-index:10; }
|
||||
.nav { min-height:70px; display:flex; align-items:center; gap:28px; }
|
||||
.brand { font:500 15px "IBM Plex Mono",monospace; white-space:nowrap; }
|
||||
.brand strong, .brand span { color:var(--accent); }
|
||||
.nav nav { display:flex; gap:20px; margin-left:auto; }
|
||||
.nav nav a, .nav-links a { font:400 12px "IBM Plex Mono",monospace; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
|
||||
.nav-links { display:flex; gap:12px; padding-left:12px; border-left:1px solid var(--line); }
|
||||
.hero { padding:110px 0 80px; max-width:900px; }
|
||||
.eyebrow, .status, .project-index { font:500 11px "IBM Plex Mono",monospace; color:var(--accent); text-transform:uppercase; letter-spacing:.12em; }
|
||||
.hero h1 { font-size:clamp(42px,8vw,82px); line-height:1; margin:12px 0; letter-spacing:-.055em; }
|
||||
.hero-role { font-size:clamp(25px,4vw,42px); margin:0; font-weight:600; }
|
||||
.hero-subtitle { font:500 14px "IBM Plex Mono",monospace; color:var(--accent); margin:12px 0 25px; }
|
||||
.hero-copy { max-width:760px; color:var(--muted); font-size:18px; }
|
||||
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
|
||||
.button { display:inline-block; border:1px solid var(--line); padding:10px 15px; font:500 12px "IBM Plex Mono",monospace; text-transform:uppercase; }
|
||||
.button:hover { border-color:var(--accent); }
|
||||
.button-primary { background:var(--accent); color:#0b0d0f; border-color:var(--accent); }
|
||||
.button-primary:hover { color:#0b0d0f; }
|
||||
.prose { color:#c9cfcb; max-width:800px; }
|
||||
.prose h2 { margin-top:48px; color:var(--text); }
|
||||
.prose h3 { color:var(--text); margin-top:30px; }
|
||||
.prose code, pre { font-family:"IBM Plex Mono",monospace; }
|
||||
.prose code { background:var(--surface-2); padding:2px 5px; }
|
||||
.prose pre { background:#070809; border:1px solid var(--line); padding:20px; overflow:auto; }
|
||||
.prose blockquote { margin:30px 0; padding:15px 20px; border-left:2px solid var(--accent); color:var(--muted); background:var(--surface); }
|
||||
.page-header { padding:75px 0 45px; border-bottom:1px solid var(--line); margin-bottom:45px; }
|
||||
.page-header h1 { font-size:clamp(40px,6vw,64px); line-height:1.05; margin:8px 0; letter-spacing:-.04em; }
|
||||
.lead { color:var(--muted); font-size:18px; max-width:760px; }
|
||||
.engineering-grid, .project-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:25px 0 65px; }
|
||||
.engineering-grid article, .project-card, .lab-card { border:1px solid var(--line); background:var(--surface); padding:22px; }
|
||||
.engineering-grid span { font:12px "IBM Plex Mono",monospace; color:var(--accent); }
|
||||
.engineering-grid h3 { margin:10px 0 4px; }
|
||||
.engineering-grid p, .project-card p, .lab-card p { color:var(--muted); margin:0; }
|
||||
.project-card { min-height:230px; display:flex; flex-direction:column; }
|
||||
.project-top { display:flex; justify-content:space-between; margin-bottom:25px; }
|
||||
.project-index { color:#59635e; }
|
||||
.project-card h2 { font-size:22px; margin:0 0 8px; }
|
||||
.project-card p { margin-bottom:18px; }
|
||||
.tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; }
|
||||
.tags span { font:11px "IBM Plex Mono",monospace; color:#aab3ae; border:1px solid var(--line); padding:3px 7px; }
|
||||
.tags-large { margin:20px 0; }
|
||||
.project-link { font:12px "IBM Plex Mono",monospace; color:var(--accent); margin-top:16px; }
|
||||
.timeline { border-left:1px solid var(--line); }
|
||||
.timeline-item { display:grid; grid-template-columns:230px 1fr; gap:35px; padding:30px 0 30px 28px; position:relative; }
|
||||
.timeline-item:before { content:""; width:7px; height:7px; background:var(--accent); position:absolute; left:-4px; top:39px; }
|
||||
.timeline-item h2 { margin:0 0 3px; }
|
||||
.muted { color:var(--muted); }
|
||||
.notes-list { display:grid; gap:0; }
|
||||
.notes-list article { display:grid; grid-template-columns:140px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
|
||||
.notes-list span { font:11px "IBM Plex Mono",monospace; color:var(--muted); }
|
||||
.notes-list h2 { margin:0; font-size:20px; }
|
||||
.notes-list p { grid-column:2; margin:0; color:var(--muted); }
|
||||
.site-footer { margin-top:100px; border-top:1px solid var(--line); }
|
||||
.footer-inner { min-height:80px; display:flex; justify-content:space-between; align-items:center; color:var(--muted); font:11px "IBM Plex Mono",monospace; }
|
||||
@media(max-width:850px) {
|
||||
.nav nav { display:none; }
|
||||
.nav-links { margin-left:auto; }
|
||||
.engineering-grid, .project-grid { grid-template-columns:1fr 1fr; }
|
||||
.timeline-item { grid-template-columns:1fr; gap:5px; }
|
||||
.notes-list article { grid-template-columns:1fr; }
|
||||
.notes-list p { grid-column:auto; }
|
||||
}
|
||||
@media(max-width:560px) {
|
||||
.container { width:min(calc(100% - 28px), var(--max)); }
|
||||
.hero { padding:75px 0 55px; }
|
||||
.engineering-grid, .project-grid { grid-template-columns:1fr; }
|
||||
.footer-inner { flex-direction:column; align-items:flex-start; justify-content:center; gap:5px; }
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
document.documentElement.classList.add("js");
|
||||
@@ -1,106 +1,23 @@
|
||||
# Configuration de l'adresse, titre (onglet) et des chemins vers les contenus
|
||||
baseurl = "/"
|
||||
contentdir = "content"
|
||||
layoutdir = "layouts"
|
||||
publishdir = "public"
|
||||
title = "Gregandev"
|
||||
canonifyurls = true
|
||||
logo = "images/logos/logo.png"
|
||||
favicon = "images/logos/favicon.png"
|
||||
|
||||
author = "Grégory Lebreton"
|
||||
paginate = 3
|
||||
theme = "silhouette-hugo"
|
||||
|
||||
pygmentsUseClasses=true
|
||||
|
||||
#disqusShortname = ""
|
||||
#googleAnalytics = ""
|
||||
baseURL = "https://gregandev.fr/"
|
||||
languageCode = "fr-fr"
|
||||
defaultContentLanguage = "fr"
|
||||
title = "Grégory Lebreton — Ingénieur DevOps / SRE"
|
||||
enableRobotsTXT = true
|
||||
enableGitInfo = true
|
||||
|
||||
[params]
|
||||
author = "Grégory Lebreton"
|
||||
introDescription = "Ingénieur Devops"
|
||||
contentSharing = ""
|
||||
description = "Portfolio de Grégory Lebreton, ingénieur DevOps / SRE orienté infrastructure, automatisation, CI/CD, conteneurs et observabilité."
|
||||
author = "Grégory Lebreton"
|
||||
github = "https://github.com/greglebreton"
|
||||
gitlab = "https://gitlab.com/greglebreton"
|
||||
linkedin = "https://www.linkedin.com/in/grégory-lebreton-996b261bb/"
|
||||
email = "greg"
|
||||
|
||||
[social]
|
||||
github = "greglebreton"
|
||||
linkedin = "grégory-lebreton-996b261bb"
|
||||
gitlab = "greglebreton"
|
||||
|
||||
|
||||
|
||||
# CONFIG LANGAGE ET THEME
|
||||
DefaultContentLanguage = "fr"
|
||||
# theme = ["osm", "beautifulhugo"]
|
||||
theme = "silhouette-hugo"
|
||||
metaDataFormat = "yaml"
|
||||
pygmentsUseClasses = true
|
||||
pygmentCodeFences = true
|
||||
|
||||
|
||||
# [params]
|
||||
# mainbg = "images/unix.jpg"
|
||||
# name = "Gregandev"
|
||||
# # mainTitle = "Portfolio"
|
||||
# mainText = "Devops for Game"
|
||||
# # subtitle = "Portfolio"
|
||||
# since = 2022
|
||||
# logo = "images/logos/logo.png"
|
||||
# favicon = "images/logos/favicon.png"
|
||||
# dateFormat = "January 2, 2006"
|
||||
# commit = false
|
||||
# rss = false
|
||||
# comments = true
|
||||
|
||||
# [menus]
|
||||
# [[menu.main]]
|
||||
# identifier = "about"
|
||||
# name = "A propos"
|
||||
# url = "page/about"
|
||||
# [[menu.main]]
|
||||
# identifier = "skills"
|
||||
# name = "Liens"
|
||||
# url = "page/liens"
|
||||
# [[menu.main]]
|
||||
# identifier = "projects"
|
||||
# name = "Projects"
|
||||
# url = "page/projects"
|
||||
# [[menu.main]]
|
||||
# identifier = "projects"
|
||||
# name = "CV"
|
||||
# url = "https://cv.gregandev.fr"
|
||||
|
||||
# # ACCUEIL
|
||||
# [Params]
|
||||
# subtitle = "Portfolio"
|
||||
# since = 2022
|
||||
# logo = "images/logos/logo.png"
|
||||
# favicon = "images/logos/favicon.png"
|
||||
# dateFormat = "January 2, 2006"
|
||||
# commit = false
|
||||
# rss = false
|
||||
# comments = true
|
||||
|
||||
# ICONES RESEAUX SOCIAUX
|
||||
[Author]
|
||||
name = "Greg Lebreton"
|
||||
email = "contact@gregandev.fr"
|
||||
# gitlab = "GregLebreton"
|
||||
github = "GregLebreton"
|
||||
linkedin = "grégory-lebreton-996b261bb"
|
||||
itchio = "gregan"
|
||||
|
||||
#twitter = "Gregan"
|
||||
#reddit = "username"
|
||||
#stackoverflow = "users/XXXXXXX/username"
|
||||
#instagram = "username"
|
||||
#youtube = "user/username" # or channel/channelname
|
||||
#spotify = "username"
|
||||
#keybase = "username"
|
||||
#xing = "username"
|
||||
#bandcamp = "username"
|
||||
#snapchat = "username"
|
||||
#soundcloud = "username"
|
||||
#facebook = "username"
|
||||
#googleplus = "+username" # or xxxxxxxxxxxxxxxxxxxxx
|
||||
[taxonomies]
|
||||
category = "categories"
|
||||
tag = "tags"
|
||||
|
||||
[markup]
|
||||
[markup.goldmark]
|
||||
[markup.goldmark.renderer]
|
||||
unsafe = true
|
||||
|
||||
@@ -1,29 +1,50 @@
|
||||
---
|
||||
title: Accueil
|
||||
title: "Grégory Lebreton"
|
||||
description: "Ingénieur DevOps / SRE — Infrastructure, automatisation, CI/CD, conteneurs et observabilité."
|
||||
---
|
||||
|
||||
<div class="contenu">
|
||||
## Ingénieur DevOps / SRE
|
||||
|
||||
### INTRODUCTION
|
||||
**Infrastructure · Automation · CI/CD · Containers · Observability**
|
||||
|
||||
Développeur passionné par les technologies de l'information et de communication, autodidacte de formation, j'aime le partage de connaissances par l'intermédiaire de tout vecteur possible dont l'open source !
|
||||
Je conçois, automatise et exploite des infrastructures Linux et des plateformes de déploiement.
|
||||
|
||||
### LES PROJETS
|
||||
Mon travail se situe à l'intersection de l'administration système, du développement et de l'industrialisation : Infrastructure as Code, configuration management, conteneurisation, CI/CD, monitoring, sauvegarde et documentation.
|
||||
|
||||
Voici les projets sur lesquels je travaille actuellement :
|
||||
<div class="hero-actions">
|
||||
<a class="button button-primary" href="/projects/">Voir les projets</a>
|
||||
<a class="button" href="/experience/">Parcours professionnel</a>
|
||||
</div>
|
||||
|
||||
[]({{< relref "page/la-2029.md" >}})
|
||||
## Engineering
|
||||
|
||||
[]({{< relref "page/goldeneyevr.md" >}})
|
||||
<div class="engineering-grid">
|
||||
<article><span>01</span><h3>Systems</h3><p>Linux · Debian · VPS · On-premise · Réseau</p></article>
|
||||
<article><span>02</span><h3>Automation</h3><p>Ansible · Terraform · Python · Bash</p></article>
|
||||
<article><span>03</span><h3>Delivery</h3><p>Git · CI/CD · Jenkins · Drone CI</p></article>
|
||||
<article><span>04</span><h3>Platform</h3><p>Docker · Docker Compose · Kubernetes</p></article>
|
||||
<article><span>05</span><h3>Observability</h3><p>Prometheus · Grafana · supervision</p></article>
|
||||
<article><span>06</span><h3>Reliability</h3><p>Backup · restauration · PRA · documentation</p></article>
|
||||
</div>
|
||||
|
||||
[]({{< relref "page/akiravr.md" >}})
|
||||
## Projets mis en avant
|
||||
|
||||
[]({{< relref "page/retroarcade.md" >}})
|
||||
<div class="project-grid">
|
||||
{{ range where (where .Site.RegularPages "Params.featured" true) "Section" "projects" }}
|
||||
{{ partial "project-card.html" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
[]({{< relref "page/garagenum.md" >}})
|
||||
## Actuellement
|
||||
|
||||
[]({{< relref "page/cnam.md" >}})
|
||||
**Le Garage Numérique — Paris**
|
||||
|
||||
[](https://git.gregandev.fr/explore/repos)
|
||||
Formateur DevOps / Administrateur Systèmes.
|
||||
|
||||
</div>
|
||||
Infrastructure · Automation · Platform · Observability
|
||||
|
||||
## Approche
|
||||
|
||||
> Je construis → j'automatise → je déploie → je supervise → je documente.
|
||||
|
||||
Je privilégie les environnements reproductibles, les processus simples à exploiter et les solutions dont le fonctionnement peut être compris, testé et maintenu.
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: "À propos"
|
||||
description: "Profil de Grégory Lebreton."
|
||||
---
|
||||
|
||||
# À propos
|
||||
|
||||
Ingénieur DevOps / SRE et administrateur systèmes, également formateur technique.
|
||||
|
||||
Je m'intéresse particulièrement à l'automatisation, à la reproductibilité des environnements, à la fiabilité des déploiements et à la conception de plateformes simples à exploiter et maintenir.
|
||||
|
||||
## Formation
|
||||
|
||||
- Ingénieur DevOps — GT'm Ingénierie
|
||||
- Concepteur Développeur Informatique — AFPA Paris XII
|
||||
- Bac ES
|
||||
|
||||
## Langues
|
||||
|
||||
- Français — natif
|
||||
- Anglais — C2
|
||||
- Espagnol — B1
|
||||
- Allemand — B1
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: "Expérience"
|
||||
description: "Expérience professionnelle en administration systèmes, DevOps, développement et formation technique."
|
||||
---
|
||||
|
||||
# Expérience
|
||||
|
||||
Un parcours à l'interface entre développement logiciel, administration systèmes, infrastructure et transmission des compétences.
|
||||
|
||||
{{ range .Pages.ByDate.Reverse }}
|
||||
<article class="timeline-item">
|
||||
<div class="timeline-date">{{ .Params.period }}</div>
|
||||
<div>
|
||||
<h2>{{ .Title }}</h2>
|
||||
<p class="muted">{{ .Params.company }} · {{ .Params.location }}</p>
|
||||
{{ .Content }}
|
||||
{{ with .Params.technologies }}<div class="tags">{{ range . }}<span>{{ . }}</span>{{ end }}</div>{{ end }}
|
||||
</div>
|
||||
</article>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: "Ingénieur / Développeur freelance"
|
||||
company: "Freelance"
|
||||
location: "France"
|
||||
period: "Janvier 2020 — Février 2021"
|
||||
date: 2020-01-01
|
||||
technologies: ["Python", "PHP", "SQL", "Linux", "Docker", "Git"]
|
||||
---
|
||||
|
||||
Interventions sur des projets logiciels et infrastructure, avec une attention portée à l'automatisation, au déploiement et à la maintenabilité.
|
||||
|
||||
- Développement d'outils et d'applications.
|
||||
- Administration d'environnements Linux.
|
||||
- Automatisation et scripting.
|
||||
- Intégration et déploiement d'applications.
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: "Formateur DevOps / Administrateur Systèmes"
|
||||
company: "Le Garage Numérique"
|
||||
location: "Paris"
|
||||
period: "Mars 2021 — aujourd'hui"
|
||||
date: 2021-03-01
|
||||
technologies: ["Linux", "Ansible", "Docker", "CI/CD", "Monitoring", "Git"]
|
||||
---
|
||||
|
||||
Accompagnement technique et transmission autour de l'administration systèmes, du DevOps et des pratiques d'industrialisation.
|
||||
|
||||
- Administration et maintenance d'environnements Linux.
|
||||
- Automatisation des opérations récurrentes.
|
||||
- Accompagnement sur Git, conteneurs et chaînes de déploiement.
|
||||
- Mise en place et documentation de pratiques reproductibles.
|
||||
- Formation et accompagnement de publics techniques.
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "Développeur"
|
||||
company: "Leading Frog"
|
||||
location: "France"
|
||||
period: "Octobre 2017 — Décembre 2018"
|
||||
date: 2017-10-01
|
||||
technologies: ["PHP", "JavaScript", "SQL", "Git"]
|
||||
---
|
||||
|
||||
Développement d'applications web et participation aux différentes étapes du cycle de vie logiciel.
|
||||
|
||||
- Développement et maintenance.
|
||||
- Intégration de fonctionnalités.
|
||||
- Correction et évolution d'applications existantes.
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "Ingénieur développement"
|
||||
company: "Safran Aircraft Engines"
|
||||
location: "France"
|
||||
period: "Juin 2019 — Décembre 2019"
|
||||
date: 2019-06-01
|
||||
technologies: ["C#", "SQL", "Git", "Industrialisation"]
|
||||
---
|
||||
|
||||
Participation au développement et à l'industrialisation de solutions logicielles dans un contexte industriel.
|
||||
|
||||
- Développement et maintenance d'applications.
|
||||
- Travail avec des environnements techniques contraints.
|
||||
- Collaboration avec les équipes projet et documentation des solutions.
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
title: "Lab"
|
||||
description: "Laboratoire personnel : infrastructure, automatisation, Kubernetes et observabilité."
|
||||
---
|
||||
|
||||
# Lab
|
||||
|
||||
Le lab sert à tester des architectures et des outils avant de les documenter ou de les réutiliser.
|
||||
|
||||
{{ range .Pages.ByDate.Reverse }}
|
||||
<article class="lab-card">
|
||||
<h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
|
||||
<p>{{ .Description }}</p>
|
||||
</article>
|
||||
{{ end }}
|
||||
|
||||
## Axes
|
||||
|
||||
- Linux & administration systèmes
|
||||
- Infrastructure as Code
|
||||
- Ansible & automatisation
|
||||
- Docker & Kubernetes
|
||||
- Prometheus & Grafana
|
||||
- CI/CD
|
||||
- Backup, restauration et PRA
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Automation Lab"
|
||||
description: "Expérimentations autour de l'automatisation système et de l'idempotence."
|
||||
date: 2026-09-01
|
||||
---
|
||||
|
||||
Tests de rôles Ansible, scripts Bash/Python et procédures de provisioning reproductibles.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Observability Lab"
|
||||
description: "Expérimentations autour des métriques, dashboards et alertes."
|
||||
date: 2026-09-01
|
||||
---
|
||||
|
||||
Expérimentations Prometheus/Grafana : collecte de métriques, dashboards et supervision de services.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Notes"
|
||||
description: "Notes techniques et retours d'expérimentation."
|
||||
---
|
||||
|
||||
# Notes techniques
|
||||
|
||||
Cette section accueillera progressivement des articles courts et reproductibles : procédures, retours de lab, automatisation et troubleshooting.
|
||||
@@ -1,12 +1,13 @@
|
||||
---
|
||||
title: MON PARCOURS
|
||||
subtitle:
|
||||
title: "MON PARCOURS"
|
||||
comments: false
|
||||
description: "Mon parcours, mes compétences"
|
||||
draft: false
|
||||
---
|
||||
|
||||
Après mon Baccalauréat, j'ai choisit de travailler pour être indépendant. C'est plus tard que j'ai trouvé ma vocation et alors ai entrepris de reprendre les études nécessaires pour faire le méter de mes rêves.
|
||||
Après mon Baccalauréat, j'ai choisi de travailler pour être indépendant. C'est plus tard que j'ai trouvé ma vocation et alors ai entrepris de reprendre les études nécessaires pour faire le méter de mes rêves.
|
||||
|
||||
#### CONCEPTEUR DEVELOPPEUR APPLICATION JAVA
|
||||
#### 
|
||||
|
||||
La formation de concepteur développeur informatique était orientée Java et web, avec le développement d'applications gérant aussi bien le Frontend que le Backend avec un affichage fenêtré géré par Swing ou un affichage par Jsp.
|
||||
|
||||
@@ -17,7 +18,7 @@ En conception, j'ai été formé à la méthode Merise ainsi que l'UML pour la m
|
||||
|
||||
[](https://www.afpa.fr/)
|
||||
|
||||
#### DEV PHP LEADING FROG
|
||||
#### 
|
||||
|
||||
J'ai eu la chance de pouvoir développer un module en PHP pour une application liscenciée par Leading Frog.
|
||||
|
||||
@@ -26,40 +27,46 @@ différents modules comme la consultation d'horaires des transports (avions, bus
|
||||
|
||||
Mon module propose de choisir parmi des photos selectionnées par l'établissement pour les envoyer via un service payant (stripe) sous forme de carte postale.
|
||||
|
||||
Une fois le paiement effectué, une notification est envoyée à Leading Frog proposant d'imprimer la carte postale avec le visuel précédement choisi et l'adresse de destination déjà saisie.
|
||||
Une fois le paiement effectué, une notification est envoyée à Leading Frog proposant d'imprimer la carte postale avec le visuel précédement choisi et à l'adresse de destination déjà saisie.
|
||||
|
||||
[](https://news.leadingfrog.com/)
|
||||
[](https://news.leadingfrog.com/)
|
||||
|
||||
#### DEVOPS
|
||||
#### 
|
||||
|
||||
Puis j'ai suivi une formation DEVOPS avec l'utilisation d'outils comme Jenkins, Ansible ou Kubernetes qui change la façon de concevoir, développer et déployer des services informatiques.
|
||||
|
||||
[](https://fr.wikipedia.org/wiki/Devops)
|
||||
[](https://fr.wikipedia.org/wiki/Devops)
|
||||
|
||||
#### 
|
||||
|
||||
## MON TRAVAIL
|
||||
-----------
|
||||
|
||||
[]({{< relref "page/garagenum.md" >}})
|
||||
|
||||
Je suis actuellement employé au Garage Numérique en tant que formateur Devops, avec également les casquettes d'administrateur systèmes, développeur et intégrateur.
|
||||
|
||||
C'est dans cet incubateur de talents que j'ai développé une application web de quiz en python via le framework Django, implémenter l'identification centralisée avec le logiciel Keycloak sur tous les services de l'association ([Nextcloud](https://nextcloud.com/fr/), [Kanboard](https://kanboard.org/), [Element](https://element.io/), [Workadventure](https://workadventu.re/), [Portainer](https://www.portainer.io/), [Jenkins](https://www.jenkins.io/), [Penpot](https://penpot.app/), [Gitea](https://gitea.com/)), ainsi que tout un système de PRA avec sauvegardes régulières et redéploiement automatiseé via: [Ansible](https://www.ansible.com/).
|
||||
C'est dans cet incubateur de talents que j'ai développé une application web de quiz en python via le framework [Django](https://www.djangoproject.com/), implémenter l'identification centralisée avec le logiciel Keycloak sur tous les services de l'association ([Nextcloud](https://nextcloud.com/fr/), [Kanboard](https://kanboard.org/), [Element](https://element.io/), [Workadventure](https://workadventu.re/), [Portainer](https://www.portainer.io/), [Jenkins](https://www.jenkins.io/), [Penpot](https://penpot.app/), [Gitea](https://gitea.com/)), ainsi que tout un système de PRA avec sauvegardes régulières et redéploiement automatiseé via: [Ansible](https://www.ansible.com/).
|
||||
|
||||
[]({{< relref "page/cnam.md" >}})
|
||||
|
||||
Le [CNAM](https://www.cnam.fr/) est un partenaire dans la formation des jeunes aux métiers de demain, il développe de nouvelles filières qui visent à répondre aux besoins des professionnels de l'informatique et permettent la reconnaissance des nouvelles compétences de l'IT par l'intermédiaire de dipômes.
|
||||
|
||||
## MES PASSIONS
|
||||
-----------
|
||||
#### 
|
||||
|
||||
#### SKATEBOARD
|
||||
[](https://cv.gregandev.fr)
|
||||
|
||||
## 
|
||||
|
||||
|
||||
#### 
|
||||
|
||||
Une autre de mes passion, le skateboard. La plaisir de cruiser avec sa board un soir d'été afin de sentir le vent rafraîchir ces tempes est un des plaisirs de la vie.
|
||||
|
||||
[](https://www.youtube.com/@TheGregan77)
|
||||
|
||||
#### VR GAMES
|
||||
[](https://www.youtube.com/@TheGregan77)
|
||||
|
||||
#### 
|
||||
|
||||
Je suis depuis le début cette technologie qui me fascine tant par son aspect futuriste que par les possibilités qu'elle offre.
|
||||
|
||||

|
||||

|
||||
@@ -1,15 +1,20 @@
|
||||
---
|
||||
title: Le CNAM
|
||||
title: LE CNAM
|
||||
subtitle: conservatoire national des arts et métiers
|
||||
comments: false
|
||||
description: la partie pédagogique de mon travail
|
||||
---
|
||||
|
||||
#### 
|
||||
|
||||

|
||||
|
||||
Dans le cadre d'un partenariat entre le Garage Numérique et le CNAM, j'anime les cours de spécialité DEVOPS technicien d'exploitation.
|
||||
|
||||
Cela me permet de former les jeunes à l'informatique de demain dans une branche offrant tant de métiers différents qu'il est souvent difficile de s'orienter pour un étudiant.
|
||||
|
||||
Pour connaître le contenu de la formation, cliquez sur le logo ci-dessous:
|
||||
Pour connaître le contenu de la formation:
|
||||
|
||||
[](https://formation.cnam.fr/rechercher-par-discipline/technicien-developpement-securite-et-exploitation-1357504.kjsp?RF=)
|
||||
[](https://informatique.cnam.fr/fr/spip.php?article1739)
|
||||
|
||||
[](https://informatique.cnam.fr/fr/spip.php?article1739)
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
title: LE GARAGE NUMERIQUE
|
||||
subtitle:
|
||||
comments: false
|
||||
description: la partie "technique" de mon travail
|
||||
---
|
||||
|
||||
[](https://fr.wikipedia.org/wiki/Linux)
|
||||
|
||||
### L'ASSOCIATION
|
||||
### 
|
||||
|
||||
[](https://www.legaragenumerique.fr)
|
||||
|
||||
@@ -16,37 +16,45 @@ Nous avons pour but de former la population à l'utilisation de logiciels libres
|
||||
|
||||
Au Garage Numérique, on répare, on reconditionne et on forme les habitants aux outils libres pour une égalité numérique!
|
||||
|
||||
---------------
|
||||
### MON TRAVAIL
|
||||
[](https://fr.wikipedia.org/wiki/Linux) [](https://fr.wikipedia.org/wiki/Debian)
|
||||
|
||||

|
||||
### 
|
||||
|
||||
##### MES RÔLES
|
||||

|
||||
|
||||
Mon travail au "Garage" revêt de multiples facettes:
|
||||
##### 
|
||||
|
||||
- Je suis formateur Technicien d'exploitation Devops au CNAM pour des étudiants BAC +1.
|
||||
Voici mes principaux rôles au Garage Numérique:
|
||||
|
||||
- Je suis également Administrateur système, en charge de maintenir les serveurs du Garage opérationnels, à jour et sécurisés.
|
||||
Dans ce cadre, j'ai déployé un PRA (Plan Reprise d'Activité) visant à sauvegarder les applicatifs régulièrement et redéployer ceux-ci en cas de problèmes sur les serveurs.
|
||||
* Je suis formateur Devops au [CNAM](https://www.cnam.fr) pour des étudiants BAC +1 ainsi que pour les élèves su Pass numérique pro. Cela me permet de rester en perpétuelle veille technologique afin de transmetre les dernières technos utilisées.
|
||||
|
||||
- J'ai aussi la casquette de développeur / intégrateur des applications déployés sur les serveurs de l'association.
|
||||
* Je suis également Administrateur système, en charge de maintenir les serveurs du Garage opérationnels, à jour et sécurisés. La mise en place d'un monitoring automatisé autour de [Prometheus](https://prometheus.io/) ainsi que d'un système de BACKUP régulières permettant de récupérer rapidement en cas d'incident sur un serveur.
|
||||
|
||||
##### LES PROJETS
|
||||
* Je développe également des applications pour la Garage et les intègre dans notre [ecosystème](https://git.legaragenumerique.fr/GARAGENUM/ecosysteme) afin de proposer toujours plus de services utiles à la communauté.
|
||||
|
||||
- Le framework python Django m'a permis de développer une application de quiz avec connection centralisée (SSO) vers le gestionnaire d'identité du Garage: Keycloak
|
||||
##### 
|
||||
|
||||
- Le framework python Django m'a permis de développer une application de quiz avec connection centralisée (SSO) vers le gestionnaire d'identité du Garage: Keycloak.
|
||||
|
||||
[](https://www.djangoproject.com/)
|
||||
|
||||
[](https://www.keycloak.org/)
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source](https://git.legaragenumerique.fr/GARAGENUM/django-quiz/src/branch/keycloak)
|
||||
|
||||
___
|
||||
|
||||
|
||||
- A la manière de [OVERTHEWIRE](https://overthewire.org/wargames/bandit/), nous avons créé un "bash game" pour faire découvrir aux étudiants les commandes terminal Linux via un jeux:
|
||||
|
||||
[](https://devops.legaragenumerique.fr/)
|
||||
|
||||
Pour déployer l'application sur les serveurs du Garage, nous avons choisi de "dockerisé" celle-ci afin d'optimiser et de sécuriser notre serveur via l'outil Docker.
|
||||
Pour déployer l'application sur les serveurs du Garage, nous avons choisi de "conteneuriser" celle-ci afin d'optimiser et de sécuriser notre serveur via l'outil [Docker](https://www.docker.com/).
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source](https://git.legaragenumerique.fr/GARAGENUM/enter-bash)
|
||||
|
||||
___
|
||||
|
||||
[](https://www.docker.com/)
|
||||
|
||||
- Nous avons également déployer un méta-verse permettant aux étudiants de se retrouver d'une manière ludique pour travailler:
|
||||
|
||||
@@ -54,6 +62,64 @@ Pour déployer l'application sur les serveurs du Garage, nous avons choisi de "d
|
||||
|
||||
Développé par [The Coding Machine](https://thecodingmachine.com/)
|
||||
|
||||
- Nous avons constitué une documentation au fil du temps archivant nos process et beacoup de connaissances utiles dans l'informatique hébergé sur Gitlab et mise à jour régulièrement:
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source](https://github.com/workadventure/workadventure)
|
||||
|
||||
[](https://garagenum.gitlab.io/doc/)
|
||||
___
|
||||
|
||||
|
||||
- Afin d'assurer "l'indépendance de notre code", nous hébergeons un SCM ([Gitea](https://about.gitea.com/)) ainsi qu'une plateforme de CI/CD via [Drone CI](https://www.drone.io/):
|
||||
|
||||
[](https://git.legaragenumerique.fr)
|
||||
|
||||
|
||||
{{< icons "fab fa-github" "fa-2x" >}} [code source](https://git.legaragenumerique.fr/GARAGENUM/gitea-drone-ci)
|
||||
|
||||
|
||||
___
|
||||
|
||||
|
||||
|
||||
- A l'heure de l'intelligence artificielle, le Garage à déployé son propre [LLM](https://fr.wikipedia.org/wiki/Grand_mod%C3%A8le_de_langage) open source permettant d'intéragir avec une "intelligence artificielle".
|
||||
|
||||
[](https://ai.legaragenumerique.xyz)
|
||||
|
||||
Les modèles déployés sont:
|
||||
- [ChatGPT 3.5](https://huggingface.co/openai-community/openai-gpt) Modèle de language conversationnel
|
||||
- [Stable diffusion](https://huggingface.co/runwayml/stable-diffusion-v1-5) Modèle de générateur d'images
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source](https://git.legaragenumerique.fr/GARAGENUM/garage-AI)
|
||||
|
||||
___
|
||||
|
||||
|
||||
|
||||
- Un Curiculum Vitae via le framework [HUGO](https://gohugo.io/):
|
||||
|
||||
[](https://cv.gregandev.fr/)
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source](https://git.gregandev.fr/gregandev/hugo-cv)
|
||||
|
||||
___
|
||||
|
||||
|
||||
- Dans le cadre du CNAM, nous avon développé un exemple d'API simple en Python Flask ainsi que son client Android en python via les modules Kivy et Buildozer:
|
||||
|
||||
[](https://git.legaragenumerique.fr/GARAGENUM/python-api)
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source API](https://git.legaragenumerique.fr/GARAGENUM/python-api)
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source client Android](https://git.legaragenumerique.fr/GARAGENUM/python-kivy)
|
||||
|
||||
___
|
||||
|
||||
|
||||
- Nous avons constitué une documentation avec [MKdocs](https://www.mkdocs.org/) au fil du temps archivant nos process et beaucoup de connaissances utiles dans l'informatique, mise à jour régulièrement via un [Drone CI] auto-hébergé:
|
||||
|
||||
[](https://docs.legaragenumerique.xyz)
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" "https://git.legaragenumerique.fr/GARAGENUM/docs" >}} [code source](https://git.legaragenumerique.fr/GARAGENUM/docs)
|
||||
|
||||
___
|
||||
|
||||
|
||||
Pour plus de projets open source maintenus par le Garage: [Garagenum code](https://git.legaragenumerique.fr/GARAGENUM)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
---
|
||||
title: LIENS
|
||||
title: LIENS SYMPAS
|
||||
subtitle:
|
||||
comments: false
|
||||
description: quelques liens funs
|
||||
---
|
||||
|
||||
|
||||
### BLADE RUNNER
|
||||
### 
|
||||
|
||||

|
||||
|
||||
@@ -15,11 +15,12 @@ un projet faramineux de reconstitution de l'appartement du célèbre Blade runne
|
||||
La minutie des textures, le souci du détail et l'athmosphère générale en fait pour moi un monument numérique dédié au chef d'oeuvre du septième art qu'est Blade Runner.
|
||||
Bref, pour les amoureux de Blade Runner, c'est ici :
|
||||
|
||||
[](http://www.br9732.com)
|
||||
[](https://www.br9732.com)
|
||||
|
||||
[SITE DU CREATEUR](https://www.br9732.com)
|
||||
[](https://www.br9732.com)
|
||||
|
||||
### RETRO GAMING
|
||||
------
|
||||
### 
|
||||
|
||||

|
||||
|
||||
@@ -27,15 +28,17 @@ Grâce à des devs brillants, la plateforme open source de retrogaming "Retroarc
|
||||
en version web via emscriptem. Une image docker éxistait déjà, cependant voulant héberger le tout sur un Raspberry Pi 4,
|
||||
l'architecture ne correspondait pas. Après réécriture de la Dockerfile et un build plus tard, j'ai constaté le succès de l'opération.
|
||||
|
||||
[RETROARCH SOURCE CODE](https://github.com/libretro/RetroArch)
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source](https://github.com/libretro/RetroArch)
|
||||
|
||||
[IMAGE DOCKER POUR RASPBERRY PI 4](https://hub.docker.com/r/greglebreton/retroarchwebpi)
|
||||
> Image Docker pour Raspberry PI4:
|
||||
[](https://hub.docker.com/r/greglebreton/retroarchwebpi)
|
||||
|
||||
<!-- [RETROARCH WEB PLAYER DÉPLOYÉ](https://retroarch.gregandev.fr) -->
|
||||
|
||||

|
||||
|
||||
### EMULATIONSTATION
|
||||
------
|
||||
### 
|
||||
|
||||

|
||||
|
||||
@@ -44,11 +47,12 @@ EmulationStation est un FrontEnd opensource pour émulateur (généralement Retr
|
||||
Cet outil nécessite de la configuration pour fonctionner mais il offre des possibilités et une profondeur pour les afficionados du retro gaming qui mérite un détour.
|
||||
En attendant de partager ma config, un petit lien permet de se faire une bonne idée de la chose.
|
||||
|
||||
J'ai également refait certains screens de menus pour quelques consoles que vous pouvez télécharger: [ICI](https://github.com/GregLebreton/emulationstationThemes)
|
||||
J'ai également refait certains screens de menus pour quelques consoles que vous pouvez télécharger ici: [](https://github.com/GregLebreton/emulationstationThemes)
|
||||
|
||||
[](https://emulationstation.org)
|
||||
[](https://emulationstation.org)
|
||||
|
||||
### MOZINOR
|
||||
------
|
||||
### 
|
||||
|
||||

|
||||
|
||||
@@ -60,16 +64,16 @@ constater l'évolution et l'ampleur du personnage !
|
||||
|
||||
[](http://www.mozinor.com)
|
||||
|
||||
La classe américaine ou le grand détournement. c'est le "flim" qui a inspiré Mozinor tant au niveau du principe que de l'humour.
|
||||
La classe américaine ou le grand détournement. c'est le "flim" qui a inspiré Mozinor tant au niveau du principe que de l'humour.
|
||||
|
||||

|
||||

|
||||
|
||||
[LA CLASSE AMERICAINE (FILM COMPLET)](https://www.youtube.com/watch?v=W8sop56DBUs)
|
||||
Film complet: [](https://www.youtube.com/watch?v=W8sop56DBUs)
|
||||
|
||||
------
|
||||
### 
|
||||
|
||||
### POUR LES VIEUX GEEKS
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
|
||||
@@ -78,4 +82,9 @@ JSdos est un projet pour faire tourner DosBox (émulateur MS-DOS en JavaScript)
|
||||
Cliquez sur l'icône et choisissez parmis les plus grand classiques DOS tels que DOOM, SIM CITY ou encore BLOOD.
|
||||
Un grand merci à [@caiiiycuk](https://twitter.com/caiiiycuk) pour cet ouvrage.
|
||||
|
||||
[UN DOS EMBARQUÉ DANS UNE PAGE WEB AVEC LES GRANDS CLASSIQUES](https://js-dos.com/games/)
|
||||
Un DOS web avec les grands classiques:
|
||||
[](https://js-dos.com/games/)
|
||||
|
||||
<!-- ### HUMOUR DE DEV
|
||||
|
||||
> les joies du code -->
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
title: PROJETS
|
||||
subtitle:
|
||||
comments: false
|
||||
description: les projets persos
|
||||
---
|
||||
|
||||
### 
|
||||
|
||||
Implémentation VR sur [Geographical-Adventures](https://github.com/SebLague/Geographical-Adventures)
|
||||
|
||||
[](https://git.legaragenumerique.fr/greg/Geographical-Adventures-VR)
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source](https://git.legaragenumerique.fr/greg/Geographical-Adventures-VR)
|
||||
|
||||
### 
|
||||
|
||||
Un hommage à l'ère des consoles 8 et 16 bits
|
||||
|
||||
[]({{< relref "projets/retroarcade.md" >}})
|
||||
|
||||
### 
|
||||
|
||||
Un remake du célèbre jeux sur Nintendo 64 en VR
|
||||
|
||||
[]({{< relref "projets/goldeneyevr.md" >}})
|
||||
|
||||
### 
|
||||
|
||||
Un FPS dans le monde post apocalyptique de Terminator en VR
|
||||
|
||||
[]({{< relref "projets/la-2029.md" >}})
|
||||
|
||||
### 
|
||||
|
||||
Conduisez la célèbre moto de Kaneda (Akira) en VR dans un Neo Tokyo
|
||||
|
||||
[]({{< relref "projets/akiravr.md" >}})
|
||||
|
||||
### 
|
||||
|
||||
Ce site portfolio a été fait avec le framework [HUGO](https://gohugo.io/)
|
||||
|
||||
[](https://git.gregandev.fr/portfolio/hugo-site)
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source](https://git.gregandev.fr/portfolio/hugo-site)
|
||||
|
||||
L'utilisation du même framework avec un thème monopage pour faire son CV:
|
||||
|
||||
> {{< icons "fab fa-github" "fa-2x" >}} [code source](https://git.gregandev.fr/portfolio/hugo-cv)
|
||||
|
||||
<!-- ### PYTHON METEO
|
||||
|
||||
[![Python meteo]()](https://git.gregandev.fr/gregandev/python-meteo.git) -->
|
||||
@@ -1,76 +0,0 @@
|
||||
---
|
||||
title: RETRO ARCADE GAME
|
||||
subtitle: A tribute to retro classics
|
||||
---
|
||||
|
||||

|
||||
|
||||
### LE PRINCIPE
|
||||
|
||||
Le but est de fournir un jeu ludique et personalisé pour mes neveux, dans l'esprit
|
||||
des jeux codés fin des années 90 : plateforme 2D à niveaux themés.
|
||||
Pour ce faire, nous allons récupérer un tas de "sprites" (animation 2D ou suite de différentes poses du personnage) ainsi que des décors pour créer des scènes sous Unity.
|
||||
|
||||
Ensuite, le plus dur est de codé les mécanismes de jeu... mais heureusement, il y a des tutos pour ça! (voir youtube, tutos, unity)
|
||||
Le cahier des charges est le suivant:<br>
|
||||
- Un level type Mario World<br>
|
||||
- Un level type Sonic<br>
|
||||
- Un level type R-type<br>
|
||||
- Un Level de type Street of Rage<br>
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
----------------
|
||||
### LA V2.0 EN WEBGL
|
||||
|
||||

|
||||
|
||||
Cela fait un petit bout de temps que je voulais mettre en ligne la version 2 de mon projet de jeu mais des querelles de versions entre Unity et son plugin WebGL ainsi que le boulot m'ont
|
||||
freiné dans le processus, mais voilà la V2.0 avec un niveaux vraiment complet ainsi que pleins de nouvelles mécaniques est là!
|
||||
|
||||
Un petit listing des updates:<br><br>
|
||||
- Ajout d'un Game Manager qui persiste entre les scènes (persiste le score et les vies)<br>
|
||||
- Le coup de poing est disponible avant l'arme <br>
|
||||
- Le player peut désormais s'agenouiller<br>
|
||||
- Ajout des dragons cracheurs de boule de feu<br>
|
||||
- Ajout du boss Bowser<br>
|
||||
- Ajout d'un Menu avec choix du perso <br>
|
||||
- Nouveau HUD (affichage des vies et du score)<br>
|
||||
- Nouveaux FX visuels <br><br>
|
||||
J'ai dû en oublier mais l'essentiel est là. Pour essayer, toujours le même lien en dessous,
|
||||
Pour les commandes, les manettes type Xbox360 sont reconnus ainsi que le clavier, control pour tirer, espace pour sauter<br>
|
||||
|
||||
[LE JEUX VERSION WEBGL](../../docs/webgl/index.html)
|
||||
|
||||
----------------
|
||||
### LA V3.0 ANDROID
|
||||
|
||||

|
||||
|
||||
Nouvelle version avec un troisième level!
|
||||
Beaucoup d'améliorations au niveau des animations et du gameplay:<br>
|
||||
- Affinage du code des ennemis,<br>
|
||||
- Ajout d'ennemis au niveau 2 (Sonic)<br>
|
||||
- Ajout niveau 3 : Star wars en mode R-type pour ceux qui ont connus<br>
|
||||
- Ajout du menu pause avec l'option quitter<br>
|
||||
- Build Android avec contrôles tactiles<br>
|
||||
|
||||
Bref, pleins de belles choses à tester!<br>
|
||||
|
||||
> Note: Fichier au format APK
|
||||
[LE JEUX VERSION ANDROID](../../docs/android/EwannEtMilhauVSVideoGames.apk)
|
||||
|
||||
----------------
|
||||
### ROADMAP
|
||||
|
||||

|
||||
|
||||
### SCREENSHOTS
|
||||
|
||||

|
||||
|
||||
(Les références à "One piece" & "Yu-Gi-Oh!", c'est pour mes neveux...)
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: "Projets"
|
||||
description: "Projets techniques autour de l'infrastructure, de l'automatisation, du CI/CD et de l'observabilité."
|
||||
---
|
||||
|
||||
# Projets
|
||||
|
||||
Une sélection de travaux techniques et d'expérimentations orientés infrastructure et platform engineering.
|
||||
|
||||
<div class="project-grid">
|
||||
{{ range .Pages.ByDate.Reverse }}
|
||||
{{ partial "project-card.html" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
## Archive
|
||||
|
||||
Les anciens projets personnels orientés VR / jeu vidéo restent disponibles comme archive technique, mais ne constituent plus le cœur du portfolio professionnel.
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: "Ansible Role — Certbot"
|
||||
description: "Rôle Ansible pour automatiser l'installation et la configuration de Certbot / Let's Encrypt."
|
||||
date: 2026-07-29
|
||||
featured: true
|
||||
technologies: ["Ansible", "Linux", "Let's Encrypt", "Idempotence"]
|
||||
categories: ["automation", "infrastructure"]
|
||||
tags: ["ansible", "certbot", "tls", "linux"]
|
||||
status: "active"
|
||||
links:
|
||||
repository: "https://git.gregandev.fr/gregandev/ansible-role-certbot"
|
||||
---
|
||||
|
||||
Un rôle Ansible dédié à l'automatisation de la gestion de Certbot et des certificats TLS.
|
||||
|
||||
Ce type d'automatisation illustre une approche infrastructure-as-code : installation reproductible, configuration déclarative et réduction des opérations manuelles.
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: "Portfolio Hugo & CI/CD"
|
||||
description: "Site statique Hugo construit, validé et déployé automatiquement par CI/CD."
|
||||
date: 2026-09-01
|
||||
featured: true
|
||||
technologies: ["Hugo", "Drone CI", "Docker", "Git", "Linux"]
|
||||
categories: ["cicd", "platform"]
|
||||
tags: ["hugo", "drone", "docker", "deployment"]
|
||||
status: "active"
|
||||
links:
|
||||
repository: "https://git.gregandev.fr/gregandev/hugo-site"
|
||||
---
|
||||
|
||||
Le portfolio lui-même sert de démonstrateur d'industrialisation.
|
||||
|
||||
### Chaîne
|
||||
|
||||
```text
|
||||
Git push
|
||||
↓
|
||||
Drone CI
|
||||
↓
|
||||
Hugo build
|
||||
↓
|
||||
Validation
|
||||
↓
|
||||
Déploiement
|
||||
↓
|
||||
gregandev.fr
|
||||
```
|
||||
|
||||
Objectifs : rendre le build reproductible, limiter les régressions et garder une chaîne de livraison lisible.
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: "Infrastructure as Code"
|
||||
description: "Provisionnement et configuration automatisés d'infrastructures Linux."
|
||||
date: 2026-08-15
|
||||
featured: true
|
||||
technologies: ["Terraform", "Ansible", "Linux", "Git"]
|
||||
categories: ["infrastructure", "automation"]
|
||||
tags: ["terraform", "ansible", "iac", "linux"]
|
||||
status: "lab"
|
||||
---
|
||||
|
||||
Expérimentations autour du provisionnement et de la configuration reproductible d'environnements Linux.
|
||||
|
||||
### Principes
|
||||
|
||||
- Déclarer l'infrastructure plutôt que la configurer manuellement.
|
||||
- Séparer provisioning et configuration.
|
||||
- Rendre les changements reproductibles et auditables.
|
||||
- Documenter les opérations de maintenance et de restauration.
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "Kubernetes Lab"
|
||||
description: "Laboratoire de conteneurisation et d'orchestration pour expérimenter les pratiques Platform Engineering."
|
||||
date: 2026-08-01
|
||||
featured: true
|
||||
technologies: ["Kubernetes", "Docker", "Linux", "Prometheus", "Grafana"]
|
||||
categories: ["platform", "observability"]
|
||||
tags: ["kubernetes", "docker", "monitoring", "lab"]
|
||||
status: "lab"
|
||||
---
|
||||
|
||||
Laboratoire destiné à expérimenter le déploiement d'applications conteneurisées, la configuration des workloads et leur supervision.
|
||||
|
||||
Les expérimentations sont documentées séparément afin de distinguer clairement les travaux de laboratoire des environnements de production.
|
||||
@@ -4,15 +4,15 @@ subtitle: Jeux VR dev sous Unity
|
||||
comments: false
|
||||
---
|
||||
|
||||
### LE PRINCIPE
|
||||
### 
|
||||
|
||||
Le but de ce projet est de reproduire le Neo Tokyo d'Akira, au volant de la moto de Kaneda, parcours les autoroutes niponnes en pleine ville suréaliste.
|
||||
|
||||

|
||||

|
||||
|
||||
Ce projet me permet de travailler sur les lumières et l'optimisation de celles-ci dans une scène sous Unity.
|
||||
|
||||
### ROADMAP
|
||||
### 
|
||||
|
||||
Il n'y en as pas vraiment, c'est mon projet le moins prioritaire pour le moment, idéalement, ajouter plus de routes / circuits, des ennemis et amèliorer la maniabilité de la bécane.
|
||||
|
||||
@@ -5,7 +5,7 @@ subtitle: VR multiplayer retro classic remake
|
||||
|
||||
[](https://fr.wikipedia.org/wiki/GoldenEye_007)
|
||||
|
||||
### LE PRINCIPE
|
||||
### 
|
||||
|
||||
Le but est de se rapprocher un maximum de la version N64 mais en VR : restituer l'ambiance et les mécanismes de l'original mais en y étant. Un principe des plus simple :
|
||||
transposer GoldenEye 64 en PC VR avec une compatibilité maximale (Oculus Rift(s), HTC Vive, Windows MR, etc...).
|
||||
@@ -13,9 +13,9 @@ Je développe sous Unity avec l'api Photon pour le multiplayer. Pour les mécani
|
||||
destiné pour les fans de GoldenEye 64 et de VR, le but est de créer une communauté pour améliorer continuellement le jeu à la manière de GoldenEye Source.
|
||||
|
||||
---------------
|
||||
### SCREENSHOTS
|
||||
### 
|
||||
|
||||
#### les maps
|
||||
#### 
|
||||
|
||||

|
||||
|
||||
@@ -25,24 +25,30 @@ destiné pour les fans de GoldenEye 64 et de VR, le but est de créer une commun
|
||||
|
||||
(Toutes les maps du jeu originales sont présentes bien entendu!)
|
||||
|
||||
#### les menus
|
||||
#### 
|
||||
|
||||
##### principal
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
##### in game
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
---------------
|
||||
### UPDATE 04/2020DES NEWS
|
||||
### 
|
||||
|
||||
Suite au contexte de confinement, j'ai pû replonger dans le projet pour y avançer quelque peu.
|
||||
Voici les petits ajouts et une petite update de la road map:<br>
|
||||
- Ajout de différents modèle de player (Connery, Brosnan et Craig)<br>
|
||||
- Ajout du plug-in Steam VR<br>
|
||||
- Ajout du plug-in Photon Voice qui gère le dialogue par voix dans le jeu<br>
|
||||
Voici les petits ajouts et une petite update de la road map:
|
||||
- Ajout de différents modèle de player (Connery, Brosnan et Craig)
|
||||
- Ajout du plug-in Steam VR
|
||||
- Ajout du plug-in Photon Voice qui gère le dialogue par voix dans le jeu
|
||||
|
||||
#### 
|
||||
|
||||

|
||||
|
||||
@@ -51,10 +57,9 @@ Voici les petits ajouts et une petite update de la road map:<br>
|
||||

|
||||
|
||||
---------------
|
||||
### LA ROAD MAP
|
||||
### 
|
||||
|
||||
La roadmap du projet est la suivante:<br>
|
||||
* Implémenter la création de room personnalisée pour faire des parties privée entre amis.<br>
|
||||
* Intégrer les différents modes de jeu (deathmatch, teammatch, capture the flag, the man with the golden gun, etc...)<br>
|
||||
* Ajouter des options de comfort comme la vignette lors du déplacement, la TP, le remappage des boutons.<br>
|
||||
* Implémenter la création de room personnalisée pour faire des parties privée entre amis.
|
||||
* Intégrer les différents modes de jeu (deathmatch, teammatch, capture the flag, the man with the golden gun, etc...)
|
||||
* Ajouter des options de comfort comme la vignette lors du déplacement, la TP, le remappage des boutons.
|
||||
* Et des features auxquels je n'ai pas encore pensé!
|
||||
@@ -6,28 +6,28 @@ comments: false
|
||||
|
||||

|
||||
|
||||
### LE PRINCIPE
|
||||
### 
|
||||
|
||||
C'est un FPS en VR pour la plateforme Oculus Quest où l'on tire sur des terminators se présentant.
|
||||
|
||||
La recharge se fait de manière manuelle avec le magasin vide à éjecter avant de se munir du nouveau magasin à sa ceinture pour<br>
|
||||
l'ammener à l'arme, ce qui recharge celle-ci.<br>
|
||||
La recharge se fait de manière manuelle avec le magasin vide à éjecter avant de se munir du nouveau magasin à sa ceinture pour
|
||||
l'ammener à l'arme, ce qui recharge celle-ci.
|
||||
Le but est de rejoindre la fin du niveau en tuant un maximum de Terminators et en restant en vie : simple et éfficace!
|
||||
|
||||

|
||||
|
||||
### LE POURQUOI
|
||||
### 
|
||||
|
||||
Je voulais tester de créer les scripts de mécanique de recharge manuelle de l'arme :<br>
|
||||
Je voulais tester de créer les scripts de mécanique de recharge manuelle de l'arme :
|
||||
une fois le magasin vide enlevé, on prends celui situé à gauche sur la "ceinture" et finalement celui-ci mis en place, l'arme se recharge.
|
||||
|
||||
L'aspect "limitation technique" vu le support mobile Quest est aussi ce qui m'a motivé pour ce projet.
|
||||
|
||||
Suite à la sortie du jeu Terminator Resistance, j'ai vraiment accroché avec l'ambiance que les
|
||||
devs ont réussis à créer et étant un fan des films, je me suis lançé.<br>
|
||||
devs ont réussis à créer et étant un fan des films, je me suis lançé.
|
||||
C'est une version simple avec des assets téléchargées sur Sketchfab, le tout codé en une semaine.
|
||||
|
||||
### LE COMMENT
|
||||
### 
|
||||
|
||||
La plateforme Quest étant limité en ressources ([Spécifications Oculus Quest](https://vr-compare.com/headset/oculusquest)), il fallait trouver un moyen d'optimiser le chargement des GameObjects en cours de niveau, j'ai donc implémenté le principe "d'object pooler".
|
||||
|
||||
@@ -169,11 +169,11 @@ public class ObjectLoader : MonoBehaviour
|
||||
|
||||
-->
|
||||
|
||||
### V 2.00
|
||||
### 
|
||||
|
||||
Suite aux critiques positive sur SideQuest, j'ai décidé de pousser un peu plus loin la complexité des mécanismes en scriptant un objectif:
|
||||
Suite aux critiques positive sur SideQuest, j'ai décidé de pousser un peu plus loin la complexité des mécanismes en scriptant un objectif:
|
||||
détruire un batiment pour libérer le passage vers la fin du niveau.
|
||||
Pour se faire, le joueur doit se munir d'une bombe à sa ceinture pour la déposer à un endroit spécifique qui déclenchera un compte à rebours,<br>
|
||||
Pour se faire, le joueur doit se munir d'une bombe à sa ceinture pour la déposer à un endroit spécifique qui déclenchera un compte à rebours,
|
||||
puis l'explosion du batiment qui libèrera enfin l'accès vers la fin du niveau.
|
||||
|
||||

|
||||
@@ -182,15 +182,15 @@ puis l'explosion du batiment qui libèrera enfin l'accès vers la fin du niveau.
|
||||
|
||||

|
||||
|
||||
### VIDEOS TEST
|
||||
### 
|
||||
|
||||
En attendant le portage qui apportera des améliorations graphiques et au niveau du gameplay, voici une review sur Quest 2 :
|
||||
|
||||
{{< youtube 8Jfupw6VqgU >}}
|
||||
|
||||
La version 2.00 avec le deuxième level est disponible un peu plus bas en téléchargement via le sideloader Sidequest.
|
||||
La version 2.0 avec le deuxième level est disponible un peu plus bas en téléchargement via le sideloader Sidequest.
|
||||
|
||||
### ROAD MAP
|
||||
### 
|
||||
|
||||
Pour la suite du projet, on passe sur PC, on oublie Oculus et on plonge dans l'open source avec openXR pour le côté VR.
|
||||
|
||||
@@ -198,17 +198,15 @@ Par la même occassion, on bascule sur la dernière version d'Unity (2021.3.15),
|
||||
|
||||
Reste à peupler un peu plus la map maintenant que l'on est plus limité par un chipset mobile et on se lançe vers un niveau 3!
|
||||
|
||||

|
||||
V 3.0 on the way!
|
||||
|
||||
V 3.00 on the way!
|
||||
### 
|
||||
|
||||
### TÉLÉCHARGER
|
||||
Télécharger la version 2.0 pour Oculus Quest (compatible Quest 2):
|
||||
|
||||
Télécharger la version 2.00 pour Oculus Quest (compatible Quest 2):
|
||||
>(Oculus Quest nécessaire ainsi que SideQuest pour l'installation)
|
||||
[](https://sdq.st/a/366)
|
||||
|
||||
[](https://sdq.st/a/366)
|
||||
|
||||
<!--[TELECHARGER DE GREGANDEV](../../docs/TerminatorQuest/TerminatorQuest_v2.00.apk)-->
|
||||
> (Oculus Quest nécessaire ainsi que SideQuest pour l'installation)
|
||||
|
||||
Pour les versions suivantes, ce sera disponible sur itch.io en version PC Windows et Linux, API openXR (compatible Steam VR).
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: RETRO ARCADE GAME
|
||||
subtitle: A tribute to retro classics
|
||||
---
|
||||
|
||||

|
||||
|
||||
### 
|
||||
|
||||
Le but est de fournir un jeu ludique et personalisé pour mes neveux, dans l'esprit
|
||||
des jeux codés fin des années 90 : plateforme 2D à niveaux themés.
|
||||
Pour ce faire, nous allons récupérer un tas de "sprites" (animation 2D ou suite de différentes poses du personnage) ainsi que des décors pour créer des scènes sous Unity.
|
||||
|
||||
Ensuite, le plus dur est de codé les mécanismes de jeu... mais heureusement, il y a des tutos pour ça! (voir youtube, tutos, unity)
|
||||
Le cahier des charges est le suivant:
|
||||
- Un level type Mario World
|
||||
- Un level type Sonic
|
||||
- Un level type R-type
|
||||
- Un Level de type Street of Rage
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
------
|
||||
### 
|
||||
|
||||

|
||||
|
||||
Cela fait un petit bout de temps que je voulais mettre en ligne la version 2 de mon projet de jeu mais des querelles de versions entre Unity et son plugin WebGL ainsi que le boulot m'ont
|
||||
freiné dans le processus, mais voilà la V2.0 avec un niveaux vraiment complet ainsi que pleins de nouvelles mécaniques est là!
|
||||
|
||||
Un petit listing des updates:
|
||||
- Ajout d'un Game Manager qui persiste entre les scènes (persiste le score et les vies)
|
||||
- Le coup de poing est disponible avant l'arme
|
||||
- Le player peut désormais s'agenouiller
|
||||
- Ajout des dragons cracheurs de boule de feu
|
||||
- Ajout du boss Bowser
|
||||
- Ajout d'un Menu avec choix du perso
|
||||
- Nouveau HUD (affichage des vies et du score)
|
||||
- Nouveaux FX visuels
|
||||
J'ai dû en oublier mais l'essentiel est là. Pour essayer, toujours le même lien en dessous,
|
||||
Pour les commandes, les manettes type Xbox360 sont reconnus ainsi que le clavier, control pour tirer, espace pour sauter
|
||||
|
||||
> Version webGL (dans le navigateur):
|
||||
[](../../docs/webgl/index.html)
|
||||
|
||||
------
|
||||
### 
|
||||
|
||||

|
||||
|
||||
Nouvelle version avec un troisième level!
|
||||
Beaucoup d'améliorations au niveau des animations et du gameplay:
|
||||
- Affinage du code des ennemis,
|
||||
- Ajout d'ennemis au niveau 2 (Sonic)
|
||||
- Ajout niveau 3 : Star wars en mode R-type pour ceux qui ont connus
|
||||
- Ajout du menu pause avec l'option quitter
|
||||
- Build Android avec contrôles tactiles
|
||||
|
||||
> Télécharger au format APK:
|
||||
[](../../docs/android/EwannEtMilhauVSVideoGames.apk)
|
||||
|
||||
------
|
||||
### 
|
||||
|
||||

|
||||
|
||||
(Les références à "One piece" & "Yu-Gi-Oh!", c'est pour mes neveux...)
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: "Stack"
|
||||
description: "Technologies et outils utilisés dans mon environnement technique."
|
||||
---
|
||||
|
||||
# Stack
|
||||
|
||||
## Systems
|
||||
Linux · Debian · SSH · Nginx · systemd
|
||||
|
||||
## Infrastructure
|
||||
Terraform · Ansible · VPS · On-premise
|
||||
|
||||
## Containers
|
||||
Docker · Docker Compose · Kubernetes
|
||||
|
||||
## Delivery
|
||||
Git · Drone CI · Jenkins · CI/CD
|
||||
|
||||
## Observability
|
||||
Prometheus · Grafana · logs · monitoring
|
||||
|
||||
## Programming
|
||||
Python · Bash · Go · PHP · C# · Java · SQL · JavaScript
|
||||
|
||||
## Practices
|
||||
Infrastructure as Code · automatisation · documentation · backup/restore · PRA
|
||||
@@ -0,0 +1,15 @@
|
||||
<!doctype html>
|
||||
<html lang="{{ .Site.Language.Lang }}">
|
||||
<head>
|
||||
{{ partial "head.html" . }}
|
||||
</head>
|
||||
<body>
|
||||
{{ partial "header.html" . }}
|
||||
<main class="container">
|
||||
{{ block "main" . }}{{ end }}
|
||||
</main>
|
||||
{{ partial "footer.html" . }}
|
||||
{{ $js := resources.Get "js/main.js" | minify | fingerprint }}
|
||||
<script src="{{ $js.RelPermalink }}" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
{{ define "main" }}
|
||||
<header class="page-header">
|
||||
<p class="eyebrow">{{ .Section }}</p>
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{ with .Description }}<p class="lead">{{ . }}</p>{{ end }}
|
||||
</header>
|
||||
<div class="prose">{{ .Content }}</div>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,10 @@
|
||||
{{ define "main" }}
|
||||
<article class="article">
|
||||
<header class="page-header">
|
||||
<p class="eyebrow">{{ .Section }}</p>
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{ with .Description }}<p class="lead">{{ . }}</p>{{ end }}
|
||||
</header>
|
||||
<div class="prose">{{ .Content }}</div>
|
||||
</article>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,15 @@
|
||||
{{ define "main" }}
|
||||
<header class="page-header">
|
||||
<p class="eyebrow">CAREER</p>
|
||||
<h1>{{ .Title }}</h1>
|
||||
<p class="lead">{{ .Description }}</p>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
{{ range .Pages.ByDate.Reverse }}
|
||||
<article class="timeline-item">
|
||||
<div class="timeline-date">{{ .Params.period }}</div>
|
||||
<div><h2>{{ .Title }}</h2><p class="muted">{{ .Params.company }} · {{ .Params.location }}</p><div class="prose">{{ .Content }}</div>{{ with .Params.technologies }}<div class="tags">{{ range . }}<span>{{ . }}</span>{{ end }}</div>{{ end }}</div>
|
||||
</article>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,15 @@
|
||||
{{ define "main" }}
|
||||
<section class="hero">
|
||||
<p class="eyebrow">OPEN TO ENGINEERING</p>
|
||||
<h1>{{ .Title }}</h1>
|
||||
<p class="hero-role">Ingénieur DevOps / SRE</p>
|
||||
<p class="hero-subtitle">Infrastructure · Automation · CI/CD · Containers · Observability</p>
|
||||
<p class="hero-copy">{{ .Description }}</p>
|
||||
<div class="hero-actions">
|
||||
<a class="button button-primary" href="/projects/">Projets</a>
|
||||
<a class="button" href="/experience/">Expérience</a>
|
||||
<a class="button" href="/stack/">Stack</a>
|
||||
</div>
|
||||
</section>
|
||||
<div class="prose">{{ .Content }}</div>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,6 @@
|
||||
{{ define "main" }}
|
||||
<header class="page-header"><p class="eyebrow">LAB</p><h1>{{ .Title }}</h1><p class="lead">{{ .Description }}</p></header>
|
||||
<div class="project-grid">
|
||||
{{ range .Pages.ByDate.Reverse }}<article class="project-card"><span class="status">LAB</span><h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2><p>{{ .Description }}</p></article>{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,6 @@
|
||||
{{ define "main" }}
|
||||
<header class="page-header"><p class="eyebrow">NOTES</p><h1>{{ .Title }}</h1><p class="lead">{{ .Description }}</p></header>
|
||||
<div class="notes-list">
|
||||
{{ range .Pages.ByDate.Reverse }}<article><span>{{ .Date.Format "2006-01-02" }}</span><h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2><p>{{ .Description }}</p></article>{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,6 @@
|
||||
<footer class="site-footer">
|
||||
<div class="container footer-inner">
|
||||
<span>© {{ now.Year }} Grégory Lebreton</span>
|
||||
<span>Built with Hugo · deployed with CI/CD</span>
|
||||
</div>
|
||||
</footer>
|
||||
@@ -0,0 +1,8 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} — {{ .Site.Title }}{{ end }}</title>
|
||||
<meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ .Site.Params.description }}{{ end }}">
|
||||
<link rel="canonical" href="{{ .Permalink }}">
|
||||
{{ $css := resources.Get "css/main.css" | minify | fingerprint }}
|
||||
<link rel="stylesheet" href="{{ $css.RelPermalink }}">
|
||||
{{ with .OutputFormats.Get "RSS" }}<link rel="alternate" type="application/rss+xml" href="{{ .RelPermalink }}">{{ end }}
|
||||
@@ -0,0 +1,17 @@
|
||||
<header class="site-header">
|
||||
<div class="container nav">
|
||||
<a class="brand" href="/"><span>greg</span>@<strong>dev</strong></a>
|
||||
<nav aria-label="Navigation principale">
|
||||
<a href="/experience/">Experience</a>
|
||||
<a href="/projects/">Projects</a>
|
||||
<a href="/lab/">Lab</a>
|
||||
<a href="/stack/">Stack</a>
|
||||
<a href="/notes/">Notes</a>
|
||||
<a href="/about/">About</a>
|
||||
</nav>
|
||||
<div class="nav-links">
|
||||
<a href="{{ .Site.Params.github }}" target="_blank" rel="noopener">GitHub</a>
|
||||
<a href="{{ .Site.Params.linkedin }}" target="_blank" rel="noopener">LinkedIn</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -0,0 +1,14 @@
|
||||
<article class="project-card">
|
||||
<div class="project-top">
|
||||
<span class="status">{{ .Params.status | default "active" }}</span>
|
||||
<span class="project-index">PROJECT</span>
|
||||
</div>
|
||||
<h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
|
||||
<p>{{ .Description }}</p>
|
||||
{{ with .Params.technologies }}
|
||||
<div class="tags">{{ range . }}<span>{{ . }}</span>{{ end }}</div>
|
||||
{{ end }}
|
||||
{{ with .Params.links.repository }}
|
||||
<a class="project-link" href="{{ . }}" target="_blank" rel="noopener">Repository ↗</a>
|
||||
{{ end }}
|
||||
</article>
|
||||
@@ -0,0 +1,12 @@
|
||||
{{ define "main" }}
|
||||
<article class="article">
|
||||
<header class="page-header">
|
||||
<p class="eyebrow">PROJECT / {{ .Params.status | default "active" }}</p>
|
||||
<h1>{{ .Title }}</h1>
|
||||
<p class="lead">{{ .Description }}</p>
|
||||
{{ with .Params.technologies }}<div class="tags tags-large">{{ range . }}<span>{{ . }}</span>{{ end }}</div>{{ end }}
|
||||
</header>
|
||||
<div class="prose">{{ .Content }}</div>
|
||||
{{ with .Params.links.repository }}<p><a class="button button-primary" href="{{ . }}" target="_blank" rel="noopener">Voir le repository ↗</a></p>{{ end }}
|
||||
</article>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,6 @@
|
||||
{{ $iconClass := .Get 0 }}
|
||||
{{ $sizeClass := .Get 1 }}
|
||||
|
||||
<a target="_blank" rel="noopener noreferrer">
|
||||
<i class="{{ $iconClass }} {{ $sizeClass }}"></i>
|
||||
</a>
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 244 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<path d="M5.583 7.229c-2.464-0.005-5.755 1.557-5.573 5.479 0.281 6.125 6.557 6.693 9.068 6.745 0.271 1.146 3.224 5.109 5.411 5.318h9.573c5.74-0.38 10.036-17.365 6.854-17.427-5.271 0.25-8.396 0.375-11.073 0.396v5.297l-0.839-0.365-0.005-4.932c-3.073 0-5.781-0.141-10.917-0.396-0.646-0.005-1.542-0.115-2.5-0.115zM5.927 9.396h0.297c0.349 3.141 0.917 4.974 2.068 7.781-2.938-0.349-5.432-1.198-5.891-4.38-0.24-1.646 0.563-3.365 3.526-3.401zM17.339 12.479c0.198 0.005 0.406 0.042 0.594 0.13l1 0.432-0.714 1.302c-0.109 0-0.219 0.016-0.323 0.052-0.464 0.151-0.708 0.604-0.542 1.021 0.036 0.083 0.089 0.161 0.151 0.229l-1.234 2.25c-0.099 0-0.203 0.016-0.297 0.052-0.464 0.146-0.708 0.604-0.542 1.016 0.172 0.417 0.682 0.63 1.151 0.479 0.464-0.146 0.703-0.604 0.536-1.021-0.047-0.109-0.115-0.208-0.208-0.292l1.203-2.188c0.13 0.010 0.26 0 0.391-0.042 0.104-0.031 0.198-0.083 0.281-0.151 0.464 0.198 0.844 0.354 1.12 0.49 0.406 0.203 0.552 0.339 0.599 0.49 0.042 0.146-0.005 0.427-0.24 0.922-0.172 0.37-0.458 0.896-0.797 1.51-0.115 0-0.229 0.016-0.333 0.052-0.469 0.151-0.708 0.604-0.542 1.021 0.167 0.411 0.682 0.625 1.146 0.479 0.469-0.151 0.708-0.604 0.542-1.021-0.042-0.099-0.104-0.193-0.182-0.271 0.333-0.609 0.62-1.135 0.807-1.526 0.25-0.536 0.38-0.938 0.266-1.323s-0.469-0.635-0.932-0.865c-0.307-0.151-0.693-0.313-1.146-0.505 0.005-0.109-0.010-0.214-0.052-0.318s-0.109-0.198-0.193-0.281l0.703-1.281 3.901 1.682c0.703 0.307 0.995 1.057 0.651 1.682l-2.682 4.906c-0.339 0.625-1.182 0.885-1.885 0.578l-5.516-2.38c-0.703-0.307-0.995-1.057-0.656-1.682l2.682-4.906c0.234-0.432 0.708-0.688 1.208-0.708h0.083z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 850 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 575 KiB After Width: | Height: | Size: 539 KiB |
|
Before Width: | Height: | Size: 874 KiB After Width: | Height: | Size: 729 KiB |
|
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 318 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 234 KiB |
|
After Width: | Height: | Size: 419 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 492 KiB |
@@ -1,17 +0,0 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
|
||||
# Custom for Visual Studio
|
||||
*.cs diff=csharp
|
||||
|
||||
# Standard to msysgit
|
||||
*.doc diff=astextplain
|
||||
*.DOC diff=astextplain
|
||||
*.docx diff=astextplain
|
||||
*.DOCX diff=astextplain
|
||||
*.dot diff=astextplain
|
||||
*.DOT diff=astextplain
|
||||
*.pdf diff=astextplain
|
||||
*.PDF diff=astextplain
|
||||
*.rtf diff=astextplain
|
||||
*.RTF diff=astextplain
|
||||
@@ -1,72 +0,0 @@
|
||||
# Based on the 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: ["master"]
|
||||
|
||||
# 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 one concurrent deployment
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: true
|
||||
|
||||
|
||||
jobs:
|
||||
# Build job
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
HUGO_VERSION: 0.104.2
|
||||
steps:
|
||||
- name: Install Hugo CLI
|
||||
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: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup Pages
|
||||
id: pages
|
||||
uses: actions/configure-pages@v2
|
||||
- name: Build with Hugo
|
||||
env:
|
||||
# For maximum backward compatibility with Hugo modules
|
||||
HUGO_ENVIRONMENT: production
|
||||
HUGO_ENV: production
|
||||
run: |
|
||||
hugo \
|
||||
--minify \
|
||||
--baseURL "${{ steps.pages.outputs.base_url }}/" \
|
||||
-s "./exampleSite/" \
|
||||
--themesDir "../../"
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v1
|
||||
with:
|
||||
path: ./exampleSite/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
|
||||
if: >
|
||||
success()
|
||||
&& github.ref == 'refs/heads/master'
|
||||
&& github.repository == 'halogenica/beautifulhugo'
|
||||
uses: actions/deploy-pages@v1
|
||||
@@ -1,50 +0,0 @@
|
||||
# Themes directory of example site; ignored so that we can clone the repo
|
||||
# inside the themes directory and test the example site with "hugo server".
|
||||
exampleSite/themes/
|
||||
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# Folder config file
|
||||
Desktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Windows Installer files
|
||||
*.cab
|
||||
*.msi
|
||||
*.msm
|
||||
*.msp
|
||||
|
||||
# Windows shortcuts
|
||||
*.lnk
|
||||
|
||||
# Vim swap files
|
||||
*.swp
|
||||
|
||||
# =========================
|
||||
# Operating System Files
|
||||
# =========================
|
||||
|
||||
# OSX
|
||||
# =========================
|
||||
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear on external disk
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
@@ -1,22 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Original work Copyright (c) 2015 Dean Attali
|
||||
Modified work Copyright (c) 2017 Michael Romero
|
||||
|
||||
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.
|
||||
@@ -1,201 +0,0 @@
|
||||
# Beautiful Hugo - An adaptation of the Beautiful Jekyll theme
|
||||
|
||||

|
||||
|
||||
## Live demo
|
||||
|
||||
See https://hugo-theme-beautifulhugo.netlify.app/
|
||||
|
||||
## Installation
|
||||
|
||||
$ mkdir themes
|
||||
$ cd themes
|
||||
$ git submodule add https://github.com/halogenica/beautifulhugo.git beautifulhugo
|
||||
|
||||
|
||||
See [the Hugo documentation](https://gohugo.io/themes/installing/) for more information.
|
||||
|
||||
## Extra Features
|
||||
|
||||
### Responsive
|
||||
|
||||
This theme is designed to look great on both large-screen and small-screen (mobile) devices.
|
||||
|
||||
### Syntax highlighting
|
||||
|
||||
This theme has support for either Hugo's lightning fast Chroma, or both server side and client side highlighting. See [the Hugo docs for more](https://gohugo.io/content-management/syntax-highlighting/).
|
||||
|
||||
#### Chroma - New server side syntax highlighting
|
||||
|
||||
To enable Chroma, add the following to your site parameters:
|
||||
|
||||
```
|
||||
pygmentsCodeFences = true
|
||||
pygmentsUseClasses = true
|
||||
```
|
||||
|
||||
Then, you can generate a different style by running:
|
||||
|
||||
```
|
||||
hugo gen chromastyles --style=trac > static/css/syntax.css
|
||||
```
|
||||
|
||||
#### Pygments - Old server side syntax highlighting
|
||||
|
||||
To use this feature install Pygments (`pip install Pygments`) and add the following to your site parameters:
|
||||
|
||||
```
|
||||
pygmentsStyle = "trac"
|
||||
pygmentsUseClassic = true
|
||||
```
|
||||
|
||||
Pygments is mostly compatable with the newer Chroma. It is slower but has some additional theme options. I recommend Chroma over Pygments. Pygments will use `syntax.css` for highlighting, unless you also set the config `pygmentsUseClasses = false` which will generate the style code directly in the HTML file.
|
||||
|
||||
#### Highlight.js - Client side syntax highlighting
|
||||
```
|
||||
[Params]
|
||||
useHLJS = true
|
||||
```
|
||||
|
||||
Client side highlighting does not require pygments to be installed. This will use `highlight.min.css` instead of `syntax.css` for highlighting (effectively disabling Chroma). Highlight.js has a wider range of support for languages and themes, and an alternative highlighting engine.
|
||||
|
||||
### Disqus support
|
||||
|
||||
To use this feature, uncomment and fill out the `disqusShortname` parameter in `config.toml`.
|
||||
|
||||
### Staticman support
|
||||
|
||||
Add *Staticman* configuration section in `config.toml` or `config.yaml`
|
||||
|
||||
Sample `config.toml` configuration
|
||||
|
||||
```
|
||||
[Params.staticman]
|
||||
api = "https://<API-ENDPOINT>/v3/entry/{GIT-HOST}/<USERNAME>/<REPOSITORY-BLOGNAME>/master/comments"
|
||||
[Params.staticman.recaptcha]
|
||||
sitekey: "6LeGeTgUAAAAAAqVrfTwox1kJQFdWl-mLzKasV0v"
|
||||
secret: "hsGjWtWHR4HK4pT7cUsWTArJdZDxxE2pkdg/ArwCguqYQrhuubjj3RS9C5qa8xu4cx/Y9EwHwAMEeXPCZbLR9eW1K9LshissvNcYFfC/b8KKb4deH4V1+oqJEk/JcoK6jp6Rr2nZV4rjDP9M7nunC3WR5UGwMIYb8kKhur9pAic="
|
||||
```
|
||||
|
||||
Note: The public `API-ENDPOINT` https://staticman.net is currently hitting its API limit, so one may use other API instances to provide Staticman comment service.
|
||||
|
||||
The section `[Params.staticman.recaptcha]` is *optional*. To add reCAPTCHA to your site, you have to replace the default values with your own ones (to be obtained from Google.) The site `secret` has to be encrypted with
|
||||
|
||||
https://<API-ENDPOINT>/v3/encrypt/<SITE-SECRET>
|
||||
|
||||
You must also configure the `staticman.yml` in you blog website.
|
||||
|
||||
```
|
||||
comments:
|
||||
allowedFields: ["name", "email", "website", "comment"]
|
||||
branch : "master"
|
||||
commitMessage : "New comment in {options.slug}"
|
||||
path: "data/comments/{options.slug}"
|
||||
filename : "comment-{@timestamp}"
|
||||
format : "yaml"
|
||||
moderation : true
|
||||
requiredFields : ['name', 'email', 'comment']
|
||||
transforms:
|
||||
email : md5
|
||||
generatedFields:
|
||||
date:
|
||||
type : "date"
|
||||
options:
|
||||
format : "iso8601"
|
||||
reCaptcha:
|
||||
enabled: true
|
||||
siteKey: "6LeGeTgUAAAAAAqVrfTwox1kJQFdWl-mLzKasV0v"
|
||||
secret: "hsGjWtWHR4HK4pT7cUsWTArJdZDxxE2pkdg/ArwCguqYQrhuubjj3RS9C5qa8xu4cx/Y9EwHwAMEeXPCZbLR9eW1K9LshissvNcYFfC/b8KKb4deH4V1+oqJEk/JcoK6jp6Rr2nZV4rjDP9M7nunC3WR5UGwMIYb8kKhur9pAic="
|
||||
```
|
||||
|
||||
If you *don't* have the section `[Params.staticman]` in `config.toml`, you *won't* need the section `reCaptcha` in `staticman.yml`
|
||||
|
||||
### Google Analytics
|
||||
|
||||
To add Google Analytics, simply sign up to [Google Analytics](https://www.google.com/analytics/) to obtain your Google Tracking ID, and add this tracking ID to the `googleAnalytics` parameter in `config.toml`.
|
||||
|
||||
Note that the Google Analytics tracking code will only be inserted into the page when the site isn't served on Hugo's built-in server, to prevent tracking from local testing environments.
|
||||
|
||||
### Commit SHA on the footer
|
||||
|
||||
If the source of your site is in a Git repo, the SHA corresponding to the commit the site is built from can be shown on the footer. To do so, two site parameters `commit` has to be defined in the config file `config.toml`:
|
||||
|
||||
```
|
||||
enableGitInfo = true
|
||||
[Params]
|
||||
commit = "https://github.com/<username>/<siterepo>/tree/"
|
||||
```
|
||||
|
||||
See at [vincenttam/vincenttam.gitlab.io](https://gitlab.com/vincenttam/vincenttam.gitlab.io) for an example of how to add it to a continuous integration system.
|
||||
|
||||
### Multilingual
|
||||
|
||||
To allow Beautiful Hugo to go multilingual, you need to define the languages
|
||||
you want to use inside the `languages` parameter on `config.toml` file, also
|
||||
redefining the content dir for each one. Check the `i18n/` folder to see all
|
||||
languages available.
|
||||
|
||||
```toml
|
||||
[languages]
|
||||
[languages.en]
|
||||
contentDir = "content/en" # English
|
||||
[languages.ja]
|
||||
contentDir = "content/ja" # Japanese
|
||||
[languages.br]
|
||||
contentDir = "content/br" # Brazilian Portuguese
|
||||
```
|
||||
|
||||
Now you just need to create a subdir within the `content/` folder for each
|
||||
language and just put stuff inside `page/` and `post/` regular directories.
|
||||
```
|
||||
content/ content/ content/
|
||||
└── en/ └── br/ └── ja/
|
||||
├── page/ ├── page/ ├── page/
|
||||
└── post/ └── post/ └── post/
|
||||
|
||||
```
|
||||
|
||||
### Self Hosted assets for GDPR / EU-DSGVO compliance
|
||||
|
||||
With default settings, visiting to a website using Beautifulhugo connects also to remote services like google fonts or jsdelivr to embed fonts, js and other assets.
|
||||
|
||||
To avoid this, set the following param in config.toml:
|
||||
|
||||
```
|
||||
[Params]
|
||||
selfHosted = true
|
||||
```
|
||||
|
||||
### Extra shortcodes
|
||||
|
||||
There are two extra shortcodes provided (along with the customized figure shortcode):
|
||||
|
||||
#### Details
|
||||
|
||||
This simply adds the html5 detail attribute, supported on all *modern* browsers. Use it like this:
|
||||
|
||||
```
|
||||
{{< details "This is the details title (click to expand)" >}}
|
||||
This is the content (hidden until clicked).
|
||||
{{< /details >}}
|
||||
```
|
||||
|
||||
#### Split
|
||||
|
||||
This adds a two column side-by-side environment (will turn into 1 col for narrow devices):
|
||||
|
||||
```
|
||||
{{< columns >}}
|
||||
This is column 1.
|
||||
{{< column >}}
|
||||
This is column 2.
|
||||
{{< endcolumns >}}
|
||||
```
|
||||
|
||||
## About
|
||||
|
||||
This is an adaptation of the Jekyll theme [Beautiful Jekyll](https://deanattali.com/beautiful-jekyll/) by [Dean Attali](https://deanattali.com/aboutme#contact). It supports most of the features of the original theme, and many new features. It has diverged from the Jekyll theme over time, with years of community updates.
|
||||
|
||||
## License
|
||||
|
||||
MIT Licensed, see [LICENSE](https://github.com/halogenica/Hugo-BeautifulHugo/blob/master/LICENSE).
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
author: ""
|
||||
type: ""
|
||||
date: {{ .Date }}
|
||||
subtitle: ""
|
||||
image: ""
|
||||
tags: []
|
||||
---
|
||||
@@ -1,174 +0,0 @@
|
||||
[[social_icons]]
|
||||
id = "email"
|
||||
url = "mailto:%s"
|
||||
title = "Email me"
|
||||
icon = "fas fa-envelope"
|
||||
|
||||
[[social_icons]]
|
||||
id = "facebook"
|
||||
url = "https://www.facebook.com/%s"
|
||||
title = "Facebook"
|
||||
icon = "fab fa-facebook"
|
||||
|
||||
[[social_icons]]
|
||||
id = "github"
|
||||
url = "https://github.com/%s"
|
||||
title = "GitHub"
|
||||
icon = "fab fa-github"
|
||||
|
||||
[[social_icons]]
|
||||
id = "gitlab"
|
||||
url = "https://gitlab.com/%s"
|
||||
title = "GitLab"
|
||||
icon = "fab fa-gitlab"
|
||||
|
||||
[[social_icons]]
|
||||
id = "bitbucket"
|
||||
url = "https://bitbucket.org/%s"
|
||||
title = "Bitbucket"
|
||||
icon = "fab fa-bitbucket"
|
||||
|
||||
[[social_icons]]
|
||||
id = "twitter"
|
||||
url = "https://twitter.com/%s"
|
||||
title = "Twitter"
|
||||
icon = "fab fa-twitter"
|
||||
|
||||
[[social_icons]]
|
||||
id = "slack"
|
||||
url = "https://%s.slack.com/"
|
||||
title = "Slack"
|
||||
icon = "fab fa-slack"
|
||||
|
||||
[[social_icons]]
|
||||
id = "reddit"
|
||||
url = "https://reddit.com/u/%s"
|
||||
title = "Reddit"
|
||||
icon = "fab fa-reddit-alien"
|
||||
|
||||
[[social_icons]]
|
||||
id = "linkedin"
|
||||
url = "https://linkedin.com/in/%s"
|
||||
title = "LinkedIn"
|
||||
icon = "fab fa-linkedin"
|
||||
|
||||
[[social_icons]]
|
||||
id = "xing"
|
||||
url = "https://www.xing.com/profile/%s"
|
||||
title = "Xing"
|
||||
icon = "fab fa-xing"
|
||||
|
||||
[[social_icons]]
|
||||
id = "stackoverflow"
|
||||
url = "https://stackoverflow.com/%s"
|
||||
title = "StackOverflow"
|
||||
icon = "fab fa-stack-overflow"
|
||||
|
||||
[[social_icons]]
|
||||
id = "snapchat"
|
||||
url = "https://www.snapchat.com/add/%s"
|
||||
title = "Snapchat"
|
||||
icon = "fab fa-snapchat-ghost"
|
||||
|
||||
[[social_icons]]
|
||||
id = "instagram"
|
||||
url = "https://www.instagram.com/%s"
|
||||
title = "Instagram"
|
||||
icon = "fab fa-instagram"
|
||||
|
||||
[[social_icons]]
|
||||
id = "youtube"
|
||||
url = "https://www.youtube.com/%s"
|
||||
title = "Youtube"
|
||||
icon = "fab fa-youtube"
|
||||
|
||||
[[social_icons]]
|
||||
id = "soundcloud"
|
||||
url = "https://soundcloud.com/%s"
|
||||
title = "SoundCloud"
|
||||
icon = "fab fa-soundcloud"
|
||||
|
||||
[[social_icons]]
|
||||
id = "spotify"
|
||||
url = "https://open.spotify.com/user/%s"
|
||||
title = "Spotify"
|
||||
icon = "fab fa-spotify"
|
||||
|
||||
[[social_icons]]
|
||||
id = "bandcamp"
|
||||
url = "https://%s.bandcamp.com/"
|
||||
title = "Bandcamp"
|
||||
icon = "fab fa-bandcamp"
|
||||
|
||||
[[social_icons]]
|
||||
id = "itchio"
|
||||
url = "https://itch.io/profile/%s"
|
||||
title = "Itch.io"
|
||||
icon = "fas fa-gamepad"
|
||||
|
||||
[[social_icons]]
|
||||
id = "keybase"
|
||||
url = "https://keybase.io/%s"
|
||||
title = "Keybase"
|
||||
icon = "fab fa-keybase"
|
||||
|
||||
[[social_icons]]
|
||||
id = "vk"
|
||||
url = "https://vk.com/%s"
|
||||
title = "VK"
|
||||
icon = "fab fa-vk"
|
||||
|
||||
[[social_icons]]
|
||||
id = "paypal"
|
||||
url = "https://paypal.me/%s"
|
||||
title = "PayPal"
|
||||
icon = "fab fa-paypal"
|
||||
|
||||
[[social_icons]]
|
||||
id = "telegram"
|
||||
url = "https://telegram.me/%s"
|
||||
title = "Telegram"
|
||||
icon = "fab fa-telegram"
|
||||
|
||||
[[social_icons]]
|
||||
id = "500px"
|
||||
url = "https://500px.com/%s"
|
||||
title = "500px"
|
||||
icon = "fab fa-500px"
|
||||
|
||||
[[social_icons]]
|
||||
id = "codepen"
|
||||
url = "https://codepen.io/%s"
|
||||
title = "CodePen"
|
||||
icon = "fab fa-codepen"
|
||||
|
||||
[[social_icons]]
|
||||
id = "kaggle"
|
||||
url = "https://www.kaggle.com/%s"
|
||||
title = "kaggle"
|
||||
icon = "fab fa-kaggle"
|
||||
|
||||
[[social_icons]]
|
||||
id = "mastodon"
|
||||
url = "https://%s"
|
||||
title = "Mastodon"
|
||||
icon = "fab fa-mastodon"
|
||||
rel = "me"
|
||||
|
||||
[[social_icons]]
|
||||
id = "weibo"
|
||||
url = "https://weibo.com/%s"
|
||||
title = "Weibo"
|
||||
icon = "fab fa-weibo"
|
||||
|
||||
[[social_icons]]
|
||||
id = "discord"
|
||||
url = "https://discord.gg/%s"
|
||||
title = "Discord"
|
||||
icon = "fab fa-discord"
|
||||
|
||||
[[social_icons]]
|
||||
id = "strava"
|
||||
url = "https://www.strava.com/athletes/%s"
|
||||
title = "Strava"
|
||||
icon = "fab fa-strava"
|
||||
@@ -1,114 +0,0 @@
|
||||
baseurl = "https://username.github.io"
|
||||
DefaultContentLanguage = "en"
|
||||
title = "Beautiful Hugo"
|
||||
theme = "beautifulhugo"
|
||||
pygmentsStyle = "trac"
|
||||
pygmentsUseClasses = true
|
||||
pygmentsCodeFences = true
|
||||
pygmentsCodefencesGuessSyntax = true
|
||||
#pygmentsUseClassic = true
|
||||
#pygmentOptions = "linenos=inline"
|
||||
#disqusShortname = "XXX"
|
||||
#googleAnalytics = "XXX"
|
||||
|
||||
[Params]
|
||||
# homeTitle = "Beautiful Hugo Theme" # Set a different text for the header on the home page
|
||||
subtitle = "Build a beautiful and simple website in minutes"
|
||||
mainSections = ["post","posts"]
|
||||
logo = "img/avatar-icon.png" # Expecting square dimensions
|
||||
favicon = "img/favicon.ico"
|
||||
dateFormat = "January 2, 2006"
|
||||
commit = false
|
||||
rss = true
|
||||
comments = true
|
||||
readingTime = true
|
||||
wordCount = true
|
||||
useHLJS = true
|
||||
socialShare = true
|
||||
delayDisqus = true
|
||||
showRelatedPosts = true
|
||||
# hideAuthor = true
|
||||
# gcse = "012345678901234567890:abcdefghijk" # Get your code from google.com/cse. Make sure to go to "Look and Feel" and change Layout to "Full Width" and Theme to "Classic"
|
||||
|
||||
#[[Params.bigimg]]
|
||||
# src = "img/triangle.jpg"
|
||||
# desc = "Triangle"
|
||||
#[[Params.bigimg]]
|
||||
# src = "img/sphere.jpg"
|
||||
# desc = "Sphere"
|
||||
# # position: see values of CSS background-position.
|
||||
# position = "center top"
|
||||
#[[Params.bigimg]]
|
||||
# src = "img/hexagon.jpg"
|
||||
# desc = "Hexagon"
|
||||
|
||||
[Author]
|
||||
# Set only your "username" for default hosts and full URLs otherwise (e.g., "https://MyGitLab.org/username")
|
||||
name = "Some Person"
|
||||
website = "yourwebsite.com"
|
||||
email = "youremail@domain.com"
|
||||
facebook = "username"
|
||||
github = "username"
|
||||
gitlab = "username"
|
||||
bitbucket = "username"
|
||||
twitter = "username"
|
||||
reddit = "username"
|
||||
linkedin = "username"
|
||||
xing = "username"
|
||||
stackoverflow = "users/XXXXXXX/username"
|
||||
snapchat = "username"
|
||||
instagram = "username"
|
||||
youtube = "user/username" # or channel/channelname
|
||||
soundcloud = "username"
|
||||
spotify = "username"
|
||||
bandcamp = "username"
|
||||
itchio = "username"
|
||||
vk = "username"
|
||||
paypal = "username"
|
||||
telegram = "username"
|
||||
500px = "username"
|
||||
codepen = "username"
|
||||
mastodon = "url"
|
||||
kaggle = "username"
|
||||
weibo = "username"
|
||||
slack = "username"
|
||||
discord = "invite code (https://discord.gg/XXXXXXX)"
|
||||
strava = "userid"
|
||||
|
||||
[[menu.main]]
|
||||
name = "Blog"
|
||||
url = ""
|
||||
weight = 1
|
||||
|
||||
[[menu.main]]
|
||||
name = "About"
|
||||
url = "page/about/"
|
||||
weight = 3
|
||||
|
||||
[[menu.main]]
|
||||
identifier = "samples"
|
||||
name = "Samples"
|
||||
weight = 2
|
||||
|
||||
[[menu.main]]
|
||||
parent = "samples"
|
||||
name = "Big Image Sample"
|
||||
url = "post/2017-03-07-bigimg-sample"
|
||||
weight = 1
|
||||
|
||||
[[menu.main]]
|
||||
parent = "samples"
|
||||
name = "Math Sample"
|
||||
url = "post/2017-03-05-math-sample"
|
||||
weight = 2
|
||||
|
||||
[[menu.main]]
|
||||
parent = "samples"
|
||||
name = "Code Sample"
|
||||
url = "post/2016-03-08-code-sample"
|
||||
weight = 3
|
||||
|
||||
[[menu.main]]
|
||||
name = "Tags"
|
||||
url = "tags"
|
||||
weight = 3
|
||||
@@ -1,2 +0,0 @@
|
||||
## Front Page Content
|
||||
`beautifulhugo` supports content on your front page. Edit `/content/_index.md` to change what appears here. Delete `/content/_index.md` if you don't want any content here.
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
title: About me
|
||||
subtitle: Why you'd want to go on a date with me
|
||||
comments: false
|
||||
---
|
||||
|
||||
My name is Inigo Montoya. I have the following qualities:
|
||||
|
||||
- I rock a great mustache
|
||||
- I'm extremely loyal to my family
|
||||
|
||||
What else do you need?
|
||||
|
||||
### my history
|
||||
|
||||
To be honest, I'm having some trouble remembering right now, so why don't you just watch [my movie](http://en.wikipedia.org/wiki/The_Princess_Bride_%28film%29) and it will answer **all** your questions.
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
title: First post!
|
||||
date: 2015-01-05
|
||||
---
|
||||
|
||||
This is my first post, how exciting!
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
title: Pirates arrrr
|
||||
date: 2015-01-15
|
||||
---
|
||||
|
||||
Piracy is typically an act of robbery or criminal violence at sea. The term can include acts committed on land, in the air, or in other major bodies of water or on a shore. It does not normally include crimes committed against persons traveling on the same vessel as the perpetrator (e.g. one passenger stealing from others on the same vessel). The term has been used throughout history to refer to raids across land borders by non-state agents.
|
||||
@@ -1,11 +0,0 @@
|
||||
---
|
||||
title: Soccer
|
||||
subtitle: Best sport ever!
|
||||
date: 2015-01-19
|
||||
---
|
||||
|
||||
From Wikipedia:
|
||||
|
||||
Association football, more commonly known as football or soccer,[2] is a sport played between two teams of eleven players with a spherical ball. It is played by 250 million players in over 200 countries, making it the world's most popular sport.[3][4][5][6] The game is played on a rectangular field with a goal at each end. The object of the game is to score by getting the ball into the opposing goal.
|
||||
|
||||
The goalkeepers are the only players allowed to touch the ball with their hands or arms while it is in play and then only in their penalty area. Outfield players mostly use their feet to strike or pass the ball, but may use their head or torso to strike the ball instead. The team that scores the most goals by the end of the match wins. If the score is level at the end of the game, either a draw is declared or the game goes into extra time and/or a penalty shootout depending on the format of the competition. The Laws of the Game were originally codified in England by The Football Association in 1863. Association football is governed internationally by the International Federation of Association Football (FIFA; French: Fédération Internationale de Football Association) which organises a World Cup every four years.[7]
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
title: Dear diary
|
||||
date: 2015-01-27
|
||||
---
|
||||
|
||||
What is it with that Mary girl? Dragging me to school every day. As if I had a choice. What you don't hear in those nursery rhymes is that she starves me if I don't go to school with her; it's the only way I can stay alive! I'm thinking about being adopted by Little Bo Peep, sure I may get lost, but anything is better than being with Mary and those little brats at school (shudder, shudder).
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
title: To be
|
||||
subtitle: ... or not to be?
|
||||
date: 2015-02-13
|
||||
---
|
||||
|
||||
To be, or not to be--that is the question:
|
||||
Whether 'tis nobler in the mind to suffer
|
||||
The slings and arrows of outrageous fortune
|
||||
Or to take arms against a sea of troubles
|
||||
And by opposing end them. To die, to sleep--
|
||||
No more--and by a sleep to say we end
|
||||
The heartache, and the thousand natural shocks
|
||||
That flesh is heir to. 'Tis a consummation
|
||||
Devoutly to be wished. To die, to sleep--
|
||||
To sleep--perchance to dream: ay, there's the rub,
|
||||
For in that sleep of death what dreams may come
|
||||
When we have shuffled off this mortal coil,
|
||||
Must give us pause. There's the respect
|
||||
That makes calamity of so long life.
|
||||
For who would bear the whips and scorns of time,
|
||||
Th' oppressor's wrong, the proud man's contumely
|
||||
The pangs of despised love, the law's delay,
|
||||
The insolence of office, and the spurns
|
||||
That patient merit of th' unworthy takes,
|
||||
When he himself might his quietus make
|
||||
With a bare bodkin? Who would fardels bear,
|
||||
To grunt and sweat under a weary life,
|
||||
But that the dread of something after death,
|
||||
The undiscovered country, from whose bourn
|
||||
No traveller returns, puzzles the will,
|
||||
And makes us rather bear those ills we have
|
||||
Than fly to others that we know not of?
|
||||
Thus conscience does make cowards of us all,
|
||||
And thus the native hue of resolution
|
||||
Is sicklied o'er with the pale cast of thought,
|
||||
And enterprise of great pitch and moment
|
||||
With this regard their currents turn awry
|
||||
And lose the name of action. -- Soft you now,
|
||||
The fair Ophelia! -- Nymph, in thy orisons
|
||||
Be all my sins remembered.
|
||||
@@ -1,35 +0,0 @@
|
||||
---
|
||||
title: Test markdown
|
||||
subtitle: Each post also has a subtitle
|
||||
date: 2015-02-20
|
||||
tags: ["example", "markdown"]
|
||||
---
|
||||
|
||||
You can write regular [markdown](http://markdowntutorial.com/) here and [Hugo](https://gohugo.io) will automatically convert it to a nice webpage. I strongly encourage you to [take 5 minutes to learn how to write in markdown](http://markdowntutorial.com/) - it'll teach you how to transform regular text into bold/italics/headings/tables/etc.
|
||||
|
||||
**Here is some bold text**
|
||||
|
||||
## Here is a secondary heading
|
||||
|
||||
Here's a useless table:
|
||||
|
||||
| Number | Next number | Previous number |
|
||||
| :------ |:--- | :--- |
|
||||
| Five | Six | Four |
|
||||
| Ten | Eleven | Nine |
|
||||
| Seven | Eight | Six |
|
||||
| Two | Three | One |
|
||||
|
||||
|
||||
How about a yummy crepe?
|
||||
|
||||

|
||||
|
||||
Here's a code chunk with syntax highlighting:
|
||||
|
||||
```javascript
|
||||
var foo = function(x) {
|
||||
return(x + 5);
|
||||
}
|
||||
foo(3)
|
||||
```
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
title: Flake it till you make it
|
||||
subtitle: Excerpt from Soulshaping by Jeff Brown
|
||||
date: 2015-02-26
|
||||
bigimg: [{src: "/img/path.jpg", desc: "Path"}]
|
||||
---
|
||||
|
||||
Under what circumstances should we step off a path? When is it essential that we finish what we start? If I bought a bag of peanuts and had an allergic reaction, no one would fault me if I threw it out. If I ended a relationship with a woman who hit me, no one would say that I had a commitment problem. But if I walk away from a seemingly secure route because my soul has other ideas, I am a flake?
|
||||
|
||||
The truth is that no one else can definitively know the path we are here to walk. It’s tempting to listen—many of us long for the omnipotent other—but unless they are genuine psychic intuitives, they can’t know. All others can know is their own truth, and if they’ve actually done the work to excavate it, they will have the good sense to know that they cannot genuinely know anyone else’s. Only soul knows the path it is here to walk. Since you are the only one living in your temple, only you can know its scriptures and interpretive structure.
|
||||
|
||||
At the heart of the struggle are two very different ideas of success—survival-driven and soul-driven. For survivalists, success is security, pragmatism, power over others. Success is the absence of material suffering, the nourishing of the soul be damned. It is an odd and ironic thing that most of the material power in our world often resides in the hands of younger souls. Still working in the egoic and material realms, they love the sensations of power and focus most of their energy on accumulation. Older souls tend not to be as materially driven. They have already played the worldly game in previous lives and they search for more subtle shades of meaning in this one—authentication rather than accumulation. They are often ignored by the culture at large, although they really are the truest warriors.
|
||||
|
||||
A soulful notion of success rests on the actualization of our innate image. Success is simply the completion of a soul step, however unsightly it may be. We have finished what we started when the lesson is learned. What a fear-based culture calls a wonderful opportunity may be fruitless and misguided for the soul. Staying in a passionless relationship may satisfy our need for comfort, but it may stifle the soul. Becoming a famous lawyer is only worthwhile if the soul demands it. It is an essential failure if you are called to be a monastic this time around. If you need to explore and abandon ten careers in order to stretch your soul toward its innate image, then so be it. Flake it till you make it.
|
||||
@@ -1,42 +0,0 @@
|
||||
---
|
||||
title: Code Sample
|
||||
subtitle: Using Hugo or Pygments
|
||||
date: 2016-03-08
|
||||
tags: ["example", "code"]
|
||||
---
|
||||
|
||||
The following are two code samples using syntax highlighting.
|
||||
|
||||
<!--more-->
|
||||
|
||||
The following is a code sample using triple backticks ( ``` ) code fencing provided in Hugo. This is client side highlighting and does not require any special installation.
|
||||
|
||||
```javascript
|
||||
var num1, num2, sum
|
||||
num1 = prompt("Enter first number")
|
||||
num2 = prompt("Enter second number")
|
||||
sum = parseInt(num1) + parseInt(num2) // "+" means "add"
|
||||
alert("Sum = " + sum) // "+" means combine into a string
|
||||
```
|
||||
|
||||
|
||||
The following is a code sample using the "highlight" shortcode provided in Hugo. This is server side highlighting and requires Python and Pygments to be installed.
|
||||
|
||||
{{< highlight javascript >}}
|
||||
var num1, num2, sum
|
||||
num1 = prompt("Enter first number")
|
||||
num2 = prompt("Enter second number")
|
||||
sum = parseInt(num1) + parseInt(num2) // "+" means "add"
|
||||
alert("Sum = " + sum) // "+" means combine into a string
|
||||
{{</ highlight >}}
|
||||
|
||||
|
||||
And here is the same code with line numbers:
|
||||
|
||||
{{< highlight javascript "linenos=inline">}}
|
||||
var num1, num2, sum
|
||||
num1 = prompt("Enter first number")
|
||||
num2 = prompt("Enter second number")
|
||||
sum = parseInt(num1) + parseInt(num2) // "+" means "add"
|
||||
alert("Sum = " + sum) // "+" means combine into a string
|
||||
{{</ highlight >}}
|
||||
@@ -1,49 +0,0 @@
|
||||
---
|
||||
title: Math Sample
|
||||
subtitle: Using KaTeX
|
||||
date: 2017-03-05
|
||||
tags: ["example", "math"]
|
||||
---
|
||||
|
||||
KaTeX can be used to generate complex math formulas server-side.
|
||||
|
||||
$$
|
||||
\phi = \frac{(1+\sqrt{5})}{2} = 1.6180339887\cdots
|
||||
$$
|
||||
|
||||
Additional details can be found on [GitHub](https://github.com/Khan/KaTeX) or on the [Wiki](http://tiddlywiki.com/plugins/tiddlywiki/katex/).
|
||||
<!--more-->
|
||||
|
||||
### Example 1
|
||||
|
||||
If the text between $$ contains newlines it will rendered in display mode:
|
||||
```
|
||||
$$
|
||||
f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
|
||||
$$
|
||||
```
|
||||
$$
|
||||
f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
|
||||
$$
|
||||
|
||||
|
||||
### Example 2
|
||||
```
|
||||
$$
|
||||
\frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }
|
||||
$$
|
||||
```
|
||||
$$
|
||||
\frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }
|
||||
$$
|
||||
|
||||
|
||||
### Example 3
|
||||
```
|
||||
$$
|
||||
1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \quad\quad \text{for }\lvert q\rvert<1.
|
||||
$$
|
||||
```
|
||||
$$
|
||||
1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \quad\quad \text{for }\lvert q\rvert<1.
|
||||
$$
|
||||
@@ -1,40 +0,0 @@
|
||||
---
|
||||
title: Big Image Sample
|
||||
subtitle: Using Multiple Images
|
||||
date: 2017-03-07
|
||||
tags: ["example", "bigimg"]
|
||||
bigimg: [{src: "/img/triangle.jpg", desc: "Triangle"}, {src: "/img/sphere.jpg", desc: "Sphere"}, {src: "/img/hexagon.jpg", desc: "Hexagon"}]
|
||||
---
|
||||
|
||||
The image banners at the top of the page are refered to as "bigimg" in this theme. They are optional, and one more more can be specified. If more than one is specified, the images rotate every 10 seconds. In the front matter, bigimgs are specified using an array of hashes.
|
||||
|
||||
<!--more-->
|
||||
|
||||
A single bigimg can be specified in the front matter by the following YAML:
|
||||
```
|
||||
bigimg: [{src: "/img/triangle.jpg", desc: "Triangle"}]
|
||||
```
|
||||
|
||||
Multiple bigimgs can be specified in the front matter by the following YAML:
|
||||
```
|
||||
bigimg: [{src: "/img/triangle.jpg", desc: "Triangle"},
|
||||
{src: "/img/sphere.jpg", desc: "Sphere"},
|
||||
{src: "/img/hexagon.jpg", desc: "Hexagon"}]
|
||||
```
|
||||
|
||||
Also note that the description field is optional, and images could instead be specified by:
|
||||
```
|
||||
bigimg: [{src: "/img/triangle.jpg"},
|
||||
{src: "/img/sphere.jpg"},
|
||||
{src: "/img/hexagon.jpg"}]
|
||||
```
|
||||
|
||||
The above YAML array of hashes were written in "flow" style. However when generating a new page or post with `hugo new post/mypost.md`, hugo may interpret the archetype for bigimg in the default YAML style. Defining multiple bigimg's complete with descriptions in this style would be specified by:
|
||||
```
|
||||
bigimg:
|
||||
- {src: "/img/triangle.jpg", desc: "Triangle"}
|
||||
- {src: "/img/sphere.jpg", desc: "Sphere"}
|
||||
- {src: "/img/hexagon.jpg", desc: "Hexagon"}
|
||||
```
|
||||
|
||||
Additional information can be found [in this YAML tutorial](https://rhnh.net/2011/01/31/yaml-tutorial/).
|
||||
@@ -1,37 +0,0 @@
|
||||
---
|
||||
title: Photoswipe Gallery Sample
|
||||
subtitle: Making a Gallery
|
||||
date: 2017-03-20
|
||||
tags: ["example", "photoswipe"]
|
||||
---
|
||||
|
||||
Beautiful Hugo adds a few custom shortcodes created by [Li-Wen Yip](https://www.liwen.id.au/heg/) and [Gert-Jan van den Berg](https://github.com/GjjvdBurg/HugoPhotoSwipe) for making galleries with [PhotoSwipe](http://photoswipe.com) .
|
||||
|
||||
{{< gallery caption-effect="fade" >}}
|
||||
{{< figure thumb="-thumb" link="/img/hexagon.jpg" >}}
|
||||
{{< figure thumb="-thumb" link="/img/sphere.jpg" caption="Sphere" >}}
|
||||
{{< figure thumb="-thumb" link="/img/triangle.jpg" caption="Triangle" alt="This is a long comment about a triangle" >}}
|
||||
{{< /gallery >}}
|
||||
|
||||
<!--more-->
|
||||
## Example
|
||||
The above gallery was created using the following shortcodes:
|
||||
```
|
||||
{{</* gallery caption-effect="fade" */>}}
|
||||
{{</* figure thumb="-thumb" link="/img/hexagon.jpg" */>}}
|
||||
{{</* figure thumb="-thumb" link="/img/sphere.jpg" caption="Sphere" */>}}
|
||||
{{</* figure thumb="-thumb" link="/img/triangle.jpg" caption="Triangle" alt="This is a long comment about a triangle" */>}}
|
||||
{{</* /gallery */>}}
|
||||
```
|
||||
|
||||
## Usage
|
||||
For full details please see the [hugo-easy-gallery GitHub](https://github.com/liwenyip/hugo-easy-gallery/) page. Basic usages from above are:
|
||||
|
||||
- Create a gallery with open and close tags `{{</* gallery */>}}` and `{{</* /gallery */>}}`
|
||||
- `{{</* figure src="image.jpg" */>}}` will use `image.jpg` for thumbnail and lightbox
|
||||
- `{{</* figure src="thumb.jpg" link="image.jpg" */>}}` will use `thumb.jpg` for thumbnail and `image.jpg` for lightbox
|
||||
- `{{</* figure thumb="-small" link="image.jpg" */>}}` will use `image-small.jpg` for thumbnail and `image.jpg` for lightbox
|
||||
- All the [features/parameters](https://gohugo.io/extras/shortcodes) of Hugo's built-in `figure` shortcode work as normal, i.e. src, link, title, caption, class, attr (attribution), attrlink, alt
|
||||
- `{{</* gallery caption-effect="fade" */>}}` will fade in captions for all figures in this gallery instead of the default slide-up behavior
|
||||
- Many gallery styles for captions and hover effects exist; view the [hugo-easy-gallery GitHub](https://github.com/liwenyip/hugo-easy-gallery/) for all options
|
||||
- Note that this theme will load the photoswipe gallery theme and scripts by default, no need to load photoswipe on your individual pages
|
||||
@@ -1,7 +0,0 @@
|
||||
<!--
|
||||
If you want to include any custom html just before </body>, put it in this file.
|
||||
Or you can delete these file if you don't need it.
|
||||
-->
|
||||
<!-- for example, you could include some js libraries:
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.19.1/vis.js" integrity="sha256-HdIuWBZj4eftihsoDCJoMYjZi6aNVaw7YlUpzKT3ZxI=" crossorigin="anonymous"></script>
|
||||
-->
|
||||
@@ -1,18 +0,0 @@
|
||||
<!--
|
||||
If you want to include any custom html just before </head>, put it in this file.
|
||||
Or you can delete these file if you don't need it.
|
||||
-->
|
||||
<!-- for example, you could insert this custom css, which makes the bigimg not stretch:
|
||||
<style>
|
||||
.intro-header.big-img, .intro-header.big-img .big-img-transition {
|
||||
-webkit-background-size: contain !important;
|
||||
-moz-background-size: contain !important;
|
||||
background-size: contain !important;
|
||||
-o-background-size: contain !important;
|
||||
background-color: lightgrey;
|
||||
}
|
||||
</style>
|
||||
-->
|
||||
<!-- or you could include some additional css libraries:
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.19.1/vis.css" integrity="sha256-I1UoFd33KHIydu88R9owFaQWzwkiZV4hXXug5aYaM28=" crossorigin="anonymous" />
|
||||
-->
|
||||
@@ -1,74 +0,0 @@
|
||||
# Content
|
||||
- id: dateFormat
|
||||
translation: "2 de Janeiro de 2006"
|
||||
- id: shortdateFormat
|
||||
translation: "02/Jan/2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Postado em {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Ultima modificação em {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Outras linguagens: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Saiba mais"
|
||||
- id: olderPosts
|
||||
translation: "Posts antigos"
|
||||
- id: newerPosts
|
||||
translation: "Posts novos"
|
||||
- id: previousPost
|
||||
translation: "Post anterior"
|
||||
- id: nextPost
|
||||
translation: "Próximo Post"
|
||||
- id: readTime
|
||||
translation: "minutos"
|
||||
- id: words
|
||||
translation: "palavras"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Opa, a página não existe"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> alimentada • Tema <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adaptado de <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Ver navegação"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Idioma"
|
||||
- id: gcseLabelShort
|
||||
translation: "Buscar"
|
||||
- id: gcseLabelLong
|
||||
translation: "Buscar {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Fechar"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Sem comentários"
|
||||
- id: oneComment
|
||||
translation: "comentário"
|
||||
- id: moreComment
|
||||
translation: "comentários"
|
||||
- id: useMarkdown
|
||||
translation: "Você pode usar sintaxe MarkDown"
|
||||
- id: yourName
|
||||
translation: "Seu nome"
|
||||
- id: yourEmail
|
||||
translation: "Seu email"
|
||||
- id: yourWebsite
|
||||
translation: "Seu website"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Mostrar"
|
||||
- id: comments
|
||||
translation: "comentários"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Veja também"
|
||||
@@ -1,74 +0,0 @@
|
||||
# Content
|
||||
- id: dateFormat
|
||||
translation: "02.01.2006"
|
||||
- id: shortdateFormat
|
||||
translation: "2 Jan, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Gepostet am {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Zuletzt geändert am {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Andere Sprachen: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Mehr"
|
||||
- id: olderPosts
|
||||
translation: "Ältere Posts"
|
||||
- id: newerPosts
|
||||
translation: "Neuere Posts"
|
||||
- id: previousPost
|
||||
translation: "Letzter Post"
|
||||
- id: nextPost
|
||||
translation: "Nächster Post"
|
||||
- id: readTime
|
||||
translation: "Minuten"
|
||||
- id: words
|
||||
translation: "Wörter"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Ups, diese Seite existiert nicht. (404 Error)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> angetrieben • Theme <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> angepasst von <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Navigation"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Sprache"
|
||||
- id: gcseLabelShort
|
||||
translation: "Suche"
|
||||
- id: gcseLabelLong
|
||||
translation: "Suche {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Schließen"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Kein Kommentar"
|
||||
- id: oneComment
|
||||
translation: "Kommentar"
|
||||
- id: moreComment
|
||||
translation: "Kommentare"
|
||||
- id: useMarkdown
|
||||
translation: "Sie können Markdown-Syntax verwenden"
|
||||
- id: yourName
|
||||
translation: "Ihr Name"
|
||||
- id: yourEmail
|
||||
translation: "Ihre Emailadresse"
|
||||
- id: yourWebsite
|
||||
translation: "Ihre Website"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Zeige"
|
||||
- id: comments
|
||||
translation: "Kommentare"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Siehe auch"
|
||||
@@ -1,74 +0,0 @@
|
||||
# Content
|
||||
- id: dateFormat
|
||||
translation: "January 2, 2006"
|
||||
- id: shortdateFormat
|
||||
translation: "Jan 2, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Slået op den {{ .Count }}"
|
||||
- id: lastModified
|
||||
translation: "(Senest redigeret den {{ .Count }})"
|
||||
- id: translationsLabel
|
||||
translation: "Andre sprog: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Læs mere"
|
||||
- id: olderPosts
|
||||
translation: "Ældre opslag"
|
||||
- id: newerPosts
|
||||
translation: "Nyere opslag"
|
||||
- id: previousPost
|
||||
translation: "Forrige opslag"
|
||||
- id: nextPost
|
||||
translation: "Næste opslag"
|
||||
- id: readTime
|
||||
translation: "Minutter"
|
||||
- id: words
|
||||
translation: "Ord"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Ups, denne side eksisterer ikke. (404 error)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> drevet • Tema <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> tilpasset fra <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Navigation"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Sprog"
|
||||
- id: gcseLabelShort
|
||||
translation: "Søg"
|
||||
- id: gcseLabelLong
|
||||
translation: "Søg {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Luk"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Ingen kommentar"
|
||||
- id: oneComment
|
||||
translation: "Kommentar"
|
||||
- id: moreComment
|
||||
translation: "Kommentarer"
|
||||
- id: useMarkdown
|
||||
translation: "Du kan anvende Markdown syntax"
|
||||
- id: yourName
|
||||
translation: "Dit navn"
|
||||
- id: yourEmail
|
||||
translation: "Din emailadresse"
|
||||
- id: yourWebsite
|
||||
translation: "Din hjemmeside"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Vis"
|
||||
- id: comments
|
||||
translation: "Kommentarer"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Se også"
|
||||
@@ -1,74 +0,0 @@
|
||||
# Content
|
||||
- id: dateFormat
|
||||
translation: "January 2, 2006"
|
||||
- id: shortdateFormat
|
||||
translation: "Jan 2, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Posted on {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Last modified on {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Other languages: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Read More"
|
||||
- id: olderPosts
|
||||
translation: "Older Posts"
|
||||
- id: newerPosts
|
||||
translation: "Newer Posts"
|
||||
- id: previousPost
|
||||
translation: "Previous Post"
|
||||
- id: nextPost
|
||||
translation: "Next Post"
|
||||
- id: readTime
|
||||
translation: "minutes"
|
||||
- id: words
|
||||
translation: "words"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Whoops, this page doesn't exist. Move along. (404 error)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> powered • Theme <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adapted from <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Toggle navigation"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Language"
|
||||
- id: gcseLabelShort
|
||||
translation: "Search"
|
||||
- id: gcseLabelLong
|
||||
translation: "Search {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Close"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "No comment"
|
||||
- id: oneComment
|
||||
translation: "comment"
|
||||
- id: moreComment
|
||||
translation: "comments"
|
||||
- id: useMarkdown
|
||||
translation: "You can use Markdown syntax"
|
||||
- id: yourName
|
||||
translation: "Your name"
|
||||
- id: yourEmail
|
||||
translation: "Your email address"
|
||||
- id: yourWebsite
|
||||
translation: "Your website"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Show"
|
||||
- id: comments
|
||||
translation: "comments"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "See also"
|
||||
@@ -1,74 +0,0 @@
|
||||
# Content
|
||||
- id: dateFormat
|
||||
translation: "2006-01-02"
|
||||
- id: shortdateFormat
|
||||
translation: "2 Jan, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Afiŝiĝis je {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Laste aliiĝis je {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Aliaj lingvoj: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Legi pli"
|
||||
- id: olderPosts
|
||||
translation: "Plimalnovaj afiŝoj"
|
||||
- id: newerPosts
|
||||
translation: "Plinovaj afiŝoj"
|
||||
- id: previousPost
|
||||
translation: "Antaŭa afiŝo"
|
||||
- id: nextPost
|
||||
translation: "Sekva afiŝo"
|
||||
- id: readTime
|
||||
translation: "minutoj"
|
||||
- id: words
|
||||
translation: "vortoj"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Ups, ĉi tiu paĝo ne ekzistas. (404 Error)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a>-povigita • Haŭto de <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adaptiĝis de <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Navigacio"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Lingvo"
|
||||
- id: gcseLabelShort
|
||||
translation: "Serĉi"
|
||||
- id: gcseLabelLong
|
||||
translation: "Serĉi {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Fermi"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Sen komentoj"
|
||||
- id: oneComment
|
||||
translation: "komento"
|
||||
- id: moreComment
|
||||
translation: "komentoj"
|
||||
- id: useMarkdown
|
||||
translation: "Vi povus uzi Markdown-sintakson"
|
||||
- id: yourName
|
||||
translation: "Via nomo"
|
||||
- id: yourEmail
|
||||
translation: "Via retpoŝtadreso"
|
||||
- id: yourWebsite
|
||||
translation: "Via retpaĝaro"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Montru"
|
||||
- id: comments
|
||||
translation: "komentoj"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Vidu ankaŭ"
|
||||