Fancy jekyll powered single page site
Here're some examples:
- This repository is also a live demo, see it at t413.com/SinglePaged
- Education:
- Global Health Project for Public Health class at UIC (student project) (source)
- Bioinformatics at Harvard Medical School -- (source)
- Dutch Introduction to Electronics class (source) (translation)
- Innovation Lab + Smart Data Hack 5-day student challenge at University of Edinburgh, Turkey (source)
- @opsbug Tech Inoculator (source)
- Open Source Projects:
- ALM A cloud ready IDE for TypeScript (source)
- argon.js JS framework for adding augmented reality to web apps (source)
- Mockito mocking framework for unit tests in Java (source)
- REMnux Electronic lab notebook (source)
- REMnux A Linux Toolkit for Reverse-Engineering and Analyzing Malware (source)
- Langmuir Charge transfer simulations in organic electronics. (source)
- OSX Privacy-- exposing OS X Yostemite privacy issues (source)
- SMS-Tools is another project of mine that uses this template (source)
- HTML Tidy Advocacy Community Group (source)
- AfriLeaks (since changed, still cool!) - secure whistleblowers confidential submition project page (source when single-paged)
- FitNesse Eclipse Plugin (source)
- Akanda Network Virtualization (source)
- Lazy Dubuntu (source)
- GROgreenhouses, finances greenhouses for farmers in Sierra Leone (source)
- vampd Vagrant Drupal Box (source)
- Automatune - discover and share melodies (source)
- The Rosette Platform- git-based, internationalization framework (Ruby) (source)
- PHP Cat PHP Developer Group in Catalan (grup de desenvolupadors PHP de llengua catalana) (source)
- Alt.Net Australia User Group (source)
- FeedReader Desktop RSS client (source)
- Coala Analyzer command-line interface for linting (source)
- Easy Shell Linux and Shell Commands the Easy Way (source)
- Events / Conferences
- CodeWeek 15 @ DI CodeWeek at the University of Minho in 2015 by CeSIUM - (source)
- Innovation Lab + Smart Data Hack 5-day student challenge at University of Edinburgh, Turkey (source)
- Open CoMo Open-Data Incubator for Columbia, MO. 13th-15th of November 2015 (source)
- FSU Festival of New Music (17th Biennial) (source)
- Code Across 2015 @Seoul ì „ 세계 시빅해커들과 함께 하는 -> since changed, (source)
- Personal:
- Products:
- Pawan Kumar film info page (source)
- Physical.media teaser page (album release tracker) (source)
- Helpers in Korea (source)
- Zeno- internet for gamers original teaser page: (source)
- Original DEVISSCHER web design page (source)
- Resumes:
- magiciansanfrancisco.com professional page (source)
- Sumedha Pramod resume (source)
- Lia Bogoev UX designer from utah (source)
- Bill Ryan's homepage is a snazzy personal example! (source)
- Emil Ahlbäck resume (source)
- Christophe Gabard resume (source)
- Leppotone Electrical Recordings temporary homepage (source)
- Michael A. Schmidt particle physics lecturer at the University of Sydney (source)
- Tim Beissinger postdoc in Plant Sciences at UC Davis (source)
- Jin Li MS student in Systems and Information Engineering @ UVA (source)
- Emil Ahlbäck (source)
- Let me know of more!
Why?
Got some killer app, some neat project, a cool portfolio? Make an easy single-page site to show it all off. SinglePaged uses jekyll niceties to make a polished, modular, and beautiful single page site.
- Each vertical section is a markdown file in _posts/ directory.
- They're sorted by 'date'. (we don't use date anywhere, it only sorts)
- Each vertical section sets it's own color, header icon (or image), title, and easy-to-write markdown body.
- Only two things to edit:
- Edit
_config.yml
to set the site title, description, etc - Add _posts/*.md to make each vertical section. Copy some examples and add the sections from your README.md for a fast start!
- Edit
- Easy adding of SEO terms, favicon & such, and google analytics token.
Sound good? Let's go!
There are three way to get started: (links jump to that section)
- Make a user homepage (or organization)
- Make a standalone project page
- Make a site under an existing project
Setup as user homepage
- Go click fork on the github project page
- Rename your new repository to
**username**.github.io
. (click settings in the right column) - Clone your repository, cd into the project
- Run
git checkout publish && git branch -m master && git push -u origin master && git branch -D gh-pages
to get the publish branch as master for a clean, empty starting point. - On your github project page go to settings again and change your default branch to master
- Run
git push origin --delete gh-pages
to delete your remote's development branch
Now hop over to Usage to get it running with your own stuff!
When you publish changes use git push -u origin master
Setup as standalone project page
- Go click fork on the github project page
- Rename your new repository to
whatever you want
. (click settings in the right column)- It will go live at yourusername.github.io/WhateverYouWant
- Clone your repository, cd into the project
- Run
git checkout publish && git branch -D gh-pages && git branch -m gh-pages && git push -uf origin gh-pages
to swap the publish and gh-pages branch.
Now hop over to Usage to get it running with your own stuff!
When you publish changes use git push -u origin gh-pages
Setup inside existing project
This is the most complicated use-case .. but it's the coolest.
Say you've got your kickass project github.com/t413/kicker
and want to have
some web presence to post about on hacker news.
This will create an orphan branch called gh-pages
in your repository
where you can publish changes, posts, images, and such. It won't alter your code at all.
cd
into your project on the command line- use
git remote add -t publish singlepage [email protected]:t413/SinglePaged.git
to get access to this repository. - use
git fetch singlepage publish:gh-pages
to fetch the remote branch - use
git branch --set-upstream-to gh-pages singlepage/publish && git checkout gh-pages;
This creates and checks out an orphan branch called gh-pages that tracks the original and lets you make changes. - When you run
git push origin gh-pages
it'll be live at yourusername.github.io/repositoryName
Now hop over to Usage to get it running with your own stuff!
When you publish changes use git push -u origin gh-pages
Usage
Alright, you've got a clean copy and are ready to push some schmancy pages for the world to ogle at.
- Edit
_config.yml
to change your title, keywords, and description. - Create a new file in
_posts/
called2014-01-01-intro.md
Edit it, and add:
---
title: "home"
bg: white #defined in _config.yml, can use html color like '#010101'
color: black #text color
style: center
---
# Example headline!
and so on..
- Create a second post called
2014-01-02-art.md
with an divider image this time:
---
title: "Art"
bg: turquoise #defined in _config.yml, can use html color like '#0fbfcf'
color: white #text color
fa-icon: paint-brush
---
#### A new section- oh the humanity!
Note: That part fa-icon: paint-brush
will use a font-awesome icon of paint-brush. You can use any icon from this font-awesome icon directory.
- install Jekyll with
sudo gem install github-pages
- run
jekyll serve -w
- visit localhost:4000 to see a live locally served preview.
- Push changes and see them live!
Changing your colors
- In each post file you can define
bg: mycolor
andcolor: myothercolor
to change the background and text colors for that section. - mycolor can be a quoted html color like
'#0fbfcf'
or a key to a special color defined in _config.yml under 'colors'.- Note: Changes to _config.yml require a manual restart to your local server with
^C
andjekyll serve -w
.
- Note: Changes to _config.yml require a manual restart to your local server with
Nifty, right!
Updating
So you've got a copy running and there's some new update? Let's update!
- Checkout your github-pages branch
git checkout gh-pages
for a standalone or existing pagegit checkout master
for a username.github.io page
- run
git remote | grep -q "singlepage" || git remote add -t publish singlepage https://github.com/t413/SinglePaged.git
to be sure you have access to this repository (you can run this command at any time). git fetch singlepage
to fetch-in-place new changes.- Update to the new base (using merge)
git merge singlepage/publish
- You can alternatively update using rebase. This rewrites history (bad), but it is cleaner.
git rebase singlepage/publish