aboutsummaryrefslogtreecommitdiffstats
path: root/railties/guides/rails_guides
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-02-24 12:29:25 +0000
committerPratik Naik <pratiknaik@gmail.com>2009-02-24 12:29:25 +0000
commit53cd102b39eb62567298430cbd94e40dd78d46a0 (patch)
tree3d8a087421f0d74da7a7c3878e3ad1dddbf23697 /railties/guides/rails_guides
parente56b3e4c0b60b2b86f5ca9c5e5a0b22fa34d37ab (diff)
downloadrails-53cd102b39eb62567298430cbd94e40dd78d46a0.tar.gz
rails-53cd102b39eb62567298430cbd94e40dd78d46a0.tar.bz2
rails-53cd102b39eb62567298430cbd94e40dd78d46a0.zip
Merge with docrails
Diffstat (limited to 'railties/guides/rails_guides')
-rw-r--r--railties/guides/rails_guides/generator.rb60
-rw-r--r--railties/guides/rails_guides/indexer.rb8
-rw-r--r--railties/guides/rails_guides/textile_extensions.rb3
3 files changed, 40 insertions, 31 deletions
diff --git a/railties/guides/rails_guides/generator.rb b/railties/guides/rails_guides/generator.rb
index 3cbc2eb1f4..41d22e37fd 100644
--- a/railties/guides/rails_guides/generator.rb
+++ b/railties/guides/rails_guides/generator.rb
@@ -25,29 +25,7 @@ module RailsGuides
end
guides.each do |guide|
- guide =~ /(.*?)(\.erb)?\.textile/
- name = $1
-
- puts "Generating #{name}"
-
- file = File.join(output, "#{name}.html")
- File.open(file, 'w') do |f|
- @view = ActionView::Base.new(view_path)
- @view.extend(Helpers)
-
- if guide =~ /\.erb\.textile/
- # Generate the erb pages with textile formatting - e.g. index/authors
- result = view.render(:layout => 'layout', :file => guide)
- f.write textile(result)
- else
- body = File.read(File.join(view_path, guide))
- body = set_header_section(body, @view)
- body = set_index(body, @view)
-
- result = view.render(:layout => 'layout', :text => textile(body))
- f.write result
- end
- end
+ generate_guide(guide)
end
# Copy images and css files to html directory
@@ -55,6 +33,32 @@ module RailsGuides
FileUtils.cp_r File.join(guides_dir, 'files'), File.join(output, 'files')
end
+ def generate_guide(guide)
+ guide =~ /(.*?)(\.erb)?\.textile/
+ name = $1
+
+ puts "Generating #{name}"
+
+ file = File.join(output, "#{name}.html")
+ File.open(file, 'w') do |f|
+ @view = ActionView::Base.new(view_path)
+ @view.extend(Helpers)
+
+ if guide =~ /\.erb\.textile/
+ # Generate the erb pages with textile formatting - e.g. index/authors
+ result = view.render(:layout => 'layout', :file => name)
+ f.write textile(result)
+ else
+ body = File.read(File.join(view_path, guide))
+ body = set_header_section(body, @view)
+ body = set_index(body, @view)
+
+ result = view.render(:layout => 'layout', :text => textile(body))
+ f.write result
+ end
+ end
+ end
+
def set_header_section(body, view)
new_body = body.gsub(/(.*?)endprologue\./m, '').strip
header = $1
@@ -72,21 +76,19 @@ module RailsGuides
def set_index(body, view)
index = <<-INDEX
<div id="subCol">
- <h3 class="chapter"><img src="images/chapters_icon.gif" alt="" /> Chapters</h3>
+ <h3 class="chapter"><img src="images/chapters_icon.gif" alt="" />Chapters</h3>
<ol class="chapters">
- INDEX
+ INDEX
i = Indexer.new(body)
i.index
# Set index for 2 levels
i.level_hash.each do |key, value|
- bookmark = '#' + key.gsub(/[^a-z0-9\-_\+]+/i, '').underscore.dasherize
- link = view.content_tag(:a, :href => bookmark) { key }
+ link = view.content_tag(:a, :href => key[:id]) { textile(key[:title]) }
children = value.keys.map do |k|
- bm = '#' + k.gsub(/[^a-z0-9\-_\+]+/i, '').underscore.dasherize
- l = view.content_tag(:a, :href => bm) { k }
+ l = view.content_tag(:a, :href => k[:id]) { textile(k[:title]) }
view.content_tag(:li, l)
end
diff --git a/railties/guides/rails_guides/indexer.rb b/railties/guides/rails_guides/indexer.rb
index 52809829e2..7cb254d0b0 100644
--- a/railties/guides/rails_guides/indexer.rb
+++ b/railties/guides/rails_guides/indexer.rb
@@ -29,13 +29,17 @@ module RailsGuides
return level_hash
elsif level == current_level
index = counters.join(".")
- bookmark = '#' + title.gsub(/[^a-z0-9\-_\+]+/i, '').underscore.dasherize
+ bookmark = '#' + title.gsub(/[^a-z0-9\-_]+/i, '').underscore.dasherize
raise "Parsing Fail" unless @result.sub!(matched, "h#{level}(#{bookmark}). #{index}#{title}")
+ key = {
+ :title => title,
+ :id => bookmark
+ }
# Recurse
counters << 1
- level_hash[title.strip] = process(s.post_match, current_level + 1, counters)
+ level_hash[key] = process(s.post_match, current_level + 1, counters)
counters.pop
# Increment the current level
diff --git a/railties/guides/rails_guides/textile_extensions.rb b/railties/guides/rails_guides/textile_extensions.rb
index a7fc5ba49c..7ebbf0090e 100644
--- a/railties/guides/rails_guides/textile_extensions.rb
+++ b/railties/guides/rails_guides/textile_extensions.rb
@@ -25,6 +25,9 @@ module RailsGuides
body.gsub!(/\+(.*?)\+/) do |m|
"<notextile><tt>#{$1}</tt></notextile>"
end
+
+ # The real plus sign
+ body.gsub!('<plus>', '+')
end
def code(body)