TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

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

Резултати

Пронајдени 3 слични објави

Пребарај: #linear

当前筛选 #linear清除筛选
404 KIDS SEE GHOSTS (生产力之王版

@Isaiahsystem · Post #1332 · 24.08.2025 г., 11:33

Linear 是个游戏设计管理工具 最近和朋友聊到,如今很必要将行动项和学习计划尽可能独立且并行,让其在未来某个时间点交汇,而非延迟处理。恰逢今天在完善 Linear 中的项目管理和规划,再次感叹 Linear 是伟大的项目管理软件,也是极其优秀的游戏设计管理工具。 Linear 主要突出线性和无压,但其 Mark as/ Create related 有着非常优秀的层级和关联功能,非线性功能。它适合人生管理,或者说游戏设计。如果说 Roam Research 这类双链笔记工具适用于文本项目的非线性处理,那 Linear 完全契合具有时间和空间属性的艺术作品项目。 你想为人生某个阶段设计和规划点什么,你想在某个行动项时间线上插入新的什么,你想将哪两条重要人生时间线拉起并行,比如创造一个产品的同时学习未来相关 AI 开发知识。Linear 可以是最优粒度的项目管理工具,同小粒度时间管理的烧水做饭时切菜前置一样,它是关于时间配置的哲学。 同样,如果你想设计艾尔登法环似的非线性开放世界游戏,你想设计某个 NPC 时间线搭上另一个 NPC 的剧情交互,你想设计某个剧情进展到特定阶段后,才触发与另一个 NPC 的交叉故事匣,亦或是设计「黑暗之魂一」式的箱庭地图,关联「门的这一侧打开」,条条大路通传火祭祀场。Linear 里,你可以关联更多时间进展后、空间交互中的项目设计,它是关于时空配置的哲学。 Linear 是伟大的时间线工具、设计工具、以及伟大的迭代管理工具。 它敏捷、流动,它在非线性文本工具中加入了时空属性,即复杂项目管理。当然,在笔记软件里,也可以解决文本故事线问题,比如艾尔登法环游戏制作之前有个完整成型的小说。 但当你真正投入去开发游戏,做具有周期性、持续迭代、以及具有空间交叉属性的艺术作品时,你真正需要的是线性和非线性化管理,同步和异步时间配置,剧情和地图空间关联,你需要复杂立体的项目呈现。Linear 由此诞出。 相关链接 1 自带工具哲学的顶级软件 #tft#linear

Hashtags

DWF Labs Broadcast

@DWFLabs · Post #456 · 20.11.2023 г., 16:02

🎙️We're excited to join Linear Finance on Nov 24 at 11:00 UTC for this episode of Linear Explorers 'Recipe for a Bull Run?' 🚀 Set your ⏰️ for this conversation this Fri ⚡️ Happening here. $LINA #Linear#BNBChain

Venture Village Wall 🦄

@venturevillagewall · Post #3383 · 18.12.2024 г., 12:09

TVision Secures $1.5M Funding TVision has raised $1.5M in funding as of December 16, 2024. The company utilizes advanced computer-vision technology to analyze viewer engagement for both Linear and CTV, offering person-level insights into viewing habits. #Funding#TVision#Technology#ViewerEngagement#CTV#Linear#Insights#ComputerVision#Analytics#Viewership#Audience#Engagement#Media#Streaming#Data#Research#Investment