Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
f956982
feat(llms): convert ApiLink components to markdown links in generated…
viktorkombov Jun 18, 2026
6184ca7
feat(integration): enhance stripMdxForLlms to convert root-relative l…
viktorkombov Jun 19, 2026
1f171ef
feat: add HTML to Markdown conversion functionality
viktorkombov Jun 19, 2026
a91a11d
Merge branch 'vnext' into vkombov/convert-api-links-to-md-in-llms-md
viktorkombov Jun 19, 2026
d3645a8
feat: improve LLM documentation generation
viktorkombov Jun 22, 2026
ea31010
fix(*): replace regex-based tag removal with JSDOM textContent
viktorkombov Jun 22, 2026
7878b92
Refactor LLM documentation generation and metadata
viktorkombov Jun 22, 2026
d7c2ae6
Merge branch 'vnext' into vkombov/convert-api-links-to-md-in-llms-md
ChronosSF Jun 23, 2026
b3f968a
Add check-llms-metadata.mjs
viktorkombov Jun 23, 2026
940cca6
Merge branch 'vkombov/convert-api-links-to-md-in-llms-md' of https://…
viktorkombov Jun 23, 2026
2a3fa4a
adding llms to the CSpell allow-list
viktorkombov Jun 23, 2026
a3aa8d2
Merge branch 'vnext' into vkombov/convert-api-links-to-md-in-llms-md
ChronosSF Jun 23, 2026
08876e7
ix(llms): clean llms.txt descriptions and localize JP manifest metadata
viktorkombov Jun 23, 2026
fdb7476
Improve llms.txt API docs discovery and localized metadata
viktorkombov Jun 23, 2026
fa542f7
Use node 24 in lint.yml
viktorkombov Jun 23, 2026
0b81be6
Fix malformed tags, platform inconsistencies, and incorrect documenta…
viktorkombov Jun 25, 2026
420e4dc
Merge branch 'vnext' of https://github.com/IgniteUI/docs-template int…
viktorkombov Jun 25, 2026
e1a4288
Merge branch 'vnext' of https://github.com/IgniteUI/docs-template int…
viktorkombov Jun 26, 2026
c69d27e
Update package-lock
viktorkombov Jun 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
*.md text eol=lf
*.mdx text eol=lf

.github/workflows/*.lock.yml linguist-generated=true merge=binary
.github/workflows/*.lock.yml linguist-generated=true merge=ours
53 changes: 42 additions & 11 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@
### 1. [Repository overview](#repository-overview)
### 2. [Writing an article](#writing-an-article)
### 3. [Topic structure](#topic-structure)
### 4. [Writing a Styling section for article](#styling-section)
### 5. [Workflow](#workflow)
### 6. [Environment variables and template tokens](#environment-variables)
### 7. [Sample / Code View Configuration](#code-view-configuration)
### 8. [PlatformBlock usage](#platform-block)
### 9. [ApiLink usage](#api-link)
### 10. [Checking MDX API Links](#checking-api-links)
### 11. [ApiLink registry workflow](#api-link-registry-workflow)
### 12. [Creating shared help topics](#creating-shared-help-topics)
### 13. [Updating of Data Visualization related topics](#updating-of-data-visualization-related-topics)
### 14. [Adding of images](#adding-of-images-in-the-topic)
### 4. [LLM metadata](#llm-metadata)
### 5. [Writing a Styling section for article](#styling-section)
### 6. [Workflow](#workflow)
### 7. [Environment variables and template tokens](#environment-variables)
### 8. [Sample / Code View Configuration](#code-view-configuration)
### 9. [PlatformBlock usage](#platform-block)
### 10. [ApiLink usage](#api-link)
### 11. [Checking MDX API Links](#checking-api-links)
### 12. [ApiLink registry workflow](#api-link-registry-workflow)
### 13. [Creating shared help topics](#creating-shared-help-topics)
### 14. [Updating of Data Visualization related topics](#updating-of-data-visualization-related-topics)
### 15. [Adding of images](#adding-of-images-in-the-topic)

# <a name='#repository-overview'>Repository overview</a>

Expand Down Expand Up @@ -99,6 +100,35 @@ The purpose of this section is to present what the structure of the topic should
Minor titles related to the main titles can be used with `<h3>`(`###`) or `<h4>` (`####`).
Note: when `<h4>` (`####`) is used the title won't appear on the submenu on the right.

# <a name='#llm-metadata'>LLM metadata</a>

Every English and Japanese topic frontmatter block must include an `llms.description`. The build uses this value for the page entry in `llms.txt`, where a model must decide which page to open without reading the full topic.

```yaml
description: Learn how to configure sorting in the Angular Grid.
keywords: angular grid, sorting, multi-column sorting
llms:
description: Configure single- and multi-column Grid sorting, sorting expressions, custom strategies, and runtime sort state in Ignite UI for Angular.
```

Keep `description` and `keywords` focused on reader-facing SEO. Write `llms.description` as a compact content summary that names the component or feature and the concrete tasks, concepts, or APIs covered by the page.

- Use one meaningful sentence, between 40 and 300 characters for English or 20 and 300 characters for Japanese.
- Describe the page's distinguishing content. Do not merely restate its title.
- Prefer specific capabilities such as configuration, events, methods, data operations, styling, or troubleshooting.
- Do not use calls to action such as "Try it now" or "Check out examples and demos".
- Do not include HTML, Markdown links, or generic openings such as "This topic" and "In this example".
- Shared xplat descriptions may use build tokens such as `{Platform}`, `{ProductName}`, and `{ComponentTitle}`.
- When a file contains multiple conditional frontmatter blocks, add the metadata to every block.

Run the read-only metadata validator before opening a pull request:

```bash
npm run check:llms-metadata
```

The validator checks English and Japanese author-owned sources for missing or empty values, length, mojibake, language mismatch, marketing boilerplate, markup, and common malformed text. It does not generate descriptions or replace editorial review for semantic accuracy.

# <a name='#styling-section'>Writing a Styling section for article</a>

The main purpose of the Styling section is to provide simple examples on how to style most common parts of the UI (let's say styling for alternate rows in the grid), copy/paste the code in any sample and see it working. In order to write content that fulfills the purpose, follow the steps below:
Expand Down Expand Up @@ -169,6 +199,7 @@ Example status workflows:
4. Code views are working as well
5. Each hyperlink is working properly.
6. Table of content is correct.
7. `npm run check:llms-metadata` passes and the `llms.description` accurately distinguishes the topic.

> Note: Testing a PR from Angular Samples (when new sample is added) with combination of PR related to topic update (or when new topic is added).
Open both repositories and perform `npm start`. This will start both projects and you will see the embed sample in your topic under `localhost`.
Expand Down
1 change: 1 addition & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Closes #
- [ ] check if sample is working and fully visible in the topic
- [ ] check if sample is working and fully visible in the StackBlitz
- [ ] check if code blocks match the code in StackBlitz demo
- [ ] add or update meaningful `llms.description` metadata and run `npm run check:llms-metadata`


<br />
Expand Down
12 changes: 6 additions & 6 deletions .github/aw/actions-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
"version": "v9.0.0",
"sha": "3a2844b7e9c422d3c10d287c895573f7108da1b3"
},
"github/gh-aw-actions/setup-cli@v0.79.8": {
"github/gh-aw-actions/setup-cli@v0.80.9": {
"repo": "github/gh-aw-actions/setup-cli",
"version": "v0.79.8",
"sha": "c0338fef4749d08c21f8f975fb0e37efa17dda47"
"version": "v0.80.9",
"sha": "8c7d04ebf1ece56cd381446125da3e0f6896294a"
},
"github/gh-aw-actions/setup@v0.79.8": {
"github/gh-aw-actions/setup@v0.80.9": {
"repo": "github/gh-aw-actions/setup",
"version": "v0.79.8",
"sha": "c0338fef4749d08c21f8f975fb0e37efa17dda47"
"version": "v0.80.9",
"sha": "8c7d04ebf1ece56cd381446125da3e0f6896294a"
}
}
}
82 changes: 44 additions & 38 deletions .github/workflows/agentics-maintenance.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This file was automatically generated by pkg/workflow/maintenance_workflow.go (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
# This file was automatically generated by pkg/workflow/maintenance_workflow.go (v0.80.9). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
#
# ___ _ _
# / _ \ | | (_)
Expand All @@ -21,15 +21,17 @@
#
# For more information: https://github.github.com/gh-aw/introduction/overview/
#
# Alternative regeneration methods:
# make recompile
# This file defines the generated agentic maintenance workflow for this repository.
# It runs scheduled cleanup for expiring safe outputs and supports manual maintenance operations.
#
# Or use the gh-aw CLI directly:
# ./gh-aw compile --validate --verbose
# This workflow is generated automatically when workflows use expiring safe outputs
# or when repository maintenance features are enabled in .github/workflows/aw.json.
#
# The workflow is generated when any workflow uses the 'expires' field
# in create-discussions, create-issues, or create-pull-request safe-outputs configuration.
# Schedule frequency is automatically determined by the shortest expiration time.
# To disable maintenance workflow generation, set in .github/workflows/aw.json:
# {"maintenance": false}
#
# Agentic maintenance docs:
# https://github.github.com/gh-aw/reference/ephemerals/#manual-maintenance-operations
#
name: Agentic Maintenance

Expand Down Expand Up @@ -94,7 +96,7 @@ jobs:
pull-requests: write
steps:
- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand Down Expand Up @@ -132,7 +134,7 @@ jobs:
actions: write
steps:
- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand All @@ -156,12 +158,12 @@ jobs:
operation: ${{ steps.record.outputs.operation }}
steps:
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand All @@ -176,9 +178,9 @@ jobs:
await main();

- name: Install gh-aw
uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
version: v0.79.8
version: v0.80.9

- name: Run operation
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
Expand All @@ -196,7 +198,9 @@ jobs:

- name: Record outputs
id: record
run: echo "operation=${{ inputs.operation }}" >> "$GITHUB_OUTPUT"
env:
GH_AW_OPERATION: ${{ inputs.operation }}
run: echo "operation=$GH_AW_OPERATION" >> "$GITHUB_OUTPUT"

update_pull_request_branches:
if: ${{ (github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call') && inputs.operation == 'update_pull_request_branches' && (!(github.event.repository.fork)) }}
Expand All @@ -206,7 +210,7 @@ jobs:
pull-requests: write
steps:
- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand Down Expand Up @@ -245,14 +249,14 @@ jobs:
run_url: ${{ steps.record.outputs.run_url }}
steps:
- name: Checkout actions folder
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
sparse-checkout: |
actions
persist-credentials: false

- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand Down Expand Up @@ -281,7 +285,9 @@ jobs:

- name: Record outputs
id: record
run: echo "run_url=${{ inputs.run_url }}" >> "$GITHUB_OUTPUT"
env:
GH_AW_RUN_URL: ${{ inputs.run_url }}
run: echo "run_url=$GH_AW_RUN_URL" >> "$GITHUB_OUTPUT"

create_labels:
if: ${{ (github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call') && inputs.operation == 'create_labels' && (!(github.event.repository.fork)) }}
Expand All @@ -291,12 +297,12 @@ jobs:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand All @@ -311,9 +317,9 @@ jobs:
await main();

- name: Install gh-aw
uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
version: v0.79.8
version: v0.80.9

- name: Create missing labels
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
Expand All @@ -337,12 +343,12 @@ jobs:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand All @@ -357,9 +363,9 @@ jobs:
await main();

- name: Install gh-aw
uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
version: v0.79.8
version: v0.80.9

- name: Restore activity report logs cache
id: activity_report_logs_cache
Expand All @@ -380,10 +386,10 @@ jobs:
${GH_AW_CMD_PREFIX} logs \
--repo "${{ github.repository }}" \
--start-date -1w \
--count 100 \
--count 500 \
--output ./.cache/gh-aw/activity-report-logs \
--format markdown \
> ./.cache/gh-aw/activity-report-logs/report.md
--report-file ./.cache/gh-aw/activity-report-logs/report.md

- name: Save activity report logs cache
if: ${{ always() }}
Expand Down Expand Up @@ -442,12 +448,12 @@ jobs:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand All @@ -462,9 +468,9 @@ jobs:
await main();

- name: Install gh-aw
uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
version: v0.79.8
version: v0.80.9

- name: Restore forecast report logs cache
id: forecast_report_logs_cache
Expand Down Expand Up @@ -539,7 +545,7 @@ jobs:
issues: write
steps:
- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand Down Expand Up @@ -571,12 +577,12 @@ jobs:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Setup Scripts
uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions

Expand All @@ -591,9 +597,9 @@ jobs:
await main();

- name: Install gh-aw
uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
version: v0.79.8
version: v0.80.9

- name: Validate workflows and file issue on findings
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
Expand Down
Loading
Loading