@whysoserioushmmm · Post #2654 · 26.12.2019 г., 05:18
A study conducted by Harvard and Google conclude that the English language comprises of 1,022,000words. ━━━━━━━━━━━━━ #knowledge
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
Пребарај: #knowledge
@whysoserioushmmm · Post #2654 · 26.12.2019 г., 05:18
A study conducted by Harvard and Google conclude that the English language comprises of 1,022,000words. ━━━━━━━━━━━━━ #knowledge
Hashtags
@exploreclassical · Post #402 · 15.07.2022 г., 13:53
由刚刚分享的这条了解了一下 Toccata 的历史,现学现卖一下🥲大家多指点。 Toccata 一词来源于意大利语的 toccare,意思是 to touch,toccata 意为 action of touching,从这个词就可以看出来 Toccata 旨在表现演奏家的手指技巧。Toccata 多为键盘乐器作品,不过也有一些其他乐器或是交响乐作品。 Toccata 最早于文艺复兴时期出现于意大利北部。巴洛克时期的 toccata 可能最为有名,除了 Bach 的代表作以外,Pachellbel,Scarlatti等人都写过 Toccata。Bach 的 Toccata and Fugue in D minor 可能是大家最熟悉的 Toccata,也是最为人熟知的管风琴作品之一。这里的 Toccata 是一种很即兴式的创作,而且节奏也比较随性。巴洛克之后,Toccata 就比较少见了,浪漫主义时期,Schumann 写过一首 Toccata in C major,技巧性很高。 从二十世纪早期,又有很多作曲家开始创作 toccata,比如 Debussy 的 Pour le Piano第三乐章为 Toccata,Prokofiev 的 Toccata in D minor等。Toccata 有时也在 Symphony中出现,比较有名的有 Ralph Vaughan Williams 的 Symphony No.8 最后一个乐章。 篇幅比较小的 Toccata 常被称为 Toccatina,比如上一条分享的 Kapustin 的 Toccatina Op.36。除了这首以外,他在 Eight Concert Etude 中还有一首Toccatina,之前有分享过~ #knowledge
Hashtags
@MuClassic · Post #213 · 15.07.2022 г., 16:00
由刚刚分享的这条了解了一下 Toccata 的历史,现学现卖一下🥲大家多指点。 Toccata 一词来源于意大利语的 toccare,意思是 to touch,toccata 意为 action of touching,从这个词就可以看出来 Toccata 旨在表现演奏家的手指技巧。Toccata 多为键盘乐器作品,不过也有一些其他乐器或是交响乐作品。 Toccata 最早于文艺复兴时期出现于意大利北部。巴洛克时期的 toccata 可能最为有名,除了 Bach 的代表作以外,Pachellbel,Scarlatti等人都写过 Toccata。Bach 的 Toccata and Fugue in D minor 可能是大家最熟悉的 Toccata,也是最为人熟知的管风琴作品之一。这里的 Toccata 是一种很即兴式的创作,而且节奏也比较随性。巴洛克之后,Toccata 就比较少见了,浪漫主义时期,Schumann 写过一首 Toccata in C major,技巧性很高。 从二十世纪早期,又有很多作曲家开始创作 toccata,比如 Debussy 的 Pour le Piano第三乐章为 Toccata,Prokofiev 的 Toccata in D minor等。Toccata 有时也在 Symphony中出现,比较有名的有 Ralph Vaughan Williams 的 Symphony No.8 最后一个乐章。 篇幅比较小的 Toccata 常被称为 Toccatina,比如上一条分享的 Kapustin 的 Toccatina Op.36。除了这首以外,他在 Eight Concert Etude 中还有一首Toccatina,之前有分享过~ #knowledge
Hashtags
@quotesofzday · Post #204 · 24.07.2022 г., 05:56
Every time you learn a new fact, your brain changes. #Knowledge
Hashtags
@englishmeta1 · Post #146 · 03.05.2022 г., 12:18
The saying “Great minds think alike” is actually a shortened version of a longer quote “Great minds think alike, small minds rarely differ” #knowledge
Hashtags
@roam_around · Post #141 · 06.04.2023 г., 09:33
五分钟拥有一个区块链和 IPFS 上的去中心化博客 https://song.xlog.app/5m-zh #knowledge
Hashtags
@roam_around · Post #115 · 29.03.2023 г., 16:11
《通过固定 ID 定位 TG 帐号以及+86注册 TG 的危害》 大家玩TG还是要做好隐私保护呀。 #knowledge https://telegra.ph/Telegram-ID-08-07
Hashtags
@roam_around · Post #114 · 29.03.2023 г., 12:57
The world is awful. The world is much better. The world can be much better. 看到这句标语,突然想起了去年读刘瑜老师《比较政治学》,真的消解了内心很多的情绪。 学习的态度看过去,比较的视角看现在,发展得眼光看未来。 https://ourworldindata.org/much-better-awful-can-be-better #knowledge
Hashtags
@roam_around · Post #111 · 28.03.2023 г., 04:18
「 深蓝洞察 」2022 年度最“不可赦”漏洞 “但 2022 年,有知名互联网厂商竟持续挖掘新的安卓 OEM 相关漏洞,在其公开发布的 App 中实现对目前市场主流手机系统的漏洞攻击。” (也不知道是哪家有名的互联网公司😑) #knowledge https://mp.weixin.qq.com/s/P_EYQxOEupqdU0BJMRqWsw
Hashtags
@roam_around · Post #104 · 26.03.2023 г., 10:21
貌似 New Bing 现在会阻止部分 IP 访问,我的一个节点已经无法使用 New Bing,换一个又可以继续了🥲。 #knowledge
Hashtags
@roam_around · Post #96 · 24.03.2023 г., 13:41
carbon tunnel vision 只关注与碳相关问题的狭窄或有限视角,往往忽视其他重要因素或考虑。 解决问题不能只盯着眼前的指标,要系统性、结构性的考虑。 #knowledge ---- 这个图画的挺有趣。
Hashtags
@roam_around · Post #94 · 22.03.2023 г., 06:13
IKIGAI 2.0 Ikigai Dual Meaning = Life is worth living (being) and worth living for (doing). #knowledge 更多信息: https://www.sloww.co/ikigai-2-0/ ----- 是一种平衡主客体关系的生活实践。
Hashtags