best way to use emphasis within code?
Jeremy C. Reed
reed at reedmedia.net
Thu Jan 4 10:53:50 EST 2007
On Sat, 30 Dec 2006, Jeremy C. Reed wrote:
> If not, I will code this for my own use. I will attempt to add an option
> to Markdown so it doesn't take it literal.
>
> Or maybe use two "" (two double-quotes) to begin and end the <pre><code>
> block. Or start line with "" (two doubel-quotes).
This is what I am using now:
--- Markdown.pm.orig 2007-01-03 04:15:01.000000000 +0900
+++ /usr/pkg/lib/perl5/vendor_perl/5.8.0/Markdown.pm 2007-01-03 05:26:53.000000000 +0900
@@ -438,6 +438,8 @@
$text = _DoCodeBlocks($text);
+ $text = _DoCustomCodeBlocks($text);
+
$text = _DoBlockQuotes($text);
# We already ran _HashHTMLBlocks() before, in Markdown(), but that
@@ -947,6 +949,43 @@
}
+sub _DoCustomCodeBlocks {
+#
+# Process Markdown `<pre><code>` blocks.
+# NOTE: the difference between this and _DoCodeBlocks
+# is that Markdown formatting is still parsed and is not literal.
+
+ my $text = shift;
+
+ $text =~ s{
+ ( # Wrap whole match in $1
+ (
+ ^\"\"[ \t]? # '>' at the start of a line
+ .+\n # rest of the first line
+ (.+\n)* # subsequent consecutive lines
+ \n* # blanks
+ )+
+ )
+ }{
+ my $ccb = $1;
+ $ccb =~ s/^\"\"[ \t]?//gm; # trim one level of quoting
+# $ccb =~ s/^[ \t]+$//mg; # trim whitespace-only lines
+ $ccb = _Detab($ccb);
+ $ccb =~ s/\A\n+//; # trim leading newlines
+ $ccb =~ s/\s+\z//; # trim trailing whitespace
+
+ $ccb = _RunSpanGamut($ccb); # recurse
+
+# $ccb =~ s/^/ /g;
+
+ "\n\n<pre><code>$ccb\n</code></pre>\n\n";
+ }egmx;
+
+
+ return $text;
+}
+
+
sub _DoCodeSpans {
#
# * Backtick quotes are used for <code></code> spans.
More information about the Markdown-Discuss
mailing list