Sha256: 3f82d4e79c9fa0f6dfdd079eacb4de555e88d48527327ac11c1335bac566f335

Contents?: true

Size: 1.28 KB

Versions: 4

Compression:

Stored size: 1.28 KB

Contents

module Bookshelf
  module TOC
    class Epub
      attr_accessor :navigation

      def initialize(navigation)
        @navigation = navigation
      end

      def to_html
        ERB.new(template).result OpenStruct.new(:navigation => navigation).instance_eval{ binding }
      end

      def template
        <<-HTML.strip_heredoc.force_encoding("utf-8")
          <?xml version="1.0" encoding="utf-8" ?>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
          <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
            <head>
              <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
              <link rel="stylesheet" type="text/css" href="epub.css"/>
              <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
              <title>Table of Contents</title>
            </head>
            <body>
              <div id="toc">
                <ul>
                  <% navigation.each do |nav| %>
                    <li>
                      <a href="<%= nav[:content] %>"><%= nav[:label] %></a>
                    </li>
                  <% end %>
                </ul>
              </div>
            </body>
          </html>
        HTML
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bookshelf-1.2.1 lib/bookshelf/toc/epub.rb
bookshelf-1.2.0 lib/bookshelf/toc/epub.rb
bookshelf-1.1.0 lib/bookshelf/toc/epub.rb
bookshelf-1.0.0 lib/bookshelf/toc/epub.rb