mirror of
https://tildegit.org/sbgodin/HtmGem.git
synced 2023-08-25 13:53:12 +02:00
Improves the regex
This commit is contained in:
parent
b418c6080f
commit
9ee5a8744a
58
index.php
58
index.php
@ -160,19 +160,17 @@ function translateGemToHtml($fileContents) {
|
|||||||
if (empty($line)) {
|
if (empty($line)) {
|
||||||
echo "<p> </p>\n";
|
echo "<p> </p>\n";
|
||||||
} elseif ('^^^' == $line3) {
|
} elseif ('^^^' == $line3) {
|
||||||
if (preg_match("/^\^\^\^\s+(.*)$/", $line)) {
|
|
||||||
$mode_textAttributes = !$mode_textAttributes;
|
$mode_textAttributes = !$mode_textAttributes;
|
||||||
} else {
|
|
||||||
$mode = "raw";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
} elseif ('^' == $line1 and !$mode_textAttributes_temp) {
|
} elseif ('^' == $line1 and !$mode_textAttributes_temp) {
|
||||||
preg_match("/^\^\s*(.*)$/", $line, $parts);
|
if (preg_match("/^\^\s*(.+)$/", $line, $parts)) {
|
||||||
$line = $parts[1];
|
$line = $parts[1];
|
||||||
$mode_textAttributes_temp = true;
|
$mode_textAttributes_temp = true;
|
||||||
|
} else {
|
||||||
|
$mode = "raw";
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
} elseif ("#" == $line1) {
|
} elseif ("#" == $line1) {
|
||||||
preg_match("/^(#{1,3})\s*(.*)/", $line, $sharps);
|
if (preg_match("/^(#{1,3})\s*(.+)/", $line, $sharps)) {
|
||||||
$h_level = strlen($sharps[1]);
|
$h_level = strlen($sharps[1]);
|
||||||
$text = $sharps[2];
|
$text = $sharps[2];
|
||||||
htmlPrepare($text);
|
htmlPrepare($text);
|
||||||
@ -181,6 +179,10 @@ function translateGemToHtml($fileContents) {
|
|||||||
case 2: echo "<h2>".$text."</h2>\n"; break;
|
case 2: echo "<h2>".$text."</h2>\n"; break;
|
||||||
case 3: echo "<h3>".$text."</h3>\n"; break;
|
case 3: echo "<h3>".$text."</h3>\n"; break;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$mode = "raw";
|
||||||
|
continue;
|
||||||
|
}
|
||||||
} elseif ("=>" == $line2) {
|
} elseif ("=>" == $line2) {
|
||||||
if (preg_match("/^=>\s*([^\s]+)(?:\s+(.*))?$/", $line, $linkParts)) {
|
if (preg_match("/^=>\s*([^\s]+)(?:\s+(.*))?$/", $line, $linkParts)) {
|
||||||
$url_link = $linkParts[1];
|
$url_link = $linkParts[1];
|
||||||
@ -193,6 +195,7 @@ function translateGemToHtml($fileContents) {
|
|||||||
} else {
|
} else {
|
||||||
// the label is humain-made, apply formatting
|
// the label is humain-made, apply formatting
|
||||||
htmlPrepare($url_label);
|
htmlPrepare($url_label);
|
||||||
|
if ($mode_textAttributes xor $mode_textAttributes_temp) addTextAttributes($url_label);
|
||||||
}
|
}
|
||||||
echo "<p><a class='$url_protocol' href='$url_link'>$url_label</a></p>\n";
|
echo "<p><a class='$url_protocol' href='$url_link'>$url_label</a></p>\n";
|
||||||
} else {
|
} else {
|
||||||
@ -200,27 +203,19 @@ function translateGemToHtml($fileContents) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} elseif ("```" == $line3) {
|
} elseif ("```" == $line3) {
|
||||||
if (preg_match("/^```\s*(.*)$/", $line, $matches)) {
|
preg_match("/^```\s*(.*)$/", $line, $matches);
|
||||||
$alt_text = trim(@$matches[1]);
|
$alt_text = trim($matches[1]);
|
||||||
if (!(empty($alt_text))) {
|
if (empty($alt_text)) {
|
||||||
echo "<pre alt='$alt_text' title='$alt_text'>\n";
|
|
||||||
} else {
|
|
||||||
echo "<pre>\n";
|
echo "<pre>\n";
|
||||||
}
|
} else {
|
||||||
|
echo "<pre alt='$alt_text' title='$alt_text'>\n";
|
||||||
}
|
}
|
||||||
$mode="pre";
|
$mode="pre";
|
||||||
} elseif (">" == $line1) {
|
} elseif (">" == $line1) {
|
||||||
$mode = "quote";
|
|
||||||
preg_match("/^>\s*(.*)$/", $line, $quoteParts);
|
|
||||||
$quote = $quoteParts[1];
|
|
||||||
echo "<blockquote>\n";
|
echo "<blockquote>\n";
|
||||||
if (empty($quote))
|
$mode = "quote";
|
||||||
echo "<p> </p>\n";
|
continue;
|
||||||
else
|
} elseif ("*" == $line1) {
|
||||||
htmlPrepare($quote);
|
|
||||||
if ($mode_textAttributes xor $mode_textAttributes_temp) addTextAttributes($line);
|
|
||||||
echo "<p>".$quote."</p>\n";
|
|
||||||
} elseif ("* " == $line2) {
|
|
||||||
echo "<ul>\n";
|
echo "<ul>\n";
|
||||||
$mode = "ul";
|
$mode = "ul";
|
||||||
continue;
|
continue;
|
||||||
@ -230,9 +225,13 @@ function translateGemToHtml($fileContents) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ("raw"==$mode) {
|
if ("raw"==$mode) {
|
||||||
|
if (empty($line)) {
|
||||||
|
$line = " ";
|
||||||
|
} else {
|
||||||
htmlPrepare($line);
|
htmlPrepare($line);
|
||||||
if ($mode_textAttributes xor $mode_textAttributes_temp) addTextAttributes($line);
|
if ($mode_textAttributes xor $mode_textAttributes_temp)
|
||||||
if (empty($line)) $line = " ";
|
addTextAttributes($line);
|
||||||
|
}
|
||||||
echo "<p>$line</p>\n";
|
echo "<p>$line</p>\n";
|
||||||
$mode = null;
|
$mode = null;
|
||||||
} elseif ("pre"==$mode) {
|
} elseif ("pre"==$mode) {
|
||||||
@ -249,16 +248,19 @@ function translateGemToHtml($fileContents) {
|
|||||||
$quote = $quoteParts[1];
|
$quote = $quoteParts[1];
|
||||||
if (empty($quote))
|
if (empty($quote))
|
||||||
echo "<p> </p>\n";
|
echo "<p> </p>\n";
|
||||||
else
|
else {
|
||||||
htmlPrepare($quote);
|
htmlPrepare($quote);
|
||||||
|
if ($mode_textAttributes xor $mode_textAttributes_temp)
|
||||||
|
addTextAttributes($line);
|
||||||
echo "<p>".$quote."</p>\n";
|
echo "<p>".$quote."</p>\n";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
echo "</blockquote>\n";
|
echo "</blockquote>\n";
|
||||||
$mode = null;
|
$mode = null;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} elseif ("ul"==$mode) {
|
} elseif ("ul"==$mode) {
|
||||||
if ("* " == $line2) {
|
if ("*" == $line1) {
|
||||||
preg_match("/^\*\s*(.*)$/", $line, $ulParts);
|
preg_match("/^\*\s*(.*)$/", $line, $ulParts);
|
||||||
$li = $ulParts[1];
|
$li = $ulParts[1];
|
||||||
if (empty($li)) {
|
if (empty($li)) {
|
||||||
@ -278,7 +280,7 @@ function translateGemToHtml($fileContents) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break; // exits the while(true) as no continue occured
|
break; // exits the while(true) as no continue occured
|
||||||
}
|
} // while(true)
|
||||||
}
|
}
|
||||||
$html = ob_get_contents();
|
$html = ob_get_contents();
|
||||||
ob_clean();
|
ob_clean();
|
||||||
|
Loading…
Reference in New Issue
Block a user