An open API service indexing awesome lists of open source software.

https://github.com/micro-os-plus/web-jekyll

The complete Jekyll source for the µOS++ IIIe web site
https://github.com/micro-os-plus/web-jekyll

Last synced: 12 months ago
JSON representation

The complete Jekyll source for the µOS++ IIIe web site

Awesome Lists containing this project

README

          

[![Build Status](https://travis-ci.org/micro-os-plus/micro-os-plus.github.io-source.svg?branch=master)](https://travis-ci.org/micro-os-plus/micro-os-plus.github.io-source)

# The µOS++ web site source

## Overview

This GitHub project, available from [micro-os-plus/micro-os-plus.github.io-source](https://github.com/micro-os-plus/micro-os-plus.github.io-source), contains the source files used to generate the **[µOS++ web site](http://micro-os-plus.github.io)**.

## Destination URL

The **µOS++ web site** is an organisation [GitHub Pages](https://pages.github.com) site, stored in the [micro-os-plus/micro-os-plus.github.io](https://github.com/micro-os-plus/micro-os-plus.github.io) Git and publicly available from [http://micro-os-plus.github.io](http://micro-os-plus.github.io).

## Jekyll

The web site is generated off-line by [Jekyll](http://jekyllrb.com). It cannot be generated by [GitHub Pages](https://pages.github.com) because it uses Jekyll plug-ins, considered unsafe and disabled by the GitHub Pages instance of Jekyll.

## Prerequisites

To be able to run the Jekyll build process, the `ruby` interpreter and the `gem` tool are required. In OS X 10.10.5, these tools are preinstalled, at least when the Developer Command Line tools are present.

### Install separate homebrew

If you are like me and like really separated things, install a separate homebrew instance only for the jekyll builds.

```
$ HB_PREFIX="/opt/homebrew-jekyll3"

$ echo 'Enter sudo password'
$ sudo rm -rf "${HB_PREFIX}"
$ sudo mkdir -p "${HB_PREFIX}"
$ sudo bash -c "(curl -L https://github.com/Homebrew/homebrew/tarball/master | tar -x -v --strip 1 -C "${HB_PREFIX}" -f -)"

$ "${HB_PREFIX}/bin/brew" --version
$ "${HB_PREFIX}/bin/brew" update

$ alias hbj3='export PATH=/opt/homebrew-jekyll3/bin:$PATH'

$ hbj3

$ sudo brew install ruby
```

The result is in `/opt/homebrew-jekyll3/Cellar/ruby/2.3.1`

### Install bundler

```
$ ruby --version
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
$ gem --version
2.5.1
$ sudo gem install bundler
Fetching: bundler-1.12.5.gem (100%)
Successfully installed bundler-1.12.5
Parsing documentation for bundler-1.12.5
Installing ri documentation for bundler-1.12.5
Done installing documentation for bundler after 7 seconds
1 gem installed
$ bundler --version
Bundler version 1.12.5
```

## Clone Git

To manage the web site, a local copy of this repository is required.

```sh
git clone https://github.com/micro-os-plus/micro-os-plus.github.io-source.git micro-os-plus.github.io-source.git
git clone https://github.com/micro-os-plus/micro-os-plus.github.io.git micro-os-plus.github.io.git
```

## Install jekyll & gems

Install jekyll and all gems referred in `Gemfile`. Probably usually there is no need to run bundler as root, it can ask for sudo if needed, but in my setup it looks necessary.

```console
$ cd micro-os-plus.github.io-source.git
$ sudo bundle install
Fetching gem metadata from https://rubygems.org/
Fetching version metadata from https://rubygems.org/
Fetching dependency metadata from https://rubygems.org/
Resolving dependencies...
Using i18n 0.7.0
Using json 1.8.3
Installing minitest 5.9.0
Using thread_safe 0.3.5
Installing addressable 2.4.0
Installing colorator 1.1.0
Installing ffi 1.9.14 with native extensions
Installing forwardable-extended 2.6.0
Using gemoji 2.1.0
Using mini_portile2 2.1.0
Using pkg-config 1.1.7
Using sass 3.4.22
Using rb-fsevent 0.9.7
Using kramdown 1.11.1
Using liquid 3.0.6
Using mercenary 0.3.6
Using rouge 1.11.1
Using safe_yaml 1.0.4
Using jekyll-paginate 1.1.0
Using bundler 1.12.5
Using tzinfo 1.2.2
Installing jekyll-sitemap 0.11.0
Using rb-inotify 0.9.7
Installing pathutil 0.14.0
Using nokogiri 1.6.8
Using jekyll-sass-converter 1.4.0
Installing activesupport 4.2.7.1
Using listen 3.0.8
Installing html-pipeline 2.4.2
Installing jekyll-watch 1.5.0
Installing jekyll 3.2.1
Using jekyll-last-modified-at 0.3.4
Installing jekyll-mentions 1.1.3
Installing jekyll-redirect-from 0.11.0
Installing jemoji 0.7.0
Bundle complete! 7 Gemfile dependencies, 35 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
$ bundle exec jekyll --version
jekyll 3.2.1
```

## Development

The current development cycle is edit-save-build-view.

The build can be performed automatically by Jekyll when started in server mode.

```sh
cd micro-os-plus.github.io-source.git
bundle exec jekyll serve --baseurl "" --destination _site_local --trace --port 4001
```

The build result is in `_site_local`.

To view the result, point the browser to `localhost:4001`.

## Publish

```sh
cd micro-os-plus.github.io-source.git
bundle exec jekyll build --destination ../micro-os-plus.github.io.git
```

The build result is in the `micro-os-plus.github.io.git` folder.

To publish, commit this Git and the new site will be automatically updated.

## Updates

When new versions of Jekyll, or of gems, are available, run `bundle update` and be sure the `Gemfile.lock` file is committed:

```console
$ cd micro-os-plus.github.io-source.git
$ sudo bundle update
Fetching gem metadata from https://rubygems.org/
Fetching version metadata from https://rubygems.org/
Fetching dependency metadata from https://rubygems.org/
Resolving dependencies...
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.9.0
Using thread_safe 0.3.5
Using addressable 2.4.0
Using colorator 1.1.0
Using ffi 1.9.14
Using forwardable-extended 2.6.0
Using gemoji 2.1.0
Using mini_portile2 2.1.0
Using pkg-config 1.1.7
Using sass 3.4.22
Using rb-fsevent 0.9.7
Using kramdown 1.11.1
Using liquid 3.0.6
Using mercenary 0.3.6
Using rouge 1.11.1
Using safe_yaml 1.0.4
Using jekyll-paginate 1.1.0
Using bundler 1.12.5
Using tzinfo 1.2.2
Using jekyll-sitemap 0.11.0
Using rb-inotify 0.9.7
Using pathutil 0.14.0
Using nokogiri 1.6.8
Using jekyll-sass-converter 1.4.0
Using activesupport 4.2.7.1
Using listen 3.0.8
Using html-pipeline 2.4.2
Using jekyll-watch 1.5.0
Using jekyll 3.2.1
Using jekyll-last-modified-at 0.3.4
Using jekyll-mentions 1.1.3
Using jekyll-redirect-from 0.11.0
Using jemoji 0.7.0
Bundle updated!
```

People using forked repositories must run `bundle install` to be sure the required versions are properly installed.

## Folder structure

### Posts

All blog posts are in the `_posts` folder.

### Pages

All web pages are in the `pages` folder.

## 'last\_modified\_at:'

To maintain sitelink.xml usefulness, while maintaining pages and posts, it is necessary to keep this variable up-to-date. When the pages are generated off-line, this field is automatically updated by a plug-in.

## Timezone

As per `_config.yml`, the default timezone is UTC. For other timezones, set it explicitly as offset (for example +0300)

## Images

The embedded images are located in the `/assets/images` folder.

For a certain degree of portability, the recommended editable format is PPTX. On macOS, PPTX files can be processed with Keynote, although saving can be done only indirectly via **Export To**, not directly via **Save**.

The preferred format is PNG. The available width is lower than 700 px, but apparently Jekyll scales images properly. By default Keynote exports images as 1024 x 768, which is generally ok for regular (non-HiRes) screens.