首页
/ 一文搞定代码转提示:code2prompt多格式输出全攻略

一文搞定代码转提示:code2prompt多格式输出全攻略

2026-02-05 05:24:33作者:柯茵沙

你是否曾为将代码库转换为LLM(大语言模型)提示而烦恼?手动复制粘贴文件不仅效率低下,还容易遗漏关键代码结构。code2prompt作为一款强大的CLI(命令行界面)工具,能帮你一键将整个代码库转换为单个LLM提示,并支持JSON、XML等多种输出格式。本文将详细介绍如何使用code2prompt实现不同格式的转换,让你的代码提示生成工作事半功倍。

支持的输出格式概览

code2prompt提供了三种主要的输出格式,满足不同场景下的需求:

  • Markdown(默认):适合直接粘贴到LLM对话窗口,保留代码结构和语法高亮。
  • JSON:便于机器解析和进一步处理,如导入到其他工具或系统。
  • XML:结构化程度高,适合需要严格层级关系表示的场景。

这些格式的实现主要依赖于模板系统,相关的模板文件和处理逻辑可以在以下路径找到:

XML格式输出详解

XML格式输出通过default_template_xml.hbs模板实现,其结构清晰,包含代码目录、源码树和文件内容等关键信息。以下是XML模板的核心结构:

<directory>{{absolute_code_path}}</directory>

<source-tree>
  {{source_tree}}
</source-tree>

<files>
  {{#each files}}
    {{#if code}}
      <file path="{{path}}">
        {{code}}
      </file>
    {{/if}}
  {{/each}}
</files>

{{#if git_diff}}
  <git-diff>
    {{git_diff}}
  </git-diff>
{{/if}}

这个模板定义了四个主要部分:

  1. <directory>:代码库的绝对路径。
  2. <source-tree>:代码库的目录结构树。
  3. <files>:包含所有文件的路径和代码内容。
  4. <git-diff>(可选):如果有Git差异,会包含相关信息。

要生成XML格式的输出,只需在命令行中指定--format xml参数。

格式处理核心逻辑

code2prompt的格式处理逻辑在template.rs文件中实现,其中定义了OutputFormat枚举,明确支持三种格式:

#[derive(Default, Debug, Clone, PartialEq, Eq)]
pub enum OutputFormat {
    #[default]
    Markdown,
    Json,
    Xml,
}

同时,该文件还实现了从字符串到OutputFormat的转换,确保命令行参数能正确解析:

impl FromStr for OutputFormat {
    type Err = anyhow::Error;

    fn from_str(s: &str) -> Result<Self> {
        match s.to_lowercase().as_str() {
            "markdown" | "md" => Ok(OutputFormat::Markdown),
            "json" => Ok(OutputFormat::Json),
            "xml" => Ok(OutputFormat::Xml),
            _ => Err(anyhow!(
                "Invalid output format: {}. Allowed values: markdown, json, xml",
                s
            )),
        }
    }
}

这段代码确保了只有指定的三种格式是有效的,避免了格式参数错误。

实际使用示例

以下是使用code2prompt生成不同格式输出的命令示例:

生成Markdown格式(默认)

code2prompt --path /your/code/directory

生成JSON格式

code2prompt --path /your/code/directory --format json

生成XML格式

code2prompt --path /your/code/directory --format xml

这些命令会根据指定的格式,使用相应的模板生成输出。你可以通过--output参数指定输出文件路径,例如:

code2prompt --path /your/code/directory --format xml --output code_prompt.xml

自定义模板扩展格式

除了内置的三种格式,code2prompt还支持自定义模板,让你可以生成满足特定需求的输出格式。自定义模板可以放在项目的templates目录下:

crates/code2prompt-core/templates/

该目录下已经包含了多种场景的模板,如write-github-readme.hbsrefactor.hbs等,你可以参考这些模板创建自己的格式。

总结

code2prompt通过灵活的模板系统和格式处理逻辑,为用户提供了Markdown、JSON和XML三种输出格式,满足不同场景下的需求。无论是直接与LLM交互,还是进行机器解析处理,code2prompt都能帮你高效地将代码库转换为所需的提示格式。

要开始使用code2prompt,只需克隆项目仓库并按照llms-install.md中的说明进行安装。如有任何问题,可以查阅项目文档或查看源码中的模板和格式处理逻辑。

希望本文能帮助你更好地利用code2prompt的多格式输出功能,提升代码提示生成的效率和质量!

登录后查看全文
热门项目推荐
相关项目推荐