UNPKG

@gravityforms/gulp-tasks

Version:
61 lines (47 loc) 1.42 kB
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 };