Формат хранилища Confluence — любой, кто играл с якорем и макросом якорной ссылки.

Я разбираю dita xml и должен сгенерировать Формат хранилища Confluence.

У меня возникли трудности с макросом привязки, в то время как в формате dita есть внешние ссылки, которые ведут себя так же, как локальные ссылки html <xref href="#id">title</xref>....<any id="id"..., сливаются швы, чтобы иметь свой собственный уникальный синтаксис.

Был ли у кого-нибудь хороший пример того, как построить правильный якорь и правильно связать его?


person Saloparenator    schedule 11.02.2016    source источник
comment
до сих пор я пробовал <ac:structured-macro ac:name="anchor"><ac:parameter ac:name="the_id"><h2>title</h2></ac:parameter></ac:structured-macro> в качестве привязки и <ac:link ac:anchor="the title"><ac:plain-text-link-body>the_id</ac:plain-text-link-body></ac:link> в качестве ссылки. но это не сработало вообще.   -  person Saloparenator    schedule 12.02.2016


Ответы (4)


Макрос anchor фактически создает элемент HTML <span> с идентификатором, содержащим заголовок страницы и привязку.

<span id="CONFLUENCEPAGENAME-ANCHORNAME" class="confluence-anchor-link"></span>

Таким образом, если ваша страница слияния представляет тему, это должно быть довольно легко реализовать (поскольку CONFLUENCEPAGENAME равно названию вашей темы, или ключу, или идентификатору, или тому, что вы используете). Просто создайте пустую страницу слияния, добавьте макрос anchor, сохраните его и изучите отображаемый HTML.

person Stefan Eike    schedule 12.02.2016
comment
Может быть, я не сформулировал свой вопрос, мне не нужно знать, что генерирует слияние для браузера, но что я генерирую для его Rest Api. - person Saloparenator; 12.02.2016

В ответе Saloparenator есть небольшая ошибка. Анкорная ссылка это:

<ac:link ac:anchor="The_Id">
    <ac:plain-text-link-body>
        <[CDATA[text describing the link]]>
    </ac:plain-text-link-body>
</ac:link>
person Jose Martins    schedule 13.11.2017

Я наконец-то понял.

Вместо id на элемент вставляем анкор, куда ссылку должен отправить пользователь, я вставил чуть выше шапки. <ac:structured-macro ac:name="anchor"><ac:parameter ac:name="">The_Id</ac:parameter></ac:structured-macro>

Анкорные ссылки строятся так. <ac:link ac:anchor="The_Id"><ac:plain-text-link-body><[CDATA[text describing the link]]></ac:plain-text></ac:link>

Протестировано на Confluence 5.7

person Saloparenator    schedule 12.02.2016

Если страница, на которую вы хотите сослаться, имеет TableOfContents, и вы хотите сослаться на раздел на этой странице1 с другой страницы2...

Просмотрите страницу 1 и щелкните ссылку в TableOfContents, которая приведет вас к разделу на той же странице1.

Теперь скопируйте этот URL-адрес из адресной строки браузера (это будет что-то вроде http://confluence/page1#anchor). ), и перейдите на свою страницу2, где вы хотите разместить ссылку.

Отредактируйте страницу2 и вставьте ссылку, указывающую на страницу1.

person Sagan    schedule 12.04.2019