Nope this isn't a theme! I've been exploring jekyll lately and a few things annoy me:
- Starting a new project via
jekyll new [my-project-name]
gives me a starter theme that's way too bloated. - On the flip side, using
jekyll new [my-project-name] --blank
doesn't even give me aconfig.yml
file. - In both cases, no livereload or autoprefixing out of the box.
You can think of this as the Goldilocks of starter projects and you can check it out here: https://luclemo.github.io/jekyll-starter/
You can also read more about why I made this.
OMG it's so ugly! 😱
Yup. that's the point. Now go make it gorgeous.
This is not a theme. It's just a directory with some good starter bits:
I've included a few things common to many projects:
404
andabout
page- Navigation logic
- Heavily commented config file and useful site data
- Blog structure and permalinks. Don't want/need a blog it? Just delete the
_posts
directory andblog.html
file. Done.
- A few SCSS variables (colors & fonts)
- A few handy mixins (like really, there are 3)
- A bunch of empty sass partials for organization. Use 'em or don't.
Nope. If all you're after is livereload and autoprefixing, it just works out of the box. However, you can definitely add/replace with your tooling of choice.
This is just a starting point; go wild.
Assumptions before we get going:
You will need some very minimal command line abilities. You will also need to know what jekyll is and have it installed on your machine. A few good resources for each: Command Line Power User and Jekyll docs.
Move into directory of your choice:
cd path/to/directory-of-your-choice
Create the project inside that directory:
git clone https://github.com/luclemo/jekyll-starter.git
Fire up your project:
jekyll serve --config _config.yml,_config_dev.yml
Files are served at localhost:4000
from the _site
directory.
Your browser will automatically reload to show you your changes on save.
Add development-specific settings to _config_dev.yml
(these override _config.yml
)
I have included a handy development variable to use anywhere in your logic:
{% if environment == development %}
Do things only locally!
{% endif %}
Note about autoreload:
All changes are compiled and auto-reloaded on save except edits to _config.yml
and _config_dev.yml
.
Restart the server when you change these files.
You should only have to do this once...
Open _config.yml
file and edit the url and baseurl values for your host:
The hostname & protocol for your site:
url: "https://yourdomain.com"
If your site will be served from a subdirectory, add it here:
baseurl: "/sub-directory"
Otherwise leave a set of empty quotes:
baseurl: ""
Rebuild your files with your new productions details:
jekyll build
Just upload the content of _site
directory via FTP.
Visit your site at yourdomain.com
👏
You should only have to do this once...
Open _config.yml
file and edit the url
and baseurl
values for Github:
url: "http://username.github.io"
baseurl: "/repository-name"
In the settings
tab for your repo, point Github pages source
to your master branch
.
Alternatively create/use another branch.
Commit and push recent changes.
Give it a few minutes and your site should be live at
http://username.github.io/repository
- Fire up your local server
- Make your changes
- Push your changes
Github pages automatically runs the build process for you when you commit.
Ok. Shoot. Do it with an issue or a tweet ✌️