Italics based on Menu Labels working
This commit is contained in:
1 parent
dfa8c8db6b
commit
f8d2a19d28
1 file changed
+96
-23
@@ -35,6 +35,7 @@ function newSuperalgosDocSpace() {
|
||||
let docSchemaParagraphMap
|
||||
let nodeAppDefinition
|
||||
let nodeDocsDefinition
|
||||
let menuLabelsMap = new Map()
|
||||
|
||||
return thisObject
|
||||
|
||||
@@ -47,6 +48,7 @@ function newSuperalgosDocSpace() {
|
||||
|
||||
browserResizedEventSubscriptionId = canvas.eventHandler.listenToEvent('Browser Resized', resize)
|
||||
setUpContextMenu()
|
||||
setUpMenuItemsMap()
|
||||
isInitialized = true
|
||||
|
||||
function setUpContextMenu() {
|
||||
@@ -175,6 +177,28 @@ function newSuperalgosDocSpace() {
|
||||
renderPage()
|
||||
}
|
||||
}
|
||||
|
||||
function setUpMenuItemsMap() {
|
||||
/*
|
||||
Here we will put put all the menu item labels of all nodes at all
|
||||
app schemas into a single map, that will allow us to know when a phrase
|
||||
is a label of a menu and then change its style.
|
||||
*/
|
||||
for (let i = 0; i < PROJECTS_ARRAY.length; i++) {
|
||||
let project = PROJECTS_ARRAY[i]
|
||||
let appSchemaArray = SCHEMAS_BY_PROJECT.get(project).array.appSchema
|
||||
|
||||
for (let j = 0; j < appSchemaArray.length; j++) {
|
||||
let nodeDefinition = appSchemaArray[j]
|
||||
|
||||
if (nodeDefinition.menuItems === undefined) { continue }
|
||||
for (let k = 0; k < nodeDefinition.menuItems.length; k++) {
|
||||
let menuItem = nodeDefinition.menuItems[k]
|
||||
menuLabelsMap.set(menuItem.label, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function finalize() {
|
||||
@@ -186,6 +210,7 @@ function newSuperalgosDocSpace() {
|
||||
docSchemaParagraphMap = undefined
|
||||
nodeAppDefinition = undefined
|
||||
nodeDocsDefinition = undefined
|
||||
menuLabelsMap = undefined
|
||||
}
|
||||
|
||||
function onKeyDown(event) {
|
||||
@@ -472,7 +497,7 @@ function newSuperalgosDocSpace() {
|
||||
prefix = ''
|
||||
role = ''
|
||||
key = key + '-text'
|
||||
innerHTML = addToolTips(renderingNode, paragraph.text)
|
||||
innerHTML = addToolTips(renderingNode, addItalics(paragraph.text))
|
||||
break
|
||||
}
|
||||
case 'Title': {
|
||||
@@ -496,7 +521,7 @@ function newSuperalgosDocSpace() {
|
||||
prefix = '<i class="docs-fa docs-note-circle"></i> <b>Note:</b>'
|
||||
role = 'role="alert"'
|
||||
key = key + '-note'
|
||||
innerHTML = addToolTips(renderingNode, paragraph.text)
|
||||
innerHTML = addToolTips(renderingNode, addItalics(paragraph.text))
|
||||
break
|
||||
}
|
||||
case 'Success': {
|
||||
@@ -504,7 +529,7 @@ function newSuperalgosDocSpace() {
|
||||
prefix = '<i class="docs-fa docs-check-square-o"></i> <b>Tip:</b>'
|
||||
role = 'role="alert"'
|
||||
key = key + '-success'
|
||||
innerHTML = addToolTips(renderingNode, paragraph.text)
|
||||
innerHTML = addToolTips(renderingNode, addItalics(paragraph.text))
|
||||
break
|
||||
}
|
||||
case 'Important': {
|
||||
@@ -512,7 +537,7 @@ function newSuperalgosDocSpace() {
|
||||
prefix = '<i class="docs-fa docs-warning-sign"></i> <b>Important:</b>'
|
||||
role = 'role="alert"'
|
||||
key = key + '-important'
|
||||
innerHTML = addToolTips(renderingNode, paragraph.text)
|
||||
innerHTML = addToolTips(renderingNode, addItalics(paragraph.text))
|
||||
break
|
||||
}
|
||||
case 'Warning': {
|
||||
@@ -520,7 +545,7 @@ function newSuperalgosDocSpace() {
|
||||
prefix = '<i class="docs-fa docs-warning-sign"></i> <b>Warning:</b>'
|
||||
role = 'role="alert"'
|
||||
key = key + '-warning'
|
||||
innerHTML = addToolTips(renderingNode, paragraph.text)
|
||||
innerHTML = addToolTips(renderingNode, addItalics(paragraph.text))
|
||||
break
|
||||
}
|
||||
case 'List': {
|
||||
@@ -529,7 +554,7 @@ function newSuperalgosDocSpace() {
|
||||
sufix = '</li>'
|
||||
role = ''
|
||||
key = key + '-list'
|
||||
innerHTML = addToolTips(renderingNode, paragraph.text)
|
||||
innerHTML = addToolTips(renderingNode, addItalics(paragraph.text))
|
||||
break
|
||||
}
|
||||
case 'Javascript': {
|
||||
@@ -633,6 +658,54 @@ function newSuperalgosDocSpace() {
|
||||
projectImageDiv.appendChild(htmlImage)
|
||||
}
|
||||
|
||||
function addItalics(text) {
|
||||
|
||||
let words = text.split(' ')
|
||||
let changedText = ''
|
||||
for (let i = 0; i < words.length; i++) {
|
||||
let phrase1 = words[i]
|
||||
let phrase2 = words[i] + ' ' + words[i + 1]
|
||||
let phrase3 = words[i] + ' ' + words[i + 1] + ' ' + words[i + 2]
|
||||
let phrase4 = words[i] + ' ' + words[i + 1] + ' ' + words[i + 2] + ' ' + words[i + 3]
|
||||
|
||||
let cleanPhrase1 = cleanPhrase(phrase1)
|
||||
let cleanPhrase2 = cleanPhrase(phrase2)
|
||||
let cleanPhrase3 = cleanPhrase(phrase3)
|
||||
let cleanPhrase4 = cleanPhrase(phrase4)
|
||||
|
||||
let found = false
|
||||
|
||||
if (found === false && menuLabelsMap.get(cleanPhrase4) === true) {
|
||||
changedText = changedText + phrase4.replace(cleanPhrase4, '<i>' + cleanPhrase4 + '</i>') + ' '
|
||||
i = i + 3
|
||||
found = true
|
||||
}
|
||||
|
||||
if (found === false && menuLabelsMap.get(cleanPhrase3) === true) {
|
||||
changedText = changedText + phrase4.replace(cleanPhrase3, '<i>' + cleanPhrase3 + '</i>') + ' '
|
||||
i = i + 2
|
||||
found = true
|
||||
}
|
||||
|
||||
if (found === false && menuLabelsMap.get(cleanPhrase2) === true) {
|
||||
changedText = changedText + phrase4.replace(cleanPhrase2, '<i>' + cleanPhrase2 + '</i>') + ' '
|
||||
i = i + 1
|
||||
found = true
|
||||
}
|
||||
|
||||
if (found === false && menuLabelsMap.get(cleanPhrase1) === true) {
|
||||
changedText = changedText + phrase4.replace(cleanPhrase1, '<i>' + cleanPhrase1 + '</i>') + ' '
|
||||
i = i + 0
|
||||
found = true
|
||||
}
|
||||
|
||||
if (found === false) {
|
||||
changedText = changedText + phrase1 + ' '
|
||||
}
|
||||
}
|
||||
return changedText
|
||||
}
|
||||
|
||||
function addToolTips(node, text) {
|
||||
|
||||
const TOOL_TIP_HTML = '<div class="docs-tooltip">NODE_TYPE<span class="docs-tooltiptext">NODE_DEFINITION</span></div>'
|
||||
@@ -753,27 +826,27 @@ function newSuperalgosDocSpace() {
|
||||
if (found === false) {
|
||||
taggedText = taggedText + phrase1 + ' '
|
||||
}
|
||||
|
||||
function cleanPhrase(phrase) {
|
||||
return phrase.replace(',', '')
|
||||
.replace(';', '')
|
||||
.replace('(', '')
|
||||
.replace(')', '')
|
||||
.replace('-', '')
|
||||
.replace('_', '')
|
||||
.replace('.', '')
|
||||
.replace('[', '')
|
||||
.replace(']', '')
|
||||
.replace('{', '')
|
||||
.replace('}', '')
|
||||
.replace('/', '')
|
||||
.replace('>', '')
|
||||
.replace('<', '')
|
||||
}
|
||||
}
|
||||
return taggedText
|
||||
}
|
||||
|
||||
function cleanPhrase(phrase) {
|
||||
return phrase.replace(',', '')
|
||||
.replace(';', '')
|
||||
.replace('(', '')
|
||||
.replace(')', '')
|
||||
.replace('-', '')
|
||||
.replace('_', '')
|
||||
.replace('.', '')
|
||||
.replace('[', '')
|
||||
.replace(']', '')
|
||||
.replace('{', '')
|
||||
.replace('}', '')
|
||||
.replace('/', '')
|
||||
.replace('>', '')
|
||||
.replace('<', '')
|
||||
}
|
||||
|
||||
function resize() {
|
||||
thisObject.container.frame.width = 800
|
||||
thisObject.container.frame.height = browserCanvas.height // - TOP_SPACE_HEIGHT
|
||||
|
||||
Reference in new issue
Block a user