Class: Strelka::CMS::PageFilter::Editorial
- Inherits:
-
Strelka::CMS::PageFilter
- Object
- Strelka::CMS::PageFilter
- Strelka::CMS::PageFilter::Editorial
- Defined in:
- lib/strelka/cms/pagefilter/editorial.rb
Overview
A class for embedding editorial remarks in a page.
Constant Summary collapse
- LinkPI =
PI ::= ‘<?’ PITarget (S (Char* - (Char* ‘?>’ Char*)))? ‘?>’
%r{ <\? ed # Instruction Target \s+ (\w+?) # type of editorial mark [$1] :? # optional colon " (.*?) # content that should be edited [$2] " \s* \?> }x
- TOOLTIP_TEMPLATE =
Tooltip template
%{<div class="tooltip ed %s-ed"><h3>%s</h3><p>%s</p></div>}
Instance Method Summary collapse
-
#generate_mark(current_page, mark_type, content) ⇒ Object
Create an HTML fragment from the parsed LinkPI.
-
#process(source, page) ⇒ Object
Process the given
source
for <?ed …
Instance Method Details
#generate_mark(current_page, mark_type, content) ⇒ Object
Create an HTML fragment from the parsed LinkPI.
45 46 47 48 49 50 51 52 |
# File 'lib/strelka/cms/pagefilter/editorial.rb', line 45 def generate_mark( current_page, mark_type, content ) id = Digest::MD5.hexdigest( content ) edmark = %{<span class="edmark %s-edmark">(ed.)</span>} % [ mark_type ] tooltip = TOOLTIP_TEMPLATE % [ mark_type, mark_type.upcase, content ] return edmark + "\n" + tooltip + "\n" end |
#process(source, page) ⇒ Object
Process the given source
for <?ed … ?> processing-instructions
33 34 35 36 37 38 39 40 41 |
# File 'lib/strelka/cms/pagefilter/editorial.rb', line 33 def process( source, page ) return source.gsub( LinkPI ) do |match| # Grab the tag values mark_type = $1 content = $2 self.generate_mark( page, mark_type, content ) end end |