mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-08-28 17:39:57 +02:00
Merged upstream/master
This commit is contained in:
12
Readme.md
12
Readme.md
@@ -14,7 +14,7 @@
|
||||
<a href="#principles"><strong>Principles</strong></a> ·
|
||||
<a href="http://slatejs.org"><strong>Demo</strong></a> ·
|
||||
<a href="#examples"><strong>Examples</strong></a> ·
|
||||
<a href="#plugins"><strong>Plugins</strong></a> ·
|
||||
<a href="./docs/general/plugins.md"><strong>Plugins</strong></a> ·
|
||||
<a href="http://docs.slatejs.org"><strong>Documentation</strong></a> ·
|
||||
<a href="./Contributing.md"><strong>Contributing!</strong></a>
|
||||
</p>
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.npmjs.com/package/slate">
|
||||
<img src="https://img.shields.io/npm/dt/localeval.svg?maxAge=2592000">
|
||||
<img src="https://img.shields.io/npm/dt/localeval.svg?maxAge=3600">
|
||||
</a>
|
||||
<a href="https://unpkg.com/slate/dist/slate.min.js">
|
||||
<img src="http://img.badgesize.io/https://unpkg.com/slate/dist/slate.min.js?compression=gzip&label=slate">
|
||||
@@ -41,13 +41,13 @@
|
||||
<img src="https://slate-slack.herokuapp.com/badge.svg">
|
||||
<a/>
|
||||
<a href="./packages/slate/package.json">
|
||||
<img src="https://img.shields.io/npm/v/slate.svg?maxAge=2592000&label=slate&colorB=007ec6">
|
||||
<img src="https://img.shields.io/npm/v/slate.svg?maxAge=3600&label=slate&colorB=007ec6">
|
||||
</a>
|
||||
<a href="./packages/slate-react/package.json">
|
||||
<img src="https://img.shields.io/npm/v/slate-react.svg?maxAge=2592000&label=slate-react&colorB=007ec6">
|
||||
<img src="https://img.shields.io/npm/v/slate-react.svg?maxAge=3600&label=slate-react&colorB=007ec6">
|
||||
</a>
|
||||
<a href="./License.md">
|
||||
<img src="https://img.shields.io/npm/l/slate.svg?maxAge=2592000">
|
||||
<img src="https://img.shields.io/npm/l/slate.svg?maxAge=3600">
|
||||
</a>
|
||||
</p>
|
||||
<br/>
|
||||
@@ -153,7 +153,7 @@ Slate encourages you to write small, reusable modules. Check out the public ones
|
||||
- [`slate-prism`](https://github.com/GitbookIO/slate-prism) highlights code blocks with [Prism.js](http://prismjs.com/)!
|
||||
- [`slate-soft-break`](https://github.com/ianstormtaylor/slate-soft-break) adds a soft break when `enter` is pressed.
|
||||
- [`slate-drop-or-paste-images`](https://github.com/ianstormtaylor/slate-drop-or-paste-images) lets users drop or paste images to insert them!
|
||||
- [**See all the plugins...**](https://yarnpkg.com/en/packages?q=slate)
|
||||
- [**See all the plugins...**](./docs/general/plugins.md)
|
||||
|
||||
|
||||
<br/>
|
||||
|
@@ -93,7 +93,7 @@ Slate encourages you to write small, reusable modules. Check out the public ones
|
||||
- [`slate-prism`](https://github.com/GitbookIO/slate-prism) highlights code blocks with [Prism.js](http://prismjs.com/)!
|
||||
- [`slate-soft-break`](https://github.com/ianstormtaylor/slate-soft-break) adds a soft break when `enter` is pressed.
|
||||
- [`slate-drop-or-paste-images`](https://github.com/ianstormtaylor/slate-drop-or-paste-images) lets users drop or paste images to insert them!
|
||||
- [**View all plugins on `npm`...**](https://www.npmjs.com/browse/keyword/slate)
|
||||
- [**View all plugins...**](https://github.com/ianstormtaylor/slate/blob/master/docs/general/plugins.md)
|
||||
|
||||
|
||||
## Documentation
|
||||
|
@@ -24,6 +24,7 @@
|
||||
|
||||
## General
|
||||
|
||||
- [Plugins](./general/plugins.md)
|
||||
- [Resources](./general/resources.md)
|
||||
- [Contributing](../Contributing.md)
|
||||
- [Changelog](../Changelog.md)
|
||||
|
58
docs/general/plugins.md
Normal file
58
docs/general/plugins.md
Normal file
@@ -0,0 +1,58 @@
|
||||
|
||||
# Plugins
|
||||
|
||||
Here's a list of Slate plugins, organized by category, so that they're easier to find than searching NPM or Yarn.
|
||||
|
||||
|
||||
### Behavior
|
||||
|
||||
Plugins that add specific behaviors to your editor.
|
||||
|
||||
|**Plugin**|**Description**|**Downloads**|
|
||||
|---|---|---|
|
||||
|[`slate-auto-replace`](https://yarnpkg.com/en/package/slate-auto-replace)|Automatically transform certain input as a user types.||
|
||||
|[`slate-collapse-on-escape`](https://yarnpkg.com/en/package/slate-collapse-on-escape)|Collapse the selection when users hit <kbd>esc</kbd>.||
|
||||
|[`slate-drop-or-paste-images`](https://yarnpkg.com/en/package/slate-drop-or-paste-images)|Allows users to insert images by drag-dropping or copy-pasting.||
|
||||
|[`slate-edit-blockquote`](https://yarnpkg.com/en/package/slate-edit-blockquote)|Adds blockquote editing behaviors to an editor.||
|
||||
|[`slate-edit-code`](https://yarnpkg.com/en/package/slate-edit-code)|Adds code block editing behaviors to an editor.||
|
||||
|[`slate-edit-footnote`](https://yarnpkg.com/en/package/slate-edit-footnote)|Adds footnote editing behaviors to an editor.||
|
||||
|[`slate-edit-list`](https://yarnpkg.com/en/package/slate-edit-list)|Adds list editing behaviors to an editor.||
|
||||
|[`slate-edit-table`](https://yarnpkg.com/en/package/slate-edit-table)|Adds common table editing behaviors to an editor.||
|
||||
|[`slate-mentions`](https://yarnpkg.com/en/package/slate-mentions)|Adds mentions like Facebook's to an editor.||
|
||||
|[`slate-no-empty`](https://yarnpkg.com/en/package/slate-no-empty)|Prevents documents from being empty.||
|
||||
|[`slate-paste-linkify`](https://yarnpkg.com/en/package/slate-paste-linkify)|Automatically linkify URLs when they are pasted.||
|
||||
|[`slate-soft-break`](https://yarnpkg.com/en/package/slate-soft-break)|Adds soft breaks when users hit <kbd>enter</kbd>.||
|
||||
|[`slate-sticky-inlines`](https://yarnpkg.com/en/package/slate-sticky-inlines)|Changes the inline node behavior to allow editing at the edges.||
|
||||
|[`slate-suggestions`](https://yarnpkg.com/en/package/slate-suggestions)|Displays inline auto-completed suggestions.||
|
||||
|[`slate-trailing-block`](https://yarnpkg.com/en/package/slate-trailing-block)|Ensure that documents end in a specific kind of block.||
|
||||
|
||||
|
||||
### Components
|
||||
|
||||
Components for building Slate editors.
|
||||
|
||||
|**Plugin**|**Description**|**Downloads**|
|
||||
|---|---|---|
|
||||
|[`slate-editor-icons`](https://yarnpkg.com/en/package/slate-editor-icons)|A set of icons for using in toolbars, etc.||
|
||||
|
||||
|
||||
### Serializers
|
||||
|
||||
Serializers for handling Slate data.
|
||||
|
||||
|**Plugin**|**Description**|**Downloads**|
|
||||
|---|---|---|
|
||||
|[`slate-base64-serializer`](https://yarnpkg.com/en/package/slate-base64-serializer)|A base64 string serializer for Slate documents.||
|
||||
|[`slate-html-serializer`](https://yarnpkg.com/en/package/slate-html-serializer)|An HTML serializer for Slate documents.||
|
||||
|[`slate-plain-serializer`](https://yarnpkg.com/en/package/slate-plain-serializer)|A plain text serializer for Slate documents.||
|
||||
|
||||
|
||||
### Utils
|
||||
|
||||
Useful utilities when working with Slate documents and components.
|
||||
|
||||
|**Plugin**|**Description**|**Downloads**|
|
||||
|---|---|---|
|
||||
|[`slate-hyperprint`](https://yarnpkg.com/en/package/slate-hyperprint)|Prints Slate documents in their `slate-hyperscript` format.||
|
||||
|[`slate-hyperscript`](https://yarnpkg.com/en/package/slate-hyperscript)|Allows you to express Slate documents in JSX.||
|
||||
|[`slate-prop-types`](https://yarnpkg.com/en/package/slate-prop-types)|A set of prop types to use in your Slate components.||
|
@@ -6,6 +6,7 @@ import React from 'react'
|
||||
import getWindow from 'get-window'
|
||||
import { Block, Inline, Text } from 'slate'
|
||||
|
||||
import { IS_IOS } from '../constants/environment'
|
||||
import EVENT_HANDLERS from '../constants/event-handlers'
|
||||
import HOTKEYS from '../constants/hotkeys'
|
||||
import Content from '../components/content'
|
||||
@@ -362,17 +363,20 @@ function AfterPlugin() {
|
||||
|
||||
const { value } = change
|
||||
|
||||
if (HOTKEYS.SPLIT_BLOCK(event)) {
|
||||
// COMPAT: In iOS, some of these hotkeys are handled in the
|
||||
// `onNativeBeforeInput` handler of the `<Content>` component in order to
|
||||
// preserve native autocorrect behavior, so they shouldn't be handled here.
|
||||
if (HOTKEYS.SPLIT_BLOCK(event) && !IS_IOS) {
|
||||
return value.isInVoid
|
||||
? change.collapseToStartOfNextText()
|
||||
: change.splitBlock()
|
||||
}
|
||||
|
||||
if (HOTKEYS.DELETE_CHAR_BACKWARD(event)) {
|
||||
if (HOTKEYS.DELETE_CHAR_BACKWARD(event) && !IS_IOS) {
|
||||
return change.deleteCharBackward()
|
||||
}
|
||||
|
||||
if (HOTKEYS.DELETE_CHAR_FORWARD(event)) {
|
||||
if (HOTKEYS.DELETE_CHAR_FORWARD(event) && !IS_IOS) {
|
||||
return change.deleteCharForward()
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user