замените URL в тексте со ссылками на URL

@Stephen Bailey

Для завершения ответа можно также делегировать пользовательские права менеджеру проектов через файл простого текста в репозитории.

, Чтобы сделать это, Вы устанавливаете свою базу данных SVN со значением по умолчанию authz файл, содержащий следующее.

###########################################################################
# The content of this file always precedes the content of the
# $REPOS/admin/acl_descriptions.txt file.
# It describes the immutable permissions on main folders.
###########################################################################
[groups]
svnadmins = xxx,yyy,....

[/]
@svnadmins = rw
* = r
[/admin]
@svnadmins = rw
@projadmins = r
* =

[/admin/acl_descriptions.txt]
@projadmins = rw

Это значение по умолчанию authz файл разрешает администраторов SVN изменять простой файл видимого текста в Вашем репозитории SVN, названном '/admin/acl_descriptions.txt' , в котором администраторы SVN или менеджеры проектов изменят и зарегистрируют пользователей.

Тогда Вы устанавливаете рычаг перед фиксацией, который обнаружит, если пересмотр будет состоять из того файла (и только того файла).

, Если это, этот рычаг, сценарии проверят содержание Вашего файла простого текста и проверят, совместима ли каждая строка с правильным синтаксисом SVN.

Тогда рычаг постфиксации обновит \conf\authz файл с конкатенация из:

  • ШАБЛОН authz файл, представленный выше
  • файл /admin/acl_descriptions.txt

простого текста, первое повторение сделано администратором SVN, он добавляет:

[groups]
projadmins = zzzz

Он фиксирует свою модификацию, и это обновляет authz файл.

Тогда менеджер проектов 'zzzz' может добавить, удалить или объявить любую группу пользователей и любых пользователей, которых он хочет. Он фиксирует файл и authz, файл обновляется.

Тот путь, администратор SVN не должен следовать ни за кем и всеми пользователями для всех репозиториев SVN .

8
задан hoju 13 November 2009 в 07:03
поделиться

4 ответа

Вы можете загрузить документ с помощью библиотеки синтаксического анализа DOM / HTML (см. Html5lib), захватить все текстовые узлы, сопоставить их с регулярным выражением и заменить текстовые узлы заменой регулярного выражения URI с привязками вокруг него с использованием PCRE, например:

/(https?:[;\/?\\@&=+$,\[\]A-Za-z0-9\-_\.\!\~\*\'\(\)%][\;\/\?\:\@\&\=\+\$\,\[\]A-Za-z0-9\-_\.\!\~\*\'\(\)%#]*|[KZ]:\\*.*\w+)/g

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

Изменить: попробуйте использовать ответы здесь: Как мне заставить python-markdown дополнительно "urlify" ссылки при форматировании обычного текста?

import re

urlfinder = re.compile("([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}|((news|telnet|nttp|file|http|ftp|https)://)|(www|ftp)[-A-Za-z0-9]*\\.)[-A-Za-z0-9\\.]+):[0-9]*)?/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*[^]'\\.}>\\),\\\"]")

def urlify2(value):
    return urlfinder.sub(r'<a href="\1">\1</a>', value)

вызовите urlify2 в строке, и я думаю, что это так, если вы не имеете дело с объект DOM.

11
ответ дан 5 December 2019 в 09:26
поделиться
/\w+:\/\/[^\s]+/
1
ответ дан 5 December 2019 в 09:26
поделиться

Когда вы говорите «основной текст», вы имеете в виду простой текстовый файл или основной текст в документе HTML? Если вам нужен HTML-документ, вы можете использовать Beautiful Soup для его анализа; затем выполните поиск по основному тексту и вставьте теги.

Сопоставление фактических URL-адресов, вероятно, лучше всего выполнить с помощью модуля urlparse . Полное обсуждение здесь: Как проверить URL-адрес с помощью регулярного выражения в Python?

0
ответ дан 5 December 2019 в 09:26
поделиться

Gmail намного более открыт, когда дело доходит до URL-адресов, но это не всегда верно. например, он превратит www.ab в гиперссылку, а также http: // ab , но это часто не удается из-за обернутого текста и необычных (но действительных) символов URL.

См. приложение AA Собрал BNF для URI для синтаксиса и использовал его для построения разумного регулярного выражения, которое также будет учитывать, что окружает URL. Вам следует рассмотреть несколько сценариев, в которых могут оказаться URL-адреса.

0
ответ дан 5 December 2019 в 09:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: