summaryrefslogtreecommitdiff
path: root/lib/gitlab/markup_helper.rb
blob: dda371e65548c2d221ae983d0bd86cd7ab377ed6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
module Gitlab
  module MarkupHelper
    module_function

    # Public: Determines if a given filename is compatible with GitHub::Markup.
    #
    # filename - Filename string to check
    #
    # Returns boolean
    def markup?(filename)
      gitlab_markdown?(filename) ||
        asciidoc?(filename) ||
        filename.downcase.end_with?(*%w(.textile .rdoc .org .creole .wiki
                                        .mediawiki .rst))
    end

    # Public: Determines if a given filename is compatible with
    # GitLab-flavored Markdown.
    #
    # filename - Filename string to check
    #
    # Returns boolean
    def gitlab_markdown?(filename)
      filename.downcase.end_with?(*%w(.mdown .mkd .mkdn .md .markdown))
    end

    # Public: Determines if the given filename has AsciiDoc extension.
    #
    # filename - Filename string to check
    #
    # Returns boolean
    def asciidoc?(filename)
      filename.downcase.end_with?(*%w(.adoc .ad .asciidoc))
    end

    # Public: Determines if the given filename is plain text.
    #
    # filename - Filename string to check
    #
    # Returns boolean
    def plain?(filename)
      filename.downcase.end_with?('.txt') ||
        filename.casecmp('readme').zero?
    end

    def previewable?(filename)
      markup?(filename)
    end
  end
end