bulma-clean-theme 0.6.5 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +59 -2
  3. data/_includes/callouts.html +5 -1
  4. data/_includes/footer.html +1 -1
  5. data/_includes/head.html +5 -2
  6. data/_includes/header.html +13 -3
  7. data/_includes/hero.html +3 -3
  8. data/_includes/menubar.html +2 -2
  9. data/_includes/pagination.html +2 -2
  10. data/_includes/share-buttons.html +19 -0
  11. data/_includes/showcase.html +1 -1
  12. data/_includes/sponsors.html +42 -0
  13. data/_includes/tabs.html +1 -1
  14. data/_layouts/default.html +1 -0
  15. data/_layouts/post.html +4 -0
  16. data/_layouts/product-category.html +1 -1
  17. data/_posts/2019-02-09-getting-started-with-bulma-clean-theme.markdown +2 -2
  18. data/_posts/2020-05-08-creating-a-docs-site-with-bulma-clean-theme.markdown +96 -0
  19. data/_sass/_layout.scss +4 -0
  20. data/_sass/_main.scss +7 -1
  21. data/node_modules/bulma-block-list/README.md +12 -0
  22. data/node_modules/bulma-block-list/docs/demo.css +105 -76
  23. data/node_modules/bulma-block-list/docs/index.html +33 -3
  24. data/node_modules/bulma-block-list/package.json +10 -10
  25. data/node_modules/bulma-block-list/src/block-list.scss +34 -44
  26. data/node_modules/bulma-block-list/src/demo.scss +1 -1
  27. data/node_modules/bulma/CHANGELOG.md +20 -1
  28. data/node_modules/bulma/LICENSE +1 -1
  29. data/node_modules/bulma/README.md +11 -7
  30. data/node_modules/bulma/bulma.sass +1 -1
  31. data/node_modules/bulma/css/bulma.css +34 -11
  32. data/node_modules/bulma/css/bulma.css.map +1 -1
  33. data/node_modules/bulma/css/bulma.min.css +1 -1
  34. data/node_modules/bulma/package.json +19 -20
  35. data/node_modules/bulma/sass/base/helpers.sass +1 -1
  36. data/node_modules/bulma/sass/components/media.sass +1 -1
  37. data/node_modules/bulma/sass/components/modal.sass +1 -1
  38. data/node_modules/bulma/sass/components/navbar.sass +9 -11
  39. data/node_modules/bulma/sass/components/panel.sass +2 -1
  40. data/node_modules/bulma/sass/elements/button.sass +10 -9
  41. data/node_modules/bulma/sass/elements/notification.sass +7 -0
  42. data/node_modules/bulma/sass/form/file.sass +7 -7
  43. data/node_modules/bulma/sass/form/input-textarea.sass +1 -1
  44. data/node_modules/bulma/sass/form/select.sass +2 -2
  45. data/node_modules/bulma/sass/form/shared.sass +3 -3
  46. data/node_modules/bulma/sass/layout/hero.sass +21 -19
  47. data/node_modules/bulma/sass/utilities/functions.sass +12 -0
  48. data/node_modules/bulma/sass/utilities/mixins.sass +4 -4
  49. data/package-lock.json +6 -6
  50. data/package.json +2 -2
  51. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4a5505a4156aeaf53333ead0a735d3c61ce881dd
4
- data.tar.gz: 8b5c1e7614ea4cf424b7dedcda300608a4e6828e
3
+ metadata.gz: 365edf96f993fdb04ab7a6a17438e902546e21b7
4
+ data.tar.gz: 88e83adb658f7cda5708136893e8b0f98f3fc004
5
5
  SHA512:
6
- metadata.gz: 146339e34ab8f39fa2901f85ae3060c705ef0a99b6575db7adb40d9303376652a861d5a15865fc0e5d5dea629eab5f10ee04f6ba06edd978f62bb431e45a4bdb
7
- data.tar.gz: 4aef8ea9d72f15bc7dc1a5a00a1a019bc8160d9b975ab6a6b31fbc8e734d6b4f0c8b7805733c07f0979a49604c08694904acebddd661dafa90055f42be599433
6
+ metadata.gz: 5bad6e57b63ca40367551dba6f41a881db24871bb643dd61de2a9df24f26585adb40c9635356ba65576219b4bb9645ee4fcd2f147b9aeebd67514ec94edb6d6a
7
+ data.tar.gz: 3242a63eca3d967ab9902e3f74de37660044a26c4ff56dab6bdf1a2011f68fcb9c51032c11acd69f720939a6c50a9b1eddbedb978152eb3068226c9754aa41a8
data/README.md CHANGED
@@ -25,6 +25,7 @@ This is a clean and simple Jekyll Theme built with the [Bulma](https://bulma.io/
25
25
  * [Callouts](#callouts)
26
26
  * [Favicon](#favicon)
27
27
  * [Showcases](#showcases)
28
+ * [Sponsors](#sponsors)
28
29
  * [Disqus](#disqus)
29
30
  * [Contributing](#contributing)
30
31
  * [Development](#development)
@@ -33,6 +34,8 @@ This is a clean and simple Jekyll Theme built with the [Bulma](https://bulma.io/
33
34
 
34
35
  ## Installation
35
36
 
37
+ **This theme requires Jekyll 3.8 so it is compatible with GitHub Pages.**
38
+
36
39
  Add this line to your Jekyll site's `Gemfile`:
37
40
 
38
41
  ```ruby
@@ -72,6 +75,9 @@ If you would like to add a call to action button in the hero then add `hero_link
72
75
  **New in 0.5.7**
73
76
  If you would like to hide the hero, you can set `hide_hero: true` in the page's front matter.
74
77
 
78
+ **New in 0.7.1**
79
+ If you would like to darken the hero so the title stands out more, you can set `hero_darken: true` in the page's front matter. You can overwrite the default background colour by setting the `$hero-darken` sass variable.
80
+
75
81
  #### Table Of Contents
76
82
 
77
83
  **New in 0.5.8**
@@ -92,6 +98,10 @@ paginate_path: "/blog/page:num"
92
98
 
93
99
  You can also set the height of the hero by providing a Bulma hero height class in your front matter, such as `hero_height: is-fullwidth`. If you do not provide this, it will revert to is-medium
94
100
 
101
+ #### Social Share Buttons
102
+
103
+ Share buttons will be displayed on your posts unless you hide them by adding `hide_share_buttons: true` to your config file.
104
+
95
105
 
96
106
  ### Navigation
97
107
 
@@ -375,7 +385,7 @@ Create a data file following the below format. The style is for classes to set t
375
385
 
376
386
  **New in 0.5.7** You can set the height of the callouts in the data file, such as is-small, is-medium or is-large. If unset it will be is-medium by default.
377
387
 
378
- The items have 5 fields, but only the title and subtitle are required.
388
+ The items have 6 fields, but only the title and subtitle are required. If the icon is a brand icon, such as GitHub in the below example, set `icon_brand: true`.
379
389
 
380
390
  ```yaml
381
391
  style: is-light
@@ -383,7 +393,8 @@ height: is-medium
383
393
  items:
384
394
  - title: Example callout 1
385
395
  subtitle: Example subtitle 1
386
- icon: fa-space-shuttle
396
+ icon: fa-github
397
+ icon_brand: true
387
398
  description: >
388
399
  The example description text goes here and can be multiple lines.
389
400
 
@@ -459,6 +470,52 @@ showcase: showcase_example
459
470
  show_sidebar: false
460
471
  ```
461
472
 
473
+ ### Sponsors
474
+
475
+ #### Sponsor link in navbar
476
+
477
+ If you have a GitHub sponsors account set up, you can add your username to `gh_sponsor` in the `_config.yml` file and it will display a link to your profile on the right of the navbar.
478
+
479
+ ```yaml
480
+ gh_sponsor: chrisrhymes
481
+ ```
482
+
483
+ #### Creating a Sponsors Datafile
484
+
485
+ If you would like to create a page to thank your sponsors then create a data file, such as my_sponsors.yml file with the following structure:
486
+
487
+ ```yaml
488
+ - tier_name: Platinum Sponsors
489
+ size: large
490
+ description: |-
491
+ This is the description for the Platinum Tier
492
+ sponsors:
493
+ - name: Dave McDave
494
+ profile: https://github.com/
495
+ - name: Sarah Lee-Cheesecake
496
+ profile: https://github.com/
497
+ - tier_name: Gold Sponsors
498
+ description: |-
499
+ This is the description for the Gold Tier
500
+ sponsors:
501
+ - name: Dave McDave
502
+ profile: https://github.com/
503
+ ```
504
+
505
+ The `tier_name` and `description` are required. The `size` is not required, but can be overwritten to 'large' or 'small' to increase or decrease the size of the box and the text size.
506
+
507
+ The sponsors require a name, but not a profile link.
508
+
509
+ #### Displaying the Sponsors
510
+
511
+ To display the sponsors on your page, set the sponsors to the filename without the extension in the page's front matter
512
+
513
+ ```yaml
514
+ layout: page
515
+ title: My Sponsors Page
516
+ sponsors: my_sponsors
517
+ ```
518
+
462
519
  ### Disqus
463
520
 
464
521
  Disqus comments are available for posts. To be able to use them, you need to set your disqus shortname in `_config.yml`. Then you need to set your Jekyll environment to production:
@@ -8,7 +8,11 @@
8
8
  <div class="column is-4 has-text-centered">
9
9
  {% if callout.icon %}
10
10
  <div class="icon is-large">
11
+ {% if callout.icon_brand %}
12
+ <i class="fab {{ callout.icon }} fa-4x"></i>
13
+ {% else %}
11
14
  <i class="fas {{ callout.icon }} fa-4x"></i>
15
+ {% endif %}
12
16
  </div>
13
17
  {% endif %}
14
18
  <p class="title is-5">{{ callout.title }}</p>
@@ -21,7 +25,7 @@
21
25
  {% endif %}
22
26
 
23
27
  {% if callout.call_to_action_name %}
24
- <a href="{{ callout.call_to_action_link | prepend: site.baseurl }}" class="button is-primary">
28
+ <a href="{{ callout.call_to_action_link | absolute_url }}" class="button is-primary">
25
29
  {{ callout.call_to_action_name }}
26
30
  </a>
27
31
  {% endif %}
@@ -6,7 +6,7 @@
6
6
  {% for item in site.data[site.footer_menu] %}
7
7
  <div class="column has-text-centered">
8
8
  <div>
9
- <a href="{{ item.link | prepend: site.baseurl }}" class="link">{{ item.name }}</a>
9
+ <a href="{{ item.link | absolute_url }}" class="link">{{ item.name }}</a>
10
10
  </div>
11
11
  </div>
12
12
  {% endfor %}
@@ -4,9 +4,12 @@
4
4
  <title>{{ page.title }} - {{ site.title }}</title>
5
5
  <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/app.css">
6
6
  <link rel="shortcut icon" type="image/png"
7
- {% if site.favicon %} href="{{ site.favicon | prepend: site.baseurl }}" {% else %} href="{{ site.baseurl }}/favicon.png" {% endif %}
7
+ {% if site.favicon %} href="{{ site.favicon | absolute_url }}" {% else %} href="{{ site.baseurl }}/favicon.png" {% endif %}
8
8
  />
9
- <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
9
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5/css/all.min.css">
10
+ {% unless site.hide_share_buttons %}
11
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma-social@1/bin/bulma-social.min.css">
12
+ {% endunless %}
10
13
  {% seo %}
11
14
  {%- if site.google_analytics -%}
12
15
  {%- include google-analytics.html -%}
@@ -18,19 +18,29 @@
18
18
  {% for item in site.data.navigation %}
19
19
  {% if item.dropdown %}
20
20
  <div class="navbar-item has-dropdown is-hoverable">
21
- <a href="{{ item.link | prepend: site.baseurl }}" class="navbar-link {% if item.link == page.url %}is-active{% endif %}">{{ item.name }}</a>
21
+ <a href="{{ item.link | absolute_url }}" class="navbar-link {% if item.link == page.url %}is-active{% endif %}">{{ item.name }}</a>
22
22
  <div class="navbar-dropdown">
23
23
  {% for subitem in item.dropdown %}
24
- <a href="{{ subitem.link | prepend: site.baseurl }}" class="navbar-item {% if subitem.link == page.url %}is-active{% endif %}">{{ subitem.name }}</a>
24
+ <a href="{{ subitem.link | absolute_url }}" class="navbar-item {% if subitem.link == page.url %}is-active{% endif %}">{{ subitem.name }}</a>
25
25
  {% endfor %}
26
26
  </div>
27
27
  </div>
28
28
  {% else %}
29
- <a href="{{ item.link | prepend: site.baseurl }}" class="navbar-item {% if item.link == page.url %}is-active{% endif %}">{{ item.name }}</a>
29
+ <a href="{{ item.link | absolute_url }}" class="navbar-item {% if item.link == page.url %}is-active{% endif %}">{{ item.name }}</a>
30
30
  {% endif %}
31
31
  {% endfor %}
32
32
  {% endif %}
33
33
  </div>
34
+
35
+ <div class="navbar-end">
36
+ {% if site.gh_sponsor %}
37
+ <a class="navbar-item" href="https://github.com/sponsors/{{ site.gh_sponsor }}">
38
+ <span class="icon gh-sponsor"><i class="fas fa-heart"></i></span>
39
+ <span>Sponsor</span>
40
+ </a>
41
+ {% endif %}
42
+ </div>
43
+
34
44
  </div>
35
45
  </div>
36
46
  </nav>
@@ -1,10 +1,10 @@
1
1
  <section class="hero {% if page.hero_height %} {{ page.hero_height }} {% else %} is-medium {% endif %} is-bold is-primary" {% if page.hero_image %} style="background: url('{{ page.hero_image }}') no-repeat center center; background-size: cover;" {% endif %}>
2
- <div class="hero-body">
2
+ <div class="hero-body {% if page.hero_darken %} hero-darken {% endif %}">
3
3
  <div class="container">
4
- <p class="title is-2">{{ page.title }}</p>
4
+ <h1 class="title is-2">{{ page.title }}</h1>
5
5
  <p class="subtitle is-3">{{ page.subtitle }}</p>
6
6
  {% if page.hero_link %}
7
- <a href="{{ page.hero_link | prepend: site.baseurl }}" class="button is-info is-large">{{ page.hero_link_text }}</a>
7
+ <a href="{{ page.hero_link | absolute_url }}" class="button is-info is-large">{{ page.hero_link_text }}</a>
8
8
  {% endif %}
9
9
  </div>
10
10
  </div>
@@ -6,11 +6,11 @@
6
6
  <ul class="menu-list">
7
7
  {% for item in menu.items %}
8
8
  <li>
9
- <a href="{{ item.link | prepend: site.baseurl }}" class="{% if item.link == page.url %}is-active{% endif %}">{{ item.name }}</a>
9
+ <a href="{{ item.link | absolute_url }}" class="{% if item.link == page.url %}is-active{% endif %}">{{ item.name }}</a>
10
10
  {% if item.items %}
11
11
  <ul>
12
12
  {% for subitem in item.items %}
13
- <li><a href="{{ subitem.link | prepend: site.baseurl }}" class="{% if subitem.link == page.url %}is-active{% endif %}">{{ subitem.name }}</a></li>
13
+ <li><a href="{{ subitem.link | absolute_url }}" class="{% if subitem.link == page.url %}is-active{% endif %}">{{ subitem.name }}</a></li>
14
14
  {% endfor %}
15
15
  </ul>
16
16
  {% endif %}
@@ -14,10 +14,10 @@
14
14
  {% if page == paginator.page %}
15
15
  <li><a class="pagination-link is-current">{{ page }}</a></li>
16
16
  {% elsif page == 1 %}
17
- <li><a href="{{ paginator.previous_page_path | prepend: site.baseurl | replace: '//', '/' }}" class="pagination-link">{{ page }}</a></li>
17
+ <li><a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | split: '/' | pop | join: '/' }}" class="pagination-link">{{ page }}</a></li>
18
18
  {% else %}
19
19
  <li><a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: ':num', page }}" class="pagination-link">{{ page }}</a></li>
20
20
  {% endif %}
21
21
  {% endfor %}
22
22
  </ul>
23
- </nav>
23
+ </nav>
@@ -0,0 +1,19 @@
1
+ <p><strong>Share</strong></p>
2
+ <div class="buttons {% if include.centered %} is-centered {% endif %}">
3
+ <a class="button is-medium is-facebook"
4
+ onclick="window.open('https://www.facebook.com/share.php?u={{ site.url }}{{ page.url | prepend: site.baseurl }}');">
5
+ <span class="icon"><i class="fab fa-facebook fa-lg"></i></span>
6
+ </a>
7
+ <a class="button is-medium is-twitter"
8
+ onclick="window.open('https://twitter.com/intent/tweet?text={{ site.url }}{{ page.url | prepend: site.baseurl }}');">
9
+ <span class="icon"><i class="fab fa-twitter fa-lg"></i></span>
10
+ </a>
11
+ <a class="button is-medium is-linkedin"
12
+ onclick="window.open('https://www.linkedin.com/shareArticle?mini=true&url={{ site.url }}{{ page.url | prepend: site.baseurl }}&title={{ page.title | url_encode }}&summary=&source=');">
13
+ <span class="icon"><i class="fab fa-linkedin fa-lg"></i></span>
14
+ </a>
15
+ <a class="button is-medium is-reddit"
16
+ onclick="window.open('https://reddit.com/submit?url={{ site.url }}{{ page.url | prepend: site.baseurl }}');">
17
+ <span class="icon"><i class="fab fa-reddit fa-lg"></i></span>
18
+ </a>
19
+ </div>
@@ -8,7 +8,7 @@
8
8
  {% for item in showcase.items %}
9
9
  <section class="showcase">
10
10
  <figure class="image {% if item.image_ratio %} {{ item.image_ratio }} {% else %} is-16by9 {% endif %}">
11
- <img src="{{ item.image | prepend: site.baseurl }}" />
11
+ <img src="{{ item.image | absolute_url }}" />
12
12
  </figure>
13
13
  <div class="showcase-content">
14
14
  <div class="columns is-centered">
@@ -0,0 +1,42 @@
1
+ {% if page.sponsors %}
2
+ {% assign tiers=site.data.[page.sponsors] %}
3
+ <div class="columns is-multiline">
4
+ {% for tier in tiers %}
5
+ <div class="column is-12">
6
+ <p class="title is-3 has-text-centered">
7
+ <span>{{ tier.tier_name }}</span>
8
+ </p>
9
+ <p class="subtitle has-text-centered">
10
+ <span class="icon is-large gh-sponsor"><i class="fas fa-heart fa-2x"></i></span>
11
+ </p>
12
+ <div class="columns is-centered">
13
+ <div class="column is-6 content has-text-centered">
14
+ <p>{{ tier.description | markdownify }}</p>
15
+ </div>
16
+ </div>
17
+
18
+ <div class="columns is-multiline is-centered">
19
+ {% for sponsor in tier.sponsors %}
20
+ <div class="column {% if tier.size == 'large' %} is-4-desktop is-6-tablet {% else %} is-3-desktop is-4-tablet {% endif %}">
21
+ <div class="box has-text-centered">
22
+ <p class="title {% if tier.size == 'large' %} is-4 {% elsif tier.size == 'small' %} is-6 {% else %} is-5 {% endif %}">
23
+ {{ sponsor.name }}
24
+ </p>
25
+ <p class="subtitle is-6">
26
+ {% if sponsor.profile %}
27
+ <a href="{{ sponsor.profile }}" class="is-link is-small">View Profile</a>
28
+ {% else %}
29
+ &nbsp;
30
+ {% endif %}
31
+ </p>
32
+ </div>
33
+ </div>
34
+ {% endfor %}
35
+ </div>
36
+ </div>
37
+ <div class="column is-12">
38
+ <hr />
39
+ </div>
40
+ {% endfor %}
41
+ </div>
42
+ {% endif %}
@@ -5,7 +5,7 @@
5
5
  <ul>
6
6
  {% for tab in tabs.items %}
7
7
  <li {% if tab.link == page.url %} class="is-active" {% endif %}>
8
- <a href="{{ tab.link | prepend: site.baseurl }}">
8
+ <a href="{{ tab.link | absolute_url }}">
9
9
  {% if tab.icon %}
10
10
  <span class="icon is-small"><i class="fas {{ tab.icon }}" aria-hidden="true"></i></span>
11
11
  {% endif %}
@@ -25,6 +25,7 @@
25
25
  <div class="column {{ content_width }}">
26
26
  {% include tabs.html %}
27
27
  {% include showcase.html %}
28
+ {% include sponsors.html %}
28
29
  {{ content }}
29
30
  </div>
30
31
  {% if site.posts and page.show_sidebar %}
@@ -15,6 +15,10 @@ layout: default
15
15
  {% endfor %}
16
16
  </div>
17
17
 
18
+ {% unless site.hide_share_buttons %}
19
+ {% include share-buttons.html %}
20
+ {% endunless %}
21
+
18
22
  {% if site.disqus.shortname %}
19
23
  {% include disqus.html %}
20
24
  {% endif %}
@@ -14,7 +14,7 @@ show_sidebar: false
14
14
  {% for product in sorted_products %}
15
15
  <div class="column is-4-desktop is-6-tablet">
16
16
 
17
- <a href="{{ product.url | prepend: site.baseurl }}">
17
+ <a href="{{ product.url | absolute_url }}">
18
18
 
19
19
  <div class="card">
20
20
 
@@ -135,10 +135,10 @@ And then push up your changes to Github as normal.
135
135
 
136
136
  There seems to be an issue where Jekyll doesn't work locally with remote_theme, so when working locally you have to add theme back in, but remember to comment theme out again before pushing back up to GitHub or you will probably get a build warning email.
137
137
 
138
- ## I hope your not feeling overwhelmed
138
+ ## I hope you're not feeling overwhelmed
139
139
 
140
140
  It may seem like there is a lot to do to get started, but really it shouldn't take very long to get a site up and running. All the options are there just in case you want to further customise the theme to be more personal to you, but you can just use the basic minimal settings to get yourself up and running.
141
141
 
142
142
  ## Feedback and Issues
143
143
 
144
- If you have any feedback, ideas or issues with how the theme could be improved, then please create an issue on the theme's GitHub page and I will try and take a look into it as soon as I can. The theme is still quite new and I have quite a few ideas for future enhancements, so I will write a new blog post on this site when any new features become available.
144
+ If you have any feedback, ideas or issues with how the theme could be improved, then please create an issue on the theme's GitHub page and I will try and take a look into it as soon as I can. The theme is still quite new and I have quite a few ideas for future enhancements, so I will write a new blog post on this site when any new features become available.
@@ -0,0 +1,96 @@
1
+ ---
2
+ layout: post
3
+ title: Creating a docs site with Bulma Clean Theme
4
+ description: How to create a docs site for your project with Bulma Clean Theme
5
+ date: 2020-05-08 09:00:07
6
+ hero_image: https://www.csrhymes.com/img/example-docs-page.jpg
7
+ hero_height: is-large
8
+ hero_darken: true
9
+ image: https://www.csrhymes.com/img/example-docs-page.jpg
10
+ tags: bulma-clean-theme jekyll docs
11
+ canonical_url: https://www.csrhymes.com/2020/05/08/creating-a-docs-site-with-bulma-clean-theme.html
12
+ ---
13
+
14
+ I created Bulma Clean Theme as a theme for my own website and decided to open source it so others could use it as well. One of the key things I wanted to do was to create a theme that worked with GitHub Pages, which also means that you can also use it as a docs site for your project.
15
+
16
+ ## GitHub Pages Configuration
17
+
18
+ GitHub pages allows you to create a website for your project with free hosting. Go to your repo on GitHub, then click Settings, then scroll down to the GitHub Pages section. You have the option to create a site from the root of your master branch of from the /docs directory in your master branch. For this example, we are going to use the /docs directory.
19
+
20
+ Don't change this setting just yet as if you don't have a docs directory there will be nothing there to publish.
21
+
22
+ ## Creating the docs directory
23
+
24
+ Clone your git repo to a local directory, let's say `~/code/my-project` for this example. The below assumes you don't yet have a docs directory and you have [jekyll installed](https://jekyllrb.com/docs/installation/). If you do already have a docs directory you will have to rename it to something else.
25
+
26
+ Create a new jekyll installation in the docs directory, ensuring you replace your username and project name in the below example.
27
+
28
+ ```bash
29
+ git clone https://github.com/username/my-project.git ~/code/my-project
30
+ cd ~/code/my-project
31
+ jekyll new docs
32
+ ```
33
+
34
+ You should now have a base install of Jekyll in your freshly created docs directory.
35
+
36
+ ## Configuring the theme
37
+
38
+ 1. Replace everything in the Gemfile with the following
39
+ ```
40
+ source 'https://rubygems.org'
41
+ gem "bulma-clean-theme", '0.7.2'
42
+ gem 'github-pages', group: :jekyll_plugins
43
+ ```
44
+
45
+ 2. Open the `_config.yml` and comment out or delete the line `theme: minima` and replace it with `remote_theme: chrisrhymes/bulma-clean-theme`, then add `github-pages` to the list of plugins. Update the baseurl to your GitHub repo name, in this example we are using `my-project` as the repo name
46
+ ```yaml
47
+ #theme: minima
48
+ remote_theme: chrisrhymes/bulma-clean-theme
49
+ baseurl: "/my-project"
50
+ plugins:
51
+ - github-pages
52
+ ```
53
+
54
+ 3. Open the `index.md` file and update the front matter so the layout is page and then add a title
55
+ ```yaml
56
+ layout: page
57
+ title: Docs for My Project
58
+ ```
59
+
60
+ 4. Run `bundle install` and then `bundle exec jekyll serve`
61
+
62
+ 5. Visit `http://localhost:4000/my-project/` to view your new docs page.
63
+
64
+ ## Menu
65
+
66
+ To create a menu on the left on your docs page you need to create a new yaml file in _data directory, such as `menu.yaml` and then use the below format, where the label will be the menu title and the items are the menu items. Each menu item can have a list of sub menu items if needed.
67
+
68
+ ```yaml
69
+ - label: Example Menu
70
+ items:
71
+ - name: Menu item
72
+ link: /link/
73
+ items:
74
+ - name: Sub menu item
75
+ link: /sub-menu-item/
76
+ ```
77
+
78
+ ## Table of contents
79
+
80
+ If you would like auto generated table of contents for your docs page then add `toc: true` to the page's front matter. The table of contents works for markdown pages and loops through the heading 2s and heading 3s in the markdown and then auto generates the contents.
81
+
82
+ ## GitHub Sponsors
83
+
84
+ If you want to link to your GitHub sponsors profile then add `gh_sponsor` with your username to the `_config.yml` file.
85
+
86
+ ```
87
+ gh_sponsor: chrisrhymes
88
+ ```
89
+
90
+ ## Making the docs page live
91
+
92
+ Once you have finished creating your docs page you can commit your changes and push everything up to GitHub. Go back to the GitHub settings page and scroll back down to the GitHub Pages section. Now we can update the setting to use the Master branch /docs folder and then GitHub will build your new docs page.
93
+
94
+ ## Want to see an example?
95
+
96
+ I recently updated one of my own packages to use Bulma Clean Theme to power the docs page. Check out the docs for [Bulma Block List](https://www.csrhymes.com/bulma-block-list) as an example.