@palestineresist · Post #93449 · 07.04.2026 г., 06:02
🚨 An elderly woman was martyred after being physically assaulted by the IOF during a raid on her home in Jayyus, #Qalqilya. Glory to the martyrs.
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
Пребарај: #qalqilya
@palestineresist · Post #93449 · 07.04.2026 г., 06:02
🚨 An elderly woman was martyred after being physically assaulted by the IOF during a raid on her home in Jayyus, #Qalqilya. Glory to the martyrs.
Hashtags
@rnn_archive · Post #591 · 16.09.2023 г., 21:03
The Azzun Phenomenon: Our attentive readers may have noticed updates every now and then about settlers being injured by stones or Molotovs in the modest town of Azzun, #Qalqilya: a simple search yields about 60 such reported operations in the last year. These operations, while simple, turn out to be very effective at shattering settler security. Azzun's stone-throwing prowess is not a coincidence, and in fact, the choice to carry out these operations here is a strategic one. The town of just 8,000 residents and 9 kilometers squared—which has offered 80 prisoners and five martyrs in recent years—is located at a historically important crossroads. Yet, this small town has become a nightmare for settlers. In August, at least 25 settlers were wounded by such operations in Azzun alone, rivaling injuries of resistance strongholds such as Jenin and Nablus. Last week there, four settlers were wounded and nearly a dozen of their cars were destroyed in one day. Settlers here are specifically targeted on a major vein of zionist infrastructure: settler bypass road Route 55, passing through Azzun. This road has actually been around since 300 BC. It was established formally in 1935, and this racist road was blocked often by Palestinians during the first intifada. As a result, the occupation built a number of alternative bypass roads. In 2002 amidst the second intifada, it became a settler bypass road, with its purpose being to give settlers a Jewish-only detour such that they can avoid the apparent danger of Palestinian areas. This stone-throwing has become a major problem for the occupation, who increased its security on Qalqilya for almost two months now, arresting a number of alleged stone-throwers. Today, the steadfast resistance of Azzun continue to create nightmares for settlers despite the siege, shattering their glass, destroying their cars, and targeting them with rudimentary explosive devices made at home. In all forms, resistance increases, and Azzun marches on the path of Jenin, Nablus, Tulkarem, and Gaza.
Hashtags
@PalestineResist_Mirror · Post #4566 · 01.05.2026 г., 00:04
🚨 IOF units are conducting a widespread campaign of raids and incursions across occupied Palestine, with operations concentrated in #Nablus, #Qalqilya, and #AlKhalil. Concurrently, armed settlers are launching violent assaults with live fire against residential areas in the vicinity of Al-Arroub camp. Settler provocations are also reported across the Nablus district.
@Palresistmirror · Post #94010 · 01.05.2026 г., 00:04
🚨 IOF units are conducting a widespread campaign of raids and incursions across occupied Palestine, with operations concentrated in #Nablus, #Qalqilya, and #AlKhalil. Concurrently, armed settlers are launching violent assaults with live fire against residential areas in the vicinity of Al-Arroub camp. Settler provocations are also reported across the Nablus district.