Link

A link directive generates a user interface in Livingdocs to enter a link or select a document reference. It can only be defined on <a> tags. If you want to set a link on an image for example, just wrap the <img> tag in an <a> tag and add a doc-link directive on the <a> tag.

If you select a link by document reference, the shown search dashboard is the same as for Inline Links

Example

{
  name: 'web-teaser',
  label: 'Web Teaser',
  iconUrl: 'https://livingdocsio.github.io/livingdocs-design-assets/docs/icons/component-icons/icon_component_teaser_with_image.svg',
  directives: [
    {
      name: 'link',
      type: 'link',
      prefill: { // optional
        title: {key: 'title', provider: 'iframely'},
        site: {key: 'site', provider: 'iframely'},
        headline: {key: 'author', provider: 'iframely'},
        image: {key: 'image', provider: 'iframely'}
      }
    },
    {
      name: 'image',
      type: 'image',
      imageRatios: ['16:9'],
      allowOriginalRatio: false
    }
  ],
  html: dedent`
    <div class="teaser">
      <a doc-link="link">
        <div class="teaser__image container image-container" doc-image="image">
          <div class="image--overlay"></div>
        </div>
        <div class="teaser__text">
          <div>
            <h3><span doc-editable="headline">Headline</span> <span class="source" doc-editable="site">Source</span></h3>
          </div>
          <h2 doc-editable="title">Title</h2>
        </div>
      </a>
    </div>
  `
}

Config Options

The only (optional) config option is prefill. This works in tandem with the service Iframely and allows you to prefill other directives (e.g. text) in the same component with metadata fetched from the provided link (through the Iframely service). The example above uses the prefill option to render a teaser that works simply by linking any article from the web (e.g. a NYT article). What Iframely does in a nutshell is parsing the head section of a linked HTML page (the content of doc-link) for meta tags.

The only supported provider is iframely. The possible fields are:

  • title
  • site
  • author
  • image
  • description
  • host
  • icon
  • thumbnail