- Modified
Tue Dec 09 21:41 2014
A reStructuredText parser for and implemented in the Go programming language.
Convert tests into JSON
The docutils tests are implemented in a "psuedo xml" which is non-standard. Translating the tests into JSON has the benefit of making the reStructuredText tests programming language neutral so that reStructuredText parsers can be implemented in other programming languages. See https://github.com/demizer/go-rst/tree/master/testdata for more information.
Implement an element
Implement an element from the list above.
Write documentation
All projects need good documentation.
Test and report
Not actually possible in the current state, but using the library and writing bug reports is always helpful.
Work is currently underway on translating the docutils tests from psuedo xml into JSON.
The go-rst Library Implements 9% of the Official Specification (26 of 283 Items) |
0% Complete -- whitespace |
Done | Item | Note |
no | tab-to-space | |
no | form-feed-to-space | |
no | vertical-tab-to-space | |
0% Complete -- whitespace :: blank-lines |
no | multiple-blank-lines-is-a-single-blank-line | |
no | whitespace-preserved-in-literal-blocks | |
20% Complete -- whitespace :: indentation |
no | indented-list-item-content | |
no | indented-literal-block-content | |
yes | indented-block-quote | |
no | indented-explicit-markup-blocks | |
yes | indented-bullet-list-paragraph | |
no | indented-footnote-paragraph | |
no | indented-line-after-field-list-marker | |
no | indented-line-after-option-list-marker | |
no | dedent-ends-previous-indent-level | |
0% Complete -- escaping-mechanism |
no | escaping-mechanism | |
0% Complete -- reference-names |
no | elemenormalized-whitespace-in-reference-names | |
no | case-insensitive-reference-name | |
no | simple-reference-footnote-label | |
no | simple-reference-citation-label | |
no | simple-reference-interpreted-text-roles | |
no | simple-reference-hyperlink-references | |
no | simple-reference-backquotes | |
no | phrase-reference-backquotes | |
no | shared-reference-namespace | |
0% Complete -- document-structure |
0% Complete -- document-structure :: document |
no | doctree-top-level-element-document | |
100% Complete -- document-structure :: sections |
yes | section | All tests from docutils converted to JSON and implemented. |
yes | title | |
yes | underline | |
yes | overline | |
yes | overline-underline-match-length | |
yes | overline-underline-match-character | |
yes | overline-underline-with-inset-title | |
yes | overline-underline-is-distinct-from-underline-only-section | |
yes | underline-only-section-no-inset | |
yes | enforced-section-hierarchy-using-adornments | |
yes | nested-sections | |
yes | section-body-elements | |
yes | six-level-section-for-html | |
yes | automatic-section-hyperlink | |
25% Complete -- document-structure :: transitions |
yes | transition-marker | |
no | sallow-begin-or-end-transitions | |
no | sallow-adjacent-transitions | |
0% Complete -- body-elements |
no | doctest-blocks | Use Go instead of python. |
50% Complete -- body-elements :: paragraphs |
yes | basic-paragraph | |
yes | paragraph-separated-by-blankline | |
no | paragraph-with-inline-markup | |
0% Complete -- body-elements :: bullet-lists |
no | basic-unordered-bullet-list | |
no | bullet-list-item-body-text-is-relatively-left-aligned | |
no | bullet-list-with-blankline-and-left-aligned-body-element | |
no | left-aligned-sublist-separated-by-blanklines | |
no | bullet-list-dedent-level-return | |
no | optional-blankline-after-bullet-list-item-body | |
no | warning-on-missing-blankline-after-bullet-item | |
0% Complete -- body-elements :: enumerated-lists |
no | arabic-numerals | |
no | uppercase-alphabet-characters | |
no | lowercase-alphabet-characters | |
no | uppercase-roman-numerals | |
no | lowercase-roman-numerals | |
no | auto-enumerator | |
no | period-suffix | |
no | parenthesis-suffix | |
no | parenthesis-prefix-and-suffix | |
no | newlist-on-enumerator-mismatch | |
no | newlist-on-enumerator-sequence-interruption | |
no | level-1-system-message-on-non-ordinal-one-start | |
no | roman-numerals-must-begin-with-i-or-ii | |
no | alphabetical-list-cannot-begin-with-i | |
no | second-line-after-enumerated-list-item-is-valid | |
no | escape-mechanism-for-paragraphs-that-begin-with-enumerator | |
no | nested-enumerated-lists | |
43% Complete -- body-elements :: definition-lists |
yes | definition-term | |
no | definition-term-inline-markup | |
yes | indented-definition-block | |
yes | indented-definition-block-with-body-elements | |
no | definition-classifier | |
no | definition-multiple-classifiers | |
0% Complete -- body-elements :: field-lists |
no | field-name | |
no | field-name-colon-escape | |
no | field-name-inline-markup | |
no | field-name-case-insensitive | |
no | field-name-multi-word | |
no | field-body | |
no | field-body-relative-indented-body-elements | |
no | field-body-long-with-relative-indent | |
no | rcs-keywords | |
0% Complete -- body-elements :: field-lists :: bibliographic-fields |
no | first-element-field-list-to-bibliographic-data | |
no | author-field-name | |
no | authors-field-name | |
no | authors-field-name-with-colon | |
no | authors-field-name-with-comma | |
no | authors-field-name-with-bullet-list | |
no | organization-field-name | |
no | contact-field-name | |
no | address-field-name | |
no | address-field-name-multi-line-whitespace-preservation | |
no | version-field-name | |
no | status-field-name | |
no | date-field-name | |
no | copyright-field-name | |
no | dedication-field-name | |
no | dedication-field-name-is-unique | |
no | dedication-field-name-with-body-elements | |
no | abstract-field-name | |
no | abstract-field-name-is-unique | |
no | abstract-field-name-with-body-elements | |
0% Complete -- body-elements :: option-lists |
no | short-posix-style | |
no | long-posix-style | |
no | gnu-plus-style | |
no | dos-style | |
no | argument-placeholder-alphabetic | |
no | argument-placeholder-angle-brackets | |
no | multiple-option-synonyms | |
no | option-description | |
no | option-description-with-multiple-body-elements | |
no | option-description-opening-blank-line | |
no | option-description-optional-blank-lines | |
no | option-description-closing-blank-line | |
0% Complete -- body-elements :: literal-blocks |
no | literal-blocks | |
no | double-colon-is-removed-from-output | |
no | double-colon-ends-paragraph | |
no | double-colon-partial-minimization | |
no | double-colon-full-minimization | |
no | indented-literal-blocks | |
no | quoted-literal-blocks | |
0% Complete -- body-elements :: line-blocks |
no | line-blocks | |
no | line-blocks-with-inline-markup | |
no | indented-line-blocks | |
no | line-blocks-with-preserved-blank-lines | |
no | line-blocks-with-preserved-indentation | |
no | line-blocks-with-line-continuation | |
no | line-blocks-end-with-blankline | |
25% Complete -- body-elements :: block-quotes |
yes | block-quote | |
yes | block-quote-with-body-elements | |
no | block-quote-with-inline-markup | |
no | block-quote-with-attribution | |
no | multiple-block-quotes-with-attribution | |
no | empty-comment-starts-block-quote | |
no | empty-comment-separates-block-quotes | |
0% Complete -- body-elements :: tables |
no | indented-table-is-blockquote | |
no | tables-are-left-aligned | |
0% Complete -- body-elements :: tables :: grid-table |
no | body-elements | |
no | row-separator | |
no | column-separator | |
no | header-rows | |
0% Complete -- body-elements :: tables :: simple-tables |
no | top-and-bottom-borders | |
no | column-spans | |
no | row-separation-character | |
no | header-rows | |
no | one-space-column-boundary | |
no | two-space-column-boundary | |
no | two-column-minimum-table-header | |
no | no-blank-line-after-header-row-separator | |
no | table-rows | |
no | table-rows-contain-body-elements | |
no | table-cell-line-continuation | |
no | first-column-cells-of-new-rows-must-contain-text | |
no | first-column-comment-omits-cell-text | |
no | first-column-back-slash-space-escape | |
no | ignore-blanklines-between-rows | |
no | blanklines-within-multilne-rows | |
no | rightmost-column-is-unbounded | |
17% Complete -- body-elements :: explicit-markup-blocks |
no | start-notation | |
no | indented-block-body | |
no | blank-lines | |
no | citations | |
yes | comments | |
0% Complete -- body-elements :: explicit-markup-blocks :: footnotes |
no | manual-numbered | |
no | auto-numbered | |
no | auto-symbol | |
no | mixed-manual-and-auto-numbered | |
0% Complete -- body-elements :: explicit-markup-blocks :: explicit-hyperlink-targets |
no | named-targets | |
no | anonymous-targets | |
no | internal-targets | |
no | internal-targets-chained | |
no | external-targets | |
no | indirect-targets | |
0% Complete -- body-elements :: explicit-markup-blocks :: explicit-hyperlink-targets :: directives |
no | directive-markers | |
0% Complete -- body-elements :: explicit-markup-blocks :: explicit-hyperlink-targets :: directives :: directive-blocks |
no | directive-arguments | |
no | directive-options | |
no | directive-content | |
0% Complete -- body-elements :: explicit-markup-blocks :: explicit-hyperlink-targets :: directives :: directives |
no | code | |
no | image | |
no | admonitions | |
no | figure | |
no | math | |
no | list-table-yaml | |
no | contents | |
no | sectnum | |
no | meta | HTML meta tags. |
no | replace | |
no | date | |
no | include | |
no | raw | |
no | class | For HTML output. |
no | role | |
0% Complete -- body-elements :: explicit-markup-blocks :: substitution-definitions |
no | definition-block | |
no | circular-reference-error | |
no | case-sensitive-matching | |
0% Complete -- implicit-hyperlink-targets |
no | from-section-titles | |
no | from-footnotes | |
no | from-citations | |
no | from-extensions | |
no | explicit-hyperlink-targets-have-priority | |
no | level-1-system-message-for-duplicate-implici-hyperlink-targets | |
no | level-2-system-message-for-duplicate-explicit-hyperlink-targets | |
no | unique-hyperlink-targets | |
0% Complete -- inline-markup |
no | cannot-begin-or-end-with-whitespace | |
no | cannot-be-nested | |
no | recognition-order | |
no | character-level-inline-markup | |
no | emphasis | |
no | strong-emphasis | |
no | inline-literals | |
no | inline-internal-targets | |
no | footnote-references | |
no | citation-references | |
no | substitution-references | |
0% Complete -- inline-markup :: inline-markup-recognition-rules |
no | start-strings-must-start-text-block | |
no | start-strings-preceded-by-whitespace | |
no | start-strings-preceded-by-supported-ascii-chars | |
no | start-strings-preceded-by-supported-unicode-chars | |
no | start-strings-preceded-by-supported-unicode-chars | |
no | start-strings-followed-by-non-whitespace | |
no | end-strings-preceded-by-non-whitespace | |
no | end-strings-must-end-text-block | |
no | end-strings-are-followed-by-whitespace | |
no | end-strings-are-followed-by-supported-ascii-chars | |
no | end-strings-are-followed-by-supported-unicode-chars | |
no | start-strings-preceded-with-immediate-supported-chars-must-not-be-followed-by-closing-chars | |
no | end-string-must-be-separated-by-start-string-char | |
no | unescaped-back-slash-disables-markup | |
0% Complete -- inline-markup :: interpreted-text |
no | emphasis-role | |
no | literal-role | |
no | code-role | |
no | math-role | |
no | pep-reference | |
no | rfc-reference | |
no | strong-role | |
no | subscript-role | |
no | superscript-role | |
no | title-reference-role | |
no | raw-role | |
0% Complete -- inline-markup :: hyperlink-references |
no | named-references | |
no | anonymous-references | |
no | embedded-uris-and-aliases | |
0% Complete -- inline-markup :: standalone-hyperlinks |
no | absolute-uri | |
no | email-addresses | |