=pod
=for comment
DO NOT EDIT. This Pod was generated by Swim v0.1.45.
See http://github.com/ingydotnet/swim-pm#readme
=encoding utf8
=head1 Swim::Design
This document describes the Swim markup format, its goals and its specific
design decisions.
=head1 Swim Goals
=over
=item * Beautiful input syntax I<and> beautiful output renderings
=item * (re)Use the best existing markup syntaxes
=item * Render to many formats
=over
=item * HTML
=item * Plain text
=item * Other common text markups (Markdown, Pod, etc)
=back
=item * Core info model supports most common, useful constructs
=item * Support everything else via pluggable extension syntax
=back
=head1 The Swim Informational Model
Swim defines an information model for text documents. The 2 main generic
components are I<blocks> and I<phrases>. This pretty directly corresponds to
the HTML concepts of I<divs> and I<spans>.
The model is roughly expressed by this grammar:
# A document is a set of blocks
document: block*
# A block is /either/ a set of more blocks /or/ a set of phrases
block: block* | phrase*
# A phrase is moer or less a sentence fragement
phrase: bold | italic | link | … | plain-text
Swim is literally defined by this grammar:
=cut