async function addChapterIndex(chapterText) {
                    let splittedChapterText = chapterText.split('->')
                    let chapterNumber = splittedChapterText[0]
                    let project = splittedChapterText[1]
                    let category = splittedChapterText[2]
                    let chapterName = splittedChapterText[3]
                    let introText = splittedChapterText[4]
                    let html = ''

                    if(project === undefined || category === undefined || chapterNumber === undefined || chapterName === undefined) {
                        return {error: 'Chapter paragraph style Syntax Error. Some of the required parameters are undefined. Check the Docs Chapter Style Syntax. This error message will disappear as soon as you fix the problem.'}
                    }

                    let projectSchema = SCHEMAS_BY_PROJECT.get(project)
                    if(projectSchema === undefined) {
                        projectSchema = await ED.schemas.convertProjectsToSchemas(project).then(() => SCHEMAS_BY_PROJECT.get(project))
                    }
                    if(projectSchema === undefined) {
                        return {error: 'Chapter paragraph style Syntax Error. The Project <i>' + project + '</i> could not be found. Check the Docs Chapter Style Syntax. This error message will disappear as soon as you fix the problem.'}
                    }

                    if(category !== 'Topic' && category !== 'Tutorial' && category !== 'Review') {
                        return {error: 'Category must be either Topic, Tutorial or Review. Found: <i>' + category + '</i>'}
                    }

                    switch(category) {
                        case 'Topic': {
                            orderedTopicPageIndexArray = ED.utilities.buildOrderedPageIndex(
                                thisObject.currentDocumentBeingRendered.project,
                                'Topic',
                                chapterName
                            )

                            if(orderedTopicPageIndexArray.length === 0) {
                                return {error: 'Chapter paragraph style Syntax Error. The Topic <i>' + chapterName + '</i> could not be found. Check the Docs Chapter Style Syntax. This error message will disappear as soon as you fix the problem.'}
                            }
                            break
                        }
                        case 'Tutorial': {
                            orderedTutorialPageIndexArray = ED.utilities.buildOrderedPageIndex(
                                project,
                                'Tutorial',
                                chapterName
                            )

                            if(orderedTutorialPageIndexArray.length === 0) {
                                return {error: 'Chapter paragraph style Syntax Error. The Tutorial <i>' + chapterName + '</i> could not be found. Check the Docs Chapter Style Syntax. This error message will disappear as soon as you fix the problem.'}
                            }
                            break
                        }
                        case 'Review': {
                            orderedReviewPageIndexArray = ED.utilities.buildOrderedPageIndex(
                                thisObject.currentDocumentBeingRendered.project,
                                'Review',
                                chapterName
                            )

                            if(orderedReviewPageIndexArray.length === 0) {
                                return {error: 'Chapter paragraph style Syntax Error. The Review <i>' + chapterName + '</i> could not be found. Check the Docs Chapter Style Syntax. This error message will disappear as soon as you fix the problem.'}
                            }
                            break
                        }
                    }

                    html = html + '<div class="docs-topic-index">' // Container for Topic Index 

                    let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex
                    paragraph = {
                        style: "Title",
                        text: 'Chapter ' + chapterNumber + ' - ' + chapterName
                    }

                    html = html + '<h2>'
                    html = html + await renderParagraph(paragraph, key)
                    autoGeneratedParagraphIndex++
                    html = html + '</h2>'

                    if(introText !== undefined) {
                        let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex
                        paragraph = {
                            style: "Text",
                            text: introText
                        }
                        html = html + '<p><strong>'
                        html = html + await renderParagraph(paragraph, key)
                        autoGeneratedParagraphIndex++
                        html = html + '</strong></p>'
                    }

                    html = html + '<h3>Table of Contents</h3>'

                    switch(category) {
                        case 'Topic': {
                            html = html + generateTopicMultiPageIndex(project)
                            break
                        }
                        case 'Tutorial': {
                            html = html + generateTutorialMultiPageIndex(project)
                            break
                        }
                        case 'Review': {
                            html = html + generateReviewMultiPageIndex(project)
                            break
                        }
                    }

                    html = html + '</div>'  // Container for Topic Index 
                    return {html}
                }
@param {string} chapterText 
@returns {Promise<{
  html: string?, 
  error: string?
}}>} generated chapter HTML