TwP-webby 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +13 -0
- data/Manifest.txt +44 -34
- data/Rakefile +2 -2
- data/bin/webby +33 -0
- data/bin/webby-gen +33 -0
- data/examples/presentation/content/presentation/s5/bodybg.gif +0 -0
- data/examples/presentation/content/presentation/s5/print.css +25 -1
- data/examples/webby/content/release-notes/rel-0-9-3/index.txt +47 -0
- data/lib/webby/apps/generator.rb +41 -48
- data/lib/webby/apps/main.rb +22 -0
- data/lib/webby/auto_builder.rb +78 -6
- data/lib/webby/builder.rb +9 -9
- data/lib/webby/core_ext/kernel.rb +5 -0
- data/lib/webby/filters/wiki_words.rb +14 -0
- data/lib/webby/helpers/url_helper.rb +6 -0
- data/lib/webby/journal.rb +126 -0
- data/lib/webby/renderer.rb +11 -6
- data/lib/webby/resources/meta_file.rb +8 -5
- data/lib/webby/stelan/paginator.rb +2 -2
- data/lib/webby/tasks/growl.rake +4 -3
- data/lib/webby.rb +3 -10
- data/spec/data/outline/basic.out +81 -0
- data/spec/data/outline/basic.txt +25 -0
- data/spec/data/outline/no_clobber.out +86 -0
- data/spec/data/outline/numbering.out +81 -0
- data/spec/data/outline/numbering_only.out +21 -0
- data/spec/data/outline/toc_range_1.out +66 -0
- data/spec/data/outline/toc_range_2.out +55 -0
- data/spec/data/outline/toc_style.out +81 -0
- data/spec/data/{Sitefile → site/Sitefile} +0 -0
- data/spec/data/{content → site/content}/_partial.txt +0 -0
- data/spec/data/{content → site/content}/css/coderay.css +0 -0
- data/spec/data/{content → site/content}/css/site.css +0 -0
- data/spec/data/{content → site/content}/css/tumblog.css +0 -0
- data/spec/data/{content → site/content}/images/tumblog/permalink.gif +0 -0
- data/spec/data/{content → site/content}/images/tumblog/rss.gif +0 -0
- data/spec/data/{content → site/content}/index.txt +0 -0
- data/spec/data/{content → site/content}/photos.txt +0 -0
- data/spec/data/{content → site/content}/tumblog/200806/the-noble-chicken/index.txt +0 -0
- data/spec/data/{content → site/content}/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/index.txt +0 -0
- data/spec/data/{content → site/content}/tumblog/200807/mad-city-chickens/index.txt +0 -0
- data/spec/data/{content → site/content}/tumblog/200807/the-wisdom-of-the-dutch/index.txt +0 -0
- data/spec/data/{content → site/content}/tumblog/200807/up-a-tree/index.txt +0 -0
- data/spec/data/{content → site/content}/tumblog/index.txt +0 -0
- data/spec/data/{content → site/content}/tumblog/rss.txt +0 -0
- data/spec/data/{layouts → site/layouts}/default.txt +0 -0
- data/spec/data/{layouts → site/layouts}/tumblog/default.txt +0 -0
- data/spec/data/{layouts → site/layouts}/tumblog/post.txt +0 -0
- data/spec/data/{lib → site/lib}/breadcrumbs.rb +0 -0
- data/spec/data/{lib → site/lib}/tumblog_helper.rb +0 -0
- data/spec/data/{tasks → site/tasks}/tumblog.rake +0 -0
- data/spec/data/{templates → site/templates}/_partial.erb +0 -0
- data/spec/data/{templates → site/templates}/atom_feed.erb +0 -0
- data/spec/data/{templates → site/templates}/page.erb +0 -0
- data/{examples/website → spec/data/site}/templates/presentation.erb +0 -0
- data/spec/data/{templates → site/templates}/tumblog/conversation.erb +0 -0
- data/spec/data/{templates → site/templates}/tumblog/link.erb +0 -0
- data/spec/data/{templates → site/templates}/tumblog/photo.erb +0 -0
- data/spec/data/{templates → site/templates}/tumblog/post.erb +0 -0
- data/spec/data/{templates → site/templates}/tumblog/quote.erb +0 -0
- data/spec/spec_helper.rb +4 -4
- data/spec/webby/apps/generator_spec.rb +3 -2
- data/spec/webby/filters/basepath_spec.rb +167 -0
- data/spec/webby/filters/outline_spec.rb +92 -0
- data/spec/webby/renderer_spec.rb +1 -1
- data/spec/webby/resources/db_spec.rb +1 -1
- data/spec/webby/resources/layout_spec.rb +1 -1
- data/spec/webby/resources/meta_file_spec.rb +27 -13
- data/spec/webby/resources/page_spec.rb +1 -1
- data/spec/webby/resources/resource_spec.rb +1 -1
- data/spec/webby/resources_spec.rb +1 -1
- data/tasks/gem.rake +93 -32
- data/tasks/manifest.rake +3 -4
- data/tasks/rubyforge.rake +2 -4
- metadata +67 -57
- data/lib/webby/stelan/spawner.rb +0 -339
- data/lib/webby/tasks/heel.rake +0 -28
- data/spec/data/templates/presentation.erb +0 -40
data/lib/webby/builder.rb
CHANGED
@@ -82,7 +82,6 @@ class Builder
|
|
82
82
|
[args.page, args.title, args.dir]
|
83
83
|
end
|
84
84
|
|
85
|
-
|
86
85
|
private
|
87
86
|
|
88
87
|
# Returns the binding in the scope of the Builder class object.
|
@@ -98,7 +97,7 @@ class Builder
|
|
98
97
|
# layout directories.
|
99
98
|
#
|
100
99
|
def initialize
|
101
|
-
@
|
100
|
+
@logger = Logging::Logger[self]
|
102
101
|
end
|
103
102
|
|
104
103
|
# call-seq:
|
@@ -125,24 +124,25 @@ class Builder
|
|
125
124
|
#
|
126
125
|
def run( opts = {} )
|
127
126
|
opts[:load_files] = true unless opts.has_key?(:load_files)
|
127
|
+
verbose = opts.getopt(:verbose, true)
|
128
128
|
|
129
129
|
unless test(?d, output_dir)
|
130
|
-
|
130
|
+
journal.create output_dir
|
131
131
|
FileUtils.mkdir output_dir
|
132
132
|
end
|
133
133
|
|
134
134
|
load_files if opts[:load_files]
|
135
135
|
|
136
136
|
Resources.pages.each do |page|
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
# make sure the directory exists
|
142
|
-
FileUtils.mkdir_p ::File.dirname(page.destination)
|
137
|
+
unless page.dirty? or opts[:rebuild]
|
138
|
+
journal.identical(page.destination) if verbose
|
139
|
+
next
|
140
|
+
end
|
143
141
|
|
144
142
|
# copy the resource to the output directory if it is static
|
145
143
|
if page.instance_of? Resources::Static
|
144
|
+
FileUtils.mkdir_p ::File.dirname(page.destination)
|
145
|
+
journal.create_or_update(page)
|
146
146
|
FileUtils.cp page.path, page.destination
|
147
147
|
FileUtils.chmod 0644, page.destination
|
148
148
|
|
@@ -159,6 +159,9 @@ module UrlHelper
|
|
159
159
|
#
|
160
160
|
def link_to_page( *args )
|
161
161
|
self.link_to(*_find_page(args))
|
162
|
+
rescue ::Webby::Error => err
|
163
|
+
return yield if block_given?
|
164
|
+
raise err
|
162
165
|
end
|
163
166
|
|
164
167
|
# call-seq:
|
@@ -184,6 +187,9 @@ module UrlHelper
|
|
184
187
|
return name if @page == page
|
185
188
|
|
186
189
|
self.link_to(name, page, link_opts)
|
190
|
+
rescue ::Webby::Error => err
|
191
|
+
return yield if block_given?
|
192
|
+
raise err
|
187
193
|
end
|
188
194
|
|
189
195
|
|
@@ -0,0 +1,126 @@
|
|
1
|
+
|
2
|
+
module Webby
|
3
|
+
|
4
|
+
# The Journal class is used to output simple messages regarding the creation
|
5
|
+
# and updating of files when webby applications are run. The output messages
|
6
|
+
# will be color coded if the terminal supports the ANSI codes.
|
7
|
+
#
|
8
|
+
class Journal
|
9
|
+
|
10
|
+
attr_accessor :colorize
|
11
|
+
attr_reader :logger
|
12
|
+
|
13
|
+
# Create a new journal
|
14
|
+
#
|
15
|
+
def initialize
|
16
|
+
@logger = ::Logging::Logger[self]
|
17
|
+
@colorize = ENV.has_key?('TERM')
|
18
|
+
end
|
19
|
+
|
20
|
+
# Output a message of the given _type_ using the option _color_ code. The
|
21
|
+
# available codes are as follows:
|
22
|
+
#
|
23
|
+
# * black
|
24
|
+
# * red
|
25
|
+
# * green
|
26
|
+
# * yellow
|
27
|
+
# * blue
|
28
|
+
# * magenta
|
29
|
+
# * cyan
|
30
|
+
# * white
|
31
|
+
#
|
32
|
+
# The color is specified as a string or a symbol.
|
33
|
+
#
|
34
|
+
def typed_message( type, msg, color = nil )
|
35
|
+
type = type.to_s.rjust(13)
|
36
|
+
type = self.send(color, type) unless color.nil?
|
37
|
+
logger.info "#{type} #{msg.to_s}"
|
38
|
+
end
|
39
|
+
|
40
|
+
# Output a "create" message or an "update" message depending on whether
|
41
|
+
# the given _page_ already has a generated output file or not.
|
42
|
+
#
|
43
|
+
def create_or_update( page )
|
44
|
+
if test(?e, page.destination)
|
45
|
+
update(page.destination)
|
46
|
+
else
|
47
|
+
create(page.destination)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Output a create message.
|
52
|
+
#
|
53
|
+
def create( msg )
|
54
|
+
typed_message('create', msg, (colorize ? :green : nil))
|
55
|
+
end
|
56
|
+
|
57
|
+
# Output an update message.
|
58
|
+
#
|
59
|
+
def update( msg )
|
60
|
+
typed_message('update', msg, (colorize ? :yellow : nil))
|
61
|
+
end
|
62
|
+
|
63
|
+
# Output a force message.
|
64
|
+
#
|
65
|
+
def force( msg )
|
66
|
+
typed_message('force', msg, (colorize ? :red : nil))
|
67
|
+
end
|
68
|
+
|
69
|
+
# Output a skip message.
|
70
|
+
#
|
71
|
+
def skip( msg )
|
72
|
+
typed_message('skip', msg, (colorize ? :yellow : nil))
|
73
|
+
end
|
74
|
+
|
75
|
+
# Output an exists message.
|
76
|
+
#
|
77
|
+
def exists( msg )
|
78
|
+
typed_message('exists', msg, (colorize ? :cyan : nil))
|
79
|
+
end
|
80
|
+
|
81
|
+
# Output an identical message.
|
82
|
+
#
|
83
|
+
def identical( msg )
|
84
|
+
typed_message('identical', msg, (colorize ? :cyan : nil))
|
85
|
+
end
|
86
|
+
|
87
|
+
[ [ :clear , 0 ],
|
88
|
+
[ :reset , 0 ], # synonym for :clear
|
89
|
+
[ :bold , 1 ],
|
90
|
+
[ :dark , 2 ],
|
91
|
+
[ :italic , 3 ], # not widely implemented
|
92
|
+
[ :underline , 4 ],
|
93
|
+
[ :underscore , 4 ], # synonym for :underline
|
94
|
+
[ :blink , 5 ],
|
95
|
+
[ :rapid_blink , 6 ], # not widely implemented
|
96
|
+
[ :negative , 7 ], # no reverse because of String#reverse
|
97
|
+
[ :concealed , 8 ],
|
98
|
+
[ :strikethrough, 9 ], # not widely implemented
|
99
|
+
[ :black , 30 ],
|
100
|
+
[ :red , 31 ],
|
101
|
+
[ :green , 32 ],
|
102
|
+
[ :yellow , 33 ],
|
103
|
+
[ :blue , 34 ],
|
104
|
+
[ :magenta , 35 ],
|
105
|
+
[ :cyan , 36 ],
|
106
|
+
[ :white , 37 ],
|
107
|
+
[ :on_black , 40 ],
|
108
|
+
[ :on_red , 41 ],
|
109
|
+
[ :on_green , 42 ],
|
110
|
+
[ :on_yellow , 43 ],
|
111
|
+
[ :on_blue , 44 ],
|
112
|
+
[ :on_magenta , 45 ],
|
113
|
+
[ :on_cyan , 46 ],
|
114
|
+
[ :on_white , 47 ] ].each do |name,code|
|
115
|
+
|
116
|
+
class_eval <<-CODE
|
117
|
+
def #{name.to_s}( str )
|
118
|
+
"\e[#{code}m\#{str}\e[0m"
|
119
|
+
end
|
120
|
+
CODE
|
121
|
+
end
|
122
|
+
|
123
|
+
end # class Journal
|
124
|
+
end # module Webby
|
125
|
+
|
126
|
+
# EOF
|
data/lib/webby/renderer.rb
CHANGED
@@ -36,6 +36,9 @@ class Renderer
|
|
36
36
|
renderer = self.new(page)
|
37
37
|
|
38
38
|
loop {
|
39
|
+
FileUtils.mkdir_p ::File.dirname(page.destination)
|
40
|
+
journal.create_or_update(page)
|
41
|
+
|
39
42
|
::File.open(page.destination, 'w') do |fd|
|
40
43
|
fd.write(renderer._layout_page)
|
41
44
|
end
|
@@ -43,6 +46,8 @@ class Renderer
|
|
43
46
|
}
|
44
47
|
end
|
45
48
|
|
49
|
+
attr_reader :logger
|
50
|
+
|
46
51
|
# call-seq:
|
47
52
|
# Renderer.new( page )
|
48
53
|
#
|
@@ -64,7 +69,7 @@ class Renderer
|
|
64
69
|
|
65
70
|
@_bindings = []
|
66
71
|
@_content_for = {}
|
67
|
-
@
|
72
|
+
@logger = Logging::Logger[self]
|
68
73
|
end
|
69
74
|
|
70
75
|
# call-seq:
|
@@ -227,11 +232,11 @@ class Renderer
|
|
227
232
|
|
228
233
|
@content
|
229
234
|
rescue ::Webby::Error => err
|
230
|
-
|
231
|
-
|
235
|
+
logger.error "while rendering page '#{@page.path}'"
|
236
|
+
logger.error err.message
|
232
237
|
rescue => err
|
233
|
-
|
234
|
-
|
238
|
+
logger.error "while rendering page '#{@page.path}'"
|
239
|
+
logger.fatal err
|
235
240
|
exit 1
|
236
241
|
ensure
|
237
242
|
@content = nil
|
@@ -271,7 +276,7 @@ class Renderer
|
|
271
276
|
@_content_for.clear
|
272
277
|
@_bindings.clear
|
273
278
|
else
|
274
|
-
@pager.pager.
|
279
|
+
@pager.pager.reset
|
275
280
|
@pager = nil
|
276
281
|
return false
|
277
282
|
end
|
@@ -74,7 +74,9 @@ class MetaFile
|
|
74
74
|
# found at the beginning of the stream.
|
75
75
|
#
|
76
76
|
def read
|
77
|
-
|
77
|
+
count = meta_end
|
78
|
+
@io.seek 0
|
79
|
+
count.times {@io.gets} unless count.nil?
|
78
80
|
@io.read
|
79
81
|
end
|
80
82
|
|
@@ -188,12 +190,13 @@ class MetaFile
|
|
188
190
|
return unless META_SEP =~ line
|
189
191
|
|
190
192
|
@io.seek 0
|
191
|
-
|
192
|
-
|
193
|
+
@io.gets
|
194
|
+
pos, count = nil, 1
|
195
|
+
|
193
196
|
while line = @io.gets
|
194
|
-
|
197
|
+
count += 1
|
195
198
|
if META_SEP =~ line
|
196
|
-
pos =
|
199
|
+
pos = count
|
197
200
|
@meta_count += 1
|
198
201
|
end
|
199
202
|
end
|
@@ -73,7 +73,7 @@ class Paginator
|
|
73
73
|
end
|
74
74
|
|
75
75
|
# Finalizer method that should be called when the paginator is finished
|
76
|
-
def
|
76
|
+
def reset
|
77
77
|
resource._reset(@meta_data)
|
78
78
|
end
|
79
79
|
|
@@ -92,7 +92,7 @@ class Paginator
|
|
92
92
|
@offset = (number - 1) * pager.per_page
|
93
93
|
@select = select
|
94
94
|
|
95
|
-
@pager.
|
95
|
+
@pager.reset
|
96
96
|
if number > 1
|
97
97
|
if ::Webby.site.create_mode == 'directory'
|
98
98
|
@pager.resource['directory'] = File.join(@pager.directory, number.to_s)
|
data/lib/webby/tasks/growl.rake
CHANGED
@@ -2,12 +2,13 @@
|
|
2
2
|
unless WINDOWS
|
3
3
|
|
4
4
|
task :growl do
|
5
|
-
Logging::
|
6
|
-
"Webby",
|
5
|
+
growl = Logging::Appenders::Growl.new('growl',
|
7
6
|
:layout => Logging::Layouts::Pattern.new(:pattern => "%5l - Webby\000%m"),
|
8
7
|
:coalesce => true,
|
9
8
|
:separator => "\000"
|
10
|
-
)
|
9
|
+
)
|
10
|
+
Logging::Logger['Webby'].add_appenders(growl)
|
11
|
+
Logging::Logger['Webby::Journal'].add_appenders(growl)
|
11
12
|
end
|
12
13
|
|
13
14
|
end # unless WINDOWS
|
data/lib/webby.rb
CHANGED
@@ -7,18 +7,10 @@ require 'logging'
|
|
7
7
|
require 'ostruct'
|
8
8
|
require 'date'
|
9
9
|
|
10
|
-
# Configure Webby to log to STDOUT at the 'info' level
|
11
|
-
Logging::Logger['Webby'].level = :info
|
12
|
-
Logging::Logger['Webby'].add_appenders(Logging::Appender.stdout)
|
13
|
-
Logging::Appender.stdout.layout = Logging::Layouts::Pattern.new(
|
14
|
-
:pattern => "[%d] %5l: %m\n", # [date] LEVEL: message
|
15
|
-
:date_pattern => "%H:%M:%S" # date == HH:MM:SS
|
16
|
-
)
|
17
|
-
|
18
10
|
module Webby
|
19
11
|
|
20
12
|
# :stopdoc:
|
21
|
-
VERSION = '0.9.
|
13
|
+
VERSION = '0.9.3' # :nodoc:
|
22
14
|
LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
|
23
15
|
PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
|
24
16
|
YAML_SEP = '---'
|
@@ -51,7 +43,8 @@ module Webby
|
|
51
43
|
:tumblog_dir => 'tumblog',
|
52
44
|
|
53
45
|
# Items for running the heel webserver
|
54
|
-
:
|
46
|
+
:use_web_server => true,
|
47
|
+
:heel_port => 4331,
|
55
48
|
|
56
49
|
# Items used to deploy the website
|
57
50
|
:user => ENV['USER'] || ENV['USERNAME'],
|
@@ -0,0 +1,81 @@
|
|
1
|
+
<ol>
|
2
|
+
<li>
|
3
|
+
<a href="#h1">First Header</a>
|
4
|
+
<ol>
|
5
|
+
<li>
|
6
|
+
<a href="#h1_1">Second Header</a>
|
7
|
+
</li>
|
8
|
+
<li>
|
9
|
+
<a href="#h1_2">Third Header</a>
|
10
|
+
</li>
|
11
|
+
</ol>
|
12
|
+
</li>
|
13
|
+
<li>
|
14
|
+
<a href="#h2">Fourth Header</a>
|
15
|
+
</li>
|
16
|
+
<li>
|
17
|
+
<a href="#h3">Fifth Header</a>
|
18
|
+
<ol>
|
19
|
+
<li>
|
20
|
+
<a href="#h3_1">Sixth Header</a>
|
21
|
+
<ol>
|
22
|
+
<li>
|
23
|
+
<a href="#h3_1_1">Seventh Header</a>
|
24
|
+
<ol>
|
25
|
+
<li>
|
26
|
+
<a href="#h3_1_1_1">Eighth Header</a>
|
27
|
+
<ol>
|
28
|
+
<li>
|
29
|
+
<a href="#h3_1_1_1_1">Ninth Header</a>
|
30
|
+
<ol>
|
31
|
+
<li>
|
32
|
+
<a href="#h3_1_1_1_1_1">Tenth Header</a>
|
33
|
+
</li>
|
34
|
+
</ol>
|
35
|
+
</li>
|
36
|
+
</ol>
|
37
|
+
</li>
|
38
|
+
</ol>
|
39
|
+
</li>
|
40
|
+
</ol>
|
41
|
+
</li>
|
42
|
+
<li>
|
43
|
+
<a href="#h3_2">Eleventh Header</a>
|
44
|
+
<ol>
|
45
|
+
<li>
|
46
|
+
<a href="#h3_2_1">Twelfth Header</a>
|
47
|
+
</li>
|
48
|
+
<li>
|
49
|
+
<a href="#h3_2_2">Thirteenth Header</a>
|
50
|
+
</li>
|
51
|
+
</ol>
|
52
|
+
</li>
|
53
|
+
</ol>
|
54
|
+
</li>
|
55
|
+
<li>
|
56
|
+
<a href="#h4">Fourteenth Header</a>
|
57
|
+
<ol>
|
58
|
+
<li>
|
59
|
+
<a href="#h4_1">Fifteenth Header</a>
|
60
|
+
</li>
|
61
|
+
</ol></li></ol>
|
62
|
+
|
63
|
+
<h1 id="h1"><span class="heading-num">1</span>First Header</h1>
|
64
|
+
<h2 id="h1_1"><span class="heading-num">1.1</span>Second Header</h2>
|
65
|
+
<h2 id="h1_2"><span class="heading-num">1.2</span>Third Header</h2>
|
66
|
+
|
67
|
+
<h1 id="h2"><span class="heading-num">2</span>Fourth Header</h1>
|
68
|
+
|
69
|
+
<h1 id="h3"><span class="heading-num">3</span>Fifth Header</h1>
|
70
|
+
<h2 id="h3_1"><span class="heading-num">3.1</span>Sixth Header</h2>
|
71
|
+
<h3 id="h3_1_1"><span class="heading-num">3.1.1</span>Seventh Header</h3>
|
72
|
+
<h4 id="h3_1_1_1"><span class="heading-num">3.1.1.1</span>Eighth Header</h4>
|
73
|
+
<h5 id="h3_1_1_1_1"><span class="heading-num">3.1.1.1.1</span>Ninth Header</h5>
|
74
|
+
<h6 id="h3_1_1_1_1_1"><span class="heading-num">3.1.1.1.1.1</span>Tenth Header</h6>
|
75
|
+
|
76
|
+
<h2 id="h3_2"><span class="heading-num">3.2</span>Eleventh Header</h2>
|
77
|
+
<h3 id="h3_2_1"><span class="heading-num">3.2.1</span>Twelfth Header</h3>
|
78
|
+
<h3 id="h3_2_2"><span class="heading-num">3.2.2</span>Thirteenth Header</h3>
|
79
|
+
|
80
|
+
<h1 id="h4"><span class="heading-num">4</span>Fourteenth Header</h1>
|
81
|
+
<h2 id="h4_1"><span class="heading-num">4.1</span>Fifteenth Header</h2>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
title: Outline Test
|
3
|
+
filter: outline
|
4
|
+
---
|
5
|
+
<toc />
|
6
|
+
|
7
|
+
<h1>First Header</h1>
|
8
|
+
<h2>Second Header</h2>
|
9
|
+
<h2>Third Header</h2>
|
10
|
+
|
11
|
+
<h1>Fourth Header</h1>
|
12
|
+
|
13
|
+
<h1>Fifth Header</h1>
|
14
|
+
<h2>Sixth Header</h2>
|
15
|
+
<h3>Seventh Header</h3>
|
16
|
+
<h4>Eighth Header</h4>
|
17
|
+
<h5>Ninth Header</h5>
|
18
|
+
<h6>Tenth Header</h6>
|
19
|
+
|
20
|
+
<h2>Eleventh Header</h2>
|
21
|
+
<h3>Twelfth Header</h3>
|
22
|
+
<h3>Thirteenth Header</h3>
|
23
|
+
|
24
|
+
<h1>Fourteenth Header</h1>
|
25
|
+
<h2>Fifteenth Header</h2>
|
@@ -0,0 +1,86 @@
|
|
1
|
+
<div>
|
2
|
+
<p>This is the title</p>
|
3
|
+
<ol>
|
4
|
+
<li>
|
5
|
+
<a href="#h1">First Header</a>
|
6
|
+
<ol>
|
7
|
+
<li>
|
8
|
+
<a href="#h1_1">Second Header</a>
|
9
|
+
</li>
|
10
|
+
<li>
|
11
|
+
<a href="#h1_2">Third Header</a>
|
12
|
+
</li>
|
13
|
+
</ol>
|
14
|
+
</li>
|
15
|
+
<li>
|
16
|
+
<a href="#h2">Fourth Header</a>
|
17
|
+
</li>
|
18
|
+
<li>
|
19
|
+
<a href="#h3">Fifth Header</a>
|
20
|
+
<ol>
|
21
|
+
<li>
|
22
|
+
<a href="#h3_1">Sixth Header</a>
|
23
|
+
<ol>
|
24
|
+
<li>
|
25
|
+
<a href="#h3_1_1">Seventh Header</a>
|
26
|
+
<ol>
|
27
|
+
<li>
|
28
|
+
<a href="#h3_1_1_1">Eighth Header</a>
|
29
|
+
<ol>
|
30
|
+
<li>
|
31
|
+
<a href="#h3_1_1_1_1">Ninth Header</a>
|
32
|
+
<ol>
|
33
|
+
<li>
|
34
|
+
<a href="#h3_1_1_1_1_1">Tenth Header</a>
|
35
|
+
</li>
|
36
|
+
</ol>
|
37
|
+
</li>
|
38
|
+
</ol>
|
39
|
+
</li>
|
40
|
+
</ol>
|
41
|
+
</li>
|
42
|
+
</ol>
|
43
|
+
</li>
|
44
|
+
<li>
|
45
|
+
<a href="#h3_2">Eleventh Header</a>
|
46
|
+
<ol>
|
47
|
+
<li>
|
48
|
+
<a href="#h3_2_1">Twelfth Header</a>
|
49
|
+
</li>
|
50
|
+
<li>
|
51
|
+
<a href="#h3_2_2">Thirteenth Header</a>
|
52
|
+
</li>
|
53
|
+
</ol>
|
54
|
+
</li>
|
55
|
+
</ol>
|
56
|
+
</li>
|
57
|
+
<li>
|
58
|
+
<a href="#h4">Fourteenth Header</a>
|
59
|
+
<ol>
|
60
|
+
<li>
|
61
|
+
<a href="#h4_1">Fifteenth Header</a>
|
62
|
+
</li>
|
63
|
+
</ol></li></ol>
|
64
|
+
<p>And some sampler text</p>
|
65
|
+
</div>
|
66
|
+
|
67
|
+
|
68
|
+
<h1 id="h1"><span class="heading-num">1</span>First Header</h1>
|
69
|
+
<h2 id="h1_1"><span class="heading-num">1.1</span>Second Header</h2>
|
70
|
+
<h2 id="h1_2"><span class="heading-num">1.2</span>Third Header</h2>
|
71
|
+
|
72
|
+
<h1 id="h2"><span class="heading-num">2</span>Fourth Header</h1>
|
73
|
+
|
74
|
+
<h1 id="h3"><span class="heading-num">3</span>Fifth Header</h1>
|
75
|
+
<h2 id="h3_1"><span class="heading-num">3.1</span>Sixth Header</h2>
|
76
|
+
<h3 id="h3_1_1"><span class="heading-num">3.1.1</span>Seventh Header</h3>
|
77
|
+
<h4 id="h3_1_1_1"><span class="heading-num">3.1.1.1</span>Eighth Header</h4>
|
78
|
+
<h5 id="h3_1_1_1_1"><span class="heading-num">3.1.1.1.1</span>Ninth Header</h5>
|
79
|
+
<h6 id="h3_1_1_1_1_1"><span class="heading-num">3.1.1.1.1.1</span>Tenth Header</h6>
|
80
|
+
|
81
|
+
<h2 id="h3_2"><span class="heading-num">3.2</span>Eleventh Header</h2>
|
82
|
+
<h3 id="h3_2_1"><span class="heading-num">3.2.1</span>Twelfth Header</h3>
|
83
|
+
<h3 id="h3_2_2"><span class="heading-num">3.2.2</span>Thirteenth Header</h3>
|
84
|
+
|
85
|
+
<h1 id="h4"><span class="heading-num">4</span>Fourteenth Header</h1>
|
86
|
+
<h2 id="h4_1"><span class="heading-num">4.1</span>Fifteenth Header</h2>
|
@@ -0,0 +1,81 @@
|
|
1
|
+
<ol start="3">
|
2
|
+
<li>
|
3
|
+
<a href="#h3">First Header</a>
|
4
|
+
<ol>
|
5
|
+
<li>
|
6
|
+
<a href="#h3_1">Second Header</a>
|
7
|
+
</li>
|
8
|
+
<li>
|
9
|
+
<a href="#h3_2">Third Header</a>
|
10
|
+
</li>
|
11
|
+
</ol>
|
12
|
+
</li>
|
13
|
+
<li>
|
14
|
+
<a href="#h4">Fourth Header</a>
|
15
|
+
</li>
|
16
|
+
<li>
|
17
|
+
<a href="#h5">Fifth Header</a>
|
18
|
+
<ol>
|
19
|
+
<li>
|
20
|
+
<a href="#h5_1">Sixth Header</a>
|
21
|
+
<ol>
|
22
|
+
<li>
|
23
|
+
<a href="#h5_1_1">Seventh Header</a>
|
24
|
+
<ol>
|
25
|
+
<li>
|
26
|
+
<a href="#h5_1_1_1">Eighth Header</a>
|
27
|
+
<ol>
|
28
|
+
<li>
|
29
|
+
<a href="#h5_1_1_1_1">Ninth Header</a>
|
30
|
+
<ol>
|
31
|
+
<li>
|
32
|
+
<a href="#h5_1_1_1_1_1">Tenth Header</a>
|
33
|
+
</li>
|
34
|
+
</ol>
|
35
|
+
</li>
|
36
|
+
</ol>
|
37
|
+
</li>
|
38
|
+
</ol>
|
39
|
+
</li>
|
40
|
+
</ol>
|
41
|
+
</li>
|
42
|
+
<li>
|
43
|
+
<a href="#h5_2">Eleventh Header</a>
|
44
|
+
<ol>
|
45
|
+
<li>
|
46
|
+
<a href="#h5_2_1">Twelfth Header</a>
|
47
|
+
</li>
|
48
|
+
<li>
|
49
|
+
<a href="#h5_2_2">Thirteenth Header</a>
|
50
|
+
</li>
|
51
|
+
</ol>
|
52
|
+
</li>
|
53
|
+
</ol>
|
54
|
+
</li>
|
55
|
+
<li>
|
56
|
+
<a href="#h6">Fourteenth Header</a>
|
57
|
+
<ol>
|
58
|
+
<li>
|
59
|
+
<a href="#h6_1">Fifteenth Header</a>
|
60
|
+
</li>
|
61
|
+
</ol></li></ol>
|
62
|
+
|
63
|
+
<h1 id="h3"><span class="heading-num">3</span>First Header</h1>
|
64
|
+
<h2 id="h3_1"><span class="heading-num">3.1</span>Second Header</h2>
|
65
|
+
<h2 id="h3_2"><span class="heading-num">3.2</span>Third Header</h2>
|
66
|
+
|
67
|
+
<h1 id="h4"><span class="heading-num">4</span>Fourth Header</h1>
|
68
|
+
|
69
|
+
<h1 id="h5"><span class="heading-num">5</span>Fifth Header</h1>
|
70
|
+
<h2 id="h5_1"><span class="heading-num">5.1</span>Sixth Header</h2>
|
71
|
+
<h3 id="h5_1_1"><span class="heading-num">5.1.1</span>Seventh Header</h3>
|
72
|
+
<h4 id="h5_1_1_1"><span class="heading-num">5.1.1.1</span>Eighth Header</h4>
|
73
|
+
<h5 id="h5_1_1_1_1"><span class="heading-num">5.1.1.1.1</span>Ninth Header</h5>
|
74
|
+
<h6 id="h5_1_1_1_1_1"><span class="heading-num">5.1.1.1.1.1</span>Tenth Header</h6>
|
75
|
+
|
76
|
+
<h2 id="h5_2"><span class="heading-num">5.2</span>Eleventh Header</h2>
|
77
|
+
<h3 id="h5_2_1"><span class="heading-num">5.2.1</span>Twelfth Header</h3>
|
78
|
+
<h3 id="h5_2_2"><span class="heading-num">5.2.2</span>Thirteenth Header</h3>
|
79
|
+
|
80
|
+
<h1 id="h6"><span class="heading-num">6</span>Fourteenth Header</h1>
|
81
|
+
<h2 id="h6_1"><span class="heading-num">6.1</span>Fifteenth Header</h2>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
<h1 id="h1"><span class="heading-num">1</span>First Header</h1>
|
4
|
+
<h2 id="h1_1"><span class="heading-num">1.1</span>Second Header</h2>
|
5
|
+
<h2 id="h1_2"><span class="heading-num">1.2</span>Third Header</h2>
|
6
|
+
|
7
|
+
<h1 id="h2"><span class="heading-num">2</span>Fourth Header</h1>
|
8
|
+
|
9
|
+
<h1 id="h3"><span class="heading-num">3</span>Fifth Header</h1>
|
10
|
+
<h2 id="h3_1"><span class="heading-num">3.1</span>Sixth Header</h2>
|
11
|
+
<h3 id="h3_1_1"><span class="heading-num">3.1.1</span>Seventh Header</h3>
|
12
|
+
<h4 id="h3_1_1_1"><span class="heading-num">3.1.1.1</span>Eighth Header</h4>
|
13
|
+
<h5 id="h3_1_1_1_1"><span class="heading-num">3.1.1.1.1</span>Ninth Header</h5>
|
14
|
+
<h6 id="h3_1_1_1_1_1"><span class="heading-num">3.1.1.1.1.1</span>Tenth Header</h6>
|
15
|
+
|
16
|
+
<h2 id="h3_2"><span class="heading-num">3.2</span>Eleventh Header</h2>
|
17
|
+
<h3 id="h3_2_1"><span class="heading-num">3.2.1</span>Twelfth Header</h3>
|
18
|
+
<h3 id="h3_2_2"><span class="heading-num">3.2.2</span>Thirteenth Header</h3>
|
19
|
+
|
20
|
+
<h1 id="h4"><span class="heading-num">4</span>Fourteenth Header</h1>
|
21
|
+
<h2 id="h4_1"><span class="heading-num">4.1</span>Fifteenth Header</h2>
|