Why your slug generator is dropping Malayalam vowels and how to fix it

TL;DR: Most slug libraries only allow \p{L} (letters), \p{N} (numbers), and \p{S} (symbols). In Indic scripts like Malayalam, vowels are often combining marks (\p{M}), not letters. The fix is simple: add \p{M} to your allowed character class. I’ll show you exactly how. I recently fixed this memos PR #6051. The bug was simple but devastating: Malayalam tags like #കവിത were being truncated to #കവ. The last two characters — ി (vowel sign I) and ത — were rendered outside tag. ...

September 18, 2026 · 4 min · Santhosh Thottingal

Gayathri – New Malayalam typeface

Swathanthra Malayalam Computing is proud to announce Gayathri – a new typeface for Malayalam. Gayathri is designed by Binoy Dominic, opentype engineering by Kavya Manohar and project coordination by Santhosh Thottingal. This typeface was financially supported by Kerala Bhasha Institute, a Kerala government agency under cultural department. This is the first time SMC work with Kerala Government to produce a new Malayalam typeface. ...

February 21, 2019 · 2 min · Santhosh Thottingal

യൂണിക്കോഡ് പത്താം പതിപ്പ്: മലയാളത്തിന് മൂന്നു പുതിയ കോഡ്പോയിന്റുകൾ കൂടി

യൂണിക്കോഡിന്റെ പത്താം പതിപ്പ് പുറത്തിറങ്ങി. മലയാളത്തിന്റെ കോഡ് ബ്ലോക്കിലേയ്ക്ക് പുതിയ മൂന്നു അക്ഷരങ്ങൾ കൂടി ഔദ്യോഗികമായി ചേർന്നിരിക്കുന്നു. അങ്ങനെ മലയാളത്തിന്റെ കോഡ് ബ്ലോക്കിൽ 117 അക്ഷരങ്ങൾ ആയി. പുതിയ അക്ഷരങ്ങൾ ഇവയാണ്: D00 – Combining Anuswara Above 0D3B – Malayalam Sign Vertical Bar Virama 0D3C- Malayalam Sign Circular Viramaപ്രാചീനരേഖകളിൽ കണ്ടുവരുന്നവയാണ് ഈ ചിഹ്നങ്ങൾ. അത്തരം ഗ്രന്ഥങ്ങളുടെ ഡിജിറ്റൈസേഷനിലും, പ്രാചീനലിപിസംബന്ധമായ പഠനഗവേഷണങ്ങളിലുമൊക്കെ ഇവ ഉപയോഗിക്കപ്പെട്ടേക്കാം. 0D00 – Combining Anusvara Above ആദ്യത്തേത് ‘മുകളിലുള്ള അനുസ്വാരമാണ്’. മലയാളത്തിൽ നാമിന്നുപയോഗിക്കുന്ന അനുസ്വാരത്തിനു തുല്യമായ ഉപയോഗമാണ് പ്രാചീനമലയാളലിപിയിൽ ഈ ചിഹ്നത്തിനുള്ളത്. അതായത് നാമിന്നുപയോഗിക്കുന്ന അനുസ്വാരം മറ്റക്ഷരങ്ങളുടെ അതേ നിരപ്പിൽ തന്നെ കിടന്ന് അതിനിടതുവശത്തുള്ള അക്ഷരത്തോട് ‘മകാരം’ ചേർക്കുമ്പോളുള്ള ഉച്ചാരണം നൽകുന്നു. പുതിയതായി നിർവ്വചിച്ചിരിക്കുന്ന ‘മുകളിലുള്ള അനുസ്വാരം’ അതുനുചുവട്ടിലുള്ള അക്ഷരത്തോടു ‘മകാരം’ ചേരുമ്പോഴുള്ള ഉച്ചാരണം നൽകുന്നു. ...

June 22, 2017 · 3 min · Kavya Manohar

ഇമോജികളും ചില്ലക്ഷരങ്ങളും തമ്മിലെന്തു്?

ഈയിടെ XKCD യിൽ വന്ന ഒരു തമാശയാണു് മുകളിൽ കൊടുത്തിരിക്കുന്നതു്. ഇമോജികളെ പരിചയമുള്ളവർക്കു കാര്യം പിടികിട്ടിക്കാണും. എന്തെങ്കിലും ആശയം പ്രകടിപ്പിക്കാനുള്ള ചെറുചിത്രങ്ങളെയും സ്മൈലികളെയുമാണു് ഇമോജികൾ എന്നുവിളിക്കുന്നതു്. ചാറ്റു ചെയ്യുമ്പോഴൊക്കെ നമ്മൾ ഉപയോഗിക്കുന്ന ചിരിക്കുന്നതും സങ്കടഭാവത്തിലുള്ളതും നാക്കുനീട്ടുന്നതുമായ ചെറുചിത്രങ്ങളുടെ നിര ഇന്നു് വളർന്നു് ആയിരക്കണക്കിനായിട്ടുണ്ട്. ചിത്രങ്ങൾക്കു പകരം അവയെ അക്ഷരങ്ങളെന്നപോലെ കണക്കാക്കാൻ യുണിക്കോഡ് ഇപ്പോൾ ഇവയെ എൻകോഡ് ചെയ്യുന്നുണ്ടു്. ഉദാഹരണത്തിനു് 😀 എന്ന സ്മൈലിക്ക് U+1F60x എന്ന കോഡ്പോയിന്റാണുള്ളതു്. അടുപോലെ 👨 പുരുഷൻ, 👩 സ്ത്രീ എന്നിവയൊക്കെ പ്രത്യേക കോഡ് പോയിന്റുകളുള്ള ഇമോജികളാണു്. ഇമോജികൾ അക്ഷരങ്ങളെപ്പോലെയായാൽ അവ ചേർന്നു് കൂട്ടക്ഷരങ്ങളുണ്ടാവുമോ? 😀 ഇമോജികളെ കൂട്ടിയിണക്കി പുതിയ അർത്ഥമുള്ള ഇമോജികൾ ഉണ്ടാക്കാനുള്ള സംവിധാനം യുണിക്കോഡ് ഒരുക്കിയിട്ടുണ്ടു്. 👪 എന്ന ഇമോജി കുടുംബത്തെ സൂചിപ്പിക്കുന്നു. അച്ഛൻ, അമ്മ, മക്കൾ എന്നിവരടങ്ങിയ കുടുംബം. ഇതുപക്ഷേ അച്ഛൻ അമ്മ, മകൻ, മകൾ എന്നിവ കൂട്ടിച്ചേർത്തും ഉണ്ടാക്കാം. 👨‍👩‍👧‍👦 എന്ന ഇമോജി അങ്ങനെ 👨‍ + 👩‍ + 👧‍ + 👦 എന്നീ ഇമോജികൾ കൂട്ടിയുണ്ടാക്കിയതാണു്. വെറുതെ അടുപ്പിച്ചെഴുതിയതല്ല, നമ്മൾ ക്ക എന്നു് എഴുതാൻ ക കഴിഞ്ഞ ചന്ദ്രക്കലയിട്ട് അടുത്ത കയുമായി യോജിപ്പിക്കില്ലേ, അങ്ങനെ യോജിപ്പിക്കണം. അതായതു് U+1F468 U+200D U+1F469 U+200D U+1F466 എന്ന ശ്രേണി ഉപയോഗിക്കണം. ഇവിടെ കൂട്ടിയോജിപ്പിക്കാൻ ഉപയോഗിച്ചിരിക്കുന്നതു് U+200D എന്ന അക്ഷരമാണു്. ...

March 29, 2017 · 3 min · Santhosh Thottingal

Internationalized Top Level Domain Names in Indian Languages

Medianama recently published a news report- “ICANN approves Kannada, Malayalam, Assamese & Oriya domain names“, which says: ICANN (Internet Corporation for Assigned Names and Numbers) has approved four additional proposed Indic TLDs (top level domain names), in Malayalam, Kannada, Assamese and Oriya languages. The TLDs are yet to be delegated to NIXI (National Internet exchange of India). While Malayalam, Kannada and Oriya will use their own scripts, Assamese TLDs will use the Bengali script. ...

April 27, 2016 · 5 min · Santhosh Thottingal

UTF8Decoder

zabeehkhan was trying to code a Pashto (ps_AF) module for dhvani. And he told me that “it is not saying anything” :). So I took the code and found the problem. Dhvani has a UTF-8 decoder and UTF-16 converter. It was written by Dr. Ramesh Hariharan and was tested only with the unicode range of the languages in India. It was buggy for most of the other languages and there by the language detection logic and text parsing logic was failing. So I did some googling, went through the code tables of gucharmap and got some helpful information from here and here ...

September 1, 2008 · 3 min · Santhosh Thottingal

Canonical Equivalence in Unicode: Some notes

Some Notes on Canonical Equivalence in Unicode: Unicode defines canonical equivalence as follows: From UAX #15 Canonical Equivalence This section describes the relationship of normalization to respecting (or preserving) canonical equivalence. A process (or function) respects canonical equivalence when canonical-equivalent inputs always produce canonical-equivalent outputs. For a function that transforms one string into another, this may also be called preserving canonical equivalence. There are a number of important aspects to this concept: ...

June 3, 2008 · 6 min · Santhosh Thottingal

ചില്ലും മലയാളം കമ്പ്യൂട്ടിങ്ങും

മലയാളം കമ്പ്യൂട്ടിങ്ങിന്റെ മുകളില്‍ തലനാരിഴയില്‍ ഒരു വാള്‍ തൂങ്ങിക്കിടപ്പാണ്. ചില്ലു കൊണ്ടുള്ള ഒരു വാള്‍. വാള്‍ വീണാല്‍ മലയാളം രണ്ട് കഷണമാകും. ഒന്നാമത്തേത് നിങ്ങള്‍ വായിച്ചു കൊണ്ടിരിക്കുന്ന ഈ മലയാളം. രണ്ടാമത്തേത് അറ്റോമിക് ചില്ലുകള്‍ ഉപയോഗിച്ചുള്ള വേറൊരു മലയാളം… “ഞങ്ങള്‍ തീരുമാനിച്ചു കഴിഞ്ഞു. നല്ലതോ ചീത്തയോ അതു നിങ്ങള്‍ അനുഭവിക്കുക” ഇത് അറ്റോമിക് ചില്ലുവാദികളുടെ മുദ്രാവാക്യത്തിന്റെ മലയാളപരിഭാഷ. ഇവിടെ ജയിക്കുന്നതാരുമാകട്ടെ തോല്ക്കുന്നത് ഭാഷ തന്നെയെന്നുറപ്പ്. ഖരാക്ഷരം + വിരാമം + ZWJ എന്ന ഇപ്പോഴുള്ള ചില്ലക്ഷരത്തിന്റെ എന്‍കോഡിങ്ങിനു പകരം ഒറ്റ ഒരു യുണിക്കോഡ് വേണമെന്ന ആവശ്യം വളരെക്കാലമായി ഒരു വിഭാഗം മലയാളികള്‍ക്കിടയില്‍ ഉയര്‍ന്നു തുടങ്ങിയിട്ട്. അപ്പോള്‍ നിങ്ങള്‍ ചോദിച്ചേക്കാം ഇപ്പോഴുള്ള രീതിക്ക് എന്താണ് പ്രശ്നമെന്ന്. അതിനുള്ള ഉത്തരം എനിക്കിതേവരെ മനസ്സിലായിട്ടില്ല. മലയാളം ബ്ലോഗുകള്‍, വിക്കിപീഡിയ, മലയാളം സോഫ്റ്റ്​വെയറുകള്‍, പ്രാദേശികവത്കരിക്കപ്പെട്ട ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങള്‍, ഈയുള്ളവന്‍ തയ്യാറാക്കിക്കൊണ്ടിരിക്കുന്ന ഗ്നു ആസ്പെല് spelling checker (ഇപ്പോള്‍ ഒരു ലക്ഷത്തി മുപ്പതിനായിരത്തിലധികം മലയാളം വാക്കുകളുണ്ട്) ഇവയെല്ലാം ഇതിന് തെളിവുകള്‍ മാത്രം. ജീമെയിലില്‍ ചില്ലക്ഷരം വരുന്നില്ലെങ്കില്‍ അത് ജീമെയിലിന്റെ പിഴവാണ്. ബ്രൗസറില്‍ ചില്ലക്ഷരം വരുന്നില്ലെങ്കില്‍ അത് ബ്രൗസറിന്റെ അല്ലെങ്കില്‍ ചിത്രീകരണസംവിധാനത്തിന്റെ പിഴവാണ്. ഭാഷയുടേതല്ല. ഭാഷയെ മാറ്റലല്ല അതിനുള്ള പ്രതിവിധി. സോഫ്റ്റ്​വെയറിന്റെ പിഴവുകള്‍ ഭാഷകളുടെ നിലനില്പിനൊരിക്കലും വെല്ലുവിളിയാകരുത്. ...

August 10, 2007 · 2 min · Santhosh Thottingal