init
This commit is contained in:
8
bml/test/Pblocks/scheme.look
Executable file
8
bml/test/Pblocks/scheme.look
Executable file
@@ -0,0 +1,8 @@
|
||||
oneline=>{P}Arg one: %%DATA1%%; Arg two: %%DATA2%%
|
||||
|
||||
multiline<={P}
|
||||
Arg one: %%DATA1%%
|
||||
Arg two: %%DATA2%%
|
||||
<=multiline
|
||||
|
||||
|
||||
9
bml/test/_config.bml
Executable file
9
bml/test/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
52
bml/test/bml-profile.pl
Executable file
52
bml/test/bml-profile.pl
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
|
||||
use strict;
|
||||
use lib "$ENV{'LJHOME'}/cgi-bin";
|
||||
use Apache;
|
||||
use Apache::FakeRequest ();
|
||||
use Apache::BML;
|
||||
use Benchmark;
|
||||
|
||||
my $benchmark = shift; # times to run new code
|
||||
my $bold = shift; # times to run old code
|
||||
$bold = $benchmark unless defined $bold;
|
||||
|
||||
my $r = Apache::FakeRequest->new(
|
||||
'filename' => "$ENV{LJHOME}/fake_root/bml-test.bml",
|
||||
# 'filename' => "$ENV{LJHOME}/htdocs/foo.bml",
|
||||
'document_root' => "$ENV{LJHOME}/fake_root",
|
||||
'method' => "GET",
|
||||
'args' => "",
|
||||
'content' => "",
|
||||
'uri' => '/bml-test.bml',
|
||||
# 'uri' => '/foo.bml',
|
||||
'header_only' => $benchmark ? 1 : 0,
|
||||
);
|
||||
|
||||
unless ($benchmark) {
|
||||
# *Apache::BML::bml_decode = \&Apache::BML::bml_decode_OLD;
|
||||
# *Apache::BML::load_elements = \&Apache::BML::load_elements_OLD;
|
||||
my $stat = Apache::BML::handler($r);
|
||||
die "bad init" unless $stat == 0;
|
||||
exit 0;
|
||||
}
|
||||
|
||||
print "New code:\n";
|
||||
timethis($benchmark, sub {
|
||||
my $stat = Apache::BML::handler($r);
|
||||
});
|
||||
|
||||
|
||||
if ($bold) {
|
||||
print "Old code:\n";
|
||||
*Apache::BML::bml_decode = \&Apache::BML::bml_decode_OLD;
|
||||
*Apache::BML::load_elements = \&Apache::BML::load_elements_OLD;
|
||||
timethis($bold, sub {
|
||||
my $stat = Apache::BML::handler($r);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
9
bml/test/brads/_config.bml
Executable file
9
bml/test/brads/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
9
bml/test/brads/scheme.look
Executable file
9
bml/test/brads/scheme.look
Executable file
@@ -0,0 +1,9 @@
|
||||
page<=
|
||||
{F}<html>
|
||||
<head><title>%%title%%</title></head>
|
||||
<body>
|
||||
%%body%%
|
||||
</body>
|
||||
</html>
|
||||
<=page
|
||||
|
||||
16
bml/test/brads/test1.bml
Executable file
16
bml/test/brads/test1.bml
Executable file
@@ -0,0 +1,16 @@
|
||||
<?_info
|
||||
localblocks<=
|
||||
|
||||
foo=>[foo]%%DATA%%[/foo]
|
||||
|
||||
<=localblocks
|
||||
_info?><?page
|
||||
title=>Test1
|
||||
body<=
|
||||
|
||||
Test of local block foo: <?foo?>
|
||||
|
||||
Another test of local block foo: <?foo with data this time foo?>
|
||||
|
||||
<=body
|
||||
page?>
|
||||
12
bml/test/brads/test1.correct
Executable file
12
bml/test/brads/test1.correct
Executable file
@@ -0,0 +1,12 @@
|
||||
<html>
|
||||
<head><title>Test1</title></head>
|
||||
<body>
|
||||
|
||||
Test of local block foo: [foo][/foo]
|
||||
|
||||
Another test of local block foo: [foo]with data this time[/foo]
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
9
bml/test/codeblocks/_config.bml
Executable file
9
bml/test/codeblocks/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
6
bml/test/codeblocks/carry-variables.bml
Executable file
6
bml/test/codeblocks/carry-variables.bml
Executable file
@@ -0,0 +1,6 @@
|
||||
<?_code $content = "This should show up twice"; _code?>
|
||||
<?_code $content _code?>
|
||||
|
||||
<?_code my $other = "This should only show up once."; _code?>
|
||||
<?_code $other _code?>
|
||||
|
||||
6
bml/test/codeblocks/carry-variables.correct
Executable file
6
bml/test/codeblocks/carry-variables.correct
Executable file
@@ -0,0 +1,6 @@
|
||||
This should show up twice
|
||||
This should show up twice
|
||||
|
||||
This should only show up once.
|
||||
|
||||
|
||||
15
bml/test/codeblocks/complex1.bml
Executable file
15
bml/test/codeblocks/complex1.bml
Executable file
@@ -0,0 +1,15 @@
|
||||
<?_code
|
||||
|
||||
sub some_function { return "This is from the first codeblock"; }
|
||||
$package = __PACKAGE__;
|
||||
|
||||
return "Returning from the first codeblock.";
|
||||
|
||||
_code?>
|
||||
|
||||
<?_code
|
||||
|
||||
$package->some_function();
|
||||
|
||||
_code?>
|
||||
|
||||
4
bml/test/codeblocks/complex1.correct
Executable file
4
bml/test/codeblocks/complex1.correct
Executable file
@@ -0,0 +1,4 @@
|
||||
Returning from the first codeblock.
|
||||
|
||||
This is from the first codeblock
|
||||
|
||||
28
bml/test/codeblocks/complex2.bml
Executable file
28
bml/test/codeblocks/complex2.bml
Executable file
@@ -0,0 +1,28 @@
|
||||
<?_code
|
||||
package Foo;
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
||||
my ( $this, $that ) = @_;
|
||||
bless {
|
||||
this => $this || "default this",
|
||||
that => $that || "default that",
|
||||
}, $class;
|
||||
}
|
||||
|
||||
sub this { my $self = shift; $self->{this} = shift if @_; $self->{this} }
|
||||
sub that { my $self = shift; $self->{that} = shift if @_; $self->{that} }
|
||||
|
||||
sub msg {
|
||||
my $self = shift;
|
||||
return "[This: ". $self->this . ", That: ". $self->that . "]";
|
||||
}
|
||||
_code?>
|
||||
|
||||
|
||||
<?_code
|
||||
my $f = new Foo "pony", "not yours";
|
||||
$f->msg;
|
||||
_code?>
|
||||
|
||||
|
||||
6
bml/test/codeblocks/complex2.correct
Executable file
6
bml/test/codeblocks/complex2.correct
Executable file
@@ -0,0 +1,6 @@
|
||||
|
||||
|
||||
|
||||
[This: pony, That: not yours]
|
||||
|
||||
|
||||
9
bml/test/codeblocks/re-expand.bml
Executable file
9
bml/test/codeblocks/re-expand.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
Return a BML construct:
|
||||
<?_code return "<?tag Foo tag?>" _code?>
|
||||
|
||||
Inside-out from above:
|
||||
<?exec return "[This is it.]" exec?>
|
||||
|
||||
Recurse:
|
||||
<?exec return '<?_code return "[Foo.]" _code?>' exec?>
|
||||
|
||||
9
bml/test/codeblocks/re-expand.correct
Executable file
9
bml/test/codeblocks/re-expand.correct
Executable file
@@ -0,0 +1,9 @@
|
||||
Return a BML construct:
|
||||
[Tag: Foo]
|
||||
|
||||
Inside-out from above:
|
||||
[This is it.]
|
||||
|
||||
Recurse:
|
||||
[Error: <b>_CODE block failed to execute by permission settings</b>]
|
||||
|
||||
4
bml/test/codeblocks/scheme.look
Executable file
4
bml/test/codeblocks/scheme.look
Executable file
@@ -0,0 +1,4 @@
|
||||
tag=>{D}[Tag: %%DATA%%]
|
||||
exec=>{D}<?_code %%DATA%% _code?>
|
||||
|
||||
|
||||
12
bml/test/codeblocks/simple.bml
Executable file
12
bml/test/codeblocks/simple.bml
Executable file
@@ -0,0 +1,12 @@
|
||||
Immediate value/Simple string:
|
||||
<?_code "Foo" _code?>
|
||||
|
||||
Immediate value/List:
|
||||
<?_code qw{this is some data in a list} _code?>
|
||||
|
||||
Returned string:
|
||||
<?_code return "Bar" _code?>
|
||||
|
||||
Returned List:
|
||||
<?_code return ("some", "stuff", "in", "a", "list") _code?>
|
||||
|
||||
12
bml/test/codeblocks/simple.correct
Executable file
12
bml/test/codeblocks/simple.correct
Executable file
@@ -0,0 +1,12 @@
|
||||
Immediate value/Simple string:
|
||||
Foo
|
||||
|
||||
Immediate value/List:
|
||||
list
|
||||
|
||||
Returned string:
|
||||
Bar
|
||||
|
||||
Returned List:
|
||||
list
|
||||
|
||||
9
bml/test/comments/_config.bml
Executable file
9
bml/test/comments/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
22
bml/test/comments/basic.bml
Executable file
22
bml/test/comments/basic.bml
Executable file
@@ -0,0 +1,22 @@
|
||||
Comment:
|
||||
<?_c This shouldn't show up _c?>
|
||||
|
||||
Comment full:
|
||||
<?_comment This shouldn't show up _comment?>
|
||||
|
||||
Embedded:
|
||||
<?_c This shouldn't show up: <?_code something _code?> _c?>
|
||||
|
||||
Embedded full:
|
||||
<?_comment This shouldn't show up: <?_code something _code?> _comment?>
|
||||
|
||||
Multiline:
|
||||
<?_c
|
||||
|
||||
This shouldn't show up: <?_code something _code?>
|
||||
|
||||
_c?>
|
||||
|
||||
|
||||
|
||||
|
||||
18
bml/test/comments/basic.correct
Executable file
18
bml/test/comments/basic.correct
Executable file
@@ -0,0 +1,18 @@
|
||||
Comment:
|
||||
|
||||
|
||||
Comment full:
|
||||
|
||||
|
||||
Embedded:
|
||||
|
||||
|
||||
Embedded full:
|
||||
|
||||
|
||||
Multiline:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
13
bml/test/comments/rendered.bml
Executable file
13
bml/test/comments/rendered.bml
Executable file
@@ -0,0 +1,13 @@
|
||||
Single line:
|
||||
<?user_comment This shouldn't be rendered user_comment?>
|
||||
|
||||
Multiline:
|
||||
<?user_comment
|
||||
|
||||
This is a comment, too, so it shouldn't be renderered.
|
||||
|
||||
user_comment?>
|
||||
|
||||
Indirect:
|
||||
<?indirect This shouldn't be rendered indirect?>
|
||||
|
||||
11
bml/test/comments/rendered.correct
Executable file
11
bml/test/comments/rendered.correct
Executable file
@@ -0,0 +1,11 @@
|
||||
Single line:
|
||||
|
||||
|
||||
Multiline:
|
||||
|
||||
|
||||
Indirect:
|
||||
(Indirect)
|
||||
|
||||
|
||||
|
||||
6
bml/test/comments/scheme.look
Executable file
6
bml/test/comments/scheme.look
Executable file
@@ -0,0 +1,6 @@
|
||||
user_comment=><?_c %%DATA%% _c?>
|
||||
indirect<=
|
||||
(Indirect)
|
||||
<?user_comment %%DATA%% user_comment?>
|
||||
<=indirect
|
||||
|
||||
9
bml/test/escape/_config.bml
Executable file
9
bml/test/escape/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
34
bml/test/escape/ea.bml
Executable file
34
bml/test/escape/ea.bml
Executable file
@@ -0,0 +1,34 @@
|
||||
Escape HTML tags:
|
||||
<?_ea In structural HTML, the <b> tag should be replaced with <strong> and the
|
||||
<i> tag with <em>. _ea?>
|
||||
|
||||
Escape a code example:
|
||||
<pre><code><?_ea
|
||||
# Overload Apache::FakeRequest's print to append output to a variable.
|
||||
{
|
||||
no warnings 'redefine';
|
||||
*Apache::FakeRequest::print = sub {
|
||||
my $r = shift;
|
||||
$Output .= join('', @_)
|
||||
};
|
||||
*Apache::FakeRequest::log_error = sub {
|
||||
my $r - shift;
|
||||
print STDERR @_, "\n"; $Errout .= join('', @_)
|
||||
};
|
||||
*Apache::FakeRequest::pnotes = sub {
|
||||
my ( $r, $key ) = @_;
|
||||
$Pnotes->{ $key } = shift if @_;
|
||||
$Pnotes->{ $key };
|
||||
};
|
||||
}
|
||||
_ea?></code></pre>
|
||||
|
||||
Escape old-style syntax:
|
||||
<?_ea Tags in BML used to be like (=this=), but that format has since been
|
||||
deprecated. _ea?>
|
||||
|
||||
Escape new-style syntax:
|
||||
<?_ea Now tags in BML look like: <?foo?>. _ea?>
|
||||
|
||||
|
||||
|
||||
32
bml/test/escape/ea.correct
Executable file
32
bml/test/escape/ea.correct
Executable file
@@ -0,0 +1,32 @@
|
||||
Escape HTML tags:
|
||||
In structural HTML, the <b> tag should be replaced with <strong> and the
|
||||
<i> tag with <em>.
|
||||
|
||||
Escape a code example:
|
||||
<pre><code># Overload Apache::FakeRequest's print to append output to a variable.
|
||||
{
|
||||
no warnings 'redefine';
|
||||
*Apache::FakeRequest::print = sub {
|
||||
my $r = shift;
|
||||
$Output .= join('', @_)
|
||||
};
|
||||
*Apache::FakeRequest::log_error = sub {
|
||||
my $r - shift;
|
||||
print STDERR @_, "\n"; $Errout .= join('', @_)
|
||||
};
|
||||
*Apache::FakeRequest::pnotes = sub {
|
||||
my ( $r, $key ) = @_;
|
||||
$Pnotes->{ $key } = shift if @_;
|
||||
$Pnotes->{ $key };
|
||||
};
|
||||
}</code></pre>
|
||||
|
||||
Escape old-style syntax:
|
||||
Tags in BML used to be like (= this =), but that format has since been
|
||||
deprecated.
|
||||
|
||||
Escape new-style syntax:
|
||||
Now tags in BML look like: <?foo?>.
|
||||
|
||||
|
||||
|
||||
7
bml/test/escape/eb.bml
Executable file
7
bml/test/escape/eb.bml
Executable file
@@ -0,0 +1,7 @@
|
||||
Escape old-style syntax:
|
||||
<?_eb Tags in BML used to be like (=this=), but that format has since been
|
||||
deprecated. _eb?>
|
||||
|
||||
Escape new-style syntax:
|
||||
<?_eb Now tags in BML look like: <?foo?>. _eb?>
|
||||
|
||||
7
bml/test/escape/eb.correct
Executable file
7
bml/test/escape/eb.correct
Executable file
@@ -0,0 +1,7 @@
|
||||
Escape old-style syntax:
|
||||
Tags in BML used to be like (= this =), but that format has since been
|
||||
deprecated.
|
||||
|
||||
Escape new-style syntax:
|
||||
Now tags in BML look like: <?foo?>.
|
||||
|
||||
26
bml/test/escape/eh.bml
Executable file
26
bml/test/escape/eh.bml
Executable file
@@ -0,0 +1,26 @@
|
||||
Escape HTML tags:
|
||||
<?_eh In structural HTML, the <b> tag should be replaced with <strong> and the
|
||||
<i> tag with <em>. _eh?>
|
||||
|
||||
Escape a code example:
|
||||
<pre><code><?_eh
|
||||
# Overload Apache::FakeRequest's print to append output to a variable.
|
||||
{
|
||||
no warnings 'redefine';
|
||||
*Apache::FakeRequest::print = sub {
|
||||
my $r = shift;
|
||||
$Output .= join('', @_)
|
||||
};
|
||||
*Apache::FakeRequest::log_error = sub {
|
||||
my $r - shift;
|
||||
print STDERR @_, "\n"; $Errout .= join('', @_)
|
||||
};
|
||||
*Apache::FakeRequest::pnotes = sub {
|
||||
my ( $r, $key ) = @_;
|
||||
$Pnotes->{ $key } = shift if @_;
|
||||
$Pnotes->{ $key };
|
||||
};
|
||||
}
|
||||
_eh?></code></pre>
|
||||
|
||||
|
||||
24
bml/test/escape/eh.correct
Executable file
24
bml/test/escape/eh.correct
Executable file
@@ -0,0 +1,24 @@
|
||||
Escape HTML tags:
|
||||
In structural HTML, the <b> tag should be replaced with <strong> and the
|
||||
<i> tag with <em>.
|
||||
|
||||
Escape a code example:
|
||||
<pre><code># Overload Apache::FakeRequest's print to append output to a variable.
|
||||
{
|
||||
no warnings 'redefine';
|
||||
*Apache::FakeRequest::print = sub {
|
||||
my $r = shift;
|
||||
$Output .= join('', @_)
|
||||
};
|
||||
*Apache::FakeRequest::log_error = sub {
|
||||
my $r - shift;
|
||||
print STDERR @_, "\n"; $Errout .= join('', @_)
|
||||
};
|
||||
*Apache::FakeRequest::pnotes = sub {
|
||||
my ( $r, $key ) = @_;
|
||||
$Pnotes->{ $key } = shift if @_;
|
||||
$Pnotes->{ $key };
|
||||
};
|
||||
}</code></pre>
|
||||
|
||||
|
||||
3
bml/test/escape/eu.bml
Executable file
3
bml/test/escape/eu.bml
Executable file
@@ -0,0 +1,3 @@
|
||||
Escaped URL characters:
|
||||
http://www.fruit-jar.com/booklist?title=<?_eu 21 Things to do with Excess !%$@#!@#@# Punctuation _eu?>
|
||||
|
||||
3
bml/test/escape/eu.correct
Executable file
3
bml/test/escape/eu.correct
Executable file
@@ -0,0 +1,3 @@
|
||||
Escaped URL characters:
|
||||
http://www.fruit-jar.com/booklist?title=21+Things+to+do+with+Excess+%21%25%24%40%23%21%40%23%40%23+Punctuation
|
||||
|
||||
1
bml/test/escape/scheme.look
Executable file
1
bml/test/escape/scheme.look
Executable file
@@ -0,0 +1 @@
|
||||
|
||||
9
bml/test/fake_root/_config.bml
Executable file
9
bml/test/fake_root/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot .
|
||||
DefaultScheme bluewhite
|
||||
DefaultLanguage en
|
||||
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
|
||||
251
bml/test/fake_root/bluewhite.look
Executable file
251
bml/test/fake_root/bluewhite.look
Executable file
@@ -0,0 +1,251 @@
|
||||
#
|
||||
# Welcome to GENERIC.LOOK for the WhiteBlue scheme
|
||||
#
|
||||
# by....
|
||||
# Brad Fitzpatrick
|
||||
# brad@danga.com
|
||||
#
|
||||
|
||||
######################### little stuff
|
||||
|
||||
_parent=>global.look
|
||||
|
||||
AL=>{P}<I><A HREF="%%DATA1%%">%%DATA2%%</A></I> <IMG SRC="/img/external_link.gif" WIDTH=16 HEIGHT=11 ALIGN=ABSMIDDLE>
|
||||
AWAYLINK=>{P}<I><A HREF="%%DATA1%%">%%DATA2%%</A></I> <IMG SRC="/img/external_link.gif" WIDTH=16 HEIGHT=11 ALIGN=ABSMIDDLE>
|
||||
|
||||
H1=>{D}<P><FONT FACE="Arial,Helvetica" COLOR="#CC0000"><B>%%DATA%%</B></FONT>
|
||||
H1/FOLLOW_CHOICES=>{D}<FONT FACE="Arial,Helvetica" COLOR="#CC0000"><B>%%DATA%%</B></FONT>
|
||||
HEAD1=>{D}<P><FONT FACE="Arial,Helvetica" COLOR="#CC0000"><B>%%DATA%%</B></FONT>
|
||||
|
||||
H2=>{D}<P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>%%DATA%%</B></FONT>
|
||||
HEAD2=>{D}<P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>%%DATA%%</B></FONT>
|
||||
|
||||
# Banner Header: search results banner, content desriptor, etc...
|
||||
BH=>{D}<P ALIGN=CENTER><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>%%DATA%%</B></FONT>
|
||||
|
||||
GRIN=><grin>
|
||||
HR=><P ALIGN="CENTER"><FONT COLOR=BLUE>*</FONT></P>
|
||||
|
||||
NEWLINE=>{D}<BR>
|
||||
P=>{D}<BR>%%DATA%%
|
||||
P/FOLLOW_P=>{D}<BR><IMG SRC="/img/dot.gif" WIDTH=1 VSPACE=6 HEIGHT=1><BR>%%DATA%%
|
||||
|
||||
STANDOUTO<=
|
||||
{D}<CENTER><FONT SIZE=1><BR></FONT><TABLE ALIGN=CENTER CELLPADDING=8 BORDER=1 BGCOLOR=#CCCCFF BORDERCOLORLIGHT=#DDDDFF
|
||||
BORDERCOLORDARK=#BBBBFF><TR><TD VALIGN=CENTER>
|
||||
%%DATA%%
|
||||
|
||||
</TD></TR></TABLE></CENTER>
|
||||
<=STANDOUTO
|
||||
|
||||
STANDOUT<=
|
||||
{D}<CENTER><FONT SIZE=1><BR></FONT>
|
||||
<table cellspacing=0 cellpadding=0 border=0 bgcolor="#ccccff">
|
||||
<tr>
|
||||
<td width=7 align=left valign=top>
|
||||
<img width=7 height=7 src="/img/corn_nw.gif" alt=""></td>
|
||||
<td height=7>
|
||||
<img height=7 src="/img/dot.gif" alt=""></td>
|
||||
<td width=7 valign=top align=right>
|
||||
<img height=7 src="/img/corn_ne.gif" alt=""></td>
|
||||
</tr><tr>
|
||||
<td width=7>
|
||||
<img width=7 height=1 src="/img/dot.gif" alt=""></td>
|
||||
<td valign=top>
|
||||
%%DATA%%
|
||||
|
||||
</td>
|
||||
<td width=7>
|
||||
<img width=7 height=1 src="/img/dot.gif" alt=""></td>
|
||||
</tr><tr>
|
||||
<td width=7 align=left valign=top>
|
||||
<img width=7 height=7 src="/img/corn_sw.gif" alt=""></td>
|
||||
<td height=7>
|
||||
<img height=7 src="/img/dot.gif" alt=""></td>
|
||||
<td width=7 valign=top align=right>
|
||||
<img height=7 src="/img/corn_se.gif" alt=""></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</CENTER>
|
||||
<=STANDOUT
|
||||
SOERROR=><div style='background-color:#f3f4fe; color:red; font-weight:bold; text-align:center'>%%data%%</div>
|
||||
|
||||
######################### choices stuff
|
||||
|
||||
CHOICE=>{P}<DT><A HREF="%%DATA2%%"><FONT FACE="Arial,Helvetica"><B>%%DATA1%%</B></FONT></A><DD><FONT SIZE="2">%%DATA3%%</FONT>
|
||||
|
||||
CHOICES<=
|
||||
{F}<P><DIV CLASS="choice"><TABLE WIDTH="100%" CELLPADDING="2" CELLSPACING="5">
|
||||
<TR>
|
||||
<TD VALIGN=TOP WIDTH="50%">
|
||||
<DL>
|
||||
%%ITEMS%%
|
||||
</DL>
|
||||
</TD>
|
||||
<TD VALIGN=TOP WIDTH="50%">
|
||||
<DL>
|
||||
%%ITEMSB%%
|
||||
</DL>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></DIV>
|
||||
<=CHOICES
|
||||
|
||||
##################################################################################
|
||||
################################### MAIN PAGE ####################################
|
||||
##################################################################################
|
||||
|
||||
PAGE<=
|
||||
{F}<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML><?load_page_info?>
|
||||
<HEAD>
|
||||
<TITLE>%%TITLE%%</TITLE>
|
||||
%%head%%
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR=#FFFFFF TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0" LINK=#0000C0 VLINK=#0000C0 %%bodyopts%%>
|
||||
|
||||
<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0 BACKGROUND="/img/bluewhite/bluefade.jpg">
|
||||
<TR WIDTH=100%>
|
||||
<TD VALIGN=BOTTOM ALIGN=LEFT HEIGHT=100>
|
||||
|
||||
<TABLE BACKGROUND="" HEIGHT=95 WIDTH=100% BORDER=0>
|
||||
<TR>
|
||||
<TD WIDTH=3> </TD>
|
||||
<TD HEIGHT=53 WIDTH=406 VALIGN=BOTTOM>
|
||||
<?_code
|
||||
$is_home = (BML::get_uri() =~ m!^/(index\.bml)?!);
|
||||
if (0 && $is_home)
|
||||
{
|
||||
return '<IMG SRC="/img/bluewhite/title.gif" WIDTH=600 HEIGHT=53><!-- ';
|
||||
}
|
||||
return "";
|
||||
_code?>
|
||||
|
||||
<FONT SIZE=6 COLOR="#000a3f" FACE="Arial, Helvetica"><B>%%TITLE%%</B></FONT>
|
||||
|
||||
<?_code
|
||||
if (0 && $is_home)
|
||||
{
|
||||
return ' -->';
|
||||
}
|
||||
return "";
|
||||
_code?>
|
||||
|
||||
</TD>
|
||||
<TD VALIGN=TOP ALIGN=RIGHT>
|
||||
<?_code
|
||||
unless ($is_home) {
|
||||
return "<A HREF=\"/\"><IMG SRC=\"/img/bluewhite/home.gif\" WIDTH=35 HEIGHT=36 BORDER=0></A> ";
|
||||
}
|
||||
return "";
|
||||
_code?>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
|
||||
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>
|
||||
<TR VALIGN=TOP>
|
||||
<TD WIDTH=133 BGCOLOR=#d7d9e8 NOWRAP><IMG SRC="/img/bluewhite/hline.gif" WIDTH=133 HEIGHT=25 ALT="">
|
||||
|
||||
<TABLE WIDTH=128 BORDER=0 CELLSPACING=0 CELLPADDING=0>
|
||||
<TR><TD>
|
||||
|
||||
<FONT FACE="Arial,Helvetica" SIZE=-1>
|
||||
<?_code
|
||||
|
||||
$ret = "";
|
||||
|
||||
sub dump_entry
|
||||
{
|
||||
my ($ret, $listref, $depth) = @_;
|
||||
|
||||
foreach my $mi (@$listref)
|
||||
{
|
||||
if ($depth==0) {
|
||||
$$ret .= "<P><IMG SRC=\"/img/bluewhite/bullet.gif\" WIDTH=10 HEIGHT=10 HSPACE=2 ALIGN=ABSMIDDLE>";
|
||||
} else {
|
||||
$$ret .= " " x ($depth*3+1);
|
||||
$$ret .= $mi->{'cont'} ? " " : "- ";
|
||||
}
|
||||
|
||||
my $name = $mi->{'name'};
|
||||
$name =~ s/ / /g;
|
||||
if (! defined $mi->{'uri'}) {
|
||||
if ($depth == 0) {
|
||||
$$ret .= "<B>$name</B><BR>";
|
||||
} else {
|
||||
$$ret .= "$name<BR>";
|
||||
}
|
||||
} elsif ($mi->{'match'} ?
|
||||
(BML::get_uri() =~ /$mi->{'match'}/) :
|
||||
(BML::get_uri() eq $mi->{'uri'})
|
||||
){
|
||||
$$ret .= "<B><SPAN style=\"background-color: #FFFFFF\"><FONT COLOR=#0000D0>$name</FONT></SPAN></B><BR>";
|
||||
} else {
|
||||
$$ret .= "<A HREF=\"$mi->{'uri'}\">$name</A><BR>";
|
||||
}
|
||||
|
||||
if ($mi->{'children'} &&
|
||||
($mi->{'recursematch'} ? BML::get_uri() =~ /$mi->{'recursematch'}/ : 1)) {
|
||||
&dump_entry($ret, $mi->{'children'}, $depth+1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
&dump_entry(\$ret, \@sidebar, 0);
|
||||
|
||||
return $ret;
|
||||
|
||||
_code?>
|
||||
</FONT>
|
||||
|
||||
</TD></TR></TABLE>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT BACKGROUND="/img/bluewhite/vline.gif" WIDTH=25 NOWRAP>
|
||||
<IMG SRC="/img/bluewhite/linetop.gif" WIDTH=25 HEIGHT=25 ALT=""><BR>
|
||||
<IMG SRC="/img/bluewhite/vline.gif" WIDTH=25 HEIGHT=800 ALT="">
|
||||
</TD>
|
||||
<TD>
|
||||
|
||||
<IMG SRC="/img/dot.gif" WIDTH=1 HEIGHT=3><BR>
|
||||
%%BODY%%
|
||||
|
||||
</TD>
|
||||
<TD WIDTH=20> </TD>
|
||||
</TR>
|
||||
|
||||
<!-- table closure row -->
|
||||
<TR>
|
||||
<TD WIDTH=133 NOWRAP><IMG SRC="/img/bluewhite/sidebarfade.gif" WIDTH=133 HEIGHT=25 ALT=""></TD>
|
||||
<TD WIDTH=25 NOWRAP><IMG SRC="/img/bluewhite/sidebarfade_line.gif" WIDTH=25 HEIGHT=25 ALT=""></TD></TD>
|
||||
<TD>
|
||||
|
||||
</TD>
|
||||
<TD WIDTH=20> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<!-- /table closure row -->
|
||||
|
||||
<TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT>
|
||||
<FONT FACE="Arial, Helvetica" SIZE="-2">
|
||||
<A HREF="/privacy.bml">Privacy Policy</A> -
|
||||
<A HREF="/coppa.bml">COPPA</A><BR>
|
||||
<A HREF="/disclaimer.bml">Legal Disclaimer</A> -
|
||||
<A HREF="/sitemap.bml">Site Map</A><BR>
|
||||
</FONT>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
<=PAGE
|
||||
|
||||
14
bml/test/fake_root/bml-simple.bml
Executable file
14
bml/test/fake_root/bml-simple.bml
Executable file
@@ -0,0 +1,14 @@
|
||||
<?_info
|
||||
localblocks<=
|
||||
h1=>{D}<h1 bml='1'>%%data%%</h1>
|
||||
<=localblocks
|
||||
_info?>
|
||||
Pre.
|
||||
|
||||
[<?h1 User Links <?h1 Inner h1?> <?h1?> h1?>]
|
||||
|
||||
Mid.
|
||||
|
||||
<?h1?>
|
||||
|
||||
End.
|
||||
10
bml/test/fake_root/bml-simple.correct
Executable file
10
bml/test/fake_root/bml-simple.correct
Executable file
@@ -0,0 +1,10 @@
|
||||
|
||||
Pre.
|
||||
|
||||
[<h1 bml='1'>User Links <h1 bml='1'>Inner</h1> <h1 bml='1'></h1></h1>]
|
||||
|
||||
Mid.
|
||||
|
||||
<h1 bml='1'></h1>
|
||||
|
||||
End.
|
||||
265
bml/test/fake_root/bml-test.bml
Executable file
265
bml/test/fake_root/bml-test.bml
Executable file
@@ -0,0 +1,265 @@
|
||||
<?_info
|
||||
localblocks<=
|
||||
pof=>{s}<a href='/paidaccounts/'><img src='<?imgprefix?>/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a>
|
||||
pef=>{s}<a href='/paidaccounts/'><img src='<?imgprefix?>/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a>
|
||||
h1=>{D}<h1 bml='1'>%%data%%</h1>
|
||||
page<=
|
||||
{F}<html>
|
||||
<head><title>%%title%%</title></head>
|
||||
<body>
|
||||
%%body%%
|
||||
</body></html>
|
||||
<=page
|
||||
<=localblocks
|
||||
_info?><?page
|
||||
head<=
|
||||
<style type="text/css">
|
||||
<!--
|
||||
li { font-weight: bold; }
|
||||
li.header { font-weight: normal; }
|
||||
-->
|
||||
</style>
|
||||
<=head
|
||||
title=>Site Map
|
||||
body<=
|
||||
<?p foo p?>
|
||||
<?p bar p?>
|
||||
<?p baz <?p baznest p?> endbaz p?>
|
||||
|
||||
<?pof?> = Paid Only Feature<br />
|
||||
<?pef?> = Enhanced for Paid Users
|
||||
<?h1 User Links <?h1 Inner h1?> <?h1?> h1?>
|
||||
<?h1?>
|
||||
<table style='margin-top: 10px' cellpadding="2" width="100%">
|
||||
<tr valign="top"><td>
|
||||
<ul>
|
||||
<li class="header"><?h2 Your Account: h2?>
|
||||
<ul>
|
||||
<li><a href="/create.bml">Create an Account</a></li>
|
||||
<li><a href="/login.bml">Login to your Account</a></li>
|
||||
<li><a href="/update.bml">Update your Journal</a></li>
|
||||
<li><a href="/editjournal.bml">Edit your Journal Entries</a></li>
|
||||
<li><a href="/lostinfo.bml">Lost Password?</a></li>
|
||||
<li><a href="/changepassword.bml">Change Account Password</a></li>
|
||||
<li><a href="/tools/emailmanage.bml">Email Management</a></li>
|
||||
<li><a href="/accountstatus.bml">Delete/Undelete your Journal</a></li>
|
||||
<li><a href="/manage/files.bml">File Manager</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Your Settings: h2?>
|
||||
<ul>
|
||||
<li><a href="/manage/">Manage all Settings</a></li>
|
||||
<li><a href="/editinfo.bml">Edit your Information</a> <?pef?></li>
|
||||
<li><a href="/customize/">Customize your Journal</a> <?pef?></li>
|
||||
<li><a href="/manage/links.bml">Create Link List</a> <?pef?></li>
|
||||
<li><a href="/manage/siteopts.bml">Browse Preferences</a></li>
|
||||
<li><a href="/editpics.bml">Edit and Upload User Picture Icons</a> <?pef?></li>
|
||||
<li><a href="/manage/emailpost.bml">Email Gateway Settings</a> <?pof?></li>
|
||||
<li><a href="/manage/phonepost.bml">Post by Phone Settings</a> <?pof?></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Tools: h2?>
|
||||
<ul>
|
||||
<li><a href="/portal/">Portal</a></li>
|
||||
<li><a href="/invite/">Invite a Friend</a> <?pef?></li>
|
||||
<li><a href="/misc/whereami.bml">Where am I?</a></li>
|
||||
<li><a href="/admin/console">Administrative Console</a> - <a href="/admin/console/reference.bml">Reference</a></li>
|
||||
<li><a href="/tools/textmessage.bml">Text Message Tool</a> <?pof?></li>
|
||||
<li><a href="/poll/create.bml">Poll Creator</a> <?pof?></li>
|
||||
<li><a href="/tools/memories.bml">Memorable Posts</a></li>
|
||||
<li><a href="/todo/">To-Do List</a> <?pef?></li>
|
||||
<li><a href="/export.bml">Export your Journal</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Friends: h2?>
|
||||
<ul>
|
||||
<li><a href="/friends/edit.bml">Edit Your Friends</a></li>
|
||||
<li><a href="/friends/editgroups.bml">Edit Your Friend Groups</a></li>
|
||||
<li><a href="/friends/filter.bml">Friends Filter</a></li>
|
||||
<li><a href="/birthdays.bml">Birthdays</a></li>
|
||||
<li><a href="/friends/popwithfriends.bml">Popular Users Amongst Your Friends</a> <?pof?></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Clients: h2?>
|
||||
<ul>
|
||||
<li><a href="/download/">Download A Client</a></li>
|
||||
<li><a href="/update.bml">Web Update Client</a> - <a href="/update.bml?mode=full">(Full Mode)</a></li>
|
||||
<li><a href="/phonepost/">Post by Phone <?pof?></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=clients">FAQ Category</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="header"><?h2 Communities: h2?>
|
||||
<ul>
|
||||
<li><a href="/community/">Community Center</a></li>
|
||||
<li><a href="/community/settings.bml?mode=create">Create a Community</a></li>
|
||||
<li><a href="/community/manage.bml">Manage Communities</a></li>
|
||||
<li><?ljcomm community_promo ljcomm?></li>
|
||||
<li><?ljcomm community_quest ljcomm?></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=community">FAQ Category</a></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=comm-manage">Community Management FAQ</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Legal / Abuse: h2?>
|
||||
<ul>
|
||||
<li><a href="/legal/tos.bml">Terms Of Service</a></li>
|
||||
<li><a href="/legal/privacy.bml">Privacy Policy</a></li>
|
||||
<li><a href="/legal/coppa.bml">COPPA Policy</a></li>
|
||||
<li><a href="/site/contract.bml">Our Social Contract</a></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=abuse">FAQ Category</a></li>
|
||||
<li><a href="/abuse/report.bml">Report Violations</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</td><td>
|
||||
<ul>
|
||||
<li class="header"><?h2 New to <?sitename?>? h2?>
|
||||
<ul>
|
||||
<li><a href="/site/about.bml">About <?sitename?></a></li>
|
||||
<li><a href="/doc/tour">Take the LiveJournal Tour</a></li>
|
||||
<li><a href="http://newbies.livejournal.com/">The Newbies Lounge</a></li>
|
||||
<li><a href="/create.bml">Create an Account</a></li>
|
||||
<li><a href="/support/">Have a Question?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Paid Accounts: h2?>
|
||||
<ul>
|
||||
<li><a href="/paidaccounts/">Paid Accounts</a></li>
|
||||
<li><a href="/site/accounts.bml">Features by Account Type</a></li>
|
||||
<li><a href="/paidaccounts/status.bml">Paid Account Status</a></li>
|
||||
<li><a href="/pay/history.bml">Payment History</a> - <a href="/pay/coupons.bml">Current Coupons</a></li>
|
||||
<li><a href="/rename/">Rename Your Account</a></li>
|
||||
<li><a href="/paidaccounts/friends.bml">Buy for Friends!</a></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=paidaccounts">FAQ Category</a></li>
|
||||
<li><a href="/phonepost/">Post by Phone</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Style System 1: h2?>
|
||||
<ul>
|
||||
<li><a href="/developer/styles.bml">Style Reference</a></li>
|
||||
<li><a href="/styles/create.bml">Create a Style</a> <?pof?></li>
|
||||
<li><a href="/styles/edit.bml">Edit Styles</a> <?pof?></li>
|
||||
<li><a href="/modify.bml">Modify your S1 Settings</a> <?pef?></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Style System 2 h2?>
|
||||
<ul>
|
||||
<li><a href="/doc/s2/">S2 Manual</a></li>
|
||||
<li><a href="/customize/">Customize your Journal</a></li>
|
||||
<li><a href="/customize/advanced/layerbrowse.bml">Layer Browser</a></li>
|
||||
<li><a href="/customize/advanced/">Advanced Customization</a> <?pof?></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Syndication: h2?>
|
||||
<ul>
|
||||
<li><a href="/syn/">Syndicated Accounts</a> <?pef?></li>
|
||||
<li><?ljcomm syn_promo ljcomm?></li>
|
||||
<li><a href="/syn/raw.bml">Recently Updated Feeds</a></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=syn">FAQ Category</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Technical Support: h2?>
|
||||
<ul>
|
||||
<li><a href="/support/faq.bml">FAQ</a> - <a href="/support/faqpop.bml">Popular FAQs</a></li>
|
||||
<li><a href="/support/submit.bml">Ask a Question</a></li>
|
||||
<li><a href="/support/help.bml">Help Someone Out</a></li>
|
||||
<li><a href="/support/highscores.bml">High Scores</a></li>
|
||||
<li><a href="/support/changenotify.bml">Change Support Notifications</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 International: h2?>
|
||||
<ul>
|
||||
<li><a href="/manage/siteopts.bml">Set Language</a></li>
|
||||
<li><a href="/utf8convert.bml">Conversion Tool</a></li>
|
||||
<li><a href="/translate/">Tool for Translation Volunteers</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Fun Stuff: h2?>
|
||||
<ul>
|
||||
<li><a href="./goat.bml">Frank the Goat!</a></li>
|
||||
<li><a href="/users/news/50307.html?mode=reply">LiveJournal … The Song!</a></li>
|
||||
<li><a href="/singles/">Singles</a> <?pof?></li>
|
||||
<li><a href="/meme.bml">Meme Tracker</a></li>
|
||||
<li><a href="/banners.bml">Banners</a></li>
|
||||
<li><?ljcomm lj_nifty ljcomm?></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Search/Find Users: h2?>
|
||||
<ul>
|
||||
<li><a href="/random.bml">Random User</a></li>
|
||||
<li><a href="/directory.bml">By Region</a> <?pof?></li>
|
||||
<li><a href="/interests.bml">By Interest</a> <?pef?></li>
|
||||
<li><a href="/directorysearch.bml">Directory Search</a> <?pof?></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<?h1 Other Links h1?>
|
||||
<table style='margin-top: 10px' cellpadding="2" width="100%">
|
||||
<tr valign="top">
|
||||
<td>
|
||||
<ul>
|
||||
<li class="header"><?h2 Development: h2?>
|
||||
<ul>
|
||||
<li><a href="/developer/">Developer Info</a></li>
|
||||
<li><a href="/site/contributors.bml">Contributors</a></li>
|
||||
<li><?ljcomm lj_dev ljcomm?></li>
|
||||
<li><a href="/users/changelog">Changelog</a></li>
|
||||
<li><a href="http://www.livejournal.org">LiveJournal.org</a></li>
|
||||
<li><a href="http://test.livejournal.org">Test Site</a> - <?ljcomm lj_test ljcomm?></li>
|
||||
<li><a href="http://cvs.livejournal.org">CVS</a></li>
|
||||
<li><a href="/doc/server/">LiveJournal Server Manual</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Service Status: h2?>
|
||||
<ul>
|
||||
<li><a href="/news.bml">News Page</a> - <?ljuser news ljuser?></li>
|
||||
<li><a href="http://status.livejournal.org">The Status of LiveJournal</a></li>
|
||||
<li><?ljcomm lj_maintenance ljcomm?></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Offsite Tools: h2?>
|
||||
<ul>
|
||||
<li><a href="http://www.petekrawczyk.com/lj_connect/">LiveJournal Connect</a></li>
|
||||
<li><a href="http://marnanel.org/joule">Friends List Analysis, Past & Present</a></li>
|
||||
<li><a href="http://livejournal.meetup.com/">Meetup!</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</td><td>
|
||||
<ul>
|
||||
<li class="header"><?h2 Feedback: h2?>
|
||||
<ul>
|
||||
<li><a href="/suggestions/">Suggestions</a></li>
|
||||
<li><a href="/support/">Technical Support</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="header"><?h2 Press: h2?>
|
||||
<ul>
|
||||
<li><a href="/press/">Press Area</a></li>
|
||||
<li><a href="/press/articles.bml">LiveJournal in the Press</a> - <?ljuser press ljuser?></li>
|
||||
<li><a href="/press/staff.bml">Senior Staff</a></li>
|
||||
<li><a href="/stats.bml">Statistics</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><?h2 Documentation: h2?>
|
||||
<ul>
|
||||
<li><a href="/support/faq.bml">FAQ</a></li>
|
||||
<li><a href="/doc/html/">Guides</a></li>
|
||||
<li><a href="/doc/server">LiveJournal Server Manual</a></li>
|
||||
<li><?ljcomm lj_sysdoc ljcomm?></li>
|
||||
<li><?ljcomm lj_userdoc ljcomm?></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</td></tr></table>
|
||||
|
||||
<?hr?>
|
||||
Thanks go to <?ljuser pinrad ljuser?> for the initial version of this page.
|
||||
|
||||
<=body
|
||||
page?>
|
||||
245
bml/test/fake_root/bml-test.correct
Executable file
245
bml/test/fake_root/bml-test.correct
Executable file
@@ -0,0 +1,245 @@
|
||||
<html>
|
||||
<head><title>Site Map</title></head>
|
||||
<body>
|
||||
<BR>foo
|
||||
<BR><IMG SRC="/img/dot.gif" WIDTH=1 VSPACE=6 HEIGHT=1><BR>bar
|
||||
<BR><IMG SRC="/img/dot.gif" WIDTH=1 VSPACE=6 HEIGHT=1><BR>baz <BR>baznest endbaz
|
||||
|
||||
<a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a> = Paid Only Feature<br />
|
||||
<a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a> = Enhanced for Paid Users
|
||||
<h1 bml='1'>User Links <h1 bml='1'>Inner</h1> <h1 bml='1'></h1></h1>
|
||||
<h1 bml='1'></h1>
|
||||
<table style='margin-top: 10px' cellpadding="2" width="100%">
|
||||
<tr valign="top"><td>
|
||||
<ul>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Your Account:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/create.bml">Create an Account</a></li>
|
||||
<li><a href="/login.bml">Login to your Account</a></li>
|
||||
<li><a href="/update.bml">Update your Journal</a></li>
|
||||
<li><a href="/editjournal.bml">Edit your Journal Entries</a></li>
|
||||
<li><a href="/lostinfo.bml">Lost Password?</a></li>
|
||||
<li><a href="/changepassword.bml">Change Account Password</a></li>
|
||||
<li><a href="/tools/emailmanage.bml">Email Management</a></li>
|
||||
<li><a href="/accountstatus.bml">Delete/Undelete your Journal</a></li>
|
||||
<li><a href="/manage/files.bml">File Manager</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Your Settings:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/manage/">Manage all Settings</a></li>
|
||||
<li><a href="/editinfo.bml">Edit your Information</a> <a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/customize/">Customize your Journal</a> <a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/manage/links.bml">Create Link List</a> <a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/manage/siteopts.bml">Browse Preferences</a></li>
|
||||
<li><a href="/editpics.bml">Edit and Upload User Picture Icons</a> <a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/manage/emailpost.bml">Email Gateway Settings</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/manage/phonepost.bml">Post by Phone Settings</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Tools:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/portal/">Portal</a></li>
|
||||
<li><a href="/invite/">Invite a Friend</a> <a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/misc/whereami.bml">Where am I?</a></li>
|
||||
<li><a href="/admin/console">Administrative Console</a> - <a href="/admin/console/reference.bml">Reference</a></li>
|
||||
<li><a href="/tools/textmessage.bml">Text Message Tool</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/poll/create.bml">Poll Creator</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/tools/memories.bml">Memorable Posts</a></li>
|
||||
<li><a href="/todo/">To-Do List</a> <a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/export.bml">Export your Journal</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Friends:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/friends/edit.bml">Edit Your Friends</a></li>
|
||||
<li><a href="/friends/editgroups.bml">Edit Your Friend Groups</a></li>
|
||||
<li><a href="/friends/filter.bml">Friends Filter</a></li>
|
||||
<li><a href="/birthdays.bml">Birthdays</a></li>
|
||||
<li><a href="/friends/popwithfriends.bml">Popular Users Amongst Your Friends</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Clients:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/download/">Download A Client</a></li>
|
||||
<li><a href="/update.bml">Web Update Client</a> - <a href="/update.bml?mode=full">(Full Mode)</a></li>
|
||||
<li><a href="/phonepost/">Post by Phone <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=clients">FAQ Category</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Communities:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/community/">Community Center</a></li>
|
||||
<li><a href="/community/settings.bml?mode=create">Create a Community</a></li>
|
||||
<li><a href="/community/manage.bml">Manage Communities</a></li>
|
||||
<li><span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=community_promo'><img src='/img/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/community_promo/'><b>community_promo</b></a></span></li>
|
||||
<li><span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=community_quest'><img src='/img/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/community_quest/'><b>community_quest</b></a></span></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=community">FAQ Category</a></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=comm-manage">Community Management FAQ</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Legal / Abuse:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/legal/tos.bml">Terms Of Service</a></li>
|
||||
<li><a href="/legal/privacy.bml">Privacy Policy</a></li>
|
||||
<li><a href="/legal/coppa.bml">COPPA Policy</a></li>
|
||||
<li><a href="/site/contract.bml">Our Social Contract</a></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=abuse">FAQ Category</a></li>
|
||||
<li><a href="/abuse/report.bml">Report Violations</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</td><td>
|
||||
<ul>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>New to Foo.com?</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/site/about.bml">About Foo.com</a></li>
|
||||
<li><a href="/doc/tour">Take the LiveJournal Tour</a></li>
|
||||
<li><a href="http://newbies.livejournal.com/">The Newbies Lounge</a></li>
|
||||
<li><a href="/create.bml">Create an Account</a></li>
|
||||
<li><a href="/support/">Have a Question?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Paid Accounts:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/paidaccounts/">Paid Accounts</a></li>
|
||||
<li><a href="/site/accounts.bml">Features by Account Type</a></li>
|
||||
<li><a href="/paidaccounts/status.bml">Paid Account Status</a></li>
|
||||
<li><a href="/pay/history.bml">Payment History</a> - <a href="/pay/coupons.bml">Current Coupons</a></li>
|
||||
<li><a href="/rename/">Rename Your Account</a></li>
|
||||
<li><a href="/paidaccounts/friends.bml">Buy for Friends!</a></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=paidaccounts">FAQ Category</a></li>
|
||||
<li><a href="/phonepost/">Post by Phone</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Style System 1:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/developer/styles.bml">Style Reference</a></li>
|
||||
<li><a href="/styles/create.bml">Create a Style</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/styles/edit.bml">Edit Styles</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/modify.bml">Modify your S1 Settings</a> <a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Style System 2</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/doc/s2/">S2 Manual</a></li>
|
||||
<li><a href="/customize/">Customize your Journal</a></li>
|
||||
<li><a href="/customize/advanced/layerbrowse.bml">Layer Browser</a></li>
|
||||
<li><a href="/customize/advanced/">Advanced Customization</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Syndication:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/syn/">Syndicated Accounts</a> <a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=syn_promo'><img src='/img/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/syn_promo/'><b>syn_promo</b></a></span></li>
|
||||
<li><a href="/syn/raw.bml">Recently Updated Feeds</a></li>
|
||||
<li><a href="/support/faqbrowse.bml?faqcat=syn">FAQ Category</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Technical Support:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/support/faq.bml">FAQ</a> - <a href="/support/faqpop.bml">Popular FAQs</a></li>
|
||||
<li><a href="/support/submit.bml">Ask a Question</a></li>
|
||||
<li><a href="/support/help.bml">Help Someone Out</a></li>
|
||||
<li><a href="/support/highscores.bml">High Scores</a></li>
|
||||
<li><a href="/support/changenotify.bml">Change Support Notifications</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>International:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/manage/siteopts.bml">Set Language</a></li>
|
||||
<li><a href="/utf8convert.bml">Conversion Tool</a></li>
|
||||
<li><a href="/translate/">Tool for Translation Volunteers</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Fun Stuff:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="./goat.bml">Frank the Goat!</a></li>
|
||||
<li><a href="/users/news/50307.html?mode=reply">LiveJournal … The Song!</a></li>
|
||||
<li><a href="/singles/">Singles</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/meme.bml">Meme Tracker</a></li>
|
||||
<li><a href="/banners.bml">Banners</a></li>
|
||||
<li><span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=lj_nifty'><img src='/img/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/lj_nifty/'><b>lj_nifty</b></a></span></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Search/Find Users:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/random.bml">Random User</a></li>
|
||||
<li><a href="/directory.bml">By Region</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/interests.bml">By Interest</a> <a href='/paidaccounts/'><img src='/img/talk/sm08_star.gif' width='25' height='19' alt='☺' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
<li><a href="/directorysearch.bml">Directory Search</a> <a href='/paidaccounts/'><img src='/img/talk/md10_thumbup.gif' width='25' height='19' alt='✔' style='vertical-align: middle; border: 0;' /></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1 bml='1'>Other Links</h1>
|
||||
<table style='margin-top: 10px' cellpadding="2" width="100%">
|
||||
<tr valign="top">
|
||||
<td>
|
||||
<ul>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Development:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/developer/">Developer Info</a></li>
|
||||
<li><a href="/site/contributors.bml">Contributors</a></li>
|
||||
<li><span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=lj_dev'><img src='/img/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/lj_dev/'><b>lj_dev</b></a></span></li>
|
||||
<li><a href="/users/changelog">Changelog</a></li>
|
||||
<li><a href="http://www.livejournal.org">LiveJournal.org</a></li>
|
||||
<li><a href="http://test.livejournal.org">Test Site</a> - <span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=lj_test'><img src='/img/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/lj_test/'><b>lj_test</b></a></span></li>
|
||||
<li><a href="http://cvs.livejournal.org">CVS</a></li>
|
||||
<li><a href="/doc/server/">LiveJournal Server Manual</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Service Status:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/news.bml">News Page</a> - <span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=news'><img src='/img/userinfo.gif' alt='userinfo' width='17' height='17' style='vertical-align:bottom;border:0;' /></a><a href='/users/news/'><b>news</b></a></span></li>
|
||||
<li><a href="http://status.livejournal.org">The Status of LiveJournal</a></li>
|
||||
<li><span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=lj_maintenance'><img src='/img/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/lj_maintenance/'><b>lj_maintenance</b></a></span></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Offsite Tools:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="http://www.petekrawczyk.com/lj_connect/">LiveJournal Connect</a></li>
|
||||
<li><a href="http://marnanel.org/joule">Friends List Analysis, Past & Present</a></li>
|
||||
<li><a href="http://livejournal.meetup.com/">Meetup!</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</td><td>
|
||||
<ul>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Feedback:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/suggestions/">Suggestions</a></li>
|
||||
<li><a href="/support/">Technical Support</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Press:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/press/">Press Area</a></li>
|
||||
<li><a href="/press/articles.bml">LiveJournal in the Press</a> - <span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=press'><img src='/img/userinfo.gif' alt='userinfo' width='17' height='17' style='vertical-align:bottom;border:0;' /></a><a href='/users/press/'><b>press</b></a></span></li>
|
||||
<li><a href="/press/staff.bml">Senior Staff</a></li>
|
||||
<li><a href="/stats.bml">Statistics</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="header"><P><FONT FACE="Arial,Helvetica" COLOR="#CC0000" SIZE=-1><B>Documentation:</B></FONT>
|
||||
<ul>
|
||||
<li><a href="/support/faq.bml">FAQ</a></li>
|
||||
<li><a href="/doc/html/">Guides</a></li>
|
||||
<li><a href="/doc/server">LiveJournal Server Manual</a></li>
|
||||
<li><span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=lj_sysdoc'><img src='/img/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/lj_sysdoc/'><b>lj_sysdoc</b></a></span></li>
|
||||
<li><span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=lj_userdoc'><img src='/img/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/lj_userdoc/'><b>lj_userdoc</b></a></span></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</td></tr></table>
|
||||
|
||||
<P ALIGN="CENTER"><FONT COLOR=BLUE>*</FONT></P>
|
||||
Thanks go to <span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=pinrad'><img src='/img/userinfo.gif' alt='userinfo' width='17' height='17' style='vertical-align:bottom;border:0;' /></a><a href='/users/pinrad/'><b>pinrad</b></a></span> for the initial version of this page.
|
||||
|
||||
|
||||
</body></html>
|
||||
|
||||
286
bml/test/fake_root/global.look
Executable file
286
bml/test/fake_root/global.look
Executable file
@@ -0,0 +1,286 @@
|
||||
IMGPREFIX=>{S}/img
|
||||
STATPREFIX=>{S}/stc
|
||||
SITENAME=>{S}Foo.com
|
||||
SITEROOT=>{S}http://www.lj.com/
|
||||
|
||||
SECURITYPRIVATE=>{Ss}<img src="<?imgprefix?>/icon_private.gif" width=16 height=16 align=absmiddle>
|
||||
SECURITYPROTECTED=>{Ss}<img src="<?imgprefix?>/icon_protected.gif" width=14 height=15 align=absmiddle>
|
||||
LJUSER=>{DRs}<span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=%%data%%'><img src='<?imgprefix?>/userinfo.gif' alt='userinfo' width='17' height='17' style='vertical-align:bottom;border:0;' /></a><a href='/users/%%data%%/'><b>%%data%%</b></a></span>
|
||||
LJCOMM=>{DRs}<span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=%%data%%'><img src='<?imgprefix?>/community.gif' alt='userinfo' width='16' height='16' style='vertical-align:bottom;border:0;' /></a><a href='/community/%%data%%/'><b>%%data%%</b></a></span>
|
||||
LJUSERF=>{DRs}<span class='ljuser' style='white-space:nowrap;'><a href='/userinfo.bml?user=%%data%%&mode=full'><img src='<?imgprefix?>/userinfo.gif' alt='userinfo' width='17' height='17' style='vertical-align:bottom;border:0;' /></a><a href='/users/%%data%%/'><b>%%data%%</b></a></span>
|
||||
HELP=>{DR}(<a href="%%data%%"><i>help</i></a>)
|
||||
INERR=>{DR}<font color="#ff0000"><b>%%data%%</b></font>
|
||||
SOERROR=>{DR}<div><b>%%data%%</b></div>
|
||||
|
||||
NEEDLOGIN<=
|
||||
<?h1 Login Required h1?>
|
||||
<?p
|
||||
To view this page you must first <a href="/login.bml?ret=1">go login</a>.
|
||||
p?>
|
||||
<=NEEDLOGIN
|
||||
|
||||
BADINPUT<=
|
||||
<?h1 Bad Unicode input h1?>
|
||||
<?p
|
||||
Your browser sent some text which is not recognised as valid text in the
|
||||
UTF-8 encoding, as it should be. This might happen if you forced your browser
|
||||
to view the previous page in some other encoding rather than UTF-8. It may
|
||||
also indicate a bug in the browser. If you cannot get around this error,
|
||||
contact us.
|
||||
p?>
|
||||
<=BADINPUT
|
||||
|
||||
REQUIREPOST<=
|
||||
{S}As a security precaution, the page you're viewing requires a POST request,
|
||||
not a GET. If you're trying to submit this form legitimately, please
|
||||
contact us.
|
||||
<=REQUIREPOST
|
||||
|
||||
LOAD_PAGE_INFO<=
|
||||
<?_code
|
||||
#line 3
|
||||
@sidebar = ({ 'name' => 'Home',
|
||||
'uri' => '/',
|
||||
'match' => "^/(index\\.bml)?(\\?.*)?\$",
|
||||
'children' => [
|
||||
{ 'name' => 'Create Journal',
|
||||
'uri' => '/create.bml', },
|
||||
{ 'name' => 'Update',
|
||||
'uri' => '/update.bml',
|
||||
'extra' => '/update.bml?mode=full',
|
||||
# 'children' => [
|
||||
# { 'name' => 'Full Update',
|
||||
# 'uri' => '/update.bml?mode=full', }
|
||||
# ],
|
||||
},
|
||||
{ 'name' => 'Download',
|
||||
'uri' => '/download/', },
|
||||
],
|
||||
},
|
||||
{ 'name' => 'LiveJournal',
|
||||
'children' => [
|
||||
{ 'name' => 'News',
|
||||
'match' => '^/news\\.bml\$',
|
||||
'uri' => '/news.bml', },
|
||||
{ 'name' => 'Paid Accounts',
|
||||
'uri' => '/paidaccounts/',
|
||||
'recursematch' => '^/paidaccounts/',
|
||||
'children' => [
|
||||
{ 'name' => 'Is this safe?',
|
||||
'uri' => '/paidaccounts/whysafe.bml', },
|
||||
{ 'name' => 'Progress',
|
||||
'uri' => '/paidaccounts/progress.bml', },
|
||||
],
|
||||
},
|
||||
# { 'name' => 'To-Do list',
|
||||
# 'uri' => '/todo.bml', },
|
||||
{ 'name' => 'Contributors',
|
||||
'uri' => '/contributors.bml', },
|
||||
],
|
||||
},
|
||||
{ 'name' => 'Customize',
|
||||
'children' => [
|
||||
{ 'name' => 'Modify Journal',
|
||||
'uri' => '/modify.bml', },
|
||||
{ 'name' => 'Create Style',
|
||||
'uri' => '/createstyle.bml', },
|
||||
{ 'name' => 'Edit Style',
|
||||
'uri' => '/editstyle.bml', },
|
||||
],
|
||||
},
|
||||
{ 'name' => 'Find Users',
|
||||
'children' => [
|
||||
{ 'name' => 'Random!',
|
||||
'uri' => '/random.bml', },
|
||||
{ 'name' => 'By Region',
|
||||
'uri' => '/directory.bml', },
|
||||
{ 'name' => 'By Interest',
|
||||
'uri' => '/interests.bml', },
|
||||
{ 'name' => 'Search',
|
||||
'uri' => '/directorysearch.bml', }
|
||||
], },
|
||||
{ 'name' => 'Edit ...',
|
||||
'children' => [
|
||||
{ 'name' => 'Personal Info &',
|
||||
'uri' => '/editinfo.bml', },
|
||||
{ 'name' => 'Settings', cont => 1,
|
||||
'uri' => '/editinfo.bml', },
|
||||
{ 'name' => 'Your Friends',
|
||||
'uri' => '/editfriends.bml', },
|
||||
{ 'name' => 'Old Entries',
|
||||
'uri' => '/editjournal.bml', },
|
||||
{ 'name' => 'Your Pictures',
|
||||
'uri' => '/editpics.bml', },
|
||||
{ 'name' => 'Your Password',
|
||||
'uri' => '/changepassword.bml', },
|
||||
],
|
||||
},
|
||||
{ 'name' => 'Developer Area',
|
||||
'uri' => '/developer/',
|
||||
'match' => "^/developer/\$",
|
||||
'recursematch' => "^/developer/",
|
||||
'children' => [
|
||||
{ 'name' => 'Style System',
|
||||
'uri' => '/developer/styles.bml',
|
||||
'children' => [
|
||||
{ 'name' => 'View Types',
|
||||
'uri' => '/developer/views.bml', },
|
||||
{ 'name' => 'Variable List',
|
||||
'uri' => '/developer/varlist.bml', },
|
||||
],
|
||||
},
|
||||
{ 'name' => 'Embedding',
|
||||
'uri' => '/developer/embedding.bml', },
|
||||
{ 'name' => 'Protocol',
|
||||
'uri' => '/developer/protocol.bml',
|
||||
'children' => [
|
||||
{ 'name' => 'Mode List',
|
||||
'uri' => '/developer/modelist.bml', }
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{ 'name' => 'Need Help?',
|
||||
'children' => [
|
||||
{ 'name' => 'Lost Password?',
|
||||
'uri' => '/lostinfo.bml', },
|
||||
{ 'name' => 'Freq. Asked',
|
||||
'uri' => '/support/faq.bml', },
|
||||
{ 'name' => 'Questions',
|
||||
'uri' => '/support/faq.bml', cont => 1, },
|
||||
{ 'name' => 'Support Area',
|
||||
'uri' => '/support/', },
|
||||
],
|
||||
},
|
||||
);
|
||||
|
||||
my $remote = LJ::get_remote();
|
||||
my $remuser = $remote ? $remote->{'user'} : "";
|
||||
my $uri = BML::get_uri();
|
||||
if ($remuser ne "" && $uri ne "/logout.bml")
|
||||
{
|
||||
my $subdomain = $remuser;
|
||||
$subdomain =~ s/_/-/g;
|
||||
unshift @sidebar, { 'name' => "Hello, $remuser!",
|
||||
'children' => [
|
||||
{ 'name' => 'Your Journal',
|
||||
'children' => [
|
||||
{ 'name' => 'Recent',
|
||||
'uri' => "/users/$remuser/", },
|
||||
{ 'name' => 'Calendar',
|
||||
'uri' => "/users/$remuser/calendar", },
|
||||
{ 'name' => 'Friends',
|
||||
'uri' => "/users/$remuser/friends",
|
||||
'extra' => "/friendsfilter.bml",
|
||||
},
|
||||
],
|
||||
},
|
||||
{ 'name' => 'User Info',
|
||||
'uri' => "/userinfo.bml?user=$remuser", },
|
||||
{ 'name' => 'Memories',
|
||||
'uri' => "/memories.bml?user=$remuser", },
|
||||
{ 'name' => 'Logout',
|
||||
'uri' => '/logout.bml', },
|
||||
]
|
||||
};
|
||||
} elsif ($uri ne "/login.bml") {
|
||||
unshift @sidebar, { 'name' => "Log In",
|
||||
'uri' => '/login.bml', }
|
||||
}
|
||||
|
||||
return "";
|
||||
_code?>
|
||||
<=LOAD_PAGE_INFO
|
||||
|
||||
AL=>{P}<i><a href="%%data1%%">%%data2%%</a></i> <img src="/img/external_link.gif" width='16' height='11' align='absmiddle' />
|
||||
AWAYLINK=>{P}<i><a href="%%data1%%">%%data2%%</a></i> <img src="/img/external_link.gif" width='16' height='11' align='absmiddle' />
|
||||
|
||||
H1=>{D}<h1>%%data%%</h1>
|
||||
H2=>{D}<h2>%%data%%</h2>
|
||||
|
||||
# Banner Header: search results banner, content desriptor, etc...
|
||||
BH=>{D}<p align='center'><font face="Arial,Helvetica" color="#CC0000" size='-1'><b>%%data%%</b></font>
|
||||
|
||||
GRIN=>{S}<grin>
|
||||
HR=>{S}<hr />
|
||||
|
||||
NEWLINE=>{S}<BR>
|
||||
P=>{D}<P>%%data%%</P>
|
||||
|
||||
STANDOUT<=
|
||||
{D}<blockquote>
|
||||
<hr />
|
||||
%%data%%
|
||||
<hr />
|
||||
</blockquote>
|
||||
<=STANDOUT
|
||||
|
||||
BADCONTENT<=
|
||||
<?h1 Error h1?>
|
||||
<?p
|
||||
One or more errors occured processing your request. Please go back, correct the
|
||||
necessary information, and submit your data again.
|
||||
p?>
|
||||
<=BADCONTENT
|
||||
|
||||
DE<=
|
||||
%%data%%
|
||||
<=DE
|
||||
|
||||
EMCOLOR=>{S}#c0c0c0
|
||||
HOTCOLOR=>{S}#ff0000
|
||||
EMCOLORLITE=>{S}#e2e2e2
|
||||
screenedbarcolor=>{S}#d0d0d0
|
||||
|
||||
CHOICE=>{P}<dt><a href="%%data2%%"><font size="+1"><tt><b>%%data1%%</b></tt></font></a><dd><font size="2">%%data3%%</font>
|
||||
|
||||
CHOICES<=
|
||||
{F}<table width="100%" cellpadding="2" cellspacing="5">
|
||||
<tr>
|
||||
<td valign='top' width="50%">
|
||||
<dl>
|
||||
%%items%%
|
||||
</dl>
|
||||
</td>
|
||||
<td valign='top' width="50%">
|
||||
<dl>
|
||||
%%itemsb%%
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<=CHOICES
|
||||
|
||||
PAGE<=
|
||||
{Fp}<html>
|
||||
<head><title>%%title%%</title>%%head%%</head>
|
||||
<body %%bodyopts%%>
|
||||
%%body%%
|
||||
</body>
|
||||
</html>
|
||||
<=PAGE
|
||||
|
||||
CHALRESPJS<=
|
||||
<script type="text/javascript" src="/js/md5.js"></script>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
function sendForm ()
|
||||
{
|
||||
if (! document.getElementById) return true;
|
||||
var loginform = document.getElementById('login');
|
||||
if (! loginform) return true;
|
||||
var pass_ele = document.getElementById('xc_password');
|
||||
var chal_ele = document.getElementById('login_chal');
|
||||
var resp_ele = document.getElementById('login_response');
|
||||
if (! pass_ele || ! chal_ele || ! resp_ele) return true;
|
||||
var pass = pass_ele.value;
|
||||
var chal = chal_ele.value;
|
||||
var res = MD5(chal + MD5(pass));
|
||||
resp_ele.value = res;
|
||||
pass_ele.value = ""; // dont send clear-text password!
|
||||
loginform.submit();
|
||||
return false; // cancel browser submit
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
<=CHALRESPJS
|
||||
9
bml/test/include/_config.bml
Executable file
9
bml/test/include/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
31
bml/test/include/loremipsum.txt
Executable file
31
bml/test/include/loremipsum.txt
Executable file
@@ -0,0 +1,31 @@
|
||||
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque convallis
|
||||
lacus vel dui. Nam nec augue in massa bibendum consectetuer. In porttitor
|
||||
nulla. Integer volutpat placerat justo. Etiam interdum pulvinar risus. Sed ut mi
|
||||
sit amet nulla euismod pulvinar. Phasellus sed turpis. Aliquam in leo in wisi
|
||||
auctor feugiat. Quisque consequat ante id orci. Sed condimentum pede id
|
||||
elit. Proin vitae nunc nec arcu ornare tincidunt. Ut mollis interdum
|
||||
augue. Integer id felis. Nulla facilisis faucibus sapien. Praesent vehicula
|
||||
luctus wisi. Sed volutpat augue nec lacus vulputate pretium. Suspendisse
|
||||
potenti. Sed blandit semper tellus.
|
||||
|
||||
Ut tortor. Class aptent taciti sociosqu ad litora torquent per conubia nostra,
|
||||
per inceptos hymenaeos. Phasellus id metus. Phasellus interdum lacinia
|
||||
leo. Pellentesque a massa. Aliquam non justo. Proin enim metus, nonummy sit
|
||||
amet, ornare eu, convallis vel, arcu. Pellentesque tempor rhoncus
|
||||
mauris. Praesent malesuada pulvinar turpis. Vestibulum ante ipsum primis in
|
||||
faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus nunc. Mauris
|
||||
imperdiet mi nec libero. Maecenas purus velit, fringilla id, mattis sed,
|
||||
pulvinar id, ligula. Vivamus vel erat vel diam cursus eleifend.
|
||||
|
||||
Donec massa est, mollis ac, placerat iaculis, vehicula id, dolor. Quisque
|
||||
malesuada diam vel pede. Suspendisse egestas. Sed imperdiet tellus non
|
||||
magna. Etiam luctus, wisi ut fringilla pharetra, tortor lorem suscipit libero,
|
||||
nec imperdiet ante dolor mollis wisi. Nulla feugiat, erat non viverra mattis,
|
||||
massa dui molestie orci, vitae bibendum dolor orci id ligula. Quisque
|
||||
lorem. Donec fringilla vehicula ante. Nam convallis, sapien vitae interdum
|
||||
mattis, nisl diam egestas enim, ac posuere nisl elit ut purus. Nullam
|
||||
nonummy. Nulla felis. Fusce cursus lorem quis enim. Suspendisse mattis luctus
|
||||
magna. Morbi ligula lectus, bibendum ac, tempus ac, scelerisque ac,
|
||||
pede. Praesent lobortis lectus a libero. Sed luctus, dui a porttitor congue,
|
||||
neque metus facilisis orci, sit amet congue lorem ligula ut magna. Vivamus non
|
||||
orci.
|
||||
6
bml/test/include/plain.bml
Executable file
6
bml/test/include/plain.bml
Executable file
@@ -0,0 +1,6 @@
|
||||
Some Plain Text:
|
||||
<?_include
|
||||
bml=>1
|
||||
code=>0
|
||||
file=>loremipsum.txt
|
||||
_include?>
|
||||
2
bml/test/include/plain.correct
Executable file
2
bml/test/include/plain.correct
Executable file
@@ -0,0 +1,2 @@
|
||||
Some Plain Text:
|
||||
[Error: <b>Could not open include file.</b>]
|
||||
1
bml/test/include/scheme.look
Executable file
1
bml/test/include/scheme.look
Executable file
@@ -0,0 +1 @@
|
||||
|
||||
9
bml/test/info/_config.bml
Executable file
9
bml/test/info/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
9
bml/test/info/localblocks.bml
Executable file
9
bml/test/info/localblocks.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
<?_info
|
||||
localblocks<=
|
||||
bracketed=>[ %%DATA%% ]
|
||||
braced=>{ %%DATA%% }
|
||||
grouped=>( %%DATA%% )
|
||||
<=localblocks
|
||||
_info?>
|
||||
|
||||
<?bracketed <?braced <?bracketed <?grouped fish grouped?> bracketed?> braced?> bracketed?>
|
||||
3
bml/test/info/localblocks.correct
Executable file
3
bml/test/info/localblocks.correct
Executable file
@@ -0,0 +1,3 @@
|
||||
|
||||
|
||||
[ { [ ( fish ) ] } ]
|
||||
9
bml/test/info/package.bml
Executable file
9
bml/test/info/package.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
<?_c
|
||||
|
||||
What the hell does package do?
|
||||
|
||||
_c?>
|
||||
<?_info
|
||||
package=>Foo
|
||||
_info?>
|
||||
|
||||
2
bml/test/info/package.correct
Executable file
2
bml/test/info/package.correct
Executable file
@@ -0,0 +1,2 @@
|
||||
|
||||
|
||||
0
bml/test/info/scheme.look
Executable file
0
bml/test/info/scheme.look
Executable file
82
bml/test/newtest.pl
Executable file
82
bml/test/newtest.pl
Executable file
@@ -0,0 +1,82 @@
|
||||
#!/usr/bin/perl -w
|
||||
package newtest;
|
||||
use strict;
|
||||
use warnings qw{all};
|
||||
|
||||
BEGIN {
|
||||
use Term::Prompter qw{};
|
||||
use FindBin qw{$Bin};
|
||||
use Cwd qw{getcwd};
|
||||
use IO::File qw{};
|
||||
use Fcntl qw{O_WRONLY O_CREAT O_EXCL};
|
||||
}
|
||||
|
||||
my (
|
||||
$prompter,
|
||||
$olddir,
|
||||
$testname,
|
||||
$firstfile,
|
||||
$ofh,
|
||||
);
|
||||
|
||||
$olddir = getcwd();
|
||||
chdir $Bin;
|
||||
|
||||
$prompter = new Term::Prompter;
|
||||
$prompter->promptColor( 'cyan' );
|
||||
|
||||
# Prompt for the information about this test
|
||||
$prompter->message( "This will create a new test subdirectory and create the \n",
|
||||
"necessary files and links.\n" );
|
||||
$testname = $prompter->prompt( "Name of the test subdirectory:" )
|
||||
or exit 1;
|
||||
$firstfile = $prompter->promptWithDefault( 'index.bml', "Name of the first BML test file" );
|
||||
$firstfile .= ".bml" unless $firstfile =~ m{\.bml$};
|
||||
|
||||
# Make the test directory, symlink the config, and add the new files to it
|
||||
$prompter->message( "Creating '$testname' directory..." );
|
||||
mkdir $testname or die "mkdir: $testname: $!";
|
||||
symlink "../_config.bml", "$testname/_config.bml"
|
||||
or die "symlink: _config.bml -> $testname/_config.bml: $!";
|
||||
|
||||
$prompter->message( "Creating BML file '$testname/$firstfile'..." );
|
||||
$ofh = new IO::File "$testname/$firstfile", O_WRONLY|O_CREAT|O_EXCL
|
||||
or die "open: $testname/$firstfile: $!";
|
||||
$ofh->print( <<"EOF" );
|
||||
|
||||
<!-- You should, of course, replace this with your own stuff... -->
|
||||
<?example This is an example call to a block. example?>
|
||||
|
||||
|
||||
EOF
|
||||
$ofh->close;
|
||||
|
||||
$prompter->message( "Creating lookfile '$testname/scheme.look'..." );
|
||||
$ofh = new IO::File "$testname/scheme.look", O_WRONLY|O_CREAT|O_EXCL
|
||||
or die "open: $testname/scheme.look: $!";
|
||||
$ofh->print( <<"EOF" );
|
||||
|
||||
example=>{D}<example>%%DATA%%</example>
|
||||
|
||||
EOF
|
||||
$ofh->close;
|
||||
|
||||
chdir( $olddir );
|
||||
|
||||
# Give instructions to the user
|
||||
( my $correct = $firstfile ) =~ s{\.bml$}{.correct};
|
||||
$prompter->message( <<"EOF" );
|
||||
|
||||
Now you need to do three things to finish setting up the test:
|
||||
|
||||
1. Edit $testname/scheme.look and add the blocks you're testing.
|
||||
2. Edit $testname/$firstfile and add your test content.
|
||||
3. When you're done, add '$testname' to the list of tests to run in the
|
||||
\@TestSubdirs var in t/20_render.t.
|
||||
|
||||
Then when you run the new test for the first time, it'll generate a comparison
|
||||
test output file in $testname/$correct which you should verify for
|
||||
correctness.
|
||||
|
||||
EOF
|
||||
|
||||
9
bml/test/recursion/_config.bml
Executable file
9
bml/test/recursion/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
11
bml/test/recursion/infinite.bml
Executable file
11
bml/test/recursion/infinite.bml
Executable file
@@ -0,0 +1,11 @@
|
||||
Simple infinite recursion:
|
||||
<?rtag Foo rtag?>
|
||||
|
||||
Complex infinite recursion:
|
||||
<?1tag
|
||||
From there to here,
|
||||
from here to there,
|
||||
funny things
|
||||
are everywhere.
|
||||
1tag?>
|
||||
|
||||
6
bml/test/recursion/infinite.correct
Executable file
6
bml/test/recursion/infinite.correct
Executable file
@@ -0,0 +1,6 @@
|
||||
Simple infinite recursion:
|
||||
<b>[Error: Too deep recursion: RTAG -> RTAG -> RTAG -> RTAG -> RTAG -> RTAG -> RTAG -> RTAG -> RTAG -> RTAG -> RTAG]</b>
|
||||
|
||||
Complex infinite recursion:
|
||||
<b>[Error: Too deep recursion: 1TAG -> 2TAG -> REDTAG -> BLUETAG -> 1TAG -> 2TAG -> REDTAG -> BLUETAG -> 1TAG -> 2TAG -> REDTAG]</b>
|
||||
|
||||
1
bml/test/recursion/nested.bml
Executable file
1
bml/test/recursion/nested.bml
Executable file
@@ -0,0 +1 @@
|
||||
<?outer Foo outer?>
|
||||
1
bml/test/recursion/nested.correct
Executable file
1
bml/test/recursion/nested.correct
Executable file
@@ -0,0 +1 @@
|
||||
[outer: [inner: Foo]]
|
||||
7
bml/test/recursion/scheme.look
Executable file
7
bml/test/recursion/scheme.look
Executable file
@@ -0,0 +1,7 @@
|
||||
rtag=>{D}<?rtag %%DATA%% rtag?>
|
||||
outer=>{D}[outer: <?inner %%DATA%% inner?>]
|
||||
inner=>{D}[inner: %%DATA%%]
|
||||
1tag=>{D}<?2tag %%DATA%% 2tag?>
|
||||
2tag=>{D}<?redtag %%DATA%% redtag?>
|
||||
redtag=>{D}<?bluetag %%DATA%% bluetag?>
|
||||
bluetag=>{D}<?1tag %%DATA%% 1tag?>
|
||||
9
bml/test/syntax-errors/_config.bml
Executable file
9
bml/test/syntax-errors/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
1
bml/test/syntax-errors/dangling-tagopen.bml
Executable file
1
bml/test/syntax-errors/dangling-tagopen.bml
Executable file
@@ -0,0 +1 @@
|
||||
<? Some stuff
|
||||
1
bml/test/syntax-errors/dangling-tagopen.correct
Executable file
1
bml/test/syntax-errors/dangling-tagopen.correct
Executable file
@@ -0,0 +1 @@
|
||||
<? Some stuff
|
||||
2
bml/test/syntax-errors/no-close.bml
Executable file
2
bml/test/syntax-errors/no-close.bml
Executable file
@@ -0,0 +1,2 @@
|
||||
Tag vs Tga:
|
||||
<?tag Foo tga?>
|
||||
2
bml/test/syntax-errors/no-close.correct
Executable file
2
bml/test/syntax-errors/no-close.correct
Executable file
@@ -0,0 +1,2 @@
|
||||
Tag vs Tga:
|
||||
[Error: <b>BML block 'TAG' has no close</b>]
|
||||
7
bml/test/syntax-errors/onlyopen.bml
Executable file
7
bml/test/syntax-errors/onlyopen.bml
Executable file
@@ -0,0 +1,7 @@
|
||||
<?tag
|
||||
|
||||
Some stuff
|
||||
|
||||
|
||||
?>
|
||||
|
||||
1
bml/test/syntax-errors/onlyopen.correct
Executable file
1
bml/test/syntax-errors/onlyopen.correct
Executable file
@@ -0,0 +1 @@
|
||||
[Error: <b>BML block 'TAG' has no close</b>]
|
||||
2
bml/test/syntax-errors/scheme.look
Executable file
2
bml/test/syntax-errors/scheme.look
Executable file
@@ -0,0 +1,2 @@
|
||||
tag=>{D}[Tag: %%DATA%%]
|
||||
|
||||
12
bml/test/syntax-errors/spaces.bml
Executable file
12
bml/test/syntax-errors/spaces.bml
Executable file
@@ -0,0 +1,12 @@
|
||||
Tag with spurious space:
|
||||
<?tag Foo t ag?>
|
||||
|
||||
Tag with leading padding:
|
||||
<? tag Foo tag?>
|
||||
|
||||
Tag with padding on both sides:
|
||||
<? tag Foo tag ?>
|
||||
|
||||
Tag with trailing padding:
|
||||
<?tag Foo tag ?>
|
||||
|
||||
11
bml/test/syntax-errors/spaces.correct
Executable file
11
bml/test/syntax-errors/spaces.correct
Executable file
@@ -0,0 +1,11 @@
|
||||
Tag with spurious space:
|
||||
[Tag: Foo t ag?>
|
||||
|
||||
Tag with leading padding:
|
||||
<? tag Foo]
|
||||
|
||||
Tag with padding on both sides:
|
||||
<? tag Foo tag ?>
|
||||
|
||||
Tag with trailing padding:
|
||||
[Error: <b>BML block 'TAG' has no close</b>]
|
||||
8
bml/test/tutorial-example1/project.bml
Executable file
8
bml/test/tutorial-example1/project.bml
Executable file
@@ -0,0 +1,8 @@
|
||||
<html>
|
||||
<head><title><?project project?></title>
|
||||
<body>
|
||||
<h1><?project project?></h1>
|
||||
|
||||
<?greeting greeting?>
|
||||
</body>
|
||||
</html>
|
||||
10
bml/test/tutorial-example1/project.correct
Executable file
10
bml/test/tutorial-example1/project.correct
Executable file
@@ -0,0 +1,10 @@
|
||||
<html>
|
||||
<head><title>The Alabaster Project</title>
|
||||
<body>
|
||||
<h1>The Alabaster Project</h1>
|
||||
|
||||
<p>Welcome to The Alabaster Project, a joint effort between the citizens of earth
|
||||
and Spumco, Inc.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
6
bml/test/tutorial-example1/scheme.look
Executable file
6
bml/test/tutorial-example1/scheme.look
Executable file
@@ -0,0 +1,6 @@
|
||||
project=>The Alabaster Project
|
||||
|
||||
greeting<=
|
||||
<p>Welcome to <?project project?>, a joint effort between the citizens of earth
|
||||
and Spumco, Inc.</p>
|
||||
<=greeting
|
||||
27
bml/test/tutorial-example2/index.bml
Executable file
27
bml/test/tutorial-example2/index.bml
Executable file
@@ -0,0 +1,27 @@
|
||||
<html>
|
||||
<head><title>Hansel and Grendel Go to Finishing School</title>
|
||||
<body>
|
||||
|
||||
<?heading Hansel and Grendel Go to Finishing School heading?>
|
||||
|
||||
<p>Our story begins at a point in the Universe not unlike where you are now
|
||||
sitting, drinking your government-sanctioned stimulant, dreaming of the
|
||||
day when you, too, will own your own personalized luxury home on 0.3 acres
|
||||
of land, with a stunning view of, well, the neighbor's personalized luxury
|
||||
home on 0.3 acres of land. Except this point in the Universe is much more
|
||||
exciting, fine-smelling, and generally a better place to be than
|
||||
yours.</p>
|
||||
|
||||
<?subheading No, Really, It Is Much Finer subheading?>
|
||||
|
||||
<p>So, anyway, at this particular point in the Universe, on a day not
|
||||
entirely unlike today, two entirely unrelated mythological pantheons
|
||||
collided, resulting in a fast friendship between a Little Boy Bound to be
|
||||
Eaten by the Architypal Crone and a Faceless Beast That Waits for the Hero
|
||||
to Dispatch It. Which, as you might have guessed, was not the intention of
|
||||
the various storytellers involved, but that's what happens when people
|
||||
stop reading all the really cool stories and start checking the Financial
|
||||
Section every 12 minutes. There's only so much space to go around in the
|
||||
collective consciousness, you know...</p>
|
||||
</body>
|
||||
</html>
|
||||
27
bml/test/tutorial-example2/index.correct
Executable file
27
bml/test/tutorial-example2/index.correct
Executable file
@@ -0,0 +1,27 @@
|
||||
<html>
|
||||
<head><title>Hansel and Grendel Go to Finishing School</title>
|
||||
<body>
|
||||
|
||||
<h1>Hansel and Grendel Go to Finishing School</h1>
|
||||
|
||||
<p>Our story begins at a point in the Universe not unlike where you are now
|
||||
sitting, drinking your government-sanctioned stimulant, dreaming of the
|
||||
day when you, too, will own your own personalized luxury home on 0.3 acres
|
||||
of land, with a stunning view of, well, the neighbor's personalized luxury
|
||||
home on 0.3 acres of land. Except this point in the Universe is much more
|
||||
exciting, fine-smelling, and generally a better place to be than
|
||||
yours.</p>
|
||||
|
||||
<h2>No, Really, It Is Much Finer</h2>
|
||||
|
||||
<p>So, anyway, at this particular point in the Universe, on a day not
|
||||
entirely unlike today, two entirely unrelated mythological pantheons
|
||||
collided, resulting in a fast friendship between a Little Boy Bound to be
|
||||
Eaten by the Architypal Crone and a Faceless Beast That Waits for the Hero
|
||||
to Dispatch It. Which, as you might have guessed, was not the intention of
|
||||
the various storytellers involved, but that's what happens when people
|
||||
stop reading all the really cool stories and start checking the Financial
|
||||
Section every 12 minutes. There's only so much space to go around in the
|
||||
collective consciousness, you know...</p>
|
||||
</body>
|
||||
</html>
|
||||
2
bml/test/tutorial-example2/scheme.look
Executable file
2
bml/test/tutorial-example2/scheme.look
Executable file
@@ -0,0 +1,2 @@
|
||||
heading=><h1>%%DATA%%</h1>
|
||||
subheading=><h2>%%DATA%%</h2>
|
||||
3
bml/test/tutorial-example3/index.bml
Executable file
3
bml/test/tutorial-example3/index.bml
Executable file
@@ -0,0 +1,3 @@
|
||||
<?heading Lava Lamps heading?>
|
||||
|
||||
<?subhead Oil-based Lava Lamps (and Chickens) subhead?>
|
||||
6
bml/test/tutorial-example3/index.correct
Executable file
6
bml/test/tutorial-example3/index.correct
Executable file
@@ -0,0 +1,6 @@
|
||||
<h1 class="heading"><img src="logo.png"/> Lava Lamps</h1>
|
||||
|
||||
<!-- This is a subheading, which naturally requires a chicken above it -->
|
||||
<img src="chicken.png" /><br />
|
||||
<h2 class="subheading">Oil-based Lava Lamps (and Chickens)</h2>
|
||||
|
||||
6
bml/test/tutorial-example3/scheme.look
Executable file
6
bml/test/tutorial-example3/scheme.look
Executable file
@@ -0,0 +1,6 @@
|
||||
heading=><h1 class="heading"><img src="logo.png"/> %%DATA%%</h1>
|
||||
subhead<=
|
||||
<!-- This is a subheading, which naturally requires a chicken above it -->
|
||||
<img src="chicken.png" /><br />
|
||||
<h2 class="subheading">%%DATA%%</h2>
|
||||
<=subhead
|
||||
9
bml/test/tutorial-example4/index.bml
Executable file
9
bml/test/tutorial-example4/index.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
<?section
|
||||
id=>listrules
|
||||
heading=>Rules of the Lists
|
||||
body<=
|
||||
There are many considerations when engaging in mounted combat at a tourney, not
|
||||
the least of which is obeying the convoluted and sometimes confusing localized
|
||||
<em>Rules of the Lists</em>.
|
||||
<=body
|
||||
section?>
|
||||
9
bml/test/tutorial-example4/index.correct
Executable file
9
bml/test/tutorial-example4/index.correct
Executable file
@@ -0,0 +1,9 @@
|
||||
|
||||
<div id="section-listrules" class="section">
|
||||
<h3>Rules of the Lists</h3>
|
||||
<p>There are many considerations when engaging in mounted combat at a tourney, not
|
||||
the least of which is obeying the convoluted and sometimes confusing localized
|
||||
<em>Rules of the Lists</em>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
11
bml/test/tutorial-example4/scheme.look
Executable file
11
bml/test/tutorial-example4/scheme.look
Executable file
@@ -0,0 +1,11 @@
|
||||
smallcaps=>{D}<span style="font-variant: small-caps">%%DATA%%</span>
|
||||
|
||||
topiclink=>{F}<a href="/topic.pl?name=%%name%%">%%linktext%%</a>
|
||||
|
||||
section<=
|
||||
{F}
|
||||
<div id="section-%%id%%" class="section">
|
||||
<h3>%%heading%%</h3>
|
||||
<p>%%body%%</p>
|
||||
</div>
|
||||
<=section
|
||||
9
bml/test/tutorial-example5/_config.bml
Executable file
9
bml/test/tutorial-example5/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
8
bml/test/tutorial-example5/readinglist.bml
Executable file
8
bml/test/tutorial-example5/readinglist.bml
Executable file
@@ -0,0 +1,8 @@
|
||||
<?linklist
|
||||
date=>2004/10/14
|
||||
items<=
|
||||
<?linkitem News of Brad|http://brad.livejournal.com/|Brad's daily adventure linkitem?>
|
||||
<?linkitem BoingBoing|http://boingboing.net/|A directory of wonderful things linkitem?>
|
||||
<?linkitem WPGtR|http://poignantguide.net/ruby/|Wow, this book comes with an onion! linkitem?>
|
||||
<=items
|
||||
linklist?>
|
||||
10
bml/test/tutorial-example5/readinglist.correct
Executable file
10
bml/test/tutorial-example5/readinglist.correct
Executable file
@@ -0,0 +1,10 @@
|
||||
|
||||
<h4>My Current Reading List</h4>
|
||||
<dl>
|
||||
<dt><a href="http://brad.livejournal.com/">News of Brad</a></dt> <dd>Brad's daily adventure</dd>
|
||||
<dt><a href="http://boingboing.net/">BoingBoing</a></dt> <dd>A directory of wonderful things</dd>
|
||||
<dt><a href="http://poignantguide.net/ruby/">WPGtR</a></dt> <dd>Wow, this book comes with an onion!</dd>
|
||||
|
||||
</dl>
|
||||
<p><small>Last updated: 2004/10/14</small></p>
|
||||
|
||||
11
bml/test/tutorial-example5/scheme.look
Executable file
11
bml/test/tutorial-example5/scheme.look
Executable file
@@ -0,0 +1,11 @@
|
||||
LINKITEM=>{P}<dt><a href="%%data2%%">%%data1%%</a></dt> <dd>%%data3%%</dd>
|
||||
|
||||
LINKLIST<=
|
||||
{F}
|
||||
<h4>My Current Reading List</h4>
|
||||
<dl>
|
||||
%%items%%
|
||||
</dl>
|
||||
<p><small>Last updated: %%date%%</small></p>
|
||||
<=LINKLIST
|
||||
|
||||
4
bml/test/tutorial-example6/index.bml
Executable file
4
bml/test/tutorial-example6/index.bml
Executable file
@@ -0,0 +1,4 @@
|
||||
|
||||
<h1>Welcome to <?companyname companyname?></h1>
|
||||
|
||||
|
||||
4
bml/test/tutorial-example6/index.correct
Executable file
4
bml/test/tutorial-example6/index.correct
Executable file
@@ -0,0 +1,4 @@
|
||||
|
||||
<h1>Welcome to Spumco, Inc.</h1>
|
||||
|
||||
|
||||
3
bml/test/tutorial-example6/scheme.look
Executable file
3
bml/test/tutorial-example6/scheme.look
Executable file
@@ -0,0 +1,3 @@
|
||||
|
||||
companyname=>{S}Spumco, Inc.
|
||||
|
||||
5
bml/test/tutorial-example7/index.bml
Executable file
5
bml/test/tutorial-example7/index.bml
Executable file
@@ -0,0 +1,5 @@
|
||||
|
||||
<!-- You should, of course, replace this with your own stuff... -->
|
||||
<?example This is an example call to a block. example?>
|
||||
|
||||
|
||||
5
bml/test/tutorial-example7/index.correct
Executable file
5
bml/test/tutorial-example7/index.correct
Executable file
@@ -0,0 +1,5 @@
|
||||
|
||||
<!-- You should, of course, replace this with your own stuff... -->
|
||||
<example>This is an example call to a block.</example>
|
||||
|
||||
|
||||
3
bml/test/tutorial-example7/scheme.look
Executable file
3
bml/test/tutorial-example7/scheme.look
Executable file
@@ -0,0 +1,3 @@
|
||||
|
||||
example=>{D}<example>%%DATA%%</example>
|
||||
|
||||
9
bml/test/tutorial1/_config.bml
Executable file
9
bml/test/tutorial1/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
21
bml/test/tutorial1/index.bml
Executable file
21
bml/test/tutorial1/index.bml
Executable file
@@ -0,0 +1,21 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>FooBar Enterprises - Page</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="header">FooBar Enterprises - Page</h1>
|
||||
<hr />
|
||||
<?header Headers - What good are they? header?>
|
||||
<p class="para" style="text-align: justify">
|
||||
This is just an introductory text. The normal way to include text like this
|
||||
is to write it in Latin, but since I don't know Latin, you'll have to settle
|
||||
with this little paragraph.
|
||||
</p>
|
||||
<?header Templates are for Wimps! header?>
|
||||
<p class="para">
|
||||
I'd rather have to edit all of my pages by hand when I decide to change the
|
||||
unified look of my site!
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
20
bml/test/tutorial1/index.correct
Executable file
20
bml/test/tutorial1/index.correct
Executable file
@@ -0,0 +1,20 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>FooBar Enterprises - Page</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="header">FooBar Enterprises - Page</h1>
|
||||
<hr />
|
||||
<div class="header"><strong>Headers - What good are they?</strong></div>
|
||||
<p class="para" style="text-align: justify">
|
||||
This is just an introductory text. The normal way to include text like this
|
||||
is to write it in Latin, but since I don't know Latin, you'll have to settle
|
||||
with this little paragraph.
|
||||
</p>
|
||||
<div class="header"><strong>Templates are for Wimps!</strong></div>
|
||||
<p class="para">
|
||||
I'd rather have to edit all of my pages by hand when I decide to change the
|
||||
unified look of my site!
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
2
bml/test/tutorial1/scheme.look
Executable file
2
bml/test/tutorial1/scheme.look
Executable file
@@ -0,0 +1,2 @@
|
||||
header=>{D}<div class="header"><strong>%%DATA%%</strong></div>
|
||||
|
||||
9
bml/test/tutorial2/_config.bml
Executable file
9
bml/test/tutorial2/_config.bml
Executable file
@@ -0,0 +1,9 @@
|
||||
LookRoot $testlookroot
|
||||
DefaultScheme scheme
|
||||
DefaultLanguage en
|
||||
|
||||
AllowOldSyntax 0
|
||||
AllowCode 1
|
||||
AllowTemplateCode 1
|
||||
|
||||
|
||||
18
bml/test/tutorial2/index.bml
Executable file
18
bml/test/tutorial2/index.bml
Executable file
@@ -0,0 +1,18 @@
|
||||
<?page
|
||||
title=>FooBar Enterprises - Page
|
||||
body<=
|
||||
<?h1 FooBar Enterprises - Page h1?>
|
||||
<hr />
|
||||
<?header Headers - What good are they? header?>
|
||||
<p class="para" style="text-align: justify">
|
||||
This is just an introductory text. The normal way to include text like this
|
||||
is to write it in Latin, but since I don't know Latin, you'll have to settle
|
||||
with this little paragraph.
|
||||
</p>
|
||||
<?header Templates are for Wimps! header?>
|
||||
<p class="para">
|
||||
I'd rather have to edit all of my pages by hand when I decide to change the
|
||||
unified look of my site!
|
||||
</p>
|
||||
<=body
|
||||
page?>
|
||||
21
bml/test/tutorial2/index.correct
Executable file
21
bml/test/tutorial2/index.correct
Executable file
@@ -0,0 +1,21 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>FooBar Enterprises - Page</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="header">FooBar Enterprises - Page</h1>
|
||||
<hr />
|
||||
<div class="header"><strong>Headers - What good are they?</strong></div>
|
||||
<p class="para" style="text-align: justify">
|
||||
This is just an introductory text. The normal way to include text like this
|
||||
is to write it in Latin, but since I don't know Latin, you'll have to settle
|
||||
with this little paragraph.
|
||||
</p>
|
||||
<div class="header"><strong>Templates are for Wimps!</strong></div>
|
||||
<p class="para">
|
||||
I'd rather have to edit all of my pages by hand when I decide to change the
|
||||
unified look of my site!
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
13
bml/test/tutorial2/scheme.look
Executable file
13
bml/test/tutorial2/scheme.look
Executable file
@@ -0,0 +1,13 @@
|
||||
page<=
|
||||
{F}<html>
|
||||
<head>
|
||||
<title>%%title%%</title>
|
||||
</head>
|
||||
<body>
|
||||
%%body%%
|
||||
</body>
|
||||
</html>
|
||||
<=page
|
||||
header=>{D}<div class="header"><strong>%%DATA%%</strong></div>
|
||||
h1=>{D}<h1 class="header">%%DATA%%</h1>
|
||||
|
||||
Reference in New Issue
Block a user