diff options
-rw-r--r-- | Zotlabs/Module/Wiki.php | 5 | ||||
-rw-r--r-- | include/bbcode.php | 10 | ||||
-rw-r--r-- | include/wiki.php | 2 | ||||
-rw-r--r-- | view/css/conversation.css | 13 | ||||
-rw-r--r-- | view/css/mod_wiki.css | 8 | ||||
-rw-r--r-- | view/js/main.js | 1 | ||||
-rw-r--r-- | view/tpl/wiki.tpl | 5 | ||||
-rw-r--r-- | view/tpl/wikilist.tpl | 4 |
8 files changed, 33 insertions, 15 deletions
diff --git a/Zotlabs/Module/Wiki.php b/Zotlabs/Module/Wiki.php index 5b3c4c1d8..01a1bdc41 100644 --- a/Zotlabs/Module/Wiki.php +++ b/Zotlabs/Module/Wiki.php @@ -149,6 +149,7 @@ class Wiki extends \Zotlabs\Web\Controller { '$wikiName' => array('wikiName', t('Wiki name')), '$mimeType' => array('mimeType', t('Content type'), '', '', ['text/markdown' => 'Markdown', 'text/bbcode' => 'BB Code']), '$name' => t('Name'), + '$type' => t('Type'), '$lockstate' => $x['lockstate'], '$acl' => $x['acl'], '$allow_cid' => $x['allow_cid'], @@ -214,7 +215,7 @@ class Wiki extends \Zotlabs\Web\Controller { $content = ($p['content'] !== '' ? $rawContent : '"# New page\n"'); // Render the Markdown-formatted page content in HTML if($mimeType == 'text/bbcode') { - $renderedContent = bbcode($content); + $renderedContent = wiki_convert_links(bbcode($content),argv(0).'/'.argv(1).'/'.$wikiUrlName); } else { require_once('library/markdown.php'); @@ -314,7 +315,7 @@ class Wiki extends \Zotlabs\Web\Controller { $mimeType = $w['mimeType']; if($mimeType == 'text/bbcode') { - $html = bbcode($content); + $html = wiki_convert_links(bbcode($content),$wikiURL); } else { require_once('library/markdown.php'); diff --git a/include/bbcode.php b/include/bbcode.php index 6794fca96..b315255f5 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -824,12 +824,14 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) $Text = preg_replace("(\[h6\](.*?)\[\/h6\])ism",'<h6>$1</h6>',$Text); } // Check for table of content without params - if (strpos($Text,'[toc]') !== false) { - $Text = preg_replace("/\[toc\]/ism",'<ul id="toc"></ul>',$Text); + while(strpos($Text,'[toc]') !== false) { + $toc_id = 'toc-' . random_string(10); + $Text = preg_replace("/\[toc\]/ism", '<ul id="' . $toc_id . '" class="toc" data-toc=".section-content-wrapper"></ul><script>$("#' . $toc_id . '").toc();</script>', $Text, 1); } // Check for table of content with params - if (strpos($Text,'[toc') !== false) { - $Text = preg_replace("/\[toc([^\]]+?)\]/ism",'<ul$1></ul>',$Text); + while(strpos($Text,'[toc') !== false) { + $toc_id = 'toc-' . random_string(10); + $Text = preg_replace("/\[toc([^\]]+?)\]/ism", '<ul id="' . $toc_id . '" class="toc"$1></ul><script>$("#' . $toc_id . '").toc();</script>', $Text, 1); } // Check for centered text if (strpos($Text,'[/center]') !== false) { diff --git a/include/wiki.php b/include/wiki.php index dd5dbbe11..542d617b9 100644 --- a/include/wiki.php +++ b/include/wiki.php @@ -19,7 +19,7 @@ function wiki_list($channel, $observer_hash) { $w['htmlName'] = get_iconfig($w, 'wiki', 'htmlName'); $w['urlName'] = get_iconfig($w, 'wiki', 'urlName'); $w['path'] = get_iconfig($w, 'wiki', 'path'); - $w['path'] = get_iconfig($w, 'wiki', 'mimeType'); + $w['mimeType'] = get_iconfig($w, 'wiki', 'mimeType'); } } // TODO: query db for wikis the observer can access. Return with two lists, for read and write access diff --git a/view/css/conversation.css b/view/css/conversation.css index 0b6674b15..aec457302 100644 --- a/view/css/conversation.css +++ b/view/css/conversation.css @@ -336,6 +336,19 @@ a.wall-item-name-link { /* bb-code */ +/* prevent [toc] bbcode links to scroll the titles behind the navbar */ +.section-content-wrapper h1, +.section-content-wrapper h2, +.section-content-wrapper h3, +.section-content-wrapper h4 { + padding-top: 60px; + margin-top: -40px; +} + +.toc { + margin-top: 1em; +} + code { font-family: Courier, monospace; font-size: 1em; diff --git a/view/css/mod_wiki.css b/view/css/mod_wiki.css index b29957090..30cbe0896 100644 --- a/view/css/mod_wiki.css +++ b/view/css/mod_wiki.css @@ -29,13 +29,13 @@ padding: 7px 3px 7px 10px; } -#wikis-index th:nth-child(2), -#wikis-index td:nth-child(2){ +#wikis-index th:nth-child(3), +#wikis-index td:nth-child(3){ padding: 7px 10px 7px 7px; } -#wikis-index th:nth-child(3), -#wikis-index td:nth-child(3){ +#wikis-index th:nth-child(4), +#wikis-index td:nth-child(4){ padding: 7px 10px 7px 7px; } diff --git a/view/js/main.js b/view/js/main.js index e78725931..3981d4266 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -1315,7 +1315,6 @@ $(document).ready(function() { numbers : aStr['t17'], }; - $("#toc").toc(); }); function zFormError(elm,x) { diff --git a/view/tpl/wiki.tpl b/view/tpl/wiki.tpl index cf4144357..7d698b493 100644 --- a/view/tpl/wiki.tpl +++ b/view/tpl/wiki.tpl @@ -184,7 +184,9 @@ function (data) { if (data.success) { $('#wiki-preview').html(data.html); + {{if !$mimeType || $mimeType == 'text/markdown'}} $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"}); + {{/if}} $('#page-tools').hide(); } else { window.console.log('Error previewing page.'); @@ -418,13 +420,12 @@ $(document).ready(function () { wiki_refresh_page_list(); - $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"}); - // This seems obsolete // Show Edit tab first. Otherwise the Ace editor does not load. //$("#wiki-nav-tabs li:eq(1) a").tab('show'); {{if !$mimeType || $mimeType == 'text/markdown'}} + $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"}); window.editor.on("input", function() { if(window.editor.getSession().getUndoManager().isClean()) { $('#save-page').addClass('disabled'); diff --git a/view/tpl/wikilist.tpl b/view/tpl/wikilist.tpl index 68aa41e7c..1fb7dbec1 100644 --- a/view/tpl/wikilist.tpl +++ b/view/tpl/wikilist.tpl @@ -27,7 +27,8 @@ <div class="section-content-wrapper-np"> <table id="wikis-index"> <tr> - <th width="98%">{{$name}}</th> + <th width="97%">{{$name}}</th> + <th width="1%">{{$type}}</th> <th width="1%" class="wikis-index-tool"></th> {{if $owner}} <th width="1%"></th> @@ -36,6 +37,7 @@ {{foreach $wikis as $wiki}} <tr class="wikis-index-row"> <td><a href="/wiki/{{$channel}}/{{$wiki.urlName}}/Home" title="{{$view}}"{{if $wiki.active}} class="active"{{/if}}>{{$wiki.title}}</a></td> + <td>{{$wiki.mimeType}}</td> <td class="wiki-index-tool"><i class="fa fa-download fakelink" onclick="wiki_download_wiki('{{$wiki.resource_id}}'); return false;"></i></td> {{if $owner}} <td><i class="fa fa-trash-o drop-icons" onclick="wiki_delete_wiki('{{$wiki.title}}', '{{$wiki.resource_id}}'); return false;"></i></td> |