diff --git a/docs/ldml/tr35-dates.md b/docs/ldml/tr35-dates.md
index 27cfb842727..07362b84f6b 100644
--- a/docs/ldml/tr35-dates.md
+++ b/docs/ldml/tr35-dates.md
@@ -91,6 +91,25 @@ The LDML specification is divided into the following parts:
* [Week of Year](#Date_Patterns_Week_Of_Year)
* [Week Elements](#Date_Patterns_Week_Elements)
* [Parsing Dates and Times](#Parsing_Dates_Times)
+* [Semantic Skeletons](#Semantic_Skeletons)
+ * [Parts of a Semantic Skeleton](#Parts_of_a_Semantic_Skeleton)
+ * [Semantic Field Sets](#Semantic_Field_Sets)
+ * [Date Field Sets](#Semantic_Date_Field_Sets)
+ * [Calendar Period Field Sets](#Semantic_Calendar_Period_Field_Sets)
+ * [Time Field Sets](#Semantic_Time_Field_Sets)
+ * [Time Zone Field Sets](#Semantic_Time_Zone_Field_Sets)
+ * [Composite Field Sets](#Semantic_Composite_Field_Sets)
+ * [Semantic Skeleton Options](#Semantic_Skeleton_Options)
+ * [Length](#Semantic_Skeleton_Length)
+ * [Alignment](#Semantic_Skeleton_Alignment)
+ * [Year Style](#Semantic_Skeleton_Year_Style)
+ * [Hour Cycle](#Semantic_Skeleton_Hour_Cycle)
+ * [Fractional Second Digits](#Semantic_Skeleton_Fractional_Second_Digits)
+ * [Time Zone Style](#Semantic_Skeleton_Time_Zone_Style)
+ * [Generating Patterns for Semantic Skeletons](#Generating_Patterns_for_Semantic_Skeletons)
+ * [Mapping to Standard Skeletons](#mapping-to-standard-skeletons)
+ * [Year Style Skeleton Variations](#Semantic_Year_Style_Skeleton_Variations)
+ * [Semantic Skeleton Conformance](#Semantic_Skeleton_Conformance)
## Overview: Dates Element, Supplemental Date and Calendar Information
diff --git a/docs/ldml/tr35-messageFormat.md b/docs/ldml/tr35-messageFormat.md
index 409a1774810..e13920d0874 100644
--- a/docs/ldml/tr35-messageFormat.md
+++ b/docs/ldml/tr35-messageFormat.md
@@ -50,125 +50,121 @@ The LDML specification is divided into the following parts:
* [Syntax](#syntax)
* [Design Goals](#design-goals)
* [Design Restrictions](#design-restrictions)
- * [Messages and their Syntax](#messages-and-their-syntax)
- * [Well-formed vs. Valid Messages](#well-formed-vs.-valid-messages)
- * [The Message](#the-message)
- * [Declarations](#declarations)
- * [Reserved Statements](#reserved-statements)
- * [Complex Body](#complex-body)
- * [Pattern](#pattern)
- * [Quoted Pattern](#quoted-pattern)
- * [Text](#text)
- * [Placeholder](#placeholder)
- * [Matcher](#matcher)
- * [Selector](#selector)
- * [Variant](#variant)
- * [Key](#key)
- * [Expressions](#expressions)
- * [Annotation](#annotation)
- * [Function](#function)
- * [Options](#options)
- * [Private-Use Annotations](#private-use-annotations)
- * [Reserved Annotations](#reserved-annotations)
- * [Markup](#markup)
- * [Attributes](#attributes)
- * [Other Syntax Elements](#other-syntax-elements)
- * [Keywords](#keywords)
- * [Literals](#literals)
- * [Names and Identifiers](#names-and-identifiers)
- * [Escape Sequences](#escape-sequences)
- * [Whitespace](#whitespace)
+* [Messages and their Syntax](#messages-and-their-syntax)
+ * [Well-formed vs. Valid Messages](#well-formed-vs.-valid-messages)
+* [The Message](#the-message)
+ * [Declarations](#declarations)
+ * [Complex Body](#complex-body)
+* [Pattern](#pattern)
+ * [Quoted Pattern](#quoted-pattern)
+ * [Text](#text)
+ * [Placeholder](#placeholder)
+* [Matcher](#matcher)
+ * [Selector](#selector)
+ * [Variant](#variant)
+ * [Key](#key)
+* [Expressions](#expressions)
+ * [Operand](#operand)
+ * [Function](#function)
+ * [Options](#options)
+* [Markup](#markup)
+* [Attributes](#attributes)
+* [Other Syntax Elements](#other-syntax-elements)
+ * [Keywords](#keywords)
+ * [Literals](#literals)
+ * [Names and Identifiers](#names-and-identifiers)
+ * [Escape Sequences](#escape-sequences)
+ * [Whitespace](#whitespace)
* [Complete ABNF](#complete-abnf)
* [`message.abnf`](#message.abnf)
* [Errors](#errors)
- * [Error Handling](#error-handling)
- * [Syntax Errors](#syntax-errors)
- * [Data Model Errors](#data-model-errors)
- * [Variant Key Mismatch](#variant-key-mismatch)
- * [Missing Fallback Variant](#missing-fallback-variant)
- * [Missing Selector Annotation](#missing-selector-annotation)
- * [Duplicate Declaration](#duplicate-declaration)
- * [Duplicate Option Name](#duplicate-option-name)
- * [Resolution Errors](#resolution-errors)
- * [Unresolved Variable](#unresolved-variable)
- * [Unknown Function](#unknown-function)
- * [Unsupported Expression](#unsupported-expression)
- * [Invalid Expression](#invalid-expression)
- * [Unsupported Statement](#unsupported-statement)
- * [Selection Errors](#selection-errors)
- * [Formatting Errors](#formatting-errors)
+* [Error Handling](#error-handling)
+* [Syntax Errors](#syntax-errors)
+* [Data Model Errors](#data-model-errors)
+ * [Variant Key Mismatch](#variant-key-mismatch)
+ * [Missing Fallback Variant](#missing-fallback-variant)
+ * [Missing Selector Annotation](#missing-selector-annotation)
+ * [Duplicate Declaration](#duplicate-declaration)
+ * [Duplicate Option Name](#duplicate-option-name)
+ * [Duplicate Variant](#duplicate-variant)
+* [Resolution Errors](#resolution-errors)
+ * [Unresolved Variable](#unresolved-variable)
+ * [Unknown Function](#unknown-function)
+ * [Bad Selector](#bad-selector)
+* [Message Function Errors](#message-function-errors)
+ * [Bad Operand](#bad-operand)
+ * [Bad Option](#bad-option)
+ * [Bad Variant Key](#bad-variant-key)
* [Function Registry](#function-registry)
- * [Goals](#goals)
- * [Conformance and Use](#conformance-and-use)
- * [Registry Data Model](#registry-data-model)
- * [Example](#example)
- * [Default Registry](#default-registry)
- * [String Value Selection and Formatting](#string-value-selection-and-formatting)
- * [The `:string` function](#the-string-function)
- * [Operands](#operands)
- * [Options](#options)
- * [Selection](#selection)
- * [Formatting](#formatting)
- * [Numeric Value Selection and Formatting](#numeric-value-selection-and-formatting)
- * [The `:number` function](#the-number-function)
- * [Operands](#operands)
- * [Options](#options)
- * [Default Value of `select` Option](#default-value-of-select-option)
- * [Percent Style](#percent-style)
- * [Selection](#selection)
- * [The `:integer` function](#the-integer-function)
- * [Operands](#operands)
- * [Options](#options)
- * [Default Value of `select` Option](#default-value-of-select-option)
- * [Percent Style](#percent-style)
- * [Selection](#selection)
- * [Number Operands](#number-operands)
- * [Digit Size Options](#digit-size-options)
- * [Number Selection](#number-selection)
- * [Rule Selection](#rule-selection)
- * [Determining Exact Literal Match](#determining-exact-literal-match)
- * [Date and Time Value Formatting](#date-and-time-value-formatting)
- * [The `:datetime` function](#the-datetime-function)
- * [Operands](#operands)
- * [Options](#options)
- * [The `:date` function](#the-date-function)
- * [Operands](#operands)
- * [Options](#options)
- * [The `:time` function](#the-time-function)
- * [Operands](#operands)
- * [Options](#options)
- * [Date and Time Operands](#date-and-time-operands)
+* [String Value Selection and Formatting](#string-value-selection-and-formatting)
+ * [The `:string` function](#the-string-function)
+ * [Operands](#operands)
+ * [Options](#options)
+ * [Selection](#selection)
+ * [Formatting](#formatting)
+* [Numeric Value Selection and Formatting](#numeric-value-selection-and-formatting)
+ * [The `:number` function](#the-number-function)
+ * [Operands](#operands)
+ * [Options](#options)
+ * [Default Value of `select` Option](#default-value-of-select-option)
+ * [Percent Style](#percent-style)
+ * [Selection](#selection)
+ * [The `:integer` function](#the-integer-function)
+ * [Operands](#operands)
+ * [Options](#options)
+ * [Default Value of `select` Option](#default-value-of-select-option)
+ * [Percent Style](#percent-style)
+ * [Selection](#selection)
+ * [Number Operands](#number-operands)
+ * [Digit Size Options](#digit-size-options)
+ * [Number Selection](#number-selection)
+ * [Rule Selection](#rule-selection)
+ * [Determining Exact Literal Match](#determining-exact-literal-match)
+* [Date and Time Value Formatting](#date-and-time-value-formatting)
+ * [The `:datetime` function](#the-datetime-function)
+ * [Operands](#operands)
+ * [Options](#options)
+ * [Style Options](#style-options)
+ * [Field Options](#field-options)
+ * [The `:date` function](#the-date-function)
+ * [Operands](#operands)
+ * [Options](#options)
+ * [The `:time` function](#the-time-function)
+ * [Operands](#operands)
+ * [Options](#options)
+ * [Date and Time Operands](#date-and-time-operands)
* [Formatting](#formatting)
- * [Formatting Context](#formatting-context)
- * [Expression and Markup Resolution](#expression-and-markup-resolution)
- * [Literal Resolution](#literal-resolution)
- * [Variable Resolution](#variable-resolution)
- * [Function Resolution](#function-resolution)
- * [Option Resolution](#option-resolution)
- * [Markup Resolution](#markup-resolution)
- * [Fallback Resolution](#fallback-resolution)
- * [Pattern Selection](#pattern-selection)
- * [Resolve Selectors](#resolve-selectors)
- * [Resolve Preferences](#resolve-preferences)
- * [Filter Variants](#filter-variants)
- * [Sort Variants](#sort-variants)
- * [Examples](#examples)
- * [Example 1](#example-1)
- * [Example 2](#example-2)
- * [Example 3](#example-3)
- * [Formatting](#formatting)
- * [Examples](#examples)
- * [Formatting Fallback Values](#formatting-fallback-values)
- * [Handling Bidirectional Text](#handling-bidirectional-text)
+* [Formatting Context](#formatting-context)
+* [Expression and Markup Resolution](#expression-and-markup-resolution)
+ * [Literal Resolution](#literal-resolution)
+ * [Variable Resolution](#variable-resolution)
+ * [Function Resolution](#function-resolution)
+ * [Option Resolution](#option-resolution)
+ * [Markup Resolution](#markup-resolution)
+ * [Fallback Resolution](#fallback-resolution)
+* [Pattern Selection](#pattern-selection)
+ * [Resolve Selectors](#resolve-selectors)
+ * [Resolve Preferences](#resolve-preferences)
+ * [Filter Variants](#filter-variants)
+ * [Sort Variants](#sort-variants)
+ * [Examples](#examples)
+ * [Example 1](#example-1)
+ * [Example 2](#example-2)
+ * [Example 3](#example-3)
+* [Formatting](#formatting)
+ * [Examples](#examples)
+ * [Formatting Fallback Values](#formatting-fallback-values)
+ * [Handling Bidirectional Text](#handling-bidirectional-text)
* [Interchange Data Model](#interchange-data-model)
- * [Messages](#messages)
- * [Patterns](#patterns)
- * [Expressions](#expressions)
- * [Markup](#markup)
- * [Extensions](#extensions)
+* [Messages](#messages)
+* [Patterns](#patterns)
+* [Expressions](#expressions)
+* [Markup](#markup)
+* [Attributes](#attributes)
+* [Extensions](#extensions)
* [Appendices](#appendices)
- * [Security Considerations](#security-considerations)
- * [Acknowledgements](#acknowledgements)
+* [Security Considerations](#security-considerations)
+* [Acknowledgements](#acknowledgements)
## Introduction
diff --git a/docs/ldml/tr35.md b/docs/ldml/tr35.md
index 1557d15e338..70a67df6044 100644
--- a/docs/ldml/tr35.md
+++ b/docs/ldml/tr35.md
@@ -57,6 +57,19 @@ The LDML specification is divided into the following parts:
* [Introduction](#Introduction)
* [Conformance](#Conformance)
+ * [Unicode Locale Identifiers](#unicode-locale-identifiers)
+ * [Unicode Locale Inheritance and Matching](#unicode-locale-inheritance-and-matching)
+ * [Units of Measurement](#units-of-measurement)
+ * [Number Formatting](#number-formatting)
+ * [Date Formatting](#date-formatting)
+ * [Collation](#collation)
+ * [Grammar](#grammar)
+ * [Miscellaneous](#miscellaneous)
+ * [Customization](#customization)
+ * [Omitting data](#omitting-data)
+ * [Adding data](#adding-data)
+ * [Overriding data](#overriding-data)
+ * [Testing](#testing)
* [EBNF](#ebnf)
* [What is a Locale?](#Locale)
* [Unicode Language and Locale Identifiers](#Unicode_Language_and_Locale_Identifiers)
@@ -210,6 +223,13 @@ The LDML specification is divided into the following parts:
* [References](#References)
* [Acknowledgments](#Acknowledgments)
* [Modifications](#Modifications)
+ * [Conformance Modifications](#conformance-modifications)
+ * [Locale Identifiers and Inheritance Modifications](#locale-identifiers-and-inheritance-modifications)
+ * [Message Format Modifications](#message-format-modifications)
+ * [Date Modifications](#date-modifications)
+ * [Units Modifications](#units-modifications)
+ * [Collation Data Changes](#collation-data-changes)
+ * [Misc. Modifications](#misc.-modifications)
## Introduction
@@ -274,7 +294,7 @@ Conformance to a particular section may reference and require conformance to ano
| [Annex C. LocaleId Canonicalization](#LocaleId_Canonicalization) | canonicalize |
| [CLDR to BCP 47](#Unicode_Locale_Identifier_CLDR_to_BCP_47), [BCP 47 to CLDR](#Unicode_Locale_Identifier_BCP_47_to_CLDR) | convert |
| [Language Identifier Field Definitions](#Field_Definitions) | interpretation and validity of -u key-value pairs |
-| [Locale Display Name Algorithm](tr35-general.html#locale_display_name_algorithm) | locale display names |
+| [Locale Display Name Algorithm](tr35-general.md#locale_display_name_algorithm) | locale display names |
#### Unicode Locale Inheritance and Matching
| Sections | Topics |
@@ -286,50 +306,50 @@ Conformance to a particular section may reference and require conformance to ano
#### Units of Measurement
| Sections | Topics |
| --- | --- |
-| [Unit Identifiers](tr35-general.html#unit-identifiers) | unit identifier syntax, interpretation, and validity |
-| [Unit Identifier Normalization](tr35-info.html#Unit_Identifier_Normalization) | identifier normalization |
-| [Unit Conversion](tr35-info.html#Unit_Conversion) | unit conversion |
-| [Unit Preferences](tr35-info.html#Unit_Preferences) | evaluation of user preferences |
-| [Unit Identifier Uniqueness](tr35-general.html#unit-identifier-uniqueness) | converting units into BCP47 format |
-| [Compound Units](tr35-general.html#compound-units) | unit display names |
+| [Unit Identifiers](tr35-general.md#unit-identifiers) | unit identifier syntax, interpretation, and validity |
+| [Unit Identifier Normalization](tr35-info.md#Unit_Identifier_Normalization) | identifier normalization |
+| [Unit Conversion](tr35-info.md#Unit_Conversion) | unit conversion |
+| [Unit Preferences](tr35-info.md#Unit_Preferences) | evaluation of user preferences |
+| [Unit Identifier Uniqueness](tr35-general.md#unit-identifier-uniqueness) | converting units into BCP47 format |
+| [Compound Units](tr35-general.md#compound-units) | unit display names |
#### Number Formatting
| Sections | Topics |
| --- | --- |
-| [Number Format Patterns](tr35-numbers.html#number-format-patterns) | number format patterns, syntax and interpretation |
-| [Compact Number Formats](tr35-numbers.html#compact-number-formats) | compact number formats |
-| [Rule-Based Number Formatting](tr35-numbers.html#Rule-Based_Number_Formatting) | spell-out number formatting |
+| [Number Format Patterns](tr35-numbers.md#number-format-patterns) | number format patterns, syntax and interpretation |
+| [Compact Number Formats](tr35-numbers.md#compact-number-formats) | compact number formats |
+| [Rule-Based Number Formatting](tr35-numbers.md#Rule-Based_Number_Formatting) | spell-out number formatting |
#### Date Formatting
| Sections | Topics |
| --- | --- |
-| [Elements availableFormats, appendItems](tr35-dates.html#availableFormats_appendItems) | date formatting, patterns |
-| [Date Format Patterns](tr35-dates.html#Date_Format_Patterns) | date format patterns and symbols|
-| [Using Time Zone Names](tr35-dates.html#Using_Time_Zone_Names) | timezone forms, fallback and parsing |
+| [Elements availableFormats, appendItems](tr35-dates.md#availableFormats_appendItems) | date formatting, patterns |
+| [Date Format Patterns](tr35-dates.md#Date_Format_Patterns) | date format patterns and symbols|
+| [Using Time Zone Names](tr35-dates.md#Using_Time_Zone_Names) | timezone forms, fallback and parsing |
#### Collation
| Sections | Topics |
| --- | --- |
-| [Root Collation](tr35-collation.html#root-collation) | Root collation syntax and structure |
-| [Collation Tailorings](tr35-collation.html#Collation_Tailorings) | Rule syntax and interpretation for language-specific ordering |
+| [Root Collation](tr35-collation.md#root-collation) | Root collation syntax and structure |
+| [Collation Tailorings](tr35-collation.md#Collation_Tailorings) | Rule syntax and interpretation for language-specific ordering |
#### Grammar
| Sections | Topics |
| --- | --- |
-| [Grammatical Features](tr35-general.html#grammatical-features) | noun classes (except for plurals) |
-| [Language Plural Rules](tr35-numbers.html#Language_Plural_Rules) | plural and ordinal category rules, ranges |
+| [Grammatical Features](tr35-general.md#grammatical-features) | noun classes (except for plurals) |
+| [Language Plural Rules](tr35-numbers.md#Language_Plural_Rules) | plural and ordinal category rules, ranges |
#### Miscellaneous
| Sections | Topics |
| --- | --- |
| [Unicode Sets](#Unicode_Sets) | Unicode set syntax and interpretation |
| [String Range](#string-range) | string-range syntax and interpretation |
-| [Transforms](tr35-general.html#Transforms)| transform identifier and rule syntax and interpretation |
-| [Segmentations](tr35-general.html#segmentations) | segmentation customizations |
-| [Synthesizing Sequence Names](tr35-general.html#synthesizing-sequence-names) | constructing derived emoji names |
-| [Formatting Process](tr35-personNames.html#formatting-process) | person name formatting |
-| [Part 7: Keyboards](tr35-keyboards.html) | keyboard structure and interpretation |
-| [Conformance](tr35-messageFormat.html#conformance) (Message Format) | message formatting |
+| [Transforms](tr35-general.md#Transforms)| transform identifier and rule syntax and interpretation |
+| [Segmentations](tr35-general.md#segmentations) | segmentation customizations |
+| [Synthesizing Sequence Names](tr35-general.md#synthesizing-sequence-names) | constructing derived emoji names |
+| [Formatting Process](tr35-personNames.md#formatting-process) | person name formatting |
+| [Part 7: Keyboards](tr35-keyboards.md) | keyboard structure and interpretation |
+| [Conformance](tr35-messageFormat.md#conformance) (Message Format) | message formatting |
### Customization
@@ -4303,25 +4323,25 @@ Updates to [LDML Conformance](#Conformance) including
### Message Format Modifications
-Significant updates to [Message Format](tr35-messageFormat.html#Contents)
+Significant updates to [Message Format](tr35-messageFormat.md#Contents)
- Removed all of the reserved and private use syntax constructs, simplifying the grammar.
- Changed the structure of the .match (selector) to require use of local or input declarations. This is a breaking change for existing messages.
- Added support for bidirectional isolates and marks and clarified whitespace handling to better enable messages that contains right-to-left identifiers and text.
### Date Modifications
-- Added a tech preview section on [semantic skeletons](tr35-dates.html#Semantic_Skeletons), allowing for less data and faster performance in formatting dates.
-- Clarified that if [dayPeriods](tr35-collation.html#grouping_classes_of_characters) are specified for `noon` and `midnight`, they can often be formatted without also specifying the numeric time
-- In [Element dayPeriods](tr35-dates.html#dayPeriods), added a note on special formatting usable with dayPeriods `noon` and `midnight`.
+- Added a tech preview section on [semantic skeletons](tr35-dates.md#Semantic_Skeletons), allowing for less data and faster performance in formatting dates.
+- Clarified that if [dayPeriods](tr35-collation.md#grouping_classes_of_characters) are specified for `noon` and `midnight`, they can often be formatted without also specifying the numeric time
+- In [Element dayPeriods](tr35-dates.md#dayPeriods), added a note on special formatting usable with dayPeriods `noon` and `midnight`.
### Units Modifications
-- Changed the EBNF for [`unit_identifier`](tr35-general.html#Annotations):
- - Replacing `number_prefix` by [unit_constant](tr35-general.html#syntax) to generalize expressions like liter-per-100-kilometers, and provide a compact form for longer constants (such as 1e9).
+- Changed the EBNF for [`unit_identifier`](tr35-general.md#Annotations):
+ - Replacing `number_prefix` by [unit_constant](tr35-general.md#syntax) to generalize expressions like liter-per-100-kilometers, and provide a compact form for longer constants (such as 1e9).
- Adding EBNF constraints on `si_prefix` and `binary_prefix`, and adding links to more named components.
-- Clarified the use of -rg for [computing regions](tr35-info.html#compute-regions) in user preferences
+- Clarified the use of -rg for [computing regions](tr35-info.md#compute-regions) in user preferences
### Collation Data Changes
-- Modified [Grouping classes of characters](tr35-collation.html#grouping_classes_of_characters) to reflect two major changes.
- - The [CLDR root collation](tr35-collation.html#Root_Collation) is a tailoring of the [DUCET](https://www.unicode.org/reports/tr10/#Default_Unicode_Collation_Element_Table).
+- Modified [Grouping classes of characters](tr35-collation.md#grouping_classes_of_characters) to reflect two major changes.
+ - The [CLDR root collation](tr35-collation.md#Root_Collation) is a tailoring of the [DUCET](https://www.unicode.org/reports/tr10/#Default_Unicode_Collation_Element_Table).
Changes have been made to both to align them better:
- non-decimal-digit numeric characters now sort after decimal digits
- the CLDR root collation no longer tailors any currency symbols (making some of them sort like letter sequences, as in the DUCET).
@@ -4329,7 +4349,7 @@ Changes have been made to both to align them better:
[Its sorting algorithm is defined in UAX #38](https://www.unicode.org/reports/tr38/#SortingAlgorithm).
### Misc. Modifications
-- Clarified the usage model for [emoji search keywords](tr35-general.html#Annotations).
+- Clarified the usage model for [emoji search keywords](tr35-general.md#Annotations).
Note that small changes such as typos and link fixes are not listed above.