forked from FINAKON/HelpProject
1. Initial Commit - a boiler plate code and POC to realize the concept of context sensitive help 2. Frontend code written in ReactJS 3. Backend code written in Java, Spring Boot Framework 4. Frontend Start: pre-requisites : node, npm npm run dev ==> to start the frontend vite server 5. Backend Start: pre-requisites : java, mvn mvn spring-boot:run ==> to start the backend server 6. Visit http://localhost:5173/ for basic demo of help, press F1 in textboxes 7. Visit http://localhost:5173/editor and enter "admin123" to add/modify texts. Happy Coding !!! Thank you, Bhargava.
37 lines
1.2 KiB
JavaScript
37 lines
1.2 KiB
JavaScript
/// <reference lib="dom" />
|
|
|
|
/* global document */
|
|
|
|
const element = document.createElement('i')
|
|
|
|
/**
|
|
* @param {string} value
|
|
* @returns {string | false}
|
|
*/
|
|
export function decodeNamedCharacterReference(value) {
|
|
const characterReference = '&' + value + ';'
|
|
element.innerHTML = characterReference
|
|
const character = element.textContent
|
|
|
|
// Some named character references do not require the closing semicolon
|
|
// (`¬`, for instance), which leads to situations where parsing the assumed
|
|
// named reference of `¬it;` will result in the string `¬it;`.
|
|
// When we encounter a trailing semicolon after parsing, and the character
|
|
// reference to decode was not a semicolon (`;`), we can assume that the
|
|
// matching was not complete.
|
|
if (
|
|
// @ts-expect-error: TypeScript is wrong that `textContent` on elements can
|
|
// yield `null`.
|
|
character.charCodeAt(character.length - 1) === 59 /* `;` */ &&
|
|
value !== 'semi'
|
|
) {
|
|
return false
|
|
}
|
|
|
|
// If the decoded string is equal to the input, the character reference was
|
|
// not valid.
|
|
// @ts-expect-error: TypeScript is wrong that `textContent` on elements can
|
|
// yield `null`.
|
|
return character === characterReference ? false : character
|
|
}
|