aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2016-08-05 12:13:50 +0200
committerMario Vavti <mario@mariovavti.com>2016-08-05 12:13:50 +0200
commit53a2262fef2c1e6208a301a15c0e0c9a024b2b42 (patch)
treea0a652072c3aa2da633a78e56d0284c9d81988ed
parent7e5428c69703e16f011e362a9865fe50d4841ddb (diff)
parent709206accde6136f96f1484510edc4b61b3d52a7 (diff)
downloadvolse-hubzilla-53a2262fef2c1e6208a301a15c0e0c9a024b2b42.tar.gz
volse-hubzilla-53a2262fef2c1e6208a301a15c0e0c9a024b2b42.tar.bz2
volse-hubzilla-53a2262fef2c1e6208a301a15c0e0c9a024b2b42.zip
Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev
-rw-r--r--Zotlabs/Module/Wiki.php5
-rw-r--r--include/wiki.php39
2 files changed, 42 insertions, 2 deletions
diff --git a/Zotlabs/Module/Wiki.php b/Zotlabs/Module/Wiki.php
index 011cd4366..bb4e9179c 100644
--- a/Zotlabs/Module/Wiki.php
+++ b/Zotlabs/Module/Wiki.php
@@ -147,8 +147,8 @@ class Wiki extends \Zotlabs\Web\Controller {
}
$content = ($p['content'] !== '' ? htmlspecialchars_decode($p['content'],ENT_COMPAT) : '"# New page\n"');
// Render the Markdown-formatted page content in HTML
- require_once('library/markdown.php');
- $html = wiki_generate_toc(purify_html(Markdown(json_decode($content))));
+ require_once('library/markdown.php');
+ $html = wiki_generate_toc(purify_html(Markdown(wiki_bbcode(json_decode($content)))));
$renderedContent = wiki_convert_links($html,argv(0).'/'.argv(1).'/'.$wikiUrlName);
$hide_editor = false;
$showPageControls = $wiki_editor;
@@ -230,6 +230,7 @@ class Wiki extends \Zotlabs\Web\Controller {
$content = $_POST['content'];
$resource_id = $_POST['resource_id'];
require_once('library/markdown.php');
+ $content = wiki_bbcode($content);
$html = wiki_generate_toc(purify_html(Markdown($content)));
$w = wiki_get_wiki($resource_id);
$wikiURL = argv(0).'/'.argv(1).'/'.$w['urlName'];
diff --git a/include/wiki.php b/include/wiki.php
index 424b2d9a0..d52308b08 100644
--- a/include/wiki.php
+++ b/include/wiki.php
@@ -495,6 +495,12 @@ function wiki_convert_links($s, $wikiURL) {
return $s;
}
+/**
+ * Replace the instances of the string [toc] with a list element that will be populated by
+ * a table of contents by the JavaScript library
+ * @param string $s
+ * @return string
+ */
function wiki_generate_toc($s) {
if (strpos($s,'[toc]') !== false) {
@@ -505,6 +511,39 @@ function wiki_generate_toc($s) {
return $s;
}
+/**
+ * Converts a select set of bbcode tags. Much of the code is copied from include/bbcode.php
+ * @param string $s
+ * @return string
+ */
+function wiki_bbcode($s) {
+
+ $s = str_replace(array('[baseurl]', '[sitename]'), array(z_root(), get_config('system', 'sitename')), $s);
+
+ $observer = App::get_observer();
+ if ($observer) {
+ $s1 = '<span class="bb_observer" title="' . t('Different viewers will see this text differently') . '">';
+ $s2 = '</span>';
+ $obsBaseURL = $observer['xchan_connurl'];
+ $obsBaseURL = preg_replace("/\/poco\/.*$/", '', $obsBaseURL);
+ $s = str_replace('[observer.baseurl]', $obsBaseURL, $s);
+ $s = str_replace('[observer.url]', $observer['xchan_url'], $s);
+ $s = str_replace('[observer.name]', $s1 . $observer['xchan_name'] . $s2, $s);
+ $s = str_replace('[observer.address]', $s1 . $observer['xchan_addr'] . $s2, $s);
+ $s = str_replace('[observer.webname]', substr($observer['xchan_addr'], 0, strpos($observer['xchan_addr'], '@')), $s);
+ $s = str_replace('[observer.photo]', '', $s);
+ } else {
+ $s = str_replace('[observer.baseurl]', '', $s);
+ $s = str_replace('[observer.url]', '', $s);
+ $s = str_replace('[observer.name]', '', $s);
+ $s = str_replace('[observer.address]', '', $s);
+ $s = str_replace('[observer.webname]', '', $s);
+ $s = str_replace('[observer.photo]', '', $s);
+ }
+
+ return $s;
+}
+
// This function is derived from
// http://stackoverflow.com/questions/32068537/generate-table-of-contents-from-markdown-in-php
function wiki_toc($content) {