From now on we use Jekyll for our mockups as this supports both SASS and Github pages.
Jekyll is a simple, blog-aware, static site generator. It generates pages from html and markdown files and supports SASS. It has it's own templating language called Liquid. Github pages also supports Jekyll out of the box.
Follow the guideline on the website.
bundle exec jekyll serve
Default port is 4000 so you can go to your page here http://localhost:4000. The finished site will be in the _site
folder.
If you just want to build the website without serving it:
bundle exec jekyll build
The base file for the whole application is called home.html
and located in the _layouts
folder. This will appear on the index route at http://localhost:4000.
Create your html files in the _includes
folder; You can include them in an .html file with the following command:
{% include name.html %}
I've already created a default head.html
and js_files.html
.
Send down with attributename=value
. Example in home.html
.
{% include loop-file.html item=i %}
You can get it from the include
block. Example in loop-file.html
.
<h2>{{include.item}} header</h2>
Syntax: {% for i in (first..last) %}
First
is the first value of the i
and last is the last
. first <= i <= last
. It doesn't have to start from 0 or 1.
{% for i in (1..5) %}
<h1>loop {{i}}</h1>
{% include loop-file.html
item=i
%}
{% endfor %}
You can use {{i}}
to get the value inside the for. Or simply send it down into an include block with attributename=i
.
In the sass
folder simply add a new name.scss
. For Jekyll it is important to start the file like this:
---
---
/*your sass code*/
Then you can include it in your main.scss
with css suffix, as the preprocessort creates css from it.
---
---
// the imported name has to be a .css file!
@import "default.css";
If you don't want to include the head.html use the following in your desired html file. The file extension here has to be .css.
<link rel="stylesheet" href="{{ site.baseurl }}/sass/desired.css">
In the scripts
folder simply add a new js file. To include it modify the _includes/js_files.html
or your desired html file like this:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="{{ site.baseurl }}/scripts/test.js"></script>
Example is in test.js
.
Add a new html file in the pages
folder. Example is in pages/example.html
. It has to start like this:
---
permalink: /name-of-your-link
---
<!-- content of your html file-->
If you want it to have a default look, you can add the _layouts/page.html
layout to it, that includes the header and the js files. Example is in pages/example_with_layout.html
.
---
permalink: /name-of-your-link
layout: page
---
Images are stored in the assets/images
folder. Adding them with inline html:
<img src="{{ '/assets/images/files.jpg' | relative_url}}"/>
Adding them via sass:
<div class="cover"></div>
.cover {
background-image:url('../assets/images/roadwork.jpg');
height: 100px;
}
Examples are in _layouts/home.html
and sass/image.scss
.
Fonts are stored in the assets/fonts
folder. Example for import is in sass/font-icons.scss
@font-face {
font-family: 'pmx';
src:url('../assets/fonts/pmx.eot?8b80t1');
src:url('../assets/fonts/pmx.eot?8b80t1#iefix') format('embedded-opentype'),
url('../assets/fonts/pmx.ttf?8b80t1') format('truetype'),
url('../assets/fonts/pmx.woff?8b80t1') format('woff'),
url('../assets/fonts/pmx.svg?8b80t1#pmx') format('svg');
font-weight: normal;
font-style: normal;
}
Example usage is in _layouts/home.html
and sass/default.scss
.
<i class="icon__account"></i>
.icon__account:before {
content: '\e074';
font-family: 'pmx';
}