Browse Source

Skip empty ul element generation for empty h1 lists

pull/63/head
Geert van Horrik 8 years ago
parent
commit
f6a6421bad
1 changed files with 17 additions and 6 deletions
  1. +17
    -6
      src/DocNet/SimpleNavigationElement.cs

+ 17
- 6
src/DocNet/SimpleNavigationElement.cs View File

@@ -194,10 +194,11 @@ namespace Docnet
relativePathToRoot, relativePathToRoot,
this.GetFinalTargetUrl(navigationContext.PathSpecification), this.GetFinalTargetUrl(navigationContext.PathSpecification),
this.Name)); this.Name));
if (isCurrent && _relativeLinksOnPage.Any())
if (isCurrent && _relativeLinksOnPage.SelectMany(x => x.Children).Any(x => x.Level > 1))
{ {
// generate relative links // generate relative links
fragments.Add(string.Format("<ul class=\"{0}\">", this.ParentContainer.IsRoot ? "currentrelativeroot" : "currentrelative")); fragments.Add(string.Format("<ul class=\"{0}\">", this.ParentContainer.IsRoot ? "currentrelativeroot" : "currentrelative"));

foreach (var heading in _relativeLinksOnPage) foreach (var heading in _relativeLinksOnPage)
{ {
var content = GenerateToCFragmentForHeading(heading, navigationContext); var content = GenerateToCFragmentForHeading(heading, navigationContext);
@@ -206,6 +207,7 @@ namespace Docnet
fragments.Add(content); fragments.Add(content);
} }
} }

fragments.Add("</ul>"); fragments.Add("</ul>");
} }
else else
@@ -254,7 +256,8 @@ namespace Docnet
var stringBuilder = new StringBuilder(); var stringBuilder = new StringBuilder();


// Skip heading 1 and larger than allowed // Skip heading 1 and larger than allowed
if (heading.Level > 1 && heading.Level <= navigationContext.MaxLevel)
var isHeading1 = heading.Level <= 1;
if (!isHeading1 && heading.Level <= navigationContext.MaxLevel)
{ {
stringBuilder.AppendLine(string.Format("<li class=\"tocentry\"><a href=\"#{0}\">{1}</a></li>", heading.Id, heading.Name)); stringBuilder.AppendLine(string.Format("<li class=\"tocentry\"><a href=\"#{0}\">{1}</a></li>", heading.Id, heading.Name));
} }
@@ -272,11 +275,19 @@ namespace Docnet


if (childContentBuilder.Length > 0) if (childContentBuilder.Length > 0)
{ {
stringBuilder.AppendLine("<li class=\"tocentry\">");
stringBuilder.AppendLine(string.Format("<ul class=\"{0}\">", this.ParentContainer.IsRoot ? "currentrelativeroot" : "currentrelative"));
if (!isHeading1)
{
stringBuilder.AppendLine("<li class=\"tocentry\">");
stringBuilder.AppendLine(string.Format("<ul class=\"{0}\">", this.ParentContainer.IsRoot ? "currentrelativeroot" : "currentrelative"));
}

stringBuilder.AppendLine(childContentBuilder.ToString()); stringBuilder.AppendLine(childContentBuilder.ToString());
stringBuilder.AppendLine("</ul>");
stringBuilder.AppendLine("</li>");

if (!isHeading1)
{
stringBuilder.AppendLine("</ul>");
stringBuilder.AppendLine("</li>");
}
} }


return stringBuilder.ToString(); return stringBuilder.ToString();


Loading…
Cancel
Save