【问题标题】:Interpret/Render output from puts() as HTML将 puts() 的输出解释/呈现为 HTML
【发布时间】:2011-09-11 06:34:00
【问题描述】:

当我运行我的 ruby​​ 脚本时,我希望输出呈现为 HTML,最好使用浏览器(例如 Chrome)。但是,如果我不必启动 Web 服务,我会非常喜欢,因为我制作网站。我已经尝试过sinatra,但它的问题是每次我对代码进行更改时都必须重新启动服务器,而且它具有我并不真正需要的请求(如 GET/POST 参数) .

我只是更喜欢我的 Ruby 程序的输出显示为 HTML,而不是控制台文本——因为 html 允许更多创意/表现力的输出。有没有好的/简单/有效的方法来做到这一点? (我正在使用 notepad++ 来编辑我的代码,所以如果可以以某种方式将上述内容与它结合起来,那就太棒了)。

非常感谢:)

【问题讨论】:

    标签: html ruby notepad++ render


    【解决方案1】:

    使用 gem shotgun,您可以运行 Sinatra 应用程序,该应用程序会自动重新加载更改而无需重新启动服务器。

    或者,使用像 awesome_print 这样具有 HTML 格式的库,您可以编写一个函数来获取输出并将其保存到文件中。然后在 Chrome 中打开文件。

    如果您不想在 Chrome 中手动刷新页面,您可以查看guard-livereload (https://github.com/guard/guard-livereload),它将使用guard gem 并重新加载 Chrome。 Ryan Bates 在这里有一张截图,http://railscasts.com/episodes/264-guard

    这是一个覆盖 Kernel#puts 的函数,用于将字符串打印到 STDOUT 并将其 HTML 格式版本写入 output.html。

    require 'awesome_print'
    
    module Kernel
        alias :old_puts :puts
        def puts(string)
            old_puts string
            File.open("output.html", "w") do |file|
                file.puts string.ai(:html => true)
            end
        end
    end
    
    puts "test"
    

    【讨论】:

    • 有见地。我会看看/尝试不同的方法。很好的回复!
    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2019-11-29
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多