
Security News
New CVE Forecasting Tool Predicts 47,000 Disclosures in 2025
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.
@mercuriya/slate-linkify
Advanced tools
A Slate plugin that replaces pasted URLs with an anchor tags.
Plugin transforms typed or pasted hyperlinks into an anchor tags.
yarn add @mercuriya/slate-linkify
npm install @mercuriya/slate-linkify --save
In your file with Slate
component:
import React from 'react';
import { createEditor } from 'slate';
import { Slate, Editable, useSlateStatic, withReact } from 'slate-react';
import { onKeyDown as linkifyOnKeyDown, withLinkify } from '@mercuriya/slate-linkify';
import Link from '@material-ui/core/Link';
export default function EditorComponent(props) {
const [value, setValue] = useState([ /* some initial state here */ ]);
const editor = useMemo(
() =>
withLinkify(withReact(createEditor()), {
// slate-linkify options
renderComponent: props => <Link {...props} />,
}),
[],
);
const renderElement = useCallback(props => <Element {...props} />, []);
const onKeyDown = useCallback(function handleKeyDown(event) {
linkifyOnKeyDown(event, editor);
}, []);
return (
<Slate editor={editor} value={value} onChange={value => setValue(value)}>
<Editable renderElement={renderElement} onKeyDown={onKeyDown} />
</Slate>
);
}
const Element = ({ attributes, children, element }) => {
const editor = useSlateStatic();
switch (element.type) {
case 'link':
// ❗️ this part is required
return editor.linkElementType({ attributes, children, element });
default:
return <p {...attributes}>{children}</p>;
}
};
This plugin inspired by amazing draft-js-linkify-plugin
and slate plugins official
examples. It allows user to create links while typing or pasting without any additional
manipulations.
It has issues, like: it doesn't know if remote site should use https
or not. For example in cases like: typing...typing... google.com continue typing...
.
It is also ignores html
pastes, because, in my opinion, they should be handled by
other plugins, as official paste-html
example does.
Please, see stories for more usage examples.
Name | Type | Description |
---|---|---|
target? (default: _blank ) | string | An anchor target property |
rel? (default: noreferrer noopener ) | string | An anchor rel property |
className? | string | An anchor custom class name |
renderComponent? | args => React.ReactNode | A render function that allows you to use a custom link component with props you need |
FAQs
A Slate plugin that replaces pasted URLs with an anchor tags.
The npm package @mercuriya/slate-linkify receives a total of 430 weekly downloads. As such, @mercuriya/slate-linkify popularity was classified as not popular.
We found that @mercuriya/slate-linkify demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.