lib/rpub/chapter.rb in rpub-0.1.0 vs lib/rpub/chapter.rb in rpub-0.2.0
- old
+ new
@@ -18,37 +18,37 @@
@document = Kramdown::Document.new(content, KRAMDOWN_OPTIONS.merge(:template => layout))
end
# @return [String] Unique identifier for this chapter.
def uid
- @uid ||= Digest::SHA1.hexdigest([content, id.to_s, layout].join)
+ @uid ||= Digest::SHA1.hexdigest([content, xml_id.to_s, layout].join)
end
# @return [String] XML-friendly slug for this chapter based on its number.
- def id
+ def xml_id
@id ||= "chapter-#{number}"
end
# @return [String] content parsed to HTML by the markdown engine.
def to_html
@to_html ||= @document.to_html
end
# @return [String] name for the file in the zip to use, based on the title
def filename
- @filename ||= id.to_s + '-' + title.gsub(/[^\w\.]/i, '-').squeeze('-').downcase.chomp('-') + '.html'
+ @filename ||= xml_id.to_s + '-' + title.gsub(/[^\w\.]/i, '-').squeeze('-').downcase.chomp('-') + '.html'
end
# Ordered headers for this chapter, each header as an object responding
# to #level and #text.
#
# @return [Array<#text,#level>] list of headers for this chapter
def outline
@outline ||= elements(:header).map do |element|
OpenStruct.new({
- :level => element.options[:level],
- :text => element_text(element),
- :id => Kramdown::Converter::Html.send(:new, @document, { :auto_id_prefix => '' }).generate_id(element.options[:raw_text])
+ :level => element.options[:level],
+ :text => element_text(element),
+ :html_id => Kramdown::Converter::Html.send(:new, @document, { :auto_id_prefix => '' }).generate_id(element.options[:raw_text])
})
end
end
# @return [Array<String>] list of all image references