-
Notifications
You must be signed in to change notification settings - Fork 32
[Draft] Build navigation from scratch #1995
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
Mpdreamz
wants to merge
121
commits into
main
Choose a base branch
from
refactor/navigation
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Introduced draft documentation for all CLI commands under `docs/cli`. - Updated `_docset.yml` to include new CLI documentation. - Adjusted navigation order and reinstated missing migration files.
Co-authored-by: Fabrizio Ferri-Benedetti <[email protected]>
… url is dynamic based on parent toc
…documentation navigation
…t diagnostics in FileInfoValidationTests
…on`: - Remove redundant `AutoDiscoverFolderFiles` logic, integrating auto-discovery directly into `ResolveFolderRef`. - Ensure children validation is streamlined across TOC and folder navigation. - Add validation for duplicate file references in `FileInfoValidationTests`.
…DocumentationSetFile
- Replace `parentPath` with `parentContextPath` for clarity. - Remove redundant `ResolveTocPath` method. - Simplify TOC file path resolution logic. - Update error messages to include context for better diagnostics.
…ency: - Remove `parentContextPath` parameter from navigation methods. - Consolidate logic for TOC path resolution. - Adjust children validation to rely on pre-resolved paths. - Update relevant tests to cover new path handling behavior.
…tions: - Adjust `advancedToc.Path` test to match new path structure (`guides/advanced`). - Add TODO comments to clarify known TOC children limitations in parent YAML.
…tionSetFile: - Handle `folder` + `file` combinations as a single `FileRef` or `IndexFileRef`. - Maintain existing behavior for standalone `file`, `folder`, and `hidden` keys. - Update variable naming to enhance readability and clarity.
- Introduce `FolderIndexFileRef` to represent YAML `folder` + `file` combinations. - Update TOC resolution to ensure children resolve relative to folder paths. - Adjust file reference creation logic to preserve specific types. - Add comments for clarity and improve edge case handling.
- Add checks to identify files with deep paths and children, suggesting the use of `folder` for better structure. - Extend test coverage for virtual file scenarios to validate hint emission and suppression. - Refactor diagnostics in physical docset navigation to include hints while ensuring no errors or warnings occur.
…extend test coverage: - Add `NormalizeSitePrefix` method to standardize `sitePrefix` with leading slash and no trailing slash. - Apply normalized `sitePrefix` to navigation URLs. - Improve `GetDescription` error messaging in `LlmsNavigationEnhancer`. - Update tests to validate `sitePrefix` normalization and navigation item URL adjustments.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is a draft, it represents a completely new isolated flow for building our navigation using the existing navigation interfaces.
Main effort is ensuring reading the configuration yaml files and building the navigation are isolated by to separate classes.
Isolated Builds:
DocumentationSetFile(docset.yml) deserialization.TableOfContentsFile(toc.yml) deserialization.DocumentationSetNavigationusesDocumentationSetFileto build navigation.DocumentationSetNavigationuses reads throughtocreferences and includes the resultingTableOfContentsNavigationin the parentDocumentationSetNavigationorTableOfContentsNavigationAssembler Builds:
SiteNavigationFiledeserialization.SiteNavigationusesSiteNavigationFileand a list ofDocumentationSetNavigationSiteNavigationpicksDocumentationSetNavigationor its nestedTableOfContentsNavigationas defined innavigation.ymlto build the large site navigation.PathPrefixonTableOfContentsNavigationandDocumentationSetNavigationinstances is viral, all nested nodes will reflect the change. (This makes rehoming these nodes under a newpath_prefixa lot cleaner)All of these exist in
Elastic.Documentation.Configurationand a new isolatedElastic.Documentation.Navigation. The new navigation components have extensive tests in new test projects.Still Todo:
DocumentationFileas its.Modelyet.MarkdownFile.TableOfContentsTree,DocumentationGroupetc).HtmlWriterand other related navigation components. Most if not all use the navigation interfaces already.NavigationIndexand.Parentin the new navigation.