async function generateConfiguration() {
                    /* 
                    Configuration
                    */
                    let html = ''
                    let paragraph
                    let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex
                    if(appSchemaDocument === undefined || appSchemaDocument.editors === undefined || appSchemaDocument.editors.config !== true) {
                        return ''
                    }
                    paragraph = {
                        style: "Subtitle",
                        text: "Initial Values"
                    }
                    html = html + await renderParagraph(paragraph, key)
                    autoGeneratedParagraphIndex++

                    if(appSchemaDocument.initialValues === undefined || appSchemaDocument.initialValues.config === undefined) {
                        return ''
                    }

                    paragraph = {
                        style: "Text",
                        text: "These are the Initial Values for " + appSchemaDocument.type + " configuration:"
                    }
                    html = html + await renderParagraph(paragraph, key)
                    autoGeneratedParagraphIndex++
                    let initialValues = JSON.parse(appSchemaDocument.initialValues.config)
                    paragraph = {
                        style: "Json",
                        text: JSON.stringify(initialValues, undefined, 4)
                    }
                    html = html + await renderParagraph(paragraph, key)
                    autoGeneratedParagraphIndex++

                    paragraph = {
                        style: "Subtitle",
                        text: "Examples"
                    }
                    html = html + await renderParagraph(paragraph, key)
                    autoGeneratedParagraphIndex++
                    paragraph = {
                        style: "Text",
                        text: "This is a list of properties featured by the " + appSchemaDocument.type + " configuration. Expanding a property shows sample values for the property extracted from the current Workspace."
                    }
                    html = html + await renderParagraph(paragraph, key)
                    autoGeneratedParagraphIndex++
                    /*
                    Here we will scan the whole workspace, first looking for nodes of the same type,
                    and after that, analysing their configuration in order to extract all the properties
                    they are using and sample values for each one.
                    */
                    /* First Step: get an array of all the nodes in the workspace of this type */
                    let rootNodes = [] //ED.designSpace.workspace.workspaceNode.rootNodes
                    let allNodesFound = []
                    for(let i = 0; i < rootNodes.length; i++) {
                        let rootNode = rootNodes[i]
                        if(rootNode !== null) {
                            let nodeArray = ED.utilities.nodeBranchToArray(rootNode, appSchemaDocument.type)
                            allNodesFound = allNodesFound.concat(nodeArray)
                        }
                    }
                    /* Second Step: create a map with all the properties used in configurations of this node type */
                    let propertyMap = new Map()
                    for(let i = 0; i < allNodesFound.length; i++) {
                        let node = allNodesFound[i]
                        let config = {}
                        try {config = JSON.parse(node.config)} catch(e) { }
                        for(const property in config) {
                            let value = JSON.stringify(config[property], undefined, 4)
                            let valueArray = propertyMap.get(property)
                            if(valueArray === undefined) {
                                propertyMap.set(property, [value])
                            } else {
                                if(valueArray.includes(value) === false) {
                                    if(valueArray.length <= 10) {
                                        valueArray.push(value)
                                    }
                                }
                            }
                        }
                    }
                    /* Third Step: we will display the list of properties and the sample values */
                    for(let e of paragraphMap) {
                        html = html + await displayProperty(e[1], e[0])
                    }
                    return html
                    // propertyMap.forEach(displayProperty)

                    async function displayProperty(valueArray, mapKey) {

                        let name = ED.utilities.fromCamelCaseToUpperWithSpaces(mapKey)

                        let pHtml = '<button id="docs-config-property-' + mapKey.toLowerCase() + '" type="button" class="docs-collapsible-element"><img class="docs-configuration-property-image">' + name + '</button>'
                        pHtml = pHtml + '<div class="docs-collapsible-content">'

                        for(let i = 0; i < valueArray.length; i++) {
                            let value = valueArray[i]

                            paragraph = {
                                style: "Json",
                                text: value
                            }
                            pHtml = pHtml + await renderParagraph(paragraph, key)
                            autoGeneratedParagraphIndex++
                        }

                        return pHtml + '</div>'
                    }
                }
@returns {Promise<string>} generated configuration HTML