aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Manning <tamanning@zoho.com>2016-06-30 21:50:38 -0400
committerAndrew Manning <tamanning@zoho.com>2016-06-30 21:50:38 -0400
commit7124c0aee5486aab74272c81ceb3e383b2e3a7f7 (patch)
treed556c7638dbfbc1deef6a2ff10c2105fa2c18dd7
parent81da9f99e4ee111623a1ba302a6ab18e369756e9 (diff)
downloadvolse-hubzilla-7124c0aee5486aab74272c81ceb3e383b2e3a7f7.tar.gz
volse-hubzilla-7124c0aee5486aab74272c81ceb3e383b2e3a7f7.tar.bz2
volse-hubzilla-7124c0aee5486aab74272c81ceb3e383b2e3a7f7.zip
Replace homemade table of content generator with existing jQuery plugin. Now toc is linked to document headings.
-rw-r--r--Zotlabs/Module/Wiki.php6
-rw-r--r--include/wiki.php3
-rw-r--r--view/tpl/wiki.tpl2
3 files changed, 6 insertions, 5 deletions
diff --git a/Zotlabs/Module/Wiki.php b/Zotlabs/Module/Wiki.php
index a5039fa23..f30884bfb 100644
--- a/Zotlabs/Module/Wiki.php
+++ b/Zotlabs/Module/Wiki.php
@@ -126,8 +126,7 @@ class Wiki extends \Zotlabs\Web\Controller {
$content = ($p['content'] !== '' ? $p['content'] : '"# New page\n"');
// Render the Markdown-formatted page content in HTML
require_once('library/markdown.php');
- $toc_content = wiki_generate_toc(json_decode($content));
- $html = purify_html(Markdown($toc_content));
+ $html = wiki_generate_toc(purify_html(Markdown(json_decode($content))));
$renderedContent = wiki_convert_links($html,argv(0).'/'.argv(1).'/'.$wikiUrlName);
$hide_editor = false;
$showPageControls = $wiki_editor;
@@ -200,8 +199,7 @@ class Wiki extends \Zotlabs\Web\Controller {
$content = $_POST['content'];
$resource_id = $_POST['resource_id'];
require_once('library/markdown.php');
- $content = wiki_generate_toc($content);
- $html = purify_html(Markdown($content));
+ $html = wiki_generate_toc(purify_html(Markdown($content)));
$w = wiki_get_wiki($resource_id);
$wikiURL = argv(0).'/'.argv(1).'/'.$w['urlName'];
$html = wiki_convert_links($html,$wikiURL);
diff --git a/include/wiki.php b/include/wiki.php
index 67757b0f5..424b2d9a0 100644
--- a/include/wiki.php
+++ b/include/wiki.php
@@ -498,7 +498,8 @@ function wiki_convert_links($s, $wikiURL) {
function wiki_generate_toc($s) {
if (strpos($s,'[toc]') !== false) {
- $toc_md = wiki_toc($s);
+ //$toc_md = wiki_toc($s); // Generate Markdown-formatted list prior to HTML render
+ $toc_md = '<ul id="wiki-toc"></ul>'; // use the available jQuery plugin http://ndabas.github.io/toc/
$s = preg_replace("/\[toc\]/", $toc_md, $s, -1);
}
return $s;
diff --git a/view/tpl/wiki.tpl b/view/tpl/wiki.tpl
index 1d8570828..7617808f4 100644
--- a/view/tpl/wiki.tpl
+++ b/view/tpl/wiki.tpl
@@ -190,6 +190,7 @@
$(document).ready(function () {
wiki_refresh_page_list();
+ $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
// Show Edit tab first. Otherwise the Ace editor does not load.
$("#wiki-nav-tabs li:eq(1) a").tab('show');
});
@@ -203,6 +204,7 @@
$.post("wiki/{{$channel}}/preview", {content: editor.getValue(), resource_id: window.wiki_resource_id}, function (data) {
if (data.success) {
$('#wiki-preview').html(data.html);
+ $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
} else {
window.console.log('Error previewing page.');
}