Подтвердить что ты не робот

Относительная ссылка GitHub в файле Markdown

Есть ли способ создать привязку URL, <a>, ссылку из файла Markdown, в другой файл в том же репозитории и ветке (также ссылку, связанную с текущей ветвью)?

Например, в основной ветке у меня есть файл README.md, который я бы хотел сделать примерно так:

# My Project
is really really cool. My Project has a subdir named myLib, see below.

## myLib documentation
see documentation [here](myLib/README.md)

Это позволило бы мне связать с одним .md другим в одной ветке и не беспокоиться о том, в какой ветке я вхожу (не нужно делать абсолютный URL-адрес, содержащий имя ветки github.com).

Вот рабочий пример того, что я имею в виду:

Ожидается, что в этот момент стартовый URL-адрес находится в ветке. Теперь, как мне получить его, чтобы забрать текущую ветвь в README.md в корне репозитория?

Обновление. Я открыл issue для GitHub для этого запроса функции.

4b9b3361

Ответ 1

Обновление 30, январь 2013, через 16 месяцев:

Сообщение в блоге GitHub Относительные ссылки в файлах разметки:

Начиная с сегодняшнего дня GitHub поддерживает относительные ссылки в файлах разметки.
Теперь вы можете напрямую связываться между различными файлами документации, независимо от того, просматриваете ли вы документацию непосредственно на GitHub или локально, используя другой рендеринг разметки.

Вам нужны примеры определения ссылок и как они работают? Вот некоторые Markdown для вас.
Вместо абсолютной ссылки:

[a link](https://github.com/user/repo/blob/branch/other_file.md)

... вы можете использовать относительную ссылку:

[a relative link](other_file.md)

и мы обязательно свяжемся с user/repo/blob/branch/other_file.md.

Если вы использовали обходной путь вроде [a workaround link](repo/blob/master/other_file.md), вам нужно будет обновить свою документацию, чтобы использовать новый синтаксис.

Это также означает , теперь ваша документация может легко стоять сама по себе, не указывая всегда на GitHub.


Обновление 20 декабря 2011 года:

Проблема разметки GitHub 84 в настоящее время закрыта technoweenie, с комментарием:

Мы попытались добавить для этого тег <base>, но это создает проблемы с другими относительными ссылками на сайте.


12 октября 2011 года:

Если вы посмотрите на исходный источник README.md самого Markdown (!), относительные пути похоже, не поддерживаются. Вы найдете ссылки типа:

[r2h]: http://github.com/github/markup/tree/master/lib/github/commands/rest2html
[r2hc]: http://github.com/github/markup/tree/master/lib/github/markups.rb#L13

Ответ 2

Например, у вас есть репо, как показано ниже:

project/
    text.md
    subpro/
       subtext.md
       subsubpro/
           subsubtext.md
       subsubpro2/
           subsubtext2.md

Относительная ссылка на subtext.md в text.md может выглядеть так:

[this subtext](subpro/subtext.md)

Относительная ссылка на subsubtext.md в text.md может выглядеть так:

[this subsubtext](subpro/subsubpro/subsubtext.md)

Относительная ссылка на subtext.md в subsubtext.md может выглядеть так:

[this subtext](../subtext.md)

Относительная ссылка на subsubtext2.md в subsubtext.md может выглядеть так:

[this subsubtext2](../subsubpro2/subsubtext2.md)

Относительная ссылка на text.md в subsubtext.md может выглядеть так:

[this text](../../text.md)

Ответ 3

GitHub может сделать это намного лучше с минимальной работой. Вот обход.

Я думаю, вы хотите что-то большее, как

[Your Title](your-project-name/tree/master/your-subfolder)

или указать на сам README

[README](your-project-name/blob/master/your-subfolder/README.md)

Удача

Ответ 4

По состоянию на 31 января 2013 г. Github markdown поддерживает относительные ссылки на файлы.

[a relative link](markdown_file.md)

Однако в этом потоке комментариев есть несколько недостатков .

В качестве альтернативы вы можете использовать Gitdown для построения полные URL-адреса в репозиторий и даже информировать их о ветких, например

{"gitdown": "gitinfo", "name": "url"} // https://github.com/gajus/gitdown
{"gitdown": "gitinfo", "name": "branch"} // master

Gitdown - это препроцессор уценки GitHub. Он упрощает общие задачи, связанные с ведением страницы документации для репозитория GitHub, например. генерирование оглавления, включая переменные, создание URL-адресов и получение информации о самом репозитории во время обработки ввода. Gitdown плавно интегрируется с вашими сценариями здания.

Я являюсь автором библиотеки Gitdown.

Ответ 5

Вы можете использовать относительные URL-адреса из корня вашего репо с помощью <a href="">. Предполагая, что ваше репо называется testRel, поместите следующее в testRel/README.md:

# My Project
is really really cool. My Project has a subdir named myLib, see below.

## myLib docs
see documentation:
    * <a href="testRel/myLib">myLib/</a>
    * <a href="testRel/myLib/README.md">myLib/README.md</a>

Ответ 6

Я не уверен, вижу ли этот вариант здесь. Вы можете просто создать /folder в своем репозитории и использовать его напрямую:

[a relative link](/folder/myrelativefile.md)

Нет никакого имени blob или дерева или репозитория, и он работает как шарм.

Ответ 7

Если вам нужна относительная ссылка на вашу страницу вики на GitHub, используйте это:

Read here: [Some other wiki page](path/to/some-other-wiki-page)

Если вам нужна ссылка на файл в репозитории, скажем, для ссылки на некоторый заголовочный файл, а страница wiki находится в корне вики, используйте это:

Read here: [myheader.h](../tree/master/path/to/myheader.h)

Обоснованием последнего является пропустить путь "/wiki" с помощью "../" и перейти к главному ветки дерева дерева репозитория без указания имени репозитория, который может измениться в будущем.

Ответ 8

Этот вопрос довольно старый, но он по-прежнему кажется важным, так как нелегко помещать ссылки на readme.md на wiki-страницы в Github.

Я немного поиграл, и эта относительная ссылка, похоже, работает очень хорошо:

[Your wiki page](../../wiki/your-wiki-page)

Два ../ удаляют /blob/master/ и используют вашу базу в качестве отправной точки. Я не пробовал это на других репозиториях, кроме Github, хотя (могут быть проблемы с совместимостью).

Ответ 9

Просто хотел добавить это, потому что ни одно из вышеперечисленных решений не работало, если целевая ссылка - это каталог с пробелами в имени. Если целевая ссылка является каталогом и имеет пространство, то даже экранирование пространства с помощью\не отображает ссылку на Github. Только решение для меня использовало %20 для каждого пространства.

Например: если структура каталогов - это

Top_dir
|-----README.md
|-----Cur_dir1
      |----Dir A
           |----README.md
      |----Dir B
           |----README.md

Чтобы сделать ссылку на Dir A в README.md, представленном в Top_dir, вы можете сделать это:

[Dir 1](Cur_dir1/Dir1%20A)