2011-11-23 21:30:09 +00:00
|
|
|
module AsciicastsHelper
|
2011-11-27 12:54:10 +00:00
|
|
|
|
2014-01-18 13:12:10 +00:00
|
|
|
def player(asciicast, options = PlaybackOptions.new)
|
2015-04-03 16:04:00 +00:00
|
|
|
render 'asciicasts/player', asciicast: AsciicastSerializer.new(asciicast),
|
2014-01-18 13:28:01 +00:00
|
|
|
options: options
|
2011-11-27 12:54:10 +00:00
|
|
|
end
|
2012-11-19 21:27:52 +00:00
|
|
|
|
2015-03-27 11:35:34 +00:00
|
|
|
def screenshot_javascript_tag
|
|
|
|
js = assets.find_asset('embed.js').to_s
|
|
|
|
content_tag(:script, js.html_safe)
|
|
|
|
end
|
|
|
|
|
|
|
|
def screenshot_stylesheet_tag
|
|
|
|
css = translate_asset_paths(assets.find_asset('screenshot.css').to_s)
|
|
|
|
content_tag(:style, css.html_safe)
|
|
|
|
end
|
|
|
|
|
2015-07-18 11:13:32 +00:00
|
|
|
def embed_script(asciicast)
|
|
|
|
src = asciicast_url(asciicast, format: :js)
|
|
|
|
id = "asciicast-#{asciicast.id}"
|
|
|
|
%(<script type="text/javascript" src="#{src}" id="#{id}" async></script>).html_safe
|
|
|
|
end
|
|
|
|
|
|
|
|
def embed_html_link(asciicast)
|
|
|
|
img_src = asciicast_url(asciicast, format: :png)
|
|
|
|
url = asciicast_url(asciicast)
|
|
|
|
width = %{width="#{asciicast.image_width}"} if asciicast.image_width
|
|
|
|
%(<a href="#{url}" target="_blank"><img src="#{img_src}" #{width}/></a>)
|
|
|
|
end
|
|
|
|
|
|
|
|
def embed_markdown_link(asciicast)
|
|
|
|
img_src = asciicast_url(asciicast, format: :png)
|
|
|
|
url = asciicast_url(asciicast)
|
|
|
|
"[![asciicast](#{img_src})](#{url})"
|
|
|
|
end
|
|
|
|
|
2013-09-20 21:21:25 +00:00
|
|
|
private
|
|
|
|
|
2015-03-27 11:35:34 +00:00
|
|
|
def translate_asset_paths(css)
|
|
|
|
css.gsub(/['"]\/assets\/(.+?)(-\w{32})?\.(.+?)['"]/) { |m|
|
|
|
|
path = assets.find_asset("#{$1}.#{$3}").pathname
|
|
|
|
"'#{path}'"
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2011-11-23 21:30:09 +00:00
|
|
|
end
|