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

Version Path
eucalypt-0.9.0 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.8.0 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.7.2 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.7.1 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.7.0 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.6.2 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.6.1 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.6.0 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.5.4 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.5.3 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.5.2 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.5.1 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.5.0 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.4.2 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.4.1 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.4.0 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.3.5 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.3.4 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.3.3 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt
eucalypt-0.3.2 lib/eucalypt/blog/namespaces/blog/templates/controller/controller.tt