ts300
Version:
唐诗300首
80 lines (78 loc) • 2.57 kB
JavaScript
#!/usr/bin/env node
const pinyin = require("pinyin");
const colorUtil = require('./color-util')
const randomPoem = require('./random-poem')
let argv = require('yargs')
.option('s', {
alias: 'style',
demand: false,
boolean: true,
describe: '显示所支持的样式',
}).option('pps', {
alias: 'poem-pinyin-style',
demand: false,
default: 'magenta',
describe: '诗词样式,如--ps=blue_bt',
type: 'string'
}).option('ps', {
alias: 'poem-style',
demand: false,
default: 'blue_bt',
describe: '诗词样式,如--ps=blue_bt',
type: 'string'
}).option('as', {
alias: 'author-style',
demand: false,
default: 'green_bt',
describe: '作者样式,如--as=green_bt',
type: 'string'
}).option('os', {
alias: 'origin-style',
demand: false,
default: 'cyan',
describe: '来源颜色,如--os=cyan',
type: 'string'
}).option('h', {
alias: 'help',
demand: false,
boolean: true,
describe: '帮助',
}).option('v', {
alias: 'version',
demand: false,
boolean: true,
describe: '版本号',
})
.argv;
// 显示所支持的样式
if (!!argv.s) {
colorUtil.printSupportStyle();
} else {
randomPoem().then(function (data) {
let signature = data.author + '《' + data.origin + '》';
let prefix = '———— ';
let paddingSpacing = '';
let spacingLength = data.content.length * 2 - signature.length * 2 - prefix.length;
if (spacingLength > 0) {
if (data.origin.indexOf('·') !== -1) {
spacingLength++;
}
paddingSpacing = new Array(spacingLength).fill(' ').join('');
}
try {
// 添加颜色
signature = colorUtil.getColorMethod(argv.as)(data.author) + '《' + colorUtil.getColorMethod(argv.os)(data.origin) + '》';
signature = (paddingSpacing + prefix) + signature
const pyContent = pinyin(data.content).join(' ')
console.log();
console.log(colorUtil.getColorMethod(argv.pps)(pyContent));
console.log(colorUtil.getColorMethod(argv.ps)(data.content));
console.log(signature);
console.log();
} catch (error) {
// 错误处理
console.log(colorUtil.color.red(error.message));
colorUtil.printSupportStyle();
}
})
}