求助一个 Homeland 框架的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mathzhaoliang
V2EX    问与答

求助一个 Homeland 框架的问题

  •  
  •   mathzhaoliang 2018-12-15 10:45:50 +08:00 1943 次点击
    这是一个创建于 2573 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本来这个问题应该在 ruby-china 上提的,但是那里的人对新手很不友好,只有请 v2 的朋友们帮忙啦。

    我的问题是这样的,我想用 homeland 这个框架建一个论坛: https://github.com/rails-engine/homeland

    这个框架有个问题就是它的 markdown 解析是自己实现的,而我想在论坛里使用 mathjax 数学公式,这样一来会和 markdown 语法有冲突,于是我决定调用外部软件,使用与 latex 兼容的比较好的 pandoc 来将 md 转换为 html 格式。

    它的文档里说,如果你要实现自己的解释器的话,需要这样做:

    在 Homeland::Markup 命名空间下面实现一个新的自定义类,并继承 Homeland::Markup::Base,实现 render 函数,例如:

    新建文件 lib/homeland/markup/ruby_china.rb

    module Homeland module Markup class RubyChina < Base class << self def render(raw) # 在这里编写你的详细转换实现 YouCustomRender.render(raw) end end end end end 

    我的问题是这样的,我理解的是这个 YouCustomRender 指的就是 RubyChina 这个类,raw 应该是个 md 格式的字符串,但是这个函数没有返回值,它是怎么把转换后的字符串传出去的呢?

    第二个问题是,我不懂 ruby,我应该怎样调用 pandoc 命令来渲染 raw 这个输入呢?

    5 条回复    2019-01-15 21:46:47 +08:00
    oott123
        1
    oott123  
       2018-12-15 12:22:56 +08:00 via Android
    ruby 最后一条表达式的值就是返回值

    伸手问题在 v2 也不受欢迎
    mathzhaoliang
        2
    mathzhaoliang  
    OP
       2018-12-15 12:26:33 +08:00
    @oott123 谢谢,那么他写的 `YouCustomRender` 是笔误吗,这里应该是 `RubyChina` 吧?
    我在网上查过很多次这个框架,除了他们论坛上的几个帖子,有用的信息很少。我又不是搞 rails 框架的,很难看懂。
    flyingkid
        3
    flyingkid  
       2018-12-15 14:16:06 +08:00   1
    YouCustomRender 应该就是你调用的渲染器。例如你用 pandoc

    ```
    require 'pandoc-ruby'
    def render(raw)
    # 在这里编写你的详细转换实现
    PandocRuby.convert(raw, :from => :markdown, :to => :html)
    end
    ```
    msg7086
        4
    msg7086  
       2018-12-16 05:46:42 +08:00   2
    看到有人说 Ruby-China 对新手不友好我就笑了。说实话 v2 上的人普遍比 Ruby-China 的人更不友好。从正常讨论到互杠到问候父母家人只要几层楼的功夫。v2 上友好的人到后来都不敢多说话了。

    YouCustomRender 是笔误,应该是 YourCustomRender,就是「你自己的渲染器」,你可以在这里调用任何能返回 HTML 的程序。比如像楼上说的调用 PandocRuby.convert,又比如说如果你想直接调用可执行文件,也可以用

    html, s = Open3.capture2('pandoc', '-xxxxx', '-yyyyy', stdin_data: raw)
    html

    之类的,看你的具体需求了。要定制程序的话,还是得学 Ruby 的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5259 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 03:26 PVG 11:26 LAX 19:26 JFK 22:26
    Do have faith in what you're doing.
    ubaomsnsnddmindexpchomeyahoorakutenmypapermeadowduckbidyahooyoubaozxmzxmasdabnvcgcvbfgdfscvmmhjkxxddcyybgbzznbnccubaouaituacvGXCVETGDGYHFGBCVBFJFHCBRECBCGDGET54WRWRRWERWREWWRWERRWERSDGEWSFDSFSFfbbsubaofhddfgewrdgdfewwrewwretruyutututdfgfgdgdfgtetgdfgtdfgdert4gdfggwr235wer3wevsdfsdfgdfertxcvsdfrwerhfddfgcvbrwfafbdfhjghbmnlghrtygfdscxvxcvxcsvdasfdffgdcvsdftertsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfshasha9178shasha9178shasha9178shasha9178shasha9178liflif2liflif2liflif2liflif2liflif2liblib3liblib3liblib3liblib3liblib3zhazha444zhazha444zhazha444zhazha444zhazha444dende5dendedendendenden2denden21fenfen9fenf619fen619fenfe9fe619sdfsdfsdfsdfsdfzhazh90zhazh0zhaa50zha90zh590zhozhozzhozhzhozhozhozho2lislislls95lili95lils5liss9sdf0ty987sdft876sdft9876sdf09876sd0t9876sdf0ty98sdf0976sdf0ty986sdf0ty96sdf0t76sdf0876df0ty98sf0t876sd0ty76sdy76sdf76sdf0t76sdf0ty9sdf0ty98sdf0ty987sdf0ty98sdf6676sdf876sd876sd876sdf6sdf6sdf9876sdf0tsdf06sdf0ty9776sdf0ty9776sdf0ty76sdf8876sdf0tsd6sdf06s688876sd688sdf86
    neocanable
        5
    neocanable  
       2019-01-15 21:46:47 +08:00
    联系我,我给你实现以下