@arrowwalls · Post #1009 · 28.03.2024 г., 12:05
wallpaper #freebies Get it here : https://twitter.com/ArrowWalls/status/1773319288650395788?t=BaxjADsuh6NY9PxnFzUCiA&s=19
Hashtags
TGINSIGHT SIMILAR POSTS
Изворен канал @pythonotes · Post #121 · 20 јул.
Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Пребарај: #freebies
@arrowwalls · Post #1009 · 28.03.2024 г., 12:05
wallpaper #freebies Get it here : https://twitter.com/ArrowWalls/status/1773319288650395788?t=BaxjADsuh6NY9PxnFzUCiA&s=19
Hashtags
@thedevs · Post #1076 · 09.04.2018 г., 18:02
Tabler, premium and open source dashboard template with responsive and high quality UI. #resources#design#freebies#app @thedevs https://kutt.it/jBoGdM
Hashtags
@thedevs · Post #1225 · 14.09.2018 г., 18:17
Ava, free HTML landing page for beta products. #freebies#html#design#template @thedevs https://kutt.it/KR3Xm4
@AppPie · Post #2585 · 12.12.2025 г., 08:00
#Promotions Epic 喜加一 —— 霍格沃茨之遗 🔗Epic Games Store 《霍格沃茨之遗》是一款基于《哈利·波特》系列书籍设定的沉浸式开放世界动作角色扮演游戏。 在旅程中,你将造访那些熟悉的和陌生的地点,发现奇妙的野兽,自定义你的角色并制造魔药,掌握施放咒语的技巧,升级天赋并成为你所向往的巫师。 优惠截止于2025/12/18 08:00。 #EpicGamesStore#Freebies 📮 频道 @AppPie 🌐 网站 apppie.com
@AppPie · Post #2507 · 04.09.2025 г., 16:40
#Promotions Epic 本周限免 —— 纪念碑谷 🔗Epic Games Store 踏上宽恕之旅,穿越几乎不可能破解的环境和幻想谜题。操纵纪念碑、创建不断发展的道路,探索全新超现实且神秘的世界,体验这款平静的冥想解谜游戏。 优惠截止于2025/9/11 08:00。 #EpicGamesStore#Freebies 📮 频道 @AppPie
@AppPie · Post #2527 · 19.09.2025 г., 02:34
#Promtions Epic《冬日计划》和 Steam《Away》等限免开启 Epic 平台送出两款作品:多人在线生存游戏《冬日计划》,玩家需要在8人团队中合作生存,同时揪出潜藏的叛徒,考验着合作与甄别能力;以及画风梦幻的经典解谜冒险游戏《银河历险记2》,玩家将跟随主角开启一场拯救狗狗的奇妙旅程。 与此同时,Steam 平台则提供了一款风格极简的黑白光影叙事游戏《Away》,它旨在通过沉浸式的音画体验,引导玩家完成一段关于死亡的短暂思考。 冬日计划 在冰天雪地的荒野中,活下去只是第一步。八人组队合作,收集资源、修复设施、抵御野兽,只为呼叫救援逃出生天。然而危险不仅来自严寒与饥饿,更潜藏在身边的同伴中——他们中有人是叛徒,随时可能撒谎、破坏、甚至背刺最亲密的伙伴。 银河历险记 2 《银河历险记 2 (Samorost 2)》讲述着一段关于太空地精的梦幻故事,他的狗狗刚刚被胡作非为的外星人绑架了。展开一段短暂的冒险来拯救狗狗,与各种奇怪的陌生人打交道并放松地聆听 Tomáš "Floex" Dvořák 所谱写的舒缓音乐。 Away 从灰白的光影到最后的静默,《Away》以极简之姿描绘死亡的体验。在阴郁的黑白世界里,你将跟随主角的脚步,沉浸于低沉而细腻的音效氛围,完成一段短暂却意味深长的旅程。支持英文与俄文全程本地化,并配备 Steam 成就系统,让这份独特的体验更加完整。 Epic 2 款游戏限免截止于 2025 年 9 月 25 日上午 8:00,Steam 1 款游戏限免截止于 2025 年 9 月 24 日上午 10:00,不要错过。 #EpicGamesStore#Steam#Freebies 📮 频道 @AppPie