MIME-Version: 1.0 X-Mailer: SVN::Notify 2.70: https://metacpan.org/dist/SVN-Notify/ From: theory Errors-To: theory To: test@example.com Subject: [555] = Trac-Style Log Message Formatting = Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
This "commit" demonstrates how log messages look when they are written in Trac wiki syntax and converted to HTML by Text::Trac via the SVN::Notify::Filter::Trac filter. All of the various features of that syntax are demonstrated here.
I expect that there will soon be filters for Markdown, Textile, POD, and other formatting paradigms. Hopefully, most of the HTML generated by parsing those other syntaxes into HTML will look just as good, mainly because I'm not doing anything special: this is just plain 'ole HTML. But if I've missed something, do let me know.
These three paragraphs, by the way, demostrate how paragraphs look.
Here are the various typographic styles supported by the Trac format:
Trac supports three levels of headings:
Lists can be nested, of course:
I've styled definition lists so that the terms are followed by a colon (:), and the definitions preceded by a closing angle quotation mark (»).
Usually used for blocks of code and the like.
package SVN::Notify::Filter::Trac; SVN::Notify->register_attributes( trac_url => 'trac-url=s' ); sub log_message { my ($notify, $lines) = @_; return $lines unless $notify->content_type eq 'text/html'; my $trac = Text::Trac->new( trac_url => $notify->trac_url ); return [ $trac->parse( join $/, @{ $lines } ) ]; }
Unlike the official Trac format (see ticket #6887 for the details), Text::Trac 0.09 nicely includes multiple indented paragraphs in a single block:
Ask not what your country can do for you. Ask what you can do for your country.
—John F. Kennedy
As of version 0.09 of Text::Trac, citations are supported. These are the style of citation that's supposed to look kind of like email:
This is some deeply buried original text, in which the poster was going on and on, ad naseum. Make it stop!
This is the reply to the ad naseum comment. This poster, too, went on and on, saying nothing useful, as you might expect. It's usenet, after all!
This is slightly more relevant, or a pile-on, as you might expect.
The last quoted bit from someone else attempting to add a bit of sanity to the discussion.
This bit would be, of course, an application of Godwin's law. ;-P
I borrowed this example table, as well its style, from Styling Tables with CSS.
Browser | 2000 | 2001 | 2002 | 2003 | 2004 |
MSIE 6.x | — | — | 23 | 52 | 74 |
MSIE 5.x | 45 | 72 | 64 | 39 | 18 |
MSIE 4.x | 30 | 12 | 4 | 1 | < 1 |
Netscape 6+/Mozilla | — | — | < 1 | < 1 | < 2 |
Netscape 4- | 18 | 10 | 4 | 1 | < 1 |
Opera | < 1 | < 1 | < 1 | < 1 | 1 |
This paragraph has what appears to be a TracLink, because of the camel-casing of "TracLink", but it's not a link, is it?
This is exactly what you'd think it is:
And that's it!
--- SVN-Notify/trunk/lib/SVN/Notify/HTML.pm 2008-02-24 00:00:08 UTC (rev 3460)
+++ SVN-Notify/trunk/lib/SVN/Notify/HTML.pm 2008-02-24 00:31:10 UTC (rev 3461)
@@ -603,14 +603,12 @@
qq(font-size: 10pt; font-weight: bold; }\n),
q(#msg pre { overflow: auto; background: #ffc; ),
qq(border: 1px #fc0 solid; padding: 6px; }\n),
- qq(#logmsg { background: #ffc; border: 1px #fc0 solid; padding: 0 6px; }\n),
- qq(#logmsg ul, #logmsg ol { padding: 0 0 0 1em; margin: 0; list-style-position: outside; }\n),
- qq(#logmsg ul { margin: 1em 0 0 0; }\n),
- qq(#logmsg ol { margin: 1em; }\n),
- qq(#logmsg li p { margin: .5em 0 0 0; }\n),
+ qq(#logmsg { background: #ffc; border: 1px #fc0 solid; padding: 6px 6px 0 6px; }\n),
+ qq(#logmsg p, #logmsg ul, #logmsg ol, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }\n),
+ qq(#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside;}\n),
qq(#logmsg code, #logmsg tt { background: #ccc; padding: 3px; }\n),
- qq(#logmsg pre, #logmsg code { background: #ddd; }\n),
- qq(#logmsg blockquote { margin: 0; border: 1px solid #fc0; border-left-width: 10px; padding: 0 1em; background: white;}\n),
+ qq(#logmsg pre { background: #ddd; padding: 1em; }\n),
+ qq(#logmsg blockquote { border: 1px solid #fc0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}\n),
q(#header, #footer { color: #fff; background: #636; ),
qq(border: 1px #300 solid; padding: 6px; }\n),
qq(#patch { width: 100%; }\n),