如何将Inquirer多选输出格式化为Markdown列表(README生成器)
问题与解决方案
问题描述
我正在为学校项目制作README生成器,Inquirer的复选框提示功能正常。调用以下复选框提示的languages数据时:
{ type: "checkbox", name: "languages", message: "What languages/technologies were used to create this project?", choices: ["HTML", "CSS", "JavaScript", "Node.JS"], }
使用模板字面量插入后,Markdown中显示为无空格的逗号分隔字符串:
## Technologies Used ${data.languages}
实际渲染效果:
## Technologies Used HTML,CSS,JavaScript,Node.JS
我希望将其格式化为Markdown列表,请问该如何实现?
解决方法
Inquirer复选框返回的data.languages是一个数组,你可以利用数组的map()方法将每个元素转换为Markdown无序列表项,再用join('\n')拼接成多行字符串。
基础实现
修改模板字面量部分:
## Technologies Used ${data.languages.map(lang => `- ${lang}`).join('\n')}
渲染后会生成标准的Markdown列表:
## Technologies Used - HTML - CSS - JavaScript - Node.JS
处理空选项情况
如果需要兼容未选中任何技术的场景,可以添加判断逻辑:
## Technologies Used ${data.languages.length > 0 ? data.languages.map(lang => `- ${lang}`).join('\n') : '- None'}
内容的提问来源于stack exchange,提问作者BarkMulcher
相关产品推荐
相关产品推荐

