jekyll-theme-basically-basic 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: af4088cd3ad12fbbe43c2b1fc7deb2fd052830fc
4
- data.tar.gz: e1d3e245f9ff07477ec4cdb3a0062bf5602936c5
3
+ metadata.gz: 55ed4d4512c7304e57fb6fd110060bbc3f88dd4f
4
+ data.tar.gz: '090a93bbfe4dccdee9beb54d1440c8b9cf85cb31'
5
5
  SHA512:
6
- metadata.gz: 4f7a93fd96347a5778255048e2946b3577e446ad4cee5071864016e4876cd048fa60de0b7f9400f736fa9b033786fd15a1da4e1a155e689d6396ee95c3201b9b
7
- data.tar.gz: 2e43f709a5d0b19f9f032a1907bca588b2b1cc9e77603abab9c83c641056ef6ee471265491a35a00aa177fdf3365b4a2b89535ea80ba02366051507ab47f216b
6
+ metadata.gz: 2f64772f662b9b0fd3fc21273704f93760068ad3f67cd753d18aff71873d13a494f6a0af4015ab3110457ebc715c18d0f69061d3c924ac43e332158d8963c2c5
7
+ data.tar.gz: 895897592ad85773576288ed7820cd176e24f7f04281ea1b1eefa55d201d853b4bcadb55956496d8b3279441f7f7932322f4c2036e036b45f56a4fc244485340
@@ -5,13 +5,22 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
 
8
+ ## [1.3.1] - 2018-02-16
9
+
10
+ ### Changed
11
+ - Only include jQuery when using default Lunr search. [#49](https://github.com/mmistakes/jekyll-theme-basically-basic/issues/49)
12
+
13
+ ### Fixed
14
+ - Focus on search input after clicking on toggle.
15
+
8
16
  ## [1.3.0] - 2018-02-16
9
17
 
10
18
  ### Added
11
19
  - Add jQuery script.
12
20
  - Add site-wide search toggle.
13
- - Add support for Lunr search. [#48](https://github.com/mmistakes/jekyll-theme-basically-basic/pull/48)
14
- - Add support for Algolia search. [#48](https://github.com/mmistakes/jekyll-theme-basically-basic/pull/48)
21
+ - Add support for [Lunr](https://lunrjs.com/) search. [#48](https://github.com/mmistakes/jekyll-theme-basically-basic/pull/48)
22
+ - Add support for [Algolia](https://www.algolia.com/) search. [#48](https://github.com/mmistakes/jekyll-theme-basically-basic/pull/48)
23
+ - Add [Algolia search demo](https://mmistakes.github.io/jekyll-theme-basically-basic-algolia-search/).
15
24
 
16
25
  ### Changed
17
26
  - New installation and upgrade instructions.
data/README.md CHANGED
@@ -1,889 +1,890 @@
1
- # [Basically Basic Jekyll Theme][1]
2
-
3
- [![LICENSE](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://github.com/mmistakes/jekyll-theme-basically-basic/blob/master/LICENSE.md)
4
- [![Jekyll](https://img.shields.io/badge/jekyll-%3E%3D%203.6-blue.svg)](https://jekyllrb.com/)
5
- [![Ruby gem](https://img.shields.io/gem/v/jekyll-theme-basically-basic.svg)](https://rubygems.org/gems/jekyll-theme-basically-basic)
6
- [![Tip Me via PayPal](https://img.shields.io/badge/PayPal-tip%20me-green.svg?logo=paypal)](https://www.paypal.me/mmistakes)
7
-
8
- Basically Basic is a [Jekyll theme](https://jekyllrb.com/docs/themes/) meant as
9
- a substitute for the default --- [Minima](https://github.com/jekyll/minima).
10
- Conventions and features found there are fully supported by **Basically Basic**,
11
- with a few enhancements thrown in for good measure:
12
-
13
- - Clean responsive design with [six customizable skins](#skin)
14
- - Curriculum Vitæ/Resume layout powered by [JSON data](http://registry.jsonresume.org/)
15
- - About page layout
16
- - Disqus Comments and Google Analytics support
17
- - SEO best practices via [Jekyll SEO Tag](https://github.com/jekyll/jekyll-seo-tag/)
18
-
19
- [![Basically Basic live preview][2]][1]
20
-
21
- [1]: https://mmistakes.github.io/jekyll-theme-basically-basic/
22
- [2]: https://cloud.githubusercontent.com/assets/1376749/24117647/6dede894-0d81-11e7-9c2c-f19bea45e219.jpg (live preview)
23
-
24
- ## Table of Contents
25
-
26
- 1. [Installation](#installation)
27
- 1. [Ruby Gem Method](#ruby-gem-method)
28
- 2. [GitHub Pages Method](#github-pages-method)
29
- 1. [Remove the Unnecessary](#remove-the-unnecessary)
30
- 2. [Upgrading](#upgrading)
31
- 1. [Ruby Gem](#ruby-gem)
32
- 2. [Remote Theme](#remote-theme)
33
- 3. [Use Git](#use-git)
34
- 1. [Pull Down Updates](#pull-down-updates)
35
- 4. [Update Files Manually](#update-files-manually)
36
- 3. [Structure](#structure)
37
- 1. [Starting Fresh](#starting-fresh)
38
- 2. [Starting from `jekyll new`](#starting-from-jekyll-new)
39
- 4. [Configuration](#configuration)
40
- 1. [Skin](#skin)
41
- 2. [Google Fonts](#google-fonts)
42
- 3. [Text](#text)
43
- 4. [Navigation](#navigation)
44
- 5. [Pagination](#pagination)
45
- 6. [Search](#search)
46
- 1. [Lunr (default)](#lunr-default)
47
- 2. [Algolia](#algolia)
48
- 7. [Author](#author)
49
- 8. [Reading Time](#reading-time)
50
- 9. [Comments (via Disqus)](#comments-via-disqus)
51
- 10. [Google Analytics](#google-analytics)
52
- 5. [Layouts](#layouts)
53
- 1. [`layout: default`](#layout-default)
54
- 2. [`layout: post`](#layout-post)
55
- 3. [`layout: page`](#layout-page)
56
- 4. [`layout: home`](#layout-home)
57
- 5. [`layout: about`](#layout-about)
58
- 6. [`layout: cv`](#layout-cv)
59
- 6. [Customization](#customization)
60
- 1. [Overriding Includes and Layouts](#overriding-includes-and-layouts)
61
- 2. [Customizing Sass (SCSS)](#customizing-sass-scss)
62
- 3. [Customizing JavaScript](#customizing-javascript)
63
- 4. [SVG Icons](#svg-icons)
64
- 5. [Customizing Sidebar Content](#customizing-sidebar-content)
65
- 7. [Development](#development)
66
- 8. [Contributing](#contributing)
67
- 1. [Pull Requests](#pull-requests)
68
- 9. [Credits](#credits)
69
- 10. [License](#license)
70
-
71
- ## Installation
72
-
73
- If you're running Jekyll v3.5+ and self-hosting you can quickly install the
74
- theme as a Ruby gem. If you're hosting with GitHub Pages you can install as a
75
- remote theme or directly copy all of the theme files (see [structure](#structure)
76
- below) into your project.
77
-
78
- ### Ruby Gem Method
79
-
80
- 1. Add this line to your Jekyll site's `Gemfile`:
81
-
82
- ```ruby
83
- gem "jekyll-theme-basically-basic"
84
- ```
85
- 2. Add this line to your Jekyll site's `_config.yml` file:
86
-
87
- ```yaml
88
- theme: jekyll-theme-basically-basic
89
- ```
90
-
91
- 2. Then run [Bundler](http://bundler.io/) to install the theme gem and dependencies:
92
-
93
- ```terminal
94
- bundle install
95
- ```
96
-
97
- ### GitHub Pages Method
98
-
99
- GitHub Pages has added [full support](https://github.com/blog/2464-use-any-theme-with-github-pages)
100
- for any GitHub-hosted theme.
101
-
102
- 1. Replace `gem "jekyll"` with:
103
-
104
- ```ruby
105
- gem "github-pages", group: :jekyll_plugins
106
- ```
107
-
108
- 2. Run `bundle update` and verify that all gems install properly.
109
-
110
- 3. Add `remote_theme: "mmistakes/jekyll-theme-basically-basic"` to your
111
- `_config.yml` file. Remove any other `theme:` or `remote_theme:` entries.
112
-
113
- ---
114
-
115
- **Note:** Your Jekyll site should be viewable immediately at
116
- <http://USERNAME.github.io>. If it's not, you can force a rebuild by
117
- **Customizing Your Site** (see below for more details).
118
-
119
- If you're hosting several Jekyll based sites under the same GitHub username you
120
- will have to use Project Pages instead of User Pages. Essentially you rename the
121
- repo to something other than **USERNAME.github.io** and create a `gh-pages`
122
- branch off of `master`. For more details on how to set things up check
123
- [GitHub's documentation](https://help.github.com/articles/user-organization-and-project-pages/).
124
-
125
- #### Remove the Unnecessary
126
-
127
- If you forked or downloaded the `jekyll-theme-basically-basic` repo you can
128
- safely remove the following files and folders:
129
-
130
- - `.codeclimate.yml`
131
- - `.editorconfig`
132
- - `.gitattributes`
133
- - `.github`
134
- - `.scss-lint.yml`
135
- - `CHANGELOG.md`
136
- - `jekyll-theme-basically-basic.gemspec`
137
- - `LICENSE.md`
138
- - `Rakefile`
139
- - `README.md`
140
- - `screenshot.png`
141
- - `/docs`
142
- - `/example`
143
-
144
- ## Upgrading
145
-
146
- If you're using the Ruby Gem or remote theme versions of Basically Basic,
147
- upgrading is fairly painless.
148
-
149
- To check which version you are currently using, view the source of your built
150
- site and you should something similar to:
151
-
152
- ```
153
- <!--
154
- Basically Basic Jekyll Theme 1.2.0
155
- Copyright 2017-2018 Michael Rose - mademistakes.com | @mmistakes
156
- Free for personal and commercial use under the MIT license
157
- https://github.com/mmistakes/jekyll-basically-theme/blob/master/LICENSE.md
158
- -->
159
- ```
160
-
161
- At the top of every `.html` file, `/assets/css/main.css`, and `/assets/js/main.js`.
162
-
163
- ### Ruby Gem
164
-
165
- Simply run `bundle update` if you're using Bundler (have a `Gemfile`) or `gem
166
- update jekyll-theme-basically-basic` if you're not.
167
-
168
- ### Remote Theme
169
-
170
- When hosting with GitHub Pages you'll need to push up a commit to force a
171
- rebuild with the latest [theme release](https://github.com/mmistakes/jekyll-theme-basically-basic/releases).
172
-
173
- An empty commit will get the job done too if you don't have anything to push at
174
- the moment:
175
-
176
- ```terminal
177
- git commit --allow-empty -m "Force rebuild of site"
178
- ```
179
-
180
- ### Use Git
181
-
182
- If you want to get the most out of the Jekyll + GitHub Pages workflow, then
183
- you'll need to utilize Git. To pull down theme updates you must first ensure
184
- there's an upstream remote. If you forked the theme's repo then you're likely
185
- good to go.
186
-
187
- To double check, run `git remote -v` and verify that you can fetch from `origin https://github.com/mmistakes/jekyll-theme-basically-basic.git`.
188
-
189
- To add it you can do the following:
190
-
191
- ```terminal
192
- git remote add upstream https://github.com/mmistakes/jekyll-theme-basically-basic.git
193
- ```
194
-
195
- #### Pull Down Updates
196
-
197
- Now you can pull any commits made to theme's `master` branch with:
198
-
199
- ```terminal
200
- git pull upstream master
201
- ```
202
-
203
- Depending on the amount of customizations you've made after forking, there's
204
- likely to be merge conflicts. Work through any conflicting files Git flags,
205
- staging the changes you wish to keep, and then commit them.
206
-
207
- ### Update Files Manually
208
-
209
- Another way of dealing with updates is [downloading the theme](https://github.com/mmistakes/jekyll-theme-basically-basic/archive/master.zip)
210
- --- replacing your layouts, includes, and assets with the newer ones manually.
211
- To be sure that you don't miss any changes it's probably a good idea to review
212
- the theme's [commit history](https://github.com/mmistakes/jekyll-theme-basically-basic/commits/master)
213
- to see what's changed since.
214
-
215
- Here's a quick checklist of the important folders/files you'll want to be
216
- mindful of:
217
-
218
- | Name | |
219
- | ---- | --- |
220
- | `_layouts` | Replace all. Apply edits if you customized any layouts. |
221
- | `_includes` | Replace all. Apply edits if you customized any includes. |
222
- | `assets` | Replace all. Apply edits if you customized stylesheets or scripts. |
223
- | `_sass` | Replace all. Apply edits if you customized Sass partials. |
224
- | `_data/theme.yml` | Safe to keep. Verify that there were no major structural changes or additions. |
225
- | `_config.yml` | Safe to keep. Verify that there were no major structural changes or additions. |
226
-
227
- ---
228
-
229
- **Note:** If you're not seeing the latest version, be sure to flush browser and
230
- CDN caches. Depending on your hosting environment older versions of
231
- `/assets/css/main.css`, `/assets/js/main.js`, or `*.html` may be cached.
232
-
233
- ## Structure
234
-
235
- Layouts, includes, Sass partials, and data files are all placed in their default
236
- locations. Stylesheets and scripts in `assets`, and a few development related
237
- files in the project's root directory.
238
-
239
- **Please note:** If you installed Basically Basic via the Ruby Gem method, theme
240
- files found in `/_layouts`, `/_includes`, `/_sass`, and `/assets` will be
241
- missing. This is normal as they are bundled with the [`jekyll-theme-basically-basic`](https://rubygems.org/gems/jekyll-theme-basically-basic) gem.
242
-
243
- ```terminal
244
- jekyll-theme-basically-basic
245
- ├── _data # data files
246
- | └── theme.yml # theme settings and custom text
247
- ├── _includes # theme includes and SVG icons
248
- ├── _layouts # theme layouts (see below for details)
249
- ├── _sass # Sass partials
250
- ├── assets
251
- | ├── javascripts
252
- | | └── main.js
253
- | └── stylesheets
254
- | └── main.scss
255
- ├── _config.yml # sample configuration
256
- └── index.md # sample home page (all posts/not paginated)
257
- ```
258
-
259
- ### Starting Fresh
260
-
261
- After creating a `Gemfile` and installing the theme you'll need to add and edit
262
- the following files:
263
-
264
- - [`_config.yml`](_config.yml)
265
- - [`/_data/theme.yml`](_data/theme.yml)
266
- - [`index.md`](index.md)
267
-
268
- **Note:** Consult the [**pagination**](#pagination) documentation below for
269
- instructions on how to enable it for the home page.
270
-
271
- ### Starting from `jekyll new`
272
-
273
- Using the `jekyll new` command will get you up and running the quickest.
274
-
275
- Edit `_config.yml` and create `_data/theme.yml` as instructed above and you're
276
- good to go.
277
-
278
- ## Configuration
279
-
280
- Configuration of site-wide elements (`lang`, `title`, `description`, `logo`,
281
- `author`, etc.) happens in your project's `_config.yml`. See the
282
- [example configuration](example/_config.yml) in this repo for additional
283
- reference.
284
-
285
- | | Description |
286
- | ------------------ | ------------------------------------------------------------------------- |
287
- | `lang` | Used to indicate the language of text (e.g., en-US, en-GB, fr) |
288
- | `title` | Your site's title (e.g., Dungan's Awesome Site) |
289
- | `description` | Short site description (e.g., A blog about grasshopper mash) |
290
- | `url` | The full URL to your site (e.g., https://groverloaf.org) |
291
- | `author` | Global author information (see below) |
292
- | `logo` | Path to a site-wide logo ~100x100px (e.g., /assets/your-company-logo.png) |
293
- | `twitter_username` | Site-wide Twitter username, used as a link in sidebar |
294
- | `github_username` | Site-wide GitHub username, used as a link in sidebar |
295
-
296
- For more configuration options be sure to consult the documentation for:
297
- [**jekyll-seo-tag**][jekyll-seo-tag], [**jekyll-feed**][jekyll-feed],
298
- [**jekyll-paginate**][jekyll-paginate], and [**jekyll-sitemap**][jekyll-sitemap].
299
-
300
- [jekyll-seo-tag]: https://github.com/jekyll/jekyll-seo-tag
301
- [jekyll-feed]: https://github.com/jekyll/jekyll-feed
302
- [jekyll-paginate]: https://github.com/jekyll/jekyll-paginate
303
- [jekyll-sitemap]: https://github.com/jekyll/jekyll-sitemap
304
-
305
- ### Skin
306
-
307
- This theme comes in six different skins (color variations). To change skins add
308
- one of the following to your [`/_data/theme.yml`](_data/theme.yml) file:
309
-
310
- | `skin: default` | `skin: night` | `skin: plum` |
311
- | --- | --- | --- |
312
- | ![default-skin](https://cloud.githubusercontent.com/assets/1376749/24115744/c0618c90-0d7a-11e7-8e2d-ec70f9db0c1b.png) | ![night-skin](https://cloud.githubusercontent.com/assets/1376749/24115770/d61127f8-0d7a-11e7-9158-986bee2be8e7.png) | ![plum-skin](https://cloud.githubusercontent.com/assets/1376749/24115778/db523a0e-0d7a-11e7-9452-8692b736d67e.png) |
313
-
314
- | `skin: sea` | `skin: soft` | `skin: steel` |
315
- | --- | --- | --- |
316
- | ![sea-skin](https://cloud.githubusercontent.com/assets/1376749/24115788/e27d818a-0d7a-11e7-8c56-2480e9ae83fb.png) | ![soft-skin](https://cloud.githubusercontent.com/assets/1376749/24115790/e6e548e8-0d7a-11e7-8e2d-d8053e8befd1.png) | ![steel-skin](https://cloud.githubusercontent.com/assets/1376749/24115799/eb2108e8-0d7a-11e7-8cc3-a6f22e4082ee.png) |
317
-
318
- ### Google Fonts
319
-
320
- This theme allows you to easily use [Google Fonts](https://fonts.google.com/)
321
- throughout the theme. Simply add the following to your
322
- [`/_data/theme.yml`](_data/theme.yml), replacing the font `name` and `weights`
323
- accordingly.
324
-
325
- ```yaml
326
- google_fonts:
327
- - name: "Fira Sans"
328
- weights: "400,400i,600,600i"
329
- - name: "Fira Sans Condensed"
330
- ```
331
-
332
- ### Text
333
-
334
- To change text found throughout the theme add the following to your
335
- [`/_data/theme.yml`](_data/theme.yml) file and customize as necessary.
336
-
337
- ```yaml
338
- t:
339
- skip_links: "Skip links"
340
- skip_primary_nav: "Skip to primary navigation"
341
- skip_content: "Skip to content"
342
- skip_footer: "Skip to footer"
343
- menu: "Menu"
344
- home: "Home"
345
- newer: "Newer"
346
- older: "Older"
347
- email: "Email"
348
- subscribe: "Subscribe"
349
- read_more: "Read More"
350
- posts: "Posts"
351
- page: "Page"
352
- of: "of"
353
- min_read: "min read"
354
- present: "Present"
355
- ```
356
-
357
- ### Navigation
358
-
359
- By default all internal pages with a `title` will be added to the "off-canvas"
360
- menu. For more granular control and sorting of these menu links:
361
-
362
- 1. Create a custom list to override the default setting by adding a
363
- `navigation_pages` array to your [`/_data/theme.yml`](_data/theme.yml) file.
364
-
365
- 2. Add raw page paths in the order you'd like:
366
-
367
- ```yaml
368
- navigation_pages:
369
- - about.md
370
- - cv.md
371
- ```
372
-
373
- Each menu link's title and URL will be populated based on their `title` and
374
- `permalink` respectively.
375
-
376
- ### Pagination
377
-
378
- Break up the main listing of posts into smaller lists and display them over
379
- multiple pages by [enabling pagination](http://jekyllrb.com/docs/pagination/).
380
-
381
- 1. Include the `jekyll-paginate` plugin in your `Gemfile`.
382
-
383
- ```ruby
384
- group :jekyll_plugins do
385
- gem "jekyll-paginate"
386
- end
387
- ```
388
-
389
- 2. Add `jekyll-paginate` to `gems` array in your `_config.yml` file and the
390
- following pagination settings:
391
-
392
- ```yaml
393
- paginate: 5 # amount of posts to show per page
394
- paginate_path: /page:num/
395
- ```
396
-
397
- 3. Create `index.html` (or rename `index.md`) in the root of your project and
398
- add the following front matter:
399
-
400
- ```yaml
401
- layout: home
402
- paginate: true
403
- ```
404
-
405
- ### Search
406
-
407
- To enable site-wide search add `search: true` to your `_config.yml`.
408
-
409
- #### Lunr (default)
410
-
411
- The default search uses [**Lunr**](https://lunrjs.com/) to build a search index of all your documents. This method is 100% compatible with sites hosted on GitHub Pages.
412
-
413
- **Note:** Only the first 50 words of a post or page's body content is added to the Lunr search index. Setting `search_full_content` to `true` in your `_config.yml` will override this and could impact page load performance.
414
-
415
- #### Algolia
416
-
417
- For faster and more relevant search:
418
-
419
- 1. Add the [`jekyll-algolia`](https://github.com/algolia/jekyll-algolia) gem to your `Gemfile`, in the `:jekyll_plugins` section.
420
-
421
- ```ruby
422
- group :jekyll_plugins do
423
- gem "jekyll-feed"
424
- gem "jekyll-seo-tag"
425
- gem "jekyll-sitemap"
426
- gem "jekyll-paginate"
427
- gem "jekyll-algolia"
428
- end
429
- ```
430
-
431
- Once this is done, download all dependencies by running `bundle install`.
432
-
433
- 2. Switch search providers from `lunr` to `algolia` in your `_config.yml` file:
434
-
435
- ```yaml
436
- search_provider: algolia
437
- ```
438
-
439
- 3. Add the following Algolia credentials to your `_config.yml` file. *If you don't have an Algolia account, you can open a free [Community plan](https://www.algolia.com/users/sign_up/hacker). Once signed in, you can grab your credentials from [your dashboard](https://www.algolia.com/licensing).*
440
-
441
- ```yaml
442
- algolia:
443
- application_id: # YOUR_APPLICATION_ID
444
- index_name: # YOUR_INDEX_NAME
445
- search_only_api_key: # YOUR_SEARCH_ONLY_API_KEY
446
- powered_by: # true (default), false
447
- ```
448
-
449
- 4. Once your credentials are setup, you can run the indexing with the following command:
450
-
451
- ```
452
- ALGOLIA_API_KEY=your_admin_api_key bundle exec jekyll algolia
453
- ```
454
-
455
- For Windows users you will have to use `set` to assigned the `ALGOLIA_API_KEY` environment variable.
456
-
457
- ```
458
- set ALGOLIA_API_KEY=your_admin_api_key
459
- bundle exec jekyll algolia
460
- ```
461
-
462
- Note that `ALGOLIA_API_KEY` should be set to your admin API key.
463
-
464
- To use the Algolia search with GitHub Pages hosted sites follow [this deployment guide](https://community.algolia.com/jekyll-algolia/github-pages.html). Or this guide for [deploying on Netlify](https://community.algolia.com/jekyll-algolia/netlify.html).
465
-
466
- ### Author
467
-
468
- Author information is used as meta data for post "by lines" and propagates the
469
- `creator` field of Twitter summary cards with the following front matter in
470
- `_config.yml`:
471
-
472
- ```yaml
473
- author:
474
- name: John Doe
475
- twitter: johndoetwitter
476
- picture: /assets/images/johndoe.png
477
- ```
478
-
479
- Site-wide author information can be overridden in a document's front matter in
480
- the same way:
481
-
482
- ```yaml
483
- author:
484
- name: Jane Doe
485
- twitter: janedoetwitter
486
- picture: /assets/images/janedoe.png
487
- ```
488
-
489
- Or by specifying a corresponding key in the document's front matter, that
490
- exists in `site.data.authors`. E.g., you have the following in the document's
491
- front matter:
492
-
493
- ```yaml
494
- author: megaman
495
- ```
496
-
497
- And you have the following in `_data/authors.yml`:
498
-
499
- ```yaml
500
- megaman:
501
- name: Mega Man
502
- twitter: megamantwitter
503
- picture: /assets/images/megaman.png
504
-
505
- drlight:
506
- name: Dr. Light
507
- twitter: drlighttwitter
508
- picture: /assets/images/drlight.png
509
- ```
510
-
511
- Currently `author.picture` is only used in `layout: about`. Recommended size is
512
- `300 x 300` pixels.
513
-
514
- ### Reading Time
515
-
516
- To enable reading time counts add `read_time: true` to a post or page's YAML
517
- Front Matter.
518
-
519
- ### Comments (via Disqus)
520
-
521
- Optionally, if you have a [Disqus](https://disqus.com/) account, you can show a
522
- comments section below each post.
523
-
524
- To enable Disqus comments, add your [Disqus shortname](https://help.disqus.com/customer/portal/articles/466208) to your project's
525
- `_config.yml` file:
526
-
527
- ```yaml
528
- disqus:
529
- shortname: my_disqus_shortname
530
- ```
531
-
532
- Comments are enabled by default and will only appear in production when built
533
- with the following [environment value](http://jekyllrb.com/docs/configuration/#specifying-a-jekyll-environment-at-build-time):
534
- `JEKYLL_ENV=production`
535
-
536
- If you don't want to display comments for a particular post you can disable
537
- them by adding `comments: false` to that post's front matter.
538
-
539
- ### Google Analytics
540
-
541
- To enable Google Analytics, add your [tracking ID](https://support.google.com/analytics/answer/1032385)
542
- to `_config.yml` like so:
543
-
544
- ```yaml
545
- google_analytics: UA-NNNNNNNN-N
546
- ```
547
-
548
- Similar to comments, the Google Analytics tracking script will only appear in
549
- production when using the following environment value: `JEKYLL_ENV=production`.
550
-
551
- ## Layouts
552
-
553
- This theme provides the following layouts, which you can use by setting the
554
- `layout` [Front Matter](https://jekyllrb.com/docs/frontmatter/) on each page,
555
- like so:
556
-
557
- ```yaml
558
- ---
559
- layout: name
560
- ---
561
- ```
562
-
563
- ### `layout: default`
564
-
565
- This layout handles all of the basic page scaffolding placing the page content
566
- between the masthead and footer elements. All other layouts inherit this one
567
- and provide additional styling and features inside of the `{{ content }}` block.
568
-
569
- ### `layout: post`
570
-
571
- This layout accommodates the following front matter:
572
-
573
- ```yaml
574
- # optional alternate title to replace page.title at the top of the page
575
- alt_title: "Basically Basic"
576
-
577
- # optional sub-title below the page title
578
- sub_title: "The name says it all"
579
-
580
- # optional intro text below titles, Markdown allowed
581
- introduction: |
582
- Basically Basic is a Jekyll theme meant to be a substitute for the default --- [Minima](https://github.com/jekyll/minima). Conventions and features found in Minima are fully supported by **Basically Basic**.
583
-
584
- # optional call to action links
585
- actions:
586
- - label: "Learn More"
587
- icon: github # references name of svg icon, see full list below
588
- url: "http://url-goes-here.com"
589
- - label: "Download"
590
- icon: download # references name of svg icon, see full list below
591
- url: "http://url-goes-here.com"
592
-
593
- image: # URL to a hero image associated with the post (e.g., /assets/page-pic.jpg)
594
-
595
- # post specific author data if different from what is set in _config.yml
596
- author:
597
- name: John Doe
598
- twitter: johndoetwitter
599
-
600
- comments: false # disable comments on this post
601
- ```
602
-
603
- ### `layout: page`
604
-
605
- Visually this layout looks and acts the same as `layout: post`, with two minor
606
- differences.
607
-
608
- - Author "by line" and publish date are omitted.
609
- - Disqus comments are omitted.
610
-
611
- ### `layout: home`
612
-
613
- This layout accommodates the same front matter as `layout: page`, with the
614
- addition of the following:
615
-
616
- ```yaml
617
- paginate: true # enables pagination loop, see section above for additional setup
618
- ```
619
-
620
- ### `layout: about`
621
-
622
- This layout accommodates the same front matter as `layout: page`, with the
623
- addition of the following to display an author picture:
624
-
625
- ```yaml
626
- author:
627
- name: John Doe
628
- picture: /assets/images/johndoe.png
629
- ```
630
-
631
- Recommended `picture` size is approximately `300 x 300` pixels. If `author`
632
- object is not explicitly set in the about page's front matter the theme
633
- will default to the value set in `_config.yml`.
634
-
635
- If blank there no image will appear.
636
-
637
- ### `layout: cv`
638
-
639
- This layout accommodates the same front matter as `layout: page`. It
640
- leverages a [JSON-based file standard](https://jsonresume.org/schema/) for
641
- resume data to conveniently render a curriculum vitæ or resume painlessly.
642
-
643
- Simply use JSON Resume's [in-browser resume builder](http://registry.jsonresume.org/)
644
- to export a JSON file and save to your project as `_data/cv.json`.
645
-
646
- ## Customization
647
-
648
- The default structure, style, and scripts of this theme can be overridden and
649
- customized in the following two ways.
650
-
651
- ### Overriding Includes and Layouts
652
-
653
- Theme defaults can be [overridden](http://jekyllrb.com/docs/themes/#overriding-theme-defaults)
654
- by placing a file with the same name into your project's `_includes` or
655
- `_layouts` directory. For instance:
656
-
657
- - To specify a custom style path or meta data to the [`_includes/head.html `](_includes/head.html)
658
- file, create an `_includes` directory in your project, copy
659
- `_includes/head.html` from Basically Basic's gem folder to
660
- `<your_project>/_includes` and start editing that file.
661
-
662
- **ProTip:** to locate the theme's files on your computer run
663
- `bundle show jekyll-theme-basically-basic`. This returns the location of the
664
- gem-based theme files.
665
-
666
- ### Customizing Sass (SCSS)
667
-
668
- To override the default [Sass](http://sass-lang.com/guide) (located in theme's
669
- `_sass` directory), do one of the following:
670
-
671
- 1. Copy directly from the Basically Basic gem
672
-
673
- - Go to your local Basically Basic gem installation directory (run
674
- `bundle show jekyll-theme-basically-basic` to get the path to it).
675
- - Copy the contents of `/assets/stylesheets/main.scss` from there to
676
- `<your_project>`.
677
- - Customize what you want inside `<your_project>/assets/stylesheets/main.scss`.
678
-
679
- 2. Copy from this repo.
680
-
681
- - Copy the contents of [assets/stylesheets/main.scss](assets/stylesheets/main.scss)
682
- to `<your_project>`.
683
- - Customize what you want inside `<your_project/assets/stylesheets/main.scss`.
684
-
685
- **Note:** To make more extensive changes and customize the Sass partials bundled
686
- in the gem. You will need to copy the complete contents of the `_sass` directory
687
- to `<your_project>` due to the way Jekyll currently reads those files.
688
-
689
- To make basic tweaks to theme's style Sass variables can be overridden by adding
690
- to `<your_project>/assets/stylesheets/main.scss`. For instance, to change the
691
- accent color used throughout the theme add the following:
692
-
693
- ```scss
694
- $accent-color: red;
695
- ```
696
-
697
- ### Customizing JavaScript
698
-
699
- To override the default JavaScript bundled in the theme, do one of the following:
700
-
701
- 1. Copy directly from the Basically Basic gem
702
-
703
- - Go to your local Basically Basic gem installation directory (run
704
- `bundle show jekyll-theme-basically-basic` to get the path to it).
705
- - Copy the contents of `/assets/javascripts/main.js` from there to
706
- `<your_project>`.
707
- - Customize what you want inside `<your_project>/assets/javascripts/main.js`.
708
-
709
- 2. Copy from this repo.
710
-
711
- - Copy the contents of [assets/javascripts/main.js](assets/javascripts/main.js)
712
- to `<your_project>`.
713
- - Customize what you want inside `<your_project>/assets/javascripts/main.js`.
714
-
715
- ### SVG Icons
716
-
717
- The theme uses social network logos and other iconography saved as SVGs for
718
- performance and flexibility. Said SVGs are located in the `_includes` directory
719
- and prefixed with `icon-`. Each icon has been sized and designed to fit a
720
- `16 x 16` viewbox and optimized with [SVGO](https://github.com/svg/svgo).
721
-
722
- | Icon | Filename |
723
- | --- | --- |
724
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-arrow-left.svg" width="16" height="16"> | icon-arrow-left.svg |
725
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-arrow-right.svg" width="16" height="16"> | icon-arrow-right.svg |
726
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-bitbucket.svg" width="16" height="16"> | icon-bitbucket.svg |
727
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-calendar.svg" width="16" height="16"> | icon-calendar.svg |
728
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-codepen.svg" width="16" height="16"> | icon-codepen.svg |
729
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-download.svg" width="16" height="16"> | icon-download.svg |
730
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-dribbble.svg" width="16" height="16"> | icon-dribbble.svg |
731
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-email.svg" width="16" height="16"> | icon-email.svg |
732
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-facebook.svg" width="16" height="16"> | icon-facebook.svg |
733
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-flickr.svg" width="16" height="16"> | icon-flickr.svg |
734
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-github.svg" width="16" height="16"> | icon-github.svg |
735
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-gitlab.svg" width="16" height="16"> | icon-gitlab.svg |
736
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-googleplus.svg" width="16" height="16"> | icon-googleplus.svg |
737
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-instagram.svg" width="16" height="16"> | icon-instagram.svg |
738
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-lastfm.svg" width="16" height="16"> | icon-lastfm.svg |
739
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-linkedin.svg" width="16" height="16"> | icon-linkedin.svg |
740
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-pdf.svg" width="16" height="16"> | icon-pdf.svg |
741
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-pinterest.svg" width="16" height="16"> | icon-pinterest.svg |
742
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-rss.svg" width="16" height="16"> | icon-rss.svg |
743
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-soundcloud.svg" width="16" height="16"> | icon-soundcloud.svg |
744
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-stackoverflow.svg" width="16" height="16"> | icon-stackoverflow.svg |
745
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-stopwatch.svg" width="16" height="16"> | icon-stopwatch.svg |
746
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-tumblr.svg" width="16" height="16"> | icon-tumblr.svg |
747
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-twitter.svg" width="16" height="16"> | icon-twitter.svg |
748
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-xing.svg" width="16" height="16"> | icon-xing.svg |
749
- | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-youtube.svg" width="16" height="16"> | icon-youtube.svg |
750
-
751
- Fill colors are defined in the `_sass/basically-basic/_icons.scss` partial and
752
- set with `.icon-name` where class name matches the corresponding icon.
753
-
754
- For example the Twitter icon is given a fill color of `#1da1f2` like so:
755
-
756
- ```html
757
- <span class="icon icon--twitter">{% include icon-twitter.svg %}</span>
758
- ```
759
-
760
- Alongside the SVG assets, there are icon helper includes to aid in generating
761
- social network links.
762
-
763
- | Include Parameter | Description | Required |
764
- | ----------------- | ---------------------------------| ----------------------- |
765
- | `username` | Username on given social network | **Required** |
766
- | `label` | Text used for hyperlink | Optional, defaults to `username` |
767
-
768
- For example, the following `icon-github.html` include:
769
-
770
- ```liquid
771
- {% include icon-github.html username=jekyll label='GitHub' %}
772
- ```
773
-
774
- Will output the following HTML:
775
-
776
- ```html
777
- <a href="https://github.com/jekyll">
778
- <span class="icon icon--github"><svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M8 0C3.58 0 0 3.582 0 8c0 3.535 2.292 6.533 5.47 7.59.4.075.547-.172.547-.385 0-.19-.007-.693-.01-1.36-2.226.483-2.695-1.073-2.695-1.073-.364-.924-.89-1.17-.89-1.17-.725-.496.056-.486.056-.486.803.056 1.225.824 1.225.824.714 1.223 1.873.87 2.33.665.072-.517.278-.87.507-1.07-1.777-.2-3.644-.888-3.644-3.953 0-.873.31-1.587.823-2.147-.09-.202-.36-1.015.07-2.117 0 0 .67-.215 2.2.82.64-.178 1.32-.266 2-.27.68.004 1.36.092 2 .27 1.52-1.035 2.19-.82 2.19-.82.43 1.102.16 1.915.08 2.117.51.56.82 1.274.82 2.147 0 3.073-1.87 3.75-3.65 3.947.28.24.54.73.54 1.48 0 1.07-.01 1.93-.01 2.19 0 .21.14.46.55.38C13.71 14.53 16 11.53 16 8c0-4.418-3.582-8-8-8"></path></svg></span>
779
- <span class="label">GitHub</span>
780
- </a>
781
- ```
782
-
783
- ### Customizing Sidebar Content
784
-
785
- ---
786
-
787
- ## Development
788
-
789
- To set up your environment to develop this theme:
790
-
791
- 1. Clone this repo
792
- 2. `cd` into `/example` and run `bundle install`.
793
-
794
- To test the theme the locally as you make changes to it:
795
-
796
- 1. `cd` into the root folder of the repo (e.g. `jekyll-theme-basically-basic`).
797
- 2. Run `bundle exec rake preview` and open your browser to
798
- `http://localhost:4000/example/`.
799
-
800
- This starts a Jekyll server using the theme's files and contents of the
801
- `example/` directory. As modifications are made, refresh your browser to see
802
- any changes.
803
-
804
- ## Contributing
805
-
806
- Found a typo in the documentation? Interested in adding a feature or
807
- [fixing a bug][issues]? Then by all means [submit an issue][new-issue] or take a
808
- stab at submitting a [pull request][using-pull-requests]. If this is your first
809
- pull request, it may be helpful to read up on the [GitHub Flow][github-flow].
810
-
811
- [issues]: https://github.com/mmistakes/jekyll-theme-basically-basic/issues
812
- [new-issue]: https://github.com/mmistakes/jekyll-theme-basically-basic/issues/new
813
- [using-pull-requests]: https://help.github.com/articles/using-pull-requests/
814
- [github-flow]: https://guides.github.com/introduction/flow/
815
-
816
- ### Pull Requests
817
-
818
- When submitting a pull request:
819
-
820
- 1. Clone the repo.
821
- 2. Create a branch off of `master` and give it a meaningful name (e.g.
822
- `my-awesome-new-feature`) and describe the feature or fix.
823
- 3. Open a pull request on GitHub.
824
-
825
- Sample pages can be found in the [`/docs`](docs) and [`/example`](/example)
826
- folders if you'd like to tackle any "low-hanging fruit" like fixing typos, bad
827
- grammar, etc.
828
-
829
- ---
830
-
831
- ## Credits
832
-
833
- ### Creator
834
-
835
- **Michael Rose**
836
-
837
- - <https://mademistakes.com>
838
- - <https://twitter.com/mmistakes>
839
- - <https://github.com/mmistakes>
840
-
841
- ### Icons + Demo Images:
842
-
843
- - [Simple Icons](https://simpleicons.org/)
844
- - [Noun Project](https://thenounproject.com)
845
- - [Unsplash](https://unsplash.com/)
846
-
847
- ### Other:
848
-
849
- - [Jekyll](http://jekyllrb.com/)
850
- - [Susy](http://susy.oddbird.net/)
851
- - [Breakpoint](http://breakpoint-sass.com/)
852
-
853
- ---
854
-
855
- ## License
856
-
857
- The MIT License (MIT)
858
-
859
- Copyright (c) 2017-2018 Michael Rose and contributors
860
-
861
- Permission is hereby granted, free of charge, to any person obtaining a copy
862
- of this software and associated documentation files (the "Software"), to deal
863
- in the Software without restriction, including without limitation the rights
864
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
865
- copies of the Software, and to permit persons to whom the Software is
866
- furnished to do so, subject to the following conditions:
867
-
868
- The above copyright notice and this permission notice shall be included in all
869
- copies or substantial portions of the Software.
870
-
871
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
872
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
873
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
874
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
875
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
876
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
877
- SOFTWARE.
878
-
879
- Basically Basic incorporates icons from [The Noun Project](https://thenounproject.com/).
880
- Icons are distributed under Creative Commons Attribution 3.0 United States (CC BY 3.0 US).
881
-
882
- Basically Basic incorporates photographs from [Unsplash](https://unsplash.com).
883
-
884
- Basically Basic incorporates [Susy](http://susy.oddbird.net/),
885
- Copyright (c) 2017, Miriam Eric Suzanne.
886
- Susy is distributed under the terms of the [BSD 3-clause "New" or "Revised" License](https://opensource.org/licenses/BSD-3-Clause).
887
-
888
- Basically Basic incorporates [Breakpoint](http://breakpoint-sass.com/).
889
- Breakpoint is distributed under the terms of the [MIT/GPL Licenses](http://opensource.org/licenses/MIT).
1
+ # [Basically Basic Jekyll Theme][1]
2
+
3
+ [![LICENSE](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://github.com/mmistakes/jekyll-theme-basically-basic/blob/master/LICENSE.md)
4
+ [![Jekyll](https://img.shields.io/badge/jekyll-%3E%3D%203.6-blue.svg)](https://jekyllrb.com/)
5
+ [![Ruby gem](https://img.shields.io/gem/v/jekyll-theme-basically-basic.svg)](https://rubygems.org/gems/jekyll-theme-basically-basic)
6
+ [![Tip Me via PayPal](https://img.shields.io/badge/PayPal-tip%20me-green.svg?logo=paypal)](https://www.paypal.me/mmistakes)
7
+
8
+ Basically Basic is a [Jekyll theme](https://jekyllrb.com/docs/themes/) meant as
9
+ a substitute for the default --- [Minima](https://github.com/jekyll/minima).
10
+ Conventions and features found there are fully supported by **Basically Basic**,
11
+ with a few enhancements thrown in for good measure:
12
+
13
+ - Clean responsive design with [six customizable skins](#skin)
14
+ - Curriculum Vitæ/Resume layout powered by [JSON data](http://registry.jsonresume.org/)
15
+ - About page layout
16
+ - Site-wide search provided by [Algolia](https://www.algolia.com/) or [Lunr](https://lunrjs.com/).
17
+ - Disqus Comments and Google Analytics support
18
+ - SEO best practices via [Jekyll SEO Tag](https://github.com/jekyll/jekyll-seo-tag/)
19
+
20
+ [![Basically Basic live preview][2]][1]
21
+
22
+ [1]: https://mmistakes.github.io/jekyll-theme-basically-basic/
23
+ [2]: https://cloud.githubusercontent.com/assets/1376749/24117647/6dede894-0d81-11e7-9c2c-f19bea45e219.jpg (live preview)
24
+
25
+ ## Table of Contents
26
+
27
+ 1. [Installation](#installation)
28
+ 1. [Ruby Gem Method](#ruby-gem-method)
29
+ 2. [GitHub Pages Method](#github-pages-method)
30
+ 1. [Remove the Unnecessary](#remove-the-unnecessary)
31
+ 2. [Upgrading](#upgrading)
32
+ 1. [Ruby Gem](#ruby-gem)
33
+ 2. [Remote Theme](#remote-theme)
34
+ 3. [Use Git](#use-git)
35
+ 1. [Pull Down Updates](#pull-down-updates)
36
+ 4. [Update Files Manually](#update-files-manually)
37
+ 3. [Structure](#structure)
38
+ 1. [Starting Fresh](#starting-fresh)
39
+ 2. [Starting from `jekyll new`](#starting-from-jekyll-new)
40
+ 4. [Configuration](#configuration)
41
+ 1. [Skin](#skin)
42
+ 2. [Google Fonts](#google-fonts)
43
+ 3. [Text](#text)
44
+ 4. [Navigation](#navigation)
45
+ 5. [Pagination](#pagination)
46
+ 6. [Search](#search)
47
+ 1. [Lunr (default)](#lunr-default)
48
+ 2. [Algolia](#algolia)
49
+ 7. [Author](#author)
50
+ 8. [Reading Time](#reading-time)
51
+ 9. [Comments (via Disqus)](#comments-via-disqus)
52
+ 10. [Google Analytics](#google-analytics)
53
+ 5. [Layouts](#layouts)
54
+ 1. [`layout: default`](#layout-default)
55
+ 2. [`layout: post`](#layout-post)
56
+ 3. [`layout: page`](#layout-page)
57
+ 4. [`layout: home`](#layout-home)
58
+ 5. [`layout: about`](#layout-about)
59
+ 6. [`layout: cv`](#layout-cv)
60
+ 6. [Customization](#customization)
61
+ 1. [Overriding Includes and Layouts](#overriding-includes-and-layouts)
62
+ 2. [Customizing Sass (SCSS)](#customizing-sass-scss)
63
+ 3. [Customizing JavaScript](#customizing-javascript)
64
+ 4. [SVG Icons](#svg-icons)
65
+ 5. [Customizing Sidebar Content](#customizing-sidebar-content)
66
+ 7. [Development](#development)
67
+ 8. [Contributing](#contributing)
68
+ 1. [Pull Requests](#pull-requests)
69
+ 9. [Credits](#credits)
70
+ 10. [License](#license)
71
+
72
+ ## Installation
73
+
74
+ If you're running Jekyll v3.5+ and self-hosting you can quickly install the
75
+ theme as a Ruby gem. If you're hosting with GitHub Pages you can install as a
76
+ remote theme or directly copy all of the theme files (see [structure](#structure)
77
+ below) into your project.
78
+
79
+ ### Ruby Gem Method
80
+
81
+ 1. Add this line to your Jekyll site's `Gemfile`:
82
+
83
+ ```ruby
84
+ gem "jekyll-theme-basically-basic"
85
+ ```
86
+ 2. Add this line to your Jekyll site's `_config.yml` file:
87
+
88
+ ```yaml
89
+ theme: jekyll-theme-basically-basic
90
+ ```
91
+
92
+ 2. Then run [Bundler](http://bundler.io/) to install the theme gem and dependencies:
93
+
94
+ ```terminal
95
+ bundle install
96
+ ```
97
+
98
+ ### GitHub Pages Method
99
+
100
+ GitHub Pages has added [full support](https://github.com/blog/2464-use-any-theme-with-github-pages)
101
+ for any GitHub-hosted theme.
102
+
103
+ 1. Replace `gem "jekyll"` with:
104
+
105
+ ```ruby
106
+ gem "github-pages", group: :jekyll_plugins
107
+ ```
108
+
109
+ 2. Run `bundle update` and verify that all gems install properly.
110
+
111
+ 3. Add `remote_theme: "mmistakes/jekyll-theme-basically-basic"` to your
112
+ `_config.yml` file. Remove any other `theme:` or `remote_theme:` entries.
113
+
114
+ ---
115
+
116
+ **Note:** Your Jekyll site should be viewable immediately at
117
+ <http://USERNAME.github.io>. If it's not, you can force a rebuild by
118
+ **Customizing Your Site** (see below for more details).
119
+
120
+ If you're hosting several Jekyll based sites under the same GitHub username you
121
+ will have to use Project Pages instead of User Pages. Essentially you rename the
122
+ repo to something other than **USERNAME.github.io** and create a `gh-pages`
123
+ branch off of `master`. For more details on how to set things up check
124
+ [GitHub's documentation](https://help.github.com/articles/user-organization-and-project-pages/).
125
+
126
+ #### Remove the Unnecessary
127
+
128
+ If you forked or downloaded the `jekyll-theme-basically-basic` repo you can
129
+ safely remove the following files and folders:
130
+
131
+ - `.codeclimate.yml`
132
+ - `.editorconfig`
133
+ - `.gitattributes`
134
+ - `.github`
135
+ - `.scss-lint.yml`
136
+ - `CHANGELOG.md`
137
+ - `jekyll-theme-basically-basic.gemspec`
138
+ - `LICENSE.md`
139
+ - `Rakefile`
140
+ - `README.md`
141
+ - `screenshot.png`
142
+ - `/docs`
143
+ - `/example`
144
+
145
+ ## Upgrading
146
+
147
+ If you're using the Ruby Gem or remote theme versions of Basically Basic,
148
+ upgrading is fairly painless.
149
+
150
+ To check which version you are currently using, view the source of your built
151
+ site and you should something similar to:
152
+
153
+ ```
154
+ <!--
155
+ Basically Basic Jekyll Theme 1.2.0
156
+ Copyright 2017-2018 Michael Rose - mademistakes.com | @mmistakes
157
+ Free for personal and commercial use under the MIT license
158
+ https://github.com/mmistakes/jekyll-basically-theme/blob/master/LICENSE.md
159
+ -->
160
+ ```
161
+
162
+ At the top of every `.html` file, `/assets/css/main.css`, and `/assets/js/main.js`.
163
+
164
+ ### Ruby Gem
165
+
166
+ Simply run `bundle update` if you're using Bundler (have a `Gemfile`) or `gem
167
+ update jekyll-theme-basically-basic` if you're not.
168
+
169
+ ### Remote Theme
170
+
171
+ When hosting with GitHub Pages you'll need to push up a commit to force a
172
+ rebuild with the latest [theme release](https://github.com/mmistakes/jekyll-theme-basically-basic/releases).
173
+
174
+ An empty commit will get the job done too if you don't have anything to push at
175
+ the moment:
176
+
177
+ ```terminal
178
+ git commit --allow-empty -m "Force rebuild of site"
179
+ ```
180
+
181
+ ### Use Git
182
+
183
+ If you want to get the most out of the Jekyll + GitHub Pages workflow, then
184
+ you'll need to utilize Git. To pull down theme updates you must first ensure
185
+ there's an upstream remote. If you forked the theme's repo then you're likely
186
+ good to go.
187
+
188
+ To double check, run `git remote -v` and verify that you can fetch from `origin https://github.com/mmistakes/jekyll-theme-basically-basic.git`.
189
+
190
+ To add it you can do the following:
191
+
192
+ ```terminal
193
+ git remote add upstream https://github.com/mmistakes/jekyll-theme-basically-basic.git
194
+ ```
195
+
196
+ #### Pull Down Updates
197
+
198
+ Now you can pull any commits made to theme's `master` branch with:
199
+
200
+ ```terminal
201
+ git pull upstream master
202
+ ```
203
+
204
+ Depending on the amount of customizations you've made after forking, there's
205
+ likely to be merge conflicts. Work through any conflicting files Git flags,
206
+ staging the changes you wish to keep, and then commit them.
207
+
208
+ ### Update Files Manually
209
+
210
+ Another way of dealing with updates is [downloading the theme](https://github.com/mmistakes/jekyll-theme-basically-basic/archive/master.zip)
211
+ --- replacing your layouts, includes, and assets with the newer ones manually.
212
+ To be sure that you don't miss any changes it's probably a good idea to review
213
+ the theme's [commit history](https://github.com/mmistakes/jekyll-theme-basically-basic/commits/master)
214
+ to see what's changed since.
215
+
216
+ Here's a quick checklist of the important folders/files you'll want to be
217
+ mindful of:
218
+
219
+ | Name | |
220
+ | ---- | --- |
221
+ | `_layouts` | Replace all. Apply edits if you customized any layouts. |
222
+ | `_includes` | Replace all. Apply edits if you customized any includes. |
223
+ | `assets` | Replace all. Apply edits if you customized stylesheets or scripts. |
224
+ | `_sass` | Replace all. Apply edits if you customized Sass partials. |
225
+ | `_data/theme.yml` | Safe to keep. Verify that there were no major structural changes or additions. |
226
+ | `_config.yml` | Safe to keep. Verify that there were no major structural changes or additions. |
227
+
228
+ ---
229
+
230
+ **Note:** If you're not seeing the latest version, be sure to flush browser and
231
+ CDN caches. Depending on your hosting environment older versions of
232
+ `/assets/css/main.css`, `/assets/js/main.js`, or `*.html` may be cached.
233
+
234
+ ## Structure
235
+
236
+ Layouts, includes, Sass partials, and data files are all placed in their default
237
+ locations. Stylesheets and scripts in `assets`, and a few development related
238
+ files in the project's root directory.
239
+
240
+ **Please note:** If you installed Basically Basic via the Ruby Gem method, theme
241
+ files found in `/_layouts`, `/_includes`, `/_sass`, and `/assets` will be
242
+ missing. This is normal as they are bundled with the [`jekyll-theme-basically-basic`](https://rubygems.org/gems/jekyll-theme-basically-basic) gem.
243
+
244
+ ```terminal
245
+ jekyll-theme-basically-basic
246
+ ├── _data # data files
247
+ | └── theme.yml # theme settings and custom text
248
+ ├── _includes # theme includes and SVG icons
249
+ ├── _layouts # theme layouts (see below for details)
250
+ ├── _sass # Sass partials
251
+ ├── assets
252
+ | ├── javascripts
253
+ | | └── main.js
254
+ | └── stylesheets
255
+ | └── main.scss
256
+ ├── _config.yml # sample configuration
257
+ └── index.md # sample home page (all posts/not paginated)
258
+ ```
259
+
260
+ ### Starting Fresh
261
+
262
+ After creating a `Gemfile` and installing the theme you'll need to add and edit
263
+ the following files:
264
+
265
+ - [`_config.yml`](_config.yml)
266
+ - [`/_data/theme.yml`](_data/theme.yml)
267
+ - [`index.md`](index.md)
268
+
269
+ **Note:** Consult the [**pagination**](#pagination) documentation below for
270
+ instructions on how to enable it for the home page.
271
+
272
+ ### Starting from `jekyll new`
273
+
274
+ Using the `jekyll new` command will get you up and running the quickest.
275
+
276
+ Edit `_config.yml` and create `_data/theme.yml` as instructed above and you're
277
+ good to go.
278
+
279
+ ## Configuration
280
+
281
+ Configuration of site-wide elements (`lang`, `title`, `description`, `logo`,
282
+ `author`, etc.) happens in your project's `_config.yml`. See the
283
+ [example configuration](example/_config.yml) in this repo for additional
284
+ reference.
285
+
286
+ | | Description |
287
+ | ------------------ | ------------------------------------------------------------------------- |
288
+ | `lang` | Used to indicate the language of text (e.g., en-US, en-GB, fr) |
289
+ | `title` | Your site's title (e.g., Dungan's Awesome Site) |
290
+ | `description` | Short site description (e.g., A blog about grasshopper mash) |
291
+ | `url` | The full URL to your site (e.g., https://groverloaf.org) |
292
+ | `author` | Global author information (see below) |
293
+ | `logo` | Path to a site-wide logo ~100x100px (e.g., /assets/your-company-logo.png) |
294
+ | `twitter_username` | Site-wide Twitter username, used as a link in sidebar |
295
+ | `github_username` | Site-wide GitHub username, used as a link in sidebar |
296
+
297
+ For more configuration options be sure to consult the documentation for:
298
+ [**jekyll-seo-tag**][jekyll-seo-tag], [**jekyll-feed**][jekyll-feed],
299
+ [**jekyll-paginate**][jekyll-paginate], and [**jekyll-sitemap**][jekyll-sitemap].
300
+
301
+ [jekyll-seo-tag]: https://github.com/jekyll/jekyll-seo-tag
302
+ [jekyll-feed]: https://github.com/jekyll/jekyll-feed
303
+ [jekyll-paginate]: https://github.com/jekyll/jekyll-paginate
304
+ [jekyll-sitemap]: https://github.com/jekyll/jekyll-sitemap
305
+
306
+ ### Skin
307
+
308
+ This theme comes in six different skins (color variations). To change skins add
309
+ one of the following to your [`/_data/theme.yml`](_data/theme.yml) file:
310
+
311
+ | `skin: default` | `skin: night` | `skin: plum` |
312
+ | --- | --- | --- |
313
+ | ![default-skin](https://cloud.githubusercontent.com/assets/1376749/24115744/c0618c90-0d7a-11e7-8e2d-ec70f9db0c1b.png) | ![night-skin](https://cloud.githubusercontent.com/assets/1376749/24115770/d61127f8-0d7a-11e7-9158-986bee2be8e7.png) | ![plum-skin](https://cloud.githubusercontent.com/assets/1376749/24115778/db523a0e-0d7a-11e7-9452-8692b736d67e.png) |
314
+
315
+ | `skin: sea` | `skin: soft` | `skin: steel` |
316
+ | --- | --- | --- |
317
+ | ![sea-skin](https://cloud.githubusercontent.com/assets/1376749/24115788/e27d818a-0d7a-11e7-8c56-2480e9ae83fb.png) | ![soft-skin](https://cloud.githubusercontent.com/assets/1376749/24115790/e6e548e8-0d7a-11e7-8e2d-d8053e8befd1.png) | ![steel-skin](https://cloud.githubusercontent.com/assets/1376749/24115799/eb2108e8-0d7a-11e7-8cc3-a6f22e4082ee.png) |
318
+
319
+ ### Google Fonts
320
+
321
+ This theme allows you to easily use [Google Fonts](https://fonts.google.com/)
322
+ throughout the theme. Simply add the following to your
323
+ [`/_data/theme.yml`](_data/theme.yml), replacing the font `name` and `weights`
324
+ accordingly.
325
+
326
+ ```yaml
327
+ google_fonts:
328
+ - name: "Fira Sans"
329
+ weights: "400,400i,600,600i"
330
+ - name: "Fira Sans Condensed"
331
+ ```
332
+
333
+ ### Text
334
+
335
+ To change text found throughout the theme add the following to your
336
+ [`/_data/theme.yml`](_data/theme.yml) file and customize as necessary.
337
+
338
+ ```yaml
339
+ t:
340
+ skip_links: "Skip links"
341
+ skip_primary_nav: "Skip to primary navigation"
342
+ skip_content: "Skip to content"
343
+ skip_footer: "Skip to footer"
344
+ menu: "Menu"
345
+ home: "Home"
346
+ newer: "Newer"
347
+ older: "Older"
348
+ email: "Email"
349
+ subscribe: "Subscribe"
350
+ read_more: "Read More"
351
+ posts: "Posts"
352
+ page: "Page"
353
+ of: "of"
354
+ min_read: "min read"
355
+ present: "Present"
356
+ ```
357
+
358
+ ### Navigation
359
+
360
+ By default all internal pages with a `title` will be added to the "off-canvas"
361
+ menu. For more granular control and sorting of these menu links:
362
+
363
+ 1. Create a custom list to override the default setting by adding a
364
+ `navigation_pages` array to your [`/_data/theme.yml`](_data/theme.yml) file.
365
+
366
+ 2. Add raw page paths in the order you'd like:
367
+
368
+ ```yaml
369
+ navigation_pages:
370
+ - about.md
371
+ - cv.md
372
+ ```
373
+
374
+ Each menu link's title and URL will be populated based on their `title` and
375
+ `permalink` respectively.
376
+
377
+ ### Pagination
378
+
379
+ Break up the main listing of posts into smaller lists and display them over
380
+ multiple pages by [enabling pagination](http://jekyllrb.com/docs/pagination/).
381
+
382
+ 1. Include the `jekyll-paginate` plugin in your `Gemfile`.
383
+
384
+ ```ruby
385
+ group :jekyll_plugins do
386
+ gem "jekyll-paginate"
387
+ end
388
+ ```
389
+
390
+ 2. Add `jekyll-paginate` to `gems` array in your `_config.yml` file and the
391
+ following pagination settings:
392
+
393
+ ```yaml
394
+ paginate: 5 # amount of posts to show per page
395
+ paginate_path: /page:num/
396
+ ```
397
+
398
+ 3. Create `index.html` (or rename `index.md`) in the root of your project and
399
+ add the following front matter:
400
+
401
+ ```yaml
402
+ layout: home
403
+ paginate: true
404
+ ```
405
+
406
+ ### Search
407
+
408
+ To enable site-wide search add `search: true` to your `_config.yml`.
409
+
410
+ #### Lunr (default)
411
+
412
+ The default search uses [**Lunr**](https://lunrjs.com/) to build a search index of all your documents. This method is 100% compatible with sites hosted on GitHub Pages.
413
+
414
+ **Note:** Only the first 50 words of a post or page's body content is added to the Lunr search index. Setting `search_full_content` to `true` in your `_config.yml` will override this and could impact page load performance.
415
+
416
+ #### Algolia
417
+
418
+ For faster and more relevant search ([see demo](https://mmistakes.github.io/jekyll-theme-basically-basic-algolia-search/)):
419
+
420
+ 1. Add the [`jekyll-algolia`](https://github.com/algolia/jekyll-algolia) gem to your `Gemfile`, in the `:jekyll_plugins` section.
421
+
422
+ ```ruby
423
+ group :jekyll_plugins do
424
+ gem "jekyll-feed"
425
+ gem "jekyll-seo-tag"
426
+ gem "jekyll-sitemap"
427
+ gem "jekyll-paginate"
428
+ gem "jekyll-algolia"
429
+ end
430
+ ```
431
+
432
+ Once this is done, download all dependencies by running `bundle install`.
433
+
434
+ 2. Switch search providers from `lunr` to `algolia` in your `_config.yml` file:
435
+
436
+ ```yaml
437
+ search_provider: algolia
438
+ ```
439
+
440
+ 3. Add the following Algolia credentials to your `_config.yml` file. *If you don't have an Algolia account, you can open a free [Community plan](https://www.algolia.com/users/sign_up/hacker). Once signed in, you can grab your credentials from [your dashboard](https://www.algolia.com/licensing).*
441
+
442
+ ```yaml
443
+ algolia:
444
+ application_id: # YOUR_APPLICATION_ID
445
+ index_name: # YOUR_INDEX_NAME
446
+ search_only_api_key: # YOUR_SEARCH_ONLY_API_KEY
447
+ powered_by: # true (default), false
448
+ ```
449
+
450
+ 4. Once your credentials are setup, you can run the indexing with the following command:
451
+
452
+ ```
453
+ ALGOLIA_API_KEY=your_admin_api_key bundle exec jekyll algolia
454
+ ```
455
+
456
+ For Windows users you will have to use `set` to assigned the `ALGOLIA_API_KEY` environment variable.
457
+
458
+ ```
459
+ set ALGOLIA_API_KEY=your_admin_api_key
460
+ bundle exec jekyll algolia
461
+ ```
462
+
463
+ Note that `ALGOLIA_API_KEY` should be set to your admin API key.
464
+
465
+ To use the Algolia search with GitHub Pages hosted sites follow [this deployment guide](https://community.algolia.com/jekyll-algolia/github-pages.html). Or this guide for [deploying on Netlify](https://community.algolia.com/jekyll-algolia/netlify.html).
466
+
467
+ ### Author
468
+
469
+ Author information is used as meta data for post "by lines" and propagates the
470
+ `creator` field of Twitter summary cards with the following front matter in
471
+ `_config.yml`:
472
+
473
+ ```yaml
474
+ author:
475
+ name: John Doe
476
+ twitter: johndoetwitter
477
+ picture: /assets/images/johndoe.png
478
+ ```
479
+
480
+ Site-wide author information can be overridden in a document's front matter in
481
+ the same way:
482
+
483
+ ```yaml
484
+ author:
485
+ name: Jane Doe
486
+ twitter: janedoetwitter
487
+ picture: /assets/images/janedoe.png
488
+ ```
489
+
490
+ Or by specifying a corresponding key in the document's front matter, that
491
+ exists in `site.data.authors`. E.g., you have the following in the document's
492
+ front matter:
493
+
494
+ ```yaml
495
+ author: megaman
496
+ ```
497
+
498
+ And you have the following in `_data/authors.yml`:
499
+
500
+ ```yaml
501
+ megaman:
502
+ name: Mega Man
503
+ twitter: megamantwitter
504
+ picture: /assets/images/megaman.png
505
+
506
+ drlight:
507
+ name: Dr. Light
508
+ twitter: drlighttwitter
509
+ picture: /assets/images/drlight.png
510
+ ```
511
+
512
+ Currently `author.picture` is only used in `layout: about`. Recommended size is
513
+ `300 x 300` pixels.
514
+
515
+ ### Reading Time
516
+
517
+ To enable reading time counts add `read_time: true` to a post or page's YAML
518
+ Front Matter.
519
+
520
+ ### Comments (via Disqus)
521
+
522
+ Optionally, if you have a [Disqus](https://disqus.com/) account, you can show a
523
+ comments section below each post.
524
+
525
+ To enable Disqus comments, add your [Disqus shortname](https://help.disqus.com/customer/portal/articles/466208) to your project's
526
+ `_config.yml` file:
527
+
528
+ ```yaml
529
+ disqus:
530
+ shortname: my_disqus_shortname
531
+ ```
532
+
533
+ Comments are enabled by default and will only appear in production when built
534
+ with the following [environment value](http://jekyllrb.com/docs/configuration/#specifying-a-jekyll-environment-at-build-time):
535
+ `JEKYLL_ENV=production`
536
+
537
+ If you don't want to display comments for a particular post you can disable
538
+ them by adding `comments: false` to that post's front matter.
539
+
540
+ ### Google Analytics
541
+
542
+ To enable Google Analytics, add your [tracking ID](https://support.google.com/analytics/answer/1032385)
543
+ to `_config.yml` like so:
544
+
545
+ ```yaml
546
+ google_analytics: UA-NNNNNNNN-N
547
+ ```
548
+
549
+ Similar to comments, the Google Analytics tracking script will only appear in
550
+ production when using the following environment value: `JEKYLL_ENV=production`.
551
+
552
+ ## Layouts
553
+
554
+ This theme provides the following layouts, which you can use by setting the
555
+ `layout` [Front Matter](https://jekyllrb.com/docs/frontmatter/) on each page,
556
+ like so:
557
+
558
+ ```yaml
559
+ ---
560
+ layout: name
561
+ ---
562
+ ```
563
+
564
+ ### `layout: default`
565
+
566
+ This layout handles all of the basic page scaffolding placing the page content
567
+ between the masthead and footer elements. All other layouts inherit this one
568
+ and provide additional styling and features inside of the `{{ content }}` block.
569
+
570
+ ### `layout: post`
571
+
572
+ This layout accommodates the following front matter:
573
+
574
+ ```yaml
575
+ # optional alternate title to replace page.title at the top of the page
576
+ alt_title: "Basically Basic"
577
+
578
+ # optional sub-title below the page title
579
+ sub_title: "The name says it all"
580
+
581
+ # optional intro text below titles, Markdown allowed
582
+ introduction: |
583
+ Basically Basic is a Jekyll theme meant to be a substitute for the default --- [Minima](https://github.com/jekyll/minima). Conventions and features found in Minima are fully supported by **Basically Basic**.
584
+
585
+ # optional call to action links
586
+ actions:
587
+ - label: "Learn More"
588
+ icon: github # references name of svg icon, see full list below
589
+ url: "http://url-goes-here.com"
590
+ - label: "Download"
591
+ icon: download # references name of svg icon, see full list below
592
+ url: "http://url-goes-here.com"
593
+
594
+ image: # URL to a hero image associated with the post (e.g., /assets/page-pic.jpg)
595
+
596
+ # post specific author data if different from what is set in _config.yml
597
+ author:
598
+ name: John Doe
599
+ twitter: johndoetwitter
600
+
601
+ comments: false # disable comments on this post
602
+ ```
603
+
604
+ ### `layout: page`
605
+
606
+ Visually this layout looks and acts the same as `layout: post`, with two minor
607
+ differences.
608
+
609
+ - Author "by line" and publish date are omitted.
610
+ - Disqus comments are omitted.
611
+
612
+ ### `layout: home`
613
+
614
+ This layout accommodates the same front matter as `layout: page`, with the
615
+ addition of the following:
616
+
617
+ ```yaml
618
+ paginate: true # enables pagination loop, see section above for additional setup
619
+ ```
620
+
621
+ ### `layout: about`
622
+
623
+ This layout accommodates the same front matter as `layout: page`, with the
624
+ addition of the following to display an author picture:
625
+
626
+ ```yaml
627
+ author:
628
+ name: John Doe
629
+ picture: /assets/images/johndoe.png
630
+ ```
631
+
632
+ Recommended `picture` size is approximately `300 x 300` pixels. If `author`
633
+ object is not explicitly set in the about page's front matter the theme
634
+ will default to the value set in `_config.yml`.
635
+
636
+ If blank there no image will appear.
637
+
638
+ ### `layout: cv`
639
+
640
+ This layout accommodates the same front matter as `layout: page`. It
641
+ leverages a [JSON-based file standard](https://jsonresume.org/schema/) for
642
+ resume data to conveniently render a curriculum vitæ or resume painlessly.
643
+
644
+ Simply use JSON Resume's [in-browser resume builder](http://registry.jsonresume.org/)
645
+ to export a JSON file and save to your project as `_data/cv.json`.
646
+
647
+ ## Customization
648
+
649
+ The default structure, style, and scripts of this theme can be overridden and
650
+ customized in the following two ways.
651
+
652
+ ### Overriding Includes and Layouts
653
+
654
+ Theme defaults can be [overridden](http://jekyllrb.com/docs/themes/#overriding-theme-defaults)
655
+ by placing a file with the same name into your project's `_includes` or
656
+ `_layouts` directory. For instance:
657
+
658
+ - To specify a custom style path or meta data to the [`_includes/head.html `](_includes/head.html)
659
+ file, create an `_includes` directory in your project, copy
660
+ `_includes/head.html` from Basically Basic's gem folder to
661
+ `<your_project>/_includes` and start editing that file.
662
+
663
+ **ProTip:** to locate the theme's files on your computer run
664
+ `bundle show jekyll-theme-basically-basic`. This returns the location of the
665
+ gem-based theme files.
666
+
667
+ ### Customizing Sass (SCSS)
668
+
669
+ To override the default [Sass](http://sass-lang.com/guide) (located in theme's
670
+ `_sass` directory), do one of the following:
671
+
672
+ 1. Copy directly from the Basically Basic gem
673
+
674
+ - Go to your local Basically Basic gem installation directory (run
675
+ `bundle show jekyll-theme-basically-basic` to get the path to it).
676
+ - Copy the contents of `/assets/stylesheets/main.scss` from there to
677
+ `<your_project>`.
678
+ - Customize what you want inside `<your_project>/assets/stylesheets/main.scss`.
679
+
680
+ 2. Copy from this repo.
681
+
682
+ - Copy the contents of [assets/stylesheets/main.scss](assets/stylesheets/main.scss)
683
+ to `<your_project>`.
684
+ - Customize what you want inside `<your_project/assets/stylesheets/main.scss`.
685
+
686
+ **Note:** To make more extensive changes and customize the Sass partials bundled
687
+ in the gem. You will need to copy the complete contents of the `_sass` directory
688
+ to `<your_project>` due to the way Jekyll currently reads those files.
689
+
690
+ To make basic tweaks to theme's style Sass variables can be overridden by adding
691
+ to `<your_project>/assets/stylesheets/main.scss`. For instance, to change the
692
+ accent color used throughout the theme add the following:
693
+
694
+ ```scss
695
+ $accent-color: red;
696
+ ```
697
+
698
+ ### Customizing JavaScript
699
+
700
+ To override the default JavaScript bundled in the theme, do one of the following:
701
+
702
+ 1. Copy directly from the Basically Basic gem
703
+
704
+ - Go to your local Basically Basic gem installation directory (run
705
+ `bundle show jekyll-theme-basically-basic` to get the path to it).
706
+ - Copy the contents of `/assets/javascripts/main.js` from there to
707
+ `<your_project>`.
708
+ - Customize what you want inside `<your_project>/assets/javascripts/main.js`.
709
+
710
+ 2. Copy from this repo.
711
+
712
+ - Copy the contents of [assets/javascripts/main.js](assets/javascripts/main.js)
713
+ to `<your_project>`.
714
+ - Customize what you want inside `<your_project>/assets/javascripts/main.js`.
715
+
716
+ ### SVG Icons
717
+
718
+ The theme uses social network logos and other iconography saved as SVGs for
719
+ performance and flexibility. Said SVGs are located in the `_includes` directory
720
+ and prefixed with `icon-`. Each icon has been sized and designed to fit a
721
+ `16 x 16` viewbox and optimized with [SVGO](https://github.com/svg/svgo).
722
+
723
+ | Icon | Filename |
724
+ | --- | --- |
725
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-arrow-left.svg" width="16" height="16"> | icon-arrow-left.svg |
726
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-arrow-right.svg" width="16" height="16"> | icon-arrow-right.svg |
727
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-bitbucket.svg" width="16" height="16"> | icon-bitbucket.svg |
728
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-calendar.svg" width="16" height="16"> | icon-calendar.svg |
729
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-codepen.svg" width="16" height="16"> | icon-codepen.svg |
730
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-download.svg" width="16" height="16"> | icon-download.svg |
731
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-dribbble.svg" width="16" height="16"> | icon-dribbble.svg |
732
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-email.svg" width="16" height="16"> | icon-email.svg |
733
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-facebook.svg" width="16" height="16"> | icon-facebook.svg |
734
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-flickr.svg" width="16" height="16"> | icon-flickr.svg |
735
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-github.svg" width="16" height="16"> | icon-github.svg |
736
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-gitlab.svg" width="16" height="16"> | icon-gitlab.svg |
737
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-googleplus.svg" width="16" height="16"> | icon-googleplus.svg |
738
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-instagram.svg" width="16" height="16"> | icon-instagram.svg |
739
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-lastfm.svg" width="16" height="16"> | icon-lastfm.svg |
740
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-linkedin.svg" width="16" height="16"> | icon-linkedin.svg |
741
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-pdf.svg" width="16" height="16"> | icon-pdf.svg |
742
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-pinterest.svg" width="16" height="16"> | icon-pinterest.svg |
743
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-rss.svg" width="16" height="16"> | icon-rss.svg |
744
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-soundcloud.svg" width="16" height="16"> | icon-soundcloud.svg |
745
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-stackoverflow.svg" width="16" height="16"> | icon-stackoverflow.svg |
746
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-stopwatch.svg" width="16" height="16"> | icon-stopwatch.svg |
747
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-tumblr.svg" width="16" height="16"> | icon-tumblr.svg |
748
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-twitter.svg" width="16" height="16"> | icon-twitter.svg |
749
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-xing.svg" width="16" height="16"> | icon-xing.svg |
750
+ | <img src="https://cdn.rawgit.com/mmistakes/jekyll-theme-basically-basic/master/_includes/icon-youtube.svg" width="16" height="16"> | icon-youtube.svg |
751
+
752
+ Fill colors are defined in the `_sass/basically-basic/_icons.scss` partial and
753
+ set with `.icon-name` where class name matches the corresponding icon.
754
+
755
+ For example the Twitter icon is given a fill color of `#1da1f2` like so:
756
+
757
+ ```html
758
+ <span class="icon icon--twitter">{% include icon-twitter.svg %}</span>
759
+ ```
760
+
761
+ Alongside the SVG assets, there are icon helper includes to aid in generating
762
+ social network links.
763
+
764
+ | Include Parameter | Description | Required |
765
+ | ----------------- | ---------------------------------| ----------------------- |
766
+ | `username` | Username on given social network | **Required** |
767
+ | `label` | Text used for hyperlink | Optional, defaults to `username` |
768
+
769
+ For example, the following `icon-github.html` include:
770
+
771
+ ```liquid
772
+ {% include icon-github.html username=jekyll label='GitHub' %}
773
+ ```
774
+
775
+ Will output the following HTML:
776
+
777
+ ```html
778
+ <a href="https://github.com/jekyll">
779
+ <span class="icon icon--github"><svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M8 0C3.58 0 0 3.582 0 8c0 3.535 2.292 6.533 5.47 7.59.4.075.547-.172.547-.385 0-.19-.007-.693-.01-1.36-2.226.483-2.695-1.073-2.695-1.073-.364-.924-.89-1.17-.89-1.17-.725-.496.056-.486.056-.486.803.056 1.225.824 1.225.824.714 1.223 1.873.87 2.33.665.072-.517.278-.87.507-1.07-1.777-.2-3.644-.888-3.644-3.953 0-.873.31-1.587.823-2.147-.09-.202-.36-1.015.07-2.117 0 0 .67-.215 2.2.82.64-.178 1.32-.266 2-.27.68.004 1.36.092 2 .27 1.52-1.035 2.19-.82 2.19-.82.43 1.102.16 1.915.08 2.117.51.56.82 1.274.82 2.147 0 3.073-1.87 3.75-3.65 3.947.28.24.54.73.54 1.48 0 1.07-.01 1.93-.01 2.19 0 .21.14.46.55.38C13.71 14.53 16 11.53 16 8c0-4.418-3.582-8-8-8"></path></svg></span>
780
+ <span class="label">GitHub</span>
781
+ </a>
782
+ ```
783
+
784
+ ### Customizing Sidebar Content
785
+
786
+ ---
787
+
788
+ ## Development
789
+
790
+ To set up your environment to develop this theme:
791
+
792
+ 1. Clone this repo
793
+ 2. `cd` into `/example` and run `bundle install`.
794
+
795
+ To test the theme the locally as you make changes to it:
796
+
797
+ 1. `cd` into the root folder of the repo (e.g. `jekyll-theme-basically-basic`).
798
+ 2. Run `bundle exec rake preview` and open your browser to
799
+ `http://localhost:4000/example/`.
800
+
801
+ This starts a Jekyll server using the theme's files and contents of the
802
+ `example/` directory. As modifications are made, refresh your browser to see
803
+ any changes.
804
+
805
+ ## Contributing
806
+
807
+ Found a typo in the documentation? Interested in adding a feature or
808
+ [fixing a bug][issues]? Then by all means [submit an issue][new-issue] or take a
809
+ stab at submitting a [pull request][using-pull-requests]. If this is your first
810
+ pull request, it may be helpful to read up on the [GitHub Flow][github-flow].
811
+
812
+ [issues]: https://github.com/mmistakes/jekyll-theme-basically-basic/issues
813
+ [new-issue]: https://github.com/mmistakes/jekyll-theme-basically-basic/issues/new
814
+ [using-pull-requests]: https://help.github.com/articles/using-pull-requests/
815
+ [github-flow]: https://guides.github.com/introduction/flow/
816
+
817
+ ### Pull Requests
818
+
819
+ When submitting a pull request:
820
+
821
+ 1. Clone the repo.
822
+ 2. Create a branch off of `master` and give it a meaningful name (e.g.
823
+ `my-awesome-new-feature`) and describe the feature or fix.
824
+ 3. Open a pull request on GitHub.
825
+
826
+ Sample pages can be found in the [`/docs`](docs) and [`/example`](/example)
827
+ folders if you'd like to tackle any "low-hanging fruit" like fixing typos, bad
828
+ grammar, etc.
829
+
830
+ ---
831
+
832
+ ## Credits
833
+
834
+ ### Creator
835
+
836
+ **Michael Rose**
837
+
838
+ - <https://mademistakes.com>
839
+ - <https://twitter.com/mmistakes>
840
+ - <https://github.com/mmistakes>
841
+
842
+ ### Icons + Demo Images:
843
+
844
+ - [Simple Icons](https://simpleicons.org/)
845
+ - [Noun Project](https://thenounproject.com)
846
+ - [Unsplash](https://unsplash.com/)
847
+
848
+ ### Other:
849
+
850
+ - [Jekyll](http://jekyllrb.com/)
851
+ - [Susy](http://susy.oddbird.net/)
852
+ - [Breakpoint](http://breakpoint-sass.com/)
853
+
854
+ ---
855
+
856
+ ## License
857
+
858
+ The MIT License (MIT)
859
+
860
+ Copyright (c) 2017-2018 Michael Rose and contributors
861
+
862
+ Permission is hereby granted, free of charge, to any person obtaining a copy
863
+ of this software and associated documentation files (the "Software"), to deal
864
+ in the Software without restriction, including without limitation the rights
865
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
866
+ copies of the Software, and to permit persons to whom the Software is
867
+ furnished to do so, subject to the following conditions:
868
+
869
+ The above copyright notice and this permission notice shall be included in all
870
+ copies or substantial portions of the Software.
871
+
872
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
873
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
874
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
875
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
876
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
877
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
878
+ SOFTWARE.
879
+
880
+ Basically Basic incorporates icons from [The Noun Project](https://thenounproject.com/).
881
+ Icons are distributed under Creative Commons Attribution 3.0 United States (CC BY 3.0 US).
882
+
883
+ Basically Basic incorporates photographs from [Unsplash](https://unsplash.com).
884
+
885
+ Basically Basic incorporates [Susy](http://susy.oddbird.net/),
886
+ Copyright (c) 2017, Miriam Eric Suzanne.
887
+ Susy is distributed under the terms of the [BSD 3-clause "New" or "Revised" License](https://opensource.org/licenses/BSD-3-Clause).
888
+
889
+ Basically Basic incorporates [Breakpoint](http://breakpoint-sass.com/).
890
+ Breakpoint is distributed under the terms of the [MIT/GPL Licenses](http://opensource.org/licenses/MIT).