Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
OH MY… SHOPPER! 💛
В Мэлоне новый мерч для новичков! Блокноты, ручки, ланьярды, наклейки и… шопперы!
Создавая новые шопперы, мы хотели сделать их функциональными и отличными от предыдущих. Сумка мэлонца стала вместительней, окрасилась в стильный черный, обзавелась вшивным ярлыком с логотипами брендов, а главное – шопперы стали именными.
Имя каждого новичка мы вписываем в специальный стикер внутри сумки. И самое главное – у них три надписи: «Fashion is my passion», «In fashion we trust» и «I am fashion».
Еще один повод устроиться в Мэлон! 😍
Присоединяйтесь к нашей команде!
Вакансии тут 💛
#melonfashiongroup#melonjob#melonfashion
За окном весна, солнце, капель, а в наших сердцах – безграничная любовь к мэлонцам! Сегодня хотим напомнить, какие креативные, смелые, талантливые, открытые и вдохновляющие люди работают в нашей компании.
Melon Fashion Team – самая лучшая команда 💛 Благодаря мэлонцам и их драйву мы вошли в рейтинг лучших работодателей России по версии HeadHunter, получили золотой статус работодателя по версии Forbes, а еще постоянно совершенствуемся и динамично растем.
Хотите работать с нами и стать частью самой крутой команды России? Скорее откликайтесь на наши вакансии!
#melonfashion#melonfashionteam#melonfashiongroup
Свежая пресса! 📬 Генеральный директор Melon Fashion Group стал участником рубрики «Мнение» от РБК Петербург.
Михаил Уржумцев поделился итогами работы компании в 2022 году, рассказал о трендах и перспективах отрасли в 2023 году, а также раскрыл секрет, что помогает сохранить несгибаемый оптимизм в условиях турбулентности.
Ознакомиться с материалом можно ЗДЕСЬ.
#melonfashion#melonfashiongroup#РБК
Счастье и радость несем мэлонцам! 💛
2 июня в штаб-квартире Мэлона прошел Pet Day: сотрудники привели своих хвостиков на работу, чтобы не просто показать, где они проводят свое время, но и побаловать их вкусняшками, обучить командам с кинологом, а также получить подарки от наших друзей Pet Shop.
В этот день наши сердца наполнились всеми положительными эмоциями. А мэлонцы смогли познакомиться поближе друг с другом и подружить своих животных.
Также группа корпоративных коммуникаций организовала благотворительный сбор денег, корма, лекарств и средств для уборки для подопечных приюта Теремок. И уже в субботу хвостики смогли получить помощь от мэлонцев 🐕🐈
Pet Day – это не просто friendly-офис, это настоящее коммьюнити неравнодушных. Отличная традиция, продолжаем дальше! #melonfashion#petfriendly#melonfashiongroup
Мэлон продолжает сотрудничать с ведущими профильными университетами России и привлекать молодых специалистов разных направлений😎
В апреле студенты из Университета технологии и дизайна и Инженерной школы одежды посетили штаб-квартиру Мэлона, где коллеги из ZARINA, Befree и LOVE REPUBLIC пообщались с будущими конструкторами и рассказали о процессах работы в большой fashion-компании, а также ответили на все вопросы.
Как результат – 11 молодых талантливых конструкторов и технологов получили возможность пройти практику в Мэлоне. Лучшие из практикантов смогут в будущем стать частью нашей команды.
Мы рады за ребят, ведь получить такой опыт в крупной компании и реализовать свои идеи под руководством профессионалов – это прекрасный старт в карьере!
Благодарим коллег за организацию и предоставленные возможности!
Теперь команда Мэлона будет пополняться активными и талантливыми ребятами, а fashion будет проникать в сердца все большего количества людей ☺️
#melonfashiongroup#melonfashion#meloncareer
С 11 по 13 апреля Melon Fashion Group принимала участие в NatMallExpo (MAPIC Russia) — международной выставке коммерческой недвижимости и ретейла.
NatMall Expo – место встречи профессионалов отрасли: девелоперы, инвесторы, представители ретейла и не только.
Посмотрите, какой у Мэлон получился стильный стенд с новыми концепциями ZARINA, Befree, LOVE REPUBLIC и sela! На большом экране участники выставки смогли увидеть видео о магазинах брендов, а посетители стенда – наши планы 😊
Помимо этого, в рамках мероприятия прошло награждение премии NatMall Awards. В номинацию «Лучшая ретейл-концепция в категории Fashion» вошли два наших бренда: ZARINA – финалист, sela – победитель премии. Ставьте сердечки, чтобы поздравить нас!
#melonfashion#melonfashiongroup#natmallexpo
Лидер. Вдохновение. Биг босс. Мудрость. Сердце Мэлона 💛
Все это о нем – о нашем любимом ММ, который сегодня отмечает свой день рождения!
Михаил Михайлович, вместе с Вами мы знаем, что даже самые дерзкие мечты всегда сбываются. Для нас нет границ и горизонтов, только любопытство, азарт и желание покорить весь мир fashion. С днем рождения! 🎉 Пусть удача всегда будет на Вашей стороне. А мы – мэлонцы – всегда поддержим 🍈
#melonfashion#сдрмм#melonfashiongroup
Сегодня поздравляем с днем рождения LOVE REPUBLIC!
14 лет невероятной любви и красоты. Желаем команде достижения новых высот и побед, также успеха во всех-всех сферах! 😍 Любим!
Оставляйте ❤️ в комментариях, чтобы поздравить LOVE REPUBLIC!
#melonfashion#loverepublic#melonfashiongroup
В эту пятницу хотим напомнить, что Новый год уже совсем скоро✨
Доставайте елку, любимую гирлянду - создавать кристмас муд🎄
А мы делимся украшением штаб-квартиры Мэлона: нарядный ресепшн, вдохновленный сказкой про Щелкунчика, настоящие трехметровые елки, а еще серебряные сердца от LOVE REPUBLIC, снежная нежность от ZARINA, сумашедше-крутой динозавр от Befree (какой год - такая и елка!) и сказочные снежинки от sela. Не офис, а детская мечта!
New Year is coming! 💫
#melonfashiongroup#melonfashion#melonoffice
МЭЛОН ТУТ РЯДОМ!💛
Апрель – всемирный месяц информирования об аутизме. В рамках этой акции 23 апреля в Приморском парке Победы прошел благотворительный забег от фонда «Антон тут рядом», в котором приняла участие команда из 15 мэлонцев. На финише каждый получил медаль, созданную в инклюзивной столярной мастерской.
Но и это еще не все. Наши бренды также поддержали всемирный месяц информирования об аутизме. Так, Befree представили коллекцию, созданную в коллаборации с фондом «Антон тут рядом», а sela рассказали историю мамы особенного малыша вместе с фондом «Обнаженные сердца».
Вместе мы можем гораздо больше! 💛#MelonFashion#АнтонТутРядом#ЗабегТутРядом
Нарядились в лучшие наряды, общались с коллегами и отлично проводили время под итоги 2022 года. Да, это наш традиционный Новогодний Бизнес-завтрак! 🎄
Михаил Уржумцев отметил успехи брендов, компании и сотрудников, и зарядил всех мэлонцев на новые свершения. Встреча прошла в двух форматах: онлайн и оффлайн, чтобы на денек объединить всю огромную мэлон-семью!
Кстати, это не простой Бизнес-завтрак: мы его провели в день своего рождения. К поздравлениям присоединилась Синцова Галина Генриховна, президент компании, которая произнесла трепетную речь о Мэлоне и его пути. В конце задули свечи на торте в честь своего 17-летия! Как быстро мы растем 😉
Поздравляем команду мечты! Все стало возможным только благодаря вам!
Любим сильно!
Ваш Мэлон💛
#melonfashiongroup#melonfashion#melonteam#бизнесзавтрак
Мэлон очаровывает 😊
23 марта наша команда HR и IT приняла участие в масштабной ярмарке вакансий «Бонч.Карьера».
Мероприятие прошло на площадке Санкт-Петербургского университета телекоммуникаций, где студенты смогли познакомиться с вакансиями ведущих компаний в отрасли связи, телекоммуникаций и IT. А в моде тоже нужны передовые технологии, которые делают бизнес и шопинг удобнее.
Наша команда представила Мэлон со стильным стендом, где напечатаны наши Культы. Также студентов ждали памятные подарки: блокноты, ручки, кружки, термостаканы и мемные стикеры, нашедшие отклик в сердцах ребят! 😊 Помимо этого, рассказали о своих вакансиях в сфере IT и пригласили студентов на стажировку.
Так что ждем вас, юные таланты!
#melonfashiongroup#melonjob#бончкарьера#melonfashion