in sync-api-docs/generateMarkdown.js [242:310]
function preprocessDescription(desc) {
// Playground tabs for the class and functional components
const playgroundTab = `<div class="toggler">
<ul role="tablist" class="toggle-syntax">
<li id="functional" class="button-functional" aria-selected="false" role="tab" tabindex="0" aria-controls="functionaltab" onclick="displayTabs('syntax', 'functional')">
Function Component Example
</li>
<li id="classical" class="button-classical" aria-selected="false" role="tab" tabindex="0" aria-controls="classicaltab" onclick="displayTabs('syntax', 'classical')">
Class Component Example
</li>
</ul>
</div>`;
//Blocks for different syntax sections
const functionalBlock = `<block class='functional syntax' />`;
const classBlock = `<block class='classical syntax' />`;
const endBlock = `<block class='endBlock syntax' />`;
desc = desc
.split('\n')
.map(line => {
return line.replace(/ /, '');
})
.join('\n');
const descriptionTokenized = tokenizeComment(desc);
// Tabs counter for examples
let tabs = 0;
descriptionTokenized.examples.map(item => {
const matchSnackPlayer = item.language.match(/(SnackPlayer name=).*/g);
if (matchSnackPlayer) {
const matchClassComp = matchSnackPlayer[0].match(
/Class%20Component%20Example/
);
const matchFuncComp = matchSnackPlayer[0].match(
/Function%20Component%20Example/
);
if (matchClassComp || matchFuncComp) tabs++;
}
});
if (tabs === 2) {
const firstExample = desc.slice(desc.search('```SnackPlayer') + 1);
const secondExample = firstExample.slice(
firstExample.search('```SnackPlayer') + 1
);
return (
desc.substring(0, desc.search('```SnackPlayer')) +
`\n## Example\n` +
`${playgroundTab}\n\n${functionalBlock}\n\n${
'`' + firstExample.slice(0, firstExample.search('```') + 3)
}\n\n${classBlock}\n\n${
'`' + secondExample.slice(0, secondExample.search('```') + 3)
}\n\n${endBlock}` +
secondExample.slice(secondExample.search('```') + 3)
);
} else {
if (desc.search('```SnackPlayer') !== -1) {
return (
desc.slice(0, desc.search('```SnackPlayer')) +
'\n' +
'\n## Example\n' +
'\n' +
desc.slice(desc.search('```SnackPlayer'))
);
} else return desc;
}
}