You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.5 KiB

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.convertHTMLToASCII = convertHTMLToASCII;
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
return data;
};
return data;
}
function _terminalLink() {
const data = _interopRequireDefault(require("terminal-link"));
_terminalLink = function () {
return data;
};
return data;
}
function _turndown() {
const data = _interopRequireDefault(require("turndown"));
_turndown = function () {
return data;
};
return data;
}
function _wrapAnsi() {
const data = _interopRequireDefault(require("wrap-ansi"));
_wrapAnsi = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// @ts-ignore
const turndownServices = {};
function getService(rootUrl) {
if (turndownServices[rootUrl]) {
return turndownServices[rootUrl];
}
const turndownService = new (_turndown().default)();
turndownService.addRule('strikethrough', {
filter: ['del', 's', 'strike'],
replacement(content) {
return _chalk().default.strikethrough(content);
}
});
turndownService.addRule('strong', {
filter: ['strong', 'b'],
replacement(content) {
return _chalk().default.bold(content);
}
});
turndownService.addRule('emphasis', {
filter: ['em', 'i'],
replacement(content) {
return _chalk().default.italic(content);
}
});
turndownService.addRule('heading', {
filter: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
replacement(content) {
return '\n' + _chalk().default.bold(content) + '\n';
}
});
turndownService.addRule('inlineLink', {
filter(node, options) {
return options.linkStyle === 'inlined' && node.nodeName === 'A' && node.getAttribute('href');
},
replacement(content, node) {
let href = node.getAttribute('href');
if (href.startsWith('/')) href = `${rootUrl}${href}`;
if (_terminalLink().default.isSupported) {
return _chalk().default.cyan((0, _terminalLink().default)(content, href));
}
return `${_chalk().default.cyan(content)} (${_chalk().default.underline(href)})`;
}
});
turndownServices[rootUrl] = turndownService;
return turndownService;
}
function convertHTMLToASCII({
content,
rootUrl
}) {
const service = getService(rootUrl);
return (0, _wrapAnsi().default)(service.turndown(content), process.stdout.columns || 80);
}
//# sourceMappingURL=convertHTMLToASCII.js.map