This repository is archived for the moment, as I decided to move back to Wordpress to simplify my workflows.
This is my personal blog running on Yellow CMS. I use Visual Studio Code on my Mac desktop and Working Copy on my mobile device for edits. For adding photos from my iPhone, I created a simple workflow. All photos are automatically optimized by the Tinify Image Action. All edits are automatically published with the help of FTP Deploy Action to my web server.
Visit my blog, and follow me on Twitter, LinkedIn and Komoot.
The main
branch of this repository is my live system. For testing extensive modifications (f.e. testing updates of Yellow, new plugins, design and layout customizations) I create a temporary stage
branch as independent playground. Commits to all branches are automatically published by FTP Deploy Action to the corresponding main
and stage
directory on my web server.
Depending on the type of the blog article, my mood and current location I'll use Visual Studio Code on my Mac desktop or Working Copy on my iPhone for edits. For more elaborated content I usually use Visual Studio Code. For quick notes, photo-blogging or just because I'm on the go, I'll love to use Working Copy on my smartphone.
I'm a lazy guy and thats why I created a Siri shortcut to simplify the content creation process as much as possible.
As I use a iPhone as my camera, I'll need a smart way to push photos to my repository. The solution I came up with, is this Siri shortcut which runs photos from the iOS share sheet through the following workflow:
- Save all photos to the local iOS photo album named
Blog
. - Ask for the title of the new blog post.
- Create a new file named
/content/1-blog/yyyy-mm-dd-hh-title-of-the-new-blog-post.md
. The file already contains the Yellow CMS blog header with the current date and the title of the article. - Write every photo to
/media/images/yyyy-mm-dd-hh-mm-ss.jpeg
. - Append
!["alt text"](yyyy-mm-dd-hh-mm-ss.jpeg)
for every photo to/content/1-blog/yyyy-mm-dd-hh-title-of-the-new-blog-post.md
. - Remove all photos from the temporary local iOS photo album.
- Start "Working Copy" and open
/content/1-blog/yyyy-mm-dd-hh-title-of-the-new-blog-post.md
in edit mode.
If I only want to sync photos to the remote repository, I run this Siri shortcut from the iOS share menu. It simply writes every photo to /media/images/yyyy-mm-dd-hh-mm-ss.jpeg
and syncs all changes to the remote repository. After that, the content of the local photo album Blog
is removed. So I can finishing writing my blog article later from my desktop.
All new photos are automatically processed by the Tinify Image Action. They will get resized to 1280px*auto height
and than pushed through the TinyPNG API to further reduce the file size with a lossless compression.
The disadvantage by using a Github repository as powerhouse for content creation, website management and deployment of a website running on Yellow is, that you can't use the standard procedures for updating Yellow CMS to a new version. But anyway, as Yellow only consists out of a a few PHP
and HTML
files, it is not that hard to perform a manual update. When you customized Yellow to your own needs, its even easier to use the tools provided by Visual Studio Code and Github to migrate your customizations to a new version of Yellow.
Follow this guide for a manual update of Yellow CMS. Depending on the level of your own customizations, you'll probably need 5-10 minutes to update Yellow CMS.
- Download the latest Yellow release and unzip it to a local
$temp-directory
. - Rename
$temp-dir\system\extensions\install-blog.bin
to$temp-dir\system\extensions\install-blog.zip
and unzipblog.php
to$temp-dir\system\extensions
andblog.html
as well asblog-start.html
to$temp-dir\system\layouts
. - Rename
$temp-dir\system\extensions\install-languages.bin
to$temp-dir\system\extensions\install-languages.zip
and unzipgerman.php
,german.txt
,english.php
,english.txt
from$temp-dir\system\extensions\install-languages.zip
to$temp-dir\system\extensions
. - As I don't need the edit extension at all, I delete all
edit.*
files, theyellow-user.ini
andinstall.php
from$temp-dir\system\extensions
. You also can safely delete all*.zip
and allupdate*.*
files from this directory. - Open Visual Studio Code and create the temporary
stage
branch. - Drag & drop all files from
$temp-dir\system\extensions
to the Yellow extension directory in your Visual Studio Code project. Visual Studio Code will automatically highlight all files that include changes. All even files, won't be highlighted and you can ignore them. - For migrating
yellow-system.ini
I suggest to make a diff against themain
repository to see if the updated file contains any new settings. If there are no new settings, I discard all changes of this file. - Drag and drop
$temp-dir\yellow.php
and all files from$temp-dir\system\layouts
to your Visual Studio Code project. As I customized nearly every layout file, I diff the local copy against themain
branch to spot the differences in detail. If there are no necessary changes, I discard the changes. - Push all changes to your remote repository and wait a few seconds for the automatic sync with your web server. Check your stage environment and if your website is still running fine, merge
stage
andmain
branch. - Finally delete the
stage
branch. Thats it!
Updating Yellow extensions works the same way as updating Yellow. Simply download and unzip the extension you want to update. Drag and drop all necessary files in the corresponding folders of your Visual Studio Code project and proceed like described above.
If you want to fork this repository, make sure to delete all *.md
files inside /content/blog-1
before publishing it to your own website. Otherwise this 1:1 reuse of content would lead to duplicate content which harms the visibility of your and my site in search engines. Its a complex but interesting topic you can read more about here. You may also want to delete all files in /content/media
, /content/2-about
and /content/downloads
.
My blog articles are filed under the CC BY-NC-SA 4.0 license. Basically you are free to reuse my content for non-commercial purposes under the obligation to publish it under the same license. You'll need to give credit and link back to the source article by attributing every article with
Source: [René Fischer](https://gaehn.org/link-to-the-article), [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)
If you credit and link back to the source, search engines usually see your website not as duplicate content.