Let's start from the beginning. I made this blog to write stuff daily without giving too much thoughts on it, to see my progress on topics that may be controversial and how I am improving on it. Things that I have a very crude understanding of but still have opinions on.
I basically have two personas here, one the writer me and another the commenter/explainer me. Hey! that's me! So, judging me entirely by this blog alone will be like judging a kid for making mistakes.
Blabbering in the wind just doesn't cut it for a learning process. This might calm me down but it wont give me clarity. I might get clarity by researching things by myself but I want a natural approach. Someone envisioned that communnications in the web can also be decentralized as well as interactive and drafted the concept of webmentions, and that resonated with me. As opposed to communicating via a social media being limited to their visual design, I wanted something that had structure but still can be personalized.
I decided to make this into a template and not just my personal site because I found out that there aren't many people who use webmentions as a form of communication. And if there are, they aren't someone who would interact to my silly ramblings. Also, this site is heavily inspired by Manu's site because of it's simplicity (I don't credit him enough, this design it so brilliant.), but I added a bunch of complexities to it.
[_Hi_] becomes Hi.Though I like to shit on GitHub for being a monopoly and for being Microsoft, I can't deny the fact that they give free access to workflows and pages.
Though the default CSS and layout is good, I encourage you to tweak the layouts (/templates) and change the CSS to make it personal to you.
1. Fork and clone this repo.
https://github.com/scientiac/blog.carboxide
2. Make it yours.
- Edit
config.tomlwith your information getthing the URLs wrong will result in pages not linking properly and fill everything correctly.
Email is necessary for creating and verifying your indieweb account.- Edit the
/static/CNAMEwith your domain and replace/static/thumbnail.pngwith your profile picture.- Make sure to install zola on your system and test the site locally using
zola serve.- Edit the files in
/authorand/nowto write about yourself.- If everyting is correct push the changes to the GitHub repo.
In the config you can use themes for syntax highlighting from the zola docs.
3. Give GitHub actions the necessary permission to write to your repo.
Go toSettings > Actions > General > Workflow permissionsand selectRead and write permissions.
Re-run the workflow if it had failed previously.
4. Run the workflow and then enable the pages.
After the GitHub action successfully runs, go toSettings > Pages > Build and Deploymentand selectDeploy from a branchonSourceandgh-pages&\rooton Branch. Add your domain name toCustom domainif you have one.
5. Check if the site is published.
Go to the website and see if everything is working properly. Only if your website is published go to the next step. Verify yourh-cardon indiewebify.me and see if everything is correct.
6. Make a webmention.io account.
Go to webmention.io and put your website URL in there. It will automatically detect your email address. Then, verify your email to log in. Go tosettings > API Keyand copy it to your clipboard.
7. Save your API secret on GitHub.
Go to GitHubSettings > Secrets and variables > Actions > Repository secretsand click onNew repository secret.
AddWEBMENTION_TOKENas theNameand the API key you copied as theSecretthen click onAdd Secret.
8. Add the proper workflows.
After you have the page working and webmention.io set up. Remove the current workflow.
Then move the workflows directory from the root to.github.# from the project root rm -rf ./.github/workflows/ mv ./workflows/ ./.github/And finally push the changes.
9. Verify that everything is working correctly.
Check if all the GitHub actions run successfully and nothing fails. Verify everything in indiewebify.me. It is fine if Syndicated Copies shows an error.
10. Finally write your posts.
Write your posts by making a markdown file in/contentwith the proper header like in the example/content/one.md.
If you use Nix then usedirenvto enable the nix shell which automatically installs zola for you. You also get a command callednowthat you can run to get the properly formatted datetime for the post.
If you write a post and try to push to the repo, it might fail because the workflow pulled the webmentions from webmentions.io and merged it to your repo. It is fine to force push to publish the changes. If not, then remember to pull and merge the changes before you push.
In order to send Webmentions, the content should be formatted accordingly. In general I like to utilize three activities to send Webmentions. It is preferred to only use one activity for one mention.
One can mention a site using webmention by simply putting the link to the page being mentioned. The site will get the webmention if it supports it.
[I love learning things](https://faulty.carboxi.de/learning/) by faulty.
or
<a href="https://faulty.carboxi.de/learning/">I love learning things</a> by faulty.
One can like a post using webmention by formatting the link as follows:
I like how faulty talks about learning in <a class="u-like-of" href="https://faulty.carboxi.de/learning/">I love learning things</a>.
I like how faulty talks about learning in I love learning things.
One can reply to a post by formatting the link and the text as follows:
<a class="u-in-reply-to" href="https://faulty.carboxi.de/learning/">I love learning things</a>
I feel the same about learning. Nice writing faulty!
I made this to introduce people to webmentions and increase interactions using it. I encourage writing both goofy and serious stuff. And even stupid stuff. And most importantly I incourage people to customize the hell out of this base, changing and tweaking css and html without breaking the indieweb structure.
Happy writing!
Maybe explore my tags & archives and send me a webmention. Follow the site using RSS. Send me your blog and I’ll read it. That is, if you know how to contact me. :p