Migrate to Eleventy

This commit is contained in:
Florine W. Dekker 2020-05-06 18:21:28 +02:00
parent d17e617c6d
commit 5eb7f76fa1
Signed by: FWDekker
GPG Key ID: B1B567AF58D6EE0F
13 changed files with 318 additions and 167 deletions

13
.eleventy.js Normal file
View File

@ -0,0 +1,13 @@
module.exports = (eleventyConfig) => {
eleventyConfig.addFilter("isoDate", dateObj => {
return dateObj.toISOString().substr(0, 10);
});
return {
pathPrefix: "/blog/",
dir: {
input: "src/main/",
output: "dist",
}
};
};

121
.gitignore vendored
View File

@ -1,4 +1,117 @@
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
## Node
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.pnp.*

View File

@ -1,13 +0,0 @@
title: FWDekker's blog
description: Felix W. Dekker's blog
email: felix@fwdekker.com
baseurl:
url: https://blog.fwdekker.com/
author: Felix W. Dekker
author_home: https://fwdekker.com/
license_name: MIT License
license_url: https://git.fwdekker.com/FWDekker/blog/src/branch/master/LICENSE
svn_name: git
svn_url: https://git.fwdekker.com/FWDekker/blog/

View File

@ -1,17 +0,0 @@
---
layout: default
---
{% for post in site.posts %}
<div class="row">
<div class="column">
<h2 style="display: inline;"><a href="{{ post.url | relative_url }}">{{ post.title }}</a></h2>&nbsp;
{% if post.date %}<u>{{ post.date | date: "%Y-%m-%d" }}</u>{% endif %}
{% if post.excerpt %}
{{ post.excerpt }}
<p><a href="{{ post.url | relative_url }}"><button class="button-outline">read more</button></a></p>
{% endif %}
</div>
</div>
{% endfor %}

View File

@ -1,102 +0,0 @@
---
layout: post
title: Mount a Raspi with Ubuntu
---
This post describes how to connect to your Raspberry Pi using the SSHFS (SSH File System) protocol over an Ethernet cable. This will allow you to edit files on the Raspberry Pi from a text editor in Ubuntu.
All instructions are to be executed from your computer, not from your Raspi, unless noted otherwise.
Section 1 describes the required one-time configuration. Section 2 describes how to mount the Raspi for the current session. Section 3 describes how to automount the Raspi.
----------
## 1 Installation
This section describes the instructions to be performed before trying to connect to your Raspi. You will only have to follow these instructions once.
0. Make sure SSH is enabled on your Raspi. If it isn't, follow [this guide](https://www.raspberrypi.org/documentation/remote-access/ssh/).
1. Install the necessary packages.
$ sudo apt update && sudo apt upgrade
$ sudo apt install network-manager nmap sshfs
2. Configure the packages.
1. Open the file `/etc/fuse.conf` with `sudo` in your editor of choice.
2. Remove the `#` in the line `#user_allow_other`.
3. Create a directory in which you will later mount the Raspi.
$ sudo mkdir /mnt/raspi
4. Connect to your Raspi.
1. Plug the Ethernet cable into your Raspi and into your computer.
2. Open the program **Network Connections**.
3. Find the Wired connection for your Raspi. Click **Edit**.
4. Go to the tab **IPv4 Settings**. Set the **Method** to **Shared to other computers**.
5. Save your changes, and close Network Connections.
5. Reboot your computer.
----------
## 2 Connecting
These are the instructions for connecting to your Raspi. You will have to repeat these instructions after each reboot, unless you follow the instructions in section 3.
Note that only those blocks that begin with `$` are expected input. Example output will be given directly after it in a separate code block.
1. Find the broadcast address of the Ethernet connection.
$ /sbin/ifconfig enp0s25 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}'
<!-- -->
10.42.0.255/24
2. Use the broadcast address to find the IP address of the Raspi. Add the `/24` part to the IP address, even if it was not returned in the previous step. The last IP address displayed in the output is the address of your Raspi.
$ nmap -n -sP 10.42.0.255/24
<!-- -->
Starting Nmap 7.01 ( https://nmap.org ) at 2017-03-01 21:42 CET Nmap scan report for 10.42.0.1
Host is up (0.00036s latency).
Nmap scan report for 10.42.0.140
Host is up (0.0010s latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.41 seconds
3. Mount the Raspi with SSHFS. Replace the IP address in the command with the one you found in the previous step.
$ sshfs -o allow_other,default_permissions pi@10.42.0.140:/ /mnt/raspi
4. Enjoy!
### Disconnecting
To unmount the Raspi:
$ umount /mnt/raspi
If you are unable to unmount because you receive errors on input/output errors, try:
$ sudo umount -l /mnt/raspi
----------
## 3 Automounting
I would recommend trying out the instructions in section 2 before the instructions in this section. Some of the information you will gather in section 2 is necessary in this section.
Because it is possible that the IP address of the Raspi changes, you may need to reconfigure the automounting at some point.
0. Log in as root: `sudo -i`.
1. If you do not have a key pair yet, generate one. You can generate it wherever you want. If you don't know if you have a key pair, enter this command anyway and it will warn you that you have on already.
$ ssh-keygen -t rsa
2. Copy the public key of the Raspi to the key pair. Replace the IP in the command with the one you found in part 2.
$ ssh-copy-id pi@10.42.0.140
3. Verify that you do not need to enter your password when you use `ssh pi@10.42.0.140`.
4. Open the file `/etc/fstab` in your editor of choice.
5. Add the following to the bottom of the file (this is **one** line):
pi@10.42.0.140:/ /mnt/raspi fuse.sshfs allow_other,_netdev
If you decided in step 1 not to save the key pair in the default location, add `,IdentityFile=<file to key pair>` at the end of the line.
7. Reboot your computer to verify that this works as intended. Note that using `sudo mount -a` is **not** the same as rebooting.

BIN
package-lock.json generated Normal file

Binary file not shown.

20
package.json Normal file
View File

@ -0,0 +1,20 @@
{
"name": "blog",
"version": "1.1.1",
"description": "Felix W. Dekker's personal blog.",
"author": "Felix W. Dekker",
"browser": "dist/bundle.js",
"repository": {
"type": "git",
"url": "git@git.fwdekker.com:FWDekker/blog.git"
},
"private": true,
"scripts": {
"build": "npx @11ty/eleventy",
"build:server": "npx @11ty/eleventy --serve"
},
"dependencies": {
"@fwdekker/template": "^0.0.13",
"@11ty/eleventy": "^0.10.0"
}
}

11
src/main/_data/site.json Normal file
View File

@ -0,0 +1,11 @@
{
"url": "https://fwdekker.com/blog/",
"title": "FWDekker's blog",
"description": "Felix W. Dekker's blog",
"author": "Felix W. Dekker",
"author_home": "https://fwdekker.com/",
"license_name": "MIT License",
"license_url": "https://git.fwdekker.com/FWDekker/blog/src/branch/master/LICENSE",
"svn_name": "git",
"svn_url": "https://git.fwdekker.com/FWDekker/blog/"
}

View File

@ -23,41 +23,33 @@
text-align: justify;
text-justify: inter-word;
}
ol {
list-style: decimal outside;
}
</style>
</head>
<body>
<main class="wrapper">
<!-- Header -->
<header class="header">
<section class="container">
<h1><a href="{{ site.url }}{{ site.baseurl }}">{{ site.title }}</a></h1>
{% if page.title %}
<h2 style="display: inline;">{{ page.title }}</h2>&nbsp;
{% if page.date %}<u>{{ page.date | date: "%Y-%m-%d" }}</u>{% endif %}
{% endif %}
</section>
</header>
<!-- Contents -->
<main class="wrapper">
<!-- Header -->
<header class="header">
<section class="container">
{{ content }}
{% if title %}
<h1><a href="{{ '/' | url }}">{{ site.title }}</a></h1>
{% else %}
<h1>{{ site.title }}</h1>
{% endif %}
{% if title %}
<h2 style="display: inline;">{{ title }}</h2>&nbsp;
{% if date %}<u>{{ date | isoDate }}</u>{% endif %}
{% endif %}
</section>
</header>
<!-- Footer -->
{% if site.author or site.license or site.git %}
<footer class="footer">
<section class="container">
{% if site.author %}Made by {% if site.author_home %}<a href="{{ site.author_home }}">{% endif %}{{ site.author }}{% if site.author_home %}</a>{% endif %}.{% endif %}
{% if site.license_name %}Licensed under the
{% if site.license_url %}<a href="{{ site.license_url }}">{% endif %}{{ site.license_name }}{% if site.license_url %}</a>{% endif %}.{% endif %}
{% if site.svn_name %}Source code available on {% if site.svn_url %}<a href="{{ site.svn_url }}">{% endif %}{{ site.svn_name }}{% if site.svn_url %}</a>{% endif %}.{% endif %}
</section>
</footer>
{% endif %}
</main>
<!-- Contents -->
<section class="container">
{{ content | safe }}
</section>
</main>
</body>
</html>

View File

@ -0,0 +1,17 @@
---
layout: default
---
{% for post in collections.all %}
<div class="row">
<div class="column">
{% if post %}
<h2 style="display: inline;"><a href="{{ post.url | url }}">{{ post.data.title }}</a></h2>&nbsp;
{% if post.data.date %}<u>{{ post.data.date | isoDate }}</u>{% endif %}
{% if post.data.excerpt %}
<p>{{ post.data.excerpt }}</p>
{% endif %}
{% endif %}
</div>
</div>
{% endfor %}

View File

@ -4,6 +4,6 @@ layout: default
<div class="row">
<div class="column">
{{ content }}
{{ content | safe }}
</div>
</div>

View File

@ -0,0 +1,117 @@
---
title: Mount a Raspi with Ubuntu
layout: post
date: 2017-03-01
permalink: mount-a-raspi-with-ubuntu/
excerpt: How to connect to your Raspberry Pi over an Ethernet cable.
---
This post describes how to connect to your Raspberry Pi using the SSHFS (SSH File System) protocol over an Ethernet
cable.
This will allow you to edit files on the Raspberry Pi from a text editor in Ubuntu.
All instructions are to be executed from your computer, not from your Raspi, unless noted otherwise.
Section 1 describes the required one-time configuration.
Section 2 describes how to mount the Raspi for the current
session.
Section 3 describes how to automount the Raspi.
----------
## 1 Installation
This section describes the instructions to be performed before trying to connect to your Raspi.
You will only have to follow these instructions once.
0. Make sure SSH is enabled on your Raspi.
If it isn't, follow [this guide](https://www.raspberrypi.org/documentation/remote-access/ssh/).
1. Install the necessary packages.
$ sudo apt update && sudo apt upgrade
$ sudo apt install network-manager nmap sshfs
2. Configure the packages.
1. Open the file `/etc/fuse.conf` with `sudo` in your editor of choice.
2. Remove the `#` in the line `#user_allow_other`.
3. Create a directory in which you will later mount the Raspi.
$ sudo mkdir /mnt/raspi
4. Connect to your Raspi.
1. Plug the Ethernet cable into your Raspi and into your computer.
2. Open the program **Network Connections**.
3. Find the Wired connection for your Raspi. Click **Edit**.
4. Go to the tab **IPv4 Settings**. Set the **Method** to **Shared to other computers**.
5. Save your changes, and close Network Connections.
5. Reboot your computer.
----------
## 2 Connecting
These are the instructions for connecting to your Raspi.
You will have to repeat these instructions after each reboot, unless you follow the instructions in Section 3.
Note that only those blocks that begin with `$` are expected input.
Example output will be given directly after it in a separate code block.
0. Find the broadcast address of the Ethernet connection.
$ /sbin/ifconfig enp0s25 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}'
10.42.0.255/24
1. Use the broadcast address to find the IP address of the Raspi.
Add the `/24` part to the IP address, even if it was not returned during the previous step.
The last IP address displayed in the output is the address of your Raspi.
$ nmap -n -sP 10.42.0.255/24
Starting Nmap 7.01 ( https://nmap.org ) at 2017-03-01 21:42 CET Nmap scan report for 10.42.0.1
Host is up (0.00036s latency).
Nmap scan report for 10.42.0.140
Host is up (0.0010s latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.41 seconds
2. Mount the Raspi with SSHFS. Replace the IP address in the command with the one you found in the previous step.
$ sshfs -o allow_other,default_permissions pi@10.42.0.140:/ /mnt/raspi
3. Enjoy!
### Disconnecting
To unmount the Raspi:
$ umount /mnt/raspi
If you are unable to unmount because you receive errors on input/output errors, try:
$ sudo umount -l /mnt/raspi
----------
## 3 Auto-mounting
I would recommend trying out the instructions in Section 2 before the instructions in this section.
Some information you will gather in Section 2 is necessary in this section.
Because it is possible that the IP address of the Raspi changes, you may need to reconfigure the auto-mounting at some
point.
0. Log in as root: `sudo -i`.
1. If you do not have a key pair yet, generate one.
You can generate it wherever you want.
If you don't know if you have a key pair, enter this command anyway and it will warn you that you have on already.
$ ssh-keygen -t rsa
2. Copy the public key of the Raspi to the key pair.
Replace the IP in the command with the one you found in part 2.
$ ssh-copy-id pi@10.42.0.140
3. Verify that you do not need to enter your password when you use `ssh pi@10.42.0.140`.
4. Open the file `/etc/fstab` in your editor of choice.
5. Add the following to the bottom of the file (this is **one** line):
pi@10.42.0.140:/ /mnt/raspi fuse.sshfs allow_other,_netdev
If you decided in step 1 not to save the key pair in the default location, add `,IdentityFile=<file to key pair>`
at the end of the line.
7. Reboot your computer to verify that this works as intended.
Note that using `sudo mount -a` is **not** the same as rebooting.