Sha256: a840c4246613cd46a894596ba80a9d7937a72eeebae8bd7fb8381eb0aa03fe03
Contents?: true
Size: 1.01 KB
Versions: 29
Compression:
Stored size: 1.01 KB
Contents
class BlogController < Eucalypt::Controller(route: '<%= config[:route] %>') helpers BlogHelper using Array::DateSort # Display all blog articles at this route get '/' do @articles = Blog.all.sort_by_date order: :descending erb :'blog/articles', layout: :'layouts/blog/articles' end # Display a single blog article at this route Blog.articles.each do |md| article = Blog::Article.new md get article.route do @front_matter = article.front_matter locals = {content: markdown(article.content), article: article} erb :'blog/article', locals: locals, layout: :'layouts/blog/article' end end # Search for blog articles by tag at this route get '/search/:tag' do @tag = params[:tag] redirect to '/' unless @tag.match /\A[a-zA-Z]*[a-zA-Z0-9\\-_.]*[a-zA-Z0-9]\Z/ @articles = Blog.search(@tag).sort_by_date order: :descending erb :'blog/search', layout: :'layouts/blog/articles' end # Redirect all other blog routes get %r{/.*} do redirect to '/' end end
Version data entries
29 entries across 29 versions & 1 rubygems