All Projects → ksco → reblog

ksco / reblog

Licence: MIT license
A blog system using GitHub Issues, powered by React + Redux.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to reblog

Repo Lockdown
GitHub Action that immediately closes and locks issues and pull requests
Stars: ✭ 56 (+69.7%)
Mutual labels:  issues
Eventum
Eventum Issue Tracking System
Stars: ✭ 120 (+263.64%)
Mutual labels:  issues
git2gus
A Github application to keep issues in sync with Agile Accelerator
Stars: ✭ 27 (-18.18%)
Mutual labels:  issues
Export Pull Requests
Export pull requests and/or issues to a CSV file. Supports GitHub, GitLab, and Bitbucket
Stars: ✭ 68 (+106.06%)
Mutual labels:  issues
Tissue
Create Github issues from your code's Exceptions
Stars: ✭ 116 (+251.52%)
Mutual labels:  issues
Issues Helper
🤖 A GitHub Action easily helps you automatically manage issues. Welcome to try.
Stars: ✭ 140 (+324.24%)
Mutual labels:  issues
Blog
github issues reactjs blog
Stars: ✭ 27 (-18.18%)
Mutual labels:  issues
new-issue
A fully customizable Github issues interface. Setup for your repo today!
Stars: ✭ 22 (-33.33%)
Mutual labels:  issues
Acyort
A Node.js static website framework
Stars: ✭ 118 (+257.58%)
Mutual labels:  issues
Github Issue Templates
🔣 A collection of GitHub issue and pull request templates
Stars: ✭ 3,074 (+9215.15%)
Mutual labels:  issues
Django Helpdesk
A Django application to manage tickets for an internal helpdesk. Formerly known as Jutda Helpdesk.
Stars: ✭ 1,198 (+3530.3%)
Mutual labels:  issues
Wuffle
A multi-repository task board for GitHub issues.
Stars: ✭ 93 (+181.82%)
Mutual labels:  issues
Gh Polls
These polls work by pasting individual markdown SVG images into your issue, each wrapped with a link that tracks a vote. A single vote per IP is allowed for a given poll, which are stored in DynamoDB.
Stars: ✭ 1,726 (+5130.3%)
Mutual labels:  issues
Cargo Contribute
Cargo subcommand for contributing to your dependencies
Stars: ✭ 56 (+69.7%)
Mutual labels:  issues
tickets
Basic ticket tracker build on Laravel PHP framework
Stars: ✭ 18 (-45.45%)
Mutual labels:  issues
Gha Mjolnir
🔨 GitHub Action to close issues related to the merge of a pull request.
Stars: ✭ 28 (-15.15%)
Mutual labels:  issues
Github Project Automation Plus
🤖 Automate GitHub Project cards with any webhook event
Stars: ✭ 134 (+306.06%)
Mutual labels:  issues
prepare-commit-msg
Automatically prefix commit messages with the current branch issue number
Stars: ✭ 28 (-15.15%)
Mutual labels:  issues
release-changelog-builder-action
A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want.
Stars: ✭ 515 (+1460.61%)
Mutual labels:  issues
Lock Threads
GitHub Action that locks closed issues and pull requests after a period of inactivity
Stars: ✭ 156 (+372.73%)
Mutual labels:  issues

Reblog

使用 React 技术栈,基于 GitHub Issues 的轻量级博客系统,Demo :KSCO

安装

  1. 注册 GitHub OAuth 应用

    打开注册页面,填写相应选项,注册应用,下面给出了一个表单示例:

    Key Value
    Application name 博客名称,例如:Reblog
    Homepage URL 项目主页,例如:https://github.com/ksco/reblog
    Application description 随便写
    Authorization callback URL 博客地址,例如:https://example.com

    成功创建之后,会得到一个 Client ID 和一个 Client Secret,后面会用到。

  2. 配置项目

    运行命令

    git clone https://github.com/ksco/reblog.git
    cd reblog
    mv src/constants/config.example.js src/constants/config.js

    编辑 src/constants/config.js 文件

    // 博客名称,会显示在页面上方
    export const BLOG_NAME = 'Reblog';
    // 博客的 Slogan,会显示在名称下方
    export const BLOG_SLOGAN = 'Balhblah';
    
    // GitHub 用户名
    export const USERNAME = 'octocat';
    // 要展示的 Repo 名称
    export const REPONAME = 'blog';
    
    // 刚刚拿到的 Client ID 和 Client Secret
    export const CLIENT_ID = 'xxx';
    export const CLIENT_SECRET = 'xxx';
    
    // 博客的地址,必须和之前的 Authorization callback URL 字段保持一致
    export const SITE_URL = 'http://www.example.com';
    
    // 每页显示的博客条数
    export const POSTS_PER_PAGE = 10;
  3. 安装编译

    运行命令

    cd reblog
    npm install
    npm run build

    编译完成后,将 build 目录下的静态文件直接放到博客的根目录下就可以了。

    另外,静态文件的托管也可以考虑 GitHub Pages,不过国内的访问速度似乎比较慢。

CORS

处于安全性的考虑,GitHub 的 OAuth 认证接口不支持跨域访问,所以我写了一个简单的 node.js 脚本,并托管在了 now.sh 上,以实现 CORS 代理,脚本就在本项目中的 cors 目录下,你也可以自己启一个服务,并将 src/constants/api.js 文件下的 ACCESS_URL 变量替换掉即可。

关于安全

  1. 将 Client Secret 放到客户端中似乎是一种较为危险的行为,但因为 Authorization callback URL 的存在,即使拿到了这个 ID,也做不了什么事情。如果你发现确实有安全性问题,请您给我发邮件。

    如果还是不放心,你当然可以把 Client Secret 隐藏到 上面提到的 CORS 代理中,这样就万无一失了。

  2. 如果你不想别人在你的博客中使用 Redux DevTools,可以去除掉 src/store.js 中的 window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || 部分。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].