async function renderParagraphForTranslation(paragraph, key, language, addTranslationClasses) {
                let innerHTML
                let styleClassList = []
                let prefix = ''
                let sufix = ''
                let role = ''

                switch(paragraph.style) {
                    case 'Text': {
                        prefix = ''
                        role = ''
                        key = key + '-text'
                        styleClassList.push('docs-paragraph')
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = ED.utilities.addCodeToCamelCase(innerHTML)
                        innerHTML = ED.utilities.addCodeToWhiteList(innerHTML)
                        innerHTML = ED.utilities.addKeyboard(innerHTML)
                        innerHTML = ED.utilities.addItalics(innerHTML)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Title': {
                        styleClassList.push('docs-h3')
                        prefix = ''
                        role = ''
                        key = key + '-title'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Subtitle': {
                        styleClassList.push('docs-h4')
                        prefix = ''
                        role = ''
                        key = key + '-subtitle'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Note': {
                        styleClassList.push('docs-font-small')
                        styleClassList.push('docs-alert-note')
                        prefix = '<i class="docs-fa docs-note-circle"></i> <b>Note:</b>'
                        role = 'role="alert"'
                        key = key + '-note'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = ED.utilities.addKeyboard(innerHTML)
                        innerHTML = ED.utilities.addItalics(innerHTML)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Success': {
                        styleClassList.push('docs-font-small')
                        styleClassList.push('docs-alert-success')
                        prefix = '<i class="docs-fa docs-check-square-o"></i> <b>Tip:</b>'
                        role = 'role="alert"'
                        key = key + '-success'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = ED.utilities.addKeyboard(innerHTML)
                        innerHTML = ED.utilities.addItalics(innerHTML)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Important': {
                        styleClassList.push('docs-font-small')
                        styleClassList.push('docs-alert-important')
                        prefix = '<i class="docs-fa docs-warning-sign"></i> <b>Important:</b>'
                        role = 'role="alert"'
                        key = key + '-important'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = ED.utilities.addKeyboard(innerHTML)
                        innerHTML = ED.utilities.addItalics(innerHTML)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Warning': {
                        styleClassList.push('docs-font-small')
                        styleClassList.push('docs-alert-warning')
                        prefix = '<i class="docs-fa docs-warning-sign"></i> <b>Warning:</b>'
                        role = 'role="alert"'
                        key = key + '-warning'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = ED.utilities.addKeyboard(innerHTML)
                        innerHTML = ED.utilities.addItalics(innerHTML)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Error': {
                        styleClassList.push('docs-font-small')
                        styleClassList.push('docs-alert-error')
                        prefix = '<i class="docs-fa docs-warning-sign"></i> <b>Error:</b>'
                        role = 'role="alert"'
                        key = key + '-error'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Callout': {
                        styleClassList.push('docs-font-small')
                        styleClassList.push('docs-callout')
                        prefix = ''
                        role = ''
                        key = key + '-callout'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = ED.utilities.addKeyboard(innerHTML)
                        innerHTML = ED.utilities.addItalics(innerHTML)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Summary': {
                        styleClassList.push('docs-font-small')
                        styleClassList.push('docs-summary')
                        prefix = '<b>Summary:</b>'
                        role = ''
                        key = key + '-summary'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = ED.utilities.addKeyboard(innerHTML)
                        innerHTML = ED.utilities.addItalics(innerHTML)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Section': {
                        styleClassList.push('docs-section')
                        prefix = ''
                        role = ''
                        key = key + '-section'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'List': {
                        prefix = '<ul><li>'
                        sufix = '</li></ul>'
                        role = ''
                        key = key + '-list'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = ED.utilities.addCodeToCamelCase(innerHTML)
                        innerHTML = ED.utilities.addBold(innerHTML)
                        innerHTML = ED.utilities.addKeyboard(innerHTML)
                        innerHTML = ED.utilities.addItalics(innerHTML)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = innerHTML + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        break
                    }
                    case 'Table': {
                        prefix = '<table class="docs-info-table">'
                        sufix = '</table>' + ED.utilities.addWarningIfTranslationIsOutdated(paragraph, language)
                        role = ''
                        key = key + '-table'
                        innerHTML = ED.utilities.getTextBasedOnLanguage(paragraph, language)
                        innerHTML = await ED.utilities.addToolTips(innerHTML, thisObject.currentDocumentBeingRendered.type)
                        innerHTML = ED.utilities.parseTable(innerHTML)
                        innerHTML = ED.utilities.addItalics(innerHTML)
                        break
                    }
                    case 'Hierarchy': {
                        prefix = '<table class="docs-hierarchy-table" params="' + paragraph.text + '">'
                        sufix = '</table>'
                        role = ''
                        key = key + '-hierarchy'
                        innerHTML = await parseHierarchy(paragraph.text)
                        break
                    }
                    case 'Link': {
                        prefix = ''
                        sufix = ''
                        role = ''
                        key = key + '-link'
                        innerHTML = ED.utilities.parseLink(ED.utilities.getTextBasedOnLanguage(paragraph, language))
                        break
                    }
                    case 'Youtube': {
                        prefix = ''
                        sufix = ''
                        role = ''
                        key = key + '-youtube'
                        innerHTML = ED.utilities.parseYoutube(paragraph.text)
                        break
                    }
                    case 'Gif': {
                        prefix = ''
                        sufix = ''
                        role = ''
                        key = key + '-gif'
                        innerHTML = ED.utilities.parseGIF(ED.utilities.normaliseInternalLink(paragraph.text.split('/')))
                        break
                    }
                    case 'Png': {
                        prefix = ''
                        sufix = ''
                        role = ''
                        key = key + '-png'
                        innerHTML = ED.utilities.parsePNG(ED.utilities.normaliseInternalLink(paragraph.text.split('/')))
                        break
                    }
                    case 'Javascript': {
                        prefix = '<pre><code class="language-javascript">'
                        sufix = '</code></pre>'
                        role = ''
                        key = key + '-javascript'
                        innerHTML = paragraph.text
                        break
                    }
                    case 'Json': {
                        prefix = '<pre><code class="language-json">'
                        sufix = '</code></pre>'
                        role = ''
                        key = key + '-json'
                        innerHTML = paragraph.text
                        break
                    }
                    case 'Anchor': {
                        styleClassList.push('docs-hidden-anchor')
                        prefix = '<div id="' + 'docs-anchor-' + paragraph.text.toLowerCase().replaceAll(' ', '-') + '">'
                        sufix = '</div>'
                        role = ''
                        key = key + '-anchor'
                        innerHTML = paragraph.text
                        break
                    }
                    case 'Block': {
                        styleClassList.push('docs-hidden-block')
                        prefix = ''
                        role = ''
                        key = key + '-block'
                        innerHTML = paragraph.text
                        break
                    }
                    case 'Include': {
                        styleClassList.push('docs-hidden-include')
                        prefix = ''
                        role = ''
                        key = key + '-include'
                        innerHTML = paragraph.text
                        break
                    }
                    case 'Placeholder': {
                        styleClassList.push('docs-hidden-placeholder')
                        prefix = ''
                        role = ''
                        key = key + '-placeholder'
                        innerHTML = paragraph.text
                        break
                    }
                    case 'Chapter': {
                        styleClassList.push('docs-chapter')
                        prefix = ''
                        role = ''
                        key = key + '-chapter'
                        innerHTML = paragraph.text
                        break
                    }
                }

                paragraphMap.set(key, paragraph)

                if(addTranslationClasses) {
                    styleClassList.push(language + '-translation')
                    styleClassList.push('translation')
                    if(language != ED.DEFAULT_LANGUAGE) {
                        styleClassList.push('hidden')
                    }
                }
                // class="' + languageClass + '" class="' + languageClass + '"
                return '<div id="' + key + '" class="' + styleClassList.join(' ') + '" ' + role + ' language="' + language + '">' + prefix + ' ' + innerHTML + sufix + '</div>'
            }
@param {Paragraph} paragraph 
@param {string} key 
@param {string} language 
@param {boolean?} addTranslationClasses
@returns {Promise<string>}