我正在使用CodeRay和Haml在某些页面上进行语法高亮,我编写了很多Ruby代码.问题是我有这样的事情:
%pre
%code.language-ruby
:preserve
def hello(name)
puts "Hello #{name}!"
end
Run Code Online (Sandbox Code Playgroud)
我不断收到错误,因为Haml一直在尝试评估name字符串中的变量,#{var}语法在Ruby代码中是一个非常常见的习惯用法,并且在很多地方使用它,但是我不能使用这些代码的语法高亮,因为Haml想要评估那些字符串中的变量.
有没有办法告诉Haml在某些地方不这样做?
我正在运行Rails 4,每当我尝试在rails控制台中运行任何东西时,我都会收到以下错误:
Run Code Online (Sandbox Code Playgroud)2.0.0 (main):0 > User.first CodeRay::Scanners::Scanner::ScanError: ***ERROR in scanner.rb:333:in `raise_inspect': no implicit conversion of Array into String (after tokens) tokens: current line: 1 column: 5 pos: 4 matched: nil state: "Error in CodeRay::Scanners::Ruby#scan_tokens, initial state was: :initial" bol?: false, eos?: false surrounding code:没有~~".first"
错误
来自/Users/silasjmatson/.gem/ruby/2.0.0/gems/coderay-1.1.0/lib/coderay/encoders/terminal.rb:145:in`text_token'
2.0.0(主要):0>
我的Gemfile.lock是这样的:
GIT
remote: git://github.com/gregbell/active_admin.git
revision: abb3d454d3a6cb0852be6e7aa4c289ba83e1a966
branch: master
specs:
activeadmin (1.0.0.pre)
arbre (~> 1.0)
bourbon
coffee-rails
devise (~> 3.0)
formtastic (~> 2.3.0.rc2)
inherited_resources (~> 1.3)
jquery-rails
jquery-ui-rails
kaminari (~> 0.13)
rails (>= …Run Code Online (Sandbox Code Playgroud) 我在我的rails应用程序中使用Redcarpet作为markdown工具和coderay用于语法高亮显示.我想要的是在将其发布到数据库之前预览以markdown格式编写的内容.一个更好的选择是实时预览正在写的像stackoveflow.我知道还有很多其他的选择,但有没有办法坚持使用redcarpet和coderay,并且仍然可以预览我的语法突出显示的帖子?大多数预览选项跳过语法高亮部分,他们甚至无法检测代码!至少将该部分检测为代码即可.我只需要在发布之前预览我的帖子.我怎样才能做到这一点?我对使用任何WYSIWYG编辑器也不感兴趣!
我现在正在使用 Jekyll-Bootstrap。在我的本地环境中,我可以在 jekyll 的 _config.yml 中启用 CodeRay 并在我的帖子中使用它,没有任何问题。但是同样的代码不能在github上运行。
我的_config.yml(省略了 jekyll-bootstrap 配置):
# Use kramdown as markdown parser engine.
markdown: kramdown
markdown_ext: markdown,mkd,mkdn,md
textile_ext: textile
kramdown:
auto_ids: true
footnote_nr: 1
entity_output: as_char
toc_levels: 1..6
smart_quotes: lsquo,rsquo,ldquo,rdquo
use_coderay: true
coderay:
coderay_wrap: div
coderay_line_numbers: nil
coderay_tab_width: 4
coderay_bold_every: 10
coderay_css: class
Run Code Online (Sandbox Code Playgroud) require 'coderay'
puts CodeRay.scan('puts "Hello, world!"', :ruby).page
Run Code Online (Sandbox Code Playgroud)
此代码将使用CSS(类)打印完整的HTML页面.
我可以使用CodeRay.scan('puts "Hello, world!"', :ruby).div
如何只打印CSS部分来打印彩色代码?
有stylesheet方法CodeRay::Encoders::HTML::Output,但我怎么称呼它?
如何添加solarized暗的颜色coderay?
我正在考虑调整alpha.rb文件,但不确定哪个css类定义替换为哪个颜色代码.
有更好的想法吗?也许存在一些开箱即用的解决方案?发现这也不知道如何使用它.