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