module Gitlab module MarkupHelper extend self MARKDOWN_EXTENSIONS = %w(mdown mkd mkdn md markdown).freeze ASCIIDOC_EXTENSIONS = %w(adoc ad asciidoc).freeze OTHER_EXTENSIONS = %w(textile rdoc org creole wiki mediawiki rst).freeze EXTENSIONS = MARKDOWN_EXTENSIONS + ASCIIDOC_EXTENSIONS + OTHER_EXTENSIONS # Public: Determines if a given filename is compatible with GitHub::Markup. # # filename - Filename string to check # # Returns boolean def markup?(filename) EXTENSIONS.include?(extension(filename)) end # Public: Determines if a given filename is compatible with # GitLab-flavored Markdown. # # filename - Filename string to check # # Returns boolean def gitlab_markdown?(filename) MARKDOWN_EXTENSIONS.include?(extension(filename)) end # Public: Determines if the given filename has AsciiDoc extension. # # filename - Filename string to check # # Returns boolean def asciidoc?(filename) ASCIIDOC_EXTENSIONS.include?(extension(filename)) end # Public: Determines if the given filename is plain text. # # filename - Filename string to check # # Returns boolean def plain?(filename) extension(filename) == 'txt' || filename.casecmp('readme').zero? end def previewable?(filename) markup?(filename) end private def extension(filename) File.extname(filename).downcase.delete('.') end end end