渲染搭配修身/ Rails的降價:從我遇到了麻煩修身渲染我降價實例VAR
div.container
div.row
div.col-md-8.job_description
markdown:
= @listing.job_description
這只是呈現字符串
這是一個H1 H2 ## ### H3>這是一個報價* *你好再見foo
(其中包含在實際的字符串)無換行符或任何
我該如何正確渲染?謝謝!
渲染搭配修身/ Rails的降價:從我遇到了麻煩修身渲染我降價實例VAR
div.container
div.row
div.col-md-8.job_description
markdown:
= @listing.job_description
這只是呈現字符串
這是一個H1 H2 ## ### H3>這是一個報價* *你好再見foo
(其中包含在實際的字符串)無換行符或任何
我該如何正確渲染?謝謝!
我放棄了使用markdown:
在slim
,曾試過一切。
我結束了創建這個幫手,把它放在隨便什麼文件中app/helpers
def markdown(content)
return '' if content.blank?
markdown = Redcarpet::Markdown.new(Redcarpet::Render::XHTML, autolink: true, space_after_headers: true)
sanitize(markdown.render(content)).html_safe
end
,然後在視圖
= markdown @listing.job_description
當然,您必須安裝redcarpet
寶石。
gem 'redcarpet'
看起來您的降價內容不會在markdown:
下縮進,因此不會被降價處理。
應該看起來更像是這樣的:
div.col-md-8.job_description
markdown:
= @listing.job_description
更多信息請參見this section of the docs。
渲染減價出以這種方式的變量是不可能的,因爲超薄首先渲染降價(或任何其他嵌入式引擎語言)和插到所述可變內容之後。
它是有道理的,因爲Slim的嵌入式引擎標籤旨在作爲一種包含不同語言的聯機方式,因此您可以在其中閱讀它們。如果在模板中沒有以字面形式包含降價,那麼在將Markdown傳遞給Slim之前,使用嵌入式引擎完全沒有優勢(如HTML,並使用'=='阻止Slim進一步處理) 。
我也認爲它是這樣設置的,因爲它旨在提供和簡單的方法將文本插入到與其他所有內容相同的模板中的Markdown--它本身沒有插值方法 - 。
幫手冰人建議是一個很好的方法來做到這一點。我可能會將其稱爲模板之外,但這是因爲我個人偏好在模板內儘可能少地做。
當我這樣做,它只是在屏幕上打印'= @ listing.job_description' –