Changeset 1b5eb968d2c4 for README


Ignore:
Timestamp:
10/29/09 15:27:35 (3 years ago)
Author:
Mahlon E. Smith <mahlon@…>
Branch:
default
Message:
  • Use a 'user block' character instead of a 'body block' for the settings line,

as suggested by David J. Patrick <djp@…>.

  • Ignore all user blocks (wrapped or otherwise.)
  • Display body (not wrapped) text as 'pre' in css.

diff --git a/Apache/OTL.pm b/Apache/OTL.pm
--- a/Apache/OTL.pm
+++ b/Apache/OTL.pm
@@ -1,7 +1,7 @@

#
# VimOutliner? (OTL) XHTML pretty printer for mod_perl2/apache2.
#

-# Copyright (c) 2006, Mahlon E. Smith <mahlon@…>
+# Copyright (c) 2006-2009, Mahlon E. Smith <mahlon@…>

# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:

@@ -40,7 +40,7 @@

sub handler
{

  • my $VERSION = '0.5';

+ my $VERSION = '0.6';

my $ID = '$Id$';
my $r = shift;
my $t0 = Time::HiRes::gettimeofday;

@@ -70,7 +70,10 @@

percent => qr/(\[.\]) (\d+)%/,
todo => qr/(\[_\]) /,
done => qr/(\[X\]) /,

  • comment => qr/(?:\t+)?:(.+)/,

+ user => qr/(?:\t+)?\<(.+)/,
+ user_wrap => qr/(?:\t+)?\>(.+)/,
+ body_wrap => qr/
(?:\t+)?:(.+)/,
+ body => qr/(?:\t+)?;(.+)/,

time => qr/(\d{2}:\d{2}:\d{2})/,
date => qr/(\d{2,4}-\d{2}-\d{2})/,
subitem => qr/\t(?!\t)/,

@@ -104,8 +107,8 @@

# get optional settings and otl title
{

my $settings = shift @blocks;

  • if ($settings =~ $re{comment}) {
  • %opt = map { split /=/ } split /\s?:/, $settings;

+ if ($settings =~ $re{user}) {
+ %opt = map { split /=/ } split /\s?:/, $1;

}

# if the first group wasn't a comment,

@@ -116,6 +119,10 @@

}

}

+ # Now that we have tried to detect settings,
+ # remove any level 0 blocks that are user data.
+ @blocks = grep { $_ !~ /[\<\>]/ } @blocks;
+

# GET args override settings
$opt{$_} = $get->{$_} foreach keys %$get;

@@ -133,7 +140,7 @@

<!--

generated by otl_handler $VERSION
Mahlon E. Smith <mahlon\@martini.nu>

+ http://projects.martini.nu/apache-otl/

Get VimOutliner? at:  http://www.vimoutliner.org/

-->

@@ -195,13 +202,18 @@

foreach my $block ( sort { sorter(\%opt, \%re) } @blocks ) {

# separate outline items

  • my @lines = grep { $_ !~ /$re{'hideline'}/ } split /\n/, $block;

+ my @lines;
+ foreach my $line ( split /\n/, $block ) {

+ push @lines, $line unless $line =~ $re{hideline} + $line =~ $re{user}
$line =~ $re{user_wrap};

+ }
+

my $data = [];

# build structure and get item counts
my ( $subs, $comments, $subsubs ) = ( 0, 0, 0 );
foreach ( @lines ) {

  • if (/$re{comment}/) {

+ if (/$re{body_wrap}/) {

$comments++;

}
elsif (/$re{subitem}/) {

@@ -245,9 +257,10 @@

}

my $li_class = '>';

  • $li_class = ' class="todo">' if $line =~ s#$re{todo}##;
  • $li_class = ' class="done">' if $line =~ s#$re{done}##;
  • $li_class = ' class="comment">' if $line =~ s#$re{comment}#$1#;

+ $li_class = ' class="todo">' if $line =~ s#$re{todo}##;
+ $li_class = ' class="done">' if $line =~ s#$re{done}##;
+ $li_class = ' class="comment_pre">' if $line =~ s#$re{body}#$1#;
+ $li_class = ' class="comment">' if $line =~ s#$re{body_wrap}#$1#;

if ( $next_level == $level
$next_level == 0 ) {

$r->print( "$in<li" . $li_class . "$line</li>\n" );

diff --git a/README b/README
--- a/README
+++ b/README
@@ -45,8 +45,9 @@

---------------------------------------------------------------------

Settings for the otl_handler are stored on the first line of the otl

-files themselves, prefixed by a colon. See the sample.otl for an
-example settings line. All settings are entirely optional.
+files themselves, prefixed by the 'user no wrap' character, '<'. See
+the sample.otl for an example settings line. All settings are entirely
+optional.

title

Type: string

diff --git a/sample.otl b/sample.otl
--- a/sample.otl
+++ b/sample.otl
@@ -1,4 +1,4 @@
-:title=Sample OTL list :counts=1 :timer=1 :style=styles/theme1.css :legend=1 :last_mod=1
+<:title=Sample OTL list :counts=1 :timer=1 :style=styles/theme1.css :legend=1 :last_mod=1

: Theme examples:
: <a href="sample.otl">basic</a> <a href="sample.otl?counts=0&amp;style=styles/theme2.css&amp;legend=0&amp;js=/javascript/jquery.js,/javascript/theme2.js">advanced</a> <a href="sample.otl?counts=0&amp;style=styles/theme3.css&amp;legend=0&amp;timer=0&amp;js=/javascript/jquery.js,/javascript/theme3.js&amp;sort=1">advanced2</a>

diff --git a/styles/theme1.css b/styles/theme1.css
--- a/styles/theme1.css
+++ b/styles/theme1.css
@@ -37,6 +37,13 @@

font-family: sans;

}

+.comment_pre
+{
+ font-style: normal;
+ font-family: courier;
+ white-space: pre;
+}
+

.counts
{

margin-left: 10px;

diff --git a/styles/theme2.css b/styles/theme2.css
--- a/styles/theme2.css
+++ b/styles/theme2.css
@@ -131,6 +131,13 @@

border-right: 1px solid #666;

}

+.comment_pre
+{
+ font-style: normal;
+ font-family: courier;
+ white-space: pre;
+}
+

.comment:hover
{

border-top: 1px solid #aaa;

diff --git a/styles/theme3.css b/styles/theme3.css
--- a/styles/theme3.css
+++ b/styles/theme3.css
@@ -88,6 +88,13 @@

margin-bottom: 3px;

}

+#content .comment_pre
+{
+ font-style: normal;
+ font-family: courier;
+ white-space: pre;
+}
+

#content
{

position: absolute;

File:
1 edited

Legend:

Unmodified
Added
Removed
  • README

    r1 r3  
    4646 
    4747Settings for the otl_handler are stored on the first line of the otl 
    48 files themselves, prefixed by a colon.  See the sample.otl for an 
    49 example settings line.  All settings are entirely optional. 
     48files themselves, prefixed by the 'user no wrap' character, '<'. See 
     49the sample.otl for an example settings line.  All settings are entirely 
     50optional. 
    5051 
    5152title 
Note: See TracChangeset for help on using the changeset viewer.