Относительная ссылка 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 название филиала).

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

  1. Гото http://github.com/rynop/testRel, ссылка не работает.
  2. Гото http://github.com/rynop/testRel/blob/master/README.md, ссылка работает.

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

обновление: я открыл вопрос против GitHub для этого запрос.

10 ответов


обновление 30-го января, 16 месяцев спустя:

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

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

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

[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 уценке себя(!), относительные пути не поддерживаются.
Вы найдете ссылки, такие как:

[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

например, у вас есть РЕПО, как показано ниже:

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 in subsubtext.md может выглядеть так:

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

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

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

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

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

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

Удачи


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

[a relative link](markdown_file.md)

однако, есть несколько недостатков, которые были обсуждается в этом комментарии thread.

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

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

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

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


вы можете использовать относительные 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>

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

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

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

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


вы можете ссылаться на файл, но не на папки, и имейте в виду, что Github добавит /blob/master/ перед вашей относительной ссылкой (и папкам не хватает этой части, поэтому они не могут быть связаны ни с HTML <a> теги или ссылка Markdown).

Итак, если у нас есть файл в myrepo/src/Test.java, он будет иметь url, как:

https://github.com/WesternGun/myrepo/blob/master/src/Test.java

и связать его в файле README, мы можем использовать:

[This is a link](src/Test.java)

или: <a href="src/Test.java">This is a link</a>.

(Я думаю, master представляет master филиала и его отличается, когда файл находится в другой ветви.)


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

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

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


просто хотел добавить это, потому что ни одно из вышеперечисленных решений не работало, если целевая ссылка-это каталог с пробелами в его имени. Если целевая ссылка является каталогом и имеет пространство, то даже экранирование пространства с \ не отображает ссылку на 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/Dir%20A)

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

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

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

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

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