<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AColorAlphabet%2FAsadova</id>
	<title>Модуль:ColorAlphabet/Asadova - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AColorAlphabet%2FAsadova"/>
	<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:ColorAlphabet/Asadova&amp;action=history"/>
	<updated>2026-09-28T05:58:30Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:ColorAlphabet/Asadova&amp;diff=47183&amp;oldid=prev</id>
		<title>Асадова Хадижа: Новая страница: «---- This module colors consonants blue and vowels red. ---- {{#invoke:ColorAlphabet|letter|whatever}} for colored letters ---- {{#invoke:ColorAlphabet|blank|whatever}} for colored non-breaking spaces  local getArgs = require(&#039;Module:Arguments&#039;).getArgs local p = {}  -- Helper function to check if a character is a vowel (English vowels + case-insensitive) local function isVowel(char)     if not char then return false end     local lower = mw.ustring.lower(ch...»</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:ColorAlphabet/Asadova&amp;diff=47183&amp;oldid=prev"/>
		<updated>2026-05-26T14:05:21Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «---- This module colors consonants blue and vowels red. ---- {{#invoke:ColorAlphabet|letter|whatever}} for colored letters ---- {{#invoke:ColorAlphabet|blank|whatever}} for colored non-breaking spaces  local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs local p = {}  -- Helper function to check if a character is a vowel (English vowels + case-insensitive) local function isVowel(char)     if not char then return false end     local lower = mw.ustring.lower(ch...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;---- This module colors consonants blue and vowels red.&lt;br /&gt;
---- {{#invoke:ColorAlphabet|letter|whatever}} for colored letters&lt;br /&gt;
---- {{#invoke:ColorAlphabet|blank|whatever}} for colored non-breaking spaces&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Helper function to check if a character is a vowel (English vowels + case-insensitive)&lt;br /&gt;
local function isVowel(char)&lt;br /&gt;
    if not char then return false end&lt;br /&gt;
    local lower = mw.ustring.lower(char)&lt;br /&gt;
    return mw.ustring.match(lower, &amp;#039;[aeiouаеёиоуыэюя]&amp;#039;) ~= nil  -- includes Russian vowels&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Helper function to check if a character is a consonant (letters that are not vowels)&lt;br /&gt;
local function isConsonant(char)&lt;br /&gt;
    if not char then return false end&lt;br /&gt;
    -- Check if it&amp;#039;s a letter in Russian or English alphabet&lt;br /&gt;
    local lower = mw.ustring.lower(char)&lt;br /&gt;
    return mw.ustring.match(lower, &amp;#039;[a-zа-яё]&amp;#039;) ~= nil and not isVowel(char)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(text, nowiki, blank)&lt;br /&gt;
    local output = &amp;quot;&amp;quot;&lt;br /&gt;
    local position = 0&lt;br /&gt;
    &lt;br /&gt;
    -- Iterate through each character in the string&lt;br /&gt;
    local prowl = mw.ustring.gmatch(text, &amp;quot;(.)&amp;quot;)&lt;br /&gt;
    repeat&lt;br /&gt;
        local letter = prowl()&lt;br /&gt;
        if not letter then break end&lt;br /&gt;
        position = position + 1&lt;br /&gt;
        &lt;br /&gt;
        local replacement = letter&lt;br /&gt;
        &lt;br /&gt;
        -- Apply color based on letter type&lt;br /&gt;
        if isVowel(letter) then&lt;br /&gt;
            -- Vowels: red&lt;br /&gt;
            replacement = &amp;#039;&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;&amp;#039; .. letter .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
        elseif isConsonant(letter) then&lt;br /&gt;
            -- Consonants: blue&lt;br /&gt;
            replacement = &amp;#039;&amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;&amp;#039; .. letter .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- If blank mode is enabled, replace letter with &amp;amp;nbsp; but keep the color&lt;br /&gt;
        if blank then&lt;br /&gt;
            if isVowel(letter) then&lt;br /&gt;
                replacement = &amp;#039;&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
            elseif isConsonant(letter) then&lt;br /&gt;
                replacement = &amp;#039;&amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
            else&lt;br /&gt;
                replacement = &amp;#039;&amp;amp;nbsp;&amp;#039;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        output = output .. replacement&lt;br /&gt;
    until false&lt;br /&gt;
    &lt;br /&gt;
    output = &amp;#039;&amp;lt;span style=&amp;quot;display:inline-block;&amp;quot;&amp;gt;&amp;#039; .. output .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
    if nowiki then output = &amp;#039;&amp;lt;nowiki&amp;gt;&amp;#039; .. output .. &amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039; end&lt;br /&gt;
    return output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Common code with all relevant args&lt;br /&gt;
function p.main(args, blank)&lt;br /&gt;
    local text = args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    local nowiki = args.nowiki or nil&lt;br /&gt;
    return p._main(text, nowiki, blank)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Entry for colorizing letters&lt;br /&gt;
function p.letter(frame)&lt;br /&gt;
    local args = getArgs(frame)&lt;br /&gt;
    return frame:preprocess(p.main(args, nil))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Entry for replacing letters with colored nonbreaking spaces&lt;br /&gt;
function p.blank(frame)&lt;br /&gt;
    local args = getArgs(frame)&lt;br /&gt;
    return frame:preprocess(p.main(args, true))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Асадова Хадижа</name></author>
	</entry>
</feed>