Module: HighlightJs
- Defined in:
- lib/highlight_js.rb
Constant Summary collapse
- BUNDLED_LANGS =
%w[ bash c cpp csharp css diff go graphql ini java javascript json kotlin less lua makefile xml markdown objectivec perl php php-template plaintext python python-repl r ruby rust scss shell sql swift typescript vbnet wasm yaml ]
Class Method Summary collapse
Class Method Details
.bundle(langs) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/highlight_js.rb', line 50 def self.bundle(langs) result = File.read(HIGHLIGHTJS_DIR + "highlight.min.js") (langs - BUNDLED_LANGS).each do |lang| begin result << "\n" << File.read(HIGHLIGHTJS_DIR + "languages/#{lang}.min.js") rescue Errno::ENOENT # no file, don't care end end result end |
.languages ⇒ Object
44 45 46 47 48 |
# File 'lib/highlight_js.rb', line 44 def self.languages langs = Dir.glob(HIGHLIGHTJS_DIR + "languages/*.js").map { |path| File.basename(path)[0..-8] } langs.sort end |
.path ⇒ Object
69 70 71 |
# File 'lib/highlight_js.rb', line 69 def self.path "/highlight-js/#{Discourse.current_hostname}/#{version SiteSetting.highlighted_languages}.js" end |
.version(lang_string) ⇒ Object
63 64 65 66 67 |
# File 'lib/highlight_js.rb', line 63 def self.version(lang_string) (@lang_string_cache ||= {})[lang_string] ||= Digest::SHA1.hexdigest( bundle lang_string.split("|") ) end |