0.3.0 • Published 3 years ago

ember-custom-link v0.3.0

Weekly downloads
1
License
MIT
Repository
github
Last release
3 years ago

ember-custom-link

Purpose

ember-custom-link is an Ember addon which allows you to pass attributes to the ember-custom-link component that determine whether the component is an internal link, using {{#link-to}}, or an external link using href.

Usage

Compatibility

  • Ember.js v3.16 or above
  • Ember CLI v2.13 or above
  • Node.js v10 or above

Installation

It may be combined with a custom Ember helper that you would make such as this:

app\helpers\is-hyperlink-component.js

import { helper } from '@ember/component/helper';

export function isHyperlinkComponent([key]) {
  if (key === "custom-link") return "ember-custom-link";
}

export default helper(isHyperlinkComponent);

Which is then combined with the helper in a parent component such as this:

app\templates\components\open-pr-body.hbs

  {{#each data.copyPreview as |paragraph|}}
    <p>
      {{#each paragraph as |paragraph|}}
        {{#each-in paragraph as |key value|}}
          {{#if (is-hyperlink-component key value)}} {{!-- THE NEXT THREE LINES ARE THE SIGNIFICANT PORTION --}}
            {{component key data=value}}
          {{/if}}
        {{/each-in}}
      {{/each}}
    </p>
  {{/each}}

Or it can be used on it's own with its required attributes being passed as properties.

Possible attributes

  • class -> Is assumed to be false unless specifically assigned a CSS class or classes, such as: class: "italicized-text".
  • hasTarget -> Should be true unless there is no desire to open a linked document, such as "mailto".
  • href -> To be included if your link is external and is a String representing the href attribute you want in your template.
  • linkTo -> To be included if your link is internal and is a String representing the link-to route you want in your template.
  • isFollowedBy -> Should be false unless you want a character such as , or . to immediately follow your custom link.
  • text -> A String representing the actual hypertext you want to appear on the page.

A few data examples

Internal link using the {{#link-to}} component with hypertext followed by whitespace and styled using a CSS class "italicized-text"

{
    "custom-link": {
        class: "italicized-text",
        hasTarget: true,
        linkTo: "index",
        isFollowedBy: false,
        text: "THIS IS MY SITE NAME"
    }
}

External link followed by whitespace

{
    "custom-link": {
        hasTarget: true,
        href: "https://www.<SITENAME>.com",
        isFollowedBy: false,
        text: "THIS IS MY SITE NAME"
    }
}

External link followed by a comman and then whitespace

{
    "custom-link": {
        hasTarget: true,
        href: "https://www.<SITENAME>.com",
        isFollowedBy: ",",
        text: "THIS IS MY SITE NAME"
    }
}

Example of using mailto: requiring hasTarget: false

{
    "custom-link": {
        hasTarget: false,
        href: "mailto:myName@mySite.com",
        isFollowedBy: false,
        text: "myName@mySite.com"
    }
}

Installation

ember install ember-custom-link

Contributing

Installation

  • git clone <repository-url>
  • cd ember-custom-link
  • npm install

Linting

  • npm run lint:js
  • npm run lint:js -- --fix

Running tests

  • ember test – Runs the test suite on the current Ember version
  • ember test --server – Runs the test suite in "watch mode"
  • ember try:each – Runs the test suite against multiple Ember versions

Running the dummy application

License

This project is licensed under the MIT License.

0.3.0

3 years ago

0.2.4

3 years ago

0.2.3

4 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.0

5 years ago