verku 0.8.0.p
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitignore +49 -0
- data/BUILD.md +6 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +82 -0
- data/LICENSE.md +22 -0
- data/README.md +149 -0
- data/Rakefile +72 -0
- data/VERSION +1 -0
- data/bin/verku +5 -0
- data/lib/verku.rb +56 -0
- data/lib/verku/adapters/markdown.rb +44 -0
- data/lib/verku/cli.rb +93 -0
- data/lib/verku/dependency.rb +19 -0
- data/lib/verku/exporter.rb +77 -0
- data/lib/verku/extensions/string.rb +19 -0
- data/lib/verku/generator.rb +55 -0
- data/lib/verku/parser.rb +85 -0
- data/lib/verku/parser/epub.rb +187 -0
- data/lib/verku/parser/html.rb +245 -0
- data/lib/verku/parser/mobi.rb +17 -0
- data/lib/verku/parser/pdf.rb +54 -0
- data/lib/verku/parser/txt.rb +1 -0
- data/lib/verku/stats.rb +114 -0
- data/lib/verku/stream.rb +27 -0
- data/lib/verku/toc.rb +6 -0
- data/lib/verku/toc/epub.rb +41 -0
- data/lib/verku/toc/html.rb +78 -0
- data/lib/verku/version.rb +10 -0
- data/templates/config.erb +80 -0
- data/templates/cover.jpg +0 -0
- data/templates/dp-logo.png +0 -0
- data/templates/epub/back.erb +22 -0
- data/templates/epub/copyright.erb +46 -0
- data/templates/epub/cover.erb +12 -0
- data/templates/epub/cover.html +12 -0
- data/templates/epub/page.erb +15 -0
- data/templates/epub/user.css +500 -0
- data/templates/extras.tex +1 -0
- data/templates/html/copyright.erb +46 -0
- data/templates/html/layout.css +352 -0
- data/templates/html/layout.erb +45 -0
- data/templates/html/syntax.css +58 -0
- data/templates/html/thanks.erb +21 -0
- data/templates/html/user.css +7 -0
- data/templates/latex.erb +416 -0
- data/templates/merovex-logo.jpg +0 -0
- data/templates/merovex-logo.png +0 -0
- data/templates/pdf/layout.erb +418 -0
- data/templates/rakefile.rb +103 -0
- data/templates/readme.erb +3 -0
- data/templates/text/01-Getting-Started.md +27 -0
- data/templates/text/02-Creating-Chapters.md +22 -0
- data/templates/text/03-Generating-Output.md +2 -0
- data/templates/text/10-Test-Markdown.md +157 -0
- data/test/helper.rb +34 -0
- data/test/test_bookmaker.rb +7 -0
- data/verku.gemspec +142 -0
- metadata +317 -0
data/lib/verku/toc.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
module Verku
|
2
|
+
module TOC
|
3
|
+
class Epub
|
4
|
+
attr_accessor :navigation
|
5
|
+
|
6
|
+
def initialize(navigation)
|
7
|
+
@navigation = navigation
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_html
|
11
|
+
ERB.new(template).result OpenStruct.new(:navigation => navigation).instance_eval{ binding }
|
12
|
+
end
|
13
|
+
|
14
|
+
def template
|
15
|
+
<<-HTML.strip_heredoc.force_encoding("utf-8")
|
16
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
17
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
18
|
+
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
19
|
+
<head>
|
20
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
21
|
+
<link rel="stylesheet" type="text/css" href="epub.css"/>
|
22
|
+
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
|
23
|
+
<title>Table of Contents</title>
|
24
|
+
</head>
|
25
|
+
<body>
|
26
|
+
<div id="toc">
|
27
|
+
<ul>
|
28
|
+
<% navigation.each do |nav| %>
|
29
|
+
<li>
|
30
|
+
<a href="<%= nav[:content] %>"><%= nav[:label] %></a>
|
31
|
+
</li>
|
32
|
+
<% end %>
|
33
|
+
</ul>
|
34
|
+
</div>
|
35
|
+
</body>
|
36
|
+
</html>
|
37
|
+
HTML
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module Verku
|
2
|
+
module TOC
|
3
|
+
class HTML
|
4
|
+
# Return the table of contents in hash format.
|
5
|
+
#
|
6
|
+
attr_reader :toc
|
7
|
+
|
8
|
+
private_class_method :new
|
9
|
+
attr_reader :buffer # :nodoc:
|
10
|
+
attr_reader :attrs # :nodoc:
|
11
|
+
attr_accessor :content # :nodoc:
|
12
|
+
|
13
|
+
# Traverse every title and add a +id+ attribute.
|
14
|
+
# Return the modified content.
|
15
|
+
#
|
16
|
+
def self.normalize(content)
|
17
|
+
counter = {}
|
18
|
+
html = Nokogiri::HTML.parse(content)
|
19
|
+
html.search("h1, h2, h3, h4, h5, h6").each do |tag|
|
20
|
+
title = tag.inner_text
|
21
|
+
permalink = title.to_permalink
|
22
|
+
|
23
|
+
counter[permalink] ||= 0
|
24
|
+
counter[permalink] += 1
|
25
|
+
|
26
|
+
permalink = "#{permalink}-#{counter[permalink]}" if counter[permalink] > 1
|
27
|
+
|
28
|
+
tag.set_attribute("id", permalink)
|
29
|
+
end
|
30
|
+
|
31
|
+
html.css("body").to_xhtml.gsub(/<body>(.*?)<\/body>/m, "\\1")
|
32
|
+
end
|
33
|
+
|
34
|
+
# Traverse every title normalizing its content as a permalink.
|
35
|
+
#
|
36
|
+
def self.generate(content)
|
37
|
+
content = normalize(content)
|
38
|
+
listener = new
|
39
|
+
listener.content = content
|
40
|
+
Stream.new(content, listener).parse
|
41
|
+
listener
|
42
|
+
end
|
43
|
+
|
44
|
+
def initialize # :nodoc:
|
45
|
+
@toc = []
|
46
|
+
@counters = {}
|
47
|
+
end
|
48
|
+
|
49
|
+
def tag(node) # :nodoc:
|
50
|
+
toc << {
|
51
|
+
:level => node.name.gsub(/[^\d]/, "").to_i,
|
52
|
+
:text => node.text,
|
53
|
+
:permalink => node["id"]
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
# Return a hash with all normalized attributes.
|
58
|
+
#
|
59
|
+
def to_hash
|
60
|
+
{
|
61
|
+
:content => content,
|
62
|
+
:html => to_html,
|
63
|
+
:toc => toc
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
# Return the table of contents in HTML format.
|
68
|
+
#
|
69
|
+
def to_html
|
70
|
+
String.new.tap do |html|
|
71
|
+
toc.each do |options|
|
72
|
+
html << %[<div class="level#{options[:level]} #{options[:permalink]}"><a href="##{options[:permalink]}"><span>#{CGI.escape_html(options[:text])}</span></a></div>]
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# The book's title. Will be used everywhere!
|
2
|
+
title: "<%= @title %>"
|
3
|
+
|
4
|
+
epub_cover: "cover.jpg" # Name of bookcover
|
5
|
+
|
6
|
+
# If you have returning characters, put them here:
|
7
|
+
# returning_characters: ""
|
8
|
+
#next_book: Title of next book in series
|
9
|
+
|
10
|
+
# The book's language.
|
11
|
+
language: "en"
|
12
|
+
|
13
|
+
# Type: 'fiction' or 'nonfiction'
|
14
|
+
type: 'fiction'
|
15
|
+
|
16
|
+
# Status: 'draft' or 'final'
|
17
|
+
status: "draft"
|
18
|
+
|
19
|
+
# Chapter Style based on Memoir class
|
20
|
+
# ftp://ftp.tex.ac.uk/tex-archive/documentation/MemoirChapStyles/MemoirChapStyles.pdf
|
21
|
+
chapter_style: "chappell"
|
22
|
+
|
23
|
+
# Your book copyright info.
|
24
|
+
# Here's some examples:
|
25
|
+
#
|
26
|
+
# Copyright <%= @year %> by <%= @name %>.
|
27
|
+
# Copyright <%= @year %> by <%= @name %>. This work is licensed under MIT License.
|
28
|
+
# This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
|
29
|
+
# This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
|
30
|
+
# This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
|
31
|
+
#
|
32
|
+
copyright: "Copyright (C) <%= @year %> <%= @name %>."
|
33
|
+
|
34
|
+
# Who's publishing this book.
|
35
|
+
publisher: "<%= @name %>"
|
36
|
+
|
37
|
+
# When this book was published.
|
38
|
+
published_at: "<%= Date.today %>"
|
39
|
+
|
40
|
+
# Some book description.
|
41
|
+
subject: "[Your book description]"
|
42
|
+
|
43
|
+
# Some keywords that identify this book.
|
44
|
+
keywords: "[Your book keywords (comma-separated)]"
|
45
|
+
|
46
|
+
# WTF UUID?
|
47
|
+
# https://en.wikipedia.org/wiki/Universally_unique_identifier
|
48
|
+
uuid: "<%= @uuid %>"
|
49
|
+
|
50
|
+
# Your book identification like ISBN or ISSN.
|
51
|
+
identifier:
|
52
|
+
id: "9-87654-3231-0123"
|
53
|
+
type: "ISBN-13" # can be ISBN, ISSN or URL
|
54
|
+
|
55
|
+
# This book authors.
|
56
|
+
authors:
|
57
|
+
- "<%= @name %>"
|
58
|
+
|
59
|
+
# The base URL from your source code.
|
60
|
+
base_url: http://example.com
|
61
|
+
|
62
|
+
series:
|
63
|
+
title: "Series TItle"
|
64
|
+
books:
|
65
|
+
- "Book in Series"
|
66
|
+
- "Book in Series"
|
67
|
+
#
|
68
|
+
fonts:
|
69
|
+
serif: "Georgia"
|
70
|
+
sans: "Tahoma"
|
71
|
+
mono: "Courier"
|
72
|
+
|
73
|
+
designer:
|
74
|
+
book: "Ben Wilson"
|
75
|
+
cover: "<%= @name %>"
|
76
|
+
|
77
|
+
editors:
|
78
|
+
text:
|
79
|
+
|
80
|
+
|
data/templates/cover.jpg
ADDED
Binary file
|
Binary file
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<title>Back Page</title>
|
5
|
+
<style type="text/css"> img { max-width: 100%; } </style>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<div class="copyright">
|
9
|
+
|
10
|
+
<h2 class="no-toc"><%= title %></h2>
|
11
|
+
|
12
|
+
<p><%= returning_characters %> will return in <em><%= next_book %></em>.</p>
|
13
|
+
|
14
|
+
<h3>Follow Me</h3>
|
15
|
+
|
16
|
+
<strong><%= authors.join(', ') %></strong> can be followed on Twitter and Facebook.
|
17
|
+
|
18
|
+
Visit his web site at <%= "<a href='#{base_url}'>#{base_url}</a>" %> for more information. You can also sign up for announcements of other books in this series at <%= "<a href='#{base_url}'>#{base_url}</a>" %>.
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</body>
|
22
|
+
</html>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<title>Copyright Page</title>
|
5
|
+
<style type="text/css"> img { max-width: 100%; } </style>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<div class="copyright">
|
9
|
+
<h2 class="no-toc"><%= title %></h2>
|
10
|
+
<% if type == 'fiction' %>
|
11
|
+
<p>This is a work of fiction. Names, characters, places and incidents are either
|
12
|
+
the product of the author's imagination or are used fictitiously, and any resemblance to
|
13
|
+
actual persons, living or dead, business establishments, events or locales is entirely
|
14
|
+
coincidental.</p>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<p><em><%= copyright.gsub("(C)", "©") %></em></p>
|
18
|
+
|
19
|
+
<% unless designer['cover'].nil? || designer['cover'].empty? %>
|
20
|
+
<p> Cover Design by <%= designer['cover'] %></p>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<% unless designer['book'].nil? || designer['book'].empty? %>
|
24
|
+
<p> Book Design by <%= designer['book'] %></p>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<% unless editors['text'].nil? || editors['text'].empty? %>
|
28
|
+
<p> Book Design by <%= editors['text'].join(',') %></p>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
|
32
|
+
<p> All rights reserved.</p>
|
33
|
+
|
34
|
+
<p> No part of this publication may be reproduced, stored in a retrieval system, posted on the Internet, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without prior written permission from the author. The only exception is by a reviewer, who may quote short excerpts in a review.</p>
|
35
|
+
|
36
|
+
<p> Visit my website at <%= "<a href='#{base_url}'>#{base_url}</a>" %></p>
|
37
|
+
|
38
|
+
<p> Printed in the United States of America</p>
|
39
|
+
|
40
|
+
<p><em>First Printing, <%= published_at %></em></p>
|
41
|
+
|
42
|
+
<p><%= identifier['type'] %> <%= identifier['id'] %></p>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
</body>
|
46
|
+
</html>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<title>Cover</title>
|
5
|
+
<style type="text/css"> img { max-width: 100%; } </style>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<div id="cover-image">
|
9
|
+
<img src="<%=epub_cover%>" alt="Cover Image for <%=title %>"/>
|
10
|
+
</div>
|
11
|
+
</body>
|
12
|
+
</html>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<title>Cover</title>
|
5
|
+
<style type="text/css"> img { max-width: 100%; } </style>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<div id="cover-image">
|
9
|
+
<img src="<%=epub_cover%>" alt="Cover Image for <%=title %>"/>
|
10
|
+
</div>
|
11
|
+
</body>
|
12
|
+
</html>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%= language %>">
|
4
|
+
<head>
|
5
|
+
<title></title>
|
6
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
7
|
+
<link rel="stylesheet" type="text/css" href="user.css"/>
|
8
|
+
</head>
|
9
|
+
|
10
|
+
<body>
|
11
|
+
<div class="chapter">
|
12
|
+
<%= content %>
|
13
|
+
</div>
|
14
|
+
</body>
|
15
|
+
</html>
|
@@ -0,0 +1,500 @@
|
|
1
|
+
/*! normalize.css v1.0.0 | MIT License | git.io/normalize */
|
2
|
+
|
3
|
+
/* ==========================================================================
|
4
|
+
HTML5 display definitions
|
5
|
+
========================================================================== */
|
6
|
+
|
7
|
+
/*
|
8
|
+
* Corrects `block` display not defined in IE 6/7/8/9 and Firefox 3.
|
9
|
+
*/
|
10
|
+
|
11
|
+
article,
|
12
|
+
aside,
|
13
|
+
details,
|
14
|
+
figcaption,
|
15
|
+
figure,
|
16
|
+
footer,
|
17
|
+
header,
|
18
|
+
hgroup,
|
19
|
+
nav,
|
20
|
+
section,
|
21
|
+
summary {
|
22
|
+
display: block;
|
23
|
+
}
|
24
|
+
|
25
|
+
/*
|
26
|
+
* Corrects `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
|
27
|
+
*/
|
28
|
+
|
29
|
+
audio,
|
30
|
+
canvas,
|
31
|
+
video {
|
32
|
+
display: inline-block;
|
33
|
+
*display: inline;
|
34
|
+
*zoom: 1;
|
35
|
+
}
|
36
|
+
|
37
|
+
/*
|
38
|
+
* Prevents modern browsers from displaying `audio` without controls.
|
39
|
+
* Remove excess height in iOS 5 devices.
|
40
|
+
*/
|
41
|
+
|
42
|
+
audio:not([controls]) {
|
43
|
+
display: none;
|
44
|
+
height: 0;
|
45
|
+
}
|
46
|
+
|
47
|
+
/*
|
48
|
+
* Addresses styling for `hidden` attribute not present in IE 7/8/9, Firefox 3,
|
49
|
+
* and Safari 4.
|
50
|
+
* Known issue: no IE 6 support.
|
51
|
+
*/
|
52
|
+
|
53
|
+
[hidden] {
|
54
|
+
display: none;
|
55
|
+
}
|
56
|
+
|
57
|
+
/* ==========================================================================
|
58
|
+
Base
|
59
|
+
========================================================================== */
|
60
|
+
|
61
|
+
/*
|
62
|
+
* 1. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using
|
63
|
+
* `em` units.
|
64
|
+
* 2. Prevents iOS text size adjust after orientation change, without disabling
|
65
|
+
* user zoom.
|
66
|
+
*/
|
67
|
+
|
68
|
+
html {
|
69
|
+
font-size: 100%; /* 1 */
|
70
|
+
-webkit-text-size-adjust: 100%; /* 2 */
|
71
|
+
-ms-text-size-adjust: 100%; /* 2 */
|
72
|
+
}
|
73
|
+
|
74
|
+
/*
|
75
|
+
* Addresses `font-family` inconsistency between `textarea` and other form
|
76
|
+
* elements.
|
77
|
+
*/
|
78
|
+
|
79
|
+
html,
|
80
|
+
button,
|
81
|
+
input,
|
82
|
+
select,
|
83
|
+
textarea {
|
84
|
+
font-family: sans-serif;
|
85
|
+
}
|
86
|
+
|
87
|
+
/*
|
88
|
+
* Addresses margins handled incorrectly in IE 6/7.
|
89
|
+
*/
|
90
|
+
|
91
|
+
body {
|
92
|
+
margin: 0;
|
93
|
+
}
|
94
|
+
|
95
|
+
/* ==========================================================================
|
96
|
+
Links
|
97
|
+
========================================================================== */
|
98
|
+
|
99
|
+
/*
|
100
|
+
* Addresses `outline` inconsistency between Chrome and other browsers.
|
101
|
+
*/
|
102
|
+
|
103
|
+
a:focus {
|
104
|
+
outline: thin dotted;
|
105
|
+
}
|
106
|
+
|
107
|
+
/*
|
108
|
+
* Improves readability when focused and also mouse hovered in all browsers.
|
109
|
+
*/
|
110
|
+
|
111
|
+
a:active,
|
112
|
+
a:hover {
|
113
|
+
outline: 0;
|
114
|
+
}
|
115
|
+
|
116
|
+
/* ==========================================================================
|
117
|
+
Typography
|
118
|
+
========================================================================== */
|
119
|
+
|
120
|
+
/*
|
121
|
+
* Addresses font sizes and margins set differently in IE 6/7.
|
122
|
+
* Addresses font sizes within `section` and `article` in Firefox 4+, Safari 5,
|
123
|
+
* and Chrome.
|
124
|
+
*/
|
125
|
+
|
126
|
+
h1 {
|
127
|
+
font-size: 2em;
|
128
|
+
margin: 0.67em 0;
|
129
|
+
}
|
130
|
+
|
131
|
+
h2 {
|
132
|
+
font-size: 1.5em;
|
133
|
+
margin: 0.83em 0;
|
134
|
+
}
|
135
|
+
|
136
|
+
h3 {
|
137
|
+
font-size: 1.17em;
|
138
|
+
margin: 1em 0;
|
139
|
+
}
|
140
|
+
|
141
|
+
h4 {
|
142
|
+
font-size: 1em;
|
143
|
+
margin: 1.33em 0;
|
144
|
+
}
|
145
|
+
|
146
|
+
h5 {
|
147
|
+
font-size: 0.83em;
|
148
|
+
margin: 1.67em 0;
|
149
|
+
}
|
150
|
+
|
151
|
+
h6 {
|
152
|
+
font-size: 0.75em;
|
153
|
+
margin: 2.33em 0;
|
154
|
+
}
|
155
|
+
|
156
|
+
/*
|
157
|
+
* Addresses styling not present in IE 7/8/9, Safari 5, and Chrome.
|
158
|
+
*/
|
159
|
+
|
160
|
+
abbr[title] {
|
161
|
+
border-bottom: 1px dotted;
|
162
|
+
}
|
163
|
+
|
164
|
+
/*
|
165
|
+
* Addresses style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
|
166
|
+
*/
|
167
|
+
|
168
|
+
b,
|
169
|
+
strong {
|
170
|
+
font-weight: bold;
|
171
|
+
}
|
172
|
+
|
173
|
+
blockquote {
|
174
|
+
margin: 1em 40px;
|
175
|
+
}
|
176
|
+
|
177
|
+
/*
|
178
|
+
* Addresses styling not present in Safari 5 and Chrome.
|
179
|
+
*/
|
180
|
+
|
181
|
+
dfn {
|
182
|
+
font-style: italic;
|
183
|
+
}
|
184
|
+
|
185
|
+
/*
|
186
|
+
* Addresses styling not present in IE 6/7/8/9.
|
187
|
+
*/
|
188
|
+
|
189
|
+
mark {
|
190
|
+
background: #ff0;
|
191
|
+
color: #000;
|
192
|
+
}
|
193
|
+
|
194
|
+
/*
|
195
|
+
* Addresses margins set differently in IE 6/7.
|
196
|
+
*/
|
197
|
+
|
198
|
+
p,
|
199
|
+
pre {
|
200
|
+
margin: 1em 0;
|
201
|
+
}
|
202
|
+
|
203
|
+
/*
|
204
|
+
* Corrects font family set oddly in IE 6, Safari 4/5, and Chrome.
|
205
|
+
*/
|
206
|
+
|
207
|
+
code,
|
208
|
+
kbd,
|
209
|
+
pre,
|
210
|
+
samp {
|
211
|
+
font-family: monospace, serif;
|
212
|
+
_font-family: 'courier new', monospace;
|
213
|
+
font-size: 1em;
|
214
|
+
}
|
215
|
+
|
216
|
+
/*
|
217
|
+
* Improves readability of pre-formatted text in all browsers.
|
218
|
+
*/
|
219
|
+
|
220
|
+
pre {
|
221
|
+
white-space: pre;
|
222
|
+
white-space: pre-wrap;
|
223
|
+
word-wrap: break-word;
|
224
|
+
}
|
225
|
+
|
226
|
+
/*
|
227
|
+
* Addresses CSS quotes not supported in IE 6/7.
|
228
|
+
*/
|
229
|
+
|
230
|
+
q {
|
231
|
+
quotes: none;
|
232
|
+
}
|
233
|
+
|
234
|
+
/*
|
235
|
+
* Addresses `quotes` property not supported in Safari 4.
|
236
|
+
*/
|
237
|
+
|
238
|
+
q:before,
|
239
|
+
q:after {
|
240
|
+
content: '';
|
241
|
+
content: none;
|
242
|
+
}
|
243
|
+
|
244
|
+
small {
|
245
|
+
font-size: 75%;
|
246
|
+
}
|
247
|
+
|
248
|
+
/*
|
249
|
+
* Prevents `sub` and `sup` affecting `line-height` in all browsers.
|
250
|
+
*/
|
251
|
+
|
252
|
+
sub,
|
253
|
+
sup {
|
254
|
+
font-size: 75%;
|
255
|
+
line-height: 0;
|
256
|
+
position: relative;
|
257
|
+
vertical-align: baseline;
|
258
|
+
}
|
259
|
+
|
260
|
+
sup {
|
261
|
+
top: -0.5em;
|
262
|
+
}
|
263
|
+
|
264
|
+
sub {
|
265
|
+
bottom: -0.25em;
|
266
|
+
}
|
267
|
+
|
268
|
+
/* ==========================================================================
|
269
|
+
Lists
|
270
|
+
========================================================================== */
|
271
|
+
|
272
|
+
/*
|
273
|
+
* Addresses margins set differently in IE 6/7.
|
274
|
+
*/
|
275
|
+
|
276
|
+
dl,
|
277
|
+
menu,
|
278
|
+
ol,
|
279
|
+
ul {
|
280
|
+
margin: 1em 0;
|
281
|
+
}
|
282
|
+
|
283
|
+
dd {
|
284
|
+
margin: 0 0 0 40px;
|
285
|
+
}
|
286
|
+
|
287
|
+
/*
|
288
|
+
* Addresses paddings set differently in IE 6/7.
|
289
|
+
*/
|
290
|
+
|
291
|
+
menu,
|
292
|
+
ol,
|
293
|
+
ul {
|
294
|
+
padding: 0 0 0 40px;
|
295
|
+
}
|
296
|
+
|
297
|
+
/*
|
298
|
+
* Corrects list images handled incorrectly in IE 7.
|
299
|
+
*/
|
300
|
+
|
301
|
+
nav ul,
|
302
|
+
nav ol {
|
303
|
+
list-style: none;
|
304
|
+
list-style-image: none;
|
305
|
+
}
|
306
|
+
|
307
|
+
/* ==========================================================================
|
308
|
+
Embedded content
|
309
|
+
========================================================================== */
|
310
|
+
|
311
|
+
/*
|
312
|
+
* 1. Removes border when inside `a` element in IE 6/7/8/9 and Firefox 3.
|
313
|
+
* 2. Improves image quality when scaled in IE 7.
|
314
|
+
*/
|
315
|
+
|
316
|
+
img {
|
317
|
+
border: 0; /* 1 */
|
318
|
+
-ms-interpolation-mode: bicubic; /* 2 */
|
319
|
+
}
|
320
|
+
|
321
|
+
/*
|
322
|
+
* Corrects overflow displayed oddly in IE 9.
|
323
|
+
*/
|
324
|
+
|
325
|
+
svg:not(:root) {
|
326
|
+
overflow: hidden;
|
327
|
+
}
|
328
|
+
|
329
|
+
/* ==========================================================================
|
330
|
+
Figures
|
331
|
+
========================================================================== */
|
332
|
+
|
333
|
+
/*
|
334
|
+
* Addresses margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
|
335
|
+
*/
|
336
|
+
|
337
|
+
figure {
|
338
|
+
margin: 0;
|
339
|
+
}
|
340
|
+
|
341
|
+
/* ==========================================================================
|
342
|
+
Forms
|
343
|
+
========================================================================== */
|
344
|
+
|
345
|
+
/*
|
346
|
+
* Corrects margin displayed oddly in IE 6/7.
|
347
|
+
*/
|
348
|
+
|
349
|
+
form {
|
350
|
+
margin: 0;
|
351
|
+
}
|
352
|
+
|
353
|
+
/*
|
354
|
+
* Define consistent border, margin, and padding.
|
355
|
+
*/
|
356
|
+
|
357
|
+
fieldset {
|
358
|
+
border: 1px solid #c0c0c0;
|
359
|
+
margin: 0 2px;
|
360
|
+
padding: 0.35em 0.625em 0.75em;
|
361
|
+
}
|
362
|
+
|
363
|
+
/*
|
364
|
+
* 1. Corrects color not being inherited in IE 6/7/8/9.
|
365
|
+
* 2. Corrects text not wrapping in Firefox 3.
|
366
|
+
* 3. Corrects alignment displayed oddly in IE 6/7.
|
367
|
+
*/
|
368
|
+
|
369
|
+
legend {
|
370
|
+
border: 0; /* 1 */
|
371
|
+
padding: 0;
|
372
|
+
white-space: normal; /* 2 */
|
373
|
+
*margin-left: -7px; /* 3 */
|
374
|
+
}
|
375
|
+
|
376
|
+
/*
|
377
|
+
* 1. Corrects font size not being inherited in all browsers.
|
378
|
+
* 2. Addresses margins set differently in IE 6/7, Firefox 3+, Safari 5,
|
379
|
+
* and Chrome.
|
380
|
+
* 3. Improves appearance and consistency in all browsers.
|
381
|
+
*/
|
382
|
+
|
383
|
+
button,
|
384
|
+
input,
|
385
|
+
select,
|
386
|
+
textarea {
|
387
|
+
font-size: 100%; /* 1 */
|
388
|
+
margin: 0; /* 2 */
|
389
|
+
vertical-align: baseline; /* 3 */
|
390
|
+
*vertical-align: middle; /* 3 */
|
391
|
+
}
|
392
|
+
|
393
|
+
/*
|
394
|
+
* Addresses Firefox 3+ setting `line-height` on `input` using `!important` in
|
395
|
+
* the UA stylesheet.
|
396
|
+
*/
|
397
|
+
|
398
|
+
button,
|
399
|
+
input {
|
400
|
+
line-height: normal;
|
401
|
+
}
|
402
|
+
|
403
|
+
/*
|
404
|
+
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
405
|
+
* and `video` controls.
|
406
|
+
* 2. Corrects inability to style clickable `input` types in iOS.
|
407
|
+
* 3. Improves usability and consistency of cursor style between image-type
|
408
|
+
* `input` and others.
|
409
|
+
* 4. Removes inner spacing in IE 7 without affecting normal text inputs.
|
410
|
+
* Known issue: inner spacing remains in IE 6.
|
411
|
+
*/
|
412
|
+
|
413
|
+
button,
|
414
|
+
html input[type="button"], /* 1 */
|
415
|
+
input[type="reset"],
|
416
|
+
input[type="submit"] {
|
417
|
+
-webkit-appearance: button; /* 2 */
|
418
|
+
cursor: pointer; /* 3 */
|
419
|
+
*overflow: visible; /* 4 */
|
420
|
+
}
|
421
|
+
|
422
|
+
/*
|
423
|
+
* Re-set default cursor for disabled elements.
|
424
|
+
*/
|
425
|
+
|
426
|
+
button[disabled],
|
427
|
+
input[disabled] {
|
428
|
+
cursor: default;
|
429
|
+
}
|
430
|
+
|
431
|
+
/*
|
432
|
+
* 1. Addresses box sizing set to content-box in IE 8/9.
|
433
|
+
* 2. Removes excess padding in IE 8/9.
|
434
|
+
* 3. Removes excess padding in IE 7.
|
435
|
+
* Known issue: excess padding remains in IE 6.
|
436
|
+
*/
|
437
|
+
|
438
|
+
input[type="checkbox"],
|
439
|
+
input[type="radio"] {
|
440
|
+
box-sizing: border-box; /* 1 */
|
441
|
+
padding: 0; /* 2 */
|
442
|
+
*height: 13px; /* 3 */
|
443
|
+
*width: 13px; /* 3 */
|
444
|
+
}
|
445
|
+
|
446
|
+
/*
|
447
|
+
* 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
|
448
|
+
* 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
|
449
|
+
* (include `-moz` to future-proof).
|
450
|
+
*/
|
451
|
+
|
452
|
+
input[type="search"] {
|
453
|
+
-webkit-appearance: textfield; /* 1 */
|
454
|
+
-moz-box-sizing: content-box;
|
455
|
+
-webkit-box-sizing: content-box; /* 2 */
|
456
|
+
box-sizing: content-box;
|
457
|
+
}
|
458
|
+
|
459
|
+
/*
|
460
|
+
* Removes inner padding and search cancel button in Safari 5 and Chrome
|
461
|
+
* on OS X.
|
462
|
+
*/
|
463
|
+
|
464
|
+
input[type="search"]::-webkit-search-cancel-button,
|
465
|
+
input[type="search"]::-webkit-search-decoration {
|
466
|
+
-webkit-appearance: none;
|
467
|
+
}
|
468
|
+
|
469
|
+
/*
|
470
|
+
* Removes inner padding and border in Firefox 3+.
|
471
|
+
*/
|
472
|
+
|
473
|
+
button::-moz-focus-inner,
|
474
|
+
input::-moz-focus-inner {
|
475
|
+
border: 0;
|
476
|
+
padding: 0;
|
477
|
+
}
|
478
|
+
|
479
|
+
/*
|
480
|
+
* 1. Removes default vertical scrollbar in IE 6/7/8/9.
|
481
|
+
* 2. Improves readability and alignment in all browsers.
|
482
|
+
*/
|
483
|
+
|
484
|
+
textarea {
|
485
|
+
overflow: auto; /* 1 */
|
486
|
+
vertical-align: top; /* 2 */
|
487
|
+
}
|
488
|
+
|
489
|
+
/* ==========================================================================
|
490
|
+
Tables
|
491
|
+
========================================================================== */
|
492
|
+
|
493
|
+
/*
|
494
|
+
* Remove most spacing between table cells.
|
495
|
+
*/
|
496
|
+
|
497
|
+
table {
|
498
|
+
border-collapse: collapse;
|
499
|
+
border-spacing: 0;
|
500
|
+
}
|