module HighlightJs def self.languages Dir.glob(File.dirname(__FILE__) << "/assets/lang/*.js").map do |path| File.basename(path)[0..-4] end end def self.bundle(langs) path = File.dirname(__FILE__) << "/assets/" result = File.read(path + "highlight.js") langs.each do |lang| begin result << "\n" << File.read(path + "lang/#{lang}.js") rescue Errno::ENOENT # no file, don't care end end result end def self.version(lang_string) (@lang_string_cache ||= {})[lang_string] ||= Digest::SHA1.hexdigest(bundle lang_string.split("|")) end def self.path "/highlight-js/#{Discourse.current_hostname}/#{version SiteSetting.highlighted_languages}.js" end end