Feel free to reach out to Raf to propose new resources to share with the community.
- Twitter: https://twitter.com/linksgeo
- Linkedin: https://www.linkedin.com/in/rafael-roset-910b947/
The main branch of this repo is gh-pages
as this website is hosted by GitHub Pages.
This website uses Jekyll, a static website generator. The minimal requirements to run this site could be:
- The Ruby language runtime
- Ruby Bundler manager
Makefile
manager
Once the repo is cloned you can run bundle install
in the project folder to install all the dependencies and make serve
to run jekyll in development mode. It will autogenerate content as it's stored but check the console output for errors in your posts.
Visit the website at http://localhost:8000/rafagas/
.
If you prefer not to mess with Ruby, you can execute the Docker Compose template that relies in the official Jekyll Docker container image. Simply execute docker-compose up
to start the server.
Visit the website at http://localhost:8000/rafagas/
.
A new post needs to be added to a Markdown file with the following path and naming conventions:
- The file will be stored in the year folder inside
/_posts
. - The name of the file will follow the
date-rid.md
pattern.
Posts use the following template:
---
layout: rafaga
date:
rid:
rafagas:
- keyw:
desc: ''
link:
- keyw:
desc: ''
link:
- keyw:
desc: ''
link:
---
All the content is inside the frontmatter, if you want to add some custom text to a post you can do that after the frontwmatter.
The content of the frontmatter are:
date
: formatted using the ISO 8601 standard, you can use either date or date & time (ex.2020-11-25
or2020-11-25T09:04:38+0100
)rid
: is the number of the post, they are consecutive and independent of Raf's original postingsauthor
: Optinal. Occasionally, Raf specifies that all the links are coming from another person, this property will change the signature in the website and email to reflect it.- Then for each link:
keyw
: the lowcase keyword to describe the link, it will be converted into a hashtag so better choosing a single word. All lowcase, no exceptions.desc
: a simple sentence describing the content, normally just a direct translation of Raf's description but you may want to adapt it to an English-speaking audiencelink
: the link to share, it's always better avoiding redirecting services, if possible
Additionally, the following properties can be also added to any link:
lang
: Optional. If the link content is not in English, add this property using the ISO 639-1 language identifier (ex.ES
,DE
)via
: if Raf is marking this link as shared by someone else, add this property with the Twitter handle (including the@
character) and always use single quotes.invalid: true
: this is a maintenance property to indicate the link is not working anymore.nocheck: true
: this is a maintenance property to indicate to the link checker that this link should not be tested
NOTE: This an optional step since the new information is still not used in the website so feel free to skip this one.
There is a script at ./script/microlink.py
that will send each non-enriched link from the last five posts to https://microlink.io API endpoint to gather a few details from the link itself. This new details are saved in a microlink
property. After the file checking the frontmatter is rewritten so don't worry if you see your content a bit different.
To run this script first you need to create a Python environment and install the script dependencies:
$ python3 -m venv env
$ source ./env/bin/activate
$(env) pip install requests PyYAML python-frontmatter
With these dependencies installed you can run the script with make microlink
. It will take a few seconds to gather all the metadata. You may want to have the jekyll server running to see if the website remains the same after running the script.
$ make microlink
./env/bin/python script/microlink.py
09:31:17 AM - INFO Processing rafaga 1456...
09:31:42 AM - INFO Processing rafaga 1455...
09:31:42 AM - INFO Processing rafaga 1454...
09:31:42 AM - INFO Processing rafaga 1453...
09:31:42 AM - INFO Made 3 requests to microlink
Depending if you are a project maitainer or a contributor you may push your changes to the gh-pages
branch of the main repository or create a Pull Request for the maintainers to review and approve.
There are two Zapier tasks that are tracking different RSS feeds from the website:
- One is tracking the posts feed to send an email to the Rafagas mailing list
- The other is tracking the links feed to schedule the new links to the Twitter account using IFTTT