Merge pull request #70 from RobbiNespu/hacktoberfest
Feature: Add Disqus comment integration
This commit is contained in:
commit
3eeb6a6dff
7 changed files with 65 additions and 3 deletions
16
README.md
16
README.md
|
@ -13,6 +13,7 @@ Tale is a minimal Jekyll theme curated for storytellers. Checkout the demo [here
|
||||||
- Syntax highlighting, with the help of Pygments
|
- Syntax highlighting, with the help of Pygments
|
||||||
- Markdown and HTML text formatting
|
- Markdown and HTML text formatting
|
||||||
- Pagination of posts
|
- Pagination of posts
|
||||||
|
- [Enabling Comments (via Disqus)](#enabling-comments-via-disqus)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
There are 3 ways to install this theme
|
There are 3 ways to install this theme
|
||||||
|
@ -112,6 +113,21 @@ $ bundle exec jekyll serve
|
||||||
|
|
||||||
And you're all set! Head over to http://127.0.0.1:4000/ to see your site in action.
|
And you're all set! Head over to http://127.0.0.1:4000/ to see your site in action.
|
||||||
|
|
||||||
|
|
||||||
|
### Enabling Comments (via Disqus)
|
||||||
|
|
||||||
|
Optionally, if you have a Disqus account, you can tell Jekyll to use it to show a comments section below each post.
|
||||||
|
|
||||||
|
To enable it, add the following lines to your Jekyll site:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
disqus: your_disqus_id
|
||||||
|
```
|
||||||
|
|
||||||
|
You can find out more about Disqus' shortnames [here](https://help.disqus.com/installation/whats-a-shortname).
|
||||||
|
|
||||||
|
Comments are disabled by default and will only appear in when adding `comments: true` to that post's YAML Front Matter
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
Found a bug or have a suggestion? Feel free to create an issue or make a pull request!
|
Found a bug or have a suggestion? Feel free to create an issue or make a pull request!
|
||||||
|
|
||||||
|
|
2
_data/theme.yml
Normal file
2
_data/theme.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# Disqus
|
||||||
|
disqus: your_disqus_id
|
30
_includes/disqus_comment.html
Normal file
30
_includes/disqus_comment.html
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<!-- Start disqus -->
|
||||||
|
<script src="{{ "/assets/js/disqusLoader.js" | relative_url }}" /></script>
|
||||||
|
<div id="disqus_thread"><h3>Discussion and feedback</h3></div>
|
||||||
|
<div class="disqus"></div>
|
||||||
|
<div class="disqus-loading"><!-- Please wait, loading comments… --></div>
|
||||||
|
<style>
|
||||||
|
.disqus-placeholder.is-hidden { display: none; }
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
disqusLoader( '.disqus',
|
||||||
|
{
|
||||||
|
scriptUrl: 'https://{{ site.data.theme.disqus }}.disqus.com/embed.js',
|
||||||
|
disqusConfig: function()
|
||||||
|
{
|
||||||
|
this.page.identifier = '{{ page.id }}';
|
||||||
|
this.page.url = '{{ site.baseurl }}/{{ post.url }}';
|
||||||
|
this.page.title = '{{page.title}}';
|
||||||
|
this.callbacks.onReady = [function()
|
||||||
|
{
|
||||||
|
var el = document.querySelector( '.disqus-loading' );
|
||||||
|
if( el.classList )
|
||||||
|
el.classList.add( 'is-hidden' );
|
||||||
|
else
|
||||||
|
el.className += ' ' + 'is-hidden';
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
||||||
|
<!-- End disqus -->
|
|
@ -23,7 +23,9 @@ layout: default
|
||||||
{{ content }}
|
{{ content }}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
{% if page.comments %}
|
||||||
|
{% include disqus_comment.html %}
|
||||||
|
{% endif %}
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
{% if page.next.url %}
|
{% if page.next.url %}
|
||||||
<a href="{{ page.next.url | prepend: site.baseurl }}" class="left arrow">←</a>
|
<a href="{{ page.next.url | prepend: site.baseurl }}" class="left arrow">←</a>
|
||||||
|
@ -33,4 +35,4 @@ layout: default
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<a href="#" class="top">Top</a>
|
<a href="#" class="top">Top</a>
|
||||||
</div>
|
</div>
|
|
@ -2,6 +2,7 @@
|
||||||
layout: post
|
layout: post
|
||||||
title: "Introducing Tale"
|
title: "Introducing Tale"
|
||||||
author: "Chester"
|
author: "Chester"
|
||||||
|
comments: true
|
||||||
---
|
---
|
||||||
|
|
||||||
Tale is a minimal [Jekyll](https://jekyllrb.com/) theme curated for storytellers. It is designed and developed by [myself](https://github.com/chesterhow/) for a friend who writes short stories.
|
Tale is a minimal [Jekyll](https://jekyllrb.com/) theme curated for storytellers. It is designed and developed by [myself](https://github.com/chesterhow/) for a friend who writes short stories.
|
||||||
|
|
11
assets/js/disqusLoader.js
Normal file
11
assets/js/disqusLoader.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
/*
|
||||||
|
disqusLoader.js v1.0
|
||||||
|
A JavaScript plugin for lazy-loading Disqus comments widget.
|
||||||
|
-
|
||||||
|
By Osvaldas Valutis, www.osvaldas.info
|
||||||
|
Available for use under the MIT License
|
||||||
|
*/
|
||||||
|
(function(b,f,l){var r=function(a){a=a.getBoundingClientRect();return{top:a.top+f.body.scrollTop,left:a.left+f.body.scrollLeft}},t=function(a,c){var d=f.createElement("script");d.src=a;d.async=!0;d.setAttribute("data-timestamp",+new Date);d.addEventListener("load",function(){"function"===typeof c&&c()});(f.head||f.body).appendChild(d)};l=function(a,c){var d,e;return function(){var g=this,f=arguments,b=+new Date;d&&b<d+a?(clearTimeout(e),e=setTimeout(function(){d=b;c.apply(g,f)},a)):(d=b,c.apply(g,
|
||||||
|
f))}};var m=!1,n=!1,p=!1,k=!1,h="unloaded",e=!1,q=function(){if(!e||!f.body.contains(e)||"loaded"==e.disqusLoaderStatus)return!0;var a=b.pageYOffset,c=r(e).top;if(c-a>b.innerHeight*n||0<a-c-e.offsetHeight-b.innerHeight*n)return!0;(a=f.getElementById("disqus_thread"))&&a.removeAttribute("id");e.setAttribute("id","disqus_thread");e.disqusLoaderStatus="loaded";"loaded"==h?DISQUS.reset({reload:!0,config:p}):(b.disqus_config=p,"unloaded"==h&&(h="loading",t(k,function(){h="loaded"})))};b.addEventListener("scroll",
|
||||||
|
l(m,q));b.addEventListener("resize",l(m,q));b.disqusLoader=function(a,c){var d={laziness:1,throttle:250,scriptUrl:!1,disqusConfig:!1},b=c,g,h={};for(g in d)Object.prototype.hasOwnProperty.call(d,g)&&(h[g]=d[g]);for(g in b)Object.prototype.hasOwnProperty.call(b,g)&&(h[g]=b[g]);c=h;n=c.laziness+1;m=c.throttle;p=c.disqusConfig;k=!1===k?c.scriptUrl:k;e="string"===typeof a?f.querySelector(a):"number"===typeof a.length?a[0]:a;e.disqusLoaderStatus="unloaded";q()}})(window,document,0);
|
|
@ -17,6 +17,6 @@ Gem::Specification.new do |spec|
|
||||||
spec.add_runtime_dependency "jekyll-feed", "~> 0.10.0"
|
spec.add_runtime_dependency "jekyll-feed", "~> 0.10.0"
|
||||||
spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.5.0"
|
spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.5.0"
|
||||||
|
|
||||||
spec.add_development_dependency "bundler", "~> 1.12"
|
spec.add_development_dependency "bundler", "~> 2.0"
|
||||||
spec.add_development_dependency "rake", "~> 10.0"
|
spec.add_development_dependency "rake", "~> 10.0"
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue