V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
imsun
V2EX  ›  分享创造

多说挂了,用 GitHub Issues 来当评论系统吧

  •  3
     
  •   imsun ·
    imsun · 2017-04-05 07:18:47 +08:00 · 18300 次点击
    这是一个创建于 2776 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Gitment 是作者实现的一款基于 GitHub Issues 的评论系统。主要面向程序员群体,尤为适合各种静态博客和项目页面。

    Gitment 包括以下特性:

    • 在前端直接引入,不需要任何后端代码
    • 使用 GitHub 账号登录
    • 可以在页面进行查看、发送评论,点赞,@ 等操作
    • 可以在 GitHub 进行编辑、删除评论等操作
    • 有完整的 Markdown / GFM 支持
    • 支持代码高亮
    • 基于 GitHub 的通知
    • 易于自定义

    作者博客的评论系统已迁移至 Gitment 。对于其他使用 GitHub Pages 的博客来说,这个项目可以让你在一个 repo 里同时解决文章和评论问题。

    如果你有什么使用上的问题,请在 GitHub 上开 issue ,不要在示例页面、博客页面或本页面下留言,否则我可能无法及时回复。

    第 1 条附言  ·  2017-04-05 12:10:28 +08:00

    看到有些人认为这是在滥用 GitHub,所以对这个问题作一下额外说明。

    我在开发时也一直有这个疑虑,因此仔细阅读了 GitHub ToS,并在开源前将项目地址、项目描述和项目截图一起发给了 GitHub,询问是否滥用及侵权。GitHub 指出了我之前在界面上侵权的一些地方(已在开源前修正),并对项目本身表示:

    We're pleased to see you making use of the tools and resources available on GitHub.

    因此可以认为这是被 GitHub 接受的行为。但我还是要提醒大家,请保持克制,切勿滥用

    55 条回复    2017-04-07 08:36:45 +08:00
    yangg
        1
    yangg  
       2017-04-05 07:29:35 +08:00 via iPhone
    不能自动创建一个 issue 么?
    imsun
        2
    imsun  
    OP
       2017-04-05 07:35:22 +08:00
    @yangg 不能

    因为 Gitment 只会用作者创建的 issue 生成评论,并用 label 作 ID ,以避免他人恶意开相同 issue 。所以需要作者登录后手动点一下页面上的初始化按钮来创建 issue 。
    loading
        3
    loading  
       2017-04-05 07:40:31 +08:00 via Android
    我们使用 issues 写博客的是不是太有超前了?
    zjqzxc
        4
    zjqzxc  
       2017-04-05 07:48:28 +08:00
    没认真看过 github 的用户协议,不知道这样是不是已经违反用户协议了
    imsun
        5
    imsun  
    OP
       2017-04-05 07:52:58 +08:00   ❤️ 1
    @zjqzxc 这个我在博客(就是那篇[中文简介]( https://imsun.net/posts/gitment-introduction/))里作了说明。

    关于这个问题我读了用户协议,也在开源前向 GitHub 发邮件询问过,他们给的回复是:

    > We're pleased to see you making use of the tools and resources available on GitHub.

    所以我觉得并没有违反用户协议。
    lydasia
        6
    lydasia  
       2017-04-05 07:58:21 +08:00 via iPhone
    很多东西就是这样被中国人玩坏的。
    mokeyjay
        7
    mokeyjay  
       2017-04-05 08:14:56 +08:00 via Android   ❤️ 18
    @lydasia ???外国人用 github 当博客就是创意,中国人用 issue 当评论就是玩坏?
    momocraft
        8
    momocraft  
       2017-04-05 08:15:32 +08:00
    不错哎,晚点加一个
    EyreFree
        9
    EyreFree  
       2017-04-05 08:18:25 +08:00 via iPhone
    滋瓷,🤓
    gimp
        10
    gimp  
       2017-04-05 08:24:46 +08:00
    Cool ~
    imsun
        11
    imsun  
    OP
       2017-04-05 08:26:58 +08:00   ❤️ 2
    @lydasia 你对中国人成见很深嘛。

    不过我的确要再提醒大家一遍,请大家保持克制,切勿滥用。
    harchiko
        12
    harchiko  
       2017-04-05 08:31:52 +08:00 via Android
    很棒! 楼主怼得好!
    irainsoft
        13
    irainsoft  
       2017-04-05 09:01:26 +08:00
    对于技术主题较多的博客是个挺好的选择
    Unknwon
        14
    Unknwon  
       2017-04-05 09:19:57 +08:00
    碉堡了。。
    RqPS6rhmP3Nyn3Tm
        15
    RqPS6rhmP3Nyn3Tm  
       2017-04-05 09:20:41 +08:00 via iPhone   ❤️ 1
    @lydasia 不要把锅都甩给中国人,也不要开地图炮
    lululau
        16
    lululau  
       2017-04-05 09:42:22 +08:00
    👍
    nightwind
        17
    nightwind  
       2017-04-05 09:54:07 +08:00
    Error: API rate limit exceeded for 124.205.32.38. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
    imsun
        18
    imsun  
    OP
       2017-04-05 10:04:08 +08:00
    @nightwind 这是因为 GitHub 对未登录用户访问 API 有频率限制(按访问者 IP 统计)。你点击下面的登录就可以正常访问了。
    rashawn
        19
    rashawn  
       2017-04-05 10:08:35 +08:00 via iPhone
    很好啊 支持啊
    shyling
        20
    shyling  
       2017-04-05 10:13:39 +08:00
    和我博客一样 hhh
    cocoakekeyu
        21
    cocoakekeyu  
       2017-04-05 10:25:25 +08:00
    感觉多了一个授权流程
    mahone3297
        22
    mahone3297  
       2017-04-05 10:31:02 +08:00
    为什么 secret 放在前端是没安全问题的?我还是没看懂。请教下,谁能解答下?给了 client id , secret ,不就能操作 api 了?
    https://github.com/imsun/gitment#about-security
    imsun
        23
    imsun  
    OP
       2017-04-05 10:58:31 +08:00   ❤️ 2
    @mahone3297
    一方面 client ID 和 client secret 并不能独立用来访问 API 。在所有 API 中只有 https://developer.github.com/v3/oauth_authorizations/#delete-an-authorization 里最后三个 API 可以凭借 client ID 和 client secret 访问,但这三个 API 同时需要 access token ,因此在本项目中只有用户本身有能力使用这三个 API ,而且不会造成任何不良影响。
    另一方面,按照 OAuth 的标准( https://tools.ietf.org/html/rfc6749#section-4.1 ),只要有 client ID 和 callback URI 就已经可以保证认证过程安全,别人无法通过 client secret 来影响认证过程的安全性,也无法用来获取用户的 token 。

    另外在开源前,我也找过几个朋友对这个项目进行了测试(包括整天黑站的那种),目前并没有发现安全问题。如果哪位发现了安全问题,请在项目内提 issue ,非常感谢。
    4679kun
        24
    4679kun  
       2017-04-05 11:18:55 +08:00 via Android   ❤️ 1
    能从 disqus 迁移数据吗
    crispgm
        25
    crispgm  
       2017-04-05 11:48:17 +08:00
    我反对。虽然不一定违反什么协议之类,但 issue 系统的约定就是提问题的,如果当作评论甚至某些人直接当博客用,都是不太科学的。中国人还是外国人这么搞,我都只认为是滥用。
    chunqiuyiyu
        26
    chunqiuyiyu  
       2017-04-05 12:40:21 +08:00 via iPhone
    我觉得也是滥用。本来我想把博客搭建到 github 上,但是转念一想博客上不一定都写技术文章,所以老老实实购买了 vps 。
    FEDT
        27
    FEDT  
       2017-04-05 12:51:10 +08:00 via Android
    很不错的样子,找时间换这个试试
    momocraft
        28
    momocraft  
       2017-04-05 13:02:15 +08:00
    在评论框登录时, github 的 oauth 要求了好多权限..这些是必要的吗? 有没有可能只要求写 issue 的权限?

    > This application will be able to read and write all public repository data. This includes the following:
    >
    > Code
    > Issues
    > Pull requests
    > Wikis
    > Settings
    > Webhooks and services
    > Deploy keys
    >
    msg7086
        29
    msg7086  
       2017-04-05 13:14:21 +08:00   ❤️ 1
    @crispgm
    OP: 用 GitHub 做个评论系统吧。
    GitHub: 这挺好啊!资辞!
    crispgm: 这是滥用!反对!

    很有意思……
    imsun
        30
    imsun  
    OP
       2017-04-05 13:17:22 +08:00   ❤️ 1
    @momocraft 这个我也很苦恼。

    GitHub 对权限划分的粒度太粗了,并没有为 issue 部分进一步提供更细粒度的权限, public_repo 已经是为了能写 issue 所获取的最弱的权限了。参见: https://developer.github.com/v3/oauth/#scopes
    shower
        31
    shower  
       2017-04-05 14:42:32 +08:00
    @chunqiuyiyu 谁说 Github Pages 一定要写技术文章了? Github Pages 的 Usage limits 在 https://help.github.com/articles/what-is-github-pages/ 写的很清楚,除了“暴力,垃圾,淫秽,虚假等”的内容是不被允许的,其他你想写什么都可以。
    Senorsen
        32
    Senorsen  
       2017-04-05 15:27:40 +08:00
    挺有创意的…
    ipconfiger
        33
    ipconfiger  
       2017-04-05 15:29:30 +08:00
    你都用 github 了, 难道用 Disqus 会死?
    Antidictator
        34
    Antidictator  
       2017-04-05 15:39:29 +08:00 via Android
    @ipconfiger 如果再加个反代,我觉得会的
    ininit
        35
    ininit  
       2017-04-05 15:53:08 +08:00 via Android
    挺有创意的,支持
    chunqiuyiyu
        36
    chunqiuyiyu  
       2017-04-05 18:08:34 +08:00 via iPhone
    @shower 好吧,我确实没看过这篇使用规范。但是,在上面写非技术文章感觉有些格格不入。
    Senorsen
        37
    Senorsen  
       2017-04-05 19:52:19 +08:00 via Android
    @ipconfiger Disqus 的主域名在国内受污染,何况楼主造轮子其实不管怎么说,都值得鼓励,写的挺好的…
    兄弟你这话说的是不是冲了点儿?
    zsx
        38
    zsx  
       2017-04-05 20:39:29 +08:00
    思考了一下,不太方便把以前的评论数据导出到 GitHub Issue (比如日期),这个大抵需要弄个像 Google Code 那样的 Bot 来弄了
    Orzzzz
        39
    Orzzzz  
       2017-04-06 00:14:40 +08:00
    @crispgm 博客是一个项目,文章就是 PR ,那么评论就是 issue ,你觉着呢?
    ashfinal
        40
    ashfinal  
       2017-04-06 03:55:11 +08:00
    用 GitHub Issues 来做评论系统这个想法很早就有了,也有了实现。
    楼上担心违反什么条款的,肯定是多虑了。 https://github.com/eduardoboucas/staticman
    billie
        41
    billie  
       2017-04-06 08:13:16 +08:00 via Android
    创意不错,支持~
    mcone
        42
    mcone  
       2017-04-06 09:01:18 +08:00
    说实话 关于什么滥用 github 啊 违反 TOS 啊之类的评论 我倒是不怎么在意

    我比较在意的是这个项目的真正实用性——建议 github 在国内这种时不时被 x 一下的样子 感觉能稳定访问 github 的,应该访问 disqus 没啥问题吧。。。另外我跟楼上某位一样,看了下这个 oath 权限,表示。。。可能需要一个小号去专门发评论?额

    不错楼主这个创意蛮不错的 赞一个
    Shazoo
        43
    Shazoo  
       2017-04-06 09:26:53 +08:00
    @imsun 蛮好玩的,这个咋和 hexo 结合起来?
    fhefh
        44
    fhefh  
       2017-04-06 09:40:20 +08:00
    挺好的 先 mark start
    Hstar
        45
    Hstar  
       2017-04-06 10:02:59 +08:00
    先支持一发, 如果能实现所有用了你这个轮子的网站不用分别授权登陆就好了.
    imsun
        46
    imsun  
    OP
       2017-04-06 10:12:21 +08:00
    @Shazoo 可以看上面的中文简介。

    我的博客就是 hexo 的。稍微改一下博客代码,按中文简介里的步骤引入 Gitment ,然后填好 id 、 title 之类的参数就可以了。
    woostundy
        47
    woostundy  
       2017-04-06 10:20:01 +08:00
    很棒,支持
    imsun
        48
    imsun  
    OP
       2017-04-06 10:33:27 +08:00
    @Hstar 正要通过 iframe 实现类似的功能。等下个版本更新会加上。
    junnplus
        49
    junnplus  
       2017-04-06 10:39:08 +08:00
    @shyling 毕竟是小姐姐
    shyling
        50
    shyling  
       2017-04-06 10:50:31 +08:00
    popu111
        51
    popu111  
       2017-04-06 17:19:35 +08:00
    https://github.com/popu125/hyde-pa

    随手给某经典 Hugo 主题加上了,回头换上。
    crispgm
        52
    crispgm  
       2017-04-06 21:53:05 +08:00
    @Orzzzz 功能啊 逻辑啊 当然没毛病 本来就不是关键

    假设 V2EX 关了 去 GitHub 建个项目 “ V2EX on GitHub ”
    全去 issues 发帖回帖 说不定能建设成 GitHub 上最大论坛
    Rocko
        53
    Rocko  
       2017-04-06 22:30:09 +08:00
    Nice~
    Rocko
        54
    Rocko  
       2017-04-06 22:33:52 +08:00
    第二页的评论貌似加载不出
    ruter8
        55
    ruter8  
       2017-04-07 08:36:45 +08:00 via iPhone
    mark 下,改天给博客替换上去,目前用的是 disqus
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2539 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:53 · PVG 13:53 · LAX 21:53 · JFK 00:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.