import “common”
mixin book_meta(key, format: nil)
tr - value = book.send(key.to_sym) - if value.is_a?(Array) - value = value.compact.map(&format).join(', ') - end - unless value.nil? td.book_meta_key= key.gsub('_', ' ') - if value.to_s.empty? - value = ' ' - end td.book_meta_value= value - end
mixin metas
table - default_block.call!
mixin section(name)
h1.meta_section= name - default_block.call
mixin iterate_spine(toc_item)
- if toc_item.sub_items.count > 0 ul.spine - toc_item.sub_items.each do |item| li - item_href = "/book/#{pretty_path_toc_item(item)}" a.href(href: item_href)= item.local_source_pattern - unless item.title.nil? = ' ' span.title: a.title(href: item_href)= item.title - end - unless item.options.empty? = ' ' - end - item.options.each do |opt| - next if opt.nil? = ' ' span.option= opt.inspect - end +iterate_spine(item) - end - end
+page(header_id: 'home')
.cover_image div - if !book.cover_image.nil? && !(file = file_resolver.file_from_request(book.cover_image)).nil? img(src: "/raw/#{file.pkg_destination_path}") - else img(src: '/server/raw/default_cover.png') - end #content +section('Metadata') +metas +book_meta('title') +book_meta('subtitle') +book_meta('authors', format: lambda { |author| author.pretty_name }) +book_meta('publisher') +book_meta('language') +book_meta('version') +book_meta('build_version') +section('Targets') - book.buildable_targets.each do |b_target| p(class: 'target_selected' if target == b_target): a(href: "/change_target/#{b_target.name}")= b_target.name - end +section('Spine') +iterate_spine(target.root_toc)