=pod

=for comment
DO NOT EDIT. This Pod was generated by Swim v0.1.47.
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
