Подтвердить что ты не робот

Открыть ссылку в новом окне в reStructuredText

Я хочу открыть ссылку в новом окне, используя reStucturedText. Возможно ли это?

Это открывает ссылку в том же окне:

You can `check your location here. <http://geoiptool.com>`_
4b9b3361

Ответ 1

Чтобы открыть страницу в новом окне или теге, вы можете добавить атрибут target="_blank" к своей гиперссылке, хотя я не уверен, как вы можете добавлять атрибуты встроенных гиперссылок в reStructuredText. Тем не менее, из Docutils часто задаваемых вопросов, является вложенной встроенной разметкой, вы можете использовать директиву raw для включения необработанного HTML в ваш документ, например

You can |location_link|.

.. |location_link| raw:: html

   <a href="http://geoiptool.com" target="_blank">check your location here</a>

Обновить для комментариев

У меня возник вопрос: "Почему у reStructuredText нет [вставить какую-нибудь замечательную функцию]".

В этом случае "почему у reStructuredText нет способа указать, как открываются ссылки" - я думаю, что у reStructuredText нет простого способа сделать это, так как поведение того, как работает ссылка на ссылку, на самом деле не является обязанность. reStructuredText преобразует разметку - как именно эта разметка в конечном счете отображается не до reStructuredText, но независимо от того, какой браузер или зритель пользователь выбирает использовать.

В случае открытия ссылки в веб-браузере хорошая практика использования требует, чтобы вы не принуждали пользователя открывать ссылку на новой вкладке (что делает добавление target="_blank"). Скорее, вы должны оставить выбор, как открыть ссылку до пользователя. Если пользователь хочет открыть ссылку на новой вкладке, тогда они могут использовать свою среднюю кнопку мыши (или любую другую их любимую комбинацию клавиш).

Итак, я считаю, что вполне приемлемо, что у reStructureText нет простой функции target="_blank". Тот факт, что это возможно, хорошо для людей, которые действительно хотят это сделать, хорошо, и тот факт, что это немного больно, подходит для того, чтобы не поощрять эту практику.

Ответ 3

Я полностью согласен с принятым ответом, особенно с той частью, где reStructuredText не несет ответственности за поведение ссылки.

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

В моем случае я использую стороннюю тему (sphinx_rtd_theme) и помещаю следующий скрипт в конец layout.html:

  <script type="text/javascript">
    <!-- Adds target=_blank to external links -->

    $(document).ready(function () {
      $('a[href^="http://"], a[href^="https://"]').not('a[class*=internal]').attr('target', '_blank');
    });
  </script>

Похоже, все отлично. Надеюсь, это поможет.