All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add layout option to landing cards (DOP-2117, #311).
- Respect the
SYSTEM_PYTHON
makefile variable when creating the virtual environment.
- Add IA Support (DOP-2055)
- Add extra-compact card-group style (DOP-1836)
- Add role to link to manual v4.4 (#307)
- Validate children within tabs directives (DOP-1878)
- Update Realm .NET SDK API role to latest release (#306)
- Fix handling of sphinx-generated intersphinx inventories for pymongo, motor, and the php library docs. (DOP-1810)
- Temporarily un-deprecate directive.class (DOP-2088).
- Remove button class option (#298).
- Identify headings for 'On this page' box (DOP-2045, #297).
- step-fix: Add an argument to landing steps (#295)
- DOP-1883: update URL of kotlin SDK to avoid redirect chain (#296)
- Links to Realm SDKs should not require a trailing slash (DOP-2022).
- Product landing page directives (DOP-1970).
- Update OpenAPI directive to allow parsing through the frontend (DOP-1896).
- Apply trailing slashes to inter-docs roles (DOP-1966).
- Don't crash on failed intersphinx fetch: raise diagnostic (#287).
- Modify the toctree handling so that index.txt can add itself to the toctree with RecursionError (DOP-1931).
- Don't crash if invoked in a child directory of a project.
- Tarball bundles now contain members with 644 permissions.
- Permit tarballing of manpages (DOP-1816).
- Reorder drivers tabs (DOP-1958).
- The
:xml:
role, which was never implemented, is now removed from rstspec.toml.
- Allow "reusable" references (DOP-1857).
rstspec.toml
updates.
- Support for the
~
tag on roles to cut off all but the last.
-delimited segment (DOP-1806).
- Fix altering giza substitutions in inheriting nodes (DOP-1875).
- Don't crash upon building a manpage containing comments (DOP-1874).
- Build manpages (DOP-1584)
- Support for include options and subsets in postprocessor (DOP-323)
- Update driver, compass, ecosystem, and Realm SDK roles to point to correct URLs (DOP-1777)
- Handling of invalid tabs (parser no longer crashes, uses correct diagnostic levels)
- Support for figure border flag (DOP-1579)
- Experimental support for installation on Windows
- Handling of :copyable: flag for code blocks (DOP-1750)
- Handling of duplicate header / label naming (DOP-1326)
- Installation behavior with new pip resolver
- Add
kafka-21-javadoc
role for kafka links.
- Add suffixes to heading IDs to ensure uniqueness (DOP-1734).
- Don't rely on docutils header IDs, fixing e.g. headings with IDs like
id1
(DOP-1566). - Don't include binary name unless requested in
:option:
links (DOP-1675). - Update Realm tabsets (contributed by Nick Larew).
- Support for subcommands (DOP-1703).
dotnet-sdk
,xamarin
, andgit-scm
extlink roles (DOCSP-13010).- Blockquote suggestion when unexpected indentation is encountered.
created_at
field in the database to facilitate document expiration (DOP-1318).
- Remove LiteralBlock node.
- Static assets are now stored in the database with both filename and hash identifier, making it easier for the frontend to properly create all needed images (DOP-1643).
caption
option for code blocks (DOP-1604).mws
directive (DOP-1575).- Tabs are now defined in rstspec.toml, and validated and sorted by the parser (DOP-1450).
- Language pills are now provided in the document root node (DOP-1526).
- Double tabs-pillstrip bug (DOP-1526).
- Preserve source fileid through includes (DOP-1018).
- Extlinks should use the target name for label if no label set, not the raw uri (DOP-1581).
- RFC link labels now match legacy (DOP-1581).
- Render role content when target is not found (DOP-1601).
- Bump
node
extlink version (DOCSP-12335).
- Correctly inherit YAML ref names (DOP-1595).
- Improve callable target handling.
- Support required arguments, and apply to rstobjects (DOP-1589).
- Support targets with escaped angle brackets (DOP-1586).
- A
dbtools
role for linking to database tools docs. - New Realm rstobjects and extlinks (DOCSP-12508).
- A simple "did you mean" feature for some kinds of typos (DOP-1570).
- Ambiguous references are now automatically resolved when it is reasonable to do so (DOP-1434).
- Permit version admonitions to have no argument (DOP-1523).
- Incorrect external link syntax now yields an error (DOP-1569).
- Incorrectly monospaced text no longer inserts the warning text into the document (DOP-1511).
- Intersphinx inventory entries now have the correct fragment identifiers (DOP-1574).
- Highlighting roles (
highlight-red
,highlight-yellow
,highlight-green
,highlight-blue
).
- Linking to non-lowercase labels (DOP-1534).
- HTML IDs are now explicit in the AST (DOP-1279).
- Target matching is now case-sensitive (DOP-1277).
- Internal changes to TOC metadata (DOP-981).
- Un-deprecate the
red
role (DOP-1489).
- Assets are now saved to the correct collection.
- add bic-v2.10 role to link to v2.10 bi-connector docs (DOP-1458).
- Ambiguous target candidates are now listed.
- Batch writes to the database, significantly improving commit performance (DOP-1359).
- Support alternative no-title ref_role syntax (DOP-1429).
- Don't suppress missing option/toc include file messages.
- Sort glossary entires case-insensitively (DOP-1428).
- Support for the
prefix
field inpublished-branches.yaml
.
- OpenAPI support (DOP-1356).
- A
charts-onprem
role (DOP-1342).
- Internal error messages are now a little more helpful (DOP-1354).
- Several directive options are no longer required (DEVHUB-206).
- Fixed crashes with empty list-tables, and with some obscure markup (DOP-1354, DOP-1394).
- Language Server Protocol Diagnostics now include a
source
field of "snooty", so that users can quickly filter for snooty-related diagnostics in vscode.
- Upgraded PyInstaller to fix broken binaries.
- Support for directive fields (DOP-1295).
- Validation of required directive options (DOP-1306).
- Additional performance logging, and the
SNOOTY_PERF_SUMMARY
environment variable (DOP-1349). - Various roles and directives.
- The list-table directive no longer generates incorrect warnings (DOP-1269).
- Substitutions may now be used in directive arguments (DOP-1230).
- To prepare for updating the version of the parser used by the VSCode extension, the postprocessor has been temporarily disabled in the language server.
- The following directives are deprecated:
admonition
,danger
,caution
, andtopic
(DOP-1243).
- Directive arguments were not being properly migrated in the AST.
- Support labels beginning with numbers that contain underscores (DOP-1188)
- Support for extlinks used by Atlas docs (DOP-1233)
- fail_on_diagnostics toml flag (DOP-1132)
- Support additional ordered list labels (DOP-1129)
- Support ordered list "start" attribute (DOP-1210)
- Logging of the parser's version at startup (DOP-1213).
- Snooty parser yields glossary IDs that match the IDs generated by legacy tooling (DOP-1171)
- Improve string-handling in spec-parser (DOP-1148).
- Python 3.7 support.
- Populate literal include nodes (DOP-876).
- RefRole nodes no longer render with the prefix if no title is found (DOP-1073).
- Columns option to card-group.
- Homepage directives (DOP-1120).
- The
rfc
role is now an extlink and actually creates a reference (DOP-1128).
- Invalid YAML in tabs and card groups no longer triggers a crash (DOP-1135).
- Error code 2 is now returned if there are error diagnostics, leaving error code 1 for crashes (DOP-922).
- Generated intersphinx inventories are now compatible with older versions of Sphinx (DOP-1094).
- Snooty no longer crashes when generating or loading an intersphinx inventory with invalid target names (DOP-1079).
- Diagnostic levels are now dealt with more carefully.
- Support for the glossery directive (DOP-888).
- Optional support for logging diagnostics as JSON objects (DOP-969).
- The optional patch ID is now written to the metadata document.
- Support for links in step file headings (DOP-1015).
- Incorrect AST output with hyperlink references (DOP-1056).
- Support for deprecated versions (DOP-908).
- Definition list AST format.
- The code block
linenos
option is now correctly placed in the AST node.
- Added
spec
role. - Added support for various roles & directive options.
- Added support for passing a patch ID into the build identifier (DOP-948).
- The
std:doc
role now emitsRefRole
nodes rather thanRole
, and titles are now resolved in the parser (DOP-954).
- Diagnostic refactoring (DOP-878).
- The
doc
role is now in thestd
domain.
- Various roles.
- C# driver extlinks now point to 2.10.
- Scala driver extlinks now point to 2.9.
- Various roles and directive options.
- Prefer canonical target names in the AST: e.g.
mongod.-v
over-v
(DOP-881).
- Skip incomplete target nodes, resolving a crash. (DOP-891).
- Program & Option handling (DOCSP-8449).
- Enforce ISO 8061 dates (DOCSPLAT-825).
- Support multiple authors.
- Various roles & directives.
- The AST is now constructed with a formally specified object-oriented structure.
- Fix
ref_role
nodes with an explicit title.
- Populate substitution nodes in postprocess layer (DOCSPLAT-114).
- Support for option and program rstobjects (DOCSP-8449).
- Fix devhub image handling (DOCSPLAT-861).
- DevHub series directive.
- Devhub directive resolution and behavior.
- Directives for DevHub (DOCSP-8848).
- Tab sets for Realm (DOCSP-8787).
- Support for defining a project's title (DOCSP-7988).
- Support for defining a project's default domain (DOCSP-8723).
- Support for DevHub template directives (DOCSP-8723).
- Support for Python 3.8 (DOCSP-7399).
- Support for injecting formatting into ref_role nodes (DOCSP-7569).
- Incomplete targets are now an error: for example,
`universal link <ios-universal-links_>`_
- Directives may now have a "name" option, suppressing the docutils special-case behavior.
- Fix crashing around snooty.toml (DOCSP-8389).
-
Target/Ref validation & resolution (DOCSP-5776, DOCSP-6657).
-
Commit IDs may now be passed into the parser (DOCSP-8277).
- Domains are now included in AST nodes when relevant.
- Support for defining non-drawer TOC nodes via
toc_landing_pages
array in snooty.toml (DOCSP-7573).
- Inconsistent YAML output filenames leading to broken page previews (DOCSP-8084).
-
The following extlink roles:
fb-dev-docs
fcm
google-dev
google-android-ref
github
github-dev
electricimp
twilio
mdn
aws-go
aws-iam
aws-reference
reactjs
jwt-io
-
More semantic analysis postprocessing infrastructure (DOCSP-7574).
-
A new release process (DOCSP-7800).
- Don't crash if opening an empty project.
-
Added infrastructure to support editor preview.
-
Added infrastructure to support TOC generation.
-
Added diagnostic for merge conflict markers.
-
Parse published-branches.yaml and persist data to a metadata collection (DOCSP-7193).
-
Parsing of extract filenames that include periods (DOCSP-6904).
-
Miscellaneous reStructuredText support improvements.
-
Properly report snooty.toml errors.
-
Support for reStructuredText footnotes (DOCSP-6620).
-
Support for project-wide reStructuredText substitutions (DOCSP-6442).
-
Support for downloading and ingesting intersphinx inventories (DOCSP-5776).
-
Validation for links under the
doc
role (DOCSP-6190). -
Support for the following reStructuredText constructs:
datalakeconf
rstobjectcaption
option totoctree
includehidden
option totoctree
backlinks
option tocontents
is an enumgcp
andazure
extlinksonly
directivetab
directive accepts atabid
option (DOCSP-6493)list-table
directive accepts an argument (DOCSP-6554)card-group
directive (DOCSP-6447)
- The original filename of static assets is now saved in the
filename
field of thesnooty.assets
collection, replacing thetype
field (DOCSP-6849). - Directive "flag" options have a true value in the AST instead of null (DOCSP-6383).
- The "only" directive is now deprecated in favor of "cond".
- Parsing of the
versionadded
,versionchanged
, anddeprecated
directives (DOCSP-6504).
-
Add support for the following reStructuredText constructs:
todo
deprecated
see
describe
glossary
rubric
envvar
-
Add support for the following extlinks:
go-api
ecosystem
products
wtdocs
- Undefined source constants are now replaced with a zero-width space (\u200b), preventing them from creating a syntax error.
- No longer create spurious diagnostics about including apiargs artifacts and
hash.rst
.
-
Add support for the following directives (DOCSP-6210):
tabs-top
tabs-stitch-auth-provid
tabs-deployments
tabs-stitch-sdks
tabs-stitch-interfaces
blockquote
caution
-
Add support for the
wikipedia
role.
- All YAML parsing errors are caught, rather than just scanning errors (DOCSP-6251).
- Opening a project with missing static assets no longer triggers an unhandled exception (DOCSP-6267).
code
directive alias forcode-block
.
- Language server URIs now map correctly into local FileIds, and vice versa.
- Add
textDocument/resolve
RPC endpoint to return the source file path of an artifact relative to the project's root (DOCSP-5967).
- Diagnostic messages when failing to open a static asset are more succinct.
- Warn about YAML files with duplicated refs (DOCSP-5704).
- Don't throw exception if saving an asset to the server fails (DOCSP-5998).
- The language server can now be gracefully shutdown using a context manager, for use in tests.
-
Add support for the following roles:
api
aws
gettingstarted
master
docsgithub
guides
mms-docs
mms-home
mongo-spark
source
opsmgr
charts-v0.10
charts-v0.9
- Avoid unnecessarily reprocessing figures and literal includes.
- Automatically rebuild files if their dependent assets change.
- Heading nodes now have an attached ID.
- The full
dns
package is included in binary builds, letting them connect to the database.
-
Add support for the following directives:
image
tabs-pillstrip
tabs-cloud-providers
website
cloudmgr
stitch
charts
compass
driver
meta
topic
- Avoid processing giza substitutions in base nodes to avoid superfluous diagnostics.
raw
directive contents are now ignored.- Bundle
docutils.parsers.rst.directives.misc
in binary release to avoid runtime errors when usingunicode
.
- The
literalinclude
directive. - AST nodes for substitutions.
-
Only match PAT_EXPLICIT_TILE if needed by role.
Roles are now categorized in one of three ways:
text
roles only provide a label field in the AST.explicit_title
roles provide a target field in the AST, as well as optionally a label field.link
roles do not emit a role node at all; instead, they emit a reference with the refuri already set.
- Multiline directive arguments.
- Include guide "languages" in legacy guide syntax.
:dedent:
onliteralinclude
directives with empty lines.- Child giza nodes should not always have their parent's ref.
- Extracts should be created with the category
extracts
, notextract
.
- Support additional directives and roles
- Bundle Python hash function implementations temporarily.
- Add support for additional MongoDB rst constructs.
- Substitute constants from language-server.
- Report bad project config.
- Force encodings to utf-8.
- Bundle OpenSSL with the macOS binary release.
- Bundle Python with the binary release.