blox plugin Markup Guide
Welcome
To properly display this page, you must be using the blox plugin, version 0.99 or higher, with the configurable variables$markup_activeand$break_singlesset to1. If all is set well, the next sentence will be split across two lines and will show some styling.
This should be a separate line, and
these six words should be bold.
blox markup notation is mainly inspired by Brian Ingerson's Kwiki module (the "official" blosxom wiki). There is no grand philosophy behind the markup; it's simply meant to save you typing time while being easy to remember and not interfering with existing html tags.
About the Markup
Markup for most "inline" tags (styling, links, images) can begin before any word; markup that results in html "block" tags (heads, blockquotes, lists, rules), along with anchors and reference links, must begin at the start of a line. Any markup can be ignored ("escaped") by preceding with an exclamation mark (!). The notation consists of:
- H1 - H6 heads:
== head
or=== head === - Blockquotes:
{=blockquotes=} - Lists:
* unordered
01: and
02) ordered
+++ nested
* lists - Rules:
----(codes as:<hr>) - word styles:
*bold*and/italics/and_underline_and[=code] - Images: (path is from root; width,height is optional)
[img /images/top.gif 22,13]<--
; codes as:
<img src="/images/top.gif" width="22" height="13"> - Absolute links: (fully qualified URL)
- raw:
[http://example.com]<-- displays as: http://example.com - named:
[named link http://example.com]<-- displays as: named link
- raw:
- Relative links: (URL relative to web root)
- raw:
[//download.html]<-- displays as: /download.html - named:
[Downloads //download.html]<-- displays as: Downloads
- raw:
- Blog links: (URL relative to $blosxom::url)
- raw:
[:/dltext/blox.dl]<-- displays as: /dltext/blox.dl - named:
[blox dox :/dltext/blox.dl]<-- displays as: blox dox
- raw:
- Same-page anchors and links:
[#anchor]<-- codes as:<a name="anchor"></a>[Go to Bold ##bold]<-- displays as Go to Bold - Image links (substitute image markup for link "name")
[[img /images/link.gif]http://example.net]<-- displays as:
- Reference links:
With a reference[1] in the story[1 http://example.com]<-- displays as [1]: http://example.com) - Links and Images can include attributes:
[Example http://example.com target="_blank"]<-- displays as Example
[Contents ##contents title="Table of Contents"]<-- displays as Contents
[blog :/ class="yellow"]<-- displays as blog
[img /images/top.gif alt="Top" title="Top"]<-- displays as
About the Guide
Each description begins with a definition of the markup, perhaps a note or two, and then samples and examples of successful and failed usage. Examples of 'what to type' are presented in comments as code. (Excepting a couple of hand-coded tables and <PRE> blocks, this whole guide is produced by blox markup, making the entry file itself an excellent reference ;-)
To view this page without any style sheet, click here; to view the raw entry file, click here.
| ||||||||
Inline
Bold (<b> tag)
Enclose single-line words with "*". Escape by preceding with "!".
Type it like this: make *bold* text
- This is a test of bold. <-- one word...
- This is a 6-word test of bold. <-- ...or several:
*a 6-word test of bold* - This is a t*est of bo*ld. <-- fails; words not enclosed:
a t*est of bo*ld - This is a* test of* bold. <-- fails; words not enclosed:
a* test of* bold - "bold within plain double quotes" <--
"*bold within plain double quotes*"
Escaping bold
This is a *test* of UNbolding. <-- escaping; type it like this: !*test*
Italic (<i> tag)
Enclose single-line words with "/". Escape by preceding with "!".
Type it like this: make /italic/ text
- This is a test of italic.
- This is a test of italic. <--
This /is a test of/ italic. - This /is a test o/f italic. <-- fails; words not enclosed:
/is a test o/f - 'Italic within single quotes' <--
'/Italic within single quotes/'
Escaping italic
This is a /test/ of UNitalicizing. <-- escaping; type it like this: !/test/
Bold-Italic ...
- This is a test of bold-italic. <--
*/test/* - This is a test of bold-italic. <--
*/This is a test/* - This is a test of bold-italic. <--
*This /is a test/* - This is a test of bold-italic. <-- this works:
*This /is a test*/ - This is a test of bold-italic. <-- this works, too:
*This /is a test* of/ - Th*is i/s a test/* of bold-italic. <-- fails; words not enclosed:
Th*is i/s a test/* - This i*s a test* of bold-italic. <-- fails poorly; words not enclosed:
i*/s a test/*
Escaping bold-italic
*Ignore /bold-italic*/ <-- escaping; type it like this: !*Ignore !/bold-italic*!/
(The final "!" is just to be safe against further "/" in the line ;-)
...and Italic-Bold
- This is a test of italic-bold. <--
/*test*/ - This is a test of italic-bold. <--
/*This is a test*/ - This is a test of italic-bold. <--
/This *is a test of*/ - This is a test of italic-bold. <-- this works:
/This *is a test of/* - This is a test of italic-bold. <-- this works, too:
/This *is a test/ of* - Th/is i*s a test*/ of italic-bold. <-- fails; words not enclosed:
Th/is i*s a test*/ - This i/s a test/ of italic-bold. <-- fails poorly; words not enclosed:
i/*s a test*/
Escaping italic-bold
/Ignore *italic-bold/* <-- escaping; type it like this: !/Ignore !*italic-bold/!*
(The final "!" is just to be safe against further "*" in the line ;-)
Underline (<u> tag)
Enclose single-line words with "_". Escape by preceding with "!".
Type it like this: make _underlined_ text
- This is a test of underline. <--
_a test of_ - This is a test of _under_line. <-- fails; words not enclosed:
_under_line - This test underlines an under_score word.. <--
_underlines an under_score word_ - This is a bold slant on underline. <--
*_bold /slant/ on underline_*
Escaping underline
This is a _test_ of UN_under_lining. <-- escaping; type it like this: !_test_
*/_Ignore/ compound* styles_ <-- type it like this: !*!/!_Ignore/ compound* styles_
Code (<code> tag)
Enclose any text with "[=" and "]"; multi-line works, so make sure you close it! Escape by preceding with "!". (There's just about no way coding can fail, so be careful ;-)
Type it like this: make [=coded] text
- This is a
test of coding. <--[=test of coding] This is a test of coding. <--[=This is a test of coding]- This is a te
st of coding. <-- a te[=st of coding] - Coding contained by
styledtext. <--_contained by [=styled]_ - Coding
that contains styledtext. <--[=that contains _styled_] This is a multi-line test of coding:<-- it's not the final line of code until you close it!
This is line 2...
This is line 4, the final line.- (This bit is really arcane; most users can ignore.)
Because I want maximum compatibility with kwiki markup,codecloses with an "ambiguous" character (]) instead of something unique like=]. Because of that, trying to convey escaped code markup or escaped link markup within code markup can be tricky. You'll either have to "code twice," or use entities:
[=[![img /images/link.gif]][= http://example.org]]<-- "code," twice
[=![img /images/top.gif] ##top]<-- entities:[for "[" and]for "]". - The last
]in a series of]s is used to close code:
Typing[=[huh]]]]]yields[huh]]]], not[huh]]]]]
Escaping code
Th[=is is a t]est [=of UNco]ding. <-- escaping; type it like this: Th![=is is a t]est ![=of UNco]ding.
Images (<img> tag)
Enclose single-line image information with "[" and "]". Escape by preceding with "!". Image information format is: required relative URL, (space) optional width and height as w,h, (space) optional attribute text. Type it like this: [img /images/top.gif], which codes as:
<img src="/images/top.gif">
[img /images/top.gif 22,13]
<-- codes as:<img src="/images/top.gif" width="22" height="13">
[img /images/top.gif alt="Top"]
<-- codes as:<img src="/images/top.gif" alt="Top">
[img /images/top.gif 22,13 alt="Top" title="TOP"]
<-- codes as:<img src="/images/top.gif" width="22" height="13" alt="Top" title="TOP">
- The next line succeeds poorly, by treating the improper
w,has attribute text
<-- [img /images/top.gif 44 , 26]codes as:<img src="/images/top.gif" 44 , 26>
- The next line fails; words not enclosed
inter[img /images/top.gif]ruption
Escaping images
No picture [img /images/top.gif] here. <-- escaping; type it like this: ![img /images/top.gif]
Links
Links (<a> tag)
Enclose single-line link information with [ and ]; link information format is: optional link name (space), required URL, (space) optional attribute text. Escape by preceding with "!".
Type it like this: [link name http://example.com title="test"]
Names (link text) can be one or more words, and should not include "http://", "ftp://", "irc://", nor ":/", nor "//", nor "[" and "]". Image markup can be used in place of a name. Names are optional; with no name, the URL becomes the link text.
URLs can be absolute, relative-to-root, or relative-to-blog. URLs are required.
- Absolute is a complete URL; must begin with "http://", "ftp://", or "irc://"
[http://www.enilnomi.net/downloads/blox]
http://www.enilnomi.net/downloads/blox - Relative-to-root is based from your web root; must begin with "
//":
[//downloads/blox]
/downloads/blox - Relative-to-blog is based from your Blosxom URL; must begin with "
:/":
[:/docs/tech/notes/blox_markup_new.demo]
/docs/tech/notes/blox_markup_new.demo
Attributes should be typed exactly as they would be in an html tag. Attributes are optional.
[Open in New Window //about.html target="_blank"] codes as:
<a href="/about.html" target="_blank">Open in New Window</a>and displays as:
Open in New Window
Escaping links
No link [http://example.net] here. <-- escaping; type it like this: ![http://example.net]
Absolute Links (<a> tag)
Absolute URLs must begin with either http://, ftp://, or irc://. Names and attributes are optional; with no name, the URL becomes the link text. Escape by preceding with "!".
Type it like this: [http://example.com]
- Absolute "raw" (unnamed) link: http://example.com. <--
[http://example.com] - Absolute "named" link: Example.com. <--
[Example.com http://www.example.com] - [ http://example.com]. <-- fails; space after [:
[ http://example.com] - Style within a link http://www.example.com. <-- fails; cute, but goes nowhere:
[http://www.*example*.com] - Styled absolute links
- Bold raw link http://www.example.com. <-- "*" enclosing link markup:
*[http://www.example.com]* - Italic raw link http://www.example.com. <-- "/" enclosing link markup:
/[http://www.example.com]/ - Bold named link Click Here. <-- "*" enclosing link markup:
*[Click Here http://www.example.com]* - Underlined named link Click Me. <-- "_" enclosing link name:
[_Click Me_ http://www.example.com]
- Bold raw link http://www.example.com. <-- "*" enclosing link markup:
- http://example.com/a <-- succeeds poorly when there's a space in URL;
[http://example.com/a space/index.html]
Relative Links (<a> tag)
Relative-to-web-root URLs must begin with //. Names and attributes are optional; with no name, the URL becomes the link text. Escape by preceding with "!".
Type it like this: [//about.html]
- Relative "raw" (unnamed) link: /download.html. <--
[//download.html] - Relative "named" link: Downloads. <--
[Downloads //download.html] - [ //about.html]. <-- fails; space after [:
[ //about.html] - Styled relative links
- Bold relative raw link /download.html. <-- "*" enclosing link markup:
*[//download.html]* - Italic relative raw link /download.html. <-- "/" enclosing link markup:
/[//download.html]/ - Bold relative named link Downloads. <-- "*" enclosing link markup:
*[Downloads //download.html]* - Underlined relative named link Linky. <-- "_" enclosing link name:
[_Linky_ //download.html]
- Bold relative raw link /download.html. <-- "*" enclosing link markup:
- [Bad [Name] //about.html] <-- fails with [] in name;
[Bad [Name]//about.html]
Blog Links (<a> tag)
Relative-to-blog-root URLs must begin with :/. Names and attributes are optional; with no name, the URL becomes the link text. Escape by preceding with "!".
Type it like this: [:/]
- Blog "raw" (unnamed) link: /docs/tech/notes. <--
[:/docs/tech/notes] - Blog "named" link: My Blog. <--
[My Blog :/] - [ :/nowhere]. <-- fails; space after [:
[ :/nowhere] - Styled blog links
- Bold blog raw link /index.html. <-- "*" enclosing link markup:
*[:/index.html]* - Italic blog raw link /docs/plato. <-- "/" enclosing link markup:
/[:/docs/plato]/ - Bold blog named link Texas people. <-- "*" enclosing link markup:
*[Texas people :/docs/people/texas]* - Underlined blog named link blox. <-- "_" enclosing link name:
[_blox_ :/dltext/blox.dl]
- Bold blog raw link /index.html. <-- "*" enclosing link markup:
- Named relative blog link with attributes: blox guide <-- type it like this:
[*blox* markup guide :/dltext/blox.dl class="yellow" title="blox guide" target="_blank"] - /docs/tech/notes <-- succeeds with extra leading "/";
[://docs/tech/notes](this may change if it causes problems with other markup)
Anchors (<a name="anchor"></a>)
Alone on a line, enclose one "#" and a single-word anchor name with "[" and "]". Escape by preceding with "!". Type it like this: [#anchor_name], which codes as:
<a class="bloxanchor" name="anchor_name"></a>(The
bloxanchor class is added to all anchors so that you can control appearance and behavior via CSS.)
- The next line does not set an anchor:
[#not_an_anchor] <-- fails because anchor markup is not alone on a line - The next line does not set an anchor; fails with more than one word:
[#too many words] - The next line does not set an anchor; only alphanumerics allowed:
[#no_styles_allowed]
Escaping anchors
![#escaped_anchor] <-- preceed with !
Anchor Links (<a href="#anchor">go to anchor</a>)
Enclose single-line link name, a space, two "#", and a same-page anchor name with "[" and "]". Attributes are optional. Escape by preceding with "!".
Type it like this: [link text ##anchor_name]
- Here's an anchor link: Go to Anchors <--
[Go to Anchors ##anchors] - Styled anchor link: Go to Anchors <--
[Go to *Anchors* ##anchors] - Anchor link with attributes: [[Anchors] ##anchors title="Go to Anchors"] <--
[Anchors ##anchors title="Go to Anchors"]
Escaping anchor links
![No Link ##nowhere] <-- preceed with !
Image Links
In place of a link name, use image markup in absolute, relative, blog, and anchor links. Escape by preceding image only, or both link and image, with "!".
- absolute link:
<-- [[img /images/link.gif]http://example.org] - relative link:
<-- [[img /images/link.gif]//about.html] - blog link:
<-- [[img /images/link.gif]:/index.html] - anchor link:
<-- [[img /images/top.gif]##top]
Escaping image links
- [[img /images/top.gif] ##top] <-- escaping only the image:
[![img /images/top.gif]##top]] - [[img /images/link.gif 40,15] http://example.com] <-- escaping both link and image:
![![img /images/link.gif 40,15]http://example.com]]
Reference Links
Create a reference anywhere by enclosing one or more digits or a single letter with [ and ]. Then, alone on a line, enclose the same digit(s) or letter, a space, an absolute URL, and optionally a space and attribute text within "[" and "]". Attributes are optional. Escape by preceding with "!".
With a reference[1] in the story,
type this: [1 http://example.org] alone on a line
to produce a reference link.
[1]: http://example.org
- Each reference ID can be linked a number of times[1]. For example, using
[1 http://www.example.net]below will produce another "1" reference link.
[1]: http://www.example.net - Protect named links (e.g.
[24 http://example.tv)by escaping references with the same "name" (e.g. "![24]"): 24 - Attributes in a reference link[2]; using
[2 http://example.org target="_blank"]below will open the reference link in a new window.
[2]: http://example.org - Nothing but "attributes"[B] are also O.K.! Type it like this:
[B In other words, you can use reference link markup sans URL ;-)]
[B]: In other words, you can use reference link markup sans URL ;-)
Escaping reference links
- Escape a reference:
[1]<-- type it like this:![1] - Escape a reference link:
[1 http://example.com]<-- type it like this:![1 http://example.com]
Blocks
Paragraphs & linebreaks
Paragraphs in blox are not optional; the only way to turn them off is to not use the plugin. This section on paragraph "markup" describes how (easily) it interacts with the optional markup system.
To recap blox paragraph formatting: Blocks of text separated by blank lines are wrapped in user-specified "paragraph" tags. If such a block begins or ends with an html tag (i.e. < or >), you must add a single space character before or after the tag to get blox to add its open or close block tag.
This text:
[blank line]
A block of text.
[blank line]
becomes:
TEST:
[blank line]
[]
A block of text.
[blank line]
becomes:
<p> A block of text. </p>
But this:
[blank line]
<b>A bold</b> beginning.
[blank line]
only becomes:
<b>A bold</b> beginning. </p>
To get the opening paragraph tag, add a space before the leading html tag:
[blank line]
<b>A bold</b> beginning.
[blank line]
for:
<p> <b>A bold</b> beginning. </p>
NOTE that you do not have to worry about adding leading and trailing spaces for html tags that blox produces from your markup; adding spaces is only for tags that you put in your entry files.
The paragraph model is extended to the optional markup that creates other html "blocks" (blockquotes, rules, heads, lists, etc.) — to have a block stand alone, surround it with blank lines; to contain a block, surround it with text.
For instance, this markup:
First line in paragraph
{= A blockquote =}
Third line in paragraph.
yields this html:
<p> First line in paragraph <blockquote> A blockquote </blockquote> Third line in paragraph. </p>
While this:
First line in paragraph
{= A blockquote =}
First line in paragraph.
codes as this:
<p> First line in paragraph </p> <blockquote> A blockquote </blockquote> <p> First line in paragraph. </p>
And this:
{= A blockquote =}
First line in paragraph.
codes as:
<p> <blockquote> A blockquote </blockquote> First line in paragraph. </p>
Heads (<h1..6> tags)
Alone on a line, put 1 to 6 "=", then a space, then head text. Optionally, put a space and matching number of "=" after head text. Escape by preceding with "!". To make a head "stand alone" (not contained by a paragraph), surround it with blank lines.
== Head Text == <-- type it like this, or
== Head Text <-- type it like this
1. The next head is styled; type it like this: == /_Styled H3_/
Styled H3
2. The next head includes equals signs; type it like this:
(note the trailing space): "
===== == Equals Signs in Heads == " (no quotes)
== Equals Signs in Heads ==
3. The next head fails; there is no space between "=" and the head text
==Not an H2
4. The next head fails; too many spaces between "=" and the head text: "== Not an H2"
== Not an H2
5. The next head fails; "=" must be first character on line:
This is == not an H2
Escaping _heads
=== Ignore Markup <-- escaping; type it like this: !=== Ignore Markup
==== Ignore Markup ==== <-- escaping; type it like this: !==== Ignore Markup ====
Blockquotes (<blockquote> tag)
Start a line with "{=" to open a blockquote; end a line with "=}" to close it. Blockquotes are multi-paragraph, so make sure you close them! All markup can be used inside a blockquote, except for another blockquote. Escape by preceding with "!". If you need to use "=}" within a blockquote, escape it as !=}. To make a blockquote "stand alone" (not contained by a paragraph), surround it with blank lines.
{= Blockquote Text =} <-- type it like this
1. Here comes a blockquote; type it like this:
{= Hey! I'm a blockquote! =}
Hey! I'm a blockquote!
2. The next line fails; {= must begin the line:
This is {= not a blockquote. =}
3. Here's a multi-paragraph blockquote; type it like this:
{=Here's the first paragraph. . .
Here's the second paragraph. . .=}
Here's the first paragraph of a two-paragraph blockquote, lovingly wrapped in paragraph tags by blox.
Here's the second paragraph of a two-paragraph blockquote., lovingly wrapped in paragraph tags by blox.
4. Empty blockquote are possible: ({==})
5. You can do anything inside a blockquote that you can do in a paragraph (except use a blockquote ;-)
Here's a blockquote with
a linebreak, anda separate paragraph, and
some styling, and a link or two, and
and so on....
- list
- items
Escaping Blockquotes
{=Ignore blockquote=} <-- type it like this: !{=Ignore blockquote=}
Lists (<ol> and <ul> tags)
A line starting with one or more "list marks" and a space, followed by text creates a list item; the number of list marks determines the nested level of the list. Consecutive list items are contained in the same list. List items can be mulit-line, provided no line starts with a space. Escape by preceding with "!". To make a list "stand alone" (not contained by a paragraph), surround it with blank lines.
- List Marks
- "
*", "+", or "-" establish unordered list items - Digits (
0..9) establish ordered list items; digits can be followed by ":", ")", ">", "+", or "-" (Note that a following "." is not valid; so to easily avoid list markup, just start plain old text items with "1.", "2.", etc.)
- "
* list item 1
* list item 2
- The first mark in a list sets the type of list:
* ul item is first
0 ol item
0 ol item- ul item is first
- ol item
- ol item
- List items can be multi-line, provided no line starts with a space. A
<br>tag is automatically added to multi-lines (regardless of the $break_singles setting); the tag automatically adjusts to the$use_xhtml_tagssetting.
* Item 1 line 1
item 1 line2
* Item 2- Item 1 line 1
Item 1 line 2 - Item 2
- Item 1 line 1
- Lists can be nested:
* Outer list 1
00 Inner list 1
00 Inner list 2
*** Inner inner list 1
* Outer list 2- Outer list 1
- Inner list 1
- Inner list 2
- Inner inner list 1
- Outer list 2
- Outer list 1
- Fails because
0is not first character in line:
'0 Failed list'
0 Failed list - List items can be styled:
* *bold* item
* /italics/ item
* _underlined_ item- bold item
- italics item
- underlined item
- The following list markup is valid:
1 item 12) item 23: item 34> item 4++ item 5-- item 6*-* item 7
Escaping Lists
UNlist items by preceeding with a !:
!** Escaped inner item
!3 Escaped OL item
** Escaped inner item
3 Escaped OL item
Rules (<hr> tag)
Alone on a line, put four "-" and nothing else. Escape by preceding with "!". To make a rule "stand alone" (not contained by a paragraph), surround it with blank lines.
Type it like this:
----
1. The next line fails due a leading space " ----":
----
2. The next line fails due a trailing space "---- ":
----
3. Rules can be contained in other blocks. This entry text:
[blank line]
First line...
----
...Last line.
[blank line]
produces this HTML:
<P> First line... <HR> ...last line. </P>
Escaping rules
The next line is an escape; type it like this: !----
----
More Info
<PRE> blocks
blox doesn't do anything to text that's wrapped in <PRE> tags...and that's exactly the point. Whatever you put in a <PRE> block will be left completely as-is.
This text:
<PRE>
*No bold* inside a PRE
[no links either http://www.exxample.com]
</PRE>
Becomes this HTML:
<PRE> *No bold* inside a PRE [no links either http://www.exxample.com] </PRE>
XHTML 1.0 & strict HTML 4.01
Set the $use_xhtml_tags config var to 1 for the following:
<hr /><--normally <hr><img src="images/top.gif" /><--normally <img src="images/top.gif"><br /><--normally <br>
blox markup conforms to "loose" HTML 4.01; specifically, list items are not normally closed, and anchors contain no text. Two config vars are available to increase conformance:
- setting
$close_list_itemsto1closes list items:
<li>list item text</li> - setting
$anchor_textto1adds a non-breaking space as anchor text
<a class="bloxanchor" name="top"> </a>
Undocumented
aligned DIVs
I just threw these in for the right-aligned contents links in this guide ;-) They could disappear at any moment. Use <br> tags for multi-line. >>>>[contents ##contents] codes as:
<div align="right"><a href="#contents">contents</a></div>
1. For a right-aligned single-line DIV, type this:
>>>>_Far Right text_
2. For a center-aligned single-line DIV; type this:
>><<_Centered text_
3. For a left-aligned single-line DIV; type this:
<<<<_Far Left text_
Escaping aligned DIVs
>>>> <-- escaping; type it like this: !>>>>
<big> and <small>
This markup seems really clunky; these will p'bly die of embarrassment. Use <br> tags for multi-line.
- One key makes you taller <--
One key +++makes you taller+++ - And one key makes you small <--
And one key ---makes you small--- - Preceding with "!" makes +++nothing+++ at ---all--- <--
!+++nothing+++ at !---all---
Not "Bugs" — anomalies ;-)
This markup always does what it should; it's just not very bright.
- Path-like text may be mistaken for italic if it looks like one word:
/Library/WebServer/Documents/<-- displays as: Library/WebServer/Documents
or with italics following:
/Library/WebServer: where the /action/ is<-- displays as: Library/WebServer: where the /action is
The fix is to escape such sequences:
!/Library/WebServer/Documents/<-- displays as: /Library/WebServer/Documents/
!/Library/WebServer: where the /action/ is<-- displays as: /Library/WebServer: where the action is- This anomaly will not bother you in properly marked links.
- As illustrated in Absolute Links #4, there's nothing preventing you from styling inappropriate elements within an address, even though such links won't go anywhere.
- Nothing stops you from putting blockquote markup within blockquote markup, even though it won't render worth a toot. Nested blockquotes must be hand-coded.
- If you need to convey escaped code markup or escaped link markup within code markup (:: sigh :: ;-), pay attention to Code #7.
- Multi-line blockquote markup can be used within list item markup; multi-paragraph blockquote markup cannot.
Of course, if you do find a bug in this markup system, let me know by writing to the blosxom list, or by posting at http://groups.yahoo.com/group/blosxom/messages/.
Can't do/To do...
- There's no table markup; none is planned
- There's no mailto: markup; none is planned
- You can't use absolute URLs in image markup; no plans to change this
- Nested blockquotes don't render properly; this will p'bly not change
- Escaped relative link markup is not automatically protected against italics; this might change
- You can only add attributes to links and images; no plans to change this
- There is nothing similar to the "noblox" file for markup; this will p'bly change
Hints
- Wherever possible, the format model is visual. So if a head is immediately followed by a block of text, they will both be wrappped in a paragraph tag. To have the head "stand alone," separate it from other text with blank lines. Ditto for rules and blockquotes and lists.
- Don't forget the power of leading/trailing spaces...
- ...but don't obsess; you do not have to add any spaces to compensate for the effects of the markup.
- Italic markup is very aggressive. Link markup is protected against
/, but escaped links are not. To represent plain old paths, escaping the leading/(if any) is usually enough:!/root/dir/file.txt. When in doubt, escape everything ;-) - "Attributes" include event handlers, so yeah -- you can do js rollovers.
- You can tell blox to disable markup in an entry file by adding the comment:
<!--nobloxmarkup-->
to the story text, alone on a line.
Versions
For some folks, markup is just plain overkill. For them, a re-mastered blox v0.98 is available here. This new v0.98 contains all of the fixes of v0.99, but none of the markup. The new v0.98 is identified as:2004-10-30 (v0.98). All users should update to either v0.99 or the new v0.98r; v0.97 should be abandoned.
Though I've tested blox v0.99 quite extensively, there's nothing like release to prompt a change ;-) While the markup stabilizes, v0.99 changes will be indicated by a letter; the initial release is v0.99e. You can p'bly get blox in a couple of forms; see the blox download page.
Version History: blox_markup_guide.txt
2004-10-24 (v0.99e)- release for blox 992004-09-24 (v0.97d)- 1st release for blox 97
Version History: blox
2004-10-30 (v0.99e)- blox with markup; based on 2004-09-24 (0.98-11e)2004-10-30 (v0.98r)- blox with no markup; based on 2004-09-24 (0.98-11e)2004-09-24 (v0.98e)- markup2004-09-22 (v0.97d)- named character classes dropped for perl <=5.006; several settings are config'able; cleanup
2004-08-24 (v0.97a)- normal tagged links were being mangled; fixed2004-07-22 (v0.97) - cleanup; add un-ignore, linebreaking, styles, graceful PREs; convert line-ends in noblox file
2003-09-14 (v0.96) - better line-end conversion2003-09-09 (v0.95) - LOL! put Win line-end chars in correct order ;-)2003-08-31 (v0.94) - add Mac and Windows line-ending conversion2003-08-30 (v0.93) - wip2003-08-04 (v0.92) - add mechanisms to ignore specified entries2003-07-31 (v0.9 ) - half-fast workaround for <PRE> tags2003-07-20 (v0.8 ) - it's alive
Hope You Enjoy!
- S2
