You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Repo Assist] perf: pre-compute navigation menu structure once per build (O(n²) → O(n)) (#1129)
* perf: pre-compute navigation structure once per build (O(n²) → O(n))
Replace GetNavigationEntries (called once per page) with
GetNavigationEntriesFactory, which pre-computes the expensive
filter/group/sort structure once and returns a cheap closure that
only applies IsActive flags and generates HTML.
For a site with n pages, this reduces:
- sorting/grouping: from O(n × n log n) to O(n log n)
- File.Exists calls for template detection: from 2n to 2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ci: trigger checks
* fix: use valid Keep a Changelog subsection type 'Changed' instead of 'Performance'
'### Performance' is not a recognised Keep a Changelog subsection.
Ionide.KeepAChangelog.Tasks 0.3.3 enforces the standard categories
(Added, Changed, Deprecated, Fixed, Removed, Security), causing the
build to fail with IKC0002. Rename to '### Changed'.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ci: trigger checks
* tests: add unit tests for GetNavigationEntriesFactory (PR #1129)
15 tests covering:
- Empty input → empty output
- Single uncategorized model → Documentation header
- None currentPagePath → no active item
- Matching/non-matching page path → correct active state
- Exactly one active item among multiple pages
- Exclusion of isOtherLang, non-HTML, and index file models
- ignoreUncategorized flag (true and false)
- Category ordering by CategoryIndex
- Item ordering within a category by Index
- Factory idempotency (multiple calls, same result)
- Per-page active state correctness across successive calls
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ci: trigger checks
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Copy file name to clipboardExpand all lines: RELEASE_NOTES.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,9 @@
13
13
* Fix `Markdown.ToMd` serialising italic spans with asterisks incorrectly as bold spans. [#1102](https://github.com/fsprojects/FSharp.Formatting/pull/1102)
14
14
* Fix `Markdown.ToMd` serialising ordered list items with incorrect numbering and formatting. [#1102](https://github.com/fsprojects/FSharp.Formatting/pull/1102)
15
15
16
+
### Changed
17
+
*`fsdocs build` now pre-computes the navigation menu structure (filter/group/sort) once per build rather than once per output page, reducing work from O(n²) to O(n) for sites with n pages. The filesystem check for custom menu templates is also cached per build. [#1129](https://github.com/fsprojects/FSharp.Formatting/pull/1129)
0 commit comments