regex - Execute Ruby method on whole page in Middleman -
on middleman-built website, need execute specific ruby code on contents of pages (templates).
for example, if had following helper in config.rb:
def myexample(text) text.gsub("dog","cat") end and in test.html.haml:
= myexample("some text dog.") my previewed , generated /test.html read:
some text cat. however, using several different ways output text needs modified, notably through haml's :markdown filter, prefer not wrap in = myexample("text") helper.
i able run ruby code take contents of pages (preferably) or generated html output (if first option not possible) argument passed such helper.
ideally, code run in both development , build environments, if that's not possible, build enough.
is possible so?
ps. in specific case, use shorthand notation reference other pages , use regular expression , eval() in order replace them relative links data files.
actioncontroller::base has render_to_string method give normal html output rendering partial or page, in string format. allow grab rendered html , modify before rendering real inline template.
in controller:
rendered_html = render_to_string 'your_template_or_partial' # stuff rendered_html render inline: rendered_html.html_safe, layout: 'layouts/application' the html_safe method makes sure rails knows it's safe render html. not want if user input being rendered , have not sanitized it!!!!
if don't want use layout when rendering, remove :layout argument.
Comments
Post a Comment