Source for http://lilybee.ch. The site is hosted on github. A beta site can be accessed at https://sbliven.github.io
Where possible, content has been written in Markdown for easy editing. This gets combined with jekyll templates to build the page in a consistent style.
Simple pages are added to the root directory as HTML or Markdown files (e.g. about.md).
Multi-section pages (/signingtime
and /babywearing
) are generated from directories of markdown files (e.g. _signingtime
and _babywearing
). The babywearing content is localized to English and German based on the language
property in the YML header.
The _data
directory holds some configuration that gets used on multiple pages: the global nav bar, and the list of current courses, and prices for courses.
Detailed instructions for adding a new multi-section page.
- Create a new folders for the page, both with and without an underscore
(
/newpage/
and/_newpage/
) - Copy
signingtime/index.html
into/newpage/index.hmtl
. Edit and update the sections. - Copy
_signingtime/00_template.md
into/newpage/10_introduction.md
. Add some content and remember to delete thepublished: false
line - Edit
_config.yml
. Add the new page name to the 'collections' section. Include theoutput: false
to prevent pages from generating for each section. - Serve jekyll and test that
/newpage/
is a valid route - Edit
/_data/global_nav.yml
and add the new page to the menu
The site is generated using jekyll and markdown. This happens automatically on github. Building locally requires ruby.
gem install jekyll bundler
Install dependencies:
bundle
Start a local development server with
bundle exec jekyll serve
- Jekyll 3.6.2
- Ruby 2.4.2
- Only github-pages plugins
- Bootstrap 4.0.0
- jQuery 3.3.1
- Popper 1.12.9
Use jekyll to generate the right path for a link: {{site.baseurl}}{% link path/to/file.md %}
. This allows the path to change if the permalink for the page gets updated, and throws an error if the link is broken.
Markdown, resolves to /babywearing:
[Babywearing]({{site.baseurl}}{% link babywearing/index.html %})
<p>HTML, resolves to /about:</p>
<a href="{{site.baseurl}}{% link about.md %}">About</a>
To get the navbar to "stick" to the top properly, all pages should have the following frontmatter:
scrollspy: navbar
scrollspy_offset: 56
See Bootstrap scrollspy.