diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index ca09066b..5d039822 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,17 +1,20 @@
+exclude: '^static/css/elegant.prod.css'
fail_fast: true
repos:
+- repo: meta
+ hooks:
+ - id: check-useless-excludes
- repo: https://github.com/prettier/prettier
- rev: master
+ rev: 1.19.1
hooks:
- id: prettier
files: \.(css|js|md|markdown|json)
- exclude: ^static/(tipuesearch|magnific)
- repo: https://github.com/python/black
- rev: master
+ rev: 19.10b0
hooks:
- id: black
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: master
+ rev: v2.4.0
hooks:
- id: check-added-large-files
- id: check-ast
diff --git a/.travis.yml b/.travis.yml
index a3c058c1..ef611791 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,6 +4,9 @@ dist: trusty
python:
- '3.6'
+env:
+- NODE_VERSION="12.13.1"
+
branches:
only:
- master
@@ -20,6 +23,9 @@ cache:
- directories:
- $HOME/.cache/pre-commit
+before_install:
+- nvm install $NODE_VERSION
+
install:
- pip install -r documentation/requirements.txt
- pip install -U html5validator
diff --git a/.yaspeller.json b/.yaspeller.json
index c6bc65cc..52b3701d 100644
--- a/.yaspeller.json
+++ b/.yaspeller.json
@@ -15,199 +15,117 @@
"ignoreUppercase": true,
"maxRequests": 5,
"dictionary": [
- "7rack",
- "aggregators",
- "Alexandr",
- "amongst",
"analytics",
- "andreburgaud",
- "André",
"AsciiDoc",
- "Ashwin",
- "ashwinvis",
- "Astori",
- "autoprefixer",
- "AWegnerGitHub",
- "Ayub",
- "Baskerville",
"BestAzon",
"bestazon",
"bing",
- "Blais",
+ "blockquote",
"blog-o-matic",
- "bnice5000",
"BrowserSync",
- "Burgaud",
- "cahuk",
- "calfzhou",
- "calibre",
- "Carr",
- "Carr's",
"cd",
"changelog",
"ci",
"codebase",
- "CodeHilite",
- "codehilite",
"commitizen",
- "committer",
"config",
"crafted",
+ "cssmin",
"customizable",
"customizations",
- "debiatan",
"delinkification",
"dev",
- "Dijk",
"disqus",
- "disqus_identifier",
"div",
- "dogfooding",
- "emoji",
"exif",
"extract_toc",
- "Fami",
"favicon",
- "Fayad",
- "fayadfami",
- "flexbox",
- "FontAwesome",
"foss",
"FreeLists",
"freelists",
"fucking",
- "Gan",
- "Garamond",
- "Gert",
- "gertvdijk",
"GitHub",
"github",
"github.com",
"google",
- "gravatar",
- "gshen42",
+ "GulpJS",
"gulpjs",
"Gómez",
- "Hi Talha",
- "Hi",
- "html5validator",
"https",
- "Iconifier.net",
- "ijvxwtg",
- "ImageOptim",
- "imgur",
- "Inkscape",
- "io",
"iOS",
"iranzo",
- "Jed",
- "Jeremy",
- "jerith",
"Jinja",
"jinja2",
- "Jinkun",
"jQuery",
"js",
- "Jérémie",
- "kafran",
- "Kamran",
- "Kolmar",
+ "jsx",
"LaTeX",
- "Lauwers",
- "Lechón",
- "Lekhonkhobe",
- "leotrs",
- "liangfu",
"lightbox",
- "Lin",
- "LinkedIn",
- "linuxabc",
"LiveReload",
"MacBook",
"mailchimp",
"maintainer",
"maintainers",
"Makefile",
- "mansoor",
+ "Mansoor",
"markdown",
"matic",
"Matija",
"md",
"Melissa",
- "meta",
"metadata",
- "metatag",
- "metatags",
"Miguel",
- "minification",
- "Mohamed",
- "Mohanan",
"monetization",
- "Morehead",
- "Métaireau",
- "Narula",
"navbar",
- "Ndung'u",
- "Neha",
"netlify",
"newbies",
"newline",
- "NodeJS",
- "NoDerivatives",
"nofollow",
- "NonCommercial",
+ "noopener",
"OneLink",
"onelink",
"organizational",
- "os",
"Pablo",
"Pablo's",
"pelicanconf",
+ "permalink",
"permalinks",
"peru",
- "phdbreak",
"photogallery",
"piexif",
- "piwik",
"PostCSS",
- "Pubcon",
+ "postcss",
"Pygments",
"README",
"rebase",
"rebasing",
"refactor",
+ "rel",
"reST",
"reStructuredText",
"resubmitting",
- "rmorehead",
"roadmap",
"rss",
"screenshots",
"setuptools",
- "ShareAlike",
- "Shen",
"sidebar",
"sidebar's",
"sidebars",
- "silverhook",
"sitemap",
- "Smalllike",
+ "situational",
"solarized",
- "SourceCodePro",
"StatCounter",
"statcounter",
+ "submitter",
"sudo",
- "svg",
- "svgexport",
- "svgo",
"takeaways",
+ "Talha",
"talha",
"Talha's",
"talha131",
"talham",
"talham_",
"themed",
- "Thurgood",
"timestamps",
"Tipue",
"tipue",
@@ -215,26 +133,20 @@
"toc",
"tox",
"travis",
- "tshepang",
- "tshepang_dev",
"uncollapsed",
"understandability",
"unhide",
+ "unmaintained",
"unordered",
"validator",
+ "versioning",
"virtualenv",
- "w3c_validator",
+ "webassets",
"webmasters",
"Wegner",
"whitespace",
- "xiang",
- "xiaoweiz",
- "Xin",
"yaml",
- "Yanxin",
- "Yue",
- "yuex",
- "Zhou",
+ "yaspeller",
"Šuklje"
]
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 628e4466..adf778a5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,7 @@
- **clean URL:** default URL of categories, tags and archives fails on some servers ([3c7df6a](https://github.com/Pelican-Elegant/elegant/commit/3c7df6a)), closes [#280](https://github.com/Pelican-Elegant/elegant/issues/280) [#276](https://github.com/Pelican-Elegant/elegant/issues/276)
- **comments:** W3C validation errors ([76a1f26](https://github.com/Pelican-Elegant/elegant/commit/76a1f26))
- **disqus:** remove SITEURL condition to show Disqus comments section ([753d5a5](https://github.com/Pelican-Elegant/elegant/commit/753d5a5))
-- **lang:** do not override default value of DEFAULT_LANG set by Pelican ([d6c60c2](https://github.com/Pelican-Elegant/elegant/commit/d6c60c2))
+- **lang:** do not override default value of DEFAULT_LANG set by Pelican ([d6c60c2](https://github.com/Pelican-Elegant/elegant/commit/d6c60c2))
- **social:** reduce icon sizes in the sidebar ([c769ba3](https://github.com/Pelican-Elegant/elegant/commit/c769ba3))
- **social:** use nofollow for social links in the sidebar ([50cff87](https://github.com/Pelican-Elegant/elegant/commit/50cff87))
- **social:** W3C validation error ([ec4521e](https://github.com/Pelican-Elegant/elegant/commit/ec4521e))
@@ -27,23 +27,22 @@
- **admonition:** add box shadow ([246f826](https://github.com/Pelican-Elegant/elegant/commit/246f826))
- **admonition:** border color should match the title color ([1adadbe](https://github.com/Pelican-Elegant/elegant/commit/1adadbe))
- **admonition:** increase contrast of title ([7fb82cc](https://github.com/Pelican-Elegant/elegant/commit/7fb82cc))
-- **admonition:** use svg image instead of font-awesome icon ([e7c4029](https://github.com/Pelican-Elegant/elegant/commit/e7c4029)), closes [#487](https://github.com/Pelican-Elegant/elegant/issues/487)
+- **admonition:** use svg image instead of font-awesome icon ([e7c4029](https://github.com/Pelican-Elegant/elegant/commit/e7c4029)), closes [#487](https://github.com/Pelican-Elegant/elegant/issues/487)
- **clean url:** support clean URL for search page ([088791e](https://github.com/Pelican-Elegant/elegant/commit/088791e))
- **comments:** add support for utterances comment system ([a2151cc](https://github.com/Pelican-Elegant/elegant/commit/a2151cc)), closes [#288](https://github.com/Pelican-Elegant/elegant/issues/288)
- **quotes:** improve style and remove font-awesome for quote icon ([9ef3ac8](https://github.com/Pelican-Elegant/elegant/commit/9ef3ac8)), closes [#487](https://github.com/Pelican-Elegant/elegant/issues/487)
- **social:** add icons for 7 more websites ([8dcf8fa](https://github.com/Pelican-Elegant/elegant/commit/8dcf8fa)), closes [#494](https://github.com/Pelican-Elegant/elegant/issues/494)
-- **social:** use svg icons instead of font-awesome ([19f458b](https://github.com/Pelican-Elegant/elegant/commit/19f458b))
+- **social:** use svg icons instead of font-awesome ([19f458b](https://github.com/Pelican-Elegant/elegant/commit/19f458b))
- **table:** add style rule to make tables pop out ([6a8500b](https://github.com/Pelican-Elegant/elegant/commit/6a8500b)), closes [#440](https://github.com/Pelican-Elegant/elegant/issues/440)
### Performance Improvements
-- **admonition:** add attributes to svg iamges ([a740a60](https://github.com/Pelican-Elegant/elegant/commit/a740a60))
+- **admonition:** add attributes to svg images ([a740a60](https://github.com/Pelican-Elegant/elegant/commit/a740a60))
- **requests:** remove font awesome ([7c20145](https://github.com/Pelican-Elegant/elegant/commit/7c20145)), closes [#487](https://github.com/Pelican-Elegant/elegant/issues/487)
### BREAKING CHANGES
-- **requests:** We have removed font awesome. Now we use svg images for all icons. This will result
- in one less web request, which in turn will improve your websites performance.
+- **requests:** We have removed font awesome. Now we use svg images for all icons. This will result in one less web request, which in turn will improve your websites performance.
- **social:** Style customization and configuration of social icons
in the sidebar has changed.
@@ -58,7 +57,7 @@ New icons have better colors and bigger sizes.
### Bug Fixes
-- **freelists:** open FreeLists subscription form in a new tab ([f81657c](https://github.com/Pelican-Elegant/elegant/commit/f81657c))
+- **freelists:** open FreeLists subscription form in a new tab ([f81657c](https://github.com/Pelican-Elegant/elegant/commit/f81657c))
- **freelists:** replace deprecated subscription form with button ([9bfe3c1](https://github.com/Pelican-Elegant/elegant/commit/9bfe3c1)), closes [#412](https://github.com/Pelican-Elegant/elegant/issues/412)
- **freelists:** remove unused include ([27f0831](https://github.com/Pelican-Elegant/elegant/commit/27f0831))
@@ -126,8 +125,8 @@ New icons have better colors and bigger sizes.
- **footer:** open exit links in new tab ([8fd9f28](https://github.com/Pelican-Elegant/elegant/commit/8fd9f28))
- **footer:** optionally show the host information ([9de2dab](https://github.com/Pelican-Elegant/elegant/commit/9de2dab))
- **footer:** powered by message is always aligned to the right ([5e47b7c](https://github.com/Pelican-Elegant/elegant/commit/5e47b7c))
-- **footer:** remove fixed height by using flexbox for sticky footer ([d9d84e1](https://github.com/Pelican-Elegant/elegant/commit/d9d84e1))
-- **footer:** use flexbox instead of list for items in the footer ([bef7db9](https://github.com/Pelican-Elegant/elegant/commit/bef7db9))
+- **footer:** remove fixed height by using flexbox for sticky footer ([d9d84e1](https://github.com/Pelican-Elegant/elegant/commit/d9d84e1))
+- **footer:** use flexbox instead of list for items in the footer ([bef7db9](https://github.com/Pelican-Elegant/elegant/commit/bef7db9))
- **onelink:** add Amazon Affiliate Disclosure ([cbfa6ac](https://github.com/Pelican-Elegant/elegant/commit/cbfa6ac))
# Version 2.3.0
@@ -141,7 +140,7 @@ New icons have better colors and bigger sizes.
## Features
-- New: FontAwesome updated to version 4.7.0
+- New: FontAwesome updated to version 4.7.0
- New: `Photos` plugin support for photo gallery creation
- New: Lightbox support for `Photos` plugin
- Fixed: Amazon One Link div is in the header
@@ -242,7 +241,7 @@ New icons have better colors and bigger sizes.
- Next and previous article navigation is placed below comments section so that article's content and comments appear together
- Article title and site name in `
` tag is separated by `·` which is cleaner and more subtle than `-`
- Subtitle of articles and pages is added in `` tag along with main title
-- Description meta tag on Home Page uses `SITE_DESCRIPTION`
+- Description metadata tag on Home Page uses `SITE_DESCRIPTION`
- Bug fix: Expand comments section if URL points to a comment
- Bug fix: CSS style of links in an unordered list inside article content is different from article links
@@ -258,13 +257,13 @@ New icons have better colors and bigger sizes.
# Version 1.1
- Add template for pages. Pages do not have tags, category and Disqus comments
-- Keep style of a hyperlink in `modified` meta data consisted with the theme
-- Add `keywords` meta tag that uses keywords, tags and category attribute of articles and pages
+- Keep style of a hyperlink in `modified` metadata consisted with the theme
+- Add `keywords` metadata tag that uses keywords, tags and category attribute of articles and pages
- Validate search form for empty strings
- If `RECENT_ARTICLES_COUNT` is undefined, set it to 10. So that Pelican does not throw critical error
- Bug fix: Path of search.html in search form action should always be absolute
-- Bug fix: Copyright meta tag should be set to the author, instead of the license
-- Bug fix: Close meta tags
+- Bug fix: Copyright metadata tag should be set to the author, instead of the license
+- Bug fix: Close metadata tags
- Bug fix: ID of search form in 404 page should be different from the ID of search form in main navigation
- Bug fix: Links in ordered list in an article do not conform to the link style in rest of the article
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index be80312a..105c6ea0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,3 +1,7 @@
-See our documentation at following link:
+# Contributions
-
+We welcome contributions to the Elegant project!
+
+If you are considering contributing, [please read this](https://elegant.oncrashreboot.com/invitation-to-participate.html).
+
+If you have a patch ready for pull request, [please read this before contributing](https://elegant.oncrashreboot.com/how-to-contribute.html).
diff --git a/documentation/content/101 Quick Start/security.md b/documentation/content/101 Quick Start/security.md
new file mode 100644
index 00000000..f667d701
--- /dev/null
+++ b/documentation/content/101 Quick Start/security.md
@@ -0,0 +1,18 @@
+Title: Elegant Is Safe
+Tags: security,
+Category: 101 — Quick Start
+Date: 2019-12-02 11:45
+Slug: elegant-is-safe
+Subtitle:
+Summary:
+Keywords:
+Authors: Talha Mansoor
+
+Static sites are usually safer than server side rendered sites. There can be some edge cases though even for a static site.
+
+We came to know about a potential security issue that involves, `target="_blank"`. We have updated our code to follow the recommended fix.
+
+You can read more about the issue and its fix at these links,
+
+1. [About rel=noopener](https://mathiasbynens.github.io/rel-noopener/)
+1. [react/jsx-no-target-blank](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-target-blank.md)
diff --git a/documentation/content/101 Quick Start/testimonials.md b/documentation/content/101 Quick Start/testimonials.md
index 81b0a0de..f5e5f14b 100644
--- a/documentation/content/101 Quick Start/testimonials.md
+++ b/documentation/content/101 Quick Start/testimonials.md
@@ -11,27 +11,27 @@ authors: Talha Mansoor
> Thanks for this amazing project.
-[Sebastian Lauwers](https://github.com/Pelican-Elegant/elegant/issues/111#issuecomment-40943827)
+[Sebastian Lauwers](https://github.com/Pelican-Elegant/elegant/issues/111#issuecomment-40943827)
> Let me start by saying your theme is awesome. I would like to use it for my blog.
-[bnice5000](https://github.com/Pelican-Elegant/elegant/issues/115#issue-30103539)
+[bnice5000](https://github.com/Pelican-Elegant/elegant/issues/115#issue-30103539)
> i love the elegant theme
-[7rack](https://github.com/Pelican-Elegant/elegant/issues/118#issue-32226954)
+[7rack](https://github.com/Pelican-Elegant/elegant/issues/118#issue-32226954)
> I tried your pelican theme elegant, it's awesome, clean and elegant.
[悟道洞穴人](https://github.com/Pelican-Elegant/elegant/pull/2#issue-19502670)
-
> I'm hugely impressed with your work on the theme; thank you for opening the
@@ -41,58 +41,58 @@ J L
> Thank you very much for your reply and for your great Pelican theme !)
-Alexandr
+Alexandr
> pelican-elegant is the best pelican theme
-vim xiang
+vim xiang
> as I'm just starting using Pelican, I have to say: great work on the elegant theme.
-Yanxin
+Yanxin
> I am using the very nice elegant theme for pelican that you wrote.
-Brian Blais
+Brian Blais
> It is really awesome!
-Jinkun Lin
+Jinkun Lin
> thanks for writing the "elegant" theme
-[Jed Brown](https://plus.google.com/u/0/+JedBrown/)
+[Jed Brown](https://plus.google.com/u/0/+JedBrown/)
-> Hi Talha, thanks to your great theme, I made my homepage better :) I was once
+> Hi Talha, thanks to your great theme, I made my homepage better :) I was once
> trying to make a theme of my own. But never can i make such an awesome one
> like #Elegant#.
-[liangfu](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1451253675)
+[liangfu](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1451253675)
> Thanks for your beautiful work!
-[xiaoweiz](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1429880788)
+[xiaoweiz](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1429880788)
> Awesome work
-[Kevin Ndung'u](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1364943390)
+[Kevin Ndung'u](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1364943390)
> Nice work!
-[Mohamed](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1340387082)
+[Mohamed](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1340387082)
> Thanks dude, an awesome theme!
-[linuxabc](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1123824877)
+[linuxabc](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1123824877)
> Really cool theme.
[Calf](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1117848663)
-> This theme is fucking awesome. I will start using it =). Thank you
+> This theme is fucking awesome. I will start using it =). Thank you
-[Kolmar Kafran](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1116584083)
+[Kolmar Kafran](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1116584083)
> Thank you so much for this wonderful pelican theme
-[phdbreak](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1080851511)
+[phdbreak](http://oncrashreboot.com/elegant-best-pelican-theme-features#comment-1080851511)
diff --git a/documentation/content/Advanced Features/favicons-speed-dial-icons.md b/documentation/content/Advanced Features/favicons-speed-dial-icons.md
index d6cbb834..4d210aa3 100644
--- a/documentation/content/Advanced Features/favicons-speed-dial-icons.md
+++ b/documentation/content/Advanced Features/favicons-speed-dial-icons.md
@@ -36,5 +36,6 @@ Your images should have these names,
1. `apple-touch-icon.png`
1. `favicon.ico`
-I highly recommend you to use [Iconifier.net](http://iconifier.net/) to
-generate the set of images.
+I highly recommend you to use
+[Iconifier.net](http://iconifier.net/)
+to generate the set of images.
diff --git a/documentation/content/Advanced Features/meta-data.md b/documentation/content/Advanced Features/metadata.md
similarity index 100%
rename from documentation/content/Advanced Features/meta-data.md
rename to documentation/content/Advanced Features/metadata.md
diff --git a/documentation/content/Advanced Features/modified-date.md b/documentation/content/Advanced Features/modified-date.md
index 91c822c3..42258fd2 100644
--- a/documentation/content/Advanced Features/modified-date.md
+++ b/documentation/content/Advanced Features/modified-date.md
@@ -1,6 +1,6 @@
---
Title: How does modified metadata works
-Tags: web-design, meta-data, date
+Tags: web-design, metadata, date
Category: Advanced Features
Date: 2014-04-19 14:52
Slug: how-does-modified-metadata-works
diff --git a/documentation/content/Analytics SEO SMO/seo-social-media-tags.md b/documentation/content/Analytics SEO SMO/seo-social-media-tags.md
index 413d6c08..c04e91d6 100644
--- a/documentation/content/Analytics SEO SMO/seo-social-media-tags.md
+++ b/documentation/content/Analytics SEO SMO/seo-social-media-tags.md
@@ -23,7 +23,7 @@ social media.
## Social Media Optimization (SMO)
-Inspired by the post ["What is the New SEO? Pubcon 2013
+Inspired by the post ["What is the New SEO? Pubcon 2013
Takeaways"](https://medium.com/on-startups/f15264e5d790), I looked into the
tags that social media sites use. They can be broadly divided into two
categories, [Open Graph protocol](http://ogp.me/) and [Twitter
diff --git a/documentation/content/Components/add-license.md b/documentation/content/Components/add-license.md
index 0fd8926e..246485fe 100644
--- a/documentation/content/Components/add-license.md
+++ b/documentation/content/Components/add-license.md
@@ -13,7 +13,7 @@ You can optionally define `SITE_LICENSE` variable in Pelican configuration. It w
For example,
```python
-SITE_LICENSE = """Content licensed under
Creative Commons Attribution 4.0 International License."""
```
diff --git a/documentation/content/Components/article-subtitle.md b/documentation/content/Components/article-subtitle.md
index 3b774b33..fc11543c 100644
--- a/documentation/content/Components/article-subtitle.md
+++ b/documentation/content/Components/article-subtitle.md
@@ -8,8 +8,8 @@ Category: Components
authors: Talha Mansoor
---
-Pelican lets you define title of your article in the meta data. Elegant adds
-subtitle support. Just define `subtitle` in your article's meta data and it
+Pelican lets you define title of your article in the metadata. Elegant adds
+subtitle support. Just define `subtitle` in your article's metadata and it
will appear along with your title. Here is an example,
![Article subtitle
diff --git a/documentation/content/Components/blockquote.md b/documentation/content/Components/blockquote.md
new file mode 100644
index 00000000..adfef2f7
--- /dev/null
+++ b/documentation/content/Components/blockquote.md
@@ -0,0 +1,27 @@
+Title: Blockquote Style
+Tags: style, typography
+Category: Components
+Date: 2019-12-01 18:41
+Slug: blockquote-style
+Authors: Talha Mansoor
+Subtitle:
+Summary:
+Keywords:
+
+
+
+This is how blockquotes appear in the Elegant theme.
+
+> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Nibh tortor id aliquet lectus proin nibh nisl condimentum id.
+>
+> Lobortis feugiat vivamus at augue. Sed augue lacus viverra vitae congue eu consequat. Elit pellentesque habitant morbi tristique senectus et. Netus et malesuada fames ac turpis egestas.
+>
+> Porttitor rhoncus dolor purus non enim praesent elementum facilisis. Augue eget arcu dictum varius duis at consectetur.
+>
+> Pharetra pharetra massa massa ultricies mi quis. Vulputate enim nulla aliquet porttitor lacus luctus accumsan. Pulvinar neque laoreet suspendisse interdum.
+>
+> Ultrices eros in cursus turpis massa tincidunt dui ut ornare. Sem et tortor consequat id porta nibh venenatis. Nulla facilisi morbi tempus iaculis urna id volutpat lacus.
+>
+> Arcu ac tortor dignissim convallis aenean. Mauris pharetra et ultrices neque ornare. Scelerisque fermentum dui faucibus in ornare. Nibh tellus molestie nunc non blandit.
+
+
diff --git a/documentation/content/Components/filter-tags.md b/documentation/content/Components/filter-tags.md
index bf9f5e3e..a1a9a0b4 100644
--- a/documentation/content/Components/filter-tags.md
+++ b/documentation/content/Components/filter-tags.md
@@ -18,13 +18,13 @@ will automatically filter the list.
For example, this is how my tags page looks like
-![Tags view
-unfiltered]({static}/images/elegant-theme_tags-live-filter-default.png)
+![Tags view unfiltered]({static}/images/elegant-theme_tags-live-filter-default.png)
-As soon as I type "os", all other tags are filtered out
+As soon as I type
+"os",
+all other tags are filtered out
-![Tags view filtered for
-"os"]({static}/images/elegant-theme_tags-live-filter-filtered.png)
+![Tags view filtered for "os"]({static}/images/elegant-theme_tags-live-filter-filtered.png)
With live filter, your reader will have no difficulty in picking up his desired
tag from the list, even if your site has hundreds of tags.
diff --git a/documentation/content/Components/heading.md b/documentation/content/Components/heading.md
new file mode 100644
index 00000000..10c3f51f
--- /dev/null
+++ b/documentation/content/Components/heading.md
@@ -0,0 +1,39 @@
+Title: Headings Style
+Tags: style, typography
+Category: Components
+Date: 2019-12-01 10:38
+Slug: headings-style
+Authors: Talha Mansoor
+Subtitle:
+Summary:
+Keywords:
+
+Following are the examples of headings as they appear inside an article.
+
+
+
+# Heading 1 `code` small
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Nibh tortor id aliquet lectus proin nibh nisl condimentum id. Lobortis feugiat vivamus at augue. Sed augue lacus viverra vitae congue eu consequat.
+
+## Heading 2 `code` small
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Nibh tortor id aliquet lectus proin nibh nisl condimentum id. Lobortis feugiat vivamus at augue. Sed augue lacus viverra vitae congue eu consequat.
+
+### Heading 3 `code` small
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Nibh tortor id aliquet lectus proin nibh nisl condimentum id. Lobortis feugiat vivamus at augue. Sed augue lacus viverra vitae congue eu consequat.
+
+#### Heading 4 `code` small
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Nibh tortor id aliquet lectus proin nibh nisl condimentum id. Lobortis feugiat vivamus at augue. Sed augue lacus viverra vitae congue eu consequat.
+
+##### Heading 5 `code` small
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Nibh tortor id aliquet lectus proin nibh nisl condimentum id. Lobortis feugiat vivamus at augue. Sed augue lacus viverra vitae congue eu consequat.
+
+###### Heading 6 `code` small
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Nibh tortor id aliquet lectus proin nibh nisl condimentum id. Lobortis feugiat vivamus at augue. Sed augue lacus viverra vitae congue eu consequat.
+
+
diff --git a/documentation/content/Components/line-numbers-code-snippet.md b/documentation/content/Components/line-numbers-code-snippet.md
index b8641e41..2014ca55 100644
--- a/documentation/content/Components/line-numbers-code-snippet.md
+++ b/documentation/content/Components/line-numbers-code-snippet.md
@@ -5,7 +5,7 @@ Category: Components
Date: 2013-11-05 17:36
Slug: display-line-numbers-in-code-snippets
Summary: reStructuredText and Markdown have directives that generate line numbers for code blocks. Use them to display line numbers in code snippets.
-Keywords: codehilite, python-markdown
+Keywords: code-snippets, python-markdown
authors: Talha Mansoor
---
@@ -33,8 +33,10 @@ markup. Use `linenos` flag to switch on line numbers for the snippet.
## Markdown
[Python-Markdown](https://github.com/Python-Markdown/markdown/) uses
-[CodeHilite](https://python-markdown.github.io/extensions/code_hilite/)
-extension for syntax highlighting. Setup CodeHilite, then use Shebang `!#` to
+[CodeHilite](https://python-markdown.github.io/extensions/code_hilite/)
+extension for syntax highlighting. Setup
+CodeHilite
+, then use Shebang `!#` to
generate line numbers.
:::markdown
diff --git a/documentation/content/Components/links.md b/documentation/content/Components/links.md
new file mode 100644
index 00000000..2d7fe575
--- /dev/null
+++ b/documentation/content/Components/links.md
@@ -0,0 +1,43 @@
+Title: Hyperlinks Styles
+Tags: style
+Category: Components
+Date: 2019-12-02 15:09
+Slug: hyperlinks-styles
+Authors: Talha Mansoor
+Subtitle:
+Summary:
+Keywords:
+
+Elegant has three styles for hyperlinks that you can use.
+
+## Muted Style
+
+This is the default style of link.
+
+[Example Link - Use Firefox Browser](https://www.mozilla.org/en-US/firefox/new/) to support open web standards.
+
+This style is very suitable for long-form articles. To read the rationale behind this choice, read our help article [Why Does Elegant Look The Way It Does?]({filename}../Contributing/why-look-and-feel.md).
+
+## Amplified Style
+
+We understand not all links should be muted. Some links require attention.
+
+[Example Link - Use Firefox Browser](https://www.mozilla.org/en-US/firefox/new/){: class="ampl"} to support open web standards.
+
+To use this style, you need to enable [Markdown attribute list extension](https://python-markdown.github.io/extensions/attr_list/){:class="ampl"}.
+
+```
+# Plugins and extensions
+MARKDOWN = {
+ "extension_configs": {
+ "markdown.extensions.extra": {},
+ "markdown.extensions.meta": {},
+ }
+}
+```
+
+Then use this style using `ampl` class.
+
+```text
+[Example Link](https://www.mozilla.org/){: class="ampl"} blah blah
+```
diff --git a/documentation/content/Components/permalink.md b/documentation/content/Components/permalink.md
new file mode 100644
index 00000000..ee157be0
--- /dev/null
+++ b/documentation/content/Components/permalink.md
@@ -0,0 +1,57 @@
+Title: Permalinks To Headings
+Tags: navigation,
+Category: Components
+Date: 2019-12-02 11:05
+Slug: permalinks-to-headings
+Subtitle:
+Summary:
+Keywords:
+
+First, you need to enable the `toc` extension for Markdown in your Pelican configuration.
+
+```python
+MARKDOWN = {
+ 'extension_configs': {
+ 'markdown.extensions.toc': {}
+ }
+}
+```
+
+Then enable `permalink` option available for the `toc` extension.
+
+```python
+MARKDOWN = {
+ 'extension_configs': {
+ 'markdown.extensions.toc': {
+ 'permalink': 'true',
+ }
+ }
+}
+```
+
+Enabling the `permalink` option will provide direct links to each heading.
+
+Hover over following example heading to see the permalink.
+
+## Example Heading
+
+You would get this,
+
+![Permalinks example using Markdown]({static}/images/elegant-theme-toc-permalinks.png)
+
+!!! Tip Recommendation
+
+ When set to True the paragraph symbol `¶` or `¶` is used by Python markdown.
+ This becomes part of the RSS feed.
+
+ We recommend setting permalink option to a space.
+
+```python
+MARKDOWN = {
+ 'extension_configs': {
+ 'markdown.extensions.toc': {
+ 'permalink': ' ',
+ }
+ }
+}
+```
diff --git a/documentation/content/Components/table-of-contents.md b/documentation/content/Components/table-of-contents.md
index 636c9535..4aca4434 100644
--- a/documentation/content/Components/table-of-contents.md
+++ b/documentation/content/Components/table-of-contents.md
@@ -71,29 +71,6 @@ This is the content of my sample blog post.
I will end my example here.
```
-### Enabling Permalinks
-
-Although it is not required, we recommend you to take advantage of `permalink` option available for the
-`toc` extension.
-
-Enabling the `permalink` option will
-provide direct links to each section.
-
-![Permalinks example using Markdown]({static}/images/elegant-theme-toc-permalinks.png)
-
-To enable this option, you need to add the `'permalink': 'true'` property to the
-`'markdown.extensions.toc'` section that was added in the previous section.
-
-```python
-MARKDOWN = {
- 'extension_configs': {
- 'markdown.extensions.toc': {
- 'permalink': 'true',
- }
- }
-}
-```
-
### Other Options
For other options available for the Markdown Table of Contents extension, refer to the
diff --git a/documentation/content/Components/web-safe-fonts.md b/documentation/content/Components/web-safe-fonts.md
index 67813245..a24dee23 100644
--- a/documentation/content/Components/web-safe-fonts.md
+++ b/documentation/content/Components/web-safe-fonts.md
@@ -10,6 +10,11 @@ authors: Talha Mansoor
Elegant uses commonly available typefaces in every style rule. It has a list of
closely matching fonts in the fallback list.
-For examples Baskerville is the
-first choice for headings. But if reader does not have Baskerville installed,
-Garamond will be used. If that too fails then Georgia will be used.
+For examples
+Baskerville
+is the
+first choice for headings. But if reader does not have
+Baskerville
+installed,
+Garamond
+will be used. If that too fails then Georgia will be used.
diff --git a/documentation/content/Connecting With Your Readers/rss-feeds.md b/documentation/content/Connecting With Your Readers/rss-feeds.md
index be5e3bd7..e11e3f70 100644
--- a/documentation/content/Connecting With Your Readers/rss-feeds.md
+++ b/documentation/content/Connecting With Your Readers/rss-feeds.md
@@ -4,15 +4,18 @@ Tags: pelican-theme, font-awesome, web-design
Category: Connecting With Your Readers
Date: 2014-03-17 15:28
Slug: how-to-show-rss-feeds-icon
-Comment_id: ijvxwtg-how-to-show-rss-feeds-icon
+Comment_id: how-to-show-rss-feeds-icon
Summary: Elegant supports RSS and Atom feeds for your posts, categories and tags
authors: Talha Mansoor
---
RSS feeds is the oldest and arguably the most used format to publish blog
-updates. Its use is not limited to RSS aggregators and readers. Tools like
+updates. Its use is not limited to RSS
+aggregators
+and readers. Tools like
[IFTTT](https://ifttt.com/recipes?channel=feed) and
-[Calibre](http://manual.calibre-ebook.com/news.html) increases RSS feeds' power
+[Calibre](http://manual.calibre-ebook.com/news.html)
+increases RSS feeds' power
and versatility by manifolds.
To enable RSS feeds, see [Feed
diff --git a/documentation/content/Connecting With Your Readers/social-profiles-sidebar-svg.md b/documentation/content/Connecting With Your Readers/social-profiles-sidebar-svg.md
index bf8b237b..f36981bd 100644
--- a/documentation/content/Connecting With Your Readers/social-profiles-sidebar-svg.md
+++ b/documentation/content/Connecting With Your Readers/social-profiles-sidebar-svg.md
@@ -17,8 +17,8 @@ social media profiles; inviting readers to engage with them else where on the
web too. Most social widgets are loud and obtrusive. Their colors and placement
takes away readers' attention from the actual content.
-
Elegant understands the importance of readers engagement but it makes sure
@@ -26,18 +26,19 @@ not to push author's _"online social karma"_ down readers' throats.
Elegant displays the widget in the sidebar. Each icon is a link to a social
media profile with an optional title attribute. Icons use muted color which
-changes when user hovers over them.
+changes when user hovers over them. On hover, icon is also scaled up in size.
-Here is an example of hovering over LinkedIn icon.
+Here is an example of hovering over
+LinkedIn
+icon.
-
+
-Following image shows what each of them look like when user hovers over them.
+Following image shows these icons in color.
-
+
These SVG icons are [Super Tiny](https://github.com/edent/SuperTinyIcons). Most of them have sizes less than 500 bytes, and none of them exceeds 1 K bytes in size. This gives you increased website speed.
diff --git a/documentation/content/Contributing/adding-new-features.md b/documentation/content/Contributing/adding-new-features.md
deleted file mode 100644
index 9ba88fe5..00000000
--- a/documentation/content/Contributing/adding-new-features.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-Title: Contributing New Features
-Date: 2019-07-03 22:17
-Slug: contributing-new-features
-Category: Contributing
-authors: Talha Mansoor
----
-
-If you plan to add new features to the theme, please make sure that:
-
-- you set sensible defaults so the theme works out of the box, without forcing the user to set any variable
-- your changes do not negatively effect readability and reading experience
-- your changes do not cause distraction for the reader
diff --git a/documentation/content/Contributing/automated-release.md b/documentation/content/Contributing/automated-release.md
index f5f6223e..ee14e3a2 100644
--- a/documentation/content/Contributing/automated-release.md
+++ b/documentation/content/Contributing/automated-release.md
@@ -1,26 +1,45 @@
---
-Title: Fully automated version management and publishing
-Date: 2019-07-20 23:17
-Slug: fully-automated-version-management-and-publishing
+Title: Automated Version Management and Release
+Subtitle:
+Slug: fully-automated-version-management-and-release
Category: Contributing
-Authors: Talha Mansoor
+Tags:
+Date: 2019-07-20 23:17
+Summary: Elegant utilizes a 'release early, release often' philosophy that embraces a fully automated release process.
+Keywords:
+Authors: Talha Mansoor, Jack De Winter
---
-Elegant follows "release early, release often" software development philosophy. In this regard, our release process is fully automated.
+[TOC]
+
+The Elegant project follows a "release early, release often" software development philosophy.
+By employing this philosophy, we are able to have each team member working on a different
+aspect of the project with next to no friction from each other's changes. At any point, any
+team member can pull changes that have been made in another branch to their fork of the
+repository and exercise their changes with complete confidence.
-We use [semantic-release](https://github.com/semantic-release/semantic-release) for version management and publishing.
+Release process should be fully automated to materialize this goal.
-Our semantic release configuration can be viewed [here](https://github.com/Pelican-Elegant/elegant/blob/master/.releaserc.json).
+## Release Versions
-## CHANGELOG
+Version management and publishing is accomplished using the
+[semantic-release](https://github.com/semantic-release/semantic-release) tool and it's
+[configuration file](https://github.com/Pelican-Elegant/elegant/blob/master/.releaserc.json).
+This tool entirely removes human intervention from deciding the type and label of the next release of the project.
-It generates the change log automatically, therefore you do not have to update the [CHANGELOG](https://github.com/Pelican-Elegant/elegant/blob/master/CHANGELOG.md).
+### How Does Versioning Work?
-## New Releases and Version Number
+Semantic release bases it's decisions on the
+[Semantic Versioning 2.0.0 specification](https://semver.org/), which is very specific.
-semantic-release uses the commit messages to determine the type of changes in the codebase. Following [formalized conventions for commit messages]({filename}./git-commit-guidelines.md), semantic-release automatically determines the next semantic version number, generates a changelog and publishes the release.
+A quick summary is as follows. Each version is detailed in the form: `MAJOR.MINOR.PATCH`.
+The **PATCH** version is incremented when only backwards compatible bug fixes are made in the
+release. The **MINOR** version is incremented (and **PATCH** reset to 0) when functionality
+is added in a backwards compatible manner to the release, along with any backwards compatible
+bug fixes. The **MAJOR** version is incremented (and **MINOR** and **PATCH** reset to 0) when
+incompatible API changes are introduced, along with any backwards compatible features or fixes.
-Here is an example of the release type that will be done based on a commit messages:
+Here are some examples of release types that are generated based on commit messages:
@@ -32,11 +51,72 @@ Here is an example of the release type that will be done based on a commit messa
-## Test Release Process Locally
+Note that the release type is specified as if that commit was the only commit in the release.
+If the first two commits were put together in the release, the `Minor Feature Release` of the
+second commit would take precedence over the `Patch Release` of the first commit. In the same
+manner, the `Major Breaking Release` of the third commit would take precedence if all three
+commits were submitted in the same release.
+
+## CHANGELOG File Updates
+
+An integral part of the release is updating the
+[CHANGELOG](https://github.com/Pelican-Elegant/elegant/blob/master/CHANGELOG.md).
+By mandating that any commits for the project follow a
+[mandated format for the commit messages]({filename}./git-commit-guidelines.md),
+the commits being added to the release can have their commit messages scanned by a tool,
+including relevant portions into the release notes. This too is done automatically.
+
+### Example of an Automated Release
+
+Here is an example of an automated release. This is the
+[Version 3.2.0](https://github.com/Pelican-Elegant/elegant/releases/tag/V3.2.0) that
+was released on 30-Jul-2019. The specifics about the release can be obtained by clicking
+on the 7 digit hexadecimal number below the version tag on the left side of the page, which
+will take you to the [release commit](https://github.com/Pelican-Elegant/elegant/commit/48f39643edd6c3b7449af5dae8ade6323bc7c21f).
+
+![automated release]({static}/images/automated-release.png)
+
+This release can also be viewed by performing a `git log --grep=chore(release)` command and
+looking for the specific release information in the logs. You can then view the specific
+information for that commit by using the `git show` command with the hash for the release's
+commit, `git show 48f39643edd6c3b7449af5dae8ade6323bc7c21f`.
+
+Using either process, the result will look like:
+
+```text
+commit 48f39643edd6c3b7449af5dae8ade6323bc7c21f
+Author: semantic-release-bot
+Date: Tue Jul 30 19:56:10 2019 +0000
+
+ chore(release): 3.2.0 [skip ci]
+
+ # [3.2.0](https://github.com/Pelican-Elegant/elegant/compare/V3.1.0...V3.2.0) (2019-07-30)
+
+ ### Bug Fixes
+
+ * **freelists:** open FreeLists subscription form in a new tab ([f81657c](https://github.com/Pelican-Elegant/elegant/commit/f81657c))
+ * **freelists:** replace deprecated subscription form with button ([9bfe3c1](https://github.com/Pelican-Elegant/elegant/commit/9bfe3c1)), closes [#412](https://github.com/Pelican-Elegant/elegant/issues/412)
+ * **freelists:** rm unused include ([27f0831](https://github.com/Pelican-Elegant/elegant/commit/27f0831))
+
+ ### Features
+
+ * **comments:** reduce transition duration from 500 to 200 ([b86e13d](https://github.com/Pelican-Elegant/elegant/commit/b86e13d))
+ * **favicon:** add 180x180 dimension shortcut icon support ([dd2ed24](https://github.com/Pelican-Elegant/elegant/commit/dd2ed24))
+ * **filter:** add black list, white list feature for Disqus ([4887aec](https://github.com/Pelican-Elegant/elegant/commit/4887aec))
+ * **filter:** add black list, white list feature for FreeLists ([2407cc8](https://github.com/Pelican-Elegant/elegant/commit/2407cc8))
+ * **filter:** add black list, white list feature for Mailchimp ([b96122d](https://github.com/Pelican-Elegant/elegant/commit/b96122d))
+```
-To test semantic-release locally,
+In the main body of the output, there are links with associated text which are 7 digit
+hexadecimal numbers. Each of these links is to a specific commit that was part of the
+release. If you follow the link, you can verify that the correct text is being used for the
+release notes.
-1. Install yarn
-1. Run `yarn semantic-release`
+Additionally, there are links that are associated with text that starts with the `#`
+character followed by an integer. Each of these links is to an issue that was either updated or
+fixed by the given commit. As with the above paragraph, you can verify that the correct
+issue was associated with the commit in the release notes by following the commit links and
+looking for any issue number at the end of the commit text.
-It will run the all the checks and steps in dry run mode.
+As the commits added in to this release included features, the `Minor Feature Release` release
+type was used, incrementing the minor part of the version number from 3.1.0 to 3.2.0.
diff --git a/documentation/content/Contributing/beginners-guide.md b/documentation/content/Contributing/beginners-guide.md
index 0a2b9999..0bfd83f4 100644
--- a/documentation/content/Contributing/beginners-guide.md
+++ b/documentation/content/Contributing/beginners-guide.md
@@ -1,34 +1,74 @@
---
Title: Git Tips for Beginners
-Date: 2019-07-03 21:57
+Subtitle:
Slug: git-tips-for-beginners
Category: Contributing
+Tags:
+Date: 2019-07-03 21:57
+Summary: This article contains a number of tips useful for working with Elegant and Git.
+Keywords:
+Authors: Talha Mansoor, Jack De Winter
---
-Here are some tips on how to make your life with Git easier when contributing.
+[TOC]
+
+Here are some tips we have found useful for using Git to contribute to the project.
+
+## How To Set Up Your Git Repository
+
+1. Create your own fork of Elegant by going to the project repository webpage [on GitHub](https://github.com/Pelican-Elegant/elegant) and pressing the `Fork` button.
+
+ ![Fork Button]({static}/images/github-fork-button.png)
-## How To Set Up Your Git
+2. You will now be redirected to the page representing your fork of the repository. To clone the your fork of the repository to your computer, press the `Clone or download` button and follow the instructions provided.
-1. Create a fork of the [Elegant repository][elegant] by clicking on the “Fork” button.
-2. Clone your fork to your computer by clicking on the “Clone or download” button and following the instructions there.
-3. When in the Git repository of your fork, run the following command to set the main repository as the upstream: `git remote add upstream https://github.com/Pelican-Elegant/pelican-elegant.git`
+ ![Clone or Download button]({static}/images/github-clone-button.png)
+
+3. Create a directory to host your repository in and change to that directory. Run the following command to set your forked repository as `Upstream`:
+
+ ```bash
+ git remote add upstream https://github.com/Pelican-Elegant/pelican-elegant.git
+ ```
+
+## Pull Before Starting Changes
+
+Most of the changes that you will submit will be against the Upstream repository's `next`
+branch. Whether you decide to work in your local repository's `next` branch or create a new
+branch of your own, it is recommended that you do a `git pull` against the Upstream `next`
+branch before starting to work on a new set of changes. This will ensure that you are starting
+from a known good point, and reduce the chance of requiring a merge at a later stage.
## Updating/Rebasing to Upstream
-Occasionally – often before a pull request is able to be merged – you will need to update your own (fork) repository to the upstream (i.e. [Elegant][elegant]) development (i.e. `next`) branch. This can be done as follows:
+It is a good practice to update your repository to it's Upstream repository one or more times
+during the development of your changes. Specifically, the `next` branch of the repository
+is where most of the changes are submitted to, and you should either rebase or pull any
+changes down to your local repository from there. This practice will ensure that any changes
+that have been made to that Upstream branch are brought down where you can test your changes
+with anyone other changes.
+
+To update from the `next` branch, from within your project directory, enter the following
+commands:
1. `git fetch upstream next`
2. `git rebase upstream/next`
## Squash Commits & More Complex Rebasing
-When creating a pull request in GitHub, you have the option to squash all commits, but sometimes you need to fix either the mess you made or some clashes that prevent a merge of the two branches.
+Before you [create a pull request in GitHub](https://github.com/Pelican-Elegant/elegant/pulls),
+you have the option to squash your commits into a single commit. This is often used to clean
+up a series of commits where you were experimenting with something or just had to fiddle with
+something to get it `just right`.
+
+To squash and rebase your commits, use the following command:
-In both cases, the following command is your Swiss-army knife:
+```bash
+git rebase --interactive upstream/master
+```
-`git rebase --interactive upstream/master`
+!!! warning
-For more on the interactive rebase command of Git, see [its official documentation][git_rebase].
+ As with all knives, especially Swiss-army knives, please take caution. Rebasing a repository after pushing one or more commits to another repository can be troublesome.
-[git_rebase]: https://git-scm.com/docs/user-manual#interactive-rebase
-[elegant]: https://github.com/Pelican-Elegant/elegant
+For more on the interactive rebase command of Git, see [its official documentation](https://git-scm.com/docs/user-manual#interactive-rebase) and helper articles such as
+[this article](https://makandracards.com/makandra/527-squash-several-git-commits-into-a-single-commit).
diff --git a/documentation/content/Contributing/commitizen.md b/documentation/content/Contributing/commitizen.md
index bf67c282..0c55d6fb 100644
--- a/documentation/content/Contributing/commitizen.md
+++ b/documentation/content/Contributing/commitizen.md
@@ -1,58 +1,63 @@
---
-Title: Use Commitizen for Git commits
+Title: How To Use Commitizen for Git Commits
Subtitle: Recommended
-Date: 2019-07-22 14:15
Slug: use-commitizen-for-git-commits
Category: Contributing
-Authors: Talha Mansoor
+Tags:
+Date: 2019-07-22 14:15
+Summary: Elegant uses the Commitizen tool to standardize Git commit messages across the project.
+Keywords:
+Authors: Talha Mansoor, Jack De Winter
---
-When you commit with [Commitizen](https://github.com/commitizen/cz-cli), you'll be prompted to fill out any required commit fields at commit time.
+[TOC]
-## Prerequisites
+The [Elegant Contribution Guidelines]({filename}./contributing-to-the-project.md) require that
+each commit submitted for consideration be formatted according to the
+[Git Commit Guidelines]({filename}./git-commit-guidelines.md).
-### Step 1: Install NodeJS and Yarn
+To make this process easier, the Elegant repository is configured to support the
+[Commitizen](https://github.com/commitizen/cz-cli) tool. This tool saves time by controlling
+the format of the Git commit messages to a set of predefined options and patterns. This
+formatting allows for our release process to be
+[fully automated]({filename}./automated-release.md).
-Install [Node.js](https://nodejs.org/en/download/) and [Yarn](https://yarnpkg.com/en/docs/install) on your system.
+## Prerequisites
-If you are on Windows then try installing them with [scoop.sh](https://scoop.sh/). It saves time and makes update easier.
+Both [Node.js](https://nodejs.org/en/download/) and [Yarn](https://yarnpkg.com/en/docs/install)
+must be installed on your system.
-### Step 2: Install Commitizen
+### Install Commitizen
-Run this command from your command line terminal.
+From your command line terminal, go into the directory containing your fork of the Elegant
+repository, then execute the following commands:
```bash
yarn global add commitizen
-```
-
-### Step 3: Initialize the Project
-
-In the root of Elegant repository, run
-
-```bash
yarn install
```
## Use Commitizen
-We have already gone through the trouble of making Elegant repository [Commitizen friendly](https://github.com/commitizen/cz-cli#making-your-repo-commitizen-friendly).
+As the Elegant team has already made the repository
+[Commitizen friendly](https://github.com/commitizen/cz-cli#making-your-repo-commitizen-friendly),
+you can start using it for your commits by entering `git-cz` in your command shell instead
+of `git commit`. Make sure the changes that you want to commit to your fork are staged.
-All you have to do is to stage your changes and then run
+Once invoked, Commitizen will prompt you for answers to a number of questions. As mentioned
+previously, the answers to these questions are formatted according to the
+[Git Commit Guidelines]({filename}./git-commit-guidelines.md)
+before being placed into the message field for the commit. Commitizen then follows through and
+invokes `git commit`, committing the staged changes along with the formatted message that was
+crafted for you from the answers you provided.
-```bash
-git-cz
-```
-
-It will prompt you for questions. Just answer them. Commitizen will automatically format it to conform to [Elegant Git commit guidelines]({filename}./git-commit-guidelines.md).
-
-If your Git commit fails for some reasons, like due to [Git hooks]({filename}./pre-commit.md), then you can fix the issue and rerun Commitizen using,
-
-```bash
-git cz --retry
-```
-
-When you use `--retry`, Commitizen does not prompt for answers and reuse the answers that you last submitted.
+In some cases, such as a [Git pre-commit hook failure]({filename}./pre-commit.md), you may
+not want to re-answer the questions again. Once you fix the issues that prevented the
+commit from happening, you can use `git-cz --retry` to submit the commit again using the same
+answers that were used in the failed attempt.
## Video Demonstration
+For a quick video on how this process works in real life, click on the play button below.
+
diff --git a/documentation/content/Contributing/community-driven-project.md b/documentation/content/Contributing/community-driven-project.md
index 22c59987..1f5706ad 100644
--- a/documentation/content/Contributing/community-driven-project.md
+++ b/documentation/content/Contributing/community-driven-project.md
@@ -1,13 +1,13 @@
---
Title: Elegant grows into a community-led project
-Tags: project-management
+Subtitle: The beginning of a beautiful friendship
+Slug: community-led-project
Category: Contributing
+Tags:
Date: 2019-01-05 19:40
-Slug: community-led-project
-Subtitle: The beginning of a beautiful friendship
-Summary: Elegant has grown into a community-driven project. It also got a new website and organisational structure, culminating in its biggest release yet.
+Summary: Elegant has grown into a community-driven project. It also got a new website and organizational structure, culminating in its biggest release yet.
Keywords:
-authors: Pablo Iranzo Gómez, Talha Mansoor, Matija Šuklje
+Authors: Pablo Iranzo Gómez, Talha Mansoor, Matija Šuklje
---
[TOC]
@@ -16,7 +16,9 @@ authors: Pablo Iranzo Gómez, Talha Mansoor, Matija Šuklje
[Talha Mansoor][talha131] published the first version of Elegant in 2012. It grew in popularity in a short time, due to its clean and functional style.
-In November 2018, [Matija Šuklje][silverhook] called Elegant's community into a [discussion about the future of the theme][future]. Response was immense. Talha was the first to support the proposal of changing the development model from a single-developer to a community-led project.
+In November 2018,
+[Matija Šuklje][silverhook]
+called Elegant's community into a [discussion about the future of the theme][future]. Response was immense. Talha was the first to support the proposal of changing the development model from a single-developer to a community-led project following the [bazaar development model](https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar).
[He][talha131] moved Elegant from a personal repository to a separate organization [Pelican-Elegant][elegant-org], and added active community members to the [team][team].
@@ -25,11 +27,12 @@ This way, the bus factor of the project has greatly improved.
[team]: https://github.com/orgs/Pelican-Elegant/people
[elegant-org]: https://github.com/Pelican-Elegant/
[pelican]: https://getpelican.com
-[ashwinvis]: https://ashwinvis.github.io/
-[calfzhou]: http://gocalf.com
+
+[ashwinvis]: https://ashwinvis.github.io/
+[calfzhou]: http://gocalf.com
[talha131]: https://www.oncrashreboot.com
[iranzo]: https://iranzo.github.io/
-[silverhook]: https://matija.suklje.name
+[silverhook]: https://matija.suklje.name
[future]: https://github.com/talha131/pelican-elegant/issues/173
## New Governance Model
diff --git a/documentation/content/Contributing/contributing-license.md b/documentation/content/Contributing/contributing-license.md
index a0caf9e9..45b9db53 100644
--- a/documentation/content/Contributing/contributing-license.md
+++ b/documentation/content/Contributing/contributing-license.md
@@ -1,15 +1,31 @@
---
Title: Contributions License
-Date: 2019-07-03 22:07
+Subtitle:
Slug: contribution-license
Category: Contributing
+Tags:
+Date: 2019-07-03 22:07
+Summary: The licensing terms under which Elegant is developed.
+Keywords:
+Authors: Talha Mansoor, Jack De Winter
---
-All contributions will be understood to be made under the same (inbound) license as the main (outbound) license of the repository it is being contributed to – so [MIT License][] for all code/theme contributions, and [CC-BY-SA-3.0][] for all documentation contributions.
+[TOC]
+
+By submitting a change to the project, you implicitly acknowledge that you are following
+the following license rules.
+
+## Licensing
+
+All contributions to the project are understood to be submitted under the same (inbound)
+license as the main (outbound) license of the main Elegant repository.
+
+All code and theme contributions are submitted according to the
+[MIT License](https://spdx.org/licenses/MIT.html).
-If you are contributing code that is not yours, make sure to indicate where you got the code from (and who the author/copyright holder is) and what license you got it under.
+All documentation contributions are submitted according to the
+[CC-BY-SA-4.0 License](https://spdx.org/licenses/CC-BY-SA-4.0.html).
-[cc-by-sa-3.0]: https://spdx.org/licenses/CC-BY-SA-3.0.html
-[documentation]: https://github.com/Pelican-Elegant/documentation
-[elegant]: https://github.com/Pelican-Elegant/elegant
-[mit license]: https://spdx.org/licenses/MIT.html
+All contributions of code where the submitter is not the owner of the submission must indicate
+the source of the code, who the author or copyright holder is, and what license or licensing
+terms are being used to allow the contribution in the Elegant project.
diff --git a/documentation/content/Contributing/contributing-to-the-project.md b/documentation/content/Contributing/contributing-to-the-project.md
new file mode 100644
index 00000000..b74a7da3
--- /dev/null
+++ b/documentation/content/Contributing/contributing-to-the-project.md
@@ -0,0 +1,289 @@
+---
+Title: How Do I Contribute?
+Subtitle:
+Slug: how-to-contribute
+Category: Contributing
+Tags:
+Date: 2019-08-04 22:17
+Summary: This article provides a sweeping overview of the Elegant contribution workflow.
+Keywords:
+Authors: Jack De Winter
+---
+
+[TOC]
+
+Once you have decided to [contribute to the project]({filename}./invitation.md), we need to
+go over some rules and guidelines before you can start. These rules and guidelines help us
+work together as a team and give us a common set of directions that keep us all on the same
+page. In the case of any disagreements on what needs to be done, we can always refer to the
+guidelines to help us find our way from disagreement to consensus.
+
+## Before We Start
+
+This document strives to provide a solid path through contributing a change to Elegant, from
+setting up your environment to submitting and responding to a Pull Request.
+
+To stay focused on that solid path, additional information that is typically needed to provide
+a complete picture of the topic being discussed will be presented in other articles and linked
+to from this article.
+
+Please take the time to familiarize yourself with the information in the attached articles,
+as they will help you build a complete understanding of our entire contribution process.
+
+## Getting The Big Rule Out of the Way
+
+As the project is an open source project, anything you contribute to the project is covered by
+the project's [Contributions License]({filename}./contributing-license.md). If you are not
+willing or unable to abide by those licenses, we cannot have you contribute to the project.
+
+## Primary Goal
+
+The primary goal of this project is to provide a theme for Pelican that provides the
+[Elegant Look and Feel]({filename}./why-look-and-feel.md) to our user's websites. To that end,
+any features or changes must:
+
+- not negatively effect readability and reading experience
+- not cause distraction for the reader
+- any changes must work out of the box with sensible defaults for the user
+
+These are not negotiable.
+
+## Developing Changes Locally
+
+The Elegant project is [hosted in GitHub](https://github.com/Pelican-Elegant/elegant) and
+requires your machine to have a local [Git Client](https://git-scm.com/downloads) to
+contribute. The [Git documentation site](https://git-scm.com/doc) has good instructions and
+videos on how to get started with Git, as well as numerous instructional videos on
+[YouTube](https://www.youtube.com/results?search_query=git+clients) to get you going. If you
+are new to Git, they are a great place to start!
+
+### Read The Guides
+
+In addition to installing Git locally, we request that you take a solid look through the
+following guides. The first guide,
+[Git Tips For Beginners]({filename}./beginners-guide.md), is a walk through of things that our
+team has found useful in the past to help get people up and going with their contributions.
+While this guide is optional, pointing people at this guide has resolved a fair number of
+questions in the past.
+
+The second guide, our team's [Git Commit Guidelines]({filename}./git-commit-guidelines.md),
+is required reading for all contributors. These guidelines document the rules we require every
+contributor to follow when submitting commits for consideration.
+
+To make things easier for contributors, the repository includes configuration to
+[use Commitizen for Git commits]({filename}./commitizen.md). Entering `git-cz` on the command
+line within the repository will walk you through a series of prompts to build a commit message
+that is fully compliant with our guidelines. It's usage is highly recommended to avoid issues.
+
+### Optional Setup
+
+To assist you in preparing your contributions with minimal friction, you can optionally run
+one or more pieces of our automated build pipeline on your local machine. Depending on the
+depth and complexity of your changes, having these present on your local machine are often a
+time saver in terms of detecting bugs before you submit a
+[Pull Request for your changes](#submitting-a-change-for-consideration).
+
+Choosing to run any of these checks locally will shorten the minimum time required to notice a
+failure from 3-5 minutes for them to run on the GitHub machines to an average of 60 seconds or
+less for those same checks to run on your local machine.
+
+#### Running Pre-Commit Hooks Locally
+
+Facilitating the early detecting of pre-commit hook failures, an option is to install the
+[Pre-commit tool]({filename}./pre-commit.md) in your local repository. With the
+Pre-commit tool installed, any commits to your local Elegant repository will be subjected
+to the same verification that is performed when you submit a
+[Pull Request for your changes](#submitting-a-change-for-consideration).
+This tool integrates with your local repository, so once installed it is automatically
+executed as part of your normal `git commit` process.
+
+#### Running the Spell Checker Locally
+
+As the dictionary in the environment that you develop changes in may be different than other
+contributors, the team has elected to include a the
+[yaspeller tool]({filename}./ya-spell-check.md)
+as part of our build pipeline. While this does not integrate with your local repository
+like the Pre-commit tool, running this locally can help shorten the cycle for ensuring that
+your spelling is spot on!
+
+## Making Your Changes to Elegant
+
+With all of the required, recommended and optional setup behind us, and all of the submitting
+of the changes ahead of us, it is time to focus on how to develop features for Elegant. To
+ensure that this topic is given the focus it requires, the article
+[Developing Features For Elegant]({filename}./development-of-features.md)
+is dedicated to providing that information to contributors.
+
+!!! note
+
+ While this section rightfully belongs where it is in terms of workflow, it is recommended that you continue reading this article to it's end. This will allow you to understand what comes after your changes, and may influence implementtion changes to avoid possible problems later on in the workflow.
+
+## Submitting a Change For Consideration
+
+Submitting your changes is performed using the GitHub
+[Pull Request feature](https://help.github.com/en/articles/creating-a-pull-request). Before
+starting the Pull Request, you must push any committed changes from your local repository to
+your forked Elegant repository on GitHub. Once that has been done, go to the
+[Compare Changes page](https://github.com/Pelican-Elegant/elegant/compare) and click on the
+`compare across forks` text right underneath the title.
+
+Across the top of the page, you will see 4 selection drop downs that look like this:
+
+![fork drop downs]({static}/images/compare-changes.png)
+
+These drop downs allow you to select where to compare changes from and to. Leave the first
+selection alone, and unless instructed otherwise, select `next` from the second selection.
+Select the name of your repository fork from the third selection, typically your GitHub account
+name followed by `/Elegant`. Finally, select the branch that your changes are in on the
+forked repository in the last selection.
+
+!!! note
+
+ Typically, most people synchronize the branch name of their local repository with the branch name they push to on their forked repository. If you push your local changes to a different branch on your forked repository, select the name of the branch in the last selection.
+
+Once you confirm that the changes that are now visible at the bottom of the page are the ones
+you intend to submit, press the `Create New Pull Request` button. The edit field at the
+top of the page must have a name that identifies what the change is and is important to relay
+the scope of your change. However, the editor field below it is where most of the required information is.
+
+Currently there are 2 pre-requisites steps and 3 recommended steps as requirements of every
+Pull Request. If you have satisfied these requirements, change the `[ ]` text to `[x]`
+indicating that you have complied with the pre-requisite. Then proceed to the `Description` at
+the bottom and add a description that provides a good amount of information about what you
+changed and why. If there were any reported issues that you resolved, it doesn't hurt to
+mention them in this section.
+
+When you are done with adding that information, double check it and press the
+`Create pull request` button to submit the request.
+
+## Building Your Changes on the GitHub Server
+
+After pushing the `Create pull request` button, you are transferred to another page that is
+mostly the same as any other GitHub Pull Request page. The main difference is the merge
+section near the bottom, where you will see something like the following:
+
+![image]({static}/images/started-pull-request.png)
+
+If the build verifies your changes, all 6 of the current checks will either have a grey box
+in front of them or a green checkmark. If any of the verifications fail, they will have a
+red X in front of the verification that failed. Click on the `Details` text on the right side
+to get more information on why those checks failed.
+
+### Build Verification Actions
+
+To ensure each Pull Request contains solid changes, there are 3 sets of verification actions
+performed on each Pull Request.
+
+The first set of actions are the `Header rules`,
+`Mixed content`, `Pages changed`, and `Redirect rules` which are simple checks with
+pre-defined rule sets. These rules employ simple rule sets looking for changes that are
+outside the scope of the rest of the project, and rarely fire if you keep to the format
+of the other files in the repository.
+
+The next verification action is the Travis CI action that performs a complete build of the
+project, represented by the `continuous-integration/travis-ci/pr` action. A complete build
+of the project often takes 3-5 minutes, so this is the verification action you will be
+waiting on the longest.
+
+It is this part of the build that puts all of the changes through strict checks to make
+sure that the submitted changes are solid.
+
+- install pre-requisites for building
+- [Pre-commit]({filename}./pre-commit.md) on the project source
+- [yaspeller]({filename}./ya-spell-check.md) on the project source
+- publish for the documentation site
+- [w3c_validator](https://pypi.org/project/Online-W3C-Validator/) on the documentation site
+- [html5validator](https://pypi.org/project/html5validator/) on the documentation site
+
+More information on how our team uses Travis CI is detailed
+[in this article]({filename}./travis-ci-and-doc-website.md).
+
+#### Previewing Changes
+
+The final verification action is a simple build and internal deploy of the
+[Elegant documentation website](https://elegant.oncrashreboot.com/), represented by the
+`netlify/pelicanelegant/deploy-preview` action. Clicking on the `Details` text on the
+right side of the action will redirect your browser to temporary deployment of the
+documentation website deployed using [Netlify](https://www.netlify.com/). If the changes
+that your are submitting are documentation changes or have an impact on the look and feel
+of Elegant, you should use the preview to manually verify your changes.
+
+!!! note
+
+ The documentation preview is deployed to Netlify without performing a full build as detailed above, and is not dependant on the full build step. As such, you can manually verify your changes on the preview website while the full build is ongoing.
+
+#### View Previews For Other Pull Requests
+
+This Netlify temporary deployment is also useful tool that can be used to see the effects
+of any Pull Request on the documentation website. For example, if we want to look at what
+the effects of [Pull Request #458](https://github.com/Pelican-Elegant/elegant/pull/458) were,
+we have a solid path to view those changes.
+
+Each of the
+[recently close Pull Requests](https://github.com/Pelican-Elegant/elegant/pulls?q=is%3Apr+is%3Aclosed)
+was built with Netlify support enabled. As such, if you switch from the default
+`Conversation` tab to the `Checks` tab, you can see if Netlify succeeded. If it did
+succeed, there will be a `View more details on Netlify` link at the bottom of the page
+which will take you to the Netlify deployment of the Pull Request. At the top of the
+`Deploy Log` section is a `Preview` button that will take you to the temporary deployment
+of the documentation website, as if you had clicked on the `Details` link from the
+Pull Request page itself.
+
+### What Happens If The Build Detects Errors?
+
+Once you fix any errors that the build detected, go through your normal verification process
+and submit the changes to your forked repository. If your Pull Request is still open, when
+GitHub detects that one of the repository/branch pairings in a Pull Request has been updated,
+it will execute any required checks from the beginning. At that point, you are effectively
+back at the
+[Building Your Changes on the GitHub Server](#building-your-changes-on-the-github-server)
+section above.
+
+This looping will continue until one of two things happen: all errors are dealt with OR you
+give up. At any point before the Pull Request is accepted and merged with the main
+repository, you can push the `Close pull request` button at the bottom of the page and close
+the Pull Request. This will perform a "soft close" on the Pull Request, with the option to
+re-open the Pull Request at a later date.
+
+#### Consider Using a Draft Pull Request
+
+If you want to make sure that your Pull Request builds on the server before submitting it for
+consideration by the team, consider using a Draft Pull Request. Instead of pressing the
+`Create pull request` button in the
+[Building Your Changes on the GitHub Server](#building-your-changes-on-the-github-server)
+section, click on the arrow on the right side of the button and select
+`Create draft pull request`.
+
+![draft pull request]({static}/images/draft-pull-request.png)
+
+A draft request is exactly like a normal Pull Request except that it is not visible to anyone
+other than yourself. In this way, you can make sure the Pull Request is exactly the way
+you want it before asking for it to be considered part of the project.
+
+Something that is often forgotten about Pull Requests, and therefore Draft Pull Requests, is
+that you can edit most of the contents of the Pull Request after you have created it. Use this
+to your advantage as you get your Pull Request ready!
+
+### What Happens If Team Members Ask For Changes?
+
+As we are a team, when changes are submitted for consideration, the team will offer feedback
+on the changes. The feedback will generally fall into 3 categories: yes, no, or almost.
+
+With the "yes" category, the changes will be accepted "as is" into the project.
+
+Conversely, in the "no" category, the changes are rejected, usually with a decent description
+of why they were rejected. Depending on the rejection reason, it may be possible to adjust
+your changes according to feedback in the rejection reason and submit it as a new Pull Request
+at a later date.
+
+In the "almost" category, the feedback will usually contain specific things that one or more of
+the team members want to see changed before it can be merged. This feedback can be a simple
+as a grammar error they want to see fixed, or asking for a more complete article documenting
+how to use your changes. The important part to note about this category is that the team
+feels that after the suggested changes have been performed, you can easily move to the "yes"
+category.
+
+Regardless of what category the feedback for your changes falls into, please remember that we
+are a team and we are at our best when we work together. If you have a disagreement, ask for
+clarifications and initiate a conversation to understand where the reviewer of the Pull Request
+is coming from. Work with that person to help yourself see their viewpoint.
diff --git a/documentation/content/Contributing/development-of-features.md b/documentation/content/Contributing/development-of-features.md
new file mode 100644
index 00000000..70f2d2ae
--- /dev/null
+++ b/documentation/content/Contributing/development-of-features.md
@@ -0,0 +1,25 @@
+---
+Title: Developing Features For Elegant
+Subtitle:
+Slug: developing-for-elegant
+Category: Contributing
+Tags:
+Date: 2019-07-22 23:17
+Summary: Elegant development is typically broken up into three concerns. This article talks about each of them.
+Keywords:
+Authors: Jack De Winter
+---
+
+!!! note
+
+ this document is under construction
+
+In most cases, this default is to have any configuration variables that support
+those changes have a value of `None`. There is a bit more leeway given for supporting plugins,
+which are [covered below](#extending), but even Elegant enhancement to support those plugins
+must follow these rules.
+
+- [Jinja Style]({filename}./jinja-style.md)
+- [Live Reload]({filename}./live-reload.md)
+- [Live Reload With Python]({filename}./live-reload-python.md)
+- [Live Reload With Gulp]({filename}./live-reload-gulp.md)
diff --git a/documentation/content/Contributing/documentation-status.md b/documentation/content/Contributing/documentation-status.md
index ed049a8a..d8588890 100644
--- a/documentation/content/Contributing/documentation-status.md
+++ b/documentation/content/Contributing/documentation-status.md
@@ -40,7 +40,7 @@ Status: draft
| Extra Customization | custom-404.md | Rewritten | Add A Custom 404 Error Page to Your Site | - |
| Extra Customization | custom-style.md | - | Customize Style | - |
| Extra Customization | customize-elegant.md | old? | How to Customize Elegant | - |
-| Extra Customization | meta-data.md | - | Metadata | - |
+| Extra Customization | metadata.md | - | Metadata | - |
| Extra Customization | reading-time.md | Rewritten, Pending, [302](https://github.com/Pelican-Elegant/elegant/issues/302) | Add A Reading Time Estimate to Your Articles | - |
| Footer | add-license.md | - | Add License to your Site | - |
| Footer | hosted-on.md | - | Show Your Host Information | - |
diff --git a/documentation/content/Contributing/elegant-logo.md b/documentation/content/Contributing/elegant-logo.md
index 21db913a..a160126a 100644
--- a/documentation/content/Contributing/elegant-logo.md
+++ b/documentation/content/Contributing/elegant-logo.md
@@ -1,16 +1,24 @@
---
Title: Elegant Logo
-Date: 2019-07-22 21:17
+Subtitle:
Slug: elegant-logo
Category: Contributing
+Tags:
+Date: 2019-07-22 21:17
+Summary: This article provides details on how the current Elegant logo was created.
+Keywords:
Authors: Talha Mansoor
---
-Elegant community held a [discussion](https://github.com/Pelican-Elegant/elegant/issues/190) to decide a Logo for the project. We settled on following icon from [Pelican by Smalllike from the Noun Project](https://thenounproject.com/search/?q=pelican&i=2213839).
+Elegant community held a [discussion](https://github.com/Pelican-Elegant/elegant/issues/190) to decide a Logo for the project. We settled on following icon from
+[Pelican by Smalllike from the Noun Project](https://thenounproject.com/search/?q=pelican&i=2213839)
+.
-
+
-Building on top of it, some modifications were made to it using [Inkscape](https://inkscape.org/).
+Building on top of it, some modifications were made to it using
+[Inkscape](https://inkscape.org/)
+.
-The we cleaned it using [svgo](https://github.com/svg/svgo) tool. It reduced file size by around 50%.
+The we cleaned it using
+[svgo](https://github.com/svg/svgo)
+tool. It reduced file size by around 50%.
```bash
$ svgo -i elegant_logo.svg --pretty
@@ -38,13 +48,17 @@ Done in 80 ms!
8.029 KiB - 52.5% = 3.815 KiB
```
-Then, we converted SVG to PNG using [svgexport](https://github.com/shakiba/svgexport).
+Then, we converted SVG to PNG using
+[svgexport](https://github.com/shakiba/svgexport)
+.
```bash
$ svgexport elegant_logo.svg elegant_logo.png 100%
```
-The resultant file was around 1MB is size. So we optimized it using [ImageOptim](https://imageoptim.com/mac), which reduced the file size by 98%.
+The resultant file was around 1MB is size. So we optimized it using
+[ImageOptim](https://imageoptim.com/mac)
+, which reduced the file size by 98%.
Your can download the files from our Git repository.
diff --git a/documentation/content/Contributing/git-commit-guidelines.md b/documentation/content/Contributing/git-commit-guidelines.md
index 22c4d58c..28c1027f 100644
--- a/documentation/content/Contributing/git-commit-guidelines.md
+++ b/documentation/content/Contributing/git-commit-guidelines.md
@@ -1,111 +1,150 @@
---
Title: Git Commit Guidelines
Subtitle: Mandatory
-Date: 2019-07-20 23:17
Slug: git-commit-guidelines
Category: Contributing
-Authors: Talha Mansoor
+Tags:
+Date: 2019-07-20 23:17
+Summary: Elegant has a mandatory Git commit message format that is described here.
+Keywords:
+Authors: Talha Mansoor, Jack De Winter
---
[TOC]
-Elegant release process is [fully automated]({filename}./automated-release.md). It only works if all commit messages adhere to the set rules.
+The Elegant release process is [fully automated]({filename}./automated-release.md). To make
+this work, all commit message must adhere to a given set of rules.
+
+## Why Have Commit Message Rules?
-Why?
+From the [semantic-release project](https://github.com/semantic-release/semantic-release#commit-message-format):
> semantic-release uses the commit messages to determine the type of changes in the codebase. Following formalized conventions for commit messages, semantic-release automatically determines the next semantic version number, generates a changelog and publishes the release.
-Basically, semantic-release goes through the commit messages, parses them and on its bases makes the decisions of publishing new release and new version number.
+What does that mean? It means that semantic-release parses the commit messages to arrive
+at a unbiased version number for a new release, and then creates that new release. This
+allows for a new release to be put together with little human involvement.
+
+## What are those rules?
+
+The Elegant development team chose to use the
+[Angular Commit Message Conventions](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines)
+as the baseline for the team's commit message conventions.
-What are those rules?
+Our conventions are largely derived from the Angular team's guidelines
+[as documented here](https://gist.github.com/stephenparish/9941e89d80e2bc58a153).
-Elegant development team chose to use [Angular Commit Message Conventions](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines).
+### Is There Something to Help Me With The Rules?
-Following portion is largely derived from their [guidelines](https://gist.github.com/stephenparish/9941e89d80e2bc58a153).
+Reading, understanding, and then getting used to following guidelines may take time. Even
+then, if you are in a hurry, you can sometimes forget what the rules are. It's only human.
-!!! Tip "Use Commitizen"
+Our team has found life easier since we started using
+[Commitizen for Git commits]({filename}./commitizen.md).
+Our project includes configuration for Commitizen that automatically formats each commit
+message to conform to our guidelines by walking you through a series of prompts. When you
+finish those prompts, a new commit messages is authored for you with the information from those
+prompts, following all of the rules in the following sections on the Commit Message Format.
- Reading, understanding and then getting used to following guidelines may take sometime.
+!!! tip
- Make your life easier and [use Commitizen for Git commits]({filename}./commitizen.md).
- It automatically formats the commit message to conform to our guidelines.
+ [Use Commitizen for Git commits]({filename}./commitizen.md). It does make life easier. It automatically formats the commit message to conform to our guidelines.
## Commit Message Format
-Each commit message consists of a **header**, a **body** and a **footer**. The header has a special
-format that includes a **type**, a **scope** and a **subject**:
+Each line of the commit message must be shorter than 101 characters! This allows the message
+to be easier to read on GitHub as well as in various git tools.
+
+Each commit message consists of a **header**, a **body** and a **footer**, as follows:
```text
-():
+