https://github.com/ami-iit/jekyll-template

Template for creating static websites with Jekyll

https://github.com/ami-iit/jekyll-template

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords

docker jekyll jupyter-notebook template website
Last synced: 5 months ago · JSON representation

Repository

Template for creating static websites with Jekyll

Basic Info
Statistics
  • Stars: 0
  • Watchers: 3
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Topics
docker jekyll jupyter-notebook template website
Created over 8 years ago · Last pushed over 8 years ago
Metadata Files
Readme

README.md

Build Status

jekyll-template

This repository provides a simple self-contained static website generated with jekyll. From the development point of view, the following features are supported:

Development: exploit the provided docker image:

  • Creation of a default jekyll website
  • Building process of an existent jekyll website
  • Support to serve locally a website
  • Support of jupyter notebooks (latex, plots, code)

Deployment:

  • Automatic website generation after every commit exploiting Travis CI
  • Automatic website deployment after every commit exploiting Travis CI

The demo website shows as example the jekyll-ified version of the Bootstrap Blog Template, with the deafult jekyll's articles, and a post written with a jupyter notebook.

The required dependencies for the Development are git and docker.
The only required dependency for the Deployment is git.

When the website is ready, the end users of the website only need to commit the markdown posts (or the jupyter notebooks) in the right location.

Notes for Development:

The docker image contains the minimum amount of dependencies, mainly ruby gems, needed to generate the default website provided by jekyll. After this, all the website configuration is demanded to bundler.
This means that the project's Gemfile should include all the dependencies needed to its execution (jekyll included). This potentially allows to avoid the usage of the provided docker image that might be useful in particular cases.

Get the docker image

The docker image used for handling this repository can be 1. downloaded from dockerhub or 2. built locally:

1. Download the image from dockerhub

``` docker pull diegoferigo/jekyll docker tag diegoferigo/jekyll loc2/jekyll

```

2. Build locally the image

Clone this repository, start the docker daemon, and then execute:

sh cd docker docker build --rm -t loc2/jekyll .

HowTo

The provided docker image can be used in the following way:

sh docker run -it --rm \ -v $(pwd)/jekyll:/srv/jekyll/www:rw \ -p 4000:4000 \ --name jekyll \ loc2/jekyll \ {{command}}

Where {{command}} is:

  • new: generates a new jekyll website
  • build: builds a website from the /jekyll folder
  • serve: exposes the website to the host at localhost:4000

Example: Generate a default website

This repository already provides a /jekyll folder containing a working static website with Bootstrap 4, a default theme, and a bunch of jekyll plugins.

If, instead, you want to exploit this workflow for starting from scratch with the default jekyll website, execute

sh cd jekyll-template rm -r jekyll mkdir jekyll docker run -it --rm \ -v $(pwd)/jekyll:/srv/jekyll/www:rw \ --name jekyll \ loc2/jekyll \ new

Example: Use an existing jekyll website

If you already have an existing website created with jekyll (even hosted in another repo) and you want to exploit this workflow, substitute the /jekyll folder with your own. Then, serve it to the host executing:

sh cd jekyll-template docker run -it --rm \ -v $(pwd)/jekyll:/srv/jekyll/www:rw \ -p 4000:4000 \ --name jekyll \ loc2/jekyll \ serve

Then browse to localhost:4000.

Mainteinance guidelines

This repo

This repository is a template, something you can use as starting point to develop a website. We try to always keep it a rolling release for what concern tools and plugins.

There are two branches:

  • master: it contains the template
  • gh-pages: it is an orphan branch that contains a demo website

GitHub Pages officially supports only a limited amount of Jekyll plugins. This might be a constraint for many applications, and there the usage of this limited set affects how the gh-pages branch is used:

  1. Using official plugins: The gh-pages branch contains the /jekyll folder, and the generation of the website is performed remotely
  2. Using other plugins: The gh-pages branch contains the /jekyll/_site folder generated locally, and a .nojekyll file must be present

The maintainers of this repository should commit in the master branch all the developed files and configurations (the /jekyll folder). The gh-pages branch should instead be populated only by the correct folder depending on the plugins choice just described.

We can exploit subtree in order to quickly commit in gh-pages only a subfolder of the master branch

Remote generation

```sh

Normal push

git subtree push --prefix jekyll origin gh-pages

For future reference, a force push

git push origin git subtree split --prefix jekyll master:gh-pages --force ```

Local generation

```sh

Normal push

git subtree push --prefix jekyll/_site origin gh-pages

For future reference, a force push

git push origin git subtree split --prefix jekyll/_site master:gh-pages --force ```

A website that uses this template

There are plenty of possible workflows in order to use this template for a website.

The main advantage of having a template that can be used for many websites is the possibility to split infrastucture, hosted in this jekyll-template repo, and the posts and optionally a different theme, hosted for instance by the username.github.io repository.

The git structure of the username.github.io repository we are currently using, keeping in mind that we want to have an easy way to maintain it aligned with possible infrastructure improvement provided by the template, is the following:

  • master: the template branch plus posts and the website theme
  • template: a mirror of jekyll-template:master
  • gh-pages: the subtree containing the jekyll or jekyll/_site folder

Optionally, an additional devel branch can be used to stage commits before reaching master.

For every new commit in jekyll-template, the mirror username.github.io:template should be updated, and username.github.io:master rebased on top of it. If the infrastructure and theme plus posts are kept enough independent, conflicts should be rare.

Owner

  • Name: Artificial and Mechanical Intelligence
  • Login: ami-iit
  • Kind: organization
  • Location: Italy

GitHub Events

Total
Last Year

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 26
  • Total Committers: 1
  • Avg Commits per committer: 26.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Diego Ferigo d****o@i****t 26
Committer Domains (Top 20 + Academic)
iit.it: 1

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

docker/Dockerfile docker
  • ubuntu rolling build
jekyll/Gemfile rubygems
  • bootstrap ~> 4.0.0.beta development
  • github-pages >= 0 development
  • jekyll-assets >= 0 development
  • jekyll-feed ~> 0.6 development
  • jekyll-jupyter-notebook >= 0 development
  • jekyll-tidy >= 0 development
  • minima ~> 2.0
  • tzinfo-data >= 0
jekyll/Gemfile.lock rubygems
  • activesupport 4.2.8
  • addressable 2.5.2
  • autoprefixer-rails 7.1.3
  • bootstrap 4.0.0.beta
  • bundler 1.15.4
  • coffee-script 2.4.1
  • coffee-script-source 1.12.2
  • colorator 1.1.0
  • concurrent-ruby 1.0.5
  • ethon 0.10.1
  • execjs 2.7.0
  • extras 0.3.0
  • faraday 0.13.1
  • fastimage 2.1.0
  • ffi 1.9.18
  • forwardable-extended 2.6.0
  • gemoji 3.0.0
  • github-pages 157
  • github-pages-health-check 1.3.5
  • html-pipeline 2.7.0
  • htmlbeautifier 1.3.1
  • htmlcompressor 0.3.1
  • i18n 0.8.6
  • jekyll 3.5.2
  • jekyll-assets 2.3.2
  • jekyll-avatar 0.4.2
  • jekyll-coffeescript 1.0.1
  • jekyll-default-layout 0.1.4
  • jekyll-feed 0.9.2
  • jekyll-gist 1.4.1
  • jekyll-github-metadata 2.9.1
  • jekyll-jupyter-notebook 0.0.2
  • jekyll-mentions 1.2.0
  • jekyll-optional-front-matter 0.2.0
  • jekyll-paginate 1.1.0
  • jekyll-readme-index 0.1.0
  • jekyll-redirect-from 0.12.1
  • jekyll-relative-links 0.4.1
  • jekyll-sass-converter 1.5.0
  • jekyll-seo-tag 2.3.0
  • jekyll-sitemap 1.0.0
  • jekyll-swiss 0.4.0
  • jekyll-theme-architect 0.1.0
  • jekyll-theme-cayman 0.1.0
  • jekyll-theme-dinky 0.1.0
  • jekyll-theme-hacker 0.1.0
  • jekyll-theme-leap-day 0.1.0
  • jekyll-theme-merlot 0.1.0
  • jekyll-theme-midnight 0.1.0
  • jekyll-theme-minimal 0.1.0
  • jekyll-theme-modernist 0.1.0
  • jekyll-theme-primer 0.5.2
  • jekyll-theme-slate 0.1.0
  • jekyll-theme-tactile 0.1.0
  • jekyll-theme-time-machine 0.1.0
  • jekyll-tidy 0.2.2
  • jekyll-titles-from-headings 0.4.0
  • jekyll-watch 1.5.0
  • jemoji 0.8.0
  • kramdown 1.13.2
  • liquid 4.0.0
  • listen 3.0.6
  • mercenary 0.3.6
  • mini_portile2 2.2.0
  • minima 2.1.1
  • minitest 5.10.3
  • multipart-post 2.0.0
  • net-dns 0.8.0
  • nokogiri 1.8.0
  • octokit 4.7.0
  • pathutil 0.14.0
  • popper_js 1.11.1
  • public_suffix 2.0.5
  • rack 1.6.8
  • rb-fsevent 0.10.2
  • rb-inotify 0.9.10
  • rouge 1.11.1
  • safe_yaml 1.0.4
  • sass 3.5.1
  • sass-listen 4.0.0
  • sawyer 0.8.1
  • sprockets 3.7.1
  • terminal-table 1.8.0
  • thread_safe 0.3.6
  • typhoeus 0.8.0
  • tzinfo 1.2.3
  • unicode-display_width 1.3.0