mirror of
https://github.com/pengzhanbo/vuepress-theme-plume.git
synced 2026-04-26 11:38:15 +08:00
32 lines
18 KiB
JavaScript
32 lines
18 KiB
JavaScript
import{$ as e,B as t,P as n,_ as r,f as i,g as a,h as o,l as s}from"./runtime-core.esm-bundler-CZvn3YaB.js";import{t as c}from"./plugin-vue_export-helper-CxTVcLa7.js";var l=JSON.parse(`{"path":"/config/plugins/llmstxt/","title":"LLMs txt | 配置","lang":"zh-CN","frontmatter":{"title":"LLMs txt","createTime":"2025/11/19 14:48:35","permalink":"/config/plugins/llmstxt/","description":"概述 为站点添加 llms.txt,以提供对 LLM 友好的内容。 关联插件: @vuepress/plugin-llms 为什么需要 llms.txt? 大型语言模型越来越依赖网站信息,但面临一个关键限制:上下文窗口太小,无法完整处理大多数网站。将包含导航、广告和 JavaScript 的复杂 HTML 页面转换为适合 LLM 的纯文本既困难又不精确...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"LLMs txt\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-11-19T08:51:49.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://theme-plume.vuejs.press/config/plugins/llmstxt/"}],["meta",{"property":"og:site_name","content":"Plume 主题"}],["meta",{"property":"og:title","content":"LLMs txt"}],["meta",{"property":"og:description","content":"概述 为站点添加 llms.txt,以提供对 LLM 友好的内容。 关联插件: @vuepress/plugin-llms 为什么需要 llms.txt? 大型语言模型越来越依赖网站信息,但面临一个关键限制:上下文窗口太小,无法完整处理大多数网站。将包含导航、广告和 JavaScript 的复杂 HTML 页面转换为适合 LLM 的纯文本既困难又不精确..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2025-11-19T08:51:49.000Z"}],["meta",{"property":"article:modified_time","content":"2025-11-19T08:51:49.000Z"}],["link",{"rel":"alternate","hreflang":"en-us","href":"https://theme-plume.vuejs.press/en/config/plugins/llmstxt/"}]]},"readingTime":{"minutes":2.39,"words":716},"git":{"createdTime":1763542309000,"updatedTime":1763542309000,"contributors":[{"name":"pengzhanbo","username":"pengzhanbo","email":"volodymyr@foxmail.com","commits":1,"avatar":"https://avatars.githubusercontent.com/pengzhanbo?v=4","url":"https://github.com/pengzhanbo"}],"changelog":[{"hash":"20728f504d2ddba55e4bcca2f7a1b6793fa9ba04","time":1763542309000,"email":"volodymyr@foxmail.com","author":"pengzhanbo","message":"feat(theme): add <code>plugin-llms</code> and <code><PageContextMenu /></code> component (#753)"}]},"autoDesc":true,"filePathRelative":"config/plugins/llms.md","headers":[],"bulletin":false}`),u={name:`llms.md`},d={class:`vp-file-tree`},f={class:`code-block-title`,"data-title":`.vuepress/config.ts`},p={class:`code-block-title-bar`},m={class:`title`},h={class:`code-block-title`,"data-title":`.vuepress/client.ts`},g={class:`code-block-title-bar`},_={class:`title`};function v(c,l,u,v,y,b){let x=t(`VPCopyButton`),S=t(`VPIcon`),C=t(`FileTreeNode`),w=t(`VPLink`);return n(),i(`div`,null,[l[13]||=o(`<h2 id="概述" tabindex="-1"><a class="header-anchor" href="#概述"><span>概述</span></a></h2><p>为站点添加 <a href="https://llmstxt.org/" target="_blank" rel="noopener noreferrer">llms.txt</a>,以提供对 LLM 友好的内容。</p><p><strong>关联插件</strong>: <a href="https://ecosystem.vuejs.press/zh/plugins/ai/llms.html" target="_blank" rel="noopener noreferrer">@vuepress/plugin-llms</a></p><h2 id="为什么需要-llms-txt" tabindex="-1"><a class="header-anchor" href="#为什么需要-llms-txt"><span>为什么需要 llms.txt?</span></a></h2><p>大型语言模型越来越依赖网站信息,但面临一个关键限制:上下文窗口太小,无法完整处理大多数网站。将包含导航、广告和 JavaScript 的复杂 HTML 页面转换为适合 LLM 的纯文本既困难又不精确。</p><p>虽然网站同时为人类读者和 LLM 服务,但后者受益于在一个可访问的位置收集的更简洁、专家级的信息。这对于开发环境等使用案例尤其重要,因为 LLM 需要快速访问编程文档和 API。</p><p>向网站添加 <code>/llms.txt</code> Markdown 文件,以提供对 LLM 友好的内容。此文件提供了简短的背景信息、指南和指向详细 Markdown 文件的链接。</p><h2 id="功能" tabindex="-1"><a class="header-anchor" href="#功能"><span>功能</span></a></h2><p>插件通过检索你的文档源目录中的所有 Markdown 文件,并将其转换为 LLM 友好的纯文本文件。</p>`,9),s(`div`,d,[r(x,{text:`eJzT43o0ZcqjKQ1ApKBXVppaUJRaXKyfkllcwqUABI+mzIFK5uTkFuuVVGAT1k0rzcnBIpebWJSdkl+ep5takZhbkJNarJdRkpsDVQSzFFNRbgoA7os/oQ==`,encode:``,"aria-label":`复制`,"data-copied":`已复制`}),r(C,{expanded:``,type:`folder`,filename:`.vuepress/dist`,level:0},{icon:e(()=>[r(S,{provider:`iconify`,name:`vscode-icons:folder-type-dist`})]),default:e(()=>[r(C,{type:`file`,filename:`llms.txt`,level:1},{icon:e(()=>[r(S,{provider:`iconify`,name:`vscode-icons:file-type-text`})]),_:1}),r(C,{type:`file`,filename:`llms-full.txt`,level:1},{icon:e(()=>[r(S,{provider:`iconify`,name:`vscode-icons:file-type-text`})]),_:1}),r(C,{type:`file`,filename:`markdown-examples.html`,level:1},{icon:e(()=>[r(S,{provider:`iconify`,name:`vscode-icons:file-type-html`})]),_:1}),r(C,{type:`file`,filename:`markdown-examples.md`,level:1},{icon:e(()=>[r(S,{provider:`iconify`,name:`vscode-icons:file-type-markdown`})]),_:1}),r(C,{type:`file`,filename:`…`,level:1})]),_:1})]),l[14]||=s(`p`,null,`点击以下链接查看本文档站点的 llms.txt 文件:`,-1),s(`ul`,null,[s(`li`,null,[r(w,{href:`/llms.txt`,class:`no-icon`},{default:e(()=>[...l[0]||=[a(`llms.txt`,-1)]]),_:1})]),s(`li`,null,[r(w,{href:`/llms-full.txt`,class:`no-icon`},{default:e(()=>[...l[1]||=[a(`llms-full.txt`,-1)]]),_:1})])]),l[15]||=o(`<div class="hint-container tip"><p class="hint-container-title">提示</p><p>插件仅在生产构建时,即执行 <code>vuepress build</code> 命令时,生成 <code>llms.txt</code> 文件,以及其它 LLM 友好的文档文件,并将它们输出到 <code>.vuepress/dist</code> 目录中。</p></div><p><a href="https://ecosystem.vuejs.press/zh/plugins/ai/llms.html#%E6%8F%92%E4%BB%B6%E5%8A%9F%E8%83%BD" class="read-more" target="_blank" rel="noopener noreferrer">完整功能说明请查看 <strong>插件官方文档</strong></a></p><h2 id="配置" tabindex="-1"><a class="header-anchor" href="#配置"><span>配置</span></a></h2><p>主题默认不启用此功能,你可以通过 <code>llmstxt</code> 配置项启用它:</p>`,4),s(`div`,f,[s(`div`,p,[s(`span`,m,[r(S,{provider:`iconify`,name:`vscode-icons:file-type-typescript`}),l[2]||=a(`.vuepress/config.ts`,-1)])]),l[3]||=o(`<div class="language-ts line-numbers-mode" data-highlighter="shiki" data-ext="ts" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-ts"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> defineUserConfig</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> from</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> '</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">vuepress</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> plumeTheme</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> from</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> '</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">vuepress-theme-plume</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">export</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> default</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> defineUserConfig</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">({</span></span>
|
||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> theme</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">: </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">plumeTheme</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">({</span></span>
|
||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // 使用主题内置的默认配置</span></span>
|
||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // llmstxt: true,</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // 使用自定义配置</span></span>
|
||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> llmstxt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">: {</span></span>
|
||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> locale</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">: </span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">/</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
|
||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // ...其它配置</span></span>
|
||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> },</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // 也可以在 \`plugins.llmstxt\` 配置,但不推荐</span></span>
|
||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> plugins</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">: {</span></span>
|
||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> llmstxt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">: </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">true</span></span>
|
||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span>
|
||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }),</span></span>
|
||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">})</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,1)]),l[16]||=s(`p`,null,[s(`a`,{href:`https://ecosystem.vuejs.press/zh/plugins/ai/llms.html#options`,class:`read-more`,target:`_blank`,rel:`noopener noreferrer`},[a(`完整配置项说明请查看 `),s(`strong`,null,`插件官方文档`)])],-1),l[17]||=s(`h2`,{id:`组件`,tabindex:`-1`},[s(`a`,{class:`header-anchor`,href:`#组件`},[s(`span`,null,`组件`)])],-1),s(`p`,null,[l[5]||=a(`为进一步增强 文档站点 与 LLMs 的互动,你可以在文档站点中添加 `,-1),l[6]||=s(`code`,null,`<PageContextMenu />`,-1),l[7]||=a(` 组件。 该组件不作为内置组件,而是主题额外的 `,-1),l[8]||=s(`code`,null,`features`,-1),l[9]||=a(` 实现,因此你需要手动引入它, 并在合适的位置,通过 `,-1),r(w,{href:`../../guide/custom/slots.md`},{default:e(()=>[...l[4]||=[a(`组件插槽`,-1)]]),_:1}),l[10]||=a(` 添加到文档站点中:`,-1)]),s(`div`,h,[s(`div`,g,[s(`span`,_,[r(S,{provider:`iconify`,name:`vscode-icons:file-type-typescript`}),l[11]||=a(`.vuepress/client.ts`,-1)])]),l[12]||=o(`<div class="language-ts line-numbers-mode" data-highlighter="shiki" data-ext="ts" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark has-diff vp-code"><code class="language-ts"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> defineAsyncComponent</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> h</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> from</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> '</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">vue</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> Layout</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> from</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> '</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">vuepress-theme-plume/client</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span></span>
|
||
<span class="line diff add"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> PageContextMenu</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> from</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> '</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">vuepress-theme-plume/features/PageContextMenu.vue</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> defineClientConfig</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> from</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> '</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">vuepress/client</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">export</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> default</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> defineClientConfig</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">({</span></span>
|
||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> layouts</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">: {</span></span>
|
||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> Layout</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">: </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">h</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">Layout</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">, </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">null</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">, {</span></span>
|
||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // 将 PageContextMenu 添加到 doc-title-after 插槽,即文章标题的右侧</span></span>
|
||
<span class="line diff add"><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> '</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">doc-title-after</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">: () => </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">h</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">PageContextMenu</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">), </span></span>
|
||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }),</span></span>
|
||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> },</span></span>
|
||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">})</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,1)]),l[18]||=s(`p`,null,`你可以在当前页面的标题的右侧,体验该组件的功能。`,-1),l[19]||=s(`div`,{class:`hint-container important`},[s(`p`,{class:`hint-container-title`},`重要`),s(`p`,null,[a(`此组件完全依赖于 `),s(`code`,null,`@vuepress/plugin-llms`),a(` 插件,仅当你启用了此插件功能后,才能使用它。`)]),s(`p`,null,[a(`因此,此组件提供的功能 `),s(`strong`,null,`仅在构建后的生产包中才可用`),a(` 。`)])],-1)])}var y=c(u,[[`render`,v]]);export{l as _pageData,y as default}; |