class Content::Pipeline::Filters::Gemoji
Constants
- EmojiLiquidTag
- EmojiPattern
- EmojiTag
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
Content::Pipeline::Filter::new
# File lib/content/pipeline/filters/gemoji.rb, line 12 def initialize(*args) super(*args) @opts[:asset_path] ||= \ "/assets" end
Private Instance Methods
gemoji()
click to toggle source
# File lib/content/pipeline/filters/gemoji.rb, line 19 def gemoji @str = @str.to_nokogiri_fragment @str.xpath(".//child::text()").each do |n| parse_node( n ) end end
parse_node(node)
click to toggle source
# File lib/content/pipeline/filters/gemoji.rb, line 28 def parse_node(node) return node if node.ancestors.any? do |n| ["pre", "code"].include?( n.node_name ) end node.replace(node.to_html.gsub(EmojiPattern) do ep = "#{@opts[:asset_path].chomp("/")}/#{$1}.png" en = $1 if ! @opts[:tag] && ! @opts[:tag].is_a?(Proc) if @opts[:as_liquid_asset] then EmojiLiquidTag % [ep, en] else EmojiTag % [ ep, en ] end else @opts[:tag].call( ep, en ) end end) end