foalfetch/app/controllers/chapters_controller.rb

33 lines
798 B
Ruby
Raw Normal View History

2024-04-04 10:21:23 +02:00
# frozen_string_literal: true
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.
2024-04-04 10:21:23 +02:00
if body.length >= 2 && body[0] == @chapter.title && !body[1].empty? && body[1][0] == '='
2024-04-03 11:18:15 +02:00
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