From 289d7b344c01d57e04df52408f8d06fd7d24adf9 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 26 Dec 2019 08:14:04 +0000 Subject: [PATCH] New Addon Markdown --- markdown/README | 5 ++++ markdown/markdown.php | 53 +++++++++++++++++++++++++++++++++ markdown/templates/settings.tpl | 15 ++++++++++ 3 files changed, 73 insertions(+) create mode 100644 markdown/README create mode 100644 markdown/markdown.php create mode 100644 markdown/templates/settings.tpl diff --git a/markdown/README b/markdown/README new file mode 100644 index 00000000..da3cd53d --- /dev/null +++ b/markdown/README @@ -0,0 +1,5 @@ +Markdown +======== + +The Markdown addon parses user input for new items and comments via the Markdown parser. +This enables users to use the Markdown syntax additionally to the BBCode syntax. diff --git a/markdown/markdown.php b/markdown/markdown.php new file mode 100644 index 00000000..a5358d0e --- /dev/null +++ b/markdown/markdown.php @@ -0,0 +1,53 @@ + + */ +use Friendica\App; +use Friendica\Core\Hook; +use Friendica\Core\Logger; +use Friendica\Content\Text\Markdown; +use Friendica\Core\Renderer; +use Friendica\Core\PConfig; +use Friendica\Core\L10n; + +function markdown_install() { + Hook::register('post_local_start', __FILE__, 'markdown_post_local_start'); + Hook::register('addon_settings', __FILE__, 'markdown_addon_settings'); + Hook::register('addon_settings_post', __FILE__, 'markdown_addon_settings_post'); +} + +function markdown_addon_settings(App $a, &$s) +{ + if (!local_user()) { + return; + } + + $enabled = intval(PConfig::get(local_user(), 'markdown', 'enabled')); + + $t = Renderer::getMarkupTemplate('settings.tpl', 'addon/markdown/'); + $s .= Renderer::replaceMacros($t, [ + '$title' => L10n::t('Markdown'), + '$enabled' => ['enabled', L10n::t('Enable Markdown parsing'), $enabled, L10n::t('If enabled, self created items will additionally be parsed via Markdown.')], + '$submit' => L10n::t('Save Settings'), + ]); +} + +function markdown_addon_settings_post(App $a, &$b) +{ + if (!local_user() || empty($_POST['markdown-submit'])) { + return; + } + + PConfig::set(local_user(), 'markdown', 'enabled', intval($_POST['enabled'])); +} + +function markdown_post_local_start(App $a, &$request) { + if (empty($request['body']) || !PConfig::get(local_user(), 'markdown', 'enabled')) { + return; + } + + $request['body'] = Markdown::toBBCode($request['body']); +} diff --git a/markdown/templates/settings.tpl b/markdown/templates/settings.tpl new file mode 100644 index 00000000..3d013515 --- /dev/null +++ b/markdown/templates/settings.tpl @@ -0,0 +1,15 @@ + +

{{$title}}

+
+