write_down 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/Gemfile +1 -1
- data/README.md +2 -2
- data/bin/write_down +42 -1
- data/lib/write_down/article.rb +64 -0
- data/lib/write_down/configuration.rb +6 -0
- data/lib/write_down/converter.rb +8 -0
- data/lib/write_down/page.rb +6 -0
- data/lib/write_down/series.rb +10 -0
- data/lib/write_down/site.rb +10 -0
- data/lib/write_down/template.rb +20 -0
- data/lib/write_down/version.rb +1 -1
- data/lib/write_down.rb +31 -1
- data/template/emacs/404.html +157 -0
- data/template/emacs/CHANGELOG.md +133 -0
- data/template/emacs/CONTRIBUTING.md +154 -0
- data/template/emacs/LICENSE.md +19 -0
- data/template/emacs/README.md +1 -0
- data/template/emacs/apple-touch-icon-precomposed.png +0 -0
- data/template/emacs/crossdomain.xml +15 -0
- data/template/emacs/css/custom.css +18 -0
- data/template/emacs/css/main.css +304 -0
- data/template/emacs/css/normalize.css +527 -0
- data/template/emacs/favicon.ico +0 -0
- data/template/emacs/humans.txt +15 -0
- data/template/emacs/img/.gitignore +0 -0
- data/template/emacs/index.html +62 -0
- data/template/emacs/js/main.js +1 -0
- data/template/emacs/js/plugins.js +24 -0
- data/template/emacs/js/vendor/jquery-1.10.2.min.js +6 -0
- data/template/emacs/js/vendor/modernizr-2.6.2.min.js +4 -0
- data/template/emacs/post.html +80 -0
- data/template/emacs/robots.txt +3 -0
- data/template/simple/404.html +157 -0
- data/template/simple/CNAME +1 -0
- data/template/simple/README.md +1 -0
- data/template/simple/_disqus.mustache +19 -0
- data/template/simple/_footer.mustache +28 -0
- data/template/simple/_header.mustache +38 -0
- data/template/simple/apple-touch-icon-precomposed.png +0 -0
- data/template/simple/crossdomain.xml +15 -0
- data/template/simple/css/layout.css +72 -0
- data/template/simple/css/main.css +304 -0
- data/template/simple/css/normalize.css +527 -0
- data/template/simple/favicon.ico +0 -0
- data/template/simple/humans.txt +15 -0
- data/template/simple/img/.gitignore +0 -0
- data/template/simple/index.html +12 -0
- data/template/simple/js/main.js +1 -0
- data/template/simple/js/plugins.js +24 -0
- data/template/simple/js/vendor/jquery-1.10.2.min.js +6 -0
- data/template/simple/js/vendor/modernizr-2.6.2.min.js +4 -0
- data/template/simple/post.html +9 -0
- data/template/simple/robots.txt +3 -0
- data/theme/ghost/assets/css/screen.css +911 -0
- data/theme/ghost/index.html +75 -0
- data/theme/ghost/post.html +112 -0
- data/theme/html5-boilerplate/.gitattributes +1 -0
- data/theme/html5-boilerplate/.gitignore +2 -0
- data/theme/html5-boilerplate/.htaccess +551 -0
- data/theme/html5-boilerplate/404.html +157 -0
- data/theme/html5-boilerplate/CHANGELOG.md +133 -0
- data/theme/html5-boilerplate/CONTRIBUTING.md +154 -0
- data/theme/html5-boilerplate/LICENSE.md +19 -0
- data/theme/html5-boilerplate/README.md +61 -0
- data/theme/html5-boilerplate/apple-touch-icon-precomposed.png +0 -0
- data/theme/html5-boilerplate/crossdomain.xml +15 -0
- data/theme/html5-boilerplate/css/main.css +297 -0
- data/theme/html5-boilerplate/css/normalize.css +527 -0
- data/theme/html5-boilerplate/favicon.ico +0 -0
- data/theme/html5-boilerplate/humans.txt +15 -0
- data/theme/html5-boilerplate/img/.gitignore +0 -0
- data/theme/html5-boilerplate/index.html +91 -0
- data/theme/html5-boilerplate/js/main.js +1 -0
- data/theme/html5-boilerplate/js/plugins.js +24 -0
- data/theme/html5-boilerplate/js/vendor/jquery-1.10.2.min.js +6 -0
- data/theme/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js +4 -0
- data/theme/html5-boilerplate/post.html +70 -0
- data/theme/html5-boilerplate/robots.txt +3 -0
- data/write_down.gemspec +3 -0
- metadata +125 -11
- data/.rvmrc +0 -62
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa18d35891eb1c5b91441efe68e7af906f76b6fe
|
4
|
+
data.tar.gz: 36bc4253c45dc12535cdabf6824312e024367a93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24b689ce00659c8dc99205aa1f01df9c01e7a98b2a971d1a4a08c6ad445e66fcbc60f6e2d09b455e81ea3cc255370b8a6df16b7652d21672c848d676ef09d253
|
7
|
+
data.tar.gz: 3a20b4d425daf515dfb6f7a851fba5a09aa242e85bb720496d758bee2602c462b21decfb6401aaa5ae79b79fa0e431cf505d200e7f3ede0a9ec643780aaa71a7
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# WriteDown
|
2
2
|
|
3
|
-
|
3
|
+
yet another static blog generator
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -18,7 +18,7 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
$ write_down source dist
|
22
22
|
|
23
23
|
## Contributing
|
24
24
|
|
data/bin/write_down
CHANGED
@@ -1,2 +1,43 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'optparse'
|
1
3
|
require "write_down"
|
2
|
-
|
4
|
+
|
5
|
+
options = {}
|
6
|
+
|
7
|
+
optparse = OptionParser.new do|opts|
|
8
|
+
|
9
|
+
# opts.banner= <<-BANNER "Usage: write_down -t the_theme_name -s the_posts_source -d the_generated_dist"
|
10
|
+
opts.banner= <<-BANNER
|
11
|
+
yet another static blog generator
|
12
|
+
|
13
|
+
Usage: write_down -t the_theme_name -s the_posts_source -d the_generated_dist
|
14
|
+
|
15
|
+
BANNER
|
16
|
+
|
17
|
+
# Define the options, and what they do
|
18
|
+
options[:theme] = 'simple'
|
19
|
+
opts.on("-t theme", "the theme name") do |theme|
|
20
|
+
options[:theme] = theme
|
21
|
+
end
|
22
|
+
|
23
|
+
# Create a flag
|
24
|
+
opts.on("-s source", "the posts source") do |source|
|
25
|
+
options[:source] = source
|
26
|
+
end
|
27
|
+
|
28
|
+
opts.on("-d dist", "the generated dist") do |dist|
|
29
|
+
options[:dist] = dist
|
30
|
+
end
|
31
|
+
|
32
|
+
# # This displays the help screen, all programs are
|
33
|
+
# # assumed to have this option.
|
34
|
+
opts.on( '-h', '--help', 'Display this screen' ) do
|
35
|
+
puts opts
|
36
|
+
exit
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
optparse.parse!
|
41
|
+
# puts options.inspect
|
42
|
+
|
43
|
+
WriteDown.build options
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module WriteDown
|
2
|
+
class Article
|
3
|
+
attr_accessor :title, :content, :link, :created_at, :updated_at, :file_name, :series
|
4
|
+
# link 可以是 uri, 或者其他 ID, 总之是一个资源的唯一定位符
|
5
|
+
|
6
|
+
|
7
|
+
#返回 article 对象的集合
|
8
|
+
def self.build source_folder
|
9
|
+
articles = Array.new
|
10
|
+
|
11
|
+
Dir.foreach(source_folder) do |file|
|
12
|
+
unless file.to_s.start_with?"." #排除.开头的文件
|
13
|
+
begin
|
14
|
+
file_path = "#{source_folder}/#{file}"
|
15
|
+
f = File.new(file_path,"r")
|
16
|
+
if File.directory?(f) #是目录
|
17
|
+
series = Series.new
|
18
|
+
series.name = File.basename(file_path) #系列的名字就是文件夹的名字
|
19
|
+
|
20
|
+
Dir.foreach(f) do |sub_f|
|
21
|
+
unless sub_f.to_s.start_with?"." #排除.开头的文件
|
22
|
+
file_path = "#{f.path}/#{sub_f}"
|
23
|
+
article = Article.new
|
24
|
+
article.build_from_file file_path
|
25
|
+
articles << article #所有的文章集合
|
26
|
+
series.articles << article #某个系列的文章集合
|
27
|
+
end
|
28
|
+
end
|
29
|
+
$site.series << series
|
30
|
+
else #最外层的文章
|
31
|
+
article = Article.new
|
32
|
+
article.build_from_file f
|
33
|
+
articles << article
|
34
|
+
end
|
35
|
+
rescue => err
|
36
|
+
puts "build from source folder error: #{err}"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
articles
|
42
|
+
end
|
43
|
+
|
44
|
+
def build_from_file file_path
|
45
|
+
basename = File.basename(file_path)
|
46
|
+
file = File.new(file_path)
|
47
|
+
file_content = file.read #读取所有内容
|
48
|
+
html_content = Converter.convert_markdown file_content #转成 html 了
|
49
|
+
puts self
|
50
|
+
self.content = html_content
|
51
|
+
self.file_name = basename #文件名
|
52
|
+
self.link = basename.chomp(File.extname(file_path)) + ".html" #链接形式以后要改
|
53
|
+
self.title = self.get_title #读取合适的 title
|
54
|
+
self.created_at = file.ctime
|
55
|
+
self.updated_at = file.mtime
|
56
|
+
file.close
|
57
|
+
end
|
58
|
+
|
59
|
+
def get_title
|
60
|
+
doc = Nokogiri::HTML(self.content)
|
61
|
+
doc.css('h1').first.content ||= self.file_name
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module WriteDown
|
2
|
+
class Template
|
3
|
+
#替换模板变量
|
4
|
+
def self.render dist, articles
|
5
|
+
#套入模板
|
6
|
+
index_file_content = File.open(File.expand_path(dist+"/index.html")).read
|
7
|
+
post_file_content = File.open(File.expand_path(dist+"/post.html")).read
|
8
|
+
index_html = Mustache.render(index_file_content, :articles => articles, :site => $site) #TODO should sort by some column?
|
9
|
+
ret_fs = File.open(dist+"/index.html", "w")
|
10
|
+
ret_fs.puts index_html
|
11
|
+
ret_fs.close
|
12
|
+
articles.each do |article|
|
13
|
+
article_html = Mustache.render(post_file_content, :site => $site, :articles => articles)
|
14
|
+
article_fs = File.open(dist+"/"+article.link, "w")
|
15
|
+
article_fs.puts article_html
|
16
|
+
article_fs.close
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/write_down/version.rb
CHANGED
data/lib/write_down.rb
CHANGED
@@ -1,7 +1,37 @@
|
|
1
1
|
require "write_down/version"
|
2
|
+
require "minidown"
|
3
|
+
require "mustache"
|
4
|
+
require "nokogiri"
|
5
|
+
require "write_down/article"
|
6
|
+
require "write_down/converter"
|
7
|
+
require "write_down/template"
|
8
|
+
require "write_down/series"
|
9
|
+
require "write_down/site"
|
10
|
+
require "write_down/page"
|
2
11
|
|
3
12
|
module WriteDown
|
13
|
+
|
14
|
+
$site = Site.new
|
15
|
+
|
16
|
+
#just a demo
|
4
17
|
def self.hello
|
5
|
-
"hello! I am write down!"
|
18
|
+
"hello! I am write down! Enjoy!"
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.build options
|
22
|
+
puts "generating by theme #{options[:theme]} ........"
|
23
|
+
#复制 html 模板到目标目录
|
24
|
+
FileUtils.cp_r File.expand_path("../template/#{options[:theme]}", File.dirname(__FILE__)) + '/.', options[:dist]
|
25
|
+
articles = Article.build options[:source]
|
26
|
+
Template.render options[:dist], articles
|
6
27
|
end
|
28
|
+
|
29
|
+
#定义一套步骤
|
30
|
+
def process
|
31
|
+
# 检查
|
32
|
+
# 初始化结构
|
33
|
+
# 渲染+填充
|
34
|
+
# 结束
|
35
|
+
end
|
36
|
+
|
7
37
|
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>Page Not Found :(</title>
|
6
|
+
<style>
|
7
|
+
::-moz-selection {
|
8
|
+
background: #b3d4fc;
|
9
|
+
text-shadow: none;
|
10
|
+
}
|
11
|
+
|
12
|
+
::selection {
|
13
|
+
background: #b3d4fc;
|
14
|
+
text-shadow: none;
|
15
|
+
}
|
16
|
+
|
17
|
+
html {
|
18
|
+
padding: 30px 10px;
|
19
|
+
font-size: 20px;
|
20
|
+
line-height: 1.4;
|
21
|
+
color: #737373;
|
22
|
+
background: #f0f0f0;
|
23
|
+
-webkit-text-size-adjust: 100%;
|
24
|
+
-ms-text-size-adjust: 100%;
|
25
|
+
}
|
26
|
+
|
27
|
+
html,
|
28
|
+
input {
|
29
|
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
30
|
+
}
|
31
|
+
|
32
|
+
body {
|
33
|
+
max-width: 500px;
|
34
|
+
_width: 500px;
|
35
|
+
padding: 30px 20px 50px;
|
36
|
+
border: 1px solid #b3b3b3;
|
37
|
+
border-radius: 4px;
|
38
|
+
margin: 0 auto;
|
39
|
+
box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
|
40
|
+
background: #fcfcfc;
|
41
|
+
}
|
42
|
+
|
43
|
+
h1 {
|
44
|
+
margin: 0 10px;
|
45
|
+
font-size: 50px;
|
46
|
+
text-align: center;
|
47
|
+
}
|
48
|
+
|
49
|
+
h1 span {
|
50
|
+
color: #bbb;
|
51
|
+
}
|
52
|
+
|
53
|
+
h3 {
|
54
|
+
margin: 1.5em 0 0.5em;
|
55
|
+
}
|
56
|
+
|
57
|
+
p {
|
58
|
+
margin: 1em 0;
|
59
|
+
}
|
60
|
+
|
61
|
+
ul {
|
62
|
+
padding: 0 0 0 40px;
|
63
|
+
margin: 1em 0;
|
64
|
+
}
|
65
|
+
|
66
|
+
.container {
|
67
|
+
max-width: 380px;
|
68
|
+
_width: 380px;
|
69
|
+
margin: 0 auto;
|
70
|
+
}
|
71
|
+
|
72
|
+
/* google search */
|
73
|
+
|
74
|
+
#goog-fixurl ul {
|
75
|
+
list-style: none;
|
76
|
+
padding: 0;
|
77
|
+
margin: 0;
|
78
|
+
}
|
79
|
+
|
80
|
+
#goog-fixurl form {
|
81
|
+
margin: 0;
|
82
|
+
}
|
83
|
+
|
84
|
+
#goog-wm-qt,
|
85
|
+
#goog-wm-sb {
|
86
|
+
border: 1px solid #bbb;
|
87
|
+
font-size: 16px;
|
88
|
+
line-height: normal;
|
89
|
+
vertical-align: top;
|
90
|
+
color: #444;
|
91
|
+
border-radius: 2px;
|
92
|
+
}
|
93
|
+
|
94
|
+
#goog-wm-qt {
|
95
|
+
width: 220px;
|
96
|
+
height: 20px;
|
97
|
+
padding: 5px;
|
98
|
+
margin: 5px 10px 0 0;
|
99
|
+
box-shadow: inset 0 1px 1px #ccc;
|
100
|
+
}
|
101
|
+
|
102
|
+
#goog-wm-sb {
|
103
|
+
display: inline-block;
|
104
|
+
height: 32px;
|
105
|
+
padding: 0 10px;
|
106
|
+
margin: 5px 0 0;
|
107
|
+
white-space: nowrap;
|
108
|
+
cursor: pointer;
|
109
|
+
background-color: #f5f5f5;
|
110
|
+
background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
111
|
+
background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
112
|
+
background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
113
|
+
background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
114
|
+
-webkit-appearance: none;
|
115
|
+
-moz-appearance: none;
|
116
|
+
appearance: none;
|
117
|
+
*overflow: visible;
|
118
|
+
*display: inline;
|
119
|
+
*zoom: 1;
|
120
|
+
}
|
121
|
+
|
122
|
+
#goog-wm-sb:hover,
|
123
|
+
#goog-wm-sb:focus {
|
124
|
+
border-color: #aaa;
|
125
|
+
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
126
|
+
background-color: #f8f8f8;
|
127
|
+
}
|
128
|
+
|
129
|
+
#goog-wm-qt:hover,
|
130
|
+
#goog-wm-qt:focus {
|
131
|
+
border-color: #105cb6;
|
132
|
+
outline: 0;
|
133
|
+
color: #222;
|
134
|
+
}
|
135
|
+
|
136
|
+
input::-moz-focus-inner {
|
137
|
+
padding: 0;
|
138
|
+
border: 0;
|
139
|
+
}
|
140
|
+
</style>
|
141
|
+
</head>
|
142
|
+
<body>
|
143
|
+
<div class="container">
|
144
|
+
<h1>Not found <span>:(</span></h1>
|
145
|
+
<p>Sorry, but the page you were trying to view does not exist.</p>
|
146
|
+
<p>It looks like this was the result of either:</p>
|
147
|
+
<ul>
|
148
|
+
<li>a mistyped address</li>
|
149
|
+
<li>an out-of-date link</li>
|
150
|
+
</ul>
|
151
|
+
<script>
|
152
|
+
var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
|
153
|
+
</script>
|
154
|
+
<script src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
|
155
|
+
</div>
|
156
|
+
</body>
|
157
|
+
</html>
|
@@ -0,0 +1,133 @@
|
|
1
|
+
### HEAD
|
2
|
+
|
3
|
+
### 4.3.0 (September 10, 2013)
|
4
|
+
|
5
|
+
* Use one apple-touch-icon instead of six ([#1367](https://github.com/h5bp/html5-boilerplate/issues/1367)).
|
6
|
+
* Move font-related declarations from `body` to `html` ([#1411](https://github.com/h5bp/html5-boilerplate/issues/1411)).
|
7
|
+
* Update to Apache Server Configs 1.1.0.
|
8
|
+
* Add `initial-scale=1` to the viewport `meta` ([#1398](https://github.com/h5bp/html5-boilerplate/pull/1398)).
|
9
|
+
* Vertical centering for audio-, canvas- and video-tags ([#1326](https://github.com/h5bp/html5-boilerplate/issues/1326)).
|
10
|
+
* Remove Google Chrome Frame related code ([#1379](https://github.com/h5bp/html5-boilerplate/pull/1379), [#1396](https://github.com/h5bp/html5-boilerplate/pull/1396)).
|
11
|
+
* Update to Google Universal Analytics ([#1347](https://github.com/h5bp/html5-boilerplate/issues/1347)).
|
12
|
+
* Update to jQuery 1.10.2.
|
13
|
+
* Update to Normalize.css 1.1.3.
|
14
|
+
|
15
|
+
### 4.2.0 (April 8, 2013)
|
16
|
+
|
17
|
+
* Remove Google Analytics protocol check ([#1319](https://github.com/h5bp/html5-boilerplate/pull/1319)).
|
18
|
+
* Update to Normalize.css 1.1.1.
|
19
|
+
* Update Apache configurations to include the latest changes in the canonical
|
20
|
+
[`.htaccess`](https://github.com/h5bp/server-configs-apache) file.
|
21
|
+
* Use a protocol relative URL for the 404 template script.
|
22
|
+
* Update to jQuery 1.9.1.
|
23
|
+
|
24
|
+
### 4.1.0 (January 21, 2013)
|
25
|
+
|
26
|
+
* Update to Normalize.css 1.1.0.
|
27
|
+
* Update to jQuery 1.9.0.
|
28
|
+
|
29
|
+
### 4.0.3 (January 12, 2013)
|
30
|
+
|
31
|
+
* Use 32x32 favicon.ico ([#1286](https://github.com/h5bp/html5-boilerplate/pull/1286)).
|
32
|
+
* Remove named function expression in plugins.js ([#1280](https://github.com/h5bp/html5-boilerplate/pull/1280)).
|
33
|
+
* Adjust CSS image-replacement code ([#1239](https://github.com/h5bp/html5-boilerplate/issues/1239)).
|
34
|
+
* Update HiDPI example media query ([#1127](https://github.com/h5bp/html5-boilerplate/issues/1127)).
|
35
|
+
|
36
|
+
### 4.0.2 (December 9, 2012)
|
37
|
+
|
38
|
+
* Update placeholder icons.
|
39
|
+
* Update to Normalize.css 1.0.2.
|
40
|
+
* Update to jQuery 1.8.3.
|
41
|
+
|
42
|
+
### 4.0.1 (October 20, 2012)
|
43
|
+
|
44
|
+
* Further improvements to `console` method stubbing ([#1206](https://github.com/h5bp/html5-boilerplate/issues/1206), [#1229](https://github.com/h5bp/html5-boilerplate/pull/1229)).
|
45
|
+
* Update to jQuery 1.8.2.
|
46
|
+
* Update to Modernizr 2.6.2.
|
47
|
+
* Minor additions to the documentation.
|
48
|
+
|
49
|
+
### 4.0.0 (August 28, 2012)
|
50
|
+
|
51
|
+
* Improve the Apache compression configuration ([#1012](https://github.com/h5bp/html5-boilerplate/issues/1012), [#1173](https://github.com/h5bp/html5-boilerplate/issues/1173)).
|
52
|
+
* Add a HiDPI example media query ([#1127](https://github.com/h5bp/html5-boilerplate/issues/1127)).
|
53
|
+
* Add bundled docs ([#1154](https://github.com/h5bp/html5-boilerplate/issues/1154)).
|
54
|
+
* Add MIT license ([#1139](https://github.com/h5bp/html5-boilerplate/issues/1139)).
|
55
|
+
* Update to Normalize.css 1.0.1.
|
56
|
+
* Separate Normalize.css from the rest of the CSS ([#1160](https://github.com/h5bp/html5-boilerplate/issues/1160)).
|
57
|
+
* Improve `console.log` protection ([#1107](https://github.com/h5bp/html5-boilerplate/issues/1107)).
|
58
|
+
* Replace hot pink text selection color with a neutral color.
|
59
|
+
* Change image replacement technique ([#1149](https://github.com/h5bp/html5-boilerplate/issues/1149)).
|
60
|
+
* Code format and consistency changes ([#1112](https://github.com/h5bp/html5-boilerplate/issues/1112)).
|
61
|
+
* Rename CSS file and rename JS files and subdirectories.
|
62
|
+
* Update to jQuery 1.8 ([#1161](https://github.com/h5bp/html5-boilerplate/issues/1161)).
|
63
|
+
* Update to Modernizr 2.6.1 ([#1086](https://github.com/h5bp/html5-boilerplate/issues/1086)).
|
64
|
+
* Remove uncompressed jQuery ([#1153](https://github.com/h5bp/html5-boilerplate/issues/1153)).
|
65
|
+
* Remove superfluous inline comments ([#1150](https://github.com/h5bp/html5-boilerplate/issues/1150)).
|
66
|
+
|
67
|
+
### 3.0.2 (February 19, 2012)
|
68
|
+
|
69
|
+
* Update to Modernizr 2.5.3.
|
70
|
+
|
71
|
+
### 3.0.1 (February 08, 2012).
|
72
|
+
|
73
|
+
* Update to Modernizr 2.5.2 (includes html5shiv 3.3).
|
74
|
+
|
75
|
+
### 3.0.0 (February 06, 2012)
|
76
|
+
|
77
|
+
* Improvements to `.htaccess`.
|
78
|
+
* Improve 404 design.
|
79
|
+
* Simplify JS folder structure.
|
80
|
+
* Change `html` IE class names changed to target ranges rather than specific versions of IE.
|
81
|
+
* Update CSS to include latest normalize.css changes and better typographic defaults ([#825](https://github.com/h5bp/html5-boilerplate/issues/825)).
|
82
|
+
* Update to Modernizr 2.5 (includes yepnope 1.5 and html5shiv 3.2).
|
83
|
+
* Update to jQuery 1.7.1.
|
84
|
+
* Revert to async snippet for the Google Analytics script.
|
85
|
+
* Remove the ant build script ([#826](https://github.com/h5bp/html5-boilerplate/issues/826)).
|
86
|
+
* Remove Respond.js ([#816](https://github.com/h5bp/html5-boilerplate/issues/816)).
|
87
|
+
* Remove the `demo/` directory ([#808](https://github.com/h5bp/html5-boilerplate/issues/808)).
|
88
|
+
* Remove the `test/` directory ([#808](https://github.com/h5bp/html5-boilerplate/issues/808)).
|
89
|
+
* Remove Google Chrome Frame script for IE6 users; replace with links to Chrome Frame and options for alternative browsers.
|
90
|
+
* Remove `initial-scale=1` from the viewport `meta` ([#824](https://github.com/h5bp/html5-boilerplate/issues/824)).
|
91
|
+
* Remove `defer` from all scripts to avoid legacy IE bugs.
|
92
|
+
* Remove explicit Site Speed tracking for Google Analytics. It's now enabled by default.
|
93
|
+
|
94
|
+
### 2.0.0 (August 10, 2011)
|
95
|
+
|
96
|
+
* Change starting CSS to be based on normalize.css instead of reset.css ([#500](https://github.com/h5bp/html5-boilerplate/issues/500)).
|
97
|
+
* Add Respond.js media query polyfill.
|
98
|
+
* Add Google Chrome Frame script prompt for IE6 users.
|
99
|
+
* Simplify the `html` conditional comments for modern browsers and add an `oldie` class.
|
100
|
+
* Update clearfix to use "micro clearfix".
|
101
|
+
* Add placeholder CSS MQs for mobile-first approach.
|
102
|
+
* Add `textarea { resize: vertical; }` to only allow vertical resizing.
|
103
|
+
* Add `img { max-width: 100%; }` to the print styles; prevents images being truncated.
|
104
|
+
* Add Site Speed tracking for Google Analytics.
|
105
|
+
* Update to jQuery 1.6.2 (and use minified by default).
|
106
|
+
* Update to Modernizr 2.0 Complete, Production minified (includes yepnope, html5shiv, and Respond.js).
|
107
|
+
* Use `Modernizr.load()` to load the Google Analytics script.
|
108
|
+
* Much faster build process.
|
109
|
+
* Add build script options for CSSLint, JSLint, JSHint tools.
|
110
|
+
* Build script now compresses all images in subfolders.
|
111
|
+
* Build script now versions files by SHA hash.
|
112
|
+
* Many `.htaccess` improvements including: disable directory browsing, improved support for all versions of Apache, more robust and extensive HTTP compression rules.
|
113
|
+
* Remove `handheld.css` as it has very poor device support.
|
114
|
+
* Remove touch-icon `link` elements from the HTML and include improved touch-icon support.
|
115
|
+
* Remove the cache-busting query paramaters from files references in the HTML.
|
116
|
+
* Remove IE6 PNGFix.
|
117
|
+
|
118
|
+
### 1.0.0 (March 21, 2011)
|
119
|
+
|
120
|
+
* Rewrite build script to make it more customizable and flexible.
|
121
|
+
* Add a humans.txt.
|
122
|
+
* Numerous `.htaccess` improvements (including inline documentation).
|
123
|
+
* Move the alternative server configurations to the H5BP server configs repo.
|
124
|
+
* Use a protocol-relative url to reference jQuery and prevent mixed content warnings.
|
125
|
+
* Optimize the Google Analytics snippet.
|
126
|
+
* Use Eric Meyer's recent CSS reset update and the HTML5 Doctor reset.
|
127
|
+
* More robust `sub`/`sup` CSS styles.
|
128
|
+
* Add keyboard `.focusable` helper class that extends `.visuallyhidden`.
|
129
|
+
* Print styles no longer print hash or JavaScript links.
|
130
|
+
* Add a print reset for IE's proprietary filters.
|
131
|
+
* Remove IE9-specific conditional class on the `html` element.
|
132
|
+
* Remove margins from lists within `nav` elements.
|
133
|
+
* Remove YUI profiling.
|