All Projects → elementary → blog-template

elementary / blog-template

Licence: GPL-3.0 license
Template for the Jekyll-powered elementary blog

Programming Languages

HTML
75241 projects
SCSS
7915 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to blog-template

bubo-rss
An irrationally minimalist, static RSS feed reader you can instantly deploy on Netlify, Glitch or your own server.
Stars: ✭ 41 (+20.59%)
Mutual labels:  rss, static-site
simple-dev-blog-zola-starter
A simple dev-blog theme for Zola.
Stars: ✭ 30 (-11.76%)
Mutual labels:  static-site
wordpress-scaffold
The scaffold for GRRR's WordPress Pro setup.
Stars: ✭ 16 (-52.94%)
Mutual labels:  static-site
hosts
自动生成 Hosts 文件,科学上网
Stars: ✭ 30 (-11.76%)
Mutual labels:  medium
bye-bye-feedly
Export your read later (formerly saved/favorited) articles from feedly, and access them from a simple reader.
Stars: ✭ 42 (+23.53%)
Mutual labels:  rss
school house
The new era of Elixir School now powered by @phoenixframework
Stars: ✭ 106 (+211.76%)
Mutual labels:  static-site
BottomNavArchDemo
The demo project for Bottom Navigation with Navigation Architecture Components article
Stars: ✭ 53 (+55.88%)
Mutual labels:  medium
site
🏁📑 Static site generator for landing pages, docs, and more
Stars: ✭ 31 (-8.82%)
Mutual labels:  static-site
docker-ttrss
Tiny Tiny RSS feed reader as a Docker image.
Stars: ✭ 55 (+61.76%)
Mutual labels:  rss
github-readme-medium
📖 Dynamically generated your latest Medium article on your GitHub readmes!
Stars: ✭ 56 (+64.71%)
Mutual labels:  medium
nextjs-github-pages
🚀 Deploy a Next.js app to Github Pages via Github Actions.
Stars: ✭ 89 (+161.76%)
Mutual labels:  static-site
noobtoberfest
Game-coding challenge for everyone who wants to contribute to an open-source project for Hacktoberfest 2020 🎮
Stars: ✭ 32 (-5.88%)
Mutual labels:  static-site
sodalite
🪨 A Pantheon experience for rpm-ostree
Stars: ✭ 93 (+173.53%)
Mutual labels:  elementary
github-issues-rss
convert github issues to rss
Stars: ✭ 25 (-26.47%)
Mutual labels:  rss
assemble-core
The core assemble application with no presets or defaults. All configuration is left to the implementor.
Stars: ✭ 17 (-50%)
Mutual labels:  static-site
dry
Dry is a new template engine and language, and is a superset of Shopify's Liquid, with first-class support for advanced inheritance features, and more. From the creators of Enquirer, Assemble, Remarkable, and Micromatch.
Stars: ✭ 66 (+94.12%)
Mutual labels:  static-site
gatsby-starter-typescript
A Gatsby starter the way I like it.
Stars: ✭ 62 (+82.35%)
Mutual labels:  static-site
Gofr
Feed Reader for App Engine (Google Reader clone)
Stars: ✭ 53 (+55.88%)
Mutual labels:  rss
simplepie-ng
Don't use this yet.
Stars: ✭ 41 (+20.59%)
Mutual labels:  rss
taman
Pelican theme with "just the right amount"
Stars: ✭ 14 (-58.82%)
Mutual labels:  static-site

blog

A static, privacy-respecting blog. In ways inspired by both Medium and the popular Medium-look-alike mediumish-theme-jekyll.

Goals

Remember, we moved away from other platforms for very specific reasons.

  1. Completely frictionless for readers.
  2. As few external resources as possible—it slows things down and introduces potential privacy issues.
  3. Little-to-no JavaScript—it’s a blog, not a web app. Currently, we only use progressively-enhancing JS for improving the image zoom experience.

Modern Niceties

Just because it's static and privacy-respecting doesn't mean it's not modern and featureful.

  1. RSS feed support for all the cross-posting you could desire.
  2. Completely responsive design from the start.
  3. Dark style support for everything from day zero.

Editing workflow

Use the GitHub workflow!

  1. Use PRs to propose and work. That means draft PRs for things that aren't ready to publish, too.
  2. All PRs should be reviewed and approved before publishing.
  3. Use reviews and inline comments/suggestions to collaboratively edit.

Handling Images

Ideally, images are put into the images/ directory with a folder name matching the post slug. Since the normal maximum width of articles is 800 pixels, image sizes should be as follows:

  • Up to 800px wide for normal width loDPI
  • Up to 1600px for normal-width HiDPI
  • Up to 800px for half- or third-width images on loDPI
  • Up to 1600px for half- or third-width images on HiDPI
  • 2560px wide for full-bleed (higher than this, even for HiDPI, gets really heavy)

When scaling down, use a high quality interpolator like Sinc (Lanczos3) or NoHalo in GIMP to avoid too much blur/fuzziness.

Name your sized images something sane like image-name_800.jpg for the loDPI version, and image-name_1600.jpg for the HiDPI version. When writing the markdown, use this format:

![Alt Text]({{ site.baseurl }}/images/post-name/image-name_800.jpg){: srcset="{{ site.baseurl }}/images/post-name/image-name_1600.jpg 2x"}

This is a bit verbose, but ensures:

  • Images stay valid even if we ever move the blog
  • We only load the largest version necessary on loDPI or HiDPI
  • Both loDPI and HiDPI images are loaded at the correct physical size

Optimize images with the lowest JPG percent that looks good (i.e. manually in GIMP), and use something like Image Optimizer for PNGs.

Also consider JPGs instead of PNGs when the majority of the image is photographic or a gradient (i.e. not solid colors), as that will compress way better than a PNG.

Repos

The blog is actually split into two repos:

  1. @elementary/blog-template, and
  2. @elementary/blog (private)

The template is the source for the design and layout. The private repo holds a copy of the template plus the actual posts themselves, and is set up with GitHub Pages. Layout and design work should always be done against the template repo.

The reason for this separation is to be able to stage future/private blog posts while still letting people benefit from the template work. Ideally we'd have another solution that let us keep the contents of the blog itself public as well, without exposing future posts—or adding significantly to the complexity of maintaining the blog.

Building & Running Locally

The blog is a simple Jekyll-powered site hosted by GitHub Pages. To run it locally, see the GitHub docs.

Dependencies

This guide assumes you're on elementary OS or a similar Ubuntu-based environment.

Packages

  • ruby-full (should include ruby and ruby-dev)
  • build-essential
  • zlib1g-dev

Ruby Stuff

  • jekyll and bundler

We recommend installing gems to a (hidden) directory in your home folder:

echo '' >> ~/.bashrc
echo '# Install Ruby Gems to ~/.gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/.gems"' >> ~/.bashrc
echo 'export PATH="$HOME/.gems/bin:$PATH"' >> ~/.bashrc
echo '' >> ~/.bashrc
source ~/.bashrc

Install jekyll and bundler:

gem install jekyll bundler

Install gems:

bundle install

(Adapted from https://jekyllrb.com/docs/installation/)

Serve

bundle exec jekyll serve --host 0.0.0.0

The site should now be available at http://0.0.0.0:4000/ on your local machine, and your local machine's IP address on your network—great for testing on mobile OSes.

Drafts & Future Posts

Append --drafts to the serve command, and drafts in the _drafts folder will show up based on their last-edited time. Similarly, append --future to the serve command to show future posts.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].