Подсветка синтаксиса в фильтре уценки HAML - PullRequest
2 голосов
/ 09 февраля 2011

Я использую фильтр уценки HAML, например:

:markdown
  This is markdown text, yay!

но я хочу сделать подсветку синтаксиса для кода внутри этого текста, например:

:markdown
  This is markdown text, yay!
  <code lang="ruby">
    def hello(world)
      puts "Hello #{world}"
    end
  </code>

Есть идеи как это сделать? Я знаю, как использовать CodeRay, но не понимаю, как ухватиться за этот текст.

Ответы [ 2 ]

1 голос
/ 16 декабря 2011

http://railscasts.com/episodes/272-markdown-with-redcarpet использует альбинос, нокогири и фрагменты

0 голосов
/ 09 февраля 2011

Markdown поддерживает блоки кода из коробки, но не поддерживает подсветку синтаксиса.

см. http://haml -lang.com / docs / yardoc / file.HAML_REFERENCE.html # markdown-filter о том, какие библиотеки уценок ищет haml для анализа вашей уценки.

Если вы хотите передать свой код фильтру, который выделяет его, вы можете написать свое собственное расширение фильтра для haml. Это на самом деле довольно легко.

http://haml -lang.com / документы / yardoc / Haml / Фильтры / base.html

На вашем месте я бы просто поместил код в виде блока и использовал библиотеку javascript, такую ​​как GeSHi, для выделения кода. http://qbnz.com/highlighter/index.php

Так что вы можете сделать что-то вроде:

  %pre.ruby 
    puts "this is now syntax highlighted"

И если у вас есть геши, он теперь выделен.

...