gh-issues-for-comments
Automatically open a Github issue as blog comments for every articles of your blog. It also creates a gh-comments.json
file to keep track of created issues for future executions and to open issues only for new articles.
This package is useful if you have a statically generated blog, such as Jekyll or Metalsmith, and you want to use Github issues as comments instead of the evil Disqus
. For more details read Replacing Disqus with Github Comments or Using GitHub Issues for Blog Comments
Install
npm install gh-issues-for-comments --save
Usage
; // Array of articles with any shape you like, for example obtained from Markdown files. // If you use default options each article must have 'id' and 'title' propertiesconst articles = id: 1 title: 'Hello world' id: 2 title: 'Hello world 2' ; ;
API
ghComments(articles, options): Promise
Create a Github issue for every article without a comments issue yet. Returns a Promise
with the updated map with <article, issueId>
pairs. It's the same object saved in gh-comments.json
.
articles
is an Array
of articles objects with any shape. Each article will be used to return the data for its issue in getIssue(article)
option.
options
has the following shape:
-
options.username (required)
Type:
string
Github username
-
options.repo (required)
Type:
string
Github repository name
-
options.token (required)
Type:
string
Github OAuth access token. Read here for more details. The only
scope
needed by the package ispublic_repo
. -
options.idProperty (optional)
Type:
string
Default value:
id
Article property to use as unique id
-
options.jsonPath (optional)
Type:
string
Default value:
gh-comments.json
Path to the JSON file where articles issue ids are stored
-
options.getIssue (optional)
Type:
Function
Default value:
{returntitle: `Comments: `body: `This issue is reserved for comments to ****. Leave a comment below and it will be shown in the blog page.`labels: 'comments';}Returns the issue data based on the article