Как связать часть одного и того же документа в Markdown?



Я пишу большой уцененный документ и хотел бы разместить оглавление в начале, которое будет содержать ссылки на различные места в документе. Как я могу это сделать?



Я пробовал использовать



[a link](# MyTitle)


здесь MyTitle заголовок в документе и это не сработало.

903   11  

11 ответов:

на pandoc, если вы используете опцию --toc при создании html будет создано оглавление со ссылками на разделы и обратно к оглавлению из заголовков разделов. Он похож на другие форматы, которые пишет pandoc, такие как LaTeX, rtf, rst и т. д. Так что с командой

pandoc --toc happiness.txt -o happiness.html

это немного уценки:

% True Happiness

Introduction
------------

Many have posed the question of true happiness.  In this blog post we propose to
solve it.

First Attempts
--------------

The earliest attempts at attaining true happiness of course aimed at pleasure. 
Soon, though, the downside of pleasure was revealed.

даст это как тело html:

    <h1 class="title">
        True Happiness
    </h1>
    <div id="TOC">
        <ul>
            <li>
                <a href="#introduction">Introduction</a>
            </li>
            <li>
                <a href="#first-attempts">First Attempts</a>
            </li>
        </ul>
    </div>
    <div id="introduction">
        <h2>
            <a href="#TOC">Introduction</a>
        </h2>
        <p>
            Many have posed the question of true happiness. In this blog post we propose to solve it.
        </p>
    </div>
    <div id="first-attempts">
        <h2>
            <a href="#TOC">First Attempts</a>
        </h2>
        <p>
            The earliest attempts at attaining true happiness of course aimed at pleasure. Soon, though, the downside of pleasure was revealed.
        </p>
    </div>

Github автоматически анализирует теги привязки из ваших заголовков. Таким образом, вы можете сделать следующее:

[Foo](#foo)

# Foo

в этом случае Foo заголовок создал тег привязки с именем foo

Примечание: один # для всех размеров заголовка, без пробела между # и имя привязки, имена тегов привязки должны быть в нижнем регистре и разделены тире, если они многословны.

[click on this link](#my-multi-word-header)

### My Multi Word Header

обновление

работает из коробки с pandoc тоже.

экспериментируя, я нашел решение, используя <div…/> но очевидное решение состоит в том, чтобы разместить свою собственную точку привязки на странице, где вам нравится, таким образом:

<a name="abcde">

до и

</a>

после линия, которую вы хотите "связать". Затем уценка ссылка, как:

[link text](#abcde)

в любом месте документа вы попадете туда.

The <div…/> решение вставляет" фиктивное " деление только для добавления id собственность, а это потенциально разрушительно для структуры страницы, но <a name="abcde"/> решение должно быть вполне безобидным.

(PS: Это может быть нормально поставить якорь на строка, на которую вы хотите перейти, выглядит следующим образом:

## <a name="head1">Heading One</a>

но это зависит от того, как Markdown относится к этому. Я отмечаю, например, что форматер ответов переполнения стека доволен этим!)

это может быть устаревший поток, но для создания внутренних ссылок на документ в markdown в Github используйте...
(Примечание: нижний регистр #title)

    # Contents
     - [Specification](#specification) 
     - [Dependencies Title](#dependencies-title) 

    ## Specification
    Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. 

    ## Dependencies Title
    Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. 

хороший вопрос был сделан, поэтому я отредактировал свой ответ;

внутренняя ссылка может быть сделана на любой размер заголовка с помощью - #,##,###,#### Я создал быстрый пример ниже... https://github.com/aogilvie/markdownLinkTest

да, markdown делает это, но вам нужно указать имя якорь <a name='xyx'>.

полный пример,

это создает ссылке
[tasks](#tasks)

далее в документе, вы создаете именованный якорь (как он там называется).

<a name="tasks">
   my tasks
</a>

обратите внимание, что вы также можете обернуть его вокруг заголовка тоже.

<a name="tasks">
### Agile tasks (created by developer)
</a>

руководство pandoc объясняет, как связать с вашими заголовками, используя их идентификатор. Я не проверял поддержку этого другими парсерами, но сообщалось, что это не работает на github.

идентификатор можно указать вручную:

## my heading text {#mht}
Some normal text here,
including a [link to the header](#mht).

или вы можете использовать автоматически сгенерированный идентификатор. Как подробно объясняется в руководство pandoc.

Примечание: это только работает при преобразовании в HTML,латекс,контекст,текстильной или AsciiDoc.

в спецификации Markdown такой директивы нет. Извиняюсь.

используя kramdown, кажется, что это хорошо работает:

[I want this to link to foo](#foo)
....
....
{: id="foo"}
### Foo are you?

Я вижу, что было упомянуто, что

[foo][#foo]
....
#Foo

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

поскольку MultiMarkdown был упомянут в качестве опции в комментариях.

In MultiMarkdown синтаксис для внутренней ссылки прост.

для любого заголовка в документе просто дайте название заголовка в этом формате [heading][] для создания внутренней ссылки.

подробнее здесь: MultiMarkdown-5 перекрестных ссылок.

Перекрестные Ссылки

часто запрашиваемая функция была возможность иметь Markdown автоматически обрабатывает ссылки внутри документа так же легко, как и внешние ссылки. Для этой цели я добавил возможность интерпретировать [Некоторый текст][] как перекрестную ссылку, Если заголовок с именем "Некоторый текст" существует.

в качестве примера, [метаданные][] приведет вас к # метаданных (или любым из ## метаданных, ### метаданных, #### метаданных, ##### метаданных, ###### метаданных).

кроме того, вы можете включить дополнительную метку по вашему выбору, чтобы помочь устранить неоднозначность случаев, когда несколько заголовков имеют одинаковое название:

## Обзор# [MultiMarkdownOverview] ##

Это позволяет использовать [MultiMarkdownOverview] для ссылки на этот раздел, а не на другой раздел с именем обзор. Это работает с заголовками в стиле atx или settext.

Если вы уже определили якорь, используя тот же идентификатор, который используется заголовком, то определенный якорь имеет приоритет.

В дополнение к заголовки в документ, вы можете предоставить метки для изображений и таблиц, которые затем могут быть использованы для перекрестных ссылок, а также.

Гитлаб использует GitLab Flavored Markdown (GFM)

здесь "все уцененные заголовки автоматически получают идентификаторы"

можно использовать мышь :

  • наведите указатель мыши на заголовок
  • наведите курсор мыши на селектор наведения, который становится видимым слева от заголовка
  • скопировать и сохранить ссылку с помощью правой кнопки мыши

    например в README.md файл у меня есть заголовок:

## series expansion formula of the Boettcher function

что дает ссылку :

https://gitlab.com/adammajewski/parameter_external_angle/blob/master/README.md#series-expansion-formula-of-the-boettcher-function

префикс может быть удален, поэтому ссылка здесь просто

file#header

что означает:

README.md#series-expansion-formula-of-the-boettcher-function

теперь его можно использовать как:

[series expansion formula of the Boettcher function](README.md#series-expansion-formula-of-the-boettcher-function)

можно сделайте это вручную: замените пробелы знаком дефиса.

живой пример-это здесь

еще несколько вращений на <a name=""> трюк:

<a id="a-link"></a> Title
------

#### <a id="a-link"></a> Title (when you wanna control the h{N} with #'s)

Comments

    Ничего не найдено.