2012-05-09 12 views
0

Я управляю блоком Octopress, который основан на Jekyll. Теперь я хотел добавить Javascript, который мне нравится писать в CoffeeScript.Jekyll выходит из конвертера CoffeeScript (с Octopress)

Я после этого Gist создать простой конвертер, который компилирует CoffeeScript в Javascript:

module Jekyll 
    require 'coffee-script' 

    class CoffeeScriptConverter < Converter 
    safe true 
    priority :low 

    def matches(ext) 
     ext =~ /coffee/i 
    end 

    def output_ext(ext) 
     '.js' 
    end 

    def convert(content) 
     begin 
     CoffeeScript.compile content 
     rescue StandardError => e 
     puts "CoffeeScript error: #{e.message}" 
     end 
    end 
    end 
end 

Проблема заключается в том, что сгенерированный файл Javascript имеет все кавычки экранированы (одиночные кавычки по &#8216; и двойные кавычки по &#8220;)

Когда я выдаю сгенерированный код Javascript в методе convert, он выглядит отлично (кавычки не экранируются). Я много гулял, но никто, похоже, не сталкивался с этой проблемой. В чем проблема?

ответ

2

Оказалось, что Octopress запускает контент через RubyPants по умолчанию (см. plugins/octopress_filters.rb). Отключение RubyPants сделало трюк!

+0

Как вы это сделали? Это повлияло на другой контент? Можете ли вы изменить код выше с этим исправлением для других пользователей? – Sukima

+0

Просто закомментируйте эту строку: https://github.com/imathis/octopress/blob/8753a6b00cad6c4c822df79967c6d5a8fb41b4dd/plugins/octopress_filters.rb#L19 –

0

Поскольку RubyPants игнорирует содержимое внутри HTML-комментариев, мы можем отключить фильтрацию RubyPants на лету, окружая вывод в комментариях HTML. Это также устраняет необходимость изменения исходного кода OctoPress.

Я сделал именно это в this gist.

+0

Также хорошее предложение! –

 Смежные вопросы

  • Нет связанных вопросов^_^