65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
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
 | 
						|
    PLAIN_FILENAMES = %w[readme index].freeze
 | 
						|
 | 
						|
    # 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' || plain_filename?(filename)
 | 
						|
    end
 | 
						|
 | 
						|
    def previewable?(filename)
 | 
						|
      markup?(filename)
 | 
						|
    end
 | 
						|
 | 
						|
    private
 | 
						|
 | 
						|
    def extension(filename)
 | 
						|
      File.extname(filename).downcase.delete('.')
 | 
						|
    end
 | 
						|
 | 
						|
    def plain_filename?(filename)
 | 
						|
      PLAIN_FILENAMES.include?(filename.downcase)
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |