@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
61 lines (47 loc) • 1.42 kB
JavaScript
function render( lines, tagNames ) {
if ( lines.length === 0 ) {
return '';
}
const items = [];
let currentTag = null;
lines.forEach( ( line ) => {
line = line.trim();
if ( line === '' ) {
currentTag = null;
return;
}
const firstWord = line.split( ' ' )[0];
if ( tagNames.includes( firstWord ) ) {
currentTag = firstWord.substring( 1 ); // Remove '@'
const content = line.substring( firstWord.length ).trim();
items.push( { tag: currentTag, value: content } );
} else if ( currentTag ) {
// Continuation of previous tag
items[ items.length - 1 ].value += ' ' + line;
}
});
if ( items.length === 0 ) {
return '';
}
let content = '<dl class="details">';
items.forEach( ( item ) => {
const { tag, value } = item;
let dtClasses = [ 'bold', `tag-${ tag }` ];
let ddClasses = [ `tag-${ tag }` ];
if ( tag === 'deprecated' ) {
dtClasses.push( 'important' );
}
const dtClass = dtClasses.join(' ');
const ddClass = ddClasses.join(' ');
content += '<div class="details-item-container">';
content += `<dt class="${ dtClass }">${ capitalizeFirstLetter( tag ) }</dt>`;
content += `<dd class="${ ddClass }"><ul><li>${ value }</li></ul></dd>`;
content += '</div>';
});
content += '</dl>';
return content;
}
function capitalizeFirstLetter( string ) {
return string.charAt( 0 ).toUpperCase() + string.slice( 1 );
}
module.exports = { render };