25 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, gender identity and expression, level of experience,
9 | nationality, personal appearance, race, religion, or sexual identity and
10 | orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at parkrmoore@gmail.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at [http://contributor-covenant.org/version/1/4][version]
72 |
73 | [homepage]: http://contributor-covenant.org
74 | [version]: http://contributor-covenant.org/version/1/4/
75 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | source "https://rubygems.org"
4 | gemspec
5 |
6 | gem "jekyll", ENV["JEKYLL_VERSION"] if ENV["JEKYLL_VERSION"]
7 | gem "kramdown-parser-gfm" if ENV["JEKYLL_VERSION"] == "~> 3.9"
8 |
--------------------------------------------------------------------------------
/History.markdown:
--------------------------------------------------------------------------------
1 | ## HEAD
2 |
3 | ### Documentation
4 |
5 | * Forward port v2.5.1 release (#399)
6 | * Docs: remove Google+ (#373)
7 | * Update README section on adding favicons to site (#438)
8 | * Fix custom-styles.scss name in README (#610)
9 | * Improve the msg to enable disqus in README (#627)
10 | * Make docs consistent with code (#657)
11 | * Highlight that the base branch is v3 (#719)
12 | * Improve documentation for config options (#760)
13 | * Add platform X supporting in README (#780)
14 | * Update readme_banner.svg to support dark mode (#813)
15 | * Add a warning regarding HEAD commit of `master` (#861)
16 | * Update google analytics README regarding G- and UA- tags (#689)
17 | * Fix typo in README (#895)
18 |
19 | ### Minor Enhancements
20 |
21 | * Add Keybase to social links (#400)
22 | * Solarized skins (#404)
23 | * Add a placeholder of favicons (#433)
24 | * fix: make page.list_title optional (#303)
25 | * Add stackoverflow to social media list (#443)
26 | * Add social support for dev.to (#410)
27 | * Add GitLab to social (#352)
28 | * Support mutiple authors on post layout (#348)
29 | * Re-implement site footer markup and styles (#448)
30 | * Support pagination through posts in home layout (#450)
31 | * Show the last modified date of posts (#432)
32 | * Set margins of hr to improve readability (#461)
33 | * Export a variable to let users to custom the font family of code (#462)
34 | * Set margin-bottom of pagination (#458)
35 | * Adjust margins of headings to make sections clear (#467)
36 | * Rename favicons.html to custom-head.html (#468)
37 | * Remove RSS icon from the social media list (#470)
38 | * Improve the readablility of blockquotes (#481)
39 | * Extract more color rules into skins (#452)
40 | * Introduce "Dark Minima" skin (#335)
41 | * Reduce spacing in the three largest headers (#538)
42 | * Add `auto` skin which honors the `prefers-color-scheme` media query (#634)
43 | * Add google scholar. (#673)
44 | * Add `x` social icon (#756)
45 | * Add Codeberg icon and update list of supported social links (#788)
46 | * Added whatsapp social icon. (#781)
47 | * Update GitLab icon (#765)
48 | * Add Bluesky to social media platforms (#799)
49 | * Simplify inserting markup before closing body tag (#854)
50 | * Render headings and text in different colors (#866)
51 | * Refresh styling of highlighted code snippet blocks (#875)
52 | * Adapt styles for GFM task-lists (#882)
53 | * Render link to feed as last item of social-links list (#888)
54 | * Adjust colors based on WCAG contrast criterion (#891)
55 | * Add styles to be in sync with Jekyll's `mark_lines` feature (#892)
56 | * Improve rendering of pagination pagers (#893)
57 |
58 | ### Major Enhancements
59 |
60 | * Allow skins to be defined and customized easily (#336)
61 | * Drop support for scalar 'author' configuration (#384)
62 | * Place skins in `minima/skins` to clarify purpose (#479)
63 | * Add adaptive skin: `solarized` (#594)
64 | * Generate social iconsheet during build (#686)
65 | * Rename `default` layout to `base` (#690)
66 | * Render social platform icons via Font Awesome library (#839)
67 | * Move `show_excerpts` setting to be under `minima` namespace (#841)
68 | * Simplify `.wrapper` style definition (#852)
69 | * Improve navigation styling and experience (#856)
70 | * Set default `font-weight` of headings to `500` (#868)
71 | * Render comments via platform-agnostic inclusion (#886)
72 |
73 | ### Bug Fixes
74 |
75 | * Add missing rel=me attributes to social links (#386)
76 | * Set the border radius of highlight (#426)
77 | * Removed unnecessary whitespace-controls (#390)
78 | * fix: overflow auto for tables (#296)
79 | * Add `overflow-wrap: break-word` to body tag (#321)
80 | * Use "rem" unit in relative-font-size mixin (#436)
81 | * Assign static value to variable outside forloop (#437)
82 | * Add font-size styles for elements h5 and h6 (#441)
83 | * Stop prefixing CSS calc with `-webkit-` (#445)
84 | * Improve readability of post titles with diacritics (#449)
85 | * Fix a bug of incorrect parsing of page.modified_date (#455)
86 | * Specify the font size of the root element (#485)
87 | * Fix script used for Google Analytics (#596)
88 | * Open social links in new tabs (#625)
89 | * change base-font-family sequence (#654)
90 | * Fix responsiveness of social SVG sprites (#677)
91 | * Improve "Subscribe" link in footer (#698)
92 | * Fix deprecation warnings from Dart Sass (#700)
93 | * Fix reference to base layout in `404.html` (#713)
94 | * Minimal fixes for Disqus (#775)
95 | * Fix deprecation warnings (#796) (#797)
96 | * Avoid clipping responsive social SVG icons (#808)
97 | * Update google-analytics.html (#824)
98 | * Fix Google Analytics script (#825)
99 | * Use single-quotes when nested within double-quoted attributes (#840)
100 | * Improve rendering of post header (#855)
101 | * Improve link underline styling (#857)
102 | * Replace `page.date` with `pdate` consistently in `post` layout (#859)
103 | * Reduce wrapper padding on small screens (#865)
104 | * Adjust the font size of blockquotes (#492)
105 | * Adjust table-text color based on heading-color (#869)
106 | * Adjust table border contrast (#872)
107 | * Toggle icons based on `#nav-trigger` state (#878)
108 | * Re-establish compatibility with legacy Sass engine (#880)
109 | * Delay loading font-awesome stylesheet from CDN (#883)
110 | * Undo fixed header (#884)
111 | * Render minimal site-nav on small screens (#885)
112 | * Fix invalid HTML (#330)
113 |
114 | ### Development Fixes
115 |
116 | * Ignore .jekyll-cache (#439)
117 | * Clean up and optimize .gitignore (#475)
118 | * [chore] Normalize Travis CI builds (#480)
119 | * chore(deps): bump Ruby version (#510)
120 | * Conditionally load GFM-parser gem in CI builds (#535)
121 | * Improve CI workflow configuration (#609)
122 | * Migrate from TravisCI to GitHub Actions (#633)
123 | * Build and deploy demo site via GH Action workflow (#636)
124 | * Improve readability of config file (#703)
125 | * Trigger demo-site build manually (#714)
126 | * Update History document for v2.5.2 (#803)
127 | * Move development config to a separate config file (#879)
128 |
129 | ## 2.5.2
130 |
131 | ### Bug Fixes
132 |
133 | * Fix deprecation warnings from Dart Sass (#801)
134 |
135 | ### Development Fixes
136 |
137 | * Set up CI for `2.5-stable` branch (#800)
138 | * Release gem from 2.5-stable via GitHub Actions (#802)
139 |
140 | ## 2.5.1
141 |
142 | ### Minor Enhancements
143 |
144 | * Allow use and testing with Jekyll 4.x (#398)
145 |
146 | ### Bug Fixes
147 |
148 | * Footer overlapping issue (Support Microsoft Explorer 11) (#248)
149 | * Update multiline config comment. (#346)
150 |
151 | ### Development Fixes
152 |
153 | * remove deprecated `sudo: false` in .travis.yml (#347)
154 |
155 | ## 2.5.0
156 |
157 | ### Bug Fixes
158 |
159 | * Add `jekyll-feed` plugin in config (#228)
160 |
161 | ### Minor Enhancements
162 |
163 | * Stick footer for short posts (#223)
164 | * Consolidate trigger SVG paths (#148)
165 |
166 | ## 2.4.1
167 |
168 | ### Bug Fixes
169 |
170 | * Reintroduce removed social includes for backwards compatibility (#217)
171 |
172 | ## 2.4.0
173 |
174 | ### Minor Enhancements
175 |
176 | * Add better system fonts (#205)
177 | * Remove whitespace due to Liquid tags in generated HTML (#202)
178 | * Adding Mastodon to the social networks (#198)
179 |
180 | ### Bug Fixes
181 |
182 | * social icons should resolve baseurl properly (#201)
183 | * fix: styling main element in IE 11 (#199)
184 |
185 | ### Documentation
186 |
187 | * Improve thw wording in index.md (#175)
188 | * Update config description comment (#203)
189 |
190 | ## 2.3.0
191 |
192 | * Add option to show excerpts on the homepage (#90)
193 | * Handle RSS feed with jekyll-feed (#183)
194 | * Test build with Ruby 2.4 on CI (#184)
195 | * Document how to customize navigation links (#192)
196 |
197 | ## 2.2.1
198 |
199 | * Revert social_sites hash for retrocompatibility (#190)
200 |
201 | ## 2.2.0
202 |
203 | ### Minor Enhancements
204 |
205 | * handling content outside of posts (#88)
206 | * Add default table styles (#144)
207 | * Add `jekyll-seo-tag` dependency (#139)
208 | * Add Microformats markup (#160)
209 | * Add more social links (#141)
210 |
211 | ### Documentation
212 |
213 | * Docs: clarification about page title (#142)
214 |
215 | ## 2.1.1 / 2017-04-13
216 |
217 | ### Minor Enhancements
218 |
219 | * Close #55: Improve mobile user experience (#62)
220 | * Remove incomplete status from spec summary (#63)
221 | * Use date_format if set in configuration (#70)
222 | * Corrected misspelled word (#72)
223 | * Scale headings relative to base-font-size (#78)
224 | * Remove 2.0 post-install message (#82)
225 | * Fixes #115 - Only include the nav tag if there are pages to be displayed in the menu (#116)
226 | * Fixes #80, #106. Make the hamburger work with pure CSS. (#111)
227 | * add `header_pages` config to link only specific files in header (#52)
228 | * More easily customizable CSS (#117)
229 | * Use relative size for fonts and line-height (#103)
230 | * Add 404 page from jekyll `master` (#121)
231 |
232 | ### Development Fixes
233 |
234 | * Remove duplicate .sass-cache (#71)
235 | * Demo minima on GitHub Pages (#76)
236 | * Remove the Rakefile (#118)
237 |
238 | ### Documentation
239 |
240 | * Update README with theme content description (#91)
241 | * Update default local URL (#120)
242 |
243 | ## 2.1.0 / 2016-11-15
244 |
245 | ### Minor Enhancements
246 |
247 | * Update gemspec to require at least Jekyll 3.3 (#59)
248 | * Use `absolute_url` filter for disqus (#66)
249 | * replace `example/index.html` with `example/index.md` (#58)
250 |
251 | ### Development Fixes
252 |
253 | * Example should require Jekyll 3.3 (#61)
254 |
255 | ## 2.0.0 / 2016-10-06
256 |
257 | ### Minor Enhancements
258 |
259 | * priority to site.url when site.github.url is available (#46)
260 | * Move contents of the index.html page to the 'home' layout (#48)
261 | * Use new `absolute_url` and `relative_url` filters in minima (#57)
262 |
263 | ### Development Fixes
264 |
265 | * Use standardized tab size of 2 spaces (#44)
266 |
267 | ### Major Enhancements
268 |
269 | * move `css/` directory from jekyll into `assets/` (#43)
270 |
271 | ### Bug Fixes
272 |
273 | * Fix html proofer errors (#49)
274 | * Update gem regex to include new `assets` directory (#54)
275 |
276 | ## 1.2.0 / 2016-09-12
277 |
278 | ### Minor Enhancements
279 |
280 | * Look to site.url when available (#35)
281 |
282 | ### Documentation
283 |
284 | * Move instruction for CSS in install section (#37)
285 |
286 | ## 1.1.0 / 2016-09-07
287 |
288 | ### Major Enhancements
289 |
290 | * Add support to Disqus (#21)
291 | * Google analytics support (#26)
292 | * Look for `site.github.url` if it exists (#25)
293 |
294 | ### Minor Enhancements
295 |
296 | * Fixed Flash Of Unstyled SVG (#12)
297 | * Added "author" in footer instead of double title (#22)
298 |
299 | ### Documentation
300 |
301 | * Document how to link to the theme styles (#18)
302 | * Update Example to resemble Default site (#24)
303 |
304 | ### Development Enhancements
305 |
306 | * Use upstream gemspec file matcher (#9)
307 | * Fix gemspec regex (#31)
308 | * Add Travis and a basic smoke test (#33)
309 |
310 | ## 1.0.1 / 2016-07-28
311 |
312 | * include `_layouts`, `_includes`, and `_sass` dir in gem (#6)
313 |
314 | ## 1.0.0 / 2016-07-27
315 |
316 | * default layout: html `lang` attribute should allow user customization (#3)
317 | * Use `normalize_whitespace` filter for meta description (#4)
318 | * Fix repo's URL in contributing (#5)
319 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016-present Parker Moore and the minima contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | > [!WARNING]
2 | > **The `master` branch is under active development towards a semver-major release with non-backwards-compatible changes.**
3 | >
4 | > While you may use this theme in the current state either via the `jekyll-remote-theme` plugin or via a Gemfile, it is
5 | > recommended to point to a particular git ref that does not break your site's existing render and gradually update to a
6 | > newer git ref via a pull request after consulting this repository's commit-log and README.
7 | >
8 | > **Pointing directly to the `HEAD` commit of the `master` branch is risky and may contain changes that break your site.**
9 | >
10 | > Example of pointing to a particular git ref via `jekyll-remote-theme` plugin:
11 | > ```yaml
12 | > # _config.yml
13 | >
14 | > remote_theme: "jekyll/minima@1e8a445"
15 | > ```
16 | > Example of pointing to a particular git ref via `Gemfile` (with `theme: minima` in `_config.yml`)
17 | > ```ruby
18 | > # Gemfile
19 | >
20 | > gem "minima", github: "jekyll/minima", ref: "1e8a445"
21 | > ```
22 |
23 |
24 |
25 |
26 |
Disclaimer: The information here may vary depending on the version you're using.
27 | Please refer to the README.md bundled within the theme-gem for information specific to your version or by pointing
28 | your browser to the Git tag corresponding to your version. e.g. https://github.com/jekyll/minima/blob/v2.5.0/README.md.
29 | Running bundle show minima will provide you with the local path to your current theme version.
30 |
31 |
It's Jekyll's default (and first) theme. It's what you get when you run jekyll new.
35 |
36 | ## Installation
37 |
38 | Add this line to your Jekyll site's Gemfile:
39 |
40 | ```ruby
41 | gem "minima"
42 | ```
43 |
44 | And then execute:
45 |
46 | $ bundle
47 |
48 |
49 | ## Contents At-A-Glance
50 |
51 | Minima has been scaffolded by the `jekyll new-theme` command and therefore has all the necessary files and directories to have a new Jekyll site up and running with zero-configuration.
52 |
53 | ### Layouts
54 |
55 | Refers to files within the `_layouts` directory, that define the markup for your theme.
56 |
57 | - `base.html` — The base layout that lays the foundation for subsequent layouts. The derived layouts inject their
58 | contents into this file at the line that says ` {{ content }} ` and are linked to this file via
59 | [FrontMatter](https://jekyllrb.com/docs/frontmatter/) declaration `layout: base`.
60 | - `home.html` — The layout for your landing-page / home-page / index-page. [[More Info.](#home-layout)]
61 | - `page.html` — The layout for your documents that contain FrontMatter, but are not posts.
62 | - `post.html` — The layout for your posts.
63 |
64 | #### Base Layout
65 |
66 | From Minima v3 onwards, the base layout is named **`base.html`** instead of `default.html` to avoid confusing new users into
67 | assuming that name holds special status.
68 |
69 | Users migrating from older versions with customized `_layouts/default.html` are advised to rename their copy to
70 | `_layouts/base.html`. Migrating users with additional customized layouts may either update front matter references to former
71 | `default.html` layout or create a new `default.html` layout referencing the current `base.html`, whichever route being the
72 | easiest:
73 |
74 | ```
75 | ---
76 | # new `_layouts/default.html` for backwards-compatibility when multiple
77 | # layouts have been customized.
78 |
79 | layout: base
80 | ---
81 |
82 | {{ content }}
83 | ```
84 |
85 | #### Home Layout
86 |
87 | `home.html` is a flexible HTML layout for the site's landing-page / home-page / index-page.
88 |
89 | ##### *Main Heading and Content-injection*
90 |
91 | From Minima v2.2 onwards, the *home* layout will inject all content from your `index.md` / `index.html` **before** the **`Posts`** heading. This will allow you to include non-posts related content to be published on the landing page under a dedicated heading. *We recommended that you title this section with a Heading2 (`##`)*.
92 |
93 | Usually the `site.title` itself would suffice as the implicit 'main-title' for a landing-page. But, if your landing-page would like a heading to be explicitly displayed, then simply define a `title` variable in the document's front matter and it will be rendered with an `
` tag.
94 |
95 | ##### *Post Listing*
96 |
97 | This section is optional from Minima v2.2 onwards.
98 | It will be automatically included only when your site contains one or more valid posts or drafts (if the site is configured to `show_drafts`).
99 |
100 | The title for this section is `Posts` by default and rendered with an `
` tag. You can customize this heading by defining a `list_title` variable in the document's front matter.
101 |
102 |
103 | ### Includes
104 |
105 | Refers to snippets of code within the `_includes` directory that can be inserted in multiple layouts (and another include-file as well) within the same theme-gem.
106 |
107 | - `comments.html` — Markup to render comments (via Disqus; active only when Jekyll environment is set to `production`).
108 | - `footer.html` — Defines the site's footer section.
109 | - `google-analytics.html` — Inserts Google Analytics module (active only in production environment).
110 | - `head.html` — Code-block that defines the `` in *default* layout.
111 | - `custom-head.html` — Placeholder to allow users to add more metadata to `
`.
112 | - `header.html` — Defines the site's main header section that consists of the site's *title* and *navigation*.
113 | - `nav-items.html` — Contains the logic and markup to render individual link items for the site's navigation.
114 | - `social.html` — Renders social-media icons based on the `minima:social_links` data in the config file using
115 | the latest version of Font Awesome Free webfonts via remote CDN.
116 | - `sub-footer.html` — Placeholder to allow inserting markup (e.g. deferred scripts) before the `` tag.
117 |
118 |
119 | ### Sass
120 |
121 | Refers to `.scss` files within the `_sass` directory that define the theme's styles.
122 |
123 | - `minima/skins/classic.scss` — The "classic" skin of the theme. *Used by default.*
124 | - `minima/initialize.scss` — A component that defines the theme's *skin-agnostic* variable defaults and sass partials.
125 | It imports the following components (in the following order):
126 | - `minima/custom-variables.scss` — A hook that allows overriding variable defaults and mixins. (*Note: Cannot override styles*)
127 | - `minima/_base.scss` — Sass partial for resets and defines base styles for various HTML elements.
128 | - `minima/_layout.scss` — Sass partial that defines the visual style for various layouts.
129 | - `minima/custom-styles.scss` — A hook that allows overriding styles defined above. (*Note: Cannot override variables*)
130 |
131 | Refer the [skins](#skins) section for more details.
132 |
133 |
134 | ### Assets
135 |
136 | Refers to various asset files within the `assets` directory.
137 |
138 | - `assets/css/style.scss` — Imports sass files from within the `_sass` directory and gets processed into the theme's
139 | stylesheet: `assets/css/styles.css`.
140 | - `assets/minima-social-icons.html` — Imports enabled social-media icon graphic and gets processed into a composite SVG file.
141 | Refer [section on social networks](#social-networks) for its usage.
142 |
143 |
144 | ### Plugins
145 |
146 | Minima comes with [`jekyll-seo-tag`](https://github.com/jekyll/jekyll-seo-tag) plugin preinstalled to make sure your website gets the most useful meta tags. See [usage](https://github.com/jekyll/jekyll-seo-tag#usage) to know how to set it up.
147 |
148 |
149 | ## Usage
150 |
151 | Have the following line in your config file:
152 |
153 | ```yaml
154 | theme: minima
155 | ```
156 |
157 |
158 | ### Customizing templates
159 |
160 | To override the default structure and style of minima, simply create the concerned directory at the root of your site, copy the file you wish to customize to that directory, and then edit the file.
161 | e.g., to override the [`_includes/head.html `](_includes/head.html) file to specify a custom style path, create an `_includes` directory, copy `_includes/head.html` from minima gem folder to `/_includes` and start editing that file.
162 |
163 | The site's default CSS has now moved to a new place within the gem itself, [`assets/css/style.scss`](assets/css/style.scss).
164 |
165 | In Minima 3.0, if you only need to customize the colors of the theme, refer to the subsequent section on skins. To have your
166 | *CSS overrides* in sync with upstream changes released in future versions, you can collect all your overrides for the Sass
167 | variables and mixins inside a sass file placed at `_sass/minima/custom-variables.scss` and all other overrides inside a sass file
168 | placed at path `_sass/minima/custom-styles.scss`.
169 |
170 | You need not maintain entire partial(s) at the site's source just to override a few styles. However, your stylesheet's primary
171 | source (`assets/css/style.scss`) should contain the following:
172 |
173 | - Front matter dashes at the very beginning (can be empty).
174 | - Directive to import a skin.
175 | - Directive to import the base styles (automatically loads overrides when available).
176 |
177 | Therefore, your `assets/css/style.scss` should contain the following at minimum:
178 |
179 | ```sass
180 | ---
181 | ---
182 |
183 | @import
184 | "minima/skins/{{ site.minima.skin | default: 'classic' }}",
185 | "minima/initialize";
186 | ```
187 |
188 | #### Skins
189 |
190 | Minima 3.0 supports defining and switching between multiple color-palettes (or *skins*).
191 |
192 | ```
193 | .
194 | ├── minima.scss
195 | └── minima
196 | └── _syntax-highlighting.scss
197 | ```
198 |
199 |
200 | A skin is a Sass file placed in the directory `_sass/minima/skins` and it defines the variable defaults related to the "color"
201 | aspect of the theme. It also embeds the Sass rules related to syntax-highlighting since that is primarily related to color and
202 | has to be adjusted in harmony with the current skin.
203 |
204 | The default color palette for Minima is defined within `_sass/minima/skins/classic.scss`. To switch to another available skin,
205 | simply declare it in the site's config file. For example, to activate `_sass/minima/skins/dark.scss` as the skin, the setting
206 | would be:
207 |
208 | ```yaml
209 | minima:
210 | skin: dark
211 | ```
212 |
213 | As part of the migration to support skins, some existing Sass variables have been retired and some **have been redefined** as
214 | summarized in the following table:
215 |
216 | Minima 2.0 | Minima 3.0
217 | --------------- | ----------
218 | `$brand-color` | `$link-base-color`
219 | `$grey-*` | `$brand-*`
220 | `$orange-color` | *has been removed*
221 |
222 | ##### Available skins
223 |
224 | Skin setting | Description
225 | --------------- | -----------
226 | classic | Default, light color scheme.
227 | dark | Dark variant of the classic skin.
228 | auto | *Adaptive skin* based on the default classic and dark skins.
229 | solarized | *Adaptive skin* for [solarized](https://github.com/solarized) color scheme skins.
230 | solarized-light | Light variant of solarized color scheme.
231 | solarized-dark | Dark variant of solarized color scheme.
232 |
233 | *:bulb: Adaptive skins switch between the "light" and "dark" variants based on the user's operating system setting or browser setting
234 | (via CSS Media Query [prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)).*
235 |
236 | ### Customize navigation links
237 |
238 | This allows you to set which pages you want to appear in the navigation area and configure order of the links.
239 |
240 | For instance, to only link to the `about` and the `portfolio` page, add the following to your `_config.yml`:
241 |
242 | ```yaml
243 | minima:
244 | nav_pages:
245 | - about.md
246 | - portfolio.md
247 | ```
248 | > [!WARNING]
249 | > Please note that **`site.header_pages`** is **`site.minima.nav_pages`** in Minima 3.0
250 |
251 |
252 | ### Change default date format
253 |
254 | You can change the default date format by specifying `site.minima.date_format`
255 | in `_config.yml`.
256 |
257 | ```
258 | # Minima date format
259 | # refer to http://shopify.github.io/liquid/filters/date/ if you want to customize this
260 | minima:
261 | date_format: "%b %-d, %Y"
262 | ```
263 |
264 |
265 | ### Extending the ``
266 |
267 | You can *add* custom metadata to the `
` of your layouts by creating a file `_includes/custom-head.html` in your source directory. For example, to add favicons:
268 |
269 | 1. Head over to [https://realfavicongenerator.net/](https://realfavicongenerator.net/) to add your own favicons.
270 | 2. [Customize](#customization) default `_includes/custom-head.html` in your source directory and insert the given code snippet.
271 |
272 |
273 | ### Enabling comments (via Disqus)
274 |
275 | Optionally, if you have a Disqus account, you can render a comments section below each post with the following configuration:
276 |
277 | ```yaml
278 | url: "https://my_domain.com"
279 | disqus:
280 | shortname: my_disqus_shortname
281 | ```
282 |
283 | You can find out more about Disqus' shortnames [here](https://help.disqus.com/installation/whats-a-shortname).
284 |
285 | Comments are enabled by default and will only appear in production, i.e., `JEKYLL_ENV=production`
286 |
287 | If you don't want to display comments for a particular post you can disable them by adding `comments: false` to that
288 | post's YAML Front Matter.
289 |
290 | ### Author Metadata
291 |
292 | From `Minima-3.0` onwards, `site.author` is expected to be a mapping of attributes instead of a simple scalar value:
293 |
294 | ```yaml
295 | author:
296 | name: John Smith
297 | email: "john.smith@foobar.com"
298 | ```
299 |
300 | To migrate existing metadata, update your config file and any reference to the object in your layouts and includes as summarized below:
301 |
302 | Minima 2.x | Minima 3.0
303 | ------------- | -------------------
304 | `site.author` | `site.author.name`
305 | `site.email` | `site.author.email`
306 |
307 |
308 | ### Social networks
309 |
310 | You can add links to the accounts you have on other sites, with respective icon as an SVG graphic, via the config file.
311 | From `Minima-3.0` onwards, the social media data is sourced from config key `minima.social_links`. It is a list of key-value pairs, each entry
312 | corresponding to a link rendered in the footer. For example, to render links to Jekyll GitHub repository and Twitter account (now X), one
313 | should have:
314 |
315 | ```yaml
316 | minima:
317 | social_links:
318 | - title: Jekyll repository at GitHub
319 | icon: github
320 | url: "https://github.com/jekyll/jekyll"
321 | - title: Jekyll at X (formerly Twitter)
322 | icon: x-twitter
323 | url: "https://x.com/jekyllrb"
324 | ```
325 |
326 | where `title` corresponds to the link-title displayed when a visitor hovers mouse-pointer over url / icon and
327 | `icon` refers to the Font Awesome icon id. e.g. `github` corresponds to `fa-github`.
328 |
329 | Social platform icons are rendered using the latest version of Font Awesome Free webfonts sourced via remote CDN.
330 | The full list of available social icons can be found at https://fontawesome.com/search?ic=brands
331 |
332 | > [!NOTE]
333 | > The link to your site's main syndication feed is always rendered as the last item of the social-links list.
334 | > You may opt to not have this link rendered at all by setting config **`minima.hide_site_feed_link`** to `true`:
335 | > ```yaml
336 | > minima:
337 | > hide_site_feed_link: true # `false` or `null` by default
338 | > ```
339 |
340 | ### Enabling Google Analytics
341 |
342 | To enable Google Analytics, add the following lines to your Jekyll site:
343 |
344 | ```yaml
345 | google_analytics: G-NNNNNNNNNN // The former `UA-NNNNNNNN-N` format is no longer supported by Google
346 | ```
347 |
348 | Google Analytics will only appear in production, i.e., `JEKYLL_ENV=production`.
349 |
350 | ### Enabling Excerpts on the Home Page
351 |
352 | To display post-excerpts on the Home Page, simply set `show_excerpts` under top-level key `minima` to `true` in your
353 | `_config.yml`:
354 |
355 | ```yaml
356 | minima:
357 | show_excerpts: true
358 | ```
359 |
360 |
361 | ## Contributing
362 |
363 | Bug reports and pull requests are welcome on GitHub at https://github.com/jekyll/minima. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
364 |
365 | ## Development
366 |
367 | To set up your environment to develop this theme, run `script/bootstrap`.
368 |
369 | To test your theme, run `script/server` (or `bundle exec jekyll serve`) and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme and the contents. As you make modifications, your site will regenerate and you should see the changes in the browser after a refresh.
370 |
371 | ## License
372 |
373 | The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
374 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Site-wide settings
2 | # ------------------
3 | #
4 | # title: Your awesome title
5 | #
6 | # author:
7 | # name: GitHub User
8 | # email: your-email@domain.com
9 | #
10 | # The `>` after `description:` means to ignore line-breaks until next key. If
11 | # you wish to omit the line-break after the end of text, use `>-` instead.
12 | # description: >
13 | # Write an awesome description for your new site here. You can edit this line
14 | # in _config.yml. It will appear in your document head meta (for Google search
15 | # results) and in your feed.xml site description.
16 |
17 |
18 | # Build settings
19 | # --------------
20 | #
21 | # If you wish to use the gem-version of Minima with or without a Gemfile, use
22 | # the following setting:
23 | # theme: minima
24 | #
25 | # **OR** if you wish to use the theme directly from the GitHub repository by
26 | # bypassing a Gemfile, use the following setting instead.
27 | # It is best that you lock to a particular commit and update if uptream changes
28 | # do not affect your site adversely.
29 | # remote_theme: jekyll/minima@d4d779a
30 | #
31 | # Minima requires the following plugins:
32 | # plugins:
33 | # - jekyll-feed
34 | # - jekyll-seo-tag
35 | #
36 | # Uncomment the following setting if you wish to disable deprecation warnings
37 | # from newer versions of sass converter. Adapt as required.
38 | # sass:
39 | # quiet_deps: true
40 | # silence_deprecations: [import]
41 |
42 |
43 | # Minima-specific settings (applicable to Minima v3 and above only)
44 | # -----------------------------------------------------------------
45 | #
46 | # *All described config keys below should be nested under the top-level
47 | # `minima` key.*
48 | #
49 | # minima:
50 | # Minima skin selection. Available skins are:
51 | # * classic Default, light color scheme.
52 | # * dark Dark variant of the classic skin.
53 | # * auto Adaptive skin based on the classic and dark skins.
54 | # * solarized-light Light variant of solarized color scheme.
55 | # * solarized-dark Dark variant of solarized color scheme.
56 | # * solarized Adaptive skin for solarized color scheme skins.
57 | # skin: auto
58 | #
59 | # Specific pages for site navigation.
60 | # If you wish to link only specific pages in the site-navigation, use this
61 | # and list the `path` property (as represented via Liquid) of the pages in
62 | # the order they should be rendered.
63 | # nav_pages:
64 | # - about.md
65 | #
66 | # Set to `true` to show excerpts on the homepage.
67 | # show_excerpts: false
68 | #
69 | # Minima date format.
70 | # The default value is "%b %d, %Y" (e.g. Nov 14, 2023).
71 | # Refer to https://shopify.github.io/liquid/filters/date/ for valid values
72 | # date_format: "%b-%d-%Y"
73 | #
74 | # Social Media Links.
75 | # Renders icons via Font Awesome Free webfonts CDN, based on ordered list of
76 | # entries. Valid entry keys:
77 | # * title Tooltip rendered on hovering over icon.
78 | # * icon Font Awesome icon id. `github` corresponds to `fa-github`.
79 | # * url Full URL of social profile.
80 | # social_links:
81 | # - title: Minima Theme repository at GitHub
82 | # icon: github
83 | # url: "https://github.com/jekyll/minima"
84 | # - title: Jekyll at X (formerly Twitter)
85 | # icon: x-twitter
86 | # url: "https://x.com/jekyllrb"
87 | #
88 | # Hide syndication feed subscription link.
89 | # RSS / Atom feed link is always rendered as the last item of social-links
90 | # list. Set below key to `true` to not have the link to feed rendered as
91 | # part of social-links list.
92 | # hide_site_feed_link: false
93 |
--------------------------------------------------------------------------------
/_config_theme-dev.yml:
--------------------------------------------------------------------------------
1 | title: Your awesome title
2 | author:
3 | name: GitHub User
4 | email: your-email@domain.com
5 |
6 | description: >
7 | Write an awesome description for your new site here. You can edit this line
8 | in _config.yml. It will appear in your document head meta (for Google search
9 | results) and in your feed.xml site description.
10 |
11 | theme: minima
12 |
13 | plugins:
14 | - jekyll-feed
15 | - jekyll-seo-tag
16 |
17 | sass:
18 | quiet_deps: true
19 | silence_deprecations: [import]
20 |
21 | minima:
22 | # Minima skin selection. Available skins are:
23 | # Available skins:
24 | # * classic Default, light color scheme.
25 | # * dark Dark variant of the classic skin.
26 | # * auto Adaptive skin based on the default classic and dark skins.
27 | # * solarized-light Light variant of solarized color scheme.
28 | # * solarized-dark Dark variant of solarized color scheme.
29 | # * solarized Adaptive skin for solarized color scheme skins.
30 | skin: classic
31 |
32 | # Specific pages for site navigation.
33 | # If you wish to link only specific pages in the site-navigation, use this and list
34 | # the `path` property (as represented via Liquid) of the pages in the order they
35 | # should be rendered.
36 | nav_pages:
37 | - about.md
38 |
39 | # Set to `true` to show excerpts on the homepage.
40 | show_excerpts: false
41 |
42 | # Minima date format.
43 | # The default value is "%b %d, %Y" (e.g. Nov 14, 2023).
44 | # Refer to https://shopify.github.io/liquid/filters/date/ for valid values.
45 | # date_format: "%b-%d-%Y"
46 |
47 | # Social Media Links
48 | # Renders icons via Font Awesome Free webfonts CDN, based on ordered list of entries.
49 | # Entry keys:
50 | # * title Tooltip rendered on hovering over icon.
51 | # * icon Font Awesome icon id. `github` corresponds to `fa-github`.
52 | # * url Full URL of social profile.
53 | social_links:
54 | - title: Minima Theme repository at GitHub
55 | icon: github
56 | url: "https://github.com/jekyll/minima"
57 | - title: Jekyll at X (formerly Twitter)
58 | icon: x-twitter
59 | url: "https://x.com/jekyllrb"
60 |
--------------------------------------------------------------------------------
/_includes/comments.html:
--------------------------------------------------------------------------------
1 | {% if site.disqus.shortname -%}
2 |
14 |
17 | {% endif -%}
18 |
--------------------------------------------------------------------------------
/_includes/custom-head.html:
--------------------------------------------------------------------------------
1 | {% comment %}
2 | Placeholder to allow defining custom head, in principle, you can add anything here, e.g. favicons:
3 |
4 | 1. Head over to https://realfavicongenerator.net/ to add your own favicons.
5 | 2. Customize default _includes/custom-head.html in your source directory and insert the given code snippet.
6 | {% endcomment %}
7 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
33 |
--------------------------------------------------------------------------------
/_includes/google-analytics.html:
--------------------------------------------------------------------------------
1 |
2 |
9 |
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {%- seo -%}
6 |
7 | {%- feed_meta -%}
8 | {%- if jekyll.environment == 'production' and site.google_analytics -%}
9 | {%- include google-analytics.html -%}
10 | {%- endif -%}
11 |
12 | {%- include custom-head.html -%}
13 |
14 |
15 |
--------------------------------------------------------------------------------
/_includes/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
23 |
--------------------------------------------------------------------------------
/_includes/sub-footer.html:
--------------------------------------------------------------------------------
1 | {% comment %}
2 | Use this to insert markup before the closing body tag.
3 | For example, scripts that need to be executed after the document has finished loading.
4 | {% endcomment %}
5 |
--------------------------------------------------------------------------------
/_layouts/base.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {%- include head.html -%}
5 |
6 |
7 |
8 | {%- include header.html -%}
9 |
10 |
11 |
133 |
134 |
135 | {% endhighlight %}
136 |
--------------------------------------------------------------------------------
/_posts/2016-05-19-super-short-article.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Some articles are just so short that we have to make the footer stick"
4 | categories: misc
5 | ---
6 |
7 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
8 |
--------------------------------------------------------------------------------
/_posts/2016-05-20-my-example-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | author: John Doe
4 | comments: false
5 | ---
6 |
7 | Eos eu docendi tractatos sapientem, brute option menandri in vix, quando vivendo accommodare te ius. Nec melius fastidii constituam id, viderer theophrastus ad sit, hinc semper periculis cum id. Noluisse postulant assentior est in, no choro sadipscing repudiandae vix. Vis in euismod delenit dignissim. Ex quod nostrum sit, suas decore animal id ius, nobis solet detracto quo te.
8 |
9 | {% comment %}
10 | Might you have an include in your theme? Why not try it here!
11 | {% include my-themes-great-include.html %}
12 | {% endcomment %}
13 |
14 | No laudem altera adolescens has, volumus lucilius eum no. Eam ei nulla audiam efficiantur. Suas affert per no, ei tale nibh sea. Sea ne magna harum, in denique scriptorem sea, cetero alienum tibique ei eos. Labores persequeris referrentur eos ei.
15 |
--------------------------------------------------------------------------------
/_posts/2016-05-20-super-long-article.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Some articles are just so long they deserve a really long title to see if things will break well"
4 | categories: misc
5 | ---
6 |
7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit. Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
8 |
9 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit. Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
10 |
11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit. Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
12 |
--------------------------------------------------------------------------------
/_posts/2016-05-20-this-post-demonstrates-post-content-styles.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "This post demonstrates post content styles"
4 | categories: junk
5 | author:
6 | - Bart Simpson
7 | - Nelson Mandela Muntz
8 | meta: "Springfield"
9 | modified_date: 2016-05-27
10 | ---
11 |
12 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
13 |
14 | ## Some great heading (h2)
15 |
16 | Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu.
17 |
18 | Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
19 |
20 | ## Another great heading (h2)
21 |
22 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
23 |
24 | ### Some great subheading (h3)
25 |
26 | Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum.
27 |
28 | Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc.
29 |
30 | ### Some great subheading (h3)
31 |
32 | Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
33 |
34 | > This quote will *change* your life. It will reveal the secrets of the universe, and all the wonders of humanity. Don't misuse it.
35 |
36 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt.
37 |
38 | ### Some great subheading (h3)
39 |
40 | Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit. Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum.
41 |
42 | ```html
43 |
44 |
45 |
46 |
47 |