new: [skeleton] initial structure uploaded
commit
bbd4ab3cc3
|
@ -0,0 +1,15 @@
|
|||
*.gem
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
.bundle
|
||||
.DS_Store
|
||||
.jekyll-metadata
|
||||
.sass-cache
|
||||
_asset_bundler_cache
|
||||
_site
|
||||
codekit-config.json
|
||||
example/_site
|
||||
Gemfile.lock
|
||||
node_modules
|
||||
npm-debug.log*
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-2019 Michael Rose and contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -0,0 +1,268 @@
|
|||
# [Minimal Mistakes Jekyll theme](https://mmistakes.github.io/minimal-mistakes/)
|
||||
|
||||
[![LICENSE](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://raw.githubusercontent.com/mmistakes/minimal-mistakes/master/LICENSE)
|
||||
[![Jekyll](https://img.shields.io/badge/jekyll-%3E%3D%203.6-blue.svg)](https://jekyllrb.com/)
|
||||
[![Ruby gem](https://img.shields.io/gem/v/minimal-mistakes-jekyll.svg)](https://rubygems.org/gems/minimal-mistakes-jekyll)
|
||||
[![Tip Me via PayPal](https://img.shields.io/badge/PayPal-tip%20me-green.svg?logo=paypal)](https://www.paypal.me/mmistakes)
|
||||
|
||||
Minimal Mistakes is a flexible two-column Jekyll theme, perfect for building personal sites, blogs, and portfolios. As the name implies, styling is purposely minimalistic to be enhanced and customized by you :smile:.
|
||||
|
||||
:sparkles: See what's new in the [CHANGELOG](CHANGELOG.md).
|
||||
|
||||
**If you enjoy this theme, please consider [supporting me](https://www.paypal.me/mmistakes) to continue developing and maintaining it.**
|
||||
|
||||
[![Support via PayPal](https://cdn.rawgit.com/twolfson/paypal-github-button/1.0.0/dist/button.svg)](https://www.paypal.me/mmistakes)
|
||||
|
||||
**Note:** The theme uses the [jekyll-include-cache](https://github.com/benbalter/jekyll-include-cache) plugin which will need to be installed in your `Gemfile` and added to the `plugins` array of `_config.yml`. Otherwise you'll throw `Unknown tag 'include_cached'` errors at build.
|
||||
|
||||
[![Minimal Mistakes live preview][2]][1]
|
||||
|
||||
[1]: https://mmistakes.github.io/minimal-mistakes/
|
||||
[2]: screenshot.png (live preview)
|
||||
|
||||
![layout examples](screenshot-layouts.png)
|
||||
|
||||
## Notable features
|
||||
|
||||
- Bundled as a "theme gem" for easier installation/upgrading.
|
||||
- Compatible with GitHub Pages.
|
||||
- Support for Jekyll's built-in Sass/SCSS preprocessor.
|
||||
- Nine different skins (color variations).
|
||||
- Several responsive layout options (single, archive index, search, splash, and paginated home page).
|
||||
- Optimized for search engines with support for [Twitter Cards](https://dev.twitter.com/cards/overview) and [Open Graph](http://ogp.me/) data.
|
||||
- Optional [header images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#headers), [custom sidebars](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#sidebars), [table of contents](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#table-of-contents), [galleries](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery), related posts, [breadcrumb links](https://mmistakes.github.io/minimal-mistakes/docs/configuration/#breadcrumb-navigation-beta), [navigation lists](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list), and more.
|
||||
- Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), Google+, [Discourse](https://www.discourse.org/), static-based via [Staticman](https://staticman.net/), and [utterances](https://utteranc.es/)).
|
||||
- [Google Analytics](https://www.google.com/analytics/) support.
|
||||
- UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Chinese, Danish, Dutch, French (Français), German (Deutsch), Greek, Hindi (हिंदी), Hungarian, Indonesian, Italian (Italiano), Japanese, Korean, Malayalam, Nepali (Nepalese), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), and Vietnamese.
|
||||
|
||||
## Skins (color variations)
|
||||
|
||||
This theme comes in nine different skins (including the default one).
|
||||
|
||||
| `air` | `contrast` | `dark` |
|
||||
| --- | --- | --- |
|
||||
| ![air skin](https://mmistakes.github.io/minimal-mistakes/assets/images/air-skin-archive.png) | ![contrast skin](https://mmistakes.github.io/minimal-mistakes/assets/images/contrast-skin-archive.png) | ![dark skin](https://mmistakes.github.io/minimal-mistakes/assets/images/dark-skin-archive.png) |
|
||||
|
||||
| `dirt` | `mint` | `sunrise` |
|
||||
| --- | --- | --- |
|
||||
| ![dirt skin](https://mmistakes.github.io/minimal-mistakes/assets/images/dirt-skin-archive.png) | ![mint skin](https://mmistakes.github.io/minimal-mistakes/assets/images/mint-skin-archive.png) | ![sunrise skin](https://mmistakes.github.io/minimal-mistakes/assets/images/sunrise-skin-archive.png) |
|
||||
|
||||
| `aqua` | `neon` | `plum` |
|
||||
| --- | --- | --- |
|
||||
| ![aqua skin](https://mmistakes.github.io/minimal-mistakes/assets/images/aqua-skin-archive.png) | ![neon skin](https://mmistakes.github.io/minimal-mistakes/assets/images/neon-skin-archive.png) | ![plum skin](https://mmistakes.github.io/minimal-mistakes/assets/images/plum-skin-archive.png) |
|
||||
|
||||
## Demo pages
|
||||
|
||||
| Name | Description |
|
||||
| ------------------------------------------- | ----------------------------------------------------- |
|
||||
| [Post with Header Image][header-image-post] | A post with a large header image. |
|
||||
| [HTML Tags and Formatting Post][html-tags-post] | A variety of common markup showing how the theme styles them. |
|
||||
| [Syntax Highlighting Post][syntax-post] | Post displaying highlighted code. |
|
||||
| [Post with a Gallery][gallery-post] | A post showing several images wrapped in `<figure>` elements. |
|
||||
| [Sample Collection Page][sample-collection] | Single page from a collection. |
|
||||
| [Categories Archive][categories-archive] | Posts grouped by category. |
|
||||
| [Tags Archive][tags-archive] | Posts grouped by tag. |
|
||||
|
||||
Additional sample posts are available under [posts archive][year-archive] on the demo site. Source files for these (and the entire demo site) can be found in [`/docs`](docs).
|
||||
|
||||
[header-image-post]: https://mmistakes.github.io/minimal-mistakes/layout-header-image-text-readability/
|
||||
[gallery-post]: https://mmistakes.github.io/minimal-mistakes/post%20formats/post-gallery/
|
||||
[html-tags-post]: https://mmistakes.github.io/minimal-mistakes/markup/markup-html-tags-and-formatting/
|
||||
[syntax-post]: https://mmistakes.github.io/minimal-mistakes/markup-syntax-highlighting/
|
||||
[sample-collection]: https://mmistakes.github.io/minimal-mistakes/recipes/chocolate-chip-cookies/
|
||||
[categories-archive]: https://mmistakes.github.io/minimal-mistakes/categories/
|
||||
[tags-archive]: https://mmistakes.github.io/minimal-mistakes/tags/
|
||||
[year-archive]: https://mmistakes.github.io/minimal-mistakes/year-archive/
|
||||
|
||||
## Installation
|
||||
|
||||
There are three ways to install: as a [gem-based theme](https://jekyllrb.com/docs/themes/#understanding-gem-based-themes), as a [remote theme](https://blog.github.com/2017-11-29-use-any-theme-with-github-pages/) (GitHub Pages compatible), or forking/directly copying all of the theme files into your project.
|
||||
|
||||
### Gem-based method
|
||||
|
||||
With Gem-based themes, directories such as the `assets`, `_layouts`, `_includes`, and `_sass` are stored in the theme’s gem, hidden from your immediate view. Yet all of the necessary directories will be read and processed during Jekyll’s build process.
|
||||
|
||||
This allows for easier installation and updating as you don't have to manage any of the theme files. To install:
|
||||
|
||||
1. Add the following to your `Gemfile`:
|
||||
|
||||
```ruby
|
||||
gem "minimal-mistakes-jekyll"
|
||||
```
|
||||
|
||||
2. Fetch and update bundled gems by running the following [Bundler](http://bundler.io/) command:
|
||||
|
||||
```bash
|
||||
bundle
|
||||
```
|
||||
|
||||
3. Set the `theme` in your project's Jekyll `_config.yml` file:
|
||||
|
||||
```yaml
|
||||
theme: minimal-mistakes-jekyll
|
||||
```
|
||||
|
||||
To update the theme run `bundle update`.
|
||||
|
||||
### Remote theme method
|
||||
|
||||
Remote themes are similar to Gem-based themes, but do not require `Gemfile` changes or whitelisting making them ideal for sites hosted with GitHub Pages.
|
||||
|
||||
To install:
|
||||
|
||||
1. Create/replace the contents of your `Gemfile` with the following:
|
||||
|
||||
```ruby
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "github-pages", group: :jekyll_plugins
|
||||
```
|
||||
|
||||
2. Add `jekyll-include-cache` to the `plugins` array of your `_config.yml`.
|
||||
|
||||
3. Fetch and update bundled gems by running the following [Bundler](http://bundler.io/) command:
|
||||
|
||||
```bash
|
||||
bundle
|
||||
```
|
||||
|
||||
4. Add `remote_theme: "mmistakes/minimal-mistakes@4.16.4"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
|
||||
|
||||
**Looking for an example?** Fork the [Minimal Mistakes remote theme starter](https://github.com/mmistakes/mm-github-pages-starter) for the quickest method of getting a GitHub Pages hosted site up and running. Replace sample content with your own and configure as needed.
|
||||
|
||||
## Usage
|
||||
|
||||
For detailed instructions on how to configure, customize, add/migrate content, and more read the [theme's documentation](https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/).
|
||||
|
||||
---
|
||||
|
||||
## Contributing
|
||||
|
||||
Having trouble working with the theme? Found a typo in the documentation? Interested in adding a feature or [fixing a bug](https://github.com/mmistakes/minimal-mistakes/issues)? Then by all means [submit an issue](https://github.com/mmistakes/minimal-mistakes/issues/new) or [pull request](https://help.github.com/articles/using-pull-requests/). If this is your first pull request, it may be helpful to read up on the [GitHub Flow](https://guides.github.com/introduction/flow/) first.
|
||||
|
||||
Minimal Mistakes has been designed as a base for you to customize and fit your site's unique needs. Please keep this in mind when requesting features and/or submitting pull requests. If it's not something that most people will use, I probably won't consider it. When in doubt ask.
|
||||
|
||||
This goes for author sidebar links and "share button" additions -- I have no intention of merging in every possibly option, the essentials are there to get you started :smile:.
|
||||
|
||||
### Pull Requests
|
||||
|
||||
When submitting a pull request:
|
||||
|
||||
1. Clone the repo.
|
||||
2. Create a branch off of `master` and give it a meaningful name (e.g. `my-awesome-new-feature`).
|
||||
3. Open a pull request on GitHub and describe the feature or fix.
|
||||
|
||||
Theme documentation and demo pages can be found in the [`/docs`](docs) if submitting improvements, typo corrections, etc.
|
||||
|
||||
## Development
|
||||
|
||||
To set up your environment to develop this theme, run `bundle install`.
|
||||
|
||||
To test the theme, run `bundle exec rake preview` and open your browser at `http://localhost:4000/test/`. This starts a Jekyll server using content in the `test/` directory. As modifications are made to the theme and test site, it will regenerate and you should see the changes in the browser after a refresh.
|
||||
|
||||
---
|
||||
|
||||
## Credits
|
||||
|
||||
### Creator
|
||||
|
||||
**Michael Rose**
|
||||
|
||||
- <https://mademistakes.com>
|
||||
- <https://twitter.com/mmistakes>
|
||||
- <https://github.com/mmistakes>
|
||||
|
||||
### Icons + Demo Images:
|
||||
|
||||
- [The Noun Project](https://thenounproject.com) -- Garrett Knoll, Arthur Shlain, and [tracy tam](https://thenounproject.com/tracytam)
|
||||
- [Font Awesome](http://fontawesome.io/)
|
||||
- [Unsplash](https://unsplash.com/)
|
||||
|
||||
### Other:
|
||||
|
||||
- [Jekyll](http://jekyllrb.com/)
|
||||
- [jQuery](http://jquery.com/)
|
||||
- [Susy](http://susy.oddbird.net/)
|
||||
- [Breakpoint](http://breakpoint-sass.com/)
|
||||
- [Magnific Popup](http://dimsemenov.com/plugins/magnific-popup/)
|
||||
- [FitVids.JS](http://fitvidsjs.com/)
|
||||
- [GreedyNav.js](https://github.com/lukejacksonn/GreedyNav)
|
||||
- [jQuery Smooth Scroll](https://github.com/kswedberg/jquery-smooth-scroll)
|
||||
- [jQuery throttle / debounce](http://benalman.com/projects/jquery-throttle-debounce-plugin/)
|
||||
- [Lunr](http://lunrjs.com)
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-2019 Michael Rose and contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
Minimal Mistakes incorporates icons from [The Noun Project](https://thenounproject.com/)
|
||||
creators Garrett Knoll, Arthur Shlain, and tracy tam.
|
||||
Icons are distributed under Creative Commons Attribution 3.0 United States (CC BY 3.0 US).
|
||||
|
||||
Minimal Mistakes incorporates [Font Awesome](http://fontawesome.io/),
|
||||
Copyright (c) 2017 Dave Gandy.
|
||||
Font Awesome is distributed under the terms of the [SIL OFL 1.1](http://scripts.sil.org/OFL)
|
||||
and [MIT License](http://opensource.org/licenses/MIT).
|
||||
|
||||
Minimal Mistakes incorporates photographs from [Unsplash](https://unsplash.com).
|
||||
|
||||
Minimal Mistakes incorporates [Susy](http://susy.oddbird.net/),
|
||||
Copyright (c) 2017, Miriam Eric Suzanne.
|
||||
Susy is distributed under the terms of the [BSD 3-clause "New" or "Revised" License](https://opensource.org/licenses/BSD-3-Clause).
|
||||
|
||||
Minimal Mistakes incorporates [Breakpoint](http://breakpoint-sass.com/).
|
||||
Breakpoint is distributed under the terms of the [MIT/GPL Licenses](http://opensource.org/licenses/MIT).
|
||||
|
||||
Minimal Mistakes incorporates [FitVids.js](https://github.com/davatron5000/FitVids.js/),
|
||||
Copyright (c) 2013 Dave Rubert and Chris Coyier.
|
||||
FitVids is distributed under the terms of the [WTFPL License](http://sam.zoy.org/wtfpl/).
|
||||
|
||||
Minimal Mistakes incorporates [Magnific Popup](http://dimsemenov.com/plugins/magnific-popup/),
|
||||
Copyright (c) 2014-2016 Dmitry Semenov, http://dimsemenov.com.
|
||||
Magnific Popup is distributed under the terms of the MIT License.
|
||||
|
||||
Minimal Mistakes incorporates [jQuery Smooth Scroll](https://github.com/kswedberg/jquery-smooth-scroll),
|
||||
Copyright (c) 2017 Karl Swedberg.
|
||||
jQuery Smooth Scroll is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
||||
|
||||
Minimal Mistakes incorporates [jQuery throttle / debounce](http://benalman.com/projects/jquery-throttle-debounce-plugin/),
|
||||
Copyright (c) 2010 "Cowboy" Ben Alman.
|
||||
jQuery throttle / debounce is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
||||
|
||||
Minimal Mistakes incorporates [GreedyNav.js](https://github.com/lukejacksonn/GreedyNav),
|
||||
Copyright (c) 2015 Luke Jackson.
|
||||
GreedyNav.js is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
||||
|
||||
Minimal Mistakes incorporates [Jekyll Group-By-Array](https://github.com/mushishi78/jekyll-group-by-array),
|
||||
Copyright (c) 2015 Max White <mushishi78@gmail.com>.
|
||||
Jekyll Group-By-Array is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
||||
|
||||
Minimal Mistakes incorporates [@allejo's Pure Liquid Jekyll Table of Contents](https://allejo.io/blog/a-jekyll-toc-in-liquid-only/),
|
||||
Copyright (c) 2017 Vladimir Jimenez.
|
||||
Pure Liquid Jekyll Table of Contents is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
||||
|
||||
Minimal Mistakes incorporates [Lunr](http://lunrjs.com),
|
||||
Copyright (c) 2018 Oliver Nightingale.
|
||||
Lunr is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
|
@ -0,0 +1,76 @@
|
|||
require "bundler/gem_tasks"
|
||||
require "jekyll"
|
||||
require "listen"
|
||||
|
||||
def listen_ignore_paths(base, options)
|
||||
[
|
||||
/_config\.ya?ml/,
|
||||
/_site/,
|
||||
/\.jekyll-metadata/
|
||||
]
|
||||
end
|
||||
|
||||
def listen_handler(base, options)
|
||||
site = Jekyll::Site.new(options)
|
||||
Jekyll::Command.process_site(site)
|
||||
proc do |modified, added, removed|
|
||||
t = Time.now
|
||||
c = modified + added + removed
|
||||
n = c.length
|
||||
relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s }
|
||||
print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ")
|
||||
begin
|
||||
Jekyll::Command.process_site(site)
|
||||
puts "regenerated in #{Time.now - t} seconds."
|
||||
rescue => e
|
||||
puts "error:"
|
||||
Jekyll.logger.warn "Error:", e.message
|
||||
Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
task :preview do
|
||||
base = Pathname.new('.').expand_path
|
||||
options = {
|
||||
"source" => base.join('test').to_s,
|
||||
"destination" => base.join('test/_site').to_s,
|
||||
"force_polling" => false,
|
||||
"serving" => true,
|
||||
"theme" => "minimal-mistakes-jekyll"
|
||||
}
|
||||
|
||||
options = Jekyll.configuration(options)
|
||||
|
||||
ENV["LISTEN_GEM_DEBUGGING"] = "1"
|
||||
listener = Listen.to(
|
||||
base.join("_data"),
|
||||
base.join("_includes"),
|
||||
base.join("_layouts"),
|
||||
base.join("_sass"),
|
||||
base.join("assets"),
|
||||
options["source"],
|
||||
:ignore => listen_ignore_paths(base, options),
|
||||
:force_polling => options['force_polling'],
|
||||
&(listen_handler(base, options))
|
||||
)
|
||||
|
||||
begin
|
||||
listener.start
|
||||
Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'"
|
||||
|
||||
unless options['serving']
|
||||
trap("INT") do
|
||||
listener.stop
|
||||
puts " Halting auto-regeneration."
|
||||
exit 0
|
||||
end
|
||||
|
||||
loop { sleep 1000 }
|
||||
end
|
||||
rescue ThreadError
|
||||
# You pressed Ctrl-C, oh my!
|
||||
end
|
||||
|
||||
Jekyll::Commands::Serve.process(options)
|
||||
end
|
|
@ -0,0 +1,295 @@
|
|||
# Welcome to Jekyll!
|
||||
#
|
||||
# This config file is meant for settings that affect your entire site, values
|
||||
# which you are expected to set up once and rarely need to edit after that.
|
||||
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||
# `jekyll serve`. If you change this file, please restart the server process.
|
||||
|
||||
# Theme Settings
|
||||
#
|
||||
# Review documentation to determine if you should use `theme` or `remote_theme`
|
||||
# https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/#installing-the-theme
|
||||
|
||||
# theme : "minimal-mistakes-jekyll"
|
||||
# remote_theme : "mmistakes/minimal-mistakes"
|
||||
minimal_mistakes_skin : "contrast" # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"
|
||||
|
||||
# Site Settings
|
||||
locale : "en-US"
|
||||
title : "MISP Standard"
|
||||
title_separator : "-"
|
||||
name : "MISP Standard"
|
||||
description : "The collaborative intelligence standard powering intelligence and information exchange, sharing and modeling."
|
||||
url : # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
|
||||
baseurl : # the subpath of your site, e.g. "/blog"
|
||||
repository : # GitHub username/repo-name e.g. "mmistakes/minimal-mistakes"
|
||||
teaser : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
|
||||
logo : "/assets/images/misp-standard.png" # path of logo image to display in the masthead, e.g. "/assets/images/88x88.png"
|
||||
masthead_title : # overrides the website title displayed in the masthead, use " " for no title
|
||||
# breadcrumbs : false # true, false (default)
|
||||
words_per_minute : 200
|
||||
comments:
|
||||
provider : # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "custom"
|
||||
disqus:
|
||||
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
|
||||
discourse:
|
||||
server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
|
||||
facebook:
|
||||
# https://developers.facebook.com/docs/plugins/comments
|
||||
appid :
|
||||
num_posts : # 5 (default)
|
||||
colorscheme : # "light" (default), "dark"
|
||||
utterances:
|
||||
theme : # "github-light" (default), "github-dark"
|
||||
issue_term : # "pathname" (default)
|
||||
staticman:
|
||||
allowedFields : # ['name', 'email', 'url', 'message']
|
||||
branch : # "master"
|
||||
commitMessage : # "New comment by {fields.name}"
|
||||
filename : # comment-{@timestamp}
|
||||
format : # "yml"
|
||||
moderation : # true
|
||||
path : # "/_data/comments/{options.slug}" (default)
|
||||
requiredFields : # ['name', 'email', 'message']
|
||||
transforms:
|
||||
email : # "md5"
|
||||
generatedFields:
|
||||
date:
|
||||
type : # "date"
|
||||
options:
|
||||
format : # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
|
||||
endpoint : # URL of your own deployment with trailing slash, will fallback to the public instance
|
||||
reCaptcha:
|
||||
siteKey :
|
||||
secret :
|
||||
atom_feed:
|
||||
path : # blank (default) uses feed.xml
|
||||
search : # true, false (default)
|
||||
search_full_content : # true, false (default)
|
||||
search_provider : # lunr (default), algolia, google
|
||||
algolia:
|
||||
application_id : # YOUR_APPLICATION_ID
|
||||
index_name : # YOUR_INDEX_NAME
|
||||
search_only_api_key : # YOUR_SEARCH_ONLY_API_KEY
|
||||
powered_by : # true (default), false
|
||||
google:
|
||||
search_engine_id : # YOUR_SEARCH_ENGINE_ID
|
||||
instant_search : # false (default), true
|
||||
# SEO Related
|
||||
google_site_verification :
|
||||
bing_site_verification :
|
||||
yandex_site_verification :
|
||||
naver_site_verification :
|
||||
|
||||
# Social Sharing
|
||||
twitter:
|
||||
username :
|
||||
facebook:
|
||||
username :
|
||||
app_id :
|
||||
publisher :
|
||||
og_image : # Open Graph/Twitter default site image
|
||||
# For specifying social profiles
|
||||
# - https://developers.google.com/structured-data/customize/social-profiles
|
||||
social:
|
||||
type : # Person or Organization (defaults to Person)
|
||||
name : # If the user or organization name differs from the site's name
|
||||
links: # An array of links to social media profiles
|
||||
|
||||
# Analytics
|
||||
analytics:
|
||||
provider : false # false (default), "google", "google-universal", "custom"
|
||||
google:
|
||||
tracking_id :
|
||||
anonymize_ip : # true, false (default)
|
||||
|
||||
|
||||
# Site Author
|
||||
author:
|
||||
name : "MISP Standard"
|
||||
avatar : # path of avatar image, e.g. "/assets/images/bio-photo.jpg"
|
||||
bio : ""
|
||||
location : "International"
|
||||
email :
|
||||
links:
|
||||
- label: "Email"
|
||||
icon: "fas fa-fw fa-envelope-square"
|
||||
# url: mailto:your.name@email.com
|
||||
- label: "Website"
|
||||
icon: "fas fa-fw fa-link"
|
||||
# url: "https://your-website.com"
|
||||
- label: "Twitter"
|
||||
icon: "fab fa-fw fa-twitter-square"
|
||||
url: "https://twitter.com/MISPProject"
|
||||
- label: "Facebook"
|
||||
icon: "fab fa-fw fa-facebook-square"
|
||||
# url: "https://facebook.com/"
|
||||
- label: "GitHub"
|
||||
icon: "fab fa-fw fa-github"
|
||||
# url: "https://github.com/"
|
||||
- label: "Instagram"
|
||||
icon: "fab fa-fw fa-instagram"
|
||||
# url: "https://instagram.com/"
|
||||
|
||||
# Site Footer
|
||||
footer:
|
||||
links:
|
||||
- label: "Twitter"
|
||||
icon: "fab fa-fw fa-twitter-square"
|
||||
url: "https://twitter.com/MISPProject"
|
||||
- label: "Facebook"
|
||||
icon: "fab fa-fw fa-facebook-square"
|
||||
# url:
|
||||
- label: "GitHub"
|
||||
icon: "fab fa-fw fa-github"
|
||||
url: "https://www.github.com/MISP"
|
||||
- label: "GitLab"
|
||||
icon: "fab fa-fw fa-gitlab"
|
||||
# url:
|
||||
- label: "Bitbucket"
|
||||
icon: "fab fa-fw fa-bitbucket"
|
||||
# url:
|
||||
- label: "Instagram"
|
||||
icon: "fab fa-fw fa-instagram"
|
||||
# url:
|
||||
|
||||
|
||||
# Reading Files
|
||||
include:
|
||||
- .htaccess
|
||||
- _pages
|
||||
exclude:
|
||||
- "*.sublime-project"
|
||||
- "*.sublime-workspace"
|
||||
- vendor
|
||||
- .asset-cache
|
||||
- .bundle
|
||||
- .jekyll-assets-cache
|
||||
- .sass-cache
|
||||
- assets/js/plugins
|
||||
- assets/js/_main.js
|
||||
- assets/js/vendor
|
||||
- Capfile
|
||||
- CHANGELOG
|
||||
- config
|
||||
- Gemfile
|
||||
- Gruntfile.js
|
||||
- gulpfile.js
|
||||
- LICENSE
|
||||
- log
|
||||
- node_modules
|
||||
- package.json
|
||||
- Rakefile
|
||||
- README
|
||||
- tmp
|
||||
- /docs # ignore Minimal Mistakes /docs
|
||||
- /test # ignore Minimal Mistakes /test
|
||||
keep_files:
|
||||
- .git
|
||||
- .svn
|
||||
encoding: "utf-8"
|
||||
markdown_ext: "markdown,mkdown,mkdn,mkd,md"
|
||||
|
||||
|
||||
# Conversion
|
||||
markdown: kramdown
|
||||
highlighter: rouge
|
||||
lsi: false
|
||||
excerpt_separator: "\n\n"
|
||||
incremental: false
|
||||
|
||||
|
||||
# Markdown Processing
|
||||
kramdown:
|
||||
input: GFM
|
||||
hard_wrap: false
|
||||
auto_ids: true
|
||||
footnote_nr: 1
|
||||
entity_output: as_char
|
||||
toc_levels: 1..6
|
||||
smart_quotes: lsquo,rsquo,ldquo,rdquo
|
||||
enable_coderay: false
|
||||
|
||||
|
||||
# Sass/SCSS
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
|
||||
|
||||
|
||||
# Outputting
|
||||
permalink: /:categories/:title/
|
||||
paginate: 5 # amount of posts to show
|
||||
paginate_path: /page:num/
|
||||
timezone: # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
|
||||
|
||||
# Plugins (previously gems:)
|
||||
plugins:
|
||||
- jekyll-paginate
|
||||
- jekyll-sitemap
|
||||
- jekyll-gist
|
||||
- jekyll-feed
|
||||
- jemoji
|
||||
- jekyll-include-cache
|
||||
|
||||
# mimic GitHub Pages with --safe
|
||||
whitelist:
|
||||
- jekyll-paginate
|
||||
- jekyll-sitemap
|
||||
- jekyll-gist
|
||||
- jekyll-feed
|
||||
- jemoji
|
||||
- jekyll-include-cache
|
||||
|
||||
|
||||
# Archives
|
||||
# Type
|
||||
# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
|
||||
# - Jekyll Archives plugin archive pages ~> type: jekyll-archives
|
||||
# Path (examples)
|
||||
# - Archive page should exist at path when using Liquid method or you can
|
||||
# expect broken links (especially with breadcrumbs enabled)
|
||||
# - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
|
||||
# - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
|
||||
# - <base_path/my-awesome-category/index.html ~> path: /
|
||||
category_archive:
|
||||
type: liquid
|
||||
path: /categories/
|
||||
tag_archive:
|
||||
type: liquid
|
||||
path: /tags/
|
||||
# https://github.com/jekyll/jekyll-archives
|
||||
# jekyll-archives:
|
||||
# enabled:
|
||||
# - categories
|
||||
# - tags
|
||||
# layouts:
|
||||
# category: archive-taxonomy
|
||||
# tag: archive-taxonomy
|
||||
# permalinks:
|
||||
# category: /categories/:name/
|
||||
# tag: /tags/:name/
|
||||
|
||||
|
||||
# HTML Compression
|
||||
# - http://jch.penibelst.de/
|
||||
compress_html:
|
||||
clippings: all
|
||||
ignore:
|
||||
envs: development
|
||||
|
||||
|
||||
# Defaults
|
||||
defaults:
|
||||
# _posts
|
||||
- scope:
|
||||
path: ""
|
||||
type: posts
|
||||
values:
|
||||
layout: single
|
||||
author_profile: true
|
||||
read_time: true
|
||||
comments: # true
|
||||
share: true
|
||||
related: true
|
|
@ -0,0 +1,12 @@
|
|||
# main links
|
||||
main:
|
||||
- title: "About"
|
||||
url: /about/
|
||||
- title: "News"
|
||||
url: /post/
|
||||
# - title: "Sample Posts"
|
||||
# url: /year-archive/
|
||||
# - title: "Sample Collections"
|
||||
# url: /collection-archive/
|
||||
# - title: "Sitemap"
|
||||
# url: /sitemap/
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,3 @@
|
|||
<!-- start custom analytics snippet -->
|
||||
|
||||
<!-- end custom analytics snippet -->
|
|
@ -0,0 +1,9 @@
|
|||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.analytics.google.tracking_id }}"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', '{{ site.analytics.google.tracking_id }}', { 'anonymize_ip': {{ site.analytics.google.anonymize_ip | default: false }}});
|
||||
</script>
|
|
@ -0,0 +1,7 @@
|
|||
<script>
|
||||
window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;
|
||||
ga('create','{{ site.analytics.google.tracking_id }}','auto');
|
||||
ga('set', 'anonymizeIp', {{ site.analytics.google.anonymize_ip | default: false }});
|
||||
ga('send','pageview')
|
||||
</script>
|
||||
<script src="https://www.google-analytics.com/analytics.js" async></script>
|
|
@ -0,0 +1,14 @@
|
|||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']);
|
||||
{% if site.analytics.google.anonymize_ip == true %}
|
||||
_gaq.push(['_gat._anonymizeIp']);
|
||||
{% endif %}
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
|
@ -0,0 +1,14 @@
|
|||
{% if jekyll.environment == 'production' and site.analytics.provider and page.analytics != false %}
|
||||
|
||||
{% case site.analytics.provider %}
|
||||
{% when "google" %}
|
||||
{% include /analytics-providers/google.html %}
|
||||
{% when "google-universal" %}
|
||||
{% include /analytics-providers/google-universal.html %}
|
||||
{% when "google-gtag" %}
|
||||
{% include /analytics-providers/google-gtag.html %}
|
||||
{% when "custom" %}
|
||||
{% include /analytics-providers/custom.html %}
|
||||
{% endcase %}
|
||||
|
||||
{% endif %}
|
|
@ -0,0 +1,38 @@
|
|||
{% if post.header.teaser %}
|
||||
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
|
||||
{% else %}
|
||||
{% assign teaser = site.teaser %}
|
||||
{% endif %}
|
||||
|
||||
{% if post.id %}
|
||||
{% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
|
||||
{% else %}
|
||||
{% assign title = post.title %}
|
||||
{% endif %}
|
||||
|
||||
<div class="{{ include.type | default: "list" }}__item">
|
||||
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
||||
{% if include.type == "grid" and teaser %}
|
||||
<div class="archive__item-teaser">
|
||||
<img src=
|
||||
{% if teaser contains "://" %}
|
||||
"{{ teaser }}"
|
||||
{% else %}
|
||||
"{{ teaser | relative_url }}"
|
||||
{% endif %}
|
||||
alt="">
|
||||
</div>
|
||||
{% endif %}
|
||||
<h2 class="archive__item-title" itemprop="headline">
|
||||
{% if post.link %}
|
||||
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ post.url | relative_url }}" rel="permalink"><i class="fas fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
|
||||
{% else %}
|
||||
<a href="{{ post.url | relative_url }}" rel="permalink">{{ title }}</a>
|
||||
{% endif %}
|
||||
</h2>
|
||||
{% if post.read_time %}
|
||||
<p class="page__meta"><i class="far fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
|
||||
{% endif %}
|
||||
{% if post.excerpt %}<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify | strip_html | truncate: 160 }}</p>{% endif %}
|
||||
</article>
|
||||
</div>
|
|
@ -0,0 +1,7 @@
|
|||
<!--
|
||||
<li>
|
||||
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fas fa-fw" aria-hidden="true"></i> Custom Social Profile Link
|
||||
</a>
|
||||
</li>
|
||||
-->
|
|
@ -0,0 +1,263 @@
|
|||
{% assign author = page.author | default: page.authors[0] | default: site.author %}
|
||||
{% assign author = site.data.authors[author] | default: author %}
|
||||
|
||||
<div itemscope itemtype="https://schema.org/Person">
|
||||
|
||||
{% if author.avatar %}
|
||||
<div class="author__avatar">
|
||||
{% if author.avatar contains "://" %}
|
||||
{% assign author_src = author.avatar %}
|
||||
{% else %}
|
||||
{% assign author_src = author.avatar | relative_url %}
|
||||
{% endif %}
|
||||
|
||||
{% if author.home %}
|
||||
{% if author.home contains "://" %}
|
||||
{% assign author_link = author.home %}
|
||||
{% else %}
|
||||
{% assign author_link = author.home | relative_url %}
|
||||
{% endif %}
|
||||
<a href="{{ author_link }}">
|
||||
<img src="{{ author_src }}" alt="{{ author.name }}" itemprop="image">
|
||||
</a>
|
||||
{% else %}
|
||||
<img src="{{ author_src }}" alt="{{ author.name }}" itemprop="image">
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="author__content">
|
||||
{% if author.home %}
|
||||
<a href="{{ author_link }}"><h3 class="author__name" itemprop="name">{{ author.name }}</h3></a>
|
||||
{% else %}
|
||||
<h3 class="author__name" itemprop="name">{{ author.name }}</h3>
|
||||
{% endif %}
|
||||
{% if author.bio %}
|
||||
<p class="author__bio" itemprop="description">
|
||||
{{ author.bio }}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="author__urls-wrapper">
|
||||
<button class="btn btn--inverse">{{ site.data.ui-text[site.locale].follow_label | remove: ":" | default: "Follow" }}</button>
|
||||
<ul class="author__urls social-icons">
|
||||
{% if author.location %}
|
||||
<li itemprop="homeLocation" itemscope itemtype="https://schema.org/Place">
|
||||
<i class="fas fa-fw fa-map-marker-alt" aria-hidden="true"></i> <span itemprop="name">{{ author.location }}</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.links %}
|
||||
{% for link in author.links %}
|
||||
{% if link.label and link.url %}
|
||||
<li><a href="{{ link.url }}" rel="nofollow noopener noreferrer"><i class="{{ link.icon | default: 'fas fa-link' }}" aria-hidden="true"></i> {{ link.label }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if author.uri %}
|
||||
<li>
|
||||
<a href="{{ author.uri }}" itemprop="url">
|
||||
<i class="fas fa-fw fa-link" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].website_label | default: "Website" }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.email %}
|
||||
<li>
|
||||
<a href="mailto:{{ author.email }}">
|
||||
<meta itemprop="email" content="{{ author.email }}" />
|
||||
<i class="fas fa-fw fa-envelope-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].email_label | default: "Email" }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.keybase %}
|
||||
<li>
|
||||
<a href="https://keybase.io/{{ author.keybase }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fas fa-fw fa-key" aria-hidden="true"></i> Keybase
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.twitter %}
|
||||
<li>
|
||||
<a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.facebook %}
|
||||
<li>
|
||||
<a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.linkedin %}
|
||||
<li>
|
||||
<a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-linkedin" aria-hidden="true"></i> LinkedIn
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.xing %}
|
||||
<li>
|
||||
<a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-xing-square" aria-hidden="true"></i> XING
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.instagram %}
|
||||
<li>
|
||||
<a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-instagram" aria-hidden="true"></i> Instagram
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.tumblr %}
|
||||
<li>
|
||||
<a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-tumblr-square" aria-hidden="true"></i> Tumblr
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.bitbucket %}
|
||||
<li>
|
||||
<a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.github %}
|
||||
<li>
|
||||
<a href="https://github.com/{{ author.github }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-github" aria-hidden="true"></i> GitHub
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.gitlab %}
|
||||
<li>
|
||||
<a href="https://gitlab.com/{{ author.gitlab }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-gitlab" aria-hidden="true"></i> GitLab
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.stackoverflow %}
|
||||
<li>
|
||||
<a href="https://stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-stack-overflow" aria-hidden="true"></i> Stack Overflow
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.lastfm %}
|
||||
<li>
|
||||
<a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-lastfm-square" aria-hidden="true"></i> Last.fm
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.dribbble %}
|
||||
<li>
|
||||
<a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-dribbble" aria-hidden="true"></i> Dribbble
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.pinterest %}
|
||||
<li>
|
||||
<a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-pinterest" aria-hidden="true"></i> Pinterest
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.foursquare %}
|
||||
<li>
|
||||
<a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-foursquare" aria-hidden="true"></i> Foursquare
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.steam %}
|
||||
<li>
|
||||
<a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-steam" aria-hidden="true"></i> Steam
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.youtube %}
|
||||
{% if author.youtube contains "://" %}
|
||||
<li>
|
||||
<a href="{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i> YouTube
|
||||
</a>
|
||||
</li>
|
||||
{% else author.youtube %}
|
||||
<li>
|
||||
<a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i> YouTube
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if author.soundcloud %}
|
||||
<li>
|
||||
<a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-soundcloud" aria-hidden="true"></i> SoundCloud
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.weibo %}
|
||||
<li>
|
||||
<a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-weibo" aria-hidden="true"></i> Weibo
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.flickr %}
|
||||
<li>
|
||||
<a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-flickr" aria-hidden="true"></i> Flickr
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.codepen %}
|
||||
<li>
|
||||
<a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-codepen" aria-hidden="true"></i> CodePen
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.vine %}
|
||||
<li>
|
||||
<a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fab fa-fw fa-vine" aria-hidden="true"></i> Vine
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% include author-profile-custom-links.html %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,39 @@
|
|||
{% case site.category_archive.type %}
|
||||
{% when "liquid" %}
|
||||
{% assign path_type = "#" %}
|
||||
{% when "jekyll-archives" %}
|
||||
{% assign path_type = nil %}
|
||||
{% endcase %}
|
||||
|
||||
{% if page.collection != 'posts' %}
|
||||
{% assign path_type = nil %}
|
||||
{% assign crumb_path = '/' %}
|
||||
{% else %}
|
||||
{% assign crumb_path = site.category_archive.path %}
|
||||
{% endif %}
|
||||
|
||||
<nav class="breadcrumbs">
|
||||
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
|
||||
{% assign crumbs = page.url | split: '/' %}
|
||||
{% assign i = 1 %}
|
||||
{% for crumb in crumbs offset: 1 %}
|
||||
{% if forloop.first %}
|
||||
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<a href="{{ site.url }}{{ site.baseurl }}/" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
|
||||
<meta itemprop="position" content="{{ i }}" />
|
||||
</li>
|
||||
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
|
||||
{% endif %}
|
||||
{% if forloop.last %}
|
||||
<li class="current">{{ page.title }}</li>
|
||||
{% else %}
|
||||
{% assign i = i | plus: 1 %}
|
||||
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<a href="{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path | relative_url }}" itemprop="item"><span itemprop="name">{{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}</span></a>
|
||||
<meta itemprop="position" content="{{ i }}" />
|
||||
</li>
|
||||
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</nav>
|
|
@ -0,0 +1,3 @@
|
|||
<!--[if lt IE 9]>
|
||||
<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="https://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
|
||||
<![endif]-->
|
|
@ -0,0 +1,26 @@
|
|||
{% case site.category_archive.type %}
|
||||
{% when "liquid" %}
|
||||
{% assign path_type = "#" %}
|
||||
{% when "jekyll-archives" %}
|
||||
{% assign path_type = nil %}
|
||||
{% endcase %}
|
||||
|
||||
{% if site.category_archive.path %}
|
||||
{% comment %}
|
||||
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
|
||||
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
|
||||
{% endcomment %}
|
||||
{% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}|{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
|
||||
{% assign category_hashes = page_categories | split: ',' | sort %}
|
||||
|
||||
<p class="page__taxonomy">
|
||||
<strong><i class="fas fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong>
|
||||
<span itemprop="keywords">
|
||||
{% for hash in category_hashes %}
|
||||
{% assign keyValue = hash | split: '|' %}
|
||||
{% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
|
||||
<a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | relative_url }}" class="page__taxonomy-item" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
||||
{% endfor %}
|
||||
</span>
|
||||
</p>
|
||||
{% endif %}
|
|
@ -0,0 +1,22 @@
|
|||
<article id="comment{{ include.index }}" class="js-comment comment" itemprop="comment" itemscope itemtype="https://schema.org/Comment">
|
||||
<div class="comment__avatar-wrapper">
|
||||
<img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80" alt="{{ include.name }}">
|
||||
</div>
|
||||
<div class="comment__content-wrapper">
|
||||
<h3 class="comment__author" itemprop="author" itemscope itemtype="https://schema.org/Person">
|
||||
{% unless include.url == blank %}
|
||||
<span itemprop="name"><a rel="external nofollow" itemprop="url" href="{{ include.url }}">{{ include.name }}</a></span>
|
||||
{% else %}
|
||||
<span itemprop="name">{{ include.name }}</span>
|
||||
{% endunless %}
|
||||
</h3>
|
||||
<p class="comment__date">
|
||||
{% if include.date %}
|
||||
{% if include.index %}<a href="#comment{{ include.index }}" itemprop="url">{% endif %}
|
||||
<time datetime="{{ include.date | date_to_xmlschema }}" itemprop="datePublished">{{ include.date | date: "%B %d, %Y at %I:%M %p" }}</time>
|
||||
{% if include.index %}</a>{% endif %}
|
||||
{% endif %}
|
||||
</p>
|
||||
<div itemprop="text">{{ include.message | markdownify }}</div>
|
||||
</div>
|
||||
</article>
|
|
@ -0,0 +1,3 @@
|
|||
<!-- start custom comments snippet -->
|
||||
|
||||
<!-- end custom comments snippet -->
|
|
@ -0,0 +1,13 @@
|
|||
{% if site.comments.discourse.server %}
|
||||
{% capture canonical %}{% if site.permalink contains '.html' %}{{ page.url | absolute_url }}{% else %}{{ page.url | absolute_url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
|
||||
<script type="text/javascript">
|
||||
DiscourseEmbed = { discourseUrl: '//{{ site.comments.discourse.server }}/',
|
||||
discourseEmbedUrl: '{{ canonical }}' };
|
||||
(function () {
|
||||
var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
|
||||
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
|
||||
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
|
||||
})();
|
||||
</script>
|
||||
<noscript>Please enable JavaScript to view the comments powered by <a href="https://www.discourse.org/">Discourse.</a></noscript>
|
||||
{% endif %}
|
|
@ -0,0 +1,15 @@
|
|||
{% if site.comments.disqus.shortname %}
|
||||
<script>
|
||||
var disqus_config = function () {
|
||||
this.page.url = "{{ page.url | absolute_url }}"; // Replace PAGE_URL with your page's canonical URL variable
|
||||
this.page.identifier = "{{ page.id }}"; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
|
||||
};
|
||||
(function() { // DON'T EDIT BELOW THIS LINE
|
||||
var d = document, s = d.createElement('script');
|
||||
s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
|
||||
s.setAttribute('data-timestamp', +new Date());
|
||||
(d.head || d.body).appendChild(s);
|
||||
})();
|
||||
</script>
|
||||
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
||||
{% endif %}
|
|
@ -0,0 +1,8 @@
|
|||
<div id="fb-root"></div>
|
||||
<script>(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5{% if site.comments.facebook.appid %}&appId={{ site.comments.facebook.appid }}{% endif %}";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));</script>
|
|
@ -0,0 +1,18 @@
|
|||
{% if site.comments.provider and page.comments %}
|
||||
{% case site.comments.provider %}
|
||||
{% when "disqus" %}
|
||||
{% include /comments-providers/disqus.html %}
|
||||
{% when "discourse" %}
|
||||
{% include /comments-providers/discourse.html %}
|
||||
{% when "facebook" %}
|
||||
{% include /comments-providers/facebook.html %}
|
||||
{% when "staticman" %}
|
||||
{% include /comments-providers/staticman.html %}
|
||||
{% when "staticman_v2" %}
|
||||
{% include /comments-providers/staticman_v2.html %}
|
||||
{% when "utterances" %}
|
||||
{% include /comments-providers/utterances.html %}
|
||||
{% when "custom" %}
|
||||
{% include /comments-providers/custom.html %}
|
||||
{% endcase %}
|
||||
{% endif %}
|
|
@ -0,0 +1,40 @@
|
|||
{% if site.repository and site.staticman.branch %}
|
||||
<script>
|
||||
(function ($) {
|
||||
$('#new_comment').submit(function () {
|
||||
var form = this;
|
||||
|
||||
$(form).addClass('disabled');
|
||||
$('#comment-form-submit').html('<i class="fas fa-spinner fa-spin fa-fw"></i> {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}');
|
||||
|
||||
$.ajax({
|
||||
type: $(this).attr('method'),
|
||||
url: $(this).attr('action'),
|
||||
data: $(this).serialize(),
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
success: function (data) {
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--danger');
|
||||
$('.page__comments-form .js-notice').addClass('notice--success');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}');
|
||||
},
|
||||
error: function (err) {
|
||||
console.log(err);
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--success');
|
||||
$('.page__comments-form .js-notice').addClass('notice--danger');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}');
|
||||
$(form).removeClass('disabled');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
function showAlert(message) {
|
||||
$('.page__comments-form .js-notice').removeClass('hidden');
|
||||
$('.page__comments-form .js-notice-text').html(message);
|
||||
}
|
||||
})(jQuery);
|
||||
</script>
|
||||
{% endif %}
|
|
@ -0,0 +1,40 @@
|
|||
{% if site.repository and site.staticman.branch %}
|
||||
<script>
|
||||
(function ($) {
|
||||
$('#new_comment').submit(function () {
|
||||
var form = this;
|
||||
|
||||
$(form).addClass('disabled');
|
||||
$('#comment-form-submit').html('<i class="fas fa-spinner fa-spin fa-fw"></i> {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}');
|
||||
|
||||
$.ajax({
|
||||
type: $(this).attr('method'),
|
||||
url: $(this).attr('action'),
|
||||
data: $(this).serialize(),
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
success: function (data) {
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--danger');
|
||||
$('.page__comments-form .js-notice').addClass('notice--success');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}');
|
||||
},
|
||||
error: function (err) {
|
||||
console.log(err);
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--success');
|
||||
$('.page__comments-form .js-notice').addClass('notice--danger');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}');
|
||||
$(form).removeClass('disabled');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
function showAlert(message) {
|
||||
$('.page__comments-form .js-notice').removeClass('hidden');
|
||||
$('.page__comments-form .js-notice-text').html(message);
|
||||
}
|
||||
})(jQuery);
|
||||
</script>
|
||||
{% endif %}
|
|
@ -0,0 +1,20 @@
|
|||
<script>
|
||||
'use strict';
|
||||
|
||||
(function() {
|
||||
var commentContainer = document.querySelector('#utterances-comments');
|
||||
|
||||
if (!commentContainer) {
|
||||
return;
|
||||
}
|
||||
|
||||
var script = document.createElement('script');
|
||||
script.setAttribute('src', 'https://utteranc.es/client.js');
|
||||
script.setAttribute('repo', '{{ site.repository }}');
|
||||
script.setAttribute('issue-term', '{{ site.comments.utterances.issue_term | default: "pathname" }}');
|
||||
script.setAttribute('theme', '{{ site.comments.utterances.theme | default: "github-light" }}');
|
||||
script.setAttribute('crossorigin', 'anonymous');
|
||||
|
||||
commentContainer.appendChild(script);
|
||||
})();
|
||||
</script>
|
|
@ -0,0 +1,159 @@
|
|||
<div class="page__comments">
|
||||
{% capture comments_label %}{{ site.data.ui-text[site.locale].comments_label | default: "Comments" }}{% endcapture %}
|
||||
{% case site.comments.provider %}
|
||||
{% when "discourse" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="discourse-comments"></section>
|
||||
{% when "disqus" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="disqus_thread"></section>
|
||||
{% when "facebook" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section class="fb-comments" data-href="{{ page.url | absolute_url }}" data-mobile="true" data-num-posts="{{ site.comments.facebook.num_posts | default: 5 }}" data-width="100%" data-colorscheme="{{ site.comments.facebook.colorscheme | default: 'light' }}"></section>
|
||||
{% when "staticman_v2" %}
|
||||
<section id="static-comments">
|
||||
{% if site.repository and site.staticman.branch %}
|
||||
<!-- Start static comments -->
|
||||
<div class="js-comments">
|
||||
{% if site.data.comments[page.slug] %}
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
|
||||
{% assign comments = site.data.comments[page.slug] | sort %}
|
||||
|
||||
{% for comment in comments %}
|
||||
{% assign email = comment[1].email %}
|
||||
{% assign name = comment[1].name %}
|
||||
{% assign url = comment[1].url %}
|
||||
{% assign date = comment[1].date %}
|
||||
{% assign message = comment[1].message %}
|
||||
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- End static comments -->
|
||||
|
||||
<!-- Start new comment form -->
|
||||
<div class="page__comments-form">
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
|
||||
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
|
||||
<form id="new_comment" class="page__comments-form js-form form" method="post" action="{{ site.staticman.endpoint | default: 'https://api.staticman.net/v2/entry/' }}{{ site.repository }}/{{ site.staticman.branch }}/comments">
|
||||
<div class="form__spinner">
|
||||
<i class="fas fa-spinner fa-spin fa-3x fa-fw"></i>
|
||||
<span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label>
|
||||
<textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
|
||||
<div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label>
|
||||
<input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label>
|
||||
<input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label>
|
||||
<input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
|
||||
</div>
|
||||
<div class="form-group hidden" style="display: none;">
|
||||
<input type="hidden" name="options[slug]" value="{{ page.slug }}">
|
||||
<label for="comment-form-location">Not used. Leave blank if you are a human.</label>
|
||||
<input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/>
|
||||
{% if site.reCaptcha.siteKey %}<input type="hidden" name="options[reCaptcha][siteKey]" value="{{ site.reCaptcha.siteKey }}">{% endif %}
|
||||
{% if site.reCaptcha.secret %}<input type="hidden" name="options[reCaptcha][secret]" value="{{ site.reCaptcha.secret }}">{% endif %}
|
||||
</div>
|
||||
<!-- Start comment form alert messaging -->
|
||||
<p class="hidden js-notice">
|
||||
<strong class="js-notice-text"></strong>
|
||||
</p>
|
||||
<!-- End comment form alert messaging -->
|
||||
{% if site.reCaptcha.siteKey %}
|
||||
<div class="form-group">
|
||||
<div class="g-recaptcha" data-sitekey="{{ site.reCaptcha.siteKey }}"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="form-group">
|
||||
<button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--primary btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- End new comment form -->
|
||||
{% if site.reCaptcha.siteKey %}<script async src="https://www.google.com/recaptcha/api.js"></script>{% endif %}
|
||||
{% endif %}
|
||||
</section>
|
||||
{% when "staticman" %}
|
||||
<section id="static-comments">
|
||||
{% if site.repository and site.staticman.branch %}
|
||||
<!-- Start static comments -->
|
||||
<div class="js-comments">
|
||||
{% if site.data.comments[page.slug] %}
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
|
||||
{% assign comments = site.data.comments[page.slug] | sort %}
|
||||
|
||||
{% for comment in comments %}
|
||||
{% assign email = comment[1].email %}
|
||||
{% assign name = comment[1].name %}
|
||||
{% assign url = comment[1].url %}
|
||||
{% assign date = comment[1].date %}
|
||||
{% assign message = comment[1].message %}
|
||||
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- End static comments -->
|
||||
|
||||
<!-- Start new comment form -->
|
||||
<div class="page__comments-form">
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
|
||||
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
|
||||
<form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/{{ site.repository }}/{{ site.staticman.branch }}">
|
||||
<div class="form__spinner">
|
||||
<i class="fas fa-spinner fa-spin fa-3x fa-fw"></i>
|
||||
<span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label>
|
||||
<textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
|
||||
<div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label>
|
||||
<input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label>
|
||||
<input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label>
|
||||
<input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
|
||||
</div>
|
||||
<div class="form-group hidden" style="display: none;">
|
||||
<input type="hidden" name="options[slug]" value="{{ page.slug }}">
|
||||
<label for="comment-form-location">Not used. Leave blank if you are a human.</label>
|
||||
<input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/>
|
||||
</div>
|
||||
<!-- Start comment form alert messaging -->
|
||||
<p class="hidden js-notice">
|
||||
<strong class="js-notice-text"></strong>
|
||||
</p>
|
||||
<!-- End comment form alert messaging -->
|
||||
<div class="form-group">
|
||||
<button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--primary btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button>
|
||||
</div>
|
||||