aboutsummaryrefslogtreecommitdiffstats
path: root/library/tableofcontents
diff options
context:
space:
mode:
authorEiner von Vielen <tomwie@users.sourceforge.net>2015-01-18 14:21:26 +0100
committerEiner von Vielen <tomwie@users.sourceforge.net>2015-01-18 14:21:26 +0100
commit123ca1d403a7e841b4f791f04a00acbec10c2b5b (patch)
treebb64696523cfe8ae8cc54e5601981e166bf0696e /library/tableofcontents
parent6657712714cb17afcd5fc3c81625a395279d8436 (diff)
downloadvolse-hubzilla-123ca1d403a7e841b4f791f04a00acbec10c2b5b.tar.gz
volse-hubzilla-123ca1d403a7e841b4f791f04a00acbec10c2b5b.tar.bz2
volse-hubzilla-123ca1d403a7e841b4f791f04a00acbec10c2b5b.zip
Fixed bbode element toc for webpages
- At the moment webpages can contain empty headings if the textarea "Title" is left empty in the webpage creator (https://hostname/webpages/username)
Diffstat (limited to 'library/tableofcontents')
-rw-r--r--library/tableofcontents/jquery.toc.js55
1 files changed, 31 insertions, 24 deletions
diff --git a/library/tableofcontents/jquery.toc.js b/library/tableofcontents/jquery.toc.js
index d136f5aab..6ef36f49c 100644
--- a/library/tableofcontents/jquery.toc.js
+++ b/library/tableofcontents/jquery.toc.js
@@ -13,7 +13,10 @@
* or implied. See the License for the specific language governing permissions and limitations
* under the License.
*
- * The original script was modified to work within the red#martrix (added var pathname).
+ * The original script was modified to work within the red#martrix
+ * - added var pathname
+ * - added var textHeading: Accept heading with text only
+ * Why? At the moment webpages can contain empty title using h3
*/
(function ($) {
@@ -53,31 +56,35 @@
var elem = $(this), level = $.map(headingSelectors, function (selector, index) {
return elem.is(selector) ? index : undefined;
})[0];
-
- if (level > currentLevel) {
- // If the heading is at a deeper level than where we are, start a new nested
- // list, but only if we already have some list items in the parent. If we do
- // not, that means that we're skipping levels, so we can just add new list items
- // at the current level.
- // In the upside-down stack, unshift = push, and stack[0] = the top.
- var parentItem = stack[0].children("li:last")[0];
- if (parentItem) {
- stack.unshift($("<" + listTag + "/>").appendTo(parentItem));
+
+ // Accept heading with text only
+ var textHeading = elem.text();
+ if(textHeading != '') {
+ if (level > currentLevel) {
+ // If the heading is at a deeper level than where we are, start a new nested
+ // list, but only if we already have some list items in the parent. If we do
+ // not, that means that we're skipping levels, so we can just add new list items
+ // at the current level.
+ // In the upside-down stack, unshift = push, and stack[0] = the top.
+ var parentItem = stack[0].children("li:last")[0];
+ if (parentItem) {
+ stack.unshift($("<" + listTag + "/>").appendTo(parentItem));
+ }
+ } else {
+ // Truncate the stack to the current level by chopping off the 'top' of the
+ // stack. We also need to preserve at least one element in the stack - that is
+ // the containing element.
+ stack.splice(0, Math.min(currentLevel - level, Math.max(stack.length - 1, 0)));
}
- } else {
- // Truncate the stack to the current level by chopping off the 'top' of the
- // stack. We also need to preserve at least one element in the stack - that is
- // the containing element.
- stack.splice(0, Math.min(currentLevel - level, Math.max(stack.length - 1, 0)));
- }
- // the variable pathname was added to the original script.
- var pathname = window.location.pathname;
- // Add the list item
- $("<li/>").appendTo(stack[0]).append(
- $("<a/>").text(elem.text()).attr("href", pathname + "#" + elem.attr("id"))
- );
+ // the variable pathname was added to the original script.
+ var pathname = window.location.pathname;
+ // Add the list item
+ $("<li/>").appendTo(stack[0]).append(
+ $("<a/>").text(elem.text()).attr("href", pathname + "#" + elem.attr("id"))
+ );
- currentLevel = level;
+ currentLevel = level;
+ }
});
});
}, old = $.fn.toc;