Skip to content
On this page

figlet

简介

figlet 是一个用于生成 ASCII 艺术字的 Node.js 库,它可以将普通文本转换成由 ASCII 字符组成的艺术字体。

安装

bash
npm install figlet

基本使用

1. 简单文本转换

javascript
const figlet = require('figlet')

figlet.text('Hello World!', function (err, data) {
  if (err) {
    console.log('出错了...')
    console.dir(err)
    return
  }
  console.log(data)
})

2. 使用 Promise

javascript
const figlet = require('figlet')
const util = require('util')
const figletPromise = util.promisify(figlet.text)

async function generateArt(text) {
  try {
    const result = await figletPromise(text)
    console.log(result)
  } catch (err) {
    console.error('生成失败:', err)
  }
}

高级特性

1. 使用不同字体

javascript
figlet.text(
  'Hello!',
  {
    font: 'Ghost',
    horizontalLayout: 'default',
    verticalLayout: 'default',
    width: 80,
    whitespaceBreak: true,
  },
  function (err, data) {
    if (err) {
      console.log('出错了...')
      console.dir(err)
      return
    }
    console.log(data)
  },
)

2. 查看可用字体

javascript
console.log(figlet.fontsSync())

3. 同步方式使用

javascript
const result = figlet.textSync('Hello World', {
  font: 'Standard',
  horizontalLayout: 'default',
  verticalLayout: 'default',
})
console.log(result)

最佳实践

  1. 错误处理

    javascript
    function createAsciiArt(text, font = 'Standard') {
      try {
        return figlet.textSync(text, { font })
      } catch (err) {
        console.error('ASCII 艺术字生成失败:', err)
        return text // 降级返回原始文本
      }
    }
  2. 字体预加载

    javascript
    const fonts = figlet.fontsSync()
    const font = fonts.includes('Ghost') ? 'Ghost' : 'Standard'
  3. 自适应宽度

    javascript
    function generateAdaptiveArt(text, maxWidth = process.stdout.columns) {
      return figlet.textSync(text, {
        width: maxWidth,
        whitespaceBreak: true,
      })
    }

注意事项

  1. 注意输出宽度,避免文字显示不完整
  2. 某些字体可能不支持非英文字符
  3. 在 CLI 应用中使用时考虑终端宽度
  4. 大文本转换可能影响性能
  5. 某些特殊字符可能导致显示异常

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命