From 2d75e1f4224e3ebe77cc5873fa26559b729f0c3d Mon Sep 17 00:00:00 2001
From: fabrixxm
Date: Tue, 4 Aug 2015 11:42:00 +0200
Subject: [PATCH] add support for oneline,in-text code tag
---
include/bb2diaspora.php | 12 ++++++------
include/bbcode.php | 13 ++++++++++++-
include/html2bbcode.php | 12 ++++++++++--
view/global.css | 4 +++-
4 files changed, 31 insertions(+), 10 deletions(-)
diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index 69a87b381..fc05e720f 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -152,22 +152,22 @@ function format_event_diaspora($ev) {
$o .= '**' . (($ev['summary']) ? bb2diaspora($ev['summary']) : bb2diaspora($ev['desc'])) . '**' . "\n";
$o .= t('Starts:') . ' ' . '['
- . (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC',
+ . (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC',
$ev['start'] , $bd_format ))
- : day_translate(datetime_convert('UTC', 'UTC',
+ : day_translate(datetime_convert('UTC', 'UTC',
$ev['start'] , $bd_format)))
. '](' . $a->get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n";
if(! $ev['nofinish'])
- $o .= t('Finishes:') . ' ' . '['
- . (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC',
+ $o .= t('Finishes:') . ' ' . '['
+ . (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC',
$ev['finish'] , $bd_format ))
- : day_translate(datetime_convert('UTC', 'UTC',
+ : day_translate(datetime_convert('UTC', 'UTC',
$ev['finish'] , $bd_format )))
. '](' . $a->get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['finish'])) . ")\n";
if(strlen($ev['location']))
- $o .= t('Location:') . bb2diaspora($ev['location'])
+ $o .= t('Location:') . bb2diaspora($ev['location'])
. "\n";
$o .= "\n";
diff --git a/include/bbcode.php b/include/bbcode.php
index 8102fc3f7..13061958c 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -268,6 +268,13 @@ function stripcode_br_cb($s) {
return '[code]' . str_replace('
', '', $s[1]) . '[/code]';
}
+function bb_onelinecode_cb($match) {
+ if (strpos($match[1],"
")===false){
+ return "".$match[1]."";
+ }
+ return "".$match[1]."
";
+}
+
function tryoembed($match){
//$url = ((count($match)==2)?$match[1]:$match[2]);
$url = $match[1];
@@ -1179,7 +1186,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
// If we found an event earlier, strip out all the event code and replace with a reformatted version.
// Replace the event-start section with the entire formatted event. The other bbcode is stripped.
- // Summary (e.g. title) is required, earlier revisions only required description (in addition to
+ // Summary (e.g. title) is required, earlier revisions only required description (in addition to
// start which is always required). Allow desc with a missing summary for compatibility.
if((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) {
@@ -1193,6 +1200,10 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
$Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism",'',$Text);
}
+
+ //replace oneliner with
+ $Text = preg_replace_callback("|(?!
]*>)([^<]*)
(?!
]*>)|ism", 'bb_onelinecode_cb', $Text);
+
// Unhide all [noparse] contained bbtags unspacefying them
// and triming the [noparse] tag.
diff --git a/include/html2bbcode.php b/include/html2bbcode.php
index d2699460e..10a2fd13e 100644
--- a/include/html2bbcode.php
+++ b/include/html2bbcode.php
@@ -90,12 +90,18 @@ function html2bbcode($message)
$message = str_replace("\r", "", $message);
+ $message = preg_replace_callback("|([^<]*)
|ism", function($m) {
+ return "".str_replace("\n","
\n",$m[1]). "
";
+ }, $message);
+
$message = str_replace(array(
"",
- "
"),
+ "
",
+ ),
array(
"",
- ""),
+ "",
+ ),
$message);
// remove namespaces
@@ -187,6 +193,7 @@ function html2bbcode($message)
node2bbcode($doc, 'span', array(), "", "");
node2bbcode($doc, 'pre', array(), "", "");
+
node2bbcode($doc, 'div', array(), "\r", "\r");
node2bbcode($doc, 'p', array(), "\n", "\n");
@@ -230,6 +237,7 @@ function html2bbcode($message)
node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), '[iframe]$1', '[/iframe]');
node2bbcode($doc, 'code', array(), '[code]', '[/code]');
+ node2bbcode($doc, 'key', array(), '[code]', '[/code]');
$message = $doc->saveHTML();
diff --git a/view/global.css b/view/global.css
index 94896ea23..720ffc530 100644
--- a/view/global.css
+++ b/view/global.css
@@ -170,6 +170,9 @@ span.oembed, h4 {
margin: 0px 0px 0px 0px;
}
+code { display: block; background-color: #eee; color: #666; padding:1em; font-size: 0.8em; font-family: monospace; }
+key { display: inline; background-color: #eee; color: #666; padding:0.2em; font-size: 0.8em; font-family: monospace; }
+
/* fields help text */
.field .field_help {
clear: left;
@@ -178,7 +181,6 @@ span.oembed, h4 {
/* notifications unseen */
.notify-unseen { background-color: #cceeFF; }
-
/* plain text editor upload/select popup */
.fbrowser .path a { padding: 5px; }