buildr 1.3.2-java → 1.3.3-java

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.
Files changed (124) hide show
  1. data/CHANGELOG +66 -4
  2. data/{README → README.rdoc} +29 -16
  3. data/Rakefile +16 -20
  4. data/_buildr +38 -0
  5. data/addon/buildr/cobertura.rb +49 -45
  6. data/addon/buildr/emma.rb +238 -0
  7. data/addon/buildr/jetty.rb +1 -1
  8. data/addon/buildr/nailgun.rb +585 -661
  9. data/{lib/buildr/java → addon/buildr}/org/apache/buildr/BuildrNail$Main.class +0 -0
  10. data/{lib/buildr/java → addon/buildr}/org/apache/buildr/BuildrNail.class +0 -0
  11. data/{lib/buildr/java → addon/buildr}/org/apache/buildr/BuildrNail.java +0 -0
  12. data/bin/buildr +9 -2
  13. data/buildr.buildfile +53 -0
  14. data/buildr.gemspec +21 -14
  15. data/doc/css/default.css +51 -48
  16. data/doc/css/print.css +60 -55
  17. data/doc/images/favicon.png +0 -0
  18. data/doc/images/growl-icon.tiff +0 -0
  19. data/doc/images/project-structure.png +0 -0
  20. data/doc/pages/artifacts.textile +46 -156
  21. data/doc/pages/building.textile +63 -323
  22. data/doc/pages/contributing.textile +112 -102
  23. data/doc/pages/download.textile +19 -27
  24. data/doc/pages/extending.textile +27 -81
  25. data/doc/pages/getting_started.textile +44 -119
  26. data/doc/pages/index.textile +26 -47
  27. data/doc/pages/languages.textile +407 -0
  28. data/doc/pages/more_stuff.textile +92 -173
  29. data/doc/pages/packaging.textile +71 -239
  30. data/doc/pages/projects.textile +58 -233
  31. data/doc/pages/recipes.textile +19 -43
  32. data/doc/pages/settings_profiles.textile +39 -104
  33. data/doc/pages/testing.textile +41 -304
  34. data/doc/pages/troubleshooting.textile +29 -47
  35. data/doc/pages/whats_new.textile +69 -167
  36. data/doc/print.haml +0 -1
  37. data/doc/print.toc.yaml +1 -0
  38. data/doc/scripts/buildr-git.rb +1 -1
  39. data/doc/site.haml +1 -0
  40. data/doc/site.toc.yaml +8 -5
  41. data/{KEYS → etc/KEYS} +0 -0
  42. data/etc/git-svn-authors +16 -0
  43. data/lib/buildr.rb +2 -5
  44. data/lib/buildr/core/application.rb +192 -98
  45. data/lib/buildr/core/build.rb +140 -91
  46. data/lib/buildr/core/checks.rb +5 -5
  47. data/lib/buildr/core/common.rb +1 -1
  48. data/lib/buildr/core/compile.rb +12 -10
  49. data/lib/buildr/core/filter.rb +151 -46
  50. data/lib/buildr/core/generate.rb +9 -9
  51. data/lib/buildr/core/progressbar.rb +1 -1
  52. data/lib/buildr/core/project.rb +8 -7
  53. data/lib/buildr/core/test.rb +51 -26
  54. data/lib/buildr/core/transports.rb +22 -38
  55. data/lib/buildr/core/util.rb +78 -26
  56. data/lib/buildr/groovy.rb +18 -0
  57. data/lib/buildr/groovy/bdd.rb +105 -0
  58. data/lib/buildr/groovy/compiler.rb +138 -0
  59. data/lib/buildr/ide/eclipse.rb +102 -71
  60. data/lib/buildr/ide/idea.rb +7 -12
  61. data/lib/buildr/ide/idea7x.rb +7 -8
  62. data/lib/buildr/java.rb +4 -7
  63. data/lib/buildr/java/ant.rb +26 -5
  64. data/lib/buildr/java/bdd.rb +449 -0
  65. data/lib/buildr/java/commands.rb +9 -9
  66. data/lib/buildr/java/{compilers.rb → compiler.rb} +8 -90
  67. data/lib/buildr/java/jruby.rb +29 -11
  68. data/lib/buildr/java/jtestr_runner.rb.erb +116 -0
  69. data/lib/buildr/java/packaging.rb +23 -16
  70. data/lib/buildr/java/pom.rb +1 -1
  71. data/lib/buildr/java/rjb.rb +21 -8
  72. data/lib/buildr/java/test_result.rb +308 -0
  73. data/lib/buildr/java/tests.rb +324 -0
  74. data/lib/buildr/packaging/artifact.rb +12 -11
  75. data/lib/buildr/packaging/artifact_namespace.rb +7 -4
  76. data/lib/buildr/packaging/gems.rb +3 -3
  77. data/lib/buildr/packaging/zip.rb +13 -10
  78. data/lib/buildr/resources/buildr.icns +0 -0
  79. data/lib/buildr/scala.rb +19 -0
  80. data/lib/buildr/scala/compiler.rb +109 -0
  81. data/lib/buildr/scala/tests.rb +203 -0
  82. data/rakelib/apache.rake +71 -45
  83. data/rakelib/doc.rake +2 -2
  84. data/rakelib/package.rake +3 -2
  85. data/rakelib/rspec.rake +23 -21
  86. data/rakelib/setup.rake +34 -9
  87. data/rakelib/stage.rake +4 -1
  88. data/spec/addon/cobertura_spec.rb +77 -0
  89. data/spec/addon/emma_spec.rb +120 -0
  90. data/spec/addon/test_coverage_spec.rb +255 -0
  91. data/spec/{application_spec.rb → core/application_spec.rb} +82 -4
  92. data/spec/{artifact_namespace_spec.rb → core/artifact_namespace_spec.rb} +12 -1
  93. data/spec/core/build_spec.rb +415 -0
  94. data/spec/{checks_spec.rb → core/checks_spec.rb} +2 -2
  95. data/spec/{common_spec.rb → core/common_spec.rb} +119 -30
  96. data/spec/{compile_spec.rb → core/compile_spec.rb} +17 -13
  97. data/spec/core/generate_spec.rb +33 -0
  98. data/spec/{project_spec.rb → core/project_spec.rb} +9 -6
  99. data/spec/{test_spec.rb → core/test_spec.rb} +222 -28
  100. data/spec/{transport_spec.rb → core/transport_spec.rb} +5 -9
  101. data/spec/groovy/bdd_spec.rb +80 -0
  102. data/spec/{groovy_compilers_spec.rb → groovy/compiler_spec.rb} +1 -1
  103. data/spec/ide/eclipse_spec.rb +243 -0
  104. data/spec/{java_spec.rb → java/ant.rb} +7 -17
  105. data/spec/java/bdd_spec.rb +358 -0
  106. data/spec/{java_compilers_spec.rb → java/compiler_spec.rb} +1 -1
  107. data/spec/java/java_spec.rb +88 -0
  108. data/spec/{java_packaging_spec.rb → java/packaging_spec.rb} +65 -4
  109. data/spec/{java_test_frameworks_spec.rb → java/tests_spec.rb} +31 -10
  110. data/spec/{archive_spec.rb → packaging/archive_spec.rb} +12 -2
  111. data/spec/{artifact_spec.rb → packaging/artifact_spec.rb} +12 -5
  112. data/spec/{packaging_helper.rb → packaging/packaging_helper.rb} +0 -0
  113. data/spec/{packaging_spec.rb → packaging/packaging_spec.rb} +1 -1
  114. data/spec/sandbox.rb +22 -5
  115. data/spec/{scala_compilers_spec.rb → scala/compiler_spec.rb} +1 -1
  116. data/spec/{scala_test_frameworks_spec.rb → scala/tests_spec.rb} +11 -12
  117. data/spec/spec_helpers.rb +38 -17
  118. metadata +93 -70
  119. data/lib/buildr/java/bdd_frameworks.rb +0 -265
  120. data/lib/buildr/java/groovyc.rb +0 -137
  121. data/lib/buildr/java/test_frameworks.rb +0 -450
  122. data/spec/build_spec.rb +0 -193
  123. data/spec/java_bdd_frameworks_spec.rb +0 -238
  124. data/spec/spec.opts +0 -6
data/bin/buildr CHANGED
@@ -14,8 +14,15 @@
14
14
  # License for the specific language governing permissions and limitations under
15
15
  # the License.
16
16
 
17
-
17
+ start = Time.now
18
18
  require 'rubygems'
19
19
  require 'buildr'
20
-
21
20
  Buildr.application.run
21
+ if verbose
22
+ elapsed = Time.now - start
23
+ real = []
24
+ real << ("%ih" % (elapsed / 3600)) if elapsed >= 3600
25
+ real << ("%im" % ((elapsed / 60) % 60)) if elapsed >= 60
26
+ real << ("%.3fs" % (elapsed % 60))
27
+ puts $terminal.color("Completed in #{real.join}", :green)
28
+ end
@@ -0,0 +1,53 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one or more
2
+ # contributor license agreements. See the NOTICE file distributed with this
3
+ # work for additional information regarding copyright ownership. The ASF
4
+ # licenses this file to you under the Apache License, Version 2.0 (the
5
+ # "License"); you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations under
14
+ # the License.
15
+
16
+ $LOADED_FEATURES << 'jruby' unless RUBY_PLATFORM =~ /java/ # Pretend to have JRuby, keeps Nailgun happy.
17
+ require 'buildr/jetty'
18
+ require 'buildr/nailgun'
19
+ repositories.remote << 'http://repo1.maven.org/maven2'
20
+ repositories.remote << 'http://scala-tools.org/repo-releases/'
21
+
22
+
23
+ define 'buildr' do
24
+ compile.using :source=>'1.4', :target=>'1.4', :debug=>false
25
+
26
+ define 'java' do
27
+ compile.using(:javac).from(FileList['lib/buildr/java/**/*.java']).into('lib/buildr/java')
28
+ end
29
+
30
+ desc 'Buildr extra packages (Antlr, Cobertura, Hibernate, Javacc, JDepend, Jetty, OpenJPA, XmlBeans)'
31
+ define 'extra', :version=>'1.0' do
32
+ compile.using(:javac).from(FileList['addon/buildr/**/*.java']).into('addon/buildr').with(Buildr::Jetty::REQUIRES, Buildr::Nailgun::ARTIFACT_SPEC)
33
+ # Legals included in source code and show in RDoc.
34
+ legal = 'LICENSE', 'DISCLAIMER', 'NOTICE'
35
+ package(:gem).include(legal).path('lib').include('addon/buildr')
36
+ package(:gem).spec do |spec|
37
+ spec.author = 'Apache Buildr'
38
+ spec.email = 'buildr-user@incubator.apache.org'
39
+ spec.homepage = "http://incubator.apache.org/buildr"
40
+ spec.rubyforge_project = 'buildr'
41
+ spec.extra_rdoc_files = legal
42
+ spec.rdoc_options << '--webcvs' << 'http://svn.apache.org/repos/asf/incubator/buildr/trunk/'
43
+ spec.add_dependency 'buildr', '~> 1.3'
44
+ end
45
+
46
+ install do
47
+ addon package(:gem)
48
+ end
49
+
50
+ upload do
51
+ end
52
+ end
53
+ end
@@ -16,36 +16,43 @@
16
16
 
17
17
  Gem::Specification.new do |spec|
18
18
  spec.name = 'buildr'
19
- spec.version = '1.3.2'
19
+ spec.version = '1.3.3'
20
20
  spec.author = 'Apache Buildr'
21
- spec.email = "#{spec.name}-user@incubator.apache.org"
22
- spec.homepage = "http://incubator.apache.org/#{spec.name}/"
21
+ spec.email = "buildr-user@incubator.apache.org"
22
+ spec.homepage = "http://incubator.apache.org/buildr"
23
23
  spec.summary = 'A build system that doesn\'t suck'
24
+ spec.rubyforge_project = 'buildr'
24
25
 
25
- spec.files = FileList['lib/**/*', 'addon/**/*', 'README', 'CHANGELOG', 'LICENSE', 'NOTICE', 'DISCLAIMER', 'KEYS',
26
- '*.gemspec', 'Rakefile', 'rakelib/**/*', 'spec/**/*', 'doc/**/*']
26
+ # Rakefile needs to create spec for both platforms (ruby and java), using the
27
+ # $platform global variable. In all other cases, we figure it out from RUBY_PLATFORM.
28
+ spec.platform = $platform || RUBY_PLATFORM[/java/] || 'ruby'
29
+
30
+ spec.files = Dir['lib/**/*', 'bin/**/*', 'addon/**/*', 'doc/**/*', 'spec/**/*',
31
+ 'README.rdoc', 'LICENSE', 'NOTICE', 'DISCLAIMER', 'CHANGELOG',
32
+ 'buildr.*', 'Rakefile', 'rakelib/**/*', '_buildr', 'etc/**/*']
27
33
  spec.require_paths = ['lib', 'addon']
28
34
  spec.bindir = 'bin' # Use these for applications.
29
35
  spec.executable = 'buildr'
30
36
 
31
- spec.has_rdoc = true
32
- spec.extra_rdoc_files = ['README', 'CHANGELOG', 'LICENSE', 'NOTICE', 'DISCLAIMER']
33
- spec.rdoc_options << '--title' << "Buildr -- #{spec.summary}" <<
34
- '--main' << 'README' << '--line-numbers' << '--inline-source' << '-p' <<
35
- '--webcvs' << 'http://svn.apache.org/repos/asf/incubator/#{spec.name}/trunk/'
36
- spec.rubyforge_project = 'buildr'
37
+ spec.has_rdoc = true
38
+ spec.extra_rdoc_files = ['README.rdoc', 'CHANGELOG', 'LICENSE', 'NOTICE', 'DISCLAIMER']
39
+ spec.rdoc_options << '--title' << "Buildr" << '--main' << 'README.rdoc' <<
40
+ '--line-numbers' << '--inline-source' << '-p' <<
41
+ '--webcvs' << 'http://svn.apache.org/repos/asf/incubator/buildr/trunk/'
37
42
 
38
43
  # Tested against these dependencies.
39
44
  spec.add_dependency 'rake', '0.8.1'
40
45
  spec.add_dependency 'builder', '2.1.2'
41
- spec.add_dependency 'net-ssh', '2.0.3'
46
+ spec.add_dependency 'net-ssh', '2.0.4'
42
47
  spec.add_dependency 'net-sftp', '2.0.1'
43
48
  spec.add_dependency 'rubyzip', '0.9.1'
44
49
  spec.add_dependency 'highline', '1.4.0'
45
50
  spec.add_dependency 'rubyforge', '1.0.0'
46
- spec.add_dependency 'hoe', '1.6.0'
51
+ spec.add_dependency 'hoe', '1.7.0'
52
+ spec.add_dependency 'rjb', '1.1.6' if spec.platform.to_s == 'ruby'
47
53
  spec.add_dependency 'Antwrap', '0.7.0'
48
- spec.add_dependency 'rspec', '1.1.4'
54
+ spec.add_dependency 'rspec', '1.1.5'
49
55
  spec.add_dependency 'xml-simple', '1.0.11'
50
56
  spec.add_dependency 'archive-tar-minitar', '0.5.2'
57
+ spec.add_dependency 'jruby-openssl', '0.2' if spec.platform.to_s == 'java'
51
58
  end
@@ -20,7 +20,8 @@ body {
20
20
  color: #000;
21
21
  font-family: "DejaVu Sans", Verdana, Helvetica;
22
22
  text-align: center;
23
- line-height: 1.5em;
23
+ line-height: 150%;
24
+ font-size: 12pt;
24
25
  }
25
26
 
26
27
  a:link, a:visited{
@@ -36,42 +37,48 @@ img {
36
37
  border: none;
37
38
  }
38
39
 
39
- pre, code { font-family: "DejaVu Sans Mono", "Courier New", "Courier"; }
40
- pre { padding: 1em; }
41
- pre.wrapped {
40
+ pre, code {
41
+ font-family: "DejaVu Sans Mono", "Courier New", "Courier";
42
+ font-size: 11pt;
43
+ }
44
+ pre {
45
+ margin: 0.3em 0 0.3em 0.9em;
46
+ padding: 0;
47
+ line-height: 135%;
42
48
  white-space: pre-wrap; /* css-3 */
43
49
  white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
44
50
  }
45
51
 
46
52
  h1, h2, h3 {
47
- padding: 0.3em;
48
- margin: 2.5em 0 0.5em -0.3em;
53
+ padding: 0;
54
+ margin: 1.6em 0 0.6em -0.9em;
49
55
  line-height: 1.25em;
50
56
  letter-spacing: 0.03em;
51
57
  }
52
58
 
53
59
  h1 {
54
- border-bottom: 1px solid #808080;
55
60
  font-size: 2em;
56
61
  margin-top: 0;
62
+ padding-bottom: 0.3em;
63
+ border-bottom: 1px solid #808080;
57
64
  }
58
65
 
59
66
  h2 {
60
- border-bottom: 1px solid #a0a0a0;
61
67
  font-size: 1.3em;
68
+ padding-bottom: 0.3em;
69
+ border-bottom: 1px solid #a0a0a0;
62
70
  }
63
71
 
64
72
  h3 {
65
- border-bottom: 1px solid #c0c0c0;
66
73
  font-size: 1.1em;
67
74
  }
68
75
 
69
76
  blockquote {
70
- padding-left: 2em;
71
- padding-right: 2em;
72
- margin-left: 0.3em;
77
+ padding-left: 2em;
78
+ padding-right: 2em;
79
+ margin-left: 0.3em;
73
80
  margin-right: 0;
74
- border-left: 1px solid #3c78b5;
81
+ border-left: 1px solid #3c78b5;
75
82
  }
76
83
 
77
84
  ul {
@@ -84,7 +91,9 @@ ul ul {
84
91
  }
85
92
 
86
93
  table {
87
- border-spacing: 0.2em 0;
94
+ border-spacing: 0;
95
+ width: 100%;
96
+ margin: 0.3em 0 0.3em 0;
88
97
  }
89
98
 
90
99
  th, td {
@@ -96,7 +105,8 @@ th, td {
96
105
 
97
106
  th, thead td {
98
107
  border-bottom: none;
99
- background-color: #E5E5E5;
108
+ background-color: #669966;
109
+ color: #ffffff;
100
110
  text-align: left;
101
111
  }
102
112
 
@@ -104,16 +114,12 @@ th, thead td {
104
114
  #wrap{
105
115
  margin: 1em auto 2em auto;
106
116
  text-align: left;
107
- width: 60em;
117
+ width: 65em;
108
118
  }
109
119
 
110
120
 
111
121
  #header {
112
- margin: 0;
113
- }
114
-
115
- #header img {
116
- margin: 0 0 1em 0em;
122
+ margin: 0 0 3em 18em;
117
123
  }
118
124
 
119
125
  #header .tagline {
@@ -131,29 +137,32 @@ th, thead td {
131
137
  float: left;
132
138
  text-align: left;
133
139
  margin-right: 2em;
140
+ font-family: "DejaVu Sans", Verdana, Helvetica;
141
+ font-size: 11pt;
142
+ text-align: right;
143
+ border-right: 1px solid #ccc;
144
+ padding-right: 2em;
134
145
  }
135
-
136
146
  #pages ol {
137
147
  list-style: none;
138
- font-weight: bold;
139
148
  padding: 0;
149
+ margin: 0;
140
150
  }
141
-
142
151
  #pages ol li {
143
- border-top: 1px solid #E9E9E9;
144
- padding: 0.3em 0 0.5em 0.5em;
152
+ padding: 0.3em 0 0.6em 0em;
153
+ color: #669966;
154
+ font-weight: bold;
145
155
  }
146
-
147
- #pages ol li a:link, #pages ol li a:visited {
148
- color: #606060;
149
- text-decoration: none;
156
+ #pages ol li ol {
157
+ margin-top: 0.3em;
158
+ padding: 0.3em 0 0.9em 0.9em;
150
159
  }
151
-
152
- #pages ol li a:hover {
153
- color: #222;
154
- text-decoration: none;
160
+ #pages ol li ol li {
161
+ padding: 0.3em 0 0.3em 0em;
162
+ }
163
+ #pages ol li a {
164
+ font-weight: normal;
155
165
  }
156
-
157
166
  #pages form {
158
167
  margin-top: 2em;
159
168
  padding: 0.3em 0 0.5em 0.5em;
@@ -171,22 +180,15 @@ th, thead td {
171
180
  ol.toc {
172
181
  list-style: none;
173
182
  padding: 0;
174
- margin-bottom: 2em !important;
183
+ margin: 0 0 2em 0;
175
184
  }
176
-
177
185
  ol.toc li {
178
- padding: 0.3em 0 0.3em 0 !important;
186
+ padding: 0.3em 0 0.3em 0;
179
187
  margin: 0;
180
188
  }
181
-
182
- ol.toc ol.toc {
183
- list-style: none;
184
- margin: 0.3em 0 0 0 !important;
185
- padding: 0;
186
- }
187
-
188
- ol.toc ol.toc li {
189
- padding-left: 0.5em !important;
189
+ ol.toc li ol.toc {
190
+ margin: 0;
191
+ padding-left: 0.9em;
190
192
  }
191
193
 
192
194
 
@@ -217,7 +219,8 @@ ol.toc ol.toc li {
217
219
 
218
220
 
219
221
  #footer {
220
- border-top: 1px solid #444;
222
+ color: #888;
223
+ border-top: 1px solid #ccc;
221
224
  font-size: 0.9em;
222
225
  padding: 0.3em;
223
226
  margin: 2em 0 3em 0em;
@@ -15,9 +15,12 @@
15
15
  */
16
16
 
17
17
 
18
- @page { margin: 1in 0.75in 1in 0.75in; }
19
- @page {
20
- font-family: "DejaVu Sans", Verdana, Helvetica;
18
+ @page {
19
+ margin: 1in 0.75in 1in 0.75in;
20
+ @top-left, @top-right {
21
+ font-family: "Gill Sans", "DejaVu Sans", Verdana, Helvetica;
22
+ font-weight: normal;
23
+ }
21
24
  }
22
25
  @page:left {
23
26
  @top-left { content: counter(page); }
@@ -32,64 +35,66 @@
32
35
  @top-right { content: normal }
33
36
  }
34
37
 
35
- title {
36
- string-set: doctitle content();
37
- }
38
+ @media print {
39
+ title { string-set: doctitle content(); }
38
40
 
39
- body {
40
- font-size: 12pt;
41
- margin: 0;
42
- color: black;
43
- background: white;
44
- }
41
+ body {
42
+ font-family: "Palatino", "DejaVu Serif", Helvetica;
43
+ font-size: 12pt;
44
+ margin: 0;
45
+ color: black;
46
+ background: white;
47
+ }
45
48
 
46
- h1 {
47
- string-set: pagetitle content();
48
- page-break-before: always;
49
- }
50
- h1:first-child { page-break-before: avoid; }
51
- pre, p, blockquote { page-break-inside: avoid; }
52
- pre {
53
- line-height: 1.3em;
54
- white-space: pre-wrap; /* css-3 */
55
- padding: 0.3em 0 0.9em 0.6em;
56
- margin: 0;
57
- }
58
- a:link, a:visited {
59
- background: transparent;
60
- text-decoration: none;
61
- }
49
+ h1 {
50
+ string-set: pagetitle content();
51
+ page-break-before: always;
52
+ }
53
+ h1:first-child { page-break-before: avoid; }
54
+ h1, h2, h3, ol.toc {
55
+ font-family: "Gill Sans", "Courier", "DejaVu Sans", Verdana, Helvetica;
56
+ }
57
+ pre, p, blockquote { page-break-inside: avoid; }
58
+ pre, code {
59
+ font-family: "Monaco", "DejaVu Sans Mono", "Courier New", "Courier";
60
+ font-size: 10pt;
61
+ }
62
+ a:link, a:visited {
63
+ background: transparent;
64
+ text-decoration: none;
65
+ }
66
+ #wrap, #content, #footer {
67
+ float: none !important;
68
+ color: black;
69
+ background: transparent;
70
+ width: auto !important;
71
+ margin: 0;
72
+ padding: 0;
73
+ border: 0;
74
+ }
62
75
 
76
+ #header {
77
+ margin-bottom: 5%;
78
+ font-size: 120%;
79
+ }
80
+ #header img { width: 4in; }
81
+ #header .tagline {
82
+ float: none !important;
83
+ position: static !important;
84
+ font-size: 1.2em;
85
+ text-align: center;
86
+ }
63
87
 
64
- #wrap, #content, #footer {
65
- float: none !important;
66
- color: black;
67
- background: transparent;
68
- width: auto !important;
69
- margin: 0;
70
- padding: 0;
71
- border: 0;
72
- }
73
-
74
- #header {
75
- margin-bottom: 5%;
76
- font-size: 120%;
77
- }
78
- #header img { width: 4in; }
79
- #header .tagline {
80
- float: none !important;
81
- position: static !important;
82
- font-size: 1.2em;
83
- text-align: center;
84
- }
88
+ #pages, .noprint { display: none; }
85
89
 
86
- #pages, .noprint { display: none; }
90
+ ol.toc a:link, ol.toc a:visited { text-decoration: none; }
91
+ ol.toc a:after { content: leader('.') target-counter(attr(href), page); }
87
92
 
88
- ol.toc a:link, ol.toc a:visited { text-decoration: none; }
89
- ol.toc a:after { content: leader('.') target-counter(attr(href), page); }
93
+ #footer { margin-top: 5%; }
90
94
 
91
- #footer { margin-top: 5%; }
95
+ #license {
96
+ page-break-before: always;
97
+ padding-top: 1in;
98
+ }
92
99
 
93
- #license {
94
- padding-top: 1in;
95
100
  }