Properly extract and display title for all formats.
This commit is contained in:
@@ -222,10 +222,6 @@ html {overflow-y: scroll;}
|
||||
margin-top: 1.5em !important;
|
||||
}
|
||||
|
||||
.wikistyle h1:first-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.wikistyle h2 {
|
||||
font-size: 150% !important;
|
||||
margin-top: 1.5em !important;
|
||||
@@ -344,25 +340,60 @@ html {overflow-y: scroll;}
|
||||
|
||||
/* Special markup considerations */
|
||||
|
||||
.wikistyle.gollum > h1:first-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* asciidoc */
|
||||
|
||||
.wikistyle .ulist p,
|
||||
.wikistyle .olist p {
|
||||
.wikistyle.gollum.asciidoc > div#header > h1:first-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.wikistyle.gollum.asciidoc .ulist p,
|
||||
.wikistyle.gollum.asciidoc .olist p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.wikistyle .loweralpha {
|
||||
.wikistyle.gollum.asciidoc .loweralpha {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
|
||||
.wikistyle .lowerroman {
|
||||
.wikistyle.gollum.asciidoc .lowerroman {
|
||||
list-style-type: lower-roman;
|
||||
}
|
||||
|
||||
.wikistyle .upperalpha {
|
||||
.wikistyle.gollum.asciidoc .upperalpha {
|
||||
list-style-type: upper-alpha;
|
||||
}
|
||||
|
||||
.wikistyle .upperroman {
|
||||
.wikistyle.gollum.asciidoc .upperroman {
|
||||
list-style-type: upper-roman;
|
||||
}
|
||||
}
|
||||
|
||||
/* org */
|
||||
|
||||
.wikistyle.gollum.org > p.title:first-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.wikistyle.gollum.org p:first-child + h1 {
|
||||
border-top: none !important;
|
||||
}
|
||||
|
||||
/* pod */
|
||||
|
||||
.wikistyle.gollum.pod > a.dummyTopAnchor:first-child + h1 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.wikistyle.gollum.pod h1 a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* rest */
|
||||
|
||||
.wikistyle.gollum.rest > div.document > div.section > h1:first-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<a href="/">Home</a> | <a href="/edit/{{name}}">Edit</a>
|
||||
</div>
|
||||
<h1>{{human_name}}</h1>
|
||||
<div class="wikistyle">
|
||||
<div class="wikistyle gollum {{format}}">
|
||||
{{{content}}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -11,6 +11,10 @@ module Precious
|
||||
"A Page"
|
||||
end
|
||||
|
||||
def format
|
||||
@page.format.to_s
|
||||
end
|
||||
|
||||
def author
|
||||
@page.version.author.name
|
||||
end
|
||||
|
||||
@@ -24,7 +24,14 @@ module Gollum
|
||||
def render
|
||||
data = extract_code(@data)
|
||||
data = extract_tags(data)
|
||||
data = GitHub::Markup.render(@name, data) rescue ''
|
||||
begin
|
||||
data = GitHub::Markup.render(@name, data)
|
||||
if data.nil?
|
||||
raise "There was an error converting #{@name} to HTML."
|
||||
end
|
||||
rescue Object => e
|
||||
data = %{<p class="gollum-error">#{e.message}</p>}
|
||||
end
|
||||
data = process_tags(data)
|
||||
data = process_code(data)
|
||||
data = Sanitize.clean(data, SANITIZATION_OPTIONS)
|
||||
|
||||
+19
-10
@@ -24,7 +24,7 @@ module Gollum
|
||||
end
|
||||
|
||||
# Checks if a filename has a valid extension understood by GitHub::Markup.
|
||||
# Also, checks if the filename has no "_" in the front (such as
|
||||
# Also, checks if the filename has no "_" in the front (such as
|
||||
# _Footer.md).
|
||||
#
|
||||
# filename - String filename, like "Home.md".
|
||||
@@ -60,15 +60,24 @@ module Gollum
|
||||
#
|
||||
# Returns the fully sanitized String title.
|
||||
def title
|
||||
doc = Nokogiri::HTML(self.formatted_data)
|
||||
if doc.first_element_child &&
|
||||
doc.first_element_child.children &&
|
||||
doc.first_element_child.children.first &&
|
||||
doc.first_element_child.children.first.children &&
|
||||
doc.first_element_child.children.first.children.first &&
|
||||
doc.first_element_child.children.first.children.first.name &&
|
||||
doc.first_element_child.children.first.children.first.name == 'h1'
|
||||
Sanitize.clean(doc.first_element_child.children.first.children.first.to_html)
|
||||
doc = Nokogiri::HTML(%{<div id="gollum-root">} + self.formatted_data + %{</div>})
|
||||
|
||||
header =
|
||||
case self.format
|
||||
when :asciidoc
|
||||
doc.css("div#gollum-root > div#header > h1:first-child")
|
||||
when :org
|
||||
doc.css("div#gollum-root > p.title:first-child")
|
||||
when :pod
|
||||
doc.css("div#gollum-root > a.dummyTopAnchor:first-child + h1")
|
||||
when :rest
|
||||
doc.css("div#gollum-root > div > div > h1:first-child")
|
||||
else
|
||||
doc.css("div#gollum-root > h1:first-child")
|
||||
end
|
||||
|
||||
if !header.empty?
|
||||
Sanitize.clean(header.to_html)
|
||||
else
|
||||
Sanitize.clean(self.name.split('.')[0..-2].join('.').gsub('-', ' '))
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user