examples - Enlace relativo de GitHub en el archivo Markdown
markdown underline (10)
¿Hay alguna forma de crear un enlace de URL, <a>
, desde dentro de un archivo Markdown, a otro archivo dentro del mismo repositorio y rama (también conocido como enlace relacionado con la rama actual)?
Por ejemplo, en la rama maestra tengo un archivo README.md, que me gustaría hacer algo como:
# My Project
is really really cool. My Project has a subdir named myLib, see below.
## myLib documentation
see documentation [here](myLib/README.md)
Esto me permitiría enlazar de un .md a otro dentro de la misma rama y no tener que preocuparme por la rama en la que estoy (evite tener que hacer una URL absoluta que incluya el nombre de la rama github.com).
Aquí hay un ejemplo de trabajo de lo que quiero decir:
- GOTO http://github.com/rynop/testRel , el enlace no funciona.
- GOTO http://github.com/rynop/testRel/blob/master/README.md , el enlace funciona.
Esto se espera porque en este punto la URL de inicio está en la rama. Ahora, ¿cómo hago para recoger la rama actual en el archivo README.md en la raíz del repositorio?
Actualización : abrí un issue contra GitHub para esta solicitud de función.
A partir del 31 de enero de 2013, Github markdown admite enlaces relativos a archivos .
[a relative link](markdown_file.md)
Sin embargo, hay algunas deficiencias que se han analizado en este hilo de comentarios .
Como alternativa, puede usar Gitdown para construir direcciones URL completas para el repositorio e incluso hacerlas conscientes, por ejemplo
{"gitdown": "gitinfo", "name": "url"} // https://github.com/gajus/gitdown
{"gitdown": "gitinfo", "name": "branch"} // master
Gitdown es un preprocesador de markdown de GitHub. Agiliza las tareas comunes asociadas con el mantenimiento de una página de documentación para un repositorio de GitHub, por ejemplo, generando una tabla de contenido, incluidas variables, generando URL y obteniendo información sobre el repositorio en el momento de procesar la entrada. Gitdown se integra perfectamente con sus scripts de construcción.
Soy el autor de la biblioteca Gitdown.
Actualización del 30 de enero de 2013 , 16 meses después:
GitHub Blog Post Enlaces relativos en archivos de marcas :
A partir de hoy, GitHub admite enlaces relativos en archivos de marcas .
Ahora puede vincular directamente entre diferentes archivos de documentación, ya sea que vea la documentación en el propio GitHub, o localmente, utilizando un procesador de marcado diferente.¿Quieres ejemplos de definiciones de enlaces y cómo funcionan? Aquí hay algunos Markdown para usted.
En lugar de un enlace absoluto:
[a link](https://github.com/user/repo/blob/branch/other_file.md)
… Puedes usar un enlace relativo:
[a relative link](other_file.md)
y nos aseguraremos de que se vincule al
user/repo/blob/branch/other_file.md
.Si estaba usando una solución como
[a workaround link](repo/blob/master/other_file.md)
, tendrá que actualizar su documentación para usar la nueva sintaxis.Esto también significa que su documentación ahora puede valerse por sí misma sin tener que apuntar siempre a GitHub .
Actualización del 20 de diciembre de 2011:
El problema de marcado de GitHub 84 está actualmente cerrado por technoweenie , con el comentario:
Intentamos agregar una etiqueta
<base>
para esto, pero causa problemas con otros enlaces relativos en el sitio.
12 de octubre de 2011:
Si observa la fuente en bruto del README.md
de Markdown (!), Las rutas relativas no parecen ser compatibles.
Encontrarás referencias como:
[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
Esta pregunta es bastante antigua, pero aún parece importante, ya que no es fácil colocar referencias relativas de readme.md a páginas wiki en Github.
Jugué un poco y este vínculo relativo parece funcionar bastante bien:
[Your wiki page](../../wiki/your-wiki-page)
Los dos ../
eliminarán /blob/master/
y usarán su base como punto de partida. Sin embargo, no he probado esto en otros repositorios que no sean Github (puede haber problemas de compatibilidad).
GitHub podría hacer esto mucho mejor con un mínimo de trabajo. Aquí hay una solución alternativa.
Creo que quieres algo mas como
[Your Title](your-project-name/tree/master/your-subfolder)
o para señalar el mismo README
[README](your-project-name/blob/master/your-subfolder/README.md)
Buena suerte
No estoy seguro si veo esta opción aquí. Puede crear una /folder
en su repositorio y usarla directamente:
[a relative link](/folder/myrelativefile.md)
No se necesita ningún nombre de blob o árbol o repositorio, y funciona como un encanto.
Por ejemplo, tienes un repo como el siguiente:
project/
text.md
subpro/
subtext.md
subsubpro/
subsubtext.md
subsubpro2/
subsubtext2.md
El enlace relativo a subtext.md
en text.md
podría verse así:
[this subtext](subpro/subtext.md)
El enlace relativo a subsubtext.md
en text.md
podría verse así:
[this subsubtext](subpro/subsubpro/subsubtext.md)
El enlace relativo a subtext.md
en subsubtext.md
podría verse así:
[this subtext](../subtext.md)
El enlace relativo a subsubtext2.md
en subsubtext.md
podría verse así:
[this subsubtext2](../subsubpro2/subsubtext2.md)
El enlace relativo a text.md
en subsubtext.md
podría verse así:
[this text](../../text.md)
Puede usar las URL relativas desde la raíz de su repositorio con <a href="">
. Suponiendo que su repositorio se llame testRel
, ponga lo siguiente en 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>
Puede vincular a un archivo, pero no a carpetas, y tenga en cuenta que Github agregará /blob/master/
antes de su enlace relativo (y las carpetas carecen de esa parte, por lo que no se pueden vincular, ni con etiquetas HTML <a>
o Markdown enlazar).
Entonces, si tenemos un archivo en myrepo/src/Test.java
, tendrá una url como:
https://github.com/WesternGun/myrepo/blob/master/src/Test.java
Y para enlazarlo en el archivo readme, podemos usar:
[This is a link](src/Test.java)
o: <a href="src/Test.java">This is a link</a>
.
(Supongo que el master
representa la rama master
y difiere cuando el archivo está en otra rama).
Si quieres un enlace relativo a tu página wiki en GitHub, usa esto:
Read here: [Some other wiki page](path/to/some-other-wiki-page)
Si desea un enlace a un archivo en el repositorio, digamos, para hacer referencia a algún archivo de encabezado, y la página wiki está en la raíz de la wiki, use esto:
Read here: [myheader.h](../tree/master/path/to/myheader.h)
La razón para esto último es omitir la ruta "/ wiki" con "../", y dirigirse a la rama maestra en el árbol del repositorio sin especificar el nombre del repositorio, que puede cambiar en el futuro.
Solo quería agregar esto porque ninguna de las soluciones anteriores funcionó si el enlace de destino es un directorio con espacios en su nombre. Si el enlace de destino es un directorio y tiene espacio, incluso el espacio de escape con / no muestra el enlace en Github. La única solución que funcionó para mí es usar %20
para cada espacio.
por ejemplo: si la estructura del directorio es esta
Top_dir
|-----README.md
|-----Cur_dir1
|----Dir A
|----README.md
|----Dir B
|----README.md
Para hacer un enlace a Dir A
en README.md presente en Top_dir
puede hacer esto:
[Dir 1](Cur_dir1/Dir%20A)