Skip to main content

Sphinx "linkattr" extension

Project description

CI License: MIT

sphinxcontrib-linkattr

A Sphinx extension, which overrides attributes of internal/external links.

Install

pip install sphinxcontrib-linkattr

Usage

Add sphinxcontrib.linkattr in the extensions list in conf.py.

extensions += ['sphinxcontrib.linkattr']

Configuration

  • linkattr_attr_external: (default: {'target': '_blank', 'rel': 'noreferrer noopener'})

    Attributes for external links. The default value implements open in new tab behavior for html builders.

  • linkattr_suffix_external: (default: None)

    A string/object which is placed after the link texts of external links. Possible types of the value are

    • None: Nothing.
    • str: String.
    • dict: This is interpreted as a doctutils.nodes object, which class is 'node' element and properties are the rest elements (See tests/fontawesome/conf.py as an example).
  • linkattr_attr_internal: (default: {})

    Attributes for internal links (See also linkattr_attr_external).

  • linkattr_suffix_internal: (default: None)

    A string/object which is placed after the link texts of internal links (See also linkattr_suffix_external).

  • linkattr_custom_translator_dict: (default: {})

    A dictonary which has format:Translator object pairs. If you want to use a custom builder class, this may be helpful.

Examples

  • tests/simple/: (demo)

    A simple example with an open in new tab function and a suffix [external link].

    • In conf.py
      extensions += ['sphinxcontrib.linkattr']
      linkattr_suffix_external = ' [external link]'
      
  • tests/fontawesome/: (demo)

    An example of the usage of linkattr_suffix_external as a doctutils.nodes object, which has a Font Awesome icon.

    • In conf.py
      html_static_path = ['_static', '_static/css', '_static/webfonts']
      html_css_files   = ['css/fontawesome-all.css', 'custom.css']
      extensions += ['sphinxcontrib.linkattr']
      linkattr_suffix_external = dict(node='raw', format='html',
                                      text='<i class="fas fa-external-link-alt"></i>')
      
    • In _static/custom.css
      i.fas.fa-external-link-alt {
          color: #AAAAAA;
          font-size: 0.8em;
          letter-spacing: 0.2em;
          margin-left: 0.2em;
      }
      
    • You will need to download fontawesome-*.zip and place css/fontawesome-all.css and webfonts/* into _static/ (See also Hosting Font Awesome Yourself).
  • tests/backgroundimage/: (demo)

    An example of the usage of css with .external class and background-image attribute. This is inspired by the method Wikipedia employs.

    • In conf.py
      extensions += ['sphinxcontrib.linkattr']
      
    • In _static/custom.css
      .external {
          background-image: url(external_link.svg);
          background-position: center right;
          background-repeat: no-repeat;
          background-size:   16px, 16px;
          padding-right:     16px;
      }
      
    • You will need to place an image file as _static/external_link.svg.

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinxcontrib-linkattr-0.2.2.tar.gz (5.1 kB view hashes)

Uploaded Source

Built Distribution

sphinxcontrib_linkattr-0.2.2-py3-none-any.whl (5.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page