Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alwaysblank/plumbing-normalize-links
https://github.com/alwaysblank/plumbing-normalize-links
hacktoberfest
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/alwaysblank/plumbing-normalize-links
- Owner: alwaysblank
- Created: 2020-10-02T20:44:41.000Z (about 4 years ago)
- Default Branch: dev
- Last Pushed: 2021-05-21T14:17:22.000Z (over 3 years ago)
- Last Synced: 2024-08-03T13:03:51.320Z (3 months ago)
- Topics: hacktoberfest
- Language: PHP
- Homepage:
- Size: 27.3 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
Awesome Lists containing this project
README
= Normalize Links
image:https://travis-ci.org/alwaysblank/plumbing-normalize-links.svg?branch=dev["Build Status", link="https://travis-ci.org/alwaysblank/plumbing-normalize-links"]
The purpose of this small package is to ingest the link arrays produced by https://www.advancedcustomfields.com/resources/link/[ACF's "link" field type], do a bit of logic on them, and provide a nice interface for interacting with that data.
It can also accept urls as plain strings.== Usage
.ACF field
[source,php]
----
$Link = new Normalized(get_field('some_link'));$Link->valid(); //whether or not this is a "valid" link
$Link->url(); // the URL of the link
$Link->label(); // the "title" set for this link
$Link->newTab(); // whether this link should be opened in a new tab
$Link->probablyExternal() // if the link is (probably) external or not
----.Simple string
[source,php]
----
$Link = new Normalized('https://www.alwaysblank.org');
----=== Settings
A small number of settings are also supported, which can be passed when instantiated.
[source,php]
----
$Link = new Normalized(get_field('some_link'), [
'label' => "Learn More", // Used as a fallback if there is no `title.`
'external_in_new_tab' => true, // Always open external links in new tab
'validate' => [
'url' => false,
'label' => false,
], // Validate url and/or label
]);
----`label` defaults to "Learn More" and `external_in_new_tab` defaults to `true`.
`validate` defaults to _not_ validating inputs.
You can specify which items (`url` or `label`) to validated, or set `validate` to `true` to validate all items.