多说挂了,用 GitHub Issues 来当评论系统吧 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
imsun
V2EX    分享创造

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

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

    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     Solana     953 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 22:32 PVG 06:32 LAX 15:32 JFK 18:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86