zen markup language
2015 test-suite

testing the full features of z.m.l.

by bowerbird intelligentleman

this is the 2015 test-suite for

zen markup language — z.m.l. —

a light-markup system geared

to books and long-form texts

bowerbird@aol.com

http://zenmagiclove.com/simple/sweet.zml



 

table of contents

zen markup language 2015 test-suite

table of contents

dedication

introduction

chapter 1welcome aboard

chapter 2paragraphs in chapters, and chunks in gourds

chapter 3creating new chunks and new gourds

chapter 4header and subheader for a gourd

chapter 5the toc is a necessity

chapter 6text styling

chapter 7line-breaks and forced line-breaks

chapter 8centered text

chapter 9other justifications

chapter 10footnotes and endnotes

chapter 11images in your document

chapter 12justification of images

chapter 13unlucky number 13

chapter 14links in your document

chapter 15poetry and other silly things

chapter 16tables in your document

chapter 17epigraphs and epitaphs

chapter 18hyphens and dashes

chapter 19hyphenation stinks

chapter 20spaces after a sentence

chapter 21multi-purpose block-quotes

chapter 22the play is the thing

chapter 23lists in your book

chapter 24make your own breaks

chapter 25we believe in the colophon

chapter 26cascading colliding styling

chapter 27the meta-data chapter

chapter 28the end of this test-suite

the notes section

colophon section

the meta-data section



 

dedication

to michael hart

for his bold vision

and his persistence



 

introduction

zen markup language is a light-markup

that was especially developed for books

and other long-form documents, such as

scientific-journal articles, manifestos, etc.

html is one of the outputs that’s targeted,

what with the importance of the web, and

the assumption is that what you write will

get posted on the public web, but .html is

one form of many, without special priority.

the e-book formats are yet another target.

technical books are likewise one goal, but

just one of them, and not of a big priority.



 

chapter 1

 

welcome aboard

welcome to this z.m.l. test-suite!

this document was composed to demonstrate and test the set of features included in z.m.l., common to the vast majority of printed books.

if you find any inconsistencies in this test-suite or the performance of the zen-markup tool-kit, do please let me know immediately. thank you.



 

chapter 2

 

paragraphs in chapters,
and chunks in gourds

zen markup language seeks to be “invisible”, so writers can focus on what they’re writing.

books are composed of chapters (or sections) comprised of paragraphs (and other elements).

in z.m.l., we call the paragraphs (and the other elements) by the term “chunks”, and we name the chapters (or sections, or units) as “gourds”.

that’s all the jargon that we will be using here. a paragraph is a chunk. and a section is a gourd.

we make zen markup “invisible” via whitespace, particularly blank lines. so you use 1 blank line between paragraphs, and 5 between chapters.

separate chunks by using one blank line.

separate gourds by using five blank lines.



 

chapter 3

 

creating new chunks and new gourds

1 blank line surrounds a chunk, above and below, and the beginning of each gourd has 5 (or more) blank lines. the first chunk in a gourd is its header.

you create a new chunk (such as a paragraph) by entering 1 blank line, then typing the new chunk.

you create a new gourd by entering 5 blank lines, and then entering a chunk as the gourd’s header.



 

chapter 4

 

header and subheader for a gourd

the first chunk in a gourd is the header for the gourd. so “chapter x” is the header for this gourd right here.

the second chunk in a gourd might be the subheader, if you want one, or it might start the gourd’s body, depending on whether it is followed by 2 blank lines, or preceded by 2 blank lines.

this gourd has a subheader — the second chunk — and we know it is a subheader because it’s separated from the header by only 1 blank line rather than two, and because it itself is followed by 2 blank lines.



 

chapter 5

 

the toc is a necessity

one of the things long-form readers find handy is a table of contents to get a good overview.

because of their experience with the web, and because it just makes sense, people will often expect the items in a table of contents to be linked to the appropriate sections.

another nice touch is to have chapter headings be return-links back to your table of contents; that enables the reader to quickly summon it almost any time, from a variety of locations, which is a convenient functionality.



 

chapter 6

 

text styling

to italicize a word, surround it with underbars.

to make a word bold, wrap it with asterisks.

the make a word monospace, use `backticks.`

we’ll cover this topic in much greater detail later.



 

chapter 7

 

line-breaks and forced line-breaks

you can use line-breaks inside paragraphs if you want, and z.m.l. will join the lines, in the traditional way .html always has.

sometimes, of course, you will want to “force” a line-break. a good example of such a situation is in an address-block:

president barack obama

and the first-lady michelle

1600 pennsylvania avenue

washington, d.c. 12345 to force a line-break inside of a chunk, start the line with one or more spaces. this will force a line-break at the start of the line, and one at the end of that line, thereby setting off the line all by itself.

it is even possible to set the alignment of these set-aside lines, using the model which is presented in the next chapters.

 

chapter 8

 

centered text

sometimes, for one good reason or another, you want to center a line, or a chunk of lines.

z.m.l. gives you a nice easy way to do that, again via white-space so it’s fairly “invisible”.

to center a line, start it with a leading space. just put a space in the first column of the line. the following 3-word sentence is a chunk that starts with a space, meaning it’ll be centered.

center me please!

the following chunk also starts with a space.

it’s a quick and easy way to center a line

you can put a space at the start of the chunk, and in the first column of each line in the chunk.

this line has a space in column 1,

as do all of the lines in this chunk,

so they will all be nicely centered.



 

chapter 9

 

other justifications

besides centering, there are other ways which you might want to align a chunk... also discuss left and right justification.

here’s a test of some of the formatting commands.

left-justified (2 spaces)

left-justified

centered (3 spaces)

centered

centered

right-justified (4 spaces)

right

right

right

this string has one space at the start of it...

.

three of them in one paragraph, on separate lines:

http://google.com

http://pgdp.net

http://gutenberg.org

.

three of them in one continuous joined paragraph: http://google.com http://pgdp.net http://gutenberg.org

.

three of them in separate paragraphs, as separate chunks:

http://google.com

http://pgdp.net

http://gutenberg.org

http://z-m-l.com/go/alice/checking_watch.pngan-image

   http://z-m-l.com/go/alice/checking_watch.png

http://z-m-l.com/go/alice/cat_fades.pngan-image

   http://z-m-l.com/go/alice/cat_fades.png

http://z-m-l.com/go/alice/alice_cramped.pngan-image

   http://z-m-l.com/go/alice/alice_cramped.png

http://z-m-l.com/go/alice/alice_holding.pngan-image

   http://z-m-l.com/go/alice/alice_holding.png

?? is this the place to discuss the “.” lines?



 

chapter 10

 

footnotes and endnotes

some long-form documents have footnotes.[1]

z.m.l. can handle footnotes.

http://z-m-l.com/go/alice/alice_holding.pngan-image

   http://z-m-l.com/go/alice/alice_holding.png



 

chapter 11

 

images in your document

in printed-books, pictures can be very expensive. but in e-books, they come along for “a free ride”, more or less. mount your image-files on the web, and then just enter the u.r.l. to have ‘em pulled in.

that’s right, all you need to do is list the image u.r.l.

“what is the use of a book,” thought alice, “without pictures or conversation?”

http://z-m-l.com/go/alice/checking_watch.pngan-image

   http://z-m-l.com/go/alice/checking_watch.png


z-m-l can show images.

http://z-m-l.com/go/alice/alice_cramped.pngan-image

   http://z-m-l.com/go/alice/alice_cramped.png


“what is the

use of a book,”

thought alice,

“without pictures

or conversation?”

http://z-m-l.com/go/alice/cat_fades.pngan-image

   http://z-m-l.com/go/alice/cat_fades.png

you can pull an image from your dropbox.

https://dl.dropboxusercontent.com/s/pdaxwqtreht60fx/teapot.jpgan-image

   https://dl.dropboxusercontent.com/s/pdaxwqtreht60fx/teapot.jpg

you can pull an image from imgur.

http://i.imgur.com/56QhP4Al.jpgan-image

   http://i.imgur.com/56QhP4Al.jpg

you can pull an image from droplr.

http://ckyp.us/aXFG.pngan-image

   http://ckyp.us/aXFG.png

you can pull an image from github.

https://cloud.githubusercontent.com/assets/3458733/7458573/4eed931c-f24a-11e4-80b6-42b93a15d967.pngan-image

   https://cloud.githubusercontent.com/assets/3458733/7458573/4eed931c-f24a-11e4-80b6-42b93a15d967.png

you can pull an image from anywhere on the web. isn’t the open web a beautiful thing?



 

chapter 12

 

justification of images

discuss how justification works with images.



 

chapter 13

 

unlucky number 13

there is no 13th floor in most buildings.



 

chapter 14

links in your document

the web has taught us the utility of links in a document, which is good.

so, to put a link in your document, just put the u.r.l. that’s it. nothing else is necessary. just put the u.r.l.

http://www.google.com

at the same time, however, z.m.l. is meant for long-form documents, where we generally want a reader to stick with the document, and not constantly leave to hopscotch the web.

so we want to make it slightly less easy to leave the document, just a bit.

in addition, some people consider an unadorned u.r.l. to be rather unsightly, and they want to “hide it” behind a link.

so, in order to achieve those two things, you can put a link in a footnote if you like. when the reader clicks on a footnote that contains a u.r.l., it is displayed to them, and a second click will open that link.

in addition, to further “beautify” things, you can eliminate the brackets around the footnote reference in the body text. this has the additional functionality that every instance of the footnote which occurs in the body text will be auto-linked.

so, for instance, if you want the word “amazon” to link to http://amazon.com, just make the regular link in the footnote section, where a chunk starts with “amazon” in brackets, and then follows with the u.r.l., and then every time the word “amazon” occurs in your text, it’ll be turned into a link.

***

in addition to external links, like that, you can also have internal links.

remember how, in chapter 5, we said that the table of contents should be hot-linked to the appropriate spots?

that’s one type of internal link you need. there are several other types as well.

often there are places in a document that reference other locations in the document. in these situations, it’s nice to have a link close to (or on) that reference point which transports the reader to that other location.

for instance, a few paragraphs earlier, we made a reference to chapter 5. if a reader clicked on those words — “chapter 5” — they should automatically go to chapter 5.

(and likewise with each of the references to “chapter 5” here in this paragraph too.)

z.m.l. creates such internal links for you, automatically, whenever your text has a verbatim copy of a header, or subheader.



 

chapter 15

 

poetry and other silly things

some documents contain poetry, or verse of some type, so your system must be able to handle silliness like that.

some poems want to be left-justified, so you should be able to handle that:

               a haiku for you

               (by bowerbird intelligentleman)

               haiku have three lines

               and seventeen syllables

               five, seven, and five

other poems want to be centered instead:

t.v. will eat you

(by bowerbird intelligentleman)

t.v. will eat you

out of a satellite dish

with a tuning fork

and some poems want to alternate...

     six spaces at the start of this line

         12 spaces at the start of this line

     six spaces at the start of this line

         12 spaces at the start of this line

     six spaces at the start of this line

         12 spaces at the start of this line

     six spaces at the start of this line

         12 spaces at the start of this line

and some poems want to get fweaky!

     six spaces at the start of this line

         ten spaces at the start of this line

             14 spaces at the start of this line

                 18 spaces at the start of this line

                     22 spaces at the start of this line

                         26 spaces at the start of this line

                     22 spaces at the start of this line

                 18 spaces at the start of this line

             14 spaces at the start of this line

         ten spaces at the start of this line

     six spaces at the start of this line

in general, lines of a poem prefer to stay together, that is, to be kept all on a page whenever possible, so your system should attempt to accomplish that...

if it’s not possible to keep the whole poem on a page, try to make the page-break occur between the verses...



 

chapter 16

 

tables in your document

z.m.l. is focused on non-tech writers more than tech writers — literature and not spreadsheets — but it can nonetheless handle tables fairly well; maybe not hairy ones, but straightforward ones.

the tag for tables is “|”.

table 1column 1column 2
plain-textyesyes
x.m.l.noyes
htmlyesno
.rtfnoyes
.pdfnono

the column-entries in each row can be separated by a sequence of at least 3 spaces, as well, if you prefer. that is, the internal column indicators are optional.

table 1column 1column 2
plain-textyesyes
x.m.l.noyes
htmlyesno
.rtf.yes
.pdfnono

because all of the spaces around it ware collapsed, as you can see in the table above, an “empty” cell must be indicated by entering a single period in it.

it’s not necessary to “line up” the tables, nor do you need the or-bar indicator at the end of each row.

table 1column 1column 2
plain-textyesyes
x.m.l.noyes
htmlyesno
.rtf.yes
.pdfnono

again, it’s not necessary to line up” the columns, just as long as three spaces separate each column.

table 1column 1column 2
plain-textyesyes
x.m.l.noyes
htmlyesno
.rtf.yes
.pdfnono

pull in the major-league standings tables ??

 

chapter 17

 

epigraphs and epitaphs

there’s an old proverb

that says just about

whatever you want it to...

slashdot

sometimes a chapter starts with a nice pithy quote, which is usually italicized, and often right-justified.

this is the kind of thing that is thus easy to pull off.[2]



 

chapter 18

 

hyphens and dashes

the first - called an “en-dash” - is narrow. the second — called an “em-dash” — is wider; it’s called that because it’s as wide as an “m”.

you’ll generally use an em-dash, not an en-dash.

there is no em-dash in the lower-ascii codes so can use a double-dash and z.m.l. will convert it.

some style-guides say you should not put spaces on the sides of a dash. that’s wrong. the dash looks nicer with spaces around it.

even more importantly, the search capability of some programs is thwarted by a lack-of-spaces; so is the rewrapping routines in some programs. so it’s best if you do put spaces around dashes.



 

chapter 19

 

hyphenation stinks

hyphenation is another thing that messes up e-book search capabilities. e-books don’t need hyphenation. turn hyphenation off when you make an e-book.



 

chapter 20

 

spaces after a sentence

i’ve been a (proud) 2-space person my whole life.

but z.m.l. only needs one space after a sentence.

and that’s a whole lot easier when you’re writing.

so while you’re writing your e-book, just use one.



 

chapter 21

 

multi-purpose block-quotes

sometimes you want to quote a whole block of stuff from someone. this is often called a “block-quote”. clever, the guy who came up with that name...

z.m.l. can do block-quotes.

indeed, there are several ways to tag a block-quote.

here’s an example, using the “>” tag:

dear leslie,



how are you? i am fine.

the weather is nice here.

but i wish it was half

as beautiful as you are.



and i wish you were here.



love,

bowerbird

typically, block-quotes are indented on both the left and right sides.

here’s another block-quote, from a speech; this one is also marked with right-brackets.

four score and seven years ago, our

forefathers set forth upon this continent

a new nation, conceived in liberty and

dedicated to the proposition that

all men[3] are created equal.

here’s another block-quote, from a speech; this one is marked with colons.

ask not what your country can do for you. ask what you can do for your country.

here’s another block-quote, from a speech; this one is marked with semi-colons.

four score and seven years ago, our forefathers set forth upon this continent a new nation, conceived in liberty and dedicated to the proposition that all people are created equal.

and finally, let’s repeat that first block-quote; but this time it’s marked with carets, meaning that it will be displayed larger, as a pull-quote.

four score and seven years ago, our forefathers set forth upon this continent a new nation, conceived in liberty and dedicated to the proposition that all people are created equal.

there are many other different situations that might have need for this type of indentation. for now, we will call them all “block-quote”. perhaps later we will see fit to break out a more finely-grained analysis, if we find cases so special they merit their own class.



 

chapter 22

 

the play is the thing

z.m.l. can do plays, where character-names can be offset to the left of their dialog.

dale: that’s not what p.g. is all about.

bowerbird; i think it’s important to give people a good e-book experience.

dale: that’s your opinion.

bowerbird; yes it is.

steve. (weakly) i can’t...

dale: no it isn’t.

steve. (weakly) get a...

bowerbird; is too.

steve. (weakly) word in edgewise...

dale: is not.

lurkers/ will you two cut it out?

bowerbird; is so.

dale: is not...

(fade) to black.

as you can see above,[4] there are five different ways that this structure can be marked: with a colon, semi-colon, slash, period, or parentheses. we will determine which of these differentiations is useful and will be retained, and which are not.

colon: the colon is one way to indicate a play.

semi-colon; the semi-colon is another.

slash/ you can also use a slash if you prefer.

period. plus there is the venerable old period.

(parens) parentheses, too, which must be in pairs, to accomodate a balancing-check for paired items.

gotta be able to handle plays. dialog, instructions to actors, stage directions, that kind of stuff...

the other type of place where you see this type of formatting is in interviews.

q: what is the answer?

a: that’s a good question.



 

chapter 23

 

lists in your book

i like lists. z.m.l. can do lists. here’s a list:

sometimes you want a numbered list...

here’s an example of a numbered list, with the number specifically included.

here’s another numbered list, again with the number specifically included, where we mix things up a bit...

here’s another numbered list, except this time it’s an .html “ordered list”, so the browser does the numbering...

  1. one, regular “ordered” list

  2. two, regular “ordered” list

  3. three, regular “ordered” list

  4. four, regular “ordered” list

  5. five, regular “ordered” list

  6. six, regular “ordered” list

  7. seven, regular “ordered” list

  8. i still forget what 8 was for.

  9. number 9, number 9...

here’s another example of a list:

here’s another example of a list:

here’s another example of a list:

here’s another example of a list:

include stuff on a definition list ??



 

chapter 24

 

make your own breaks

there are several types of breaks that you can create.

***

a three-asterisk chunk serves as a scene-break.

***

a six-asterisk chunk serves as a column-break.

***

a nine-asterisk chunk serves as a page-break.

page-breaks become slighly dangerous in a reflowable environment like e-books, because you don’t know the size of the screen “page”, so you might be toward the top of one already, in which case a page-break will cause that page to be very short. so try to use them sparingly.



 

chapter 25

 

we believe in the colophon

we’re bringing colophons back.



 

chapter 26

 

cascading colliding styling

let’s talk about stylesheets. zen markup language is fully dedicated to making life easier for writers. because writing itself is hard enough. it really is.

and asking writers to get involved in the quicksand that c.s.s. has become would be antithetical to that.

nonetheless, writers want their stuff to “look good”. so we give them the ability to futz with their c.s.s. we’re gonna try our best to make it easy, of course, and we’re gonna put up a fence when it starts to get more complicated than we know would be good, and we have a pretty good idea when that time will come, so you’re just gonna have to trust our judgement on it.



 

chapter 27

 

the meta-data chapter

a lot of people think “meta-data” is important. i think they’re full of poop, but why not make ‘em happy?

so give them their own section — call it the “meta-data section” — and then let them put whatever makes ‘em happy into that section.

you will find the meta-data section toward the very end of this document, where it belongs, after the “real” data.



 

chapter 28

 

the end of this test-suite

we hope you’ve enjoyed this test-suite document; if you have any questions, feel free to ask them.

this is a draft, so please suggest improvements.

have a nice day.

the end.



 

the notes section

here are the footnotes/endnotes.

[1] personally, i don’t think we need to make a distinction between footnotes and endnotes any more. i believe that all the types of notes should be stored at the end of the file, like these notes, but i think the person should be able to display them at the point of reference in the actual body of the text. therefore, they are actually a sort of hybrid between footnotes and endnotes, combining the strengths and convenience of both types.    ^^1^^

[2] this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on.    ^^2^^

look, it even has a second paragraph! this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on.    ^^2^^

oh no! a third paragraph. way too long! this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on. this is a test footnote. because of that, it’s going to go on and on and on. hasabreak     ^^2^^

this paragraph is a separate paragraph; because it is not a continuation of the footnote above, it has two blank lines above, to bump it out as a separate entity.

[3] in later years, it was made clear that lincoln was referring to all “people”, and not just men, that women are equally equal.    ^^3^^

[4] this is another test footnote. but it will be short. ooooooo hasabreak     ^^4^^

this paragraph also has two blank lines above it, because it is meant to be separate from the footnote which is directly above it.

[amazon] http://www.amazon.com    ^^amazon^^

[beautiful] http://zenmagiclove.com/simple/beautiful.jpgan-image

   http://zenmagiclove.com/simple/beautiful.jpg
    ^^beautiful^^



 

colophon section

that’s right. we believe in the colophon!

tell people here how to specify their own .css files. ??



 

the meta-data section

here’s the meta-data...

goodbye!

-30-