lines 5-799 of file: user/2022.xrst {xrst_begin 2022 user} {xrst_spell amd breakpoint conf css dev dir dismod docstring genindex len literalinclude matlab ok overline pdf pyproject pyspellchecker rtd selectable spdx toc toctree toml txt underbar xsrst } xrst Release Notes for 2022 ########################### mm-dd ***** 12-31 ===== #. Bring :ref:`get_started-name` up to date with current xrst. To be specific, :ref:`user-guide@Install Stable Version`, correct location of get_started.html, and fix setting of :ref:`config_file@input_files`. #. The :ref:`toc_cmd@Syntax@toc_table` command was changed to use **Name** instead of **Child** as the heading for the page name column. #. The :ref:`run_xrst@index_page_name` option was added to the command line. 12-30 ===== #. Add the :ref:`run_xrst@rst_only` option. #. Change to name of the root level file back to ``index`` and prohibit a :ref:`begin_cmd@page_name` from being ``index``. #. Change the default html, tex, and rst :ref:`config_file@directory` to be build/html, build/tex, and build/rst respectively. #. Add the :ref:`.readthedocs.yaml-name` example. #. Create the first :ref:`stable install ` . 12-22 ===== Add the :ref:`wish_list@Theme` wish list item, and a warning that corresponding html theme options :ref:`config_file@html_theme_options@Default` may change in the future. 12-20 ===== It used to be that processing was terminated when a warning occurred. This could end up with the output rst files being reported as the source files. This has been fixed and xrst now completes its processing and exits with non-zero status (when a warning occurs). 12-16 ===== #. Add a comparison between the xrst literal command and the sphinx :ref:`literal_cmd@literalinclude` directive. #. Update the :ref:`wish_list@RST Command File Names` wish list entry. 12-15 ===== #. Change *start* to :ref:`literal_cmd@start_after` and *stop* to :ref:`literal_cmd@end_before` so that the xrst literal command is more like the rst literalinclude directive. #. Change the :ref:`get_started-name` example so that is uses the name get_started.xrst for its input file and so it has a link to the text that goes in this file. #. Add the :ref:`dir command` . 12-14 ===== #. Change the page sources to be the proper section of the xrst input files, instead of the extracted rst files. #. Change ``conf_file`` to :ref:`run_xrst@config_file` . #. Add the :ref:`run_xrst@page_source` option. #. Make the :ref:`config_file@directory@project_directory` relative to where the configuration file is located, not where the xrst is run. #. Change ``html/index.html`` to ``html/get_started.html`` in :ref:`get_started-name` (index.html no longer works and get_started.html is a better place to start). #. Fix the group_list :ref:`run_xrst@group_list@Example` command for building the xrst developer documentation (remove xrst.xrst from command line). #. Fix case were an :ref:`config_file@input_files` command includes a binary file in its list. (If a file cannot be read as text, it is ignored.) 12-12 ===== #. Remove dependency on ``import dismod_at``. This was a mistake added when input_files was added to the configuration files yesterday. #. Fix default value of :ref:`config_file@input_files` and :ref:`config_file@include_all` . #. Make ``git ls-files`` the default input_files command and add discussion of warning about input_files in :ref:`get_started-name` example. 12-11 ===== #. Add condition that :ref:`begin_cmd@group_name` must be a sequence of the letters a-z to the documentation. Check this condition in the :ref:`config_file@root_file` settings. #. Add the :ref:`config_file@input_files` command to the configuration file. 12-10 ===== #. Remove the Sphinx Error Messages with list entry because it was completed on :ref:`2022@mm-dd@11-13`. #. Add the View Page Sources wish list entry (which was completed on :ref:`2022@mm-dd@11-14` ). #. Change the configuration file preamble table to the :ref:`config_file@include_all` table and change the rst_substitution name to :ref:`config_file@include_all@rst_prolog` . #. Improve :ref:`config_file-title` error messaging. #. It is now ok for a :ref:`begin_cmd@page_name` to be ``index`` (it still cannot be ``genindex`` ). 12-09 ===== Add the :ref:`run_xrst@rename_group` command line option. 12-08 ===== Change the :ref:`run_xrst@group_list` so that each element of the list is a separate command line argument (instead of one command line argument with commas separating entries). 12-05 ===== #. Document the fact that :ref:`config_file@directory@project_directory` must exist and the other directories will be created in they do not exist. #. Fix creation of :ref:`config_file@directory@rst_directory` so that it will create parent directories (if necessary); e.g., if it is build/rst it may need to create build. #. Change *pdf_directory* to :ref:`config_file@directory@tex_directory` and do not automatically run the latex to pdf conversion; see the :ref:`run_xrst@target@tex` target discussion. #. The :ref:`comment_cmd-name` was replaced by a space when it was at the beginning of a line and there was text after it on the same line. This has been fixed. #. The line number errors were not being translated from rst files to corresponding xrst input files when target was :ref:`run_xrst@target@tex` . This has been fixed. #. Edit the :ref:`purpose@Features` description of xrst. To be more specific, describe the two levels of tables of contents and how choosing the html theme works. 12-1 ==== #. Add the restriction that a :ref:`begin_cmd@page_name` cannot be ``genindex`` . #. Add some common verbs to the configure file :ref:`config_file@not_in_index` Example #. Check that labels define used sphinx commands do not contain ``@`` or end with ``-name`` or ``-title`` . This makes them easy to distinguish form labels generated by xrst. 11-30 ===== #. Create a :ref:`config_file@directory` table in the toml configuration file and put the *project_directory* , *rst_directory* , *html_directory* , and *pdf_directory* setting there. #. Change the *toml_path* command line argument to *config_file* because it no longer specifies the *project_directory* . #. Change the *output_dir* command line argument to the choice of :ref:`config_file@directory@html_directory` and *pdf_directory* in the toml configuration file. #. Fix path resolution so that :ref:`config_file@directory@rst_directory` may contain ``../`` ; i.e., it need not be a sub-directory of the project directory. #. If :ref:`run_xrst@target` is ``pdf`` , run latex twice to properly resolve cross references. #. Change the :ref:`toml file directories ` to be sub-directories of the build directory (except for the project directory). 11-29 ===== 1. Improve the :ref:`toc_list_example-title` , this includes improving its child pages. 2. If :ref:`run_xrst@target` is pdf, the page name is added to the front of the page title (because one my end up there by selecting the page name for link). 11-28 ===== 1. The automatically generated :ref:`heading_links@Labels@Level Zero@page_name` label was changed from *page_name* to *page_name* ``-name`` . This makes it easy identify the xrst automatically generated labels. 2. If :ref:`run_xrst@target` is pdf, the *page_name* is no longer displayed as a separate heading above the :ref:`heading_links@Labels@Level Zero@page_title` . 11-27 ===== Fix a problem in the latex preamble section of :ref:`auto_file@conf.py` . This problem started on 11-23 when the toml file preamble was split up the latex macros and the substitutions. 11-26 ===== The output directory specification was moved from the xrst toml file to the xrst command line. It was moved back to *output_dir* and later replaced by :ref:`config_file@directory@html_directory` and *pdf_directory* . This undid one of the changes on :ref:`2022@mm-dd@11-19` . THe 11-24 ===== Enable the use of upper case letters in a :ref:`begin_cmd@page_name`. As an example, change ``test_example`` to :ref:`testExample-name` . 11-23 ===== 1. The toml file preamble table was changed to separately specify the rst substitutions and the latex macros. 2. Add the :ref:`configure_example-name` page and improve the :ref:`get_started-name` page. 3. Add the :ref:`config_file@html_theme_options` table was added, :ref:`run_xrst@html_theme` was changed to allow for any theme, and the :ref:`run_xrst@local_toc` was added. If you were using sphinx_rtd_theme, you will have to include the ``--local_toc`` command line argument to get the same results as you used to. 11-22 ===== The :ref:`config_file-name` was changed to be a sequence of tables. If a table only has one entry, the entry is named data. 11-21 ===== 1. No longer necessary to create a sub-directory called ``sphinx`` in the :ref:`get_started-name` example. 2. Use ``xrst.toml`` as the default value for :ref:`run_xrst@config_file` . 3. Change the command link argument flags to use full names; i.e., change --html -> --html_theme and --group -> --group_list . 4. Change the :ref:`suspend_example-name` to demonstrate documenting in one language and implementing in a different language. 11-20 ===== 1. Change the root_file command line argument to *toml_path* on :ref:`2022@mm-dd@11-30` it was changed to :ref:`run_xrst@config_file` . 2. Add :ref:`config_file@project_name` and :ref:`config_file@root_file` to the toml file. 3. Use the notation :ref:`config_file@directory@project_directory` for the directory that all the xrst file name are relative to. 11-19 ===== 1. The :ref:`begin_cmd@group_name@Default Group` is now represented by ``default`` in the :ref:`run_xrst@group_list` command line argument. 2. The wish list configuration item was completed using :ref:`config_file-name` . #. The output_dir command line argument was replaced by output_directory in the ``config_file`` file. #. The sphinx_dir command line argument was replaced by :ref:`config_file@directory@rst_directory` in the ``config_file`` file. #. The preamble.rst file was replaced by the preamble section of the ``config_file`` file. #. The spelling file was replaced by the :ref:`config_file@project_dictionary` section of the ``config_file`` file. #. The keyword file was replaced by the :ref:`config_file@not_in_index` section of the ``config_file`` file. 11-18 ===== 1. The :ref:`literal_cmd-name` has been extended to work with the file extension \*.txt (it is mapped to no highlighting). 2. The discussion of :ref:`double word ` errors was improved. 3. The detection of duplicate labels in a page was detecting label definitions inside of literal blocks. This was an error and has been fixed. 4. Mention the difference between the xrst literal :ref:`literal_cmd@display_file` name and the sphinx ``literalinclude`` file name. 11-16 ===== The xrst spell checking was including the *display_file* name in the one argument :ref:`literal_cmd-title` . This has been fixed; i.e., *display_file* is no longer checked for spelling errors. 11-15 ===== 1. Add the :ref:`run_xrst@rst_line_numbers` option. 2. There was a problem when a space followed a colon in a header. This has been fixed; for example see :ref:`get_started@Heading: Links to this Page` . 3. In the :ref:`heading to label ` the at sing ``@`` is converted to a dash ``-`` (it used to be converted to an underbar ``_`` ). This makes it more link that :ref:`heading_links@Labels@Label To Anchor` conversion. 11-14 ===== 1. The :ref:`heading_links@Labels@Label To Anchor` conversion was changed to include the page name in the anchor. This reduced the chance of headings having the same anchor. 2. The error message when two labels have the same anchor was improved. This includes labels defined by sphinx commands and automatically generated xrst :ref:`heading_links@Labels` for each heading. 11-13 ===== 1. The sphinx error messages were using line numbers in the rst files created by xrst. These line numbers have been converted to the original xrst input files. 2. The command line argument *rst_line* was removed because the error line numbers are now automatically converted and so there is no need for a conversion table. 11-05 ===== There was a python breakpoint just before the call to display an xrst syntax error (so the error message was not displayed). This has been fixed. 11-01 ===== 1. Change the label for a page title from *page_name* ``-0`` to *page_name* ``-title`` . 2. Improve the :ref:`heading_links-name` and :ref:`heading_example-name` discussion of the labels that display the page name and page title 10-31 ===== 1. Add a description of the conversion of :ref:`heading_links@Labels@Label To Anchor` and make it an error for two labels the have the same anchor. 2. Improve the group list :ref:`run_xrst@group_list@Example` . 3. If for a single group there was more then on page in the root_file and the first such page not a parent for the others, the other pages were not included in the documentation. This has been fixed. 10-29 ===== 1. The program used to generate the assert below when there was no newline at the end of an input file. This has been fixed:: File .. add_line_numbers.py ... assert previous == len(data_in) - 1 2. The list example was removed and the :ref:`testExample-name` was added. 3. The required packages were not being automatically installed because they were under the wrong heading in the pyproject.toml file. This has been fixed. 10-24 ===== 1. Improve :ref:`spell command ` documentation and :ref:`code_cmd@Spell Checking` documentation in the code command. 2. Fix mistaken report of double word error when there was a command, that does not get checked for spelling, between the two words. 10-23 ===== Add ``\{xrst_spell_off}`` and ``\{xrst_spell_on}`` to the spell :ref:`spell_cmd@Syntax` . 10-21 ===== When there is more than one version of the syntax for a command use a list to separate the different versions of the syntax; e.g., see :ref:`toc_cmd@Syntax` for the toc command. 10-11 ===== Add an :ref:`comment_example@rst Comments` example and compare it to :ref:`comment_example@xrst Comments` . 10-05 ===== Fix some spelling errors found when changing pyspellchecker from version 0.6.3 to 0.7.0. 10-04 ===== 1. The :ref:`heading_links@Labels@Heading-To-Label` of headings was changed to not convert colons ``:`` . 2. The preamble.rst example file was change to use three (instead of four) spaces for a tab. 3. Add a substitution and latex macro in the preamble.rst example file. 10-03 ===== 1. The local table of contents was moved after the text below the title amd just before the first heading link (when :ref:`run_xrst@html_theme` is ``sphinx_rtd_theme`` ). 2. The :ref:`heading_links@Labels@Heading-To-Label` of headings was changed to remove backslashes from labels. 10-02 ===== Remove the developer documentation wish list item because it was completed on 09-21_ . 09-26 ===== An Underbar can be used at the end of a title if it is escaped with a backslash. So remove the error message for this case; see :ref:`2022@mm-dd@09-17` . 09-25 ===== The ``conf.py`` file has an error when there were no macros in the preamble.rst file. This has been fixed. 09-24 ===== 1. Remove the xrst_before_title wish list item because it was completed. 2. Add :ref:`examples ` showing how to use group list option. 3. Fix a problem with build the pdf :ref:`run_xrst@target` on sphinx 4.1.2, to be specific:: ! LaTeX Error: Command \thesubpage undefined. 4. There was a problem with the :ref:`code_cmd-name` when it was inside a list. This has been fixed and the corresponding :ref:`testExample@Code Command in List` example now displays properly. To be specific, its second item starts with 2 instead of 1. 5. Remove the latex generated section numbers from the pdf output because xrst includes its own value for the section numbering. 09-23 ===== 1. The error message when a file specified by a :ref:`toc_cmd-name` did not correctly state the command with the error. This has been fixed. 2. Modify the wish list :ref:`wish_list@Tabs` item. Add the xrst_before_title wish list item. 09-22 ===== 1. The code command would not include the :ref:`comment character ` in it's displayed output. This has been fixed. 2. An RST Directive was added to the list example. (This has been removed because it did not function properly.) 3. All the pages were being included by the :ref:`toc_cmd-name`. This has been fixed; i.e., only child pages with the same :ref:`begin_cmd@group_name` are included. 09-21 ===== 1. Add the ``dev`` group to the xrst documentation. This group contains the developer documentation; see :ref:`run_xrst@group_list` . 2. Change the :ref:`comment_ch_cmd-name` from file scope to page scope. 09-20 ===== Change :ref:`indent_example-name` so that it is also a python docstring and add the :ref:`docstring_example-name`. The :ref:`spell_example-name` was moved from spell.py to spell.xrst because it does not have any python code in it. 09-19 ===== If :ref:`run_xrst@html_theme` is sphinx_rtd_theme, modify the theme.css file so that the full width of display window is used and the navigation sidebar takes less space. (The navigation side bar does not need as much space when using xrst.) 09-18 ===== 1. Fix the indentation when an xsrst code command in a list item and add an example that demonstrates this case; see :ref:`testExample@Code Command in List` . 2. Add four new items to the :ref:`wish_list-name` (and edit the Tabs item). 09-17 ===== Report an error when the underbar character ``_`` is at the end of a heading (because Sphinx does not handle this case). 09-15 ===== Put the dates in the release notes below the heading :ref:`2022@mm-dd` . This makes the corresponding automatically generated links work better because they use the date instead of an id number that changes with each change to the release notes. 09-14 ===== #. Change the link to the title for a page from ``@`` *page_name* to *page_name* ``-title`` ; see :ref:`heading_links@Labels@Level Zero` heading links. This has the advantage that the html link uses the page name instead of an id number. #. Do not map characters (except for ``:`` and ``@`` ) when automatically creating labels; see :ref:`heading_links@Labels@Heading-To-Label` for heading links. This makes these labels work more link the automatic standard rst labels. #. There was a bug in the reported line number when a :ref:`begin_cmd@page_name` was not valid. This has been fixed 09-13 ===== There was a crash during the error message when the language was included in the :ref:`\{xrst_code}` that terminated a code command. This has been fixed. 09-11 ===== #. Change :ref:`comment_ch_example-name` to be a matlab / octave input file example. #. The :ref:`run_xrst@replace_spell_commands` option did not work properly in files that contained a :ref:`comment_ch_cmd-name`. This has been fixed. #. The :ref:`indent_cmd-name` did not work properly in files that contained :ref:`comment_ch_cmd-name`. This has been fixed. #. The comment command was added; see :ref:`comment_example-name`. #. Add an error message when :ref:`comment_ch_cmd-name` is present but not used before the :ref:`begin_cmd-name` for a page. #. There was a bug when there was more then one :ref:`code_cmd-name` pair in a page. This has been fixed. 09-09 ===== 1. There was a problem with the :ref:`toc_cmd@Child Links` at the end of a page when there was no xrst toc command in the page. This has been fixed. 2. The line numbers reported by error messages was wrong when a file began with a newline. This also caused the :ref:`run_xrst@replace_spell_commands` option to not work. These problems have been fixed. 09-08 ===== There was a bug in the :ref:`run_xrst@replace_spell_commands` option when generating double words exceptions. This has been fixed. 09-05 ===== The :ref:`xrst_table_of_contents-title` did not build properly unless ``|space|`` was defined in preamble.rst file. This has been fixed. 09-04 ===== Change the location of the output html files so they are in the output_dir instead of its ``rst`` subdirectory. 09-02 ===== 1. Change :ref:`literal_cmd-name` so that display file is always first (when it appears in the syntax). 2. Exit with an error message when an heading underline is longer than the heading text above or when the overline is different from the underline. 08-31 ===== Change copyright and license notice to use spdx_ . .. _spdx: https://spdx.dev/resources/use/ 08-30 ===== Change 'section' to 'page' because section is used in sphinx to refer to text grouped by headings. 08-29 ===== Add the :ref:`run_xrst@replace_spell_commands` option and remove the corresponding :ref:`wish_list-name` item. 08-27 ===== Fix build when :ref:`run_xrst@target` is pdf. To be specific, do not include :ref:`auto_file@xrst_index.rst` in index.rst. 08-24 ===== 1. Allow headings to be just one character; e.g., :ref:`heading_example@Another Level One@x` in the :ref:`heading_example-name` section. Also fix the displayed labels in that example section by changing ``.`` to ``@``. 2. When a character that is not a letter or white space appears in the :ref:`spell_cmd-name` world list, the error used to report the line number where the spell command started. Now it reports the line where the bad character occurs. 08-22 ===== 1. Better detection and reporting of syntax errors in :ref:`commands-name` . 2. Add ``sphinx_book_theme`` to the possible choices for :ref:`run_xrst@html_theme`. 3. Remove the :ref:`wish_list-name` subset documentation item. It was completed on :ref:`2022@mm-dd@08-05` when the :ref:`run_xrst@group_list` option was added. 4. Change the standard for each level of indent from 4 to 3 spaces and remove the corresponding wish list item. 08-21 ===== 1. Change the command names listed below; see :ref:`toc_cmd-name` and :ref:`literal_cmd-name` . This was done because the child commands act like sphinx toctree commands and the file command acts like a sphinx literalinclude command. .. csv-table:: :widths: auto xrst_file,->,xrst_literal xrst_children,->,xrst_toc_hidden xrst_child_list,->,xrst_toc_list xrst_child_table,->,xrst_toc_table 2. Use the backslash in ``\{xrst_`` to escape xrst :ref:`commands-name` . In addition, remove the restriction that commands must occur at the beginning of a line. (The :ref:`code_cmd-name` never had this restriction.) 08-20 ===== 1. Add the :ref:`run_xrst@html_theme` option to the xrst command line. 2. Make some minor corrections to the documentation for labels under :ref:`heading_links@Labels@Level Zero` and the first item under :ref:`heading_links@Labels@Discussion` . 08-17 ===== Change the xrst command :ref:`run_xrst@Syntax` to use more descriptive flags; e.g. ``-v`` was changed to ``--version``. 08-15 ===== 1. Add ``deprecated`` to the xrst dictionary. 2. Extend keyword file to remove version number from index. 08-09 ===== 1. The colon ``:`` was added to the characters that get changed to underbar ``_`` when converting headings to labels. This has been change; see :ref:`2022@mm-dd@11-15` . 2. Sphinx warnings that occurred while running xrst were not being reported. This has been fixed. 3. Two broken cross reference links (reported by sphinx warnings) were fixed. 08-08 ===== 1. Fix documentation for relative location of :ref:`literal_cmd@display_file` in literal command and :ref:`toc_cmd@File Names` in toc commands. This changed from where xrst is execute to where root_file is located on :ref:`2022@mm-dd@07-30` . 2. Improve the documentation :ref:`index`; for example, improve keyword file documentation. 08-07 ===== 1. Add the :ref:`run_xrst@version` option which prints the version of xrst. 2. Put project_name at top of html documentation. 08-06 ===== 1. Automatically run sphinx after xrst has created the sphinx input file. 2. Add the output_dir option to the command line. 3. Add the :ref:`literal_cmd@No start or end` syntax to the literal command. 08-05 ===== 1. Add the :ref:`run_xrst@group_list` option to the command line. 2. Use the base part of root_file as the sphinx project name. 08-04 ===== Make :ref:`run_xrst@target` and sphinx_dir optional command line arguments with default values; see the new xrst :ref:`run_xrst@Syntax`. 08-03 ===== The heading links at the :ref:`heading_links@Labels@Level Zero` were changed to make it easier to display the section name as the linking text. You must change ``:ref:`` ` *page_name* ` to ``:ref:`` ` @ *page_name* ` to get the linking text to be the title (as it was before this change). The following can be used to convert *file_name* to this new convention: | bin/update_xrst.py ref_section *file_name* *file_name* 07-31 ===== Move the hidden toctree commands in rst files from beginning to end of sections. This puts the parent sections before their children in the pdf version of the documentation (see :ref:`run_xrst@target` . 07-30 ===== 1. Automatically create the file :ref:`auto_file@conf.py`. 2. Make all file names, except the root_file, relative to where the root file is located. 3. The file names for preamble.rst, spelling, and keyword are no longer user selectable. These names have been removed from the ``xrst`` :ref:`run_xrst@Syntax` and the corresponding files are optional (no longer required). 07-28 ===== 1. Change ``xsrst`` to ``xrst`` 2. Create the first :ref:`pip install ` of xrst. 07-27 ===== Improve the specification of how the toc commands and begin_parent command interact; see :ref:`toc_cmd@Children`. 07-26 ===== 1. Change the heading level separator character from period ``.`` to at sign ``@``; see links to headings :ref:`heading_links@Labels@Other Levels`. 2. Add period ``.`` to the list of valid characters in a :ref:`begin_cmd@Page_name`. 3. Change the following section names in the xrst documentation: xrst_py -> xrst.py, conf_py -> conf.py. 07-25 ===== 1. Require that the suspend and resume commands are in their own line; see :ref:`suspend_cmd-title`. 2. A problem was fixed the table corresponding to the *rst_line* command line argument. To be specific, the indices in the rst file were one larger than they should have been. (This command line argument has been removed; see :ref:`2022@mm-dd@11-13` .) 07-24 ===== 1. Remove ignore spelling of latex commands from wish list (done). 2. Add a standard indent, Relative File Names, and Git Repository entries to wish list. All of these items have been completed. 07-21 ===== Ignore the spelling of all words that are preceded by a backslash (this ignores all latex commands); see :ref:`spell_cmd-title`. {xrst_end 2022}