diff --git a/.commitlintrc.js b/.commitlintrc.js
new file mode 100644
index 00000000000..e11ded62b7b
--- /dev/null
+++ b/.commitlintrc.js
@@ -0,0 +1,36 @@
+module.exports = {
+ parserPreset: 'conventional-changelog-conventionalcommits',
+ rules: {
+ 'body-leading-blank': [1, 'always'],
+ 'footer-leading-blank': [1, 'always'],
+ 'header-max-length': [2, 'always', 72],
+ 'scope-case': [2, 'always', 'lower-case'],
+ 'subject-case': [
+ 2,
+ 'never',
+ ['sentence-case', 'start-case', 'pascal-case', 'upper-case']
+ ],
+ 'subject-empty': [2, 'never'],
+ 'subject-full-stop': [2, 'never', '.'],
+ 'type-case': [2, 'always', 'lower-case'],
+ 'type-empty': [2, 'never'],
+ 'type-enum': [
+ 2,
+ 'always',
+ [
+ 'build',
+ 'chore',
+ 'ci',
+ 'docs',
+ 'feat',
+ 'fix',
+ 'improvement',
+ 'perf',
+ 'refactor',
+ 'revert',
+ 'style',
+ 'test'
+ ]
+ ]
+ }
+};
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 00000000000..a4f424788c3
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,11 @@
+# http://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 2
+indent_style = space
+insert_final_newline = true
+max_line_length = 80
+trim_trailing_whitespace = true
diff --git a/.gitignore b/.gitignore
index f9f62185008..7b1544f3e0b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,191 +1,27 @@
-# General
-.DS_Store
-.AppleDouble
-.LSOverride
-
-
-
-# Thumbnails
-._*
-
-# Files that might appear in the root of a volume
-.DocumentRevisions-V100
-.fseventsd
-.Spotlight-V100
-.TemporaryItems
-.Trashes
-.VolumeIcon.icns
-.com.apple.timemachine.donotpresent
-
-# Directories potentially created on remote AFP share
-.AppleDB
-.AppleDesktop
-Network Trash Folder
-Temporary Items
-.apdisk
-
-# Windows thumbnail cache files
-Thumbs.db
-ehthumbs.db
-ehthumbs_vista.db
-
-# Dump file
-*.stackdump
-
-# Folder config file
-Desktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Windows Installer files
-*.cab
-*.msi
-*.msm
-*.msp
-
-# Windows shortcuts
-*.lnk
-
*~
-
-# temporary files which can be created if a process still has a handle open of a deleted file
-.fuse_hidden*
-
-# KDE directory preferences
-.directory
-
-# Linux trash folder which might appear on any partition or disk
-.Trash-*
-
-# .nfs files are created when an open file is removed but is still being accessed
-.nfs*
-
-# Logs
-logs
+~*
+*.diff
+*.patch
+*.bak
+.DS_Store
+*.swp
+*.swo
*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-
-# nyc test coverage
-.nyc_output
-
-# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# Bower dependency directory (https://bower.io/)
-bower_components
+*.log.*
-# node-waf configuration
-.lock-wscript
+/.vscode/
-# Compiled binary addons (https://nodejs.org/api/addons.html)
-build/Release
-
-# Dependency directories
node_modules/
-jspm_packages/
-
-# Typescript v1 declaration files
-typings/
-
-# Optional npm cache directory
-.npm
-
-# Optional eslint cache
-.eslintcache
-
-# Optional REPL history
-.node_repl_history
-
-# Output of 'npm pack'
-*.tgz
-
-# Yarn Integrity file
-.yarn-integrity
-
-# dotenv environment variables file
-.env
-
-
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-
-
-*.gem
-*.rbc
-/.config
-/coverage/
-/InstalledFiles
-/pkg/
-/spec/reports/
-/spec/examples.txt
-/test/tmp/
-/test/version_tmp/
-/tmp/
-
-# Used by dotenv library to load environment variables.
-# .env
-
-## Specific to RubyMotion:
-.dat*
-.repl_history
-build/
-*.bridgesupport
-build-iPhoneOS/
-build-iPhoneSimulator/
-
-## Specific to RubyMotion (use of CocoaPods):
-#
-# We recommend against adding the Pods directory to your .gitignore. However
-# you should judge for yourself, the pros and cons are mentioned at:
-# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
-#
-# vendor/Pods/
-
-## Documentation cache and generated files:
-/.yardoc/
-/_yardoc/
-/doc/
-/rdoc/
+.sass-cache/
-## Environment normalization:
/.bundle/
/vendor/bundle
-/lib/bundler/man/
-
-# for a library or gem, you might want to ignore these files since the code is
-# intended to run in multiple environments; otherwise, check them in:
-# Gemfile.lock
-# .ruby-version
-# .ruby-gemset
-
-# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
-.rvmrc
+*.gem
yarn.lock
package-lock.json
-
-# jekyll
Gemfile.lock
-package-lock.json
+
_site/
-.sass-cache/
.jekyll-metadata
-.jekyll-cache/
\ No newline at end of file
+.jekyll-cache/
diff --git a/.stylelintignore b/.stylelintignore
index d41818ff2e3..ea41ac3c399 100644
--- a/.stylelintignore
+++ b/.stylelintignore
@@ -1,5 +1,5 @@
-**/*.min.css
+/node_modules/
+/_gh_pages/
**/dist/
+**/*.min.css
**/vendor/
-/_gh_pages/
-/node_modules/
\ No newline at end of file
diff --git a/.stylelintrc b/.stylelintrc
index 286d20b62b7..28df0f66a72 100644
--- a/.stylelintrc
+++ b/.stylelintrc
@@ -273,4 +273,4 @@
"value-list-comma-space-after": "always",
"value-no-vendor-prefix": true
}
-}
\ No newline at end of file
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 8a26b229cbb..00000000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "editor.tabSize": 2,
-}
-
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2cbe9654ba0..0c58b400b8f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -219,4 +219,4 @@ Breaking changes, please check [Update from 1.x to 2.x](https://tianqi.name/jeky
### Enhancements
- Better article directories
-- Dark color theme
\ No newline at end of file
+- Dark color theme
diff --git a/Dockerfile.dev b/Dockerfile.dev
index 88ea5f08cc9..79c2a1fa5f9 100644
--- a/Dockerfile.dev
+++ b/Dockerfile.dev
@@ -15,4 +15,4 @@ RUN bundle install
EXPOSE 4000
-CMD ["bundle", "exec", "jekyll", "help"]
\ No newline at end of file
+CMD ["bundle", "exec", "jekyll", "help"]
diff --git a/Gemfile b/Gemfile
index 1ca3d7c7868..7a68f5a8817 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,4 +1,4 @@
source "https://rubygems.org"
# gem "github-pages", group: :jekyll_plugins
-gemspec
\ No newline at end of file
+gemspec
diff --git a/HOW_TO_RELEASE.md b/HOW_TO_RELEASE.md
index 08ec6ec7829..a10499b073b 100644
--- a/HOW_TO_RELEASE.md
+++ b/HOW_TO_RELEASE.md
@@ -16,4 +16,4 @@
- run `git add . && git commit -m "release: vx.x.x"` to make a release commit
- run `git tag vx.x.x` to add a tag
- run `git push && git push origin vx.x.x` to push
-- edit release on github.com
\ No newline at end of file
+- edit release on github.com
diff --git a/README-zh.md b/README-zh.md
index 5e76fe3441f..bc2ca584dd6 100644
--- a/README-zh.md
+++ b/README-zh.md
@@ -103,4 +103,4 @@ TeXt 使用 [Tomorrow](https://github.com/chriskempson/tomorrow-theme) 作为它
## 协议
-TeXt Theme 遵循 [MIT 协议](https://github.com/kitian616/jekyll-TeXt-theme/blob/master/LICENSE)。
\ No newline at end of file
+TeXt Theme 遵循 [MIT 协议](https://github.com/kitian616/jekyll-TeXt-theme/blob/master/LICENSE)。
diff --git a/README.md b/README.md
index 46c3d57ac75..dcc8570d4ed 100644
--- a/README.md
+++ b/README.md
@@ -86,4 +86,4 @@ TeXt use [Tomorrow](https://github.com/chriskempson/tomorrow-theme) as the highl
## License
-TeXt Theme is [MIT licensed](https://github.com/kitian616/jekyll-TeXt-theme/blob/master/LICENSE).
\ No newline at end of file
+TeXt Theme is [MIT licensed](https://github.com/kitian616/jekyll-TeXt-theme/blob/master/LICENSE).
diff --git a/_config.yml b/_config.yml
index fcac22e189a..11291bbf687 100644
--- a/_config.yml
+++ b/_config.yml
@@ -222,4 +222,4 @@ plugins:
- jekyll-feed
- jekyll-paginate
- jekyll-sitemap
- - jemoji
\ No newline at end of file
+ - jemoji
diff --git a/_data/licenses.yml b/_data/licenses.yml
index eac8ee8eae3..6729af56f6b 100644
--- a/_data/licenses.yml
+++ b/_data/licenses.yml
@@ -13,4 +13,4 @@ CC-BY-NC-4.0:
CC-BY-ND-4.0:
name: Attribution-NoDerivatives 4.0 International
url: https://creativecommons.org/licenses/by-nd/4.0/
- image: https://i.creativecommons.org/l/by-nd/4.0/88x31.png
\ No newline at end of file
+ image: https://i.creativecommons.org/l/by-nd/4.0/88x31.png
diff --git a/_data/variables.yml b/_data/variables.yml
index e3be92d233f..15fdb0497fa 100644
--- a/_data/variables.yml
+++ b/_data/variables.yml
@@ -61,4 +61,4 @@ sources:
css: 'https://unpkg.com/gitalk@1.2.2/dist/gitalk.css'
valine: 'https//unpkg.com/valine/dist/Valine.min.js'
mathjax: 'https://unpkg.com/mathjax@2.7.4/unpacked/MathJax.js?config=TeX-MML-AM_CHTML'
- mermaid: 'https://unpkg.com/mermaid@8.0.0-rc.8/dist/mermaid.min.js'
\ No newline at end of file
+ mermaid: 'https://unpkg.com/mermaid@8.0.0-rc.8/dist/mermaid.min.js'
diff --git a/_includes/analytics-providers/custom.html b/_includes/analytics-providers/custom.html
index c34b97ad90d..58448f777a1 100644
--- a/_includes/analytics-providers/custom.html
+++ b/_includes/analytics-providers/custom.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/analytics.html b/_includes/analytics.html
index 070af6048c6..46ba91d0333 100644
--- a/_includes/analytics.html
+++ b/_includes/analytics.html
@@ -4,4 +4,4 @@
{%- elsif site.analytics.provider == 'custom' -%}
{%- include analytics-providers/custom.html -%}
{%- endif -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/article-footer.html b/_includes/article-footer.html
index 114289e865b..33c3742e837 100644
--- a/_includes/article-footer.html
+++ b/_includes/article-footer.html
@@ -52,4 +52,4 @@
{%- endif -%}
{%- include article/footer/license.html license=_license_data -%}
{%- endif -%}
-
\ No newline at end of file
+
diff --git a/_includes/article-section-navigator.html b/_includes/article-section-navigator.html
index d8812c282af..a88aaf9f0a0 100644
--- a/_includes/article-section-navigator.html
+++ b/_includes/article-section-navigator.html
@@ -51,4 +51,4 @@
{%- endif -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/article/footer/author-profile.html b/_includes/article/footer/author-profile.html
index a061a79ab69..8b0d72d585b 100644
--- a/_includes/article/footer/author-profile.html
+++ b/_includes/article/footer/author-profile.html
@@ -44,4 +44,4 @@
-
\ No newline at end of file
+
diff --git a/_includes/article/footer/custom.html b/_includes/article/footer/custom.html
index 7483e62e78f..edcd06d843b 100644
--- a/_includes/article/footer/custom.html
+++ b/_includes/article/footer/custom.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/article/footer/license.html b/_includes/article/footer/license.html
index 7ea1e1a35ab..a2c1535e0ca 100644
--- a/_includes/article/footer/license.html
+++ b/_includes/article/footer/license.html
@@ -11,4 +11,4 @@
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/article/footer/subscribe.html b/_includes/article/footer/subscribe.html
index 86650f61863..cb9a169a901 100644
--- a/_includes/article/footer/subscribe.html
+++ b/_includes/article/footer/subscribe.html
@@ -3,4 +3,4 @@
{%- assign _paths_rss = __return -%}
{%- include snippets/get-locale-string.html key='SUBSCRIBE' -%}
{%- assign _locale_nav_subscribe = __return -%}
-
\ No newline at end of file
+
diff --git a/_includes/article/top/custom.html b/_includes/article/top/custom.html
index d749475e2c3..12f393d48c9 100644
--- a/_includes/article/top/custom.html
+++ b/_includes/article/top/custom.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/aside/toc.html b/_includes/aside/toc.html
index adc7a6e2cf9..1d19e6a9963 100644
--- a/_includes/aside/toc.html
+++ b/_includes/aside/toc.html
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/_includes/comments-providers/custom.html b/_includes/comments-providers/custom.html
index 90993691ed4..600b9f71d12 100644
--- a/_includes/comments-providers/custom.html
+++ b/_includes/comments-providers/custom.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/comments-providers/disqus.html b/_includes/comments-providers/disqus.html
index c06137c01f6..40223069308 100644
--- a/_includes/comments-providers/disqus.html
+++ b/_includes/comments-providers/disqus.html
@@ -19,4 +19,4 @@
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/comments-providers/gitalk.html b/_includes/comments-providers/gitalk.html
index c481c37d481..f7f5c678bfb 100644
--- a/_includes/comments-providers/gitalk.html
+++ b/_includes/comments-providers/gitalk.html
@@ -36,4 +36,4 @@
});
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/comments.html b/_includes/comments.html
index 41518c6c07f..8029395f216 100644
--- a/_includes/comments.html
+++ b/_includes/comments.html
@@ -8,4 +8,4 @@
{%- elsif site.comments.provider == 'custom' -%}
{%- include comments-providers/custom.html -%}
{%- endif -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/extensions/bilibili.html b/_includes/extensions/bilibili.html
index c97ea5baee0..26f4fa4e00c 100644
--- a/_includes/extensions/bilibili.html
+++ b/_includes/extensions/bilibili.html
@@ -2,4 +2,4 @@
-
\ No newline at end of file
+
diff --git a/_includes/extensions/codepen.html b/_includes/extensions/codepen.html
index 8211dbcfd5c..2240dcf8a61 100644
--- a/_includes/extensions/codepen.html
+++ b/_includes/extensions/codepen.html
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
diff --git a/_includes/extensions/netease-cloud-music.html b/_includes/extensions/netease-cloud-music.html
index 74e32906e08..be0b3b10d7d 100644
--- a/_includes/extensions/netease-cloud-music.html
+++ b/_includes/extensions/netease-cloud-music.html
@@ -1,4 +1,4 @@
\ No newline at end of file
+
diff --git a/_includes/extensions/slideshare.html b/_includes/extensions/slideshare.html
index 90c09d1a56c..310806b44c9 100644
--- a/_includes/extensions/slideshare.html
+++ b/_includes/extensions/slideshare.html
@@ -3,4 +3,4 @@
width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"
style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen>
-
\ No newline at end of file
+
diff --git a/_includes/extensions/ted.html b/_includes/extensions/ted.html
index f66c2682071..1ffc9f49b92 100644
--- a/_includes/extensions/ted.html
+++ b/_includes/extensions/ted.html
@@ -2,4 +2,4 @@
-
\ No newline at end of file
+
diff --git a/_includes/extensions/youtube.html b/_includes/extensions/youtube.html
index 575eee6549e..6f9c2c8746f 100644
--- a/_includes/extensions/youtube.html
+++ b/_includes/extensions/youtube.html
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
diff --git a/_includes/footer.html b/_includes/footer.html
index 145cbd5cdc2..0a4eb29c54c 100644
--- a/_includes/footer.html
+++ b/_includes/footer.html
@@ -34,4 +34,4 @@
-
\ No newline at end of file
+
diff --git a/_includes/head/custom.html b/_includes/head/custom.html
index 7074c982263..33b15087382 100644
--- a/_includes/head/custom.html
+++ b/_includes/head/custom.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/main/bottom/custom.html b/_includes/main/bottom/custom.html
index 079310cf422..b19da2f2f3e 100644
--- a/_includes/main/bottom/custom.html
+++ b/_includes/main/bottom/custom.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/main/top/custom.html b/_includes/main/top/custom.html
index 5b6bf8a84c1..0bf5951b9d0 100644
--- a/_includes/main/top/custom.html
+++ b/_includes/main/top/custom.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/markdown-enhancements.html b/_includes/markdown-enhancements.html
index f81824ae044..fe701b42afc 100644
--- a/_includes/markdown-enhancements.html
+++ b/_includes/markdown-enhancements.html
@@ -14,4 +14,4 @@
source0=site.mermaid source1=page.mermaid -%}
{%- if __return == true -%}
{%- include markdown-enhancements/mermaid.html -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/markdown-enhancements/chart.html b/_includes/markdown-enhancements/chart.html
index 03a879519a0..f1c476d7220 100644
--- a/_includes/markdown-enhancements/chart.html
+++ b/_includes/markdown-enhancements/chart.html
@@ -12,4 +12,4 @@
(_ctx && _text) && (new Chart(_ctx, JSON.parse(_text)) && $this.attr('data-processed', true));
});
});
-
\ No newline at end of file
+
diff --git a/_includes/markdown-enhancements/mathjax.html b/_includes/markdown-enhancements/mathjax.html
index 6f438464d60..9500faa53b2 100644
--- a/_includes/markdown-enhancements/mathjax.html
+++ b/_includes/markdown-enhancements/mathjax.html
@@ -14,4 +14,4 @@
{%- endif -%}
MathJax.Hub.Config(_config);
-
\ No newline at end of file
+
diff --git a/_includes/markdown-enhancements/mermaid.html b/_includes/markdown-enhancements/mermaid.html
index 31e442888b3..64e4dac6e4e 100644
--- a/_includes/markdown-enhancements/mermaid.html
+++ b/_includes/markdown-enhancements/mermaid.html
@@ -7,4 +7,4 @@
});
mermaid.init(undefined, '.language-mermaid');
});
-
\ No newline at end of file
+
diff --git a/_includes/pageview-providers/custom/home.html b/_includes/pageview-providers/custom/home.html
index 9af42a07c57..7fabc80ba5c 100644
--- a/_includes/pageview-providers/custom/home.html
+++ b/_includes/pageview-providers/custom/home.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/paginator.html b/_includes/paginator.html
index 8e5e2bf6b65..595648170ca 100644
--- a/_includes/paginator.html
+++ b/_includes/paginator.html
@@ -95,4 +95,4 @@
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/scripts/components/lightbox.js b/_includes/scripts/components/lightbox.js
index f7fe7b792ad..51689c2e5b3 100644
--- a/_includes/scripts/components/lightbox.js
+++ b/_includes/scripts/components/lightbox.js
@@ -46,4 +46,4 @@
});
});
});
-})();
\ No newline at end of file
+})();
diff --git a/_includes/scripts/variables.html b/_includes/scripts/variables.html
index e9f3b5de8d2..a405379bb80 100644
--- a/_includes/scripts/variables.html
+++ b/_includes/scripts/variables.html
@@ -32,4 +32,4 @@
};
window.TEXT_VARIABLES = TEXT_VARIABLES;
})();
-
\ No newline at end of file
+
diff --git a/_includes/search-providers/custom/search.html b/_includes/search-providers/custom/search.html
index 78c832ee415..1d7eba34603 100644
--- a/_includes/search-providers/custom/search.html
+++ b/_includes/search-providers/custom/search.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/search-providers/default/search-data.js b/_includes/search-providers/default/search-data.js
index f6dbd151354..f20e0c55cd6 100644
--- a/_includes/search-providers/default/search-data.js
+++ b/_includes/search-providers/default/search-data.js
@@ -11,4 +11,4 @@ window.TEXT_SEARCH_DATA={
{%- endfor -%}
]
{%- endfor -%}
-};
\ No newline at end of file
+};
diff --git a/_includes/search-providers/default/search.html b/_includes/search-providers/default/search.html
index c5c8c5e999b..a21512cf3f1 100644
--- a/_includes/search-providers/default/search.html
+++ b/_includes/search-providers/default/search.html
@@ -15,4 +15,4 @@
-
\ No newline at end of file
+
diff --git a/_includes/search-providers/google-custom-search-engine/search.html b/_includes/search-providers/google-custom-search-engine/search.html
index 2ec2afaed0e..cf132ab7c57 100644
--- a/_includes/search-providers/google-custom-search-engine/search.html
+++ b/_includes/search-providers/google-custom-search-engine/search.html
@@ -18,4 +18,4 @@
gcse.appendChild(gcseSearchresults);
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/sharing-providers/addtoany.html b/_includes/sharing-providers/addtoany.html
index 4f6997c6ed1..a433a1bfea3 100644
--- a/_includes/sharing-providers/addtoany.html
+++ b/_includes/sharing-providers/addtoany.html
@@ -7,4 +7,4 @@
-
\ No newline at end of file
+
diff --git a/_includes/sharing-providers/custom.html b/_includes/sharing-providers/custom.html
index 98cc0b30219..d2b17d2ef08 100644
--- a/_includes/sharing-providers/custom.html
+++ b/_includes/sharing-providers/custom.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
diff --git a/_includes/snippets/assign.html b/_includes/snippets/assign.html
index 730f870e704..c2691f5cfff 100644
--- a/_includes/snippets/assign.html
+++ b/_includes/snippets/assign.html
@@ -6,4 +6,4 @@
{%- endif -%}
{%- else -%}
{%- assign __return = include.source1 -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/snippets/get-article-title.html b/_includes/snippets/get-article-title.html
index 1ae86a95163..395b7936179 100644
--- a/_includes/snippets/get-article-title.html
+++ b/_includes/snippets/get-article-title.html
@@ -8,4 +8,4 @@
{%- assign __return = __return -%}
{%- else -%}
{%- assign __return = nil -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/snippets/get-lang.html b/_includes/snippets/get-lang.html
index fa2bccacf1b..028c52a5725 100644
--- a/_includes/snippets/get-lang.html
+++ b/_includes/snippets/get-lang.html
@@ -3,4 +3,4 @@
{%- assign __return = page.lang -%}
{%- elsif site.lang -%}
{%- assign __return = site.lang -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/snippets/get-locale-string.html b/_includes/snippets/get-locale-string.html
index 048a2df7735..a7069ae1759 100644
--- a/_includes/snippets/get-locale-string.html
+++ b/_includes/snippets/get-locale-string.html
@@ -9,4 +9,4 @@
{%- assign __return = _local_lang[include.key] -%}
{%- else -%}
{%- assign __return = _local_lang_en[include.key] -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/snippets/get-nav-url.html b/_includes/snippets/get-nav-url.html
index fb450346f7e..3b1b1229f92 100644
--- a/_includes/snippets/get-nav-url.html
+++ b/_includes/snippets/get-nav-url.html
@@ -5,4 +5,4 @@
{%- else -%}
{%- include snippets/prepend-baseurl.html path=include.path -%}
{%- assign __return = __return -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/snippets/get-sources.html b/_includes/snippets/get-sources.html
index 8136564f032..0de1cb533e8 100644
--- a/_includes/snippets/get-sources.html
+++ b/_includes/snippets/get-sources.html
@@ -1,2 +1,2 @@
{%- assign _sources = site.sources | default: site.data.variables.default.sources -%}
-{%- assign __return = site.data.variables.sources[_sources] -%}
\ No newline at end of file
+{%- assign __return = site.data.variables.sources[_sources] -%}
diff --git a/_includes/snippets/get-string-from-locale-config.html b/_includes/snippets/get-string-from-locale-config.html
index 004e540c289..03325fab2ef 100644
--- a/_includes/snippets/get-string-from-locale-config.html
+++ b/_includes/snippets/get-string-from-locale-config.html
@@ -4,4 +4,4 @@
{%- assign __return = include.locale[_lang] -%}
{%- else -%}
{%- assign __return = include.locale.en -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/snippets/is_collection.html b/_includes/snippets/is_collection.html
index e567ac33389..559a624c8d2 100644
--- a/_includes/snippets/is_collection.html
+++ b/_includes/snippets/is_collection.html
@@ -3,4 +3,4 @@
{%- assign __return = true -%}
{%- else -%}
{%- assign __return = false -%}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/_includes/snippets/prepend-path.html b/_includes/snippets/prepend-path.html
index 7f2b7fb48cb..5f6e904ee47 100644
--- a/_includes/snippets/prepend-path.html
+++ b/_includes/snippets/prepend-path.html
@@ -1 +1 @@
-{%- assign __return = include.path | prepend: '/' | prepend: include.prepend_path | replace:'///','/' | replace:'//','/' -%}
\ No newline at end of file
+{%- assign __return = include.path | prepend: '/' | prepend: include.prepend_path | replace:'///','/' | replace:'//','/' -%}
diff --git a/_includes/svg/icon/social/behance.svg b/_includes/svg/icon/social/behance.svg
index 1d9a31c2440..bba499cbcc1 100644
--- a/_includes/svg/icon/social/behance.svg
+++ b/_includes/svg/icon/social/behance.svg
@@ -1,3 +1,3 @@
\ No newline at end of file
+
diff --git a/_includes/svg/icon/social/facebook.svg b/_includes/svg/icon/social/facebook.svg
index 02cd0660867..ba901bdd053 100644
--- a/_includes/svg/icon/social/facebook.svg
+++ b/_includes/svg/icon/social/facebook.svg
@@ -1,3 +1,3 @@
\ No newline at end of file
+
diff --git a/_includes/svg/icon/social/flicker.svg b/_includes/svg/icon/social/flicker.svg
index 1519b1c64dc..eaacc73424f 100644
--- a/_includes/svg/icon/social/flicker.svg
+++ b/_includes/svg/icon/social/flicker.svg
@@ -2,4 +2,4 @@
-
\ No newline at end of file
+
diff --git a/_includes/svg/icon/social/linkedin.svg b/_includes/svg/icon/social/linkedin.svg
index aeaf1fa1430..3c26dbc3440 100644
--- a/_includes/svg/icon/social/linkedin.svg
+++ b/_includes/svg/icon/social/linkedin.svg
@@ -1,3 +1,3 @@
\ No newline at end of file
+
diff --git a/_includes/svg/icon/social/medium.svg b/_includes/svg/icon/social/medium.svg
index a8b4cf3c4a5..2dfdd92b432 100644
--- a/_includes/svg/icon/social/medium.svg
+++ b/_includes/svg/icon/social/medium.svg
@@ -1,3 +1,3 @@
\ No newline at end of file
+
diff --git a/_includes/svg/icon/social/qq.svg b/_includes/svg/icon/social/qq.svg
index f15168b732b..a305a5b07e6 100644
--- a/_includes/svg/icon/social/qq.svg
+++ b/_includes/svg/icon/social/qq.svg
@@ -1,3 +1,3 @@
\ No newline at end of file
+
diff --git a/_includes/svg/icon/social/weibo.svg b/_includes/svg/icon/social/weibo.svg
index d7f1652702e..2ccd8b11cea 100644
--- a/_includes/svg/icon/social/weibo.svg
+++ b/_includes/svg/icon/social/weibo.svg
@@ -1,6 +1,6 @@
-
+
diff --git a/_includes/svg/icon/social/weixin.svg b/_includes/svg/icon/social/weixin.svg
index 67ad5fb5063..c2ed41bbc68 100644
--- a/_includes/svg/icon/social/weixin.svg
+++ b/_includes/svg/icon/social/weixin.svg
@@ -1,3 +1,3 @@
\ No newline at end of file
+
diff --git a/_includes/svg/icon/social/zhihu.svg b/_includes/svg/icon/social/zhihu.svg
index 2fec9de0c70..210fb2e339e 100644
--- a/_includes/svg/icon/social/zhihu.svg
+++ b/_includes/svg/icon/social/zhihu.svg
@@ -1,3 +1,3 @@
\ No newline at end of file
+
diff --git a/_includes/svg/logo.svg b/_includes/svg/logo.svg
index 5ad04a686ab..740dd3e7209 100644
--- a/_includes/svg/logo.svg
+++ b/_includes/svg/logo.svg
@@ -5,4 +5,4 @@
-
\ No newline at end of file
+
diff --git a/_layouts/404.html b/_layouts/404.html
index 25a313f19b4..4dd94a68352 100644
--- a/_layouts/404.html
+++ b/_layouts/404.html
@@ -10,4 +10,4 @@ 404
-{{ content }}
\ No newline at end of file
+{{ content }}
diff --git a/_layouts/archive.html b/_layouts/archive.html
index 1887c9ef5ee..02412a6f03b 100644
--- a/_layouts/archive.html
+++ b/_layouts/archive.html
@@ -36,4 +36,4 @@
{%- include scripts/archieve.js -%}
-{{ content }}
\ No newline at end of file
+{{ content }}
diff --git a/_layouts/article.html b/_layouts/article.html
index dd4a650a3d4..80f3b3ca704 100644
--- a/_layouts/article.html
+++ b/_layouts/article.html
@@ -26,4 +26,4 @@
\ No newline at end of file
+
diff --git a/_layouts/articles.html b/_layouts/articles.html
index a5b3ab81743..00738a10446 100644
--- a/_layouts/articles.html
+++ b/_layouts/articles.html
@@ -86,4 +86,4 @@
{%- endif -%}
-{{ content }}
\ No newline at end of file
+{{ content }}
diff --git a/_layouts/base.html b/_layouts/base.html
index f8003d5649a..8a025727427 100644
--- a/_layouts/base.html
+++ b/_layouts/base.html
@@ -22,4 +22,4 @@
{%- include scripts/common.js -%}