App-Mowyw

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

If you have both the Perl module Text::VimColor and Vim installed, you can use
the follwing construct to automagically generate syntax hilighted HTML markup:

<pre>[% syntax perl %]
#!/usr/bin/perl

sub blubb {
	print "This sub only prints this stupid message\n";
}
[% endsyntax %]pre>

If you don't have Text::VimColor installed, the characters '&', '<' and '>'
will still be automatically escaped.

The only argument to 'syntax' is the language that the code is in, if you use
a value that vim doesn't know it will try to guess the language.

The standard CSS classes are:
.synComment    { color: #0000FF }
.synConstant   { color: #FF00FF }
.synIdentifier { color: #008B8B }
.synStatement  { color: #A52A2A ; font-weight: bold }
.synPreProc    { color: #A020F0 }
.synType       { color: #2E8B57 ; font-weight: bold }
.synSpecial    { color: #6A5ACD }
.synUnderlined { color: #000000 ; text-decoration: underline }
.synError      { color: #FFFFFF ; background: #FF0000 none }
.synTodo       { color: #0000FF ; background: #FFFF00 none }

(taken from Text::VimColor)


VERBATIM OUTPUT

If your website includes string like [% or %] etc., you can use the
verbatim-construct to prevent it from parsing:

[% verbatim foobarbaz %]
Things here inbetween will be printed out exactly as they stand here, you can
safely write things like 
"in perl6 [...] returns array refs:
my $a = [2, [4, 5, [8, 9,10]]];"
note that the ']]]' will not cause any harm.
[% endverbatim foobarbaz %]

the name in the verbatim and in the endverbatim-package have to agree exactly
and my consist of alphabetic characters and numbers.

COMMENTS

You can exclude parts entirly from showing up in the output by putting them
inside a comment:
[% comment anything inside here will not show up in the output %]
In a comment everything but ']]]' is allowed.


OMITTING HEADER AND FOOTER

If you include a line like this:
[% option no-header %]
the header is _not_ prepended as usual.
You can achieve the following functionality for the footer with the line
[% option no-footer %]


SETTING AND READING VARIABLES

Suppose you want to add a different <title> to every page, but you want all
your HTML header to be in one specific place.
A way to achive this is with the setvar and readvar constructs. Place this in
your header file:
<html>
	<head><title>[% readvar title %]</title>/head>
	<body>
(of course you should use a doctype ;-)
And then in each source file you can use
[% setvar title This is the title of this stupid page %]
to set the title. If you forget to set a variable before using it  a warning
will be emitted.

Scoping:
Variables are scoped in the sense that when you enter a new scope (by using
include, menu, item or automatically by including the header and footer) the
variables from the higher level scope are still available, but if you modify
them in local scope they will still be unmodified in the outer scope.
Example:
	[% setvar foo bar %]
	[% include somefile %]
	[% redavar foo %] 	--- gives bar
In file somfile:
	[% readvar foo %] 	--- gives bar
	[% setvar foo baz %]	
	[% readvar foo %]	--- gives baz
Therefore you can change the header's and footer's output by defining
variables in the main source file, but not the other way round.


SYNTAX CHANGE
-------------
Version 0.0.3 and before used only double square brackets 
(like [[include foo]]), but I noticed that double closing square brackets 
are part of a typical CDATA declaration in xml files (and xhtml) like this:
<style type="text/css">
/*<![CDATA[*/
	CSS Declarations
/*]]>*/
</style>

Now tripple square brackets (like [[[ include foo]]] ) or, preferred, 
[% ... %] are used.


LICENSE:
	This README file is covered by the GPL (2 or later), however
	the code examples in this file are public domain, e.g. you may use it
	however you like.
	The program mowyw is published under the GPL, for details see the
	executable



( run in 2.960 seconds using v1.01-cache-2.11-cpan-0bb4e1dffa6 )