github-like-cms

0.0.5 • Public • Published

github-like-cms

A javascript library for using GitHub as a simple CMS. Issues tagged with the "published" tag are used to generate posts.

Installation

npm install github-like-cms

Usage

import glcms from 'github-like-cms'

// Make request with Github API to get the lasts issues with label published
/* @param {String} `username` String, with name of the user or organization
 * @param {String} `repo` String with name of the repository
 * @param {number} `nItems` Number of items to return, default 6
 * @param {number} `page` Number of page to return, default 1
 * @return {posts, actualPage, totalPosts}
 */
await glcms.getLastPosts(username, repo, nItems, page)

// Make request with Github API to get the issues with label published and paginated
/* @param {String} `username` String, with name of the user or organization
 * @param {String} `repo` String with name of the repository
 * @param {number} `nItems` Number of items to return, default 6
 * @param {number} `page` Number of page to return, default 1
 * @return {posts[], actualPage, totalPosts}
 */
await glcms.getPostsPagination(username, repo, nItems, page)

// Generate a post with custom fields and HTML content
/*
 *
 *
 * @param {String} `username` String, with name of the user or organization
 * @param {String} `repo` String with name of the repository
 * @param {String} `slug` String with slug of the post
 * @returns {Post} Array of posts
 */
await glcms.generatePages(username, repo, slug)

// Generate a path (or slug) from the issue title
/*
 * @param {String} `username` String, with name of the user or organization
 * @param {String} `repo` String with name of the repository
 * @returns {Paths[]} Array of posts
 */
await glcms.generatePaths(username, repo)

Additional info

For private repositories, it is necessary to have a personal token. If you use private repositories, comments and issues would not make sense, as no one would be able to open issues.

Objects

Post

      id: string,
      slug: string,
      title: string,
      content: string (html render from markdown),
      description: string (html render from markdown),
      image: string (html render from markdown),
      comments: number,
      date: date,
      author: string,
      authorAvatar: string,
      reactions: Object {
                    '+1': number,
                    '-1': number,
                    laugh: number,
                    hooray: number,
                    confused: number,
                    heart: number,
                    rocket: number,
                    eyes: number
                }

Contributions

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License.


/github-like-cms/

    Package Sidebar

    Install

    npm i github-like-cms

    Weekly Downloads

    1

    Version

    0.0.5

    License

    MIT

    Unpacked Size

    40.7 kB

    Total Files

    25

    Last publish

    Collaborators

    • albertot_dev