forked from discourse/discourse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupload_markdown.rb
39 lines (33 loc) · 1.12 KB
/
upload_markdown.rb
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
# frozen_string_literal: true
class UploadMarkdown
def initialize(upload)
@upload = upload
end
def to_markdown(display_name: nil)
if FileHelper.is_supported_image?(@upload.original_filename)
image_markdown
elsif FileHelper.is_supported_playable_media?(@upload.original_filename)
playable_media_markdown
else
attachment_markdown(display_name: display_name)
end
end
def image_markdown
""
end
def attachment_markdown(display_name: nil, with_filesize: true)
human_filesize = with_filesize ? " (#{@upload.human_filesize})" : ""
display_name ||= @upload.original_filename
"[#{display_name}|attachment](#{@upload.short_url})#{human_filesize}"
end
def playable_media_markdown
type =
if FileHelper.is_supported_audio?(@upload.original_filename)
"audio"
elsif FileHelper.is_supported_video?(@upload.original_filename)
"video"
end
return attachment_markdown if !type
""
end
end