Относительная ссылка 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 название филиала).
вот рабочий пример того, что я имею в виду:
- Гото http://github.com/rynop/testRel, ссылка не работает.
- Гото http://github.com/rynop/testRel/blob/master/README.md, ссылка работает.
это ожидается, потому что в этот момент стартовый URL находится в ветке. Теперь как мне получить его, чтобы забрать текущую ветку в README.md в корне хранилище?
обновление: я открыл вопрос против GitHub для этого запрос.
10 ответов:
обновление 30 января 2013, 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:
The проблема разметки 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.mdinsubsubtext.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)однако, есть несколько недостатков, которые были обсуждается в этой теме комментария.
в качестве альтернативы, вы можете использовать Gitdown построить полные URL-адреса в репозиторий и даже сделать их филиал в курсе, например
{"gitdown": "gitinfo", "name": "url"} // https://github.com/gajus/gitdown {"gitdown": "gitinfo", "name": "branch"} // masterGitdown-это препроцессор 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>теги или уценка ссылка).Итак, если у нас есть файл в
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 Ain 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" с "../ ", и перейти к главной ветви в дереве репозитория без указания имени репозитория, которое может измениться в будущем.
Comments