Add header.
This commit is contained in:
@@ -106,6 +106,13 @@ are named `_Sidebar.ext` where the extension is one of the supported formats.
|
||||
Sidebars affect all pages in their directory and any subdirectories that do not
|
||||
have a sidebar file of their own.
|
||||
|
||||
## HEADER FILES
|
||||
|
||||
Header files allow you to add a simple header to your wiki. Header files must
|
||||
be named `_Header.ext` where the extension is one of the supported formats.
|
||||
Like sidebars, headers affect all pages in their directory and any
|
||||
subdirectories that do not have a header file of their own.
|
||||
|
||||
## FOOTER FILES
|
||||
|
||||
Footer files allow you to add a simple footer to your wiki. Footer files must
|
||||
@@ -113,7 +120,6 @@ be named `_Footer.ext` where the extension is one of the supported formats.
|
||||
Like sidebars, footers affect all pages in their directory and any
|
||||
subdirectories that do not have a footer file of their own.
|
||||
|
||||
|
||||
## HTML SANITIZATION
|
||||
|
||||
For security and compatibility reasons Gollum wikis may not contain custom CSS
|
||||
|
||||
@@ -63,6 +63,7 @@ module Precious
|
||||
|
||||
update_wiki_page(wiki, page, params[:content], commit, name,
|
||||
params[:format])
|
||||
update_wiki_page(wiki, page.header, params[:header], commit) if params[:header]
|
||||
update_wiki_page(wiki, page.footer, params[:footer], commit) if params[:footer]
|
||||
update_wiki_page(wiki, page.sidebar, params[:sidebar], commit) if params[:sidebar]
|
||||
committer.commit
|
||||
|
||||
@@ -20,6 +20,13 @@
|
||||
<div id="wiki-content">
|
||||
<div class="wrap {{#has_footer}} has-footer {{/has_footer}} {{#has_sidebar}} has-rightbar{{/has_sidebar}}">
|
||||
<div id="wiki-body" class="gollum-{{format}}-content">
|
||||
{{#has_header}}
|
||||
<div id="wiki-header" class="gollum-{{header_format}}-content">
|
||||
<div id="header-content">
|
||||
{{{header_content}}}
|
||||
</div>
|
||||
</div>
|
||||
{{/has_header}}
|
||||
<div id="template">
|
||||
{{{content}}}
|
||||
</div>
|
||||
|
||||
@@ -27,6 +27,11 @@ module Precious
|
||||
!!@footer
|
||||
end
|
||||
|
||||
def has_header
|
||||
@header = (@page.header || false) if @header.nil? && @page
|
||||
!!@header
|
||||
end
|
||||
|
||||
def has_sidebar
|
||||
@sidebar = (@page.sidebar || false) if @sidebar.nil? && @page
|
||||
!!@sidebar
|
||||
|
||||
@@ -13,6 +13,17 @@ module Precious
|
||||
@name.gsub('-', ' ')
|
||||
end
|
||||
|
||||
def header
|
||||
if @header.nil?
|
||||
if page = @page.header
|
||||
@header = page.raw_data
|
||||
else
|
||||
@header = false
|
||||
end
|
||||
end
|
||||
@header
|
||||
end
|
||||
|
||||
def footer
|
||||
if @footer.nil?
|
||||
if page = @page.footer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
module Precious
|
||||
module Views
|
||||
class Page < Layout
|
||||
attr_reader :content, :page, :footer
|
||||
attr_reader :content, :page, :header, :footer
|
||||
DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
|
||||
DEFAULT_AUTHOR = 'you'
|
||||
|
||||
@@ -27,6 +27,19 @@ module Precious
|
||||
@editable
|
||||
end
|
||||
|
||||
def has_header
|
||||
@header = (@page.header || false) if @header.nil?
|
||||
!!@header
|
||||
end
|
||||
|
||||
def header_content
|
||||
has_header && @header.formatted_data
|
||||
end
|
||||
|
||||
def header_format
|
||||
has_header && @header.format.to_s
|
||||
end
|
||||
|
||||
def has_footer
|
||||
@footer = (@page.footer || false) if @footer.nil?
|
||||
!!@footer
|
||||
|
||||
+8
-1
@@ -99,7 +99,7 @@ module Gollum
|
||||
# Returns a newly initialized Gollum::Page.
|
||||
def initialize(wiki)
|
||||
@wiki = wiki
|
||||
@blob = @footer = @sidebar = nil
|
||||
@blob = @header = @footer = @sidebar = nil
|
||||
end
|
||||
|
||||
# Public: The on-disk filename of the page including extension.
|
||||
@@ -209,6 +209,13 @@ module Gollum
|
||||
end
|
||||
end
|
||||
|
||||
# Public: The header Page.
|
||||
#
|
||||
# Returns the header Page or nil if none exists.
|
||||
def header
|
||||
@header ||= find_sub_page(:header)
|
||||
end
|
||||
|
||||
# Public: The footer Page.
|
||||
#
|
||||
# Returns the footer Page or nil if none exists.
|
||||
|
||||
+4
-2
@@ -29,13 +29,13 @@ context "Frontend" do
|
||||
assert_not_equal page_1.version.sha, page_2.version.sha
|
||||
end
|
||||
|
||||
test "edits page footer and sidebar" do
|
||||
test "edits page header footer and sidebar" do
|
||||
commits = @wiki.repo.commits('master').size
|
||||
page_1 = @wiki.page('A')
|
||||
foot_1 = page_1.footer
|
||||
side_1 = page_1.sidebar
|
||||
|
||||
post "/edit/A",
|
||||
post "/edit/A", :header => 'header',
|
||||
:footer => 'footer', :page => "A", :sidebar => 'sidebar', :message => 'def'
|
||||
follow_redirect!
|
||||
assert_equal "/A", last_request.fullpath
|
||||
@@ -43,10 +43,12 @@ context "Frontend" do
|
||||
|
||||
@wiki.clear_cache
|
||||
page_2 = @wiki.page(page_1.name)
|
||||
header_2 = page_2.header
|
||||
foot_2 = page_2.footer
|
||||
side_2 = page_2.sidebar
|
||||
assert_equal page_1.raw_data, page_2.raw_data
|
||||
|
||||
assert_equal 'header', header_2.raw_data
|
||||
assert_equal 'footer', foot_2.raw_data
|
||||
assert_equal 'def', foot_2.version.message
|
||||
assert_not_equal foot_1.version.sha, foot_2.version.sha
|
||||
|
||||
Reference in New Issue
Block a user