Skip to content

simlrh/jekyll-github-comments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Jekyll GitHub Comments

A Jekyll plugin to provide static site comments via GitHub pull requests.

When a user clicks "Reply" on your blog, they're linked to the GitHub repo of your website, automatically forked and ready to edit online at the correct file and line number. Once they've added their comment directly to the source code they can send a pull request to have their comment merge into the official repo and put live.

jekyll-github-comments adds Liquid template tags to make adding comments easier for site maintainers and visitors.

Configuration

Add a github_comments section to _config.yaml. The only required key is repo, other keys have the following defaults:

github_comments:
  repo: gituser/gitrepo
  branch: master
  comment_template: comments.html
  comments_template: comments.html

Template tags

The plugin provides two template tags: {% responses %} (a simple container for the comments section and any nested threads) and {% response %} (a block tag containing the comment, with any metadata passed as tag arguments).

<!-- Adds an empty comment section to the page -->
{% responses %}
{% endresponses %}

<!-- Top level comments -->
{% responses %}
  {% response author="Steve" email="steve@nourish.je" date="2016-11-23 16:08:32" param="value" %}
    This is a comment
  {% endresponse %}
  {% response author="Steve" email="steve@nourish.je" date="2016-11-23 16:08:32" param="value" %}
    So is this
  {% endresponse %}
{% endresponses %}

<!-- Threaded comments -->
{% responses %}
  {% response author="Steve" email="steve@nourish.je" date="2016-11-23 16:08:32" param="value" %}
    This is a comment
    {% responses %}
      {% response author="Steve" email="steve@nourish.je" date="2016-11-23 16:08:32" param="value" %}
        This is a reply
        {% responses %}
          {% response author="Steve" email="steve@nourish.je" date="2016-11-23 16:08:32" param="value" %}
            You can nest them as deep as you like
          {% endreponse %}
        {% endresponses %}
      {% endresponse %}
      {% response author="Steve" email="steve@nourish.je" date="2016-11-23 16:08:32" param="value" %}
        A second reply to the top comment
      {% endresponse %}
    {% endresponses %}
  {% endresponse %}
{% endresponses %}

Templates

There must be a two templates in the Jekyll includes path; pnefor individual comments and one for the comments section as a whole. Filenames can be set in _config.yaml.

The following variables are available:

Comments template

Variable Description
{{ subcomments }} Boolean; false if this is the top level of comments
{{ comments }} The comments on this thread level
{{ comment_url }} Link to the file and line no of the comment section on GitHub's edit page

Comment template

Variable Description
{{ comment.anything }} Any parameter used inside {% response param="value" %} - use for comment metadata like author name, email, date, etc
{{ comment.content }} Comment body (use markdownify filter for markdown support)
{{ comment.reply_url }} Link to the file and line no of the comment on GitHub's edit page
{{ comment.replies }} Threaded comment replies formatted according to comments template

Example templates

See this gist for examples of comment and comments templates.

About

A Jekyll plugin to provide static site comments via GitHub pull requests.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages