-
-
Notifications
You must be signed in to change notification settings - Fork 16.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Feature] Staticman v3 Support (#440)
* Added Staicman support * Corrected template for staticman.yml * Edit for coherence with _includes/disqus.html * Updated documentation for Staticman * Updated License to give credits to Michale Rose * Update LICENSE * add more staticman details to readme * Clearer instructions about reCAPTCHA in YML * Nest reCAPTCHA param inside Staticman * Prepend all css selectors with .staticman-comments Edit suggested by theme owner to avoid CSS rules overriding. * Add myself to the change log * Update _config.yml
- Loading branch information
1 parent
018bac4
commit d1c8b2f
Showing
14 changed files
with
976 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<article id="comment{{ include.index }}" class="js-comment comment" itemprop="comment" itemscope itemtype="https://schema.org/Comment"> | ||
<div class="comment__avatar-wrapper"> | ||
<img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80" alt="{{ include.name }}"> | ||
</div> | ||
<div class="comment__content-wrapper"> | ||
<h4 class="comment__author" itemprop="author" itemscope itemtype="https://schema.org/Person"> | ||
{% unless include.url == blank %} | ||
<span itemprop="name"><a rel="external nofollow" itemprop="url" href="{{ include.url }}">{{ include.name }}</a></span> | ||
{% else %} | ||
<span itemprop="name">{{ include.name }}</span> | ||
{% endunless %} | ||
</h4> | ||
<p class="comment__date"> | ||
{% if include.date %} | ||
{% if include.index %}<a href="#comment{{ include.index }}" itemprop="url">{% endif %} | ||
<time datetime="{{ include.date | date_to_xmlschema }}" itemprop="datePublished">{{ include.date | date: "%B %d, %Y at %I:%M %p" }}</time> | ||
{% if include.index %}</a>{% endif %} | ||
{% endif %} | ||
</p> | ||
<div itemprop="text">{{ include.message | markdownify }}</div> | ||
</div> | ||
</article> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
{% if site.staticman.repository and site.staticman.branch %} | ||
<div class="page__comments"> | ||
<!-- Start static comments --> | ||
<div class="js-comments"> | ||
{% if site.data.comments[page.slug] %} | ||
<h3 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h3> | ||
{% assign comments = site.data.comments[page.slug] | sort %} | ||
{% for comment in comments %} | ||
{% assign email = comment[1].email %} | ||
{% assign name = comment[1].name %} | ||
{% assign url = comment[1].url %} | ||
{% assign date = comment[1].date %} | ||
{% assign message = comment[1].message %} | ||
{% include staticman-comment.html index=forloop.index email=email name=name url=url date=date message=message %} | ||
{% endfor %} | ||
{% endif %} | ||
</div> | ||
<!-- End static comments --> | ||
<!-- Start new comment form --> | ||
<div class="page__comments-form"> | ||
<h3 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h3> | ||
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p> | ||
<form id="new_comment" class="page__comments-form js-form form" method="post" action="{{ site.staticman.endpoint | default: 'https://staticman3.herokuapp.com/v3/entry/github/' }}{{ site.staticman.repository }}/{{ site.staticman.branch }}/comments"> | ||
<div class="form-group"> | ||
<label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label><br> | ||
<textarea type="text" rows="12" cols="36" id="comment-form-message" name="fields[message]" tabindex="1"></textarea> | ||
<div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div> | ||
</div> | ||
<div class="form-group"> | ||
<label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label> | ||
<input type="text" id="comment-form-name" name="fields[name]" tabindex="2" /> | ||
</div> | ||
<div class="form-group"> | ||
<label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label> | ||
<input type="email" id="comment-form-email" name="fields[email]" tabindex="3" /> | ||
</div> | ||
<div class="form-group"> | ||
<label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label> | ||
<input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/> | ||
</div> | ||
<div class="form-group hidden" style="display: none;"> | ||
<input type="hidden" name="options[origin]" value="{{ page.url | absolute_url }}"> | ||
<input type="hidden" name="options[slug]" value="{{ page.slug }}"> | ||
<label for="comment-form-location">Not used. Leave blank if you are a human.</label> | ||
<input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/> | ||
{% if site.staticman.reCaptcha.siteKey %}<input type="hidden" name="options[reCaptcha][siteKey]" value="{{ site.staticman.reCaptcha.siteKey }}">{% endif %} | ||
{% if site.staticman.reCaptcha.secret %}<input type="hidden" name="options[reCaptcha][secret]" value="{{ site.staticman.reCaptcha.secret }}">{% endif %} | ||
</div> | ||
<!-- Start comment form alert messaging --> | ||
<p class="hidden js-notice"> | ||
<strong class="js-notice-text"></strong> | ||
</p> | ||
<!-- End comment form alert messaging --> | ||
{% if site.staticman.reCaptcha.siteKey %} | ||
<div class="form-group"> | ||
<div class="g-recaptcha" data-sitekey="{{ site.staticman.reCaptcha.siteKey }}"></div> | ||
</div> | ||
{% endif %} | ||
<div class="form-group"> | ||
<button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--primary btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button> | ||
</div> | ||
</form> | ||
</div> | ||
<!-- End new comment form --> | ||
<!-- Load reCaptcha if site key is set --> | ||
{% if site.staticman.reCaptcha.siteKey %} | ||
<script async src="https://www.google.com/recaptcha/api.js"></script> | ||
{% endif %} | ||
</div> | ||
<!-- Load script to handle comment form submission --> | ||
{% include staticman-script.html %} | ||
{% endif %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
{% if site.staticman.repository and site.staticman.branch %} | ||
<!-- doing something a bit funky here because I want to be careful not to include JQuery twice! --> | ||
<script> | ||
if (typeof jQuery == 'undefined') { | ||
document.write('<script src="/beautiful-jekyll/js/jquery-1.11.2.min.js"></scr' + 'ipt>'); | ||
} | ||
</script> | ||
<script> | ||
(function ($) { | ||
var $comments = $('.js-comments'); | ||
|
||
$('#new_comment').submit(function () { | ||
var form = this; | ||
|
||
$(form).addClass('disabled'); | ||
|
||
$.ajax({ | ||
type: $(this).attr('method'), | ||
url: $(this).attr('action'), | ||
data: $(this).serialize(), | ||
contentType: 'application/x-www-form-urlencoded', | ||
success: function (data) { | ||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}'); | ||
$('.page__comments-form .js-notice').removeClass('notice--danger'); | ||
$('.page__comments-form .js-notice').addClass('notice--success'); | ||
showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}'); | ||
}, | ||
error: function (err) { | ||
console.log(err); | ||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}'); | ||
$('.page__comments-form .js-notice').removeClass('notice--success'); | ||
$('.page__comments-form .js-notice').addClass('notice--danger'); | ||
showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}'); | ||
$(form).removeClass('disabled'); | ||
} | ||
}); | ||
|
||
return false; | ||
}); | ||
|
||
function showAlert(message) { | ||
$('.page__comments-form .js-notice').removeClass('hidden'); | ||
$('.page__comments-form .js-notice-text').html(message); | ||
} | ||
})(jQuery); | ||
</script> | ||
{% endif %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.