From d7d3be1130c665cc7fab9f05dbf32335229137a6 Mon Sep 17 00:00:00 2001 From: James Anderson <me@jamesaanderson.com> Date: Thu, 25 Jul 2013 19:03:23 -0700 Subject: [PATCH] Add audio onebox http://meta.discourse.org/t/audio-html5-tag/8168 --- app/assets/stylesheets/application/compose.css.scss | 3 +++ .../stylesheets/application/topic-post.css.scss | 3 +++ lib/oneboxer/audio_onebox.rb | 12 ++++++++++++ lib/oneboxer/video_onebox.rb | 2 +- 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 lib/oneboxer/audio_onebox.rb diff --git a/app/assets/stylesheets/application/compose.css.scss b/app/assets/stylesheets/application/compose.css.scss index f837593a8..4bf610116 100644 --- a/app/assets/stylesheets/application/compose.css.scss +++ b/app/assets/stylesheets/application/compose.css.scss @@ -299,6 +299,9 @@ webkit-border-radius: 4px; ms-border-radius: 4px; } + audio { + max-width: 100%; + } } #wmd-preview { border: 1px dashed $gray; diff --git a/app/assets/stylesheets/application/topic-post.css.scss b/app/assets/stylesheets/application/topic-post.css.scss index dac676909..f925244a5 100644 --- a/app/assets/stylesheets/application/topic-post.css.scss +++ b/app/assets/stylesheets/application/topic-post.css.scss @@ -515,6 +515,9 @@ img { max-width: 100%; } + audio { + max-width: 100%; + } .topic-body { position: relative; .contents { diff --git a/lib/oneboxer/audio_onebox.rb b/lib/oneboxer/audio_onebox.rb new file mode 100644 index 000000000..c2fda69aa --- /dev/null +++ b/lib/oneboxer/audio_onebox.rb @@ -0,0 +1,12 @@ +require_dependency 'oneboxer/base_onebox' + +module Oneboxer + class AudioOnebox < BaseOnebox + + matcher /^https?:\/\/.*\.mp3$/ + + def onebox + "<audio controls><source src='#{@url}'><a href='#{@url}'>#{@url}</a></audio>" + end + end +end diff --git a/lib/oneboxer/video_onebox.rb b/lib/oneboxer/video_onebox.rb index 2af9938f6..e3924069f 100644 --- a/lib/oneboxer/video_onebox.rb +++ b/lib/oneboxer/video_onebox.rb @@ -3,7 +3,7 @@ require_dependency 'oneboxer/base_onebox' module Oneboxer class VideoOnebox < BaseOnebox - matcher /^https?:\/\/.*\.(mov|mp4|ogg)$/ + matcher /^https?:\/\/.*\.(mov|mp4)$/ def onebox "<video width='100%' height='100%' controls><source src='#{@url}'><a href='#{@url}'>#{@url}</a></video>"