To publish our FabAcademy websites/portfolios we need to learn how to use
version control systems, Fabcloud infrastructure is based on
git/GitLab
and luckly I already have some exprerience with these tools.
First of all i need to create a new SSH key pair:
$ ssh-keygen -t ed25519
ed25519 is a newer option than
DSA
(OpenSSH intruduced it in January
2014) but nowadays is well supported and offer excellent security level
with better performance.
ssh-keygen generated a private key to be stored in a user-only readable directory:
$ mv id_ed25519 ~/.ssh/
$ chmod 600 ~/.ssh/
OpenSSH can handle different keys on the same computer, but wants to know which keys is related with each specific address.
$ vim ~/.ssh/config
#FabCloud - FabAcademy
Host gitlab.fabcloud.org
HostName gitlab.fabcloud.org
IdentityFile ~/.ssh/id_ed25519
Now i need to upload my public key in Gitlab, so i copied it into my desktop enviroment clipboard:
$ xclip -sel clip < ~/id_ed25519.pub
And pasted it in my account settings page:
In modern linux distributions it's hard to not have git pre-installed, anyway i use ArchLinux in my daily "desktop routine" and you have to manually install it if you haven't done it before.
# pacman -Sy git
Then i configued my identity in git configuration:
$ git config --global user.name 'Gianluca "Bigshot" De Rossi'
$ git config --global user.email "bigshot@antani.com"
Ok, now i'm good to go and clone my website project!
$ git clone git@gitlab.fabcloud.org:academany/fabacademy/2018/labs/fablabcrunchlab/students/gianluca-derossi.git
$ mv gianluca-derossi/
The directory is empty with only a README.md
template.
Time to write some pages... :)
...
To add new file to the project i can use:
$ git add lorem_ipsum.html
Or get all new and modified files from the working directory:
$ cd /path/to/local/repo/gianluca-derossi
$ git add .
And then commit the changes:
$ git commit -m "nice_changes_description_here"
This repo has only one remote address so to upload new commits and let GitLab CI publish my pages i can simply use:
$ git push
I don't want to upload too much stuff, expecially big images, so i used a gitignore file:
$ vim .gitignore
#Untracked big images
img/hi_res/**
I can check the gitignore is well formatted with a simple:
$ git status
And checking there are no untracked files in my "keep-out" directories.
I created from scratch a template based on
bootstrap 4 for my personal
website.
Since we can't use server-side scripts for our sites and this is a
simple portfolio layout i think it's not worth the hassle using some
JavaScript/Ruby "wizardry" to
render static pages from a CMS or to translate markdown files into my HTML
template.
But if i find an really interesting and easy to set up js framework
i will change my mind.
I use Atom as my text-editor of choice
but i'm also a Vim affecionado!
:wq
Update:
In the end i succumbed to Jekyll... it's not as bad as it seemed to me in the beginning.
Anyway i'm still not using kramdown to translate md files to html because it seems
not flexible enough to adapt to my personal html template.
Have a look at my (OLD!!!) final project page.