init wompum header image
This commit is contained in:
44
static/js/sigil.js
Normal file
44
static/js/sigil.js
Normal file
@ -0,0 +1,44 @@
|
||||
class Sigil {
|
||||
// Convert string to sigil array
|
||||
static generate(str) {
|
||||
if (!str) return [];
|
||||
|
||||
// Convert to lowercase, remove non-word characters
|
||||
const cleaned = str.toLowerCase().replace(/[^a-z]/g, '');
|
||||
|
||||
// Remove vowels
|
||||
const noVowels = cleaned.replace(/[aeiou]/g, '');
|
||||
|
||||
// Remove duplicate characters
|
||||
const deduped = [...new Set(noVowels)].join('');
|
||||
|
||||
// Convert to ASCII values and get digital roots
|
||||
return [...deduped].map(char => {
|
||||
const ascii = char.charCodeAt(0);
|
||||
return Sigil.getDigitalRoot(ascii);
|
||||
});
|
||||
}
|
||||
|
||||
// Get digital root of a number (sum digits until single digit)
|
||||
static getDigitalRoot(num) {
|
||||
if (num < 10) return num;
|
||||
return Sigil.getDigitalRoot([...num.toString()].reduce((sum, digit) => sum + parseInt(digit), 0));
|
||||
}
|
||||
|
||||
// Helper to validate and debug sigil generation
|
||||
static debug(str) {
|
||||
console.log({
|
||||
original: str,
|
||||
lowercase: str.toLowerCase(),
|
||||
cleaned: str.toLowerCase().replace(/[^a-z]/g, ''),
|
||||
noVowels: str.toLowerCase().replace(/[^a-z]/g, '').replace(/[aeiou]/g, ''),
|
||||
deduped: [...new Set(str.toLowerCase().replace(/[^a-z]/g, '').replace(/[aeiou]/g, ''))].join(''),
|
||||
sigil: Sigil.generate(str)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Export for use in other files
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
module.exports = Sigil;
|
||||
}
|
Reference in New Issue
Block a user