Sha256: 5bd5f77711b325d315351c860101d299b4f7b6d98265dca2c7d8d732ec2909ab
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require 'epub/content_document' require 'epub/constants' require 'nokogiri' module EPUB class Parser class ContentDocument class << self def parse new.parse end end def parse raise 'Not implemented yet' end # @param [Nokogiri::HTML::Document] document HTML document or element including nav # @return [Array<EPUB::ContentDocument::Navigation::Nav>] navs array of Nav object def parse_navigations(document) navs = document.search('/xhtml:html/xhtml:body//xhtml:nav', EPUB::NAMESPACES).collect {|elem| parse_navigation elem} end # @param [Nokogiri::XML::Element] nav nav element # @return [EPUB::ContentDocument::Navigation::Nav] nav Nav object def parse_navigation(element) nav = EPUB::ContentDocument::Navigation::Nav.new nav.heading = find_heading element nav.type = element['type'] nav end private # @param [Nokogiri::XML::Element] nav nav element # @return [String] heading heading text def find_heading(element) heading = element.xpath('./xhtml:h1|xhtml:h2|xhtml:h3|xhtml:h4|xhtml:h5|xhtml:h6|xhtml:hgroup', EPUB::NAMESPACES).first return nil if heading.nil? return heading.text unless heading.name == 'hgroup' (heading/'h1' || heading/'h2' || heading/'h3' || heading/'h4' || heading/'h5' || heading/'h6').first.text end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
epub-parser-0.1.0 | lib/epub/parser/content_document.rb |