= TracLinks = = Trac-ссылки = [[PageOutline]] [[TranslatedPages(revision=0)]] TracLinks (Trac-ссылки) — одна из важнейших функций Trac, поскольку они допускают легкое добавление гиперссылок между различными сущностями в системе, такими как тикеты, отчеты, правки (changesets), страницы Wiki, этапы (milestones), и исходные файлы, в общем, везде где используется [wiki:WikiFormatting Wiki-форматирование]. Trac-ссылки обычно имеют форму '''type:id''' (где ''id'' представляет номер, имя или путь объекта), однако чаще используется краткая форма записи. == Где используются Trac-ссылки == Вы можете использовать [wiki:TracLinks Trac-ссылки] в: * Исходных кодах (Subversion), комментариях к коммитам * Wiki-страницах * Полных описаниях тикетов, отчетов и этапов и любые другие текстовые поля, явно поддерживающие [wiki:WikiFormatting Wiki-форматирование]. Примеры: * Тикеты (Tickets): '''!#1''' или '''!ticket:1''' * Комментарии к тикетам: '''!comment:ticket:1:2''' * Отчеты (Reports): '''!{1}''' или '''!report:1''' * Правки (Changesets): '''![1]''' или '''!changeset:1''' * Лог хранилища(Revision log): '''!r1:3''', '''![1:3]''' или '''!log:@1:3''', '''!log:trunk@1:3''' * Сравнения (Diffs): (требуют [milestone:0.10 0.10]): '''!diff:@1:3''', '''!diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default''' или '''!diff:trunk/trac@3538//sandbox/vc-refactoring@3539''' * Wiki-страницы: '''CamelCase''' или '''!wiki:CamelCase''' * Родительская статья: '''![..]''' * Этапы (Milestones): '''!milestone:1.0''' * Приложение (Attachment): '''!attachment:ticket:944:attachment.1073.diff''' * Файлы: '''!source:trunk/COPYING''' * Конкретная редакция (правка) файла: '''!source:/trunk/COPYING@200''' * Конкретная строка правки файла: '''!source:/trunk/COPYING@200#L25''' Покажут: * Тикеты (Tickets): #1 или ticket:1 * Комментарии к тикетам: comment:ticket:1:2 * Отчеты (Reports): {1} или report:1 * Правки (Changesets): [1] или changeset:1 * Лог хранилища(Revision log): '''r1:3''', '''[1:3]''' или '''log:@1:3''', '''log:trunk@1:3''' * Сравнения (Diffs): (требуют [milestone:0.10 0.10]): '''diff:@1:3''', '''diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default''' или '''diff:trunk/trac@3538//sandbox/vc-refactoring@3539''' * Wiki-страницы: CamelCase или wiki:CamelCase * Родительская статья: '''[..]''' * Этапы (Milestones): milestone:1.0 * Приложение (Attachment): '''attachment:ticket:944:attachment.1073.diff''' * Файлы: source:trunk/COPYING * Конкретная редакция (правка) файла: source:/trunk/COPYING@200 * Конкретная строка правки файла: source:/trunk/COPYING@200#L25 '''Внимание:''' Форма записи wiki:CamelCase используется нечасто, но может быть удобной для ссылок на страницы, имена которых не следуют правилам WikiPageNames, то есть состоят из одиночных слов, неалфавитных символов и т.д. См. WikiPageNames для более полной информации. Ссылки с использованием полного синтаксиса могут быть использованы также для указания названия ссылки вручную, например: {{{ [ticket:1 Это ссылка на карточку номер 1]. }}} Отобразится: [ticket:1 Это ссылка на карточку номер 1]. Если альтернативный текст для ссылке не прописан, будет показан только идентификатор ссылки (часть после двоеточия): {{{ [ticket:1] }}} Отобразится: [ticket:1] `wiki` — тип по умолчанию для подробной нотации ссылок, если часть "namespace" (тип ссылки) опущена (с версии 0.10), например: {{{ [SandBox the sandbox] }}} Отобразится: [SandBox the sandbox] '' Sandbox - "песочница" (англ.) '' [wiki:TracLinks Trac-ссылки] — это очень простая идея, но позволяет легко создать актуальную сколь угодно сложную связную информационную структуру. На практике такой синтаксис является интуитивно простым в использовании, и мы (разработчики) находим "ссылки с названиями" (link trail) неплохим инструментов для облегчения понимания того, что происходит в проекте, и почему были сделаны конкретные изменения. == Расширенное использование [TracLinks Trac-ссылок] == === Относительные ссылки === Для того, чтобы создать ссылку на некоторый "якорь" в статье, используйте '#': {{{ [#Relativelinks relative links] }}} Отобразится: [#Relativelinks relative links] Примечание: когда вы перемещаете мышь над названием абзаца, '¶' символ будет отображен. Это ссылка в этой на этот абзац и можете использовать его, чтобы скопировать `#...` часть относительной ссылки на якорь. Для создания ссылки на SubWiki-статью просто используйте '/': {{{ WikiPage/SubWikiPage или ./SubWikiPage }}} Для создания ссылки с SubWiki-статьи на родительскую, просто используйте '..': {{{ [..] }}} Для ссылки с SubWiki-статьи на соседнюю по уровню статью, используйте '../': {{{ [../Sibling см. следующего "Брата"] }}} ''(Изменения с 0.11)'' Заметьте, что в Trac 0.10, использовавшем например `[../newticket] могло работать для ссылки на /newticket верхнего уровня URL, но теперь в 0.11, останется на том же уровне (wiki namespace — пространство имен) и ссылается на страницу "брата". Смотри [#Server-relativelinks] по новому синтаксису. === InterWiki-ссылки (ссылки между различными Wiki-ресурсами в сети) === Свободно можно настроить альтернативные префиксы для отсылки к другим Web-приложениям. Определение таких префиксов а также корреспонденцию (трансляцию, соответствие) URL-ов Web-приложений задается в специальной Wiki-статье InterMapTxt. Заметьте, что тогда это могло бы быть использовано для создания ссылок на другие Trac-окружения (проекты), то есть более гибко связывать между собой различные проекты под управлением Trac. === InterTrac-ссылки === Это может выглядеть подобным InterWiki-ссылкам для указания гиперссылки на другие Trac-проекты. Любой тип Trac-ссылок может быть описан в одном Trac-окружении (проекте) и в действительности ссылаться на ресурсы, предоставляемые другим trac-окружением (проектом), в этом случае префикс ссылки должен совпадать с именем другого Trac-окружения и, как и в общем случае, отделен двоеточием. Такое Trac-окружение должно быть зарегистрировано под своим именем или псевдонимом (см. подробнее InterTrac). Главное преимущество InterTrac-ссылок перед InterWiki-ссылками в том, что форма записи обычных ссылок использует аналогичную нотацию. Например, ссылка на тикет может быть указана #T234 (если зарегистрирован псевдоним T для Trac), ссылка на правку может быть записана как [trac 1508]. === Относительные ссылки в пределах сервера (????) === Часто бывает полезным для указания объектов в вашем проекте, не подерживаемых механизмом Trac-ссылок, таких как статические ресурсы, `newticket`, расшаренный каталог /register на сервере и т.п. Для связки ресурсов внутри проекта, также можно использовать абсолютный путь из корневого каталога проекта, или относительную ссылку от URL текущей страницы (''появилось в 0.11''): {{{ [/newticket Create a new ticket] [/ home] }}} Отобразится: [../newticket newticket][[comment(FIXME that's the 0.10 syntax)]] [/ home] Для ссылки на другой каталог сервера (вне окружения проекта), используйте '//location' синтаксис ссылок (''появилось в 0.11''): {{{ [//register Register Here] }}} Отобразится: [//register Register Here] === Употребление пробелов в Trac-ссылках === Непосредственно после префикса Trac-ссылка принимает целью символы до первого пробела или все, "уложенные" в кавычки одинарные или двойные. Примеры: * !wiki:"The whitespace convention" * !attachment:'the file.txt' or * !attachment:"the file.txt" * !attachment:"ticket:123:the file.txt" '' Примеч. переводчика: для указания конкретной правки файла, номер правки должен быть тоже "уложен" в кавычки:'' {{{source:"the main project file.prj@24"}}} [source:"the main project file.prj@24"] === Запрет генерации Trac-ссылки === Во избежание нежелательного создания !Trac-ссылки] вы можете предварять их символом '!' (знак восклицания). Например: {{{ !НеНадоСсылок. ![42] никуда не ссылается. }}} Покажет: !НеНадоСсылок. ![42] никуда не ссылается. === Trac-ссылки с параметром === Trac-ссылки указывающие на ресурсы, могут иметь более, чем один путь, который должен быть подставлен целью, в зависимости от некоторых параметров. Например, Wiki-статья может принимать параметры `version` (версия) или `format` (формат), отчет может использовать динамические переменные и т.п. Любая Trac-ссылка поддерживает произвольную расстановку параметров, записанных в том же виде, что и в соответствующем URL. Например: - `wiki:WikiStart?format=txt` - `ticket:1?version=1` - `[/newticket?component=module1 create a ticket for module1]` == Каталог Trac-ссылок (?????? Reference) == Следующие пункты детально описывают каждый тип ссылки, а также несколько примечаний, представляющих применение ссылок. === attachment: ссылки (Файл-приложение/аттачмент) === Синтаксис для аттачментов: * !attachment:the_file.txt создает ссылку на аттачмент the_file.txt для текущего объекта * !attachment:wiki:MyPage:the_file.txt создает ссылку на аттачмент the_file.txt для Wiki-статьи !MyPage * !attachment:ticket:753:the_file.txt создает ссылку на аттачмент the_file.txt для тикета 753 === query: ссылки === См. TracQuery#UsingTracLinks ([TranslationRu/TracQuery#ИспользованиеTracЗапросов]) и [#ticket:links]. === search: ссылки === См. TracSearch#SearchLinks ([TranslationRu/TracSearch#СсылкиНаРезультатыПоиска]) === ticket: ссылки === Кроме очевидной формы `ticket:id`, можно указать список тикетов или даже диапазон вместо номера `id`. Такая запись генерирует гиперссылку на запрос с перечнем указанных тикетов. Примеры: - `ticket:5000-6000` - `ticket:1,150` ''(Появилось в Trac 0.11)'' === timeline: ссылки === Для задания ссылки на ленту времени нужно указать дату в формате ISO:8601. Дополнительно к дате может быть уточнено и время. Время предполагается UTC (Универсальное координированное время), однако можете указать и свое местное время, с часовым поясом, если не хотите вычислять UTC-время. Примеры: - `timeline:2008-01-29` - `timeline:2008-01-29T15:48` - `timeline:2008-01-29T16:48Z+01` ''(Появилось в Trac 0.11)'' === wiki: ссылки === См. WikiPageNames ([translationRu/WikiPageNames]) и [#УпотреблениеПробеловВTracСсылках Употребление пробелов в Trac-ссылках]. === Cсылки на систему контроля версий === ==== source: ссылки (Ссылки на исходные коды из хранилища) ==== По умолчанию ссылки source:/some/path открывают браузер репозитория, если путь указывает на каталог. Иначе открывается просмотр истории изменений файла. Есть возможность ссылаться прямо на конкретную правку (ревизию) файла: - source:/some/file@123 — ссылка на правку 123 - source:/some/file@head — сразу на крайнюю правку файла Если указан номер правки, можно даже указать конкретный номер строки: - `source:/some/file@123#L10` - `source:/tag/0.10@head#L10` Наконец, можно также выделить произвольный набор строк: - `source:/some/file@123:10-20,100,103#L99` - подсветка строк с 10 по 20, и отдельно строк 100 и 103. ''(Появилось в 0.11)'' ==== export: ссылки ==== Для принудительной загрузки файла из репозитория вместо отображения его в браузере по умолчанию, используйте ссылку вида `export`. Доступны несколько форм записи: * `export:/some/file` - получить HEAD правку (крайнюю) указанного файла * `export:123:/some/file` - получить правку № 123 указанного файла * `export:/some/file@123` - получить правку № 123 указанного файла Это может быть очень полезным для отображения HTML документации с корректными стилями страниц и изображений, в случае, если были помещены в репозиторий. Если путь к директории хранилища включает конкретный файл, окно браузера репозитория будет отображать директорию (подобно результату `source:/some/dir`). ==== log: ссылки ==== `log:` ссылки используются для отображения конкретных элементов правок. В своей самой простой форме, это ссылки на крайнюю правку, заданную путем, но также может отображать произвольный набор правок. - `log:/` - Полный лог изменений, по всему дереву хранилища (/ - root), начиная с крайней правки HEAD и раньше - `log:/trunk/tools` - Полный лог изменений `trunk/tools`, начиная с крайней правки HEAD и раньше - `log:/trunk/tools@10000` - Изменения `trunk/tools`, вошедшие в правки, начиная с № 10000 и более старые - `log:@20788,20791:20795` - Правки хранилища 20788 и диапазон правок с 20791 до 20795 - `log:/trunk/tools@20788,20791:20795` - Изменения `trunk/tools`, вошедшие в правку 20788 и правки с 20791 по 20795. Есть также и короткая форма для указания ревизий: - `[20788,20791:20795]` - `[20788,20791:20795/trunk/tools]` - `r20791:20795` (но не `r20788,20791:20795`и не `r20791:20795/trunk`) Наконец, заметьте, что во всех вышеуказанных примерах диапазоны правок могут указываться с одинаковым успехом как `x:y` так и `x-y`. ---- См. также: WikiFormatting, TracWiki, WikiPageNames, InterTrac, InterWiki (russian): TracTermsRu?