enhance the nav tag (allow custom css classes for the list and the selected menu item) + clean the locomotive.rb template file
This commit is contained in:
parent
3b5d04238f
commit
87c8f3bfd7
@ -1,6 +1,6 @@
|
||||
Locomotive.configure do |config|
|
||||
|
||||
# A single locomotive instance can serve one single site or many.
|
||||
# A single locomotiveCMS instance can serve one single site or many.
|
||||
# If you want to run many different websites, you will have to specify
|
||||
# your own domain name (ex: locomotivehosting.com).
|
||||
#
|
||||
@ -16,24 +16,20 @@ Locomotive.configure do |config|
|
||||
# end
|
||||
config.multi_sites = false
|
||||
|
||||
# configure the hosting target for the production environment. Locomotive can be installed in:
|
||||
# configure the hosting target for the production environment. LocomotiveCMS can be installed in:
|
||||
# - your own server
|
||||
# - Heroku (you need to create an account in this case)
|
||||
# - Bushi.do (see the bushi.do website for more explanations)
|
||||
#
|
||||
# the possible options are: server, heroku, bushido or auto (default)
|
||||
# if you select 'auto', Locomotive will look after specific ENV variables to check
|
||||
# if you select 'auto', LocomotiveCMS will look after specific ENV variables to check
|
||||
# the matching platform (Heroku and Bushido set their own ENV variables).
|
||||
#
|
||||
config.hosting = :auto
|
||||
|
||||
# In case you host Locomotive in Heroku, the engine uses the heroku api to add / remove domains.
|
||||
# there are 2 ways of passing heroku credentials to Locomotive
|
||||
# - from ENV variables: HEROKU_LOGIN & HEROKU_PASSWORD
|
||||
# - from this file, see the example below and uncomment it if needed
|
||||
# In case you host LocomotiveCMS in Heroku, the engine uses the heroku api to add / remove domains.
|
||||
# config.heroku = {
|
||||
# :login => '<your_heroku_login>',
|
||||
# :password => '<your_heroku_password>'
|
||||
# :api_key => '<your_heroku_api_key>
|
||||
# }
|
||||
|
||||
# configure how many items we display in sub menu in the "Contents" section.
|
||||
@ -52,7 +48,7 @@ Locomotive.configure do |config|
|
||||
config.enable_logs = true
|
||||
|
||||
# configure the e-mail address which will be shown in the DeviseMailer, NotificationMailer, ...etc
|
||||
# if you do not put the domain name in the email, Locomotive will take the default domain name depending
|
||||
# if you do not put the domain name in the email, LocomotiveCMS will take the default domain name depending
|
||||
# on your deployment target (server, Heroku, Bushido, ...etc)
|
||||
#
|
||||
# Ex:
|
||||
|
@ -10,7 +10,7 @@ module Locomotive
|
||||
#
|
||||
# {% nav site %} => <ul class="nav"><li class="on"><a href="/features">Features</a></li></ul>
|
||||
#
|
||||
# {% nav site, no_wrapper: true, depth: 1, exclude: 'contact|about', id: 'main-nav' }
|
||||
# {% nav site, no_wrapper: true, exclude: 'contact|about', id: 'main-nav', class: 'nav', active_class: 'on' }
|
||||
#
|
||||
class Nav < ::Liquid::Tag
|
||||
|
||||
@ -19,7 +19,7 @@ module Locomotive
|
||||
def initialize(tag_name, markup, tokens, context)
|
||||
if markup =~ Syntax
|
||||
@source = ($1 || 'page').gsub(/"|'/, '')
|
||||
@options = { :id => 'nav', :depth => 1 }
|
||||
@options = { :id => 'nav', :depth => 1, :class => '', :active_class => 'on' }
|
||||
markup.scan(::Liquid::TagAttributes) { |key, value| @options[key.to_sym] = value.gsub(/"|'/, '') }
|
||||
|
||||
@options[:exclude] = Regexp.new(@options[:exclude]) if @options[:exclude]
|
||||
@ -46,7 +46,7 @@ module Locomotive
|
||||
output = children_output.join("\n")
|
||||
|
||||
if @options[:no_wrapper] != 'true'
|
||||
output = %{<ul id="#{@options[:id]}">\n#{output}</ul>}
|
||||
output = %{<ul id="#{@options[:id]}" class="#{@options[:class]}">\n#{output}</ul>}
|
||||
end
|
||||
|
||||
output
|
||||
@ -71,7 +71,7 @@ module Locomotive
|
||||
|
||||
# Returns a list element, a link to the page and its children
|
||||
def render_entry_link(page, css, depth)
|
||||
selected = @page.fullpath =~ /^#{page.fullpath}/ ? ' on' : ''
|
||||
selected = @page.fullpath =~ /^#{page.fullpath}/ ? " #{@options[:active_class]}" : ''
|
||||
|
||||
icon = @options[:icon] ? '<span></span>' : ''
|
||||
label = %{#{icon if @options[:icon] != 'after' }#{page.title}#{icon if @options[:icon] == 'after' }}
|
||||
|
Loading…
Reference in New Issue
Block a user