Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример).
Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать?
В Django по умолчанию есть готовая функция slugify для таких случаев.
Но я её никогда не использую. Почему? Потому что её недостаточно!
Приведём пример
>>> from django.utils.text import slugify
>>> slugify('This is a Title')
'this-is-a-title'
Пока всё отлично
>>> slugify('This is a "Title!"')
'this-is-a-title'
Спец символы удалились, всё хорошо.
>>> slugify('Это заголовок статьи')
''
Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить
>>> slugify('Это заголовок статьи', allow_unicode=True)
'это-заголовок-статьи'
Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте.
Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою.
Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку:
🔸1. Исходный текст:
>>> text = 'Мой заголовок №10 😁!'
Взял специально посложней со специальными символами.
🔸2. Транслит
Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги.
from unidecode import unidecode
>>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山")
'N S (r) u P 1/4 Yue Shan'
Очень крутая библиотека, советую👍
В нашем случае получаем такое преобразование:
>>> text = unidecode(text)
>>> print(text)
'Moi zagolovok No. 10 !'
Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы.
А еще наш код уже поддерживает любой язык, будь то хинди или корейский.
🔸4. Фильтр символов
Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона.
>>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text)
>>> print(text)
'Moi_zagolovok_No_10_'
Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_".
🔸5. Slugify
Осталось удалить лишние символы по краям и сделать нижний регистр
>>> text = text.strip('_').lower()
>>> print(text)
'moi_zagolovok_no_10'
Получаем отличный slug! 😎
🌎 Полный код в виде функции.
______________
PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию.
#libs#tricks#django
Erkin Koray — Rare Tracks 1970–1977 (Sublime Frequencies, 2024)
#anatolian#psychedelic#rock#Turkey
Эркин Корай — яркая фигура в истории турецкой музыки. Его часто называют «отцом турецкого рока». Карьера Корайа началась в 1957 году с первой рок-н-ролльной группы в Турции. Позже он стал экспериментировать с западным роком, добавляя к нему элементы ближневосточного фолка. Таким образом Корай заложил основы музыкального направления, которое позже стало известно как арабеск (arabesk).
Сборник Sublime Frequencies включает в себя редкие треки, записанные в Турции в период с 1970 по 1977 год. Они были отобраны из личной коллекции винила Эркина Корая и демонстрируют самые ранние турецкие опыты в области сочетания психоделического рока с народной музыкой.
🔗Bandcamp
Sven Wunder — Eastern Flowers (Piano Piano, 2020)
#anatolian#jazz#funk#soul#anatolian#Turkey
Дебют шведа Свена Вундера, посвященный музыке Анатолийского полуострова и инструментальному фанку. Помимо музыки Малой Азии, тут слышно персидское и индийское влияния. Вопреки этому, альбом не воспринимается эклектично, но звучит только интереснее. Эта пластинка создана при финансовой поддержке Шведского совета по искусству.
🔗Spotify | AppleMusic | Bandcamp
Ko Shin Moon — Antelias (Total Totem, 2020)
#anatolian#psychedelic#electronic#disco#Turkey
Французская группа Ko Shin Moon смешивает цифровые и инструментальные композиции, традиционную музыку и сэмплы полевых записей. Antelias — первый сингл группы с нового альбома MINIATURE#1, который выйдет 10 декабря. Альбом скорее всего будет посвящен турецкой народной музыке и аналоговому синтезатору Minimoog.
🔗Spotify | AppleMusic | Bandcamp
Altin Gün — Gece (Glitterbeat Records, 2019)
#anatolian#psychedelic#rock#funk#disco#Turkey
Altin Gün — коллектива из Амстердама, исполняющий анатолийский рок и фанк образца середины прошлого века. При учете этого, звучание группы вполне вписывается в современную психоделическую сцену. На втором альбоме группы сильнее слышно влияние диско и синтезаторной музыки. Большинство песен группы являются интерпретациями турецких народных песен или хитов 70-х. Например, Vay Dünya можно услышать на альбоме с музыкой турецких ашугов Turquie Aşik: Chants D'Amour Et De Sagesse D'Anatolie, который мы недавно публиковали. Там она называется El Vurup Yâremi.
Spotify | AppleMusic | Bandcamp
Altin Gün — Ordunun Dereleri (Glitterbeat Records, 2020)
#anatolian#europop#psychedelic#electronic#Turkey
Стоило вспоминить прошлогодний релиз Altin Gün, как у них тут же вышел новый сингл. Как всегда это переосмысление традиционной турецкой народной песни, классической истории двух обреченных влюбленных. На этот раз музыканты совсем углубились в спокойную синтезаторную музыку и европоп, а дух анатолийского фанка почти пропал. Амстердамская студия NotAnEyeThing сняла музыкальное видео на этот сингл. Новый альбом Yol выйдет 26 февраля.
🔗Spotify | AppleMusic | Bandcamp
Derya Yıldırım & Grup Şimşek — Yarın Yoksa (Big Crown Records, 2025)
#psychedelic#rock#anatolian#funk#Germany#Turkey
Начиная с 1960-х годов турецкие группы много экспериментировали с сочетанием анатолийского фолка, фанка и психоделического рока. Началось все с того, что Moğollar и Эркин Корай поставили на саз звукосниматели, превратив его в подобие турецкой электрогитары, а уже в наши дни такие исполнители как Baba Zula иAltın Günдобавили в этот сплав синтезаторы и элементы даба.
Немецко-турецкая певица Дерья Йылдырым, в свою очередь, с момента выхода дебютного альбома Kar Yağar в 2019 году создает более сдержанную и задумчивую музыку, оставаясь при этом внутри традиции турецкого психоделического фанка. В 2025 году, после трёхлетнего затишья, Йылдырым и её группа Grup Şimşek выпустили третий альбом, первую совместную работу с продюсером Леоном Михельсом, одним из ключевых представителей современной «классической» соул-сцены.
Среди проектов Михельсона — эклектичный соул-коллектив El Michels Affair, а также лейблы Truth & Soul Records и Big Crown Records. Кроме того, Михельс работал с Sharon Jones & The Dap-Kings, Menahan Street Band и Lee Fields & The Expressions, а также выступал с Чарльзом Брэдли и Wu-Tang Clan.
Девять композиций нового альбома Йылдырым — авторские, однако, отдавая дань традиции, группа включила в этот релиз и три анатолийские народные песни. Misket — фольклорная композиция из Анкары, посвящённая смерти и тому, как живые справляются с утратой, продолжая сохранять связь с ушедшими. Hop Bico — песня из Сиваса, интерпретация старинной мелодии, которую бабушка Йылдырым когда-то пела ей в детстве. И наконец, Ceylan — песня 1960-х годов мастера саза Нешета Эрташа. В версии Grup Şimşek резкая гитарная манера оригинала уступает более мягкому, почти регги-звучанию.
🔗Spotify | AppleMuisc | Bandcamp | Telegram
Altin Gün — Vallahi Yok / Kırık Cam (Glitterbeat, 2024)
#psychedelic#rock#anatolian#funk#Netherlands#Turkey
Два новых трека от главных новаторов анатолийского рока Altın Gün. Релиз стал последней работой с бессменной вокалисткой коллектива Мерве Дашдемир. После 8 лет успешного совместного творчества она решила заняться сольной карьерой. Мерве покинет Altın Gün в мае, и группа продолжит работу в составе пяти человек.
🔗 Spotify | AppleMusic | Bandcamp
Kit Sebastian — New Internationale (Brainfeeder, 2024)
#anatolian#bossa_nova#chanson#funk#psychedelic#United_Kingdom
Дуэт Kit Sebastian, в состав которого входят Кит Мартин и Мерве Эрдэм, выпустил свой третий альбом New Internationale. Пластинка вышла лейбле Brainfeeder, который основал известный американский продюссер Flying Lotus.
Альбом был создан во время гастролей и записан в Лондоне при участии барабанщика Тео Гуттенплана, контрабасиста Дэвида Ричардсона и других музыкантов. Во время путешествий дуэт использовал разнообразные инструменты, такие как турецкий кларнет, сантур, цитру и клавесин. Финальные вокальные записи прошли в сельской местности Франции, где музыканты сосредоточились на доработке материала.
Альбом объединяет элементы французской поп-музыки, анатолийской психоделии, латиноамериканской музыки и раннего рок-н-ролла. В песне Bul Bul Bul слышно влияние балийской музыки «гамелан», а Metropolis вдохновлён азербайджанским фанком в исполнении Вагифа Мустафа-заде и Рафика Бабаева.
Темы песен касаются миграции, поиска идентичности и творческих компромиссов. Metropolis, например, рассказывает о мигрантах, их надеждах и попытках найти своё место в новой среде.
New Internationale в очередной раз демонстрирует, как умело Kit Sebastian объединяют разные музыкальные традиции в единое звучание.
🔗Spotify | AppleMusic | Bandcamp | VK
Altin Gün — Âlem (ATO Records, 2021)
#anatolian#psychedelic#disco#synth_pop#europop#electronic#Turkey
Второй за 2021 год альбом Altin Gün. Слово Âlem имеет множество переводов с турецкого языка, начиная «миром» и заканчивая «оргией». Издание jambands.com предлагает увидеть в этом названии желание группы выйти за границы своего творчества. И действительно, Altin Gün посвятили последние два альбома эпохе 80-х, забросив фанк образца 70-х. Âlem открывает Yali Yali, традиционная песня, фанк-версию которой записала Несе Карабочек в 1977 году. Altin Gün же предлагают свою электро-диско интерпретацию. Помимо этого, песню Üzüm Üzüme Baka Baka музыканты записали с бельгийским электронным дуэтом Asa Moto. 21 июля Altin Gün выпустил два сингла с Âlem. На первый Грегуар Вербеке снял клип, а второй был записан с лондонской группой Los Bitchos. Новый альбом, за исключением синглов, доступен только на Bandcamp, а все доходы от него пойдут на счет природоохранной организации Earth Today.
🔗Bandcamp
Altin Gün — Yol (ATO Records, 2021)
#anatolian#rock#psychedelic#funk#disco#synth_pop#europop#electronic#Turkey
Новый альбом Altin Gün, в котором анатолийский рок и фанк приправлены синти-поповым звучанием. Оказавшись взаперти из-за эпидемии, музыканты приянлись за изучение драм-машин и электроники, добавив в свое звучание стиль дискотек начала 80-х. Такие эксперименты оказались созвучны современной поп-музыке. Например, угрюмые синтезаторы линии Ordunun Dereleri сильно напоминают недавнюю попытку The Weeknd актуализировать звук тех же 80-х. Как и на предыдущих альбомах, Altin Gün широко используют фольклорный материал. Yekte — традиционная песня города Кайсери, а песня Arda Boylar происходит с Балканского полуострова, который когда-то входил в состав Османской империи. Использование этих старинных мелодий создает любопытное ощущение безвременья. Альбом находится где-то между Османской империей 19 века, Хейт-Эшбери 60-х, Нью-Йорком 80-х и нашими днями.
🔗Spotify | AppleMusic | Bandcamp