// @flow // This is an internal module, not part of the KaTeX distribution, // whose purpose is to generate `unicodeSymbols` in Parser.js // In this way, only this module, and not the distribution/browser, // needs String's normalize function. As this file is not transpiled, // Flow comment types syntax is used. const accents = require('./unicodeAccents'); const result /*: {[string]: string}*/ = {}; const letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + "αβγδεϵζηθϑικλμνξοπϖρϱςστυφϕχψωΓΔΘΛΞΠΣΥΦΨΩ"; for (const letter of letters) { for (const accent of Object.getOwnPropertyNames(accents)) { const combined = letter + accent; const normalized = combined.normalize('NFC'); if (normalized.length === 1) { result[normalized] = combined; } for (const accent2 of Object.getOwnPropertyNames(accents)) { if (accent === accent2) { continue; } const combined2 = combined + accent2; const normalized2 = combined2.normalize('NFC'); if (normalized2.length === 1) { result[normalized2] = combined2; } } } } module.exports = result;