* Mon Sep 11 12:51 2017: Refactor system messages

  - use p.messages, it should always be the first item in parse nodes json output. If there are no messages, then nodelist
    will be empty.

  - Only info and error levels should be used.

    See https://gcc.gnu.org/onlinedocs/gcc-5.2.0/gcc/Warnings-and-Errors.html

* Sun Sep 24 13:31 2017: l.index should be based on character position not rune width

  It is difficult to see where tokens begin for fixing test 06.02.01.01 because some rune widths are larger than 1.

  see test 06.02.01.01 and lexer.go#209

* Mon Sep 18 19:30 2017: add underline overline mismatch test with title containing inline markup

  04.01.01.02 is the test where mismatched adornments are first checked

* Sat Jun 17 03:06 2017: Implement section parse test 04.00.05.00

  - Add test with inline markup and short underline

  - Add test for severeUnexpectedSectionTitle in title with Inline Markup

  - Add test for overline title with inline markup

* Sat Sep 09 18:12 2017: create config package with Config type for configuring parser and lexer

  Should be

    func NewParser(conf config) (*Parser, error) {

  Instead of

    func NewParser(name, text string, logr klog.Logger, logCallDepth int) (*Parser, error) {

  See Go Spew for example

* Wed Sep 13 20:55 2017: uncomment section_level_test.go

* Sun Sep 03 00:13 2017: RENAME NODE TARGET

  Perhaps DocumentBranchNode. NodeTarget is not self documenting.

  Fix node_target documentation

* Sun Sep 03 00:44 2017: Rename TitleNode, AdornmentNode to SectionTitleNode and SectionAdornmentNode

* Sat Sep 09 02:42 2017: Create dump_parse.sh to pretty print dumped structs

  Script should live in tools directory.

* Sat Jun 17 03:13 2017: Fix incorrect test

  04.00.04.01-bad-enum-list-with-numbered-title-nodes-xx.json

  Nodes parse as correct with no system messages, but pseduo xml shows system messages.

* Wed Jun 14 16:07 2017: test IDs not completely unique (merge good and bad tests) into single directory

  Make thes tests have a unique ID.

  testdata/09-test-list-definition/02-bad/09.00.02.00-bad-def-list-with-inline-markup-errors.rst
  testdata/09-test-list-definition/02-bad/09.00.02.00-bad-def-list-with-inline-markup-errors-nodes-xx.json
  testdata/09-test-list-definition/02-bad/09.00.02.00-bad-def-list-with-inline-markup-errors-items-xx.json
  testdata/09-test-list-definition/01-good/09.00.02.00-def-list-two-terms-nodes-xx.json
  testdata/09-test-list-definition/01-good/09.00.02.00-def-list-two-terms-items-xx.json
  testdata/09-test-list-definition/01-good/09.00.02.00-def-list-two-terms.rst

  Merge

  testdata/09-test-list-definition/09.00.02.02.00-bad-def-list-with-inline-markup-errors.rst

  testdata/09-test-list-definition/09.00.01.02.00-def-list-two-terms.rst

  $ find testdata -iname "*.json" -exec basename {} \; | sort -t , -k 1 | grep -o -P "[\d\.]{4,}" | uniq -c | sort -rn
        4 09.00.02.00
        4 09.00.01.00
        4 09.00.00.01
        4 09.00.00.00
        4 08.00.05.00
        4 08.00.04.00
        4 08.00.03.00
        4 08.00.02.00
        4 08.00.01.00
        4 08.00.00.00
        4 07.00.01.00
        4 07.00.00.00
        4 05.00.02.00
        4 05.00.01.00
        4 05.00.00.02
        4 05.00.00.01
        4 05.00.00.00
        4 01.00.04.01
        4 01.00.04.00
        4 01.00.03.00
        4 01.00.02.00
        4 01.00.01.00
        4 01.00.00.03
        4 01.00.00.02
        4 01.00.00.01
        4 01.00.00.00

* Sat Sep 16 11:28 2017: add test for short overline with good underline


  Like 04.01.00.03

  ==
  ABC
  ===

* Thu Sep 14 23:53 2017: add StartLine, EndLine to System Messages for Bad Section Tests

* Thu Sep 14 23:39 2017: Remove "Node" from Node types in all nodes.json files

  It's redundant.

* Sat Jun 17 01:10 2017: remove -def-list- from test names

  do the same for enum list

* Thu Jun 15 03:12 2017: Write a tool to regen the rst tests automatically

  This will reduce the number of files in the project greatly and also make it slightly easier to refactor tests if needed.

  The rst test files can be limited to:

  - lexer_rst_test.go
  - parser_rst_test.go

  This CLI tool will get all the files in the test directories, sort the list, and generate a huge test file for Go
  automatically.

* Tue Oct 11 00:10 2016: add a document listing the un-implemented tests

  - DONE - Files with -xx in the names in testdata are tests that are not-implemented. Publish a link in README.rst in the
    How to help section.

  * Add library get/usage instructions to README.rst

  * move roadmap to roadmap.rst and link to it in README.rst

  - Finish writing how to implement an element (and test)

    * Document example test import for option lists.

    * The UltiSnips Snippets should be mentioned with snippets published to the repo.

      - Use some inline markup test as an example implementation.

	* document naming of bad tests (should include -bads after id)

    * Document debugging tips

    * Document regenerating the tests

    * section tests need to be moved into subgroups::

        ▾ 04-test-section/
          ▾ 01-good/
              04.00.00.00-title-paragraph.rst
              04.01.00.00-section-level-return.rst
              04.02.00.00-title-overline.rst

      Should be::

        ▾ 04-test-section/
          ▾ 00-simple-title/
            ▾ 01-good/
                04.00.00.00-title-paragraph.rst
          ▾ 01-levels/
            ▾ 01-good/
                04.01.00.00-section-level-return.rst
          ▾ 02-title-overline/
            ▾ 01-good/
                04.02.00.00-title-overline.rst

* Sat Jun 17 03:06 2017: Implement section parse test

  04.00.05.00-title-with-imu-nodes-xx.json

* Sat Jun 17 03:13 2017: Fix incorrect test

  04.00.04.01-bad-enum-list-with-numbered-title-nodes-xx.json

  Nodes parse as correct with no system messages, but pseduo xml shows system messages.

* Sun Feb 26 14:09 2017: Convert test checks to use testify package

* Mon Sep 04 22:02 2017: rewrite systemMessage handling

  It's attrocious

  Changing line 122 fixed a broken test after the tokenBuffer refactor

  119 func (p *Parser) systemMessageInlineMarkup(s *doc.SystemMessageNode, err parserMessage) *doc.LiteralBlockNode {
  120         switch err {
  121         case warningExplicitMarkupWithUnIndent:
  122                 s.Line = p.peek(1).Line
  123         }
  124         return nil
  125 }

* Wed Sep 13 23:40 2017: remove "null" from nodes tests.

  There should be no null.

* Sat Feb 20 01:10 2016: Should we convert char12 and vert tab to spaces before proccessing?

  From the spec:

  Other whitespace characters (form feeds [chr(12)] and vertical tabs [chr(11)]) are converted to single spaces before processing.

  - Complete whitespace handling. See the first three items in the implementation status doc

  - This might require renumbering the tests because whitespace handling is defined first in the spec...

    - If the tests are renumbered, the implementation doc test examples will need to be updated.

* Sat Sep 09 14:58 2017: use testutil.LogRun and testutil.LogPass in all table tests.

* Sun Feb 14 22:38 2016: Fix gocyclo on https://goreportcard.com/report/github.com/demizer/go-rst

* Sun Jun 11 11:03 2017: Get coverage reports above 95%

* Thu Oct 20 00:41 2016: IMPLEMENT GOOD TESTS FOR INLINE MARKUP

* Mon Jun 19 00:56 2017: The UltiSnips Snippets should be mentioned with snippets published to the repo.

  - Use some inline markup test as an example implementation.

* Mon Oct 10 17:53 2016: sectionLevels.Add() should be renamed to AddOrReuse()

  In section.go#145 a section is added or existing is returned. We should rename this function from Add() to AddOrReuse() for
  self documentation.

* Mon Oct 10 01:44 2016: Need to add blockquote levels

  Like sectionLevels, but for blockquotes. Currently set to use a hack so I can get all the tests to pass.

  Try to make indentQueue more general; perhaps we can use it for blockquotes as well as bullet lists.

* Mon Oct 10 01:27 2016: Debug output should be more like the rst2psuedo command

  I like how this debug output prints the current line and what state the state machine is in. We should use something
  similar.

  Example:

  rst2pseudoxml testdata/04-test-section/02-bad/04.00.04.00-unexpected-titles.rst --debug

* Wed Sep 20 22:56 2017: implement test 04.01.05.01

  Badly formatted section that parses with a few info level system messages. Real nasty looking though, I want to wait until
  sections and targets are completely implemented before trying to implement this test.
