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

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

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

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

    因为最近在学 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   ·   实用小工具   ·   2542 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:49 · PVG 12:49 · LAX 20:49 · JFK 23:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.