Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@mergify
Copy link
Contributor

@mergify mergify bot commented Nov 18, 2025

  • Understand the issue and current implementation
  • Parse toc.yml files recursively to build a table of contents
  • Trim llms.txt in repo to base content only
  • Update script to generate both files in single run
  • llms.txt contains base content + TOC (no actual docs)
  • llms-full.txt contains llms.txt + TOC with xrefs + all docs
  • Update README with new usage
  • Test and validate generated files
  • Fix markdown linting errors (MD032, MD004)
  • Update build script with new parameter names
  • Use bulleted lists in TOC and fix file path URLs
  • Fix parsing of nested TOC items and sub-items
  • Resolve xref UIDs to actual markdown file URLs
  • Fix PowerShell 5.1 compatibility (GetRelativePath)
  • Use xref anchor links in llms-full.txt TOC
  • Address code review feedback (circular refs, warnings, configurability)
  • Correct output file locations to articles/llms folder
Original prompt

This section details on the original issue you should resolve

<issue_title>[llms] Include the table of contents in llms.txt</issue_title>
<issue_description>### What would you like to be added? πŸ’‘

Have the llms.txt "Docs" section replaced by a generated "Table of contents" based on the aggregation of toc.yml and all its sub toc.yml.

This new section should point to raw github files on master.

The same generated file should be included in llms-full.txt, but referencing itself using the same format that is currently used to resolve xrefs.

Let's update https://github.com/unoplatform/uno/blob/master/doc/generate-llms-full.ps1 so that it can generate both files given this new requirement.</issue_description>

Comments on the Issue (you are @copilot in this section)


πŸ’‘ You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


This is an automatic backport of pull request #21844 done by Mergify.

Copilot AI and others added 14 commits November 18, 2025 21:49
Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit adeba90)
Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit 0cfeb86)
- Trim llms.txt in repo to only base content (no Docs section)
- Script now generates both files in single run
- llms.txt = base content + TOC with raw GitHub URLs (no actual docs)
- llms-full.txt = llms.txt content + TOC with xref anchors + all docs
- Updated script parameters and README documentation

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit 61684d9)
- Add blank lines around lists (MD032)
- Change asterisks to dashes for list items (MD004)

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit 535a388)
- Update Uno.UI.Build.csproj to use new parameter names for generate-llms-full.ps1
- Replace -OutputFile and -Llmstxt with -LlmsTxtOutput, -LlmsFullTxtOutput, -BaseContentFile, -TocYmlPath

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit 8c4501a)
- Add bullet points (-) to all TOC items for better formatting
- Fix URL generation to include proper file paths relative to doc/ folder
- URLs now correctly show full paths like doc/articles/getting-started/requirements.md

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit a7ee92a)
- Fixed YAML parser to correctly handle items: sections and nested children
- Updated Convert-ItemToLines to output all items, even when xref URLs can't be resolved in Llms mode
- Items with children and no URL are rendered as bold headers
- Items without children and no URL are rendered as plain text
- All nested levels now properly display in the generated TOC

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit 2bb5a75)
- Added Build-XrefCache function to scan all markdown files and build uid-to-file mappings
- Updated Convert-ItemToLines to resolve xref: hrefs to actual file paths using the cache
- All TOC items now have proper links to documentation files
- Items like "Visual Studio 2022", "Skia Renderer", etc. now show as links instead of plain text
- URLs are complete with full file paths (e.g., doc/articles/get-started-vs-2022.md)

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit d56094c)
…ation

- Rewrote Get-RelativePath function to work in PowerShell 5.1 (Windows PowerShell)
- Replaced direct calls to [System.IO.Path]::GetRelativePath() which is only available in .NET Core 2.0+
- Uses URI-based relative path calculation with fallback to string manipulation
- Tested and verified URLs are correctly generated with proper relative paths

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit 3e9173e)
… URLs

- Changed llms-full.txt to use xref anchors (#Uno.GetStarted) in its TOC section
- llms.txt continues to use raw GitHub URLs as intended
- llms-full.txt now has only one TOC with xref anchors for in-document navigation
- Removed duplicate TOC section that had raw GitHub URLs

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit 6d3d6f0)
- Add circular reference detection for nested toc.yml files
- Make GitHub branch configurable via -GitHubBranch parameter (default: master)
- Fix path comparison to use Ordinal for case-sensitive file systems
- Add proper error logging with warnings for file processing failures
- Add warnings for unresolved xrefs in Llms mode
- Preserve anchor fragments in xref URLs for llms-full.txt
- Improve fallback UID generation with sanitized relative paths
- Remove redundant bullet variable (always use dash)
- Add comprehensive comments for YAML parser limitations
- Add detailed comments explaining rendering logic for items without links
- Update build script to write outputs to OutputDir instead of source tree
- Clarify documentation about base content file vs generated file

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit dd7b60b)
Co-authored-by: Copilot <[email protected]>
(cherry picked from commit edb19c6)
Co-authored-by: Copilot <[email protected]>
(cherry picked from commit 8be0830)
- Changed output paths back to articles/llms/llms.txt and articles/llms/llms-full.txt
- Updated README to clarify that script reads base content before overwriting
- Ensures generated files are in the correct location for documentation build

Co-authored-by: jeromelaban <[email protected]>
(cherry picked from commit 8d57c6e)
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

βœ… jeromelaban
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

@github-actions github-actions bot added area/build Categorizes an issue or PR as relevant to build infrastructure kind/documentation labels Nov 18, 2025
@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-21880/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

πŸ€– Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-21880/docs/index.html

@nventive-devops
Copy link
Contributor

The build 183735 found UI Test snapshots differences: android-28-net9: 18, android-28-net9-Snap: 29, ios: 4, ios-Snap: 53, skia-linux-screenshots: 64, skia-windows-screenshots: 129, wasm: 129, wasm-automated-net10.0-WinUI-Benchmarks-automated: 0, wasm-automated-net10.0-WinUI-Default-automated: 14, wasm-automated-net10.0-WinUI-RuntimeTests-0: 0, wasm-automated-net10.0-WinUI-RuntimeTests-1: 0, wasm-automated-net10.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net9: 18 changed over 825

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
    • Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75
    • NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Dynamic
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer
    • When_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touch
    • ListView_ListViewWithHeader_InitializesTest_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListViewGrouped
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • WebView_NavigateToAnchor_Initial
    • DecimalFormatterTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • FlyoutTest_When_NoOverlayInputPassThroughElement_Then_DontPassThrough_woOff_UITests_Shared_Windows_UI_Xaml_Controls_Flyout_Flyout_OverlayInputPassThroughElement
  • android-28-net9-Snap: 29 changed over 1076

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Brushes_Uno_UI_Samples_UITests_ImageBrushTestControl_Ellipse_Uno_UI_Samples_UITests_ImageBrushTestControl_Ellipse
    • MUX_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage
    • MediaPlayerElement_Using_3gp_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_3gp_Extension
    • MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension
    • MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Icons_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Icons
    • TabView_MUXControlsTestApp_TabViewPage_MUXControlsTestApp_TabViewPage
    • TeachingTip_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage
    • ListView_ListView_With_ListViews_Count_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • MUX_NumberBox_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • CommandBar_Examples_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Examples
    • Buttons_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPage_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPage
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • RatingControl_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage
    • TextBlock_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout
    • Icons_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Foreground_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Foreground
    • NavigationView_MUXControlsTestApp_NavigationViewTopNavOnlyPage_MUXControlsTestApp_NavigationViewTopNavOnlyPage
    • NavigationView_MUXControlsTestApp_NavigationViewTopNavPage_MUXControlsTestApp_NavigationViewTopNavPage
    • Pickers_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
  • ios: 4 changed over 255

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • Validate_Offscreen_Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • TextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
  • ios-Snap: 53 changed over 993

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Image_Image_Stretch_None_Uno_UI_Samples_UITests_ImageTestsControl_Image_Stretch_None
    • Pickers_TimePicker_TimePickerFlyoutStyle_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_TimePickerFlyoutStyle
    • Popup_MessageDialog_UITests_Shared_Windows_UI_Xaml_Controls_Popup_MessageDialog
    • Brushes_GenericApp_Views_Content_UITests_ImageBrushTestControl_ImageBrush_UniformToFill_GenericApp_Views_Content_UITests_ImageBrushTestControl_ImageBrush_UniformToFill
    • Brushes_PathImageBrushfill_Uno_UI_Samples_UITests_ImageBrushTestControl_PathImageBrushfill
    • Brushes_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushAlignmentXY2_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushAlignmentXY2
    • Default_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected
    • Brushes_PanelImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_PanelImageBrush
    • Microsoft_UI_Xaml_Media_UITests_Windows_UI_Xaml_Media_ThemeShadowTests_ThemeShadow_Overlap_UITests_Windows_UI_Xaml_Media_ThemeShadowTests_ThemeShadow_Overlap
    • TextBox_Input_InputScope_Number_Uno_UI_Samples_Content_UITests_TextBoxControl_Input_InputScope_Number
    • TextBlock_Attributed_text_Simple_Uno_UI_Samples_Content_UITests_TextBlockControl_Attributed_text_Simple
    • Brushes_ImageBrushWithCompositeTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithCompositeTransform
    • Brushes_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList
    • ContentControl_ContentControl_SelectorInheritance_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_SelectorInheritance
    • Brushes_ImageBrushStretch_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch
    • Buttons_Custom_Button_With_ContentTemplate_Uno_UI_Samples_Content_UITests_ButtonTestsControl_Custom_Button_With_ContentTemplate
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • Icons_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Full_Wider_Uno_UI_Samples_UITests_Image_Image_Stretch_Full_Wider
  • skia-linux-screenshots: 64 changed over 2302

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ImageSourceUrlMsAppDataScheme.png-dark
    • ImageSourceUrlMsAppDataScheme.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • Image_Margin_Large.png-dark
    • Image_Margin_Large.png
    • BitmapIcon_Monochromatic.png
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • ClipboardTests.png-dark
    • Buttons.png-dark
    • Buttons.png
    • ImageIconPage.png-dark
    • ImageIconPage.png
    • ImagesInlineInFlipView.png-dark
    • ImagesInlineInFlipView.png
  • skia-windows-screenshots: 129 changed over 2302

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Border_With_Off_Centre_RotateTransform.png-dark
    • Border_With_Off_Centre_RotateTransform.png
    • ImageWithLateSourceUniformToFill.png-dark
    • ImageWithLateSourceUniformToFill.png
    • Image_Fixed_Size_Alignment.png-dark
    • Image_Fixed_Size_Alignment.png
    • Basics.png
    • Basics.png-dark
    • Border_With_RotateTransform.png-dark
    • Border_With_RotateTransform.png
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • ClipboardTests.png-dark
    • ClipboardTests.png
    • DisplayInformation.png-dark
    • DisplayInformation.png
    • ElevatedView_BorderThickness.png-dark
    • ElevatedView_BorderThickness.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
  • wasm: 129 changed over 1057

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListView_BoundSelectedItem
    • SamplesApp.Windows_UI_Xaml_Controls.ToggleSwitchControl.ToggleSwitch_Default_Style
    • SamplesApp.Windows_UI_Xaml_Controls.ToggleSwitchControl.ToggleSwitch_IsOn
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Corners
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewIncrementalLoading
    • UITests.Shared.Windows_ApplicationModel.Calls.PhoneCallManagerTests
    • UITests.Shared.Windows_UI_Xaml_Controls.TextBlockControl.TextBlock_TextWrapping_PR1954_EdgeCase
    • UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Minimal
    • UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Ogg_Extension
    • UITests.Shared.Windows_UI_Xaml_Controls.MenuFlyoutTests.MenuFlyoutItem_Click
    • UITests.Shared.Windows_UI_Xaml_Controls.ToolTip.TextOnlyToolTipSample
    • UITests.Windows_UI_Xaml_Controls.ImageTests.SvgImageSource_Basic
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_ImplicitParentTextBlockStyle
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TreeView
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_IsTabStop
    • UITests.Windows_UI_Xaml_Controls.CheckBoxTests.CheckBox_States
    • UITests.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Disabled
    • UITests.Windows_UI_Xaml_Media_Animation.ColorAnimation_Background
    • Uno.UI.Samples.Content.UITests.CommandBar.CommandBar_Padding
  • wasm-automated-net10.0-WinUI-Benchmarks-automated: 0 changed over 1

  • wasm-automated-net10.0-WinUI-Default-automated: 14 changed over 877

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • Default_StrokeThickness_MyPath
    • Default_StrokeThickness_MyEllipse
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Default_StrokeThickness_MyLine
    • Default_StrokeThickness_MyPolyline
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_StretchAndAlignmentNone_ImageBrush-50-50-None-XLeft-YBottom
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • When_Theme_Changed_No_Crash_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_TransformToVisual_ScrollViewer_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_ScrollViewer
  • wasm-automated-net10.0-WinUI-RuntimeTests-0: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-1: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-2: 0 changed over 1

@agneszitte agneszitte merged commit 42d7e8d into release/stable/6.4 Nov 19, 2025
105 of 106 checks passed
@agneszitte agneszitte deleted the mergify/bp/release/stable/6.4/pr-21844 branch November 19, 2025 00:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/build Categorizes an issue or PR as relevant to build infrastructure kind/documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants