@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
60 lines (46 loc) • 1.39 kB
JavaScript
function render( lines, tagNames ) {
if ( lines.length === 0 ) {
return '';
}
const items = [];
let currentTag = null;
lines.forEach( ( originalLine ) => {
const line = originalLine.trim();
if ( line === '' ) {
currentTag = null;
return;
}
const firstWord = line.split( ' ' )[ 0 ];
if ( tagNames.includes( firstWord ) ) {
currentTag = firstWord.substring( 1 );
const content = line.substring( firstWord.length ).trim();
items.push( { tag: currentTag, value: content } );
} else if ( currentTag ) {
items[ items.length - 1 ].value += ' ' + line;
}
} );
if ( items.length === 0 ) {
return '';
}
let content = '<dl class="details">';
items.forEach( ( item ) => {
const { tag, value } = item;
const dtClasses = [ 'bold', `tag-${ tag }` ];
const 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 );
}
export { render };