Files
30-seconds-of-code/node_modules/remark-stringify/lib/visitors/inline-code.js
2019-08-20 15:52:05 +02:00

36 lines
687 B
JavaScript

'use strict';
var streak = require('longest-streak');
var repeat = require('repeat-string');
module.exports = inlineCode;
/* Stringify inline code.
*
* Knows about internal ticks (`\``), and ensures one more
* tick is used to enclose the inline code:
*
* ```foo ``bar`` baz```
*
* Even knows about inital and final ticks:
*
* `` `foo ``
* `` foo` ``
*/
function inlineCode(node) {
var value = node.value;
var ticks = repeat('`', streak(value, '`') + 1);
var start = ticks;
var end = ticks;
if (value.charAt(0) === '`') {
start += ' ';
}
if (value.charAt(value.length - 1) === '`') {
end = ' ' + end;
}
return start + value + end;
}