minirst: support containers
Text can be grouped into generic containers in reStructuredText:
.. container:: foo
This is text inside a "foo" container.
.. container:: bar
This is nested inside two containers.
The minirst parser now recognizes these containers. The containers are
either pruned completely from the output (included all nested blocks)
or they are simply un-indented. So if 'foo' and 'bar' containers are
kept, the above example will result in:
This is text inside a "foo" container.
This is nested inside two containers.
If only 'foo' containers are kept, we get:
This is text inside a "foo" container.
No output is made if only 'bar' containers are kept.
This feature will come in handy for implementing different levels of
help output (e.g., verbose and debug level help texts).
% before commit
% store can be written by the group, other files cannot
% store is setgid
00700 ./.hg/
00600 ./.hg/00changelog.i
00600 ./.hg/requires
00770 ./.hg/store/
% after commit
% working dir files can only be written by the owner
% files created in .hg can be written by the group
% (in particular, store/**, dirstate, branch cache file, undo files)
% new directories are setgid
00700 ./.hg/
00600 ./.hg/00changelog.i
00660 ./.hg/dirstate
00660 ./.hg/last-message.txt
00600 ./.hg/requires
00770 ./.hg/store/
00660 ./.hg/store/00changelog.i
00660 ./.hg/store/00manifest.i
00770 ./.hg/store/data/
00770 ./.hg/store/data/dir/
00660 ./.hg/store/data/dir/bar.i
00660 ./.hg/store/data/foo.i
00660 ./.hg/store/fncache
00660 ./.hg/store/undo
00660 ./.hg/undo.branch
00660 ./.hg/undo.dirstate
00700 ./dir/
00600 ./dir/bar
00600 ./foo
% before push
% group can write everything
00770 ../push/.hg/
00660 ../push/.hg/00changelog.i
00660 ../push/.hg/requires
00770 ../push/.hg/store/
% after push
% group can still write everything
00770 ../push/.hg/
00660 ../push/.hg/00changelog.i
00660 ../push/.hg/branchheads.cache
00660 ../push/.hg/requires
00770 ../push/.hg/store/
00660 ../push/.hg/store/00changelog.i
00660 ../push/.hg/store/00manifest.i
00770 ../push/.hg/store/data/
00770 ../push/.hg/store/data/dir/
00660 ../push/.hg/store/data/dir/bar.i
00660 ../push/.hg/store/data/foo.i
00660 ../push/.hg/store/fncache
00660 ../push/.hg/store/undo
00660 ../push/.hg/undo.branch
00660 ../push/.hg/undo.dirstate