From e09a35bb3023943e35559d94cf6ac8f28533e599 Mon Sep 17 00:00:00 2001 From: Sauli Anto Date: Thu, 3 Oct 2019 18:36:34 +0300 Subject: [PATCH] Update readme and add screenshots --- README.md | 72 +++++++++++++++++++++++++++++++++++++--------- screenshots/1.png | Bin 0 -> 11247 bytes screenshots/2.png | Bin 0 -> 16645 bytes 3 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 screenshots/1.png create mode 100644 screenshots/2.png diff --git a/README.md b/README.md index 6e411ade1..7e6886d86 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,46 @@ This is the best* TeX-based mathematical plugin for CKEditor 5. You can use it to insert, edit and view mathematical equation and formulas. This plugin supports MathJax, KaTeX and custom typesetting engines. +## Table of contents +- [Features](#features) +- [Screenshots](#screenshots) +- [Examples](#examples) +- [Installation](#installation) + * [Styles for Lark theme](#styles-for-lark-theme) + * [Styles](#styles) +- [Configuration & Usage](#configuration---usage) + * [Plugin options](#plugin-options) + * [Available typesetting engines](#available-typesetting-engines) + * [Supported input and output formats](#supported-input-and-output-formats) +- [Paste support](#paste-support) + * [From plain text](#from-plain-text) + * [From Microsoft Word](#from-microsoft-word) +- [Preview workaround](#preview-workaround) +- [Todo](#todo) + +## Features +- TeX syntax +- Inline and display equations +- Preview view +- Multiple typesetting engines +- Have multiple input and output format +- Paste support + - from plain text + - from Microsoft Word + +## Screenshots +![Screenshot 1](/screenshots/1.png?raw=true "Screenshot 1") + +![Screenshot 2](/screenshots/2.png?raw=true "Screenshot 2") + ## Examples [Link to examples repository](https://github.com/isaul32/ckeditor5-math-examples) ## Installation +Use official classic or inline build as a base: +- [CKEditor 5 classic editor build](https://github.com/ckeditor/ckeditor5-build-classic) +- [CKEditor 5 inline editor build](https://github.com/ckeditor/ckeditor5-build-inline) + Install plugin with NPM or Yarn `npm install ckeditor5-math --save-dev` @@ -37,12 +73,12 @@ InlineEditor.defaultConfig = { } }; ``` -### Copying plugin's theme for Lark -Copy __theme/ckeditor5-math__ folder from [https://github.com/isaul32/ckeditor5-theme-lark](https://github.com/isaul32/ckeditor5-theme-lark) to your lark theme repository fork or install +### Styles for Lark theme +Copy __theme/ckeditor5-math__ folder from [https://github.com/isaul32/ckeditor5-theme-lark](https://github.com/isaul32/ckeditor5-theme-lark) to your lark theme repository or install + `npm install @ckeditor/ckeditor5-theme-lark@https://github.com/isaul32/ckeditor5-theme-lark --save-dev` -### Styles -Styles requires PostCSS like offical CKEditor plugins. +Styles requires PostCSS like official CKEditor 5 plugins. ## Configuration & Usage @@ -61,14 +97,19 @@ InlineEditor.defaultConfig = { ### Available typesetting engines __MathJax__ -- Tested by using version __2.7.5__ and __TeX-MML-AM_HTMLorMML__ configuration. It has also experimental (__CHTML__, __SVG__) support for __3.0.0__ or newer version. +- Tested by using version __latest 2.7__. +- Also has experimental (__CHTML__, __SVG__) support for __3.0.0__ or newer version. - Use __\\( \\)__ delimiters for inline and __\\[ \\]__ delimiters for display +[KaTeX](https://www.mathjax.org/) + __KaTeX__ - Tested by using version __0.11.0__ -- Doesn't support preview feature because __.ck-reset_all *__ css rules from ckeditor5-ui and ckeditor5-theme-lark breaks it. -__Custom__ +[KaTeX](https://katex.org/) + +__Custom typesetting__ + It's possible to implement with engine config. For example, this feature can be used when use back end rendering. ```js InlineEditor.defaultConfig = { @@ -100,16 +141,17 @@ Supported input and output formats are: ### Paste support -#### Plain TeX paste -Paste equations with __delimiters__. For example: +#### From plain text +Paste TeX equations with __delimiters__. For example: __\\[__ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} __\\]__ or __\\(__ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} __\\)__ -#### Paste support from Microsoft Word -Use [__paste from office__](https://github.com/isaul32/ckeditor5-paste-from-office) fork instead of offical. +#### From Microsoft Word +Use [__paste from office__](https://github.com/isaul32/ckeditor5-paste-from-office) fork instead of official. This feature is __experimental__ and might not work always (look source code). Install paste from office fork + `npm install @ckeditor/ckeditor5-paste-from-office@github:isaul32/ckeditor5-paste-from-office --save-dev` ```js @@ -123,10 +165,14 @@ InlineEditor.builtinPlugins = [ ]; ``` +## Preview workaround +__.ck-reset_all *__ css rules from ckeditor5-ui and ckeditor5-theme-lark break rendering in preview mode. + +My solution for this is use rendering element outside of CKEditor DOM and place it right place by using absolute position. Alternative solution could be using iframe, but then we have to copy typesetting engine's scripts and styles to child document. + ## Todo -- Fix KaTex preview - MathML input and output when using MathJax version 3 - Make tests -[*] at least in my opinion +[*] at least in my opinion 😄 diff --git a/screenshots/1.png b/screenshots/1.png new file mode 100644 index 0000000000000000000000000000000000000000..610689a5217577148f9dc40a532e2b04b0348b29 GIT binary patch literal 11247 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 literal 0 HcmV?d00001