From e7bd8a20bcaf1a82def821f9a7ed1148f0dde416 Mon Sep 17 00:00:00 2001 From: Kian Newman-Hazel Date: Tue, 15 Jul 2025 16:15:08 +0100 Subject: [PATCH 1/6] [Style Guide] AI consumability in How we docs --- .../how-we-docs/ai-consumability.mdx | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/content/docs/style-guide/how-we-docs/ai-consumability.mdx diff --git a/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx b/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx new file mode 100644 index 000000000000000..b8e84a66fd5f498 --- /dev/null +++ b/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx @@ -0,0 +1,75 @@ +--- +pcx_content_type: how-to +title: AI consumability +meta: + title: AI consumability | How we docs +--- + +import { Details, GitHubCode, Tabs, TabItem } from "~/components"; + +We have various approaches for making our content visible to AI as well as making sure it's easily consumed in a plain-text format. + +## AI discoverability + +The primary proposal in this space is [`llms.txt`](https://llmstxt.org/), offering a well-known path for a Markdown list of all your pages. + +We have implemented `llms.txt`, `llms-full.txt` and also created per-page Markdown links as follows: + +- [`llms.txt`](/llms.txt) +- [`llms-full.txt`](/llms-full.txt) + - We also provide a `llms-full.txt` file on a per-product basis, i.e [`/workers/llms-full.txt`](/workers/llms-full.txt) +- [`/$page/index.md`](index.md) + - Add `/index.md` to the end of any page to get the Markdown version, i.e [`/style-guide/index.md`](/style-guide/index.md) +- [`/markdown.zip`](/markdown.zip) + - An export of all of our documentation in the aforementioned `index.md` format. + +In the top right of this page, you will see a `Page options` button where you can copy the current page as Markdown that can be given to your LLM of choice. + +## Textual representation of interactive elements + +HTML is easily parsed - after all, the browser has to parse it to decide how to render the page you're reading now - it tends to not be very _portable_. + +For example, given our [`Tabs`](/style-guide/components/tabs/), the panels are hidden until the tab itself is clicked: + + + One Content + Two Content + + +If we run the resulting HTML from this component through a solution like [`turndown`](https://www.npmjs.com/package/turndown): + +```md +- [One](#tab-panel-6) +- [Two](#tab-panel-7) + +One Content + +Two Content +``` + +The references to the panels `id`, usually handled by JavaScript, are visible but non-functional. + +### Turning our components into "Markdownable" HTML + +To solve this, we created a [`rehype plugin`](https://github.com/cloudflare/cloudflare-docs/blob/d5a19deded110bce6a7c5d45e702d36527da0a4e/src/plugins/rehype/filter-elements.ts) for: + +- Removing non-content tags (`script`, `style`, `link`, etc) via a [tags allowlist](https://github.com/cloudflare/cloudflare-docs/blob/d5a19deded110bce6a7c5d45e702d36527da0a4e/src/plugins/rehype/filter-elements.ts#L19-L104) +- [Transforming custom elements](https://github.com/cloudflare/cloudflare-docs/blob/d5a19deded110bce6a7c5d45e702d36527da0a4e/src/plugins/rehype/filter-elements.ts#L189-L227) like `starlight-tabs` into standard unordered lists +- [Adapting our Expressive Code codeblocks HTML](https://github.com/cloudflare/cloudflare-docs/blob/d5a19deded110bce6a7c5d45e702d36527da0a4e/src/plugins/rehype/filter-elements.ts#L143-L178) to the [HTML that CommonMark expects](https://spec.commonmark.org/0.31.2/#example-142) + +Taking the `Tabs` example from the previous section and running it through our plugin will now give us a normal unordered list with the content properly associated with a given list item: + +```md +- One + + One Content + +- Two + + Two Content +``` + +For example, take a look at our Markdown test fixture (or any page by appending `/index.md` to the URL): + +- [`/style-guide/fixtures/markdown/`](/style-guide/fixtures/markdown/) +- [`/style-guide/fixtures/markdown/index.md`](/style-guide/fixtures/markdown/index.md) From b1babf56e35c975071ba155c4b8ebe5dc038427e Mon Sep 17 00:00:00 2001 From: Kian Newman-Hazel Date: Tue, 15 Jul 2025 16:15:37 +0100 Subject: [PATCH 2/6] unused imports --- src/content/docs/style-guide/how-we-docs/ai-consumability.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx b/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx index b8e84a66fd5f498..ac83645dd6762dd 100644 --- a/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx +++ b/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx @@ -5,7 +5,7 @@ meta: title: AI consumability | How we docs --- -import { Details, GitHubCode, Tabs, TabItem } from "~/components"; +import { Tabs, TabItem } from "~/components"; We have various approaches for making our content visible to AI as well as making sure it's easily consumed in a plain-text format. From f5254b864431b6e4929d5c87e502786115884410 Mon Sep 17 00:00:00 2001 From: Kian Newman-Hazel Date: Tue, 15 Jul 2025 16:29:22 +0100 Subject: [PATCH 3/6] ignore index.md/markdown.zip links --- astro.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/astro.config.ts b/astro.config.ts index 2e2e4b9071c80e6..158a4b17052c2bf 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -147,6 +147,8 @@ export default defineConfig({ "/workers/examples/?languages=*", "/workers/examples/?tags=*", "/workers-ai/models/**", + "**index.md", + "/markdown.zip", ], }), ] From fcacae1581c94740cd2a9b277f0d4f7a534060b0 Mon Sep 17 00:00:00 2001 From: Kian Newman-Hazel Date: Tue, 15 Jul 2025 17:00:56 +0100 Subject: [PATCH 4/6] links --- astro.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/astro.config.ts b/astro.config.ts index 158a4b17052c2bf..4a2f11bf5f7309a 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -149,6 +149,8 @@ export default defineConfig({ "/workers-ai/models/**", "**index.md", "/markdown.zip", + "/style-guide/index.md", + "/style-guide/fixtures/markdown/index.md", ], }), ] From 36aa38a68343c02b3c6bf0e17bc56710602db3a1 Mon Sep 17 00:00:00 2001 From: Kian Newman-Hazel Date: Tue, 15 Jul 2025 19:44:16 +0100 Subject: [PATCH 5/6] image & tokens comparison --- .../style-guide/how-we-docs/page-options.png | Bin 0 -> 50932 bytes .../how-we-docs/ai-consumability.mdx | 19 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 src/assets/images/style-guide/how-we-docs/page-options.png diff --git a/src/assets/images/style-guide/how-we-docs/page-options.png b/src/assets/images/style-guide/how-we-docs/page-options.png new file mode 100644 index 0000000000000000000000000000000000000000..3e826f98204a8f7907c64b33538928f2faedbf18 GIT binary patch literal 50932 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 G!T$&Buqzt? literal 0 HcmV?d00001 diff --git a/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx b/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx index ac83645dd6762dd..9c4a413748a7ac2 100644 --- a/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx +++ b/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx @@ -5,7 +5,7 @@ meta: title: AI consumability | How we docs --- -import { Tabs, TabItem } from "~/components"; +import { Tabs, TabItem, Width } from "~/components"; We have various approaches for making our content visible to AI as well as making sure it's easily consumed in a plain-text format. @@ -25,6 +25,11 @@ We have implemented `llms.txt`, `llms-full.txt` and also created per-page Markdo In the top right of this page, you will see a `Page options` button where you can copy the current page as Markdown that can be given to your LLM of choice. + + ![Page options + button](~/assets/images/style-guide/how-we-docs/page-options.png) + + ## Textual representation of interactive elements HTML is easily parsed - after all, the browser has to parse it to decide how to render the page you're reading now - it tends to not be very _portable_. @@ -73,3 +78,15 @@ For example, take a look at our Markdown test fixture (or any page by appending - [`/style-guide/fixtures/markdown/`](/style-guide/fixtures/markdown/) - [`/style-guide/fixtures/markdown/index.md`](/style-guide/fixtures/markdown/index.md) + +### Saving on tokens + +Most AI pricing is around input & output tokens and our approach greatly reduces the amount of input tokens required. + +For example, let's take a look at the amount of tokens required for the [Workers Get Started](/workers/get-started/guide/) using [OpenAI's tokenizer](https://platform.openai.com/tokenizer): + +- HTML: 15,229 tokens +- turndown: 3,401 tokens (4.48x less than HTML) +- index.md: 2,110 tokens (7.22x less than HTML) + +When providing our content to AI, we can see a real-world ~7x saving in input tokens cost. From d1981a6cf596d459048565993f6077381003fb53 Mon Sep 17 00:00:00 2001 From: Kian Date: Tue, 15 Jul 2025 19:45:05 +0100 Subject: [PATCH 6/6] Update src/content/docs/style-guide/how-we-docs/ai-consumability.mdx Co-authored-by: Kody Jackson --- src/content/docs/style-guide/how-we-docs/ai-consumability.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx b/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx index 9c4a413748a7ac2..284685e2050ae38 100644 --- a/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx +++ b/src/content/docs/style-guide/how-we-docs/ai-consumability.mdx @@ -32,7 +32,7 @@ In the top right of this page, you will see a `Page options` button where you ca ## Textual representation of interactive elements -HTML is easily parsed - after all, the browser has to parse it to decide how to render the page you're reading now - it tends to not be very _portable_. +HTML is easily parsed - after all, the browser has to parse it to decide how to render the page you're reading now - it tends to not be very _portable_. This limitation is especially painful in an AI context, because all the extra presentation information consumes additional tokens. For example, given our [`Tabs`](/style-guide/components/tabs/), the panels are hidden until the tab itself is clicked: