一个用 Haskell 写的基于 Github Issues 的静态博客生成器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lyqx
V2EX    分享创造

一个用 Haskell 写的基于 Github Issues 的静态博客生成器

  •  
  •   lyqx 2015-12-13 00:18:12 +08:00 3599 次点击
    这是一个创建于 3644 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虽然是自己独立想到的,但感觉很多人做过类似的东西。

    因为最近在学 Haskell ,所以尝试着用 Haskell 写了一个。

    现在支持的功能:

    1. Markdown 语法
    2. LaTeX 公式展示
    3. 自定义的扩展语法(暂时只支持{{ copyright }}。之后打算以插件的方式弄)

    项目主页:https://github.com/zeqing-guo/gin-haskell

    一个例子:https://github.com/zeqing-guo/gin-haskell/issues/2

    本人学习 Haskell 时间不长,第一次用 Haskell 写这么 real world 的东西,希望有大神指教(其实有的函数写得挺丑的,等期末结束重写那些函数=。=)

    13 条回复    2015-12-15 16:43:59 +08:00
    shajiquan
        1
    shajiquan  
       2015-12-13 01:15:20 +08:00
    Cool !

    这里有个大牛用 Haskell 写的生成静态网站的软件 https://github.com/jgm/yst 分享给你做参考。
    lyqx
        2
    lyqx  
    OP
       2015-12-13 10:02:30 +08:00 via iPhone
    @shajiquan 嗯嗯,谢啦~
    zhouyg
        3
    zhouyg  
       2015-12-14 11:58:38 +08:00
    haskell 你是用什么编辑器的,有什么推荐没?
    bramblex
        5
    bramblex  
       2015-12-15 00:17:15 +08:00
    Haskell 党前来点赞!
    lyqx
        6
    lyqx  
    OP
       2015-12-15 00:32:43 +08:00
    @bramblex

    写得好挫_(:з」∠)_

    看头像和 id 看来是群里的人 XD
    bramblex
        7
    bramblex  
       2015-12-15 00:47:23 +08:00
    @lyqx

    但是我还不怎么能拿 Haskell 写东西…… (_)
    lyqx
        8
    lyqx  
    OP
       2015-12-15 00:57:41 +08:00
    @bramblex

    js 大法好=w=
    bramblex
        9
    bramblex  
       2015-12-15 00:58:51 +08:00
    @lyqx

    然而 js 大法不优雅……虽然特性齐全
    lyqx
        10
    lyqx  
    OP
       2015-12-15 01:02:32 +08:00
    @bramblex

    感觉到了,看到你用 js 写的 CPS 不明觉厉。一直没掌握这东西
    bramblex
        11
    bramblex  
       2015-12-15 12:08:08 +08:00
    @lyqx

    其实这东西跟 Haskell 的 do 语法块干的是类似的东西。

    比如在 Haskell 的 do 语法块里面:

    do
    str <- getLine
    return str

    =>
    getLine >>= (\str-> return str)

    而在我的 BlxScript 里面:
    str = asyncGetLine
    print str

    =>
    callback str =
    print str
    asyncGetLine callback
    lyqx
        12
    lyqx  
    OP
       2015-12-15 15:16:41 +08:00
    @bramblex

    你这段话倒是提醒了我。我记得 CPS 和 Monad 在某种程度上是等价的。

    刚才看到了这个, http://stackoverflow.com/questions/4525919/continuation-passing-style-vs-monads ,的确可以用 CPS 把代码写得像 Monad 。感觉很好玩 XD

    对了,我不是很懂 BlxScript 的语法,你这段程序的 continuation 是什么。
    bramblex
        13
    bramblex  
       2015-12-15 16:43:59 +08:00
    @lyqx 接下来执行 callback ……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     983 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:38 PVG 06:38 LAX 14:38 JFK 17:38
    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