foalfetch/app/controllers/chapters_controller.rb

32 lines
771 B
Ruby
Raw Normal View History

require 'redcarpet'
class ChaptersController < ApplicationController
def show
@story = Story.find(params[:story_id])
@chapter = @story.chapters.find_by(number: params[:id])
2024-04-03 11:18:15 +02:00
@rendered_html = render_story
end
private
2024-04-03 11:18:15 +02:00
def render_story
body = @chapter.body
body.lstrip!
body = body.split "\n"
# This is fucking bad, this gets rid of the redundant title - this should be fixed upstairs,
# in the actual generation of the Markdown.
if body.length >= 2 && body[0] == @chapter.title && body[1].length > 0 && body[1][0] == '='
body = body[2..]
end
markdown.render body.join("\n")
end
def markdown
@@markdown ||=
Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)
end
end