bleach linkify Оборачивание localhost:8000

29 марта 2017 г. 23:43

bleach linkify() пока, к сожалению, не умеет оборачивать ссылки локалхоста типа localhost:8000, но можно написать небольшой workaround, суть которого заключается в следующем: мы заменяем localhost:8000 на какой-нибудь несуществующий сайт, напр. dummy_site.ru, затем применяем linkify() и в заключении возвращаем localhost:8000. Вот небольшой реальный пример:

class Log(models.Model):
    content = models.TextField('Содержание лога')

    def get_content(self):
        def set_target(attrs, new=False):
            attrs['target'] = '_blank'
            return attrs

        content = '{}'.format(self.content.replace('\n', '<br/>'))

        # workaround to allow linkify localhost:8000
        content = content.replace('localhost:8000', 'dummy_site.ru')
        content = linkify(content, callbacks=[set_target, ])
        content = content.replace('dummy_site.ru', 'localhost:8000')

        return content
Примечание:
Чтобы долго не искать, как добавить target="_blank" ссылкам, я оставил callback set_target(attrs, new=False) - часто пригождается.

Оцените статью

0 из 5 (всего 0 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор статьи

Права на использование материала, расположенного на этой странице http://vivazzi.pro/it/bleach-linkify-localhost/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="http://vivazzi.pro/it/bleach-linkify-localhost/">http://vivazzi.pro/it/bleach-linkify-localhost/</a>

Подробнее: Правила использования сайта

Комментариев: 0

Вы можете оставить комментарий как незарегистрированный пользователь. Но, зарегистрировавшись, вы сможете получать оповещения об ответах, а также иметь доступ к своему личному аккаунту для просмотра своих комментариев.

Чтобы оставить комментарий от своего имени войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте