From 32a4c73685904c0f421f3fcec3238232a119c9ec Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sun, 31 May 2020 23:01:02 +0100 Subject: [PATCH] First setup of the blog First article and about page Flex theme setup with some corrections and using a PR for ToC --- .gitignore | 6 +++ .gitmodules | 7 +++ README.md | 28 +++++++++++ content/articles/First-Steps.fr.md | 14 ++++++ content/articles/First-Steps.md | 15 ++++++ content/extras/custom.css | 3 ++ content/images/Profile.png | Bin 0 -> 25220 bytes content/pages/about.fr.md | 32 +++++++++++++ content/pages/about.md | 33 +++++++++++++ new_article.sh | 44 ++++++++++++++++++ pelicanconf.py | 72 +++++++++++++++++++++++++++++ plugins/pelican-toc | 1 + themes/Flex | 1 + 13 files changed, 256 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 README.md create mode 100644 content/articles/First-Steps.fr.md create mode 100644 content/articles/First-Steps.md create mode 100644 content/extras/custom.css create mode 100644 content/images/Profile.png create mode 100644 content/pages/about.fr.md create mode 100644 content/pages/about.md create mode 100755 new_article.sh create mode 100644 pelicanconf.py create mode 160000 plugins/pelican-toc create mode 160000 themes/Flex diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..974c440 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +__pycache__/ +output/ +Makefile +publishconf.py +tasks.py +*.swp diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..834ebbe --- /dev/null +++ b/.gitmodules @@ -0,0 +1,7 @@ +[submodule "themes/Flex"] + path = themes/Flex + url = https://github.com/lpenaud/Flex/ + branch = toc-style +[submodule "plugins/pelican-toc"] + path = plugins/pelican-toc + url = https://github.com/ingwinlu/pelican-toc/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..f5196b6 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# TFK-Blog + +This is the sources for my blog. +They are generated using Pelican and based on the Flex theme. + +## Prerequisites + +Python dependencies : + - pelican[Markdown] + - typogrify + - beautifulsoup4 (Maybe ? Was already pulled for me) + +You can install everything by running the following command : +`sudo pip3 install pelican[Markdown] typogrify beautifulsoup4` + +## Build + +To generate the site, you have to setup the pelican project : +`pelican-quickstart` + +Then, check that the `pelicanconf.py` file has not been changed. If it has, replace it. + +You can now generate the site by running `make html` and test it on your local machine, port 8000, by running `make serve`. + +## Write + +You can use the script `new_article.sh` to create a new article, fill its metadata and start editing it righ away. Otherwise, they are under `content/articles` + diff --git a/content/articles/First-Steps.fr.md b/content/articles/First-Steps.fr.md new file mode 100644 index 0000000..b2ac9eb --- /dev/null +++ b/content/articles/First-Steps.fr.md @@ -0,0 +1,14 @@ +Title: Premiers pas +Date: 2020-05-31 20:40 +Category: Blog +Tags: +Slug: first-steps +Summary: C'est le début d'une nouvelle aventure ! + +Cela fait longtemps que ça me trottait en tête mais le moment est venu : il est temps de +se mettre à écrire ! J'ai plusieurs fois eu des problèmes que j'ai du rechercher plusieurs +fois car j'avais oublié la solution, ou même seulement envie de garder les sources qui +m'ont aidé à mettre en place quelque chose. + +C'est donc le début de cette aventure d'écriture, qui ne peut pas faire de mal et va +potentiellement m'aider (ou d'autres!) dans le futur. diff --git a/content/articles/First-Steps.md b/content/articles/First-Steps.md new file mode 100644 index 0000000..408a30a --- /dev/null +++ b/content/articles/First-Steps.md @@ -0,0 +1,15 @@ +Title: First steps +Date: 2020-05-31 20:45 +Category: Blog +Tags: +lang: en +Slug: first-steps +Summary: This is the start of a new adventure ! + +Starting writing has been on my list for a long time : the time is now ! Multiple times +I had to search for a solution to the same problem twice or even wanted to keep a record +of the references that helped me setup something. + +Thus, this is the start of this writing adventure ! It can't hurt and it might just help +me (or others!) in the future ! + diff --git a/content/extras/custom.css b/content/extras/custom.css new file mode 100644 index 0000000..94cb732 --- /dev/null +++ b/content/extras/custom.css @@ -0,0 +1,3 @@ +aside nav ul li { + text-transform: none; +} diff --git a/content/images/Profile.png b/content/images/Profile.png new file mode 100644 index 0000000000000000000000000000000000000000..f07f9e83bd5233507f55e1dbdf37c6ef8eb3fb96 GIT binary patch literal 25220 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 P00000NkvXXu0mjf)|LQt literal 0 HcmV?d00001 diff --git a/content/pages/about.fr.md b/content/pages/about.fr.md new file mode 100644 index 0000000..2637fd4 --- /dev/null +++ b/content/pages/about.fr.md @@ -0,0 +1,32 @@ +Title: About +Date: 2020-05-31 19:20 +Slug: about +toc_run: false + +# Bienvenue ! + +## Ce site + +L'idée derrière ce site est d'avoir un lieu où je peux partager mes expériences, problèmes +solutions, écrits, réflexions et tout autre chose écrite qui peut intéresser ou être utile +à d'autres que moi. (Ceci comprend mon moi du futur !) + +Il se présente donc sous la forme d'un blog (dont vous prouvez trouver les sources +[ici](https://git.tfk-astrodome.net/Teo-CD/TFK-Blog)) pas forcément structuré ou plannifié, +mais (idéalement) au moins organisé par catégorie/thème ! + +## Ce bonhomme + +Moi c'est trotFunky (Abrégé `trot`. Ou alors Téo, mais trotFunky c'est bien). +Jeune français de 98 (plus pratique que garder un âge à jour), +(bientôt) ingénieur diplômé de l'[Institut Polytechnique de Paris](https://www.ip-paris.fr/) +qui s'amuse à bidouiller, programmer et faire du jeu de rôle. +Développeur bas-niveau du club de robotique INTech pendant trois ans. Visiblement, blogger. + +## Astrodome ? + +Quel nom étrange ! Le dictionnaire anglais Merriam-Webster définit un "Astrodome" comme +la canopée vitrée pointée vers le haut dans un avion et qui sert à observer les étoiles et pour +naviguer. J'ai choisit ce mot pour mon URL car je visualise mes différents services +comme différentes étoiles dans ma galaxie/constellation. L'Astrodome permet donc +d'observer cette constellation ! diff --git a/content/pages/about.md b/content/pages/about.md new file mode 100644 index 0000000..1b1909b --- /dev/null +++ b/content/pages/about.md @@ -0,0 +1,33 @@ +Title: About +Date: 2020-05-31 19:41 +Slug: about +lang: en +toc_run: false + +# Welcome ! + +## This website + +The idea behing this website is to be a place where I can share my experiments, issues, +how I resolved them, essays, thoughts and anything else that could be useful for anyone +other than me. (Which could be myself from the future!). + +Thus I chose to make it a blog (the sources of which can be found +[here](https://git.tfk-astrodome.net/Teo-CD/TFK-Blog)) which might not be well structued +or planned but -- idealy -- at least organized by category/theme ! + +## This guy + +I'm trotFunky (Shortened `trot`. Or Téo, but trotFunky is alright). I'm a French guy, +born in 1998 (That's easier to keep updated than an age), (soon to be) gratuated from +l'[Institut Polytechnique de Paris](https://www.ip-paris.fr) who likes to tinker, code +and play tabletop RPGs. Low-level programmer at the robotics club INTech for three years. +Apparently, a blogger. + +## Astrodome ? + +What a strange name ! Merriam-Webster defines an "astrodome" as follows : +> A transparent dome in the upper surface of an airplane from within which the navigator makes celestial observations + +I chose this noun for my URL as I picture my different services as multiple stars in +galaxy/constellation that is mine. The Astrodome allows observing this constellation ! diff --git a/new_article.sh b/new_article.sh new file mode 100755 index 0000000..dff4c77 --- /dev/null +++ b/new_article.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# Add the metadata if the answer is not empty +# Usage: +# append_to_metadata file_name metadata_name +append_to_metadata() { + if [ $# -eq 2 ]; then + echo -n "$2 : " + read answer + if [ -n "$answer" ]; then + echo "$2: ""$answer" >> "content/articles/$1" + else + echo "Empty answer, nothing was appended" + fi + fi +} + +echo -n "Filename : " +read filename + +append_to_metadata "$filename" "Title" + +append_to_metadata "$filename" "Date" + +append_to_metadata "$filename" "Category" + +append_to_metadata "$filename" "Tags" + +append_to_metadata "$filename" "Lang" + +append_to_metadata "$filename" "Slug" + +append_to_metadata "$filename" "Summary" + +echo -e "\n" >> content/articles/"$filename" + +# Try to get the default editor from alternatives +EDITOR=${EDITOR:-$(update-alternatives --list editor | head -n1)} +# If not present set it to vi +EDITOR=${EDITOR:-vi} + +# Open the newly created file, openfully in the chosen editor + +$EDITOR content/articles/"$filename" diff --git a/pelicanconf.py b/pelicanconf.py new file mode 100644 index 0000000..05df97b --- /dev/null +++ b/pelicanconf.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- # +from __future__ import unicode_literals +from datetime import datetime + +AUTHOR = 'trotFunky' +SITENAME = "L'Astrodome" +SITETITLE = "L'Astrodome" +SITESUBTITLE = "Un point d'observation de mon univers" +SITELOGO = "/images/Profile.png" +SITEURL = 'https://tfk-astrodome.net' + +CC_LICENSE = { + 'name': 'Creative Commons Attribution-ShareAlike', + 'version': '4.0', + 'slug': 'by-sa' +} +COPYRIGHT_YEAR = datetime.now().year + +PATH = 'content' +PLUGIN_PATHS = ["plugins"] +STATIC_PATHS = ['extras/custom.css'] + +# tell pelican where it should copy that file to in your output folder +EXTRA_PATH_METADATA = { +'extras/custom.css': {'path': 'static/custom.css'} +} + +CUSTOM_CSS = 'static/custom.css' + +PLUGINS = ["pelican-toc"] + +TIMEZONE = 'Europe/Paris' + +DEFAULT_LANG = 'fr' + +# Feed generation is usually not desired when developing +FEED_ALL_ATOM = 'feeds/all.atom.xml' +CATEGORY_FEED_ATOM = 'feeds/{slug}.atom.xml' +TRANSLATION_FEED_ATOM = None +AUTHOR_FEED_ATOM = None +AUTHOR_FEED_RSS = None + +# Blogroll +LINKS = (("Categories", SITEURL+'/categories.html'),) + +# Social widget +SOCIAL = (('rss', SITEURL+'/feeds/all.atom.xml'),) + +DEFAULT_PAGINATION = False + +# Uncomment following line if you want document-relative URLs when developing +#RELATIVE_URLS = True + +MAIN_MENU = False + +LOCALE = ('fr_FR', 'en_US') + +TYPOGRIFY = True +THEME = "themes/Flex" + +# Flex theme + +TOC_FLOAT = 'right' +TOC = { + 'TOC_HEADERS' : '^h[1-6]', + 'TOC_RUN' : 'true', + 'TOC_INCLUDE_TITLE' : 'false', +} + +THEME_COLOR_AUTO_DETECT_BROWSER_PREFERENCE = True +THEME_COLOR_ENABLE_USER_OVERRIDE = True diff --git a/plugins/pelican-toc b/plugins/pelican-toc new file mode 160000 index 0000000..b98d89b --- /dev/null +++ b/plugins/pelican-toc @@ -0,0 +1 @@ +Subproject commit b98d89b2cfa857c59b647ef0983a470408d6d8cd diff --git a/themes/Flex b/themes/Flex new file mode 160000 index 0000000..077d479 --- /dev/null +++ b/themes/Flex @@ -0,0 +1 @@ +Subproject commit 077d47986154e82c97bebff5c9fb280d544887fa