mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-25 03:06:31 -05:00
Support experimental spell checking feature (en-US only), can be enabled by the YAML meta option
This commit is contained in:
parent
692903f1a1
commit
0fb70a1487
8 changed files with 49151 additions and 0 deletions
|
@ -84,12 +84,14 @@ function parseMeta(md, edit, view, toc, tocAffix) {
|
||||||
var lang = null;
|
var lang = null;
|
||||||
var dir = null;
|
var dir = null;
|
||||||
var breaks = true;
|
var breaks = true;
|
||||||
|
var spellcheck = false;
|
||||||
if (md && md.meta) {
|
if (md && md.meta) {
|
||||||
var meta = md.meta;
|
var meta = md.meta;
|
||||||
robots = meta.robots;
|
robots = meta.robots;
|
||||||
lang = meta.lang;
|
lang = meta.lang;
|
||||||
dir = meta.dir;
|
dir = meta.dir;
|
||||||
breaks = meta.breaks;
|
breaks = meta.breaks;
|
||||||
|
spellcheck = meta.spellcheck;
|
||||||
}
|
}
|
||||||
//robots meta
|
//robots meta
|
||||||
var robotsMeta = $('meta[name=robots]');
|
var robotsMeta = $('meta[name=robots]');
|
||||||
|
@ -131,6 +133,18 @@ function parseMeta(md, edit, view, toc, tocAffix) {
|
||||||
} else {
|
} else {
|
||||||
md.options.breaks = true;
|
md.options.breaks = true;
|
||||||
}
|
}
|
||||||
|
// spell check
|
||||||
|
if (typeof editor === 'object') {
|
||||||
|
var mode = null;
|
||||||
|
if (typeof spellcheck === 'boolean' && spellcheck) {
|
||||||
|
mode = 'spell-checker';
|
||||||
|
} else {
|
||||||
|
mode = 'gfm';
|
||||||
|
}
|
||||||
|
if (mode && mode !== editor.getOption('mode')) {
|
||||||
|
editor.setOption('mode', mode);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var viewAjaxCallback = null;
|
var viewAjaxCallback = null;
|
||||||
|
|
|
@ -253,6 +253,7 @@ var textit = document.getElementById("textit");
|
||||||
if (!textit) throw new Error("There was no textit area!");
|
if (!textit) throw new Error("There was no textit area!");
|
||||||
var editor = CodeMirror.fromTextArea(textit, {
|
var editor = CodeMirror.fromTextArea(textit, {
|
||||||
mode: 'gfm',
|
mode: 'gfm',
|
||||||
|
backdrop: 'gfm',
|
||||||
keyMap: "sublime",
|
keyMap: "sublime",
|
||||||
viewportMargin: viewportMargin,
|
viewportMargin: viewportMargin,
|
||||||
styleActiveLine: true,
|
styleActiveLine: true,
|
||||||
|
|
205
public/vendor/codemirror-spell-checker/en_US.aff
vendored
Normal file
205
public/vendor/codemirror-spell-checker/en_US.aff
vendored
Normal file
|
@ -0,0 +1,205 @@
|
||||||
|
SET UTF-8
|
||||||
|
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
|
||||||
|
ICONV 1
|
||||||
|
ICONV ’ '
|
||||||
|
NOSUGGEST !
|
||||||
|
|
||||||
|
# ordinal numbers
|
||||||
|
COMPOUNDMIN 1
|
||||||
|
# only in compounds: 1th, 2th, 3th
|
||||||
|
ONLYINCOMPOUND c
|
||||||
|
# compound rules:
|
||||||
|
# 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
|
||||||
|
# 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
|
||||||
|
COMPOUNDRULE 2
|
||||||
|
COMPOUNDRULE n*1t
|
||||||
|
COMPOUNDRULE n*mp
|
||||||
|
WORDCHARS 0123456789
|
||||||
|
|
||||||
|
PFX A Y 1
|
||||||
|
PFX A 0 re .
|
||||||
|
|
||||||
|
PFX I Y 1
|
||||||
|
PFX I 0 in .
|
||||||
|
|
||||||
|
PFX U Y 1
|
||||||
|
PFX U 0 un .
|
||||||
|
|
||||||
|
PFX C Y 1
|
||||||
|
PFX C 0 de .
|
||||||
|
|
||||||
|
PFX E Y 1
|
||||||
|
PFX E 0 dis .
|
||||||
|
|
||||||
|
PFX F Y 1
|
||||||
|
PFX F 0 con .
|
||||||
|
|
||||||
|
PFX K Y 1
|
||||||
|
PFX K 0 pro .
|
||||||
|
|
||||||
|
SFX V N 2
|
||||||
|
SFX V e ive e
|
||||||
|
SFX V 0 ive [^e]
|
||||||
|
|
||||||
|
SFX N Y 3
|
||||||
|
SFX N e ion e
|
||||||
|
SFX N y ication y
|
||||||
|
SFX N 0 en [^ey]
|
||||||
|
|
||||||
|
SFX X Y 3
|
||||||
|
SFX X e ions e
|
||||||
|
SFX X y ications y
|
||||||
|
SFX X 0 ens [^ey]
|
||||||
|
|
||||||
|
SFX H N 2
|
||||||
|
SFX H y ieth y
|
||||||
|
SFX H 0 th [^y]
|
||||||
|
|
||||||
|
SFX Y Y 1
|
||||||
|
SFX Y 0 ly .
|
||||||
|
|
||||||
|
SFX G Y 2
|
||||||
|
SFX G e ing e
|
||||||
|
SFX G 0 ing [^e]
|
||||||
|
|
||||||
|
SFX J Y 2
|
||||||
|
SFX J e ings e
|
||||||
|
SFX J 0 ings [^e]
|
||||||
|
|
||||||
|
SFX D Y 4
|
||||||
|
SFX D 0 d e
|
||||||
|
SFX D y ied [^aeiou]y
|
||||||
|
SFX D 0 ed [^ey]
|
||||||
|
SFX D 0 ed [aeiou]y
|
||||||
|
|
||||||
|
SFX T N 4
|
||||||
|
SFX T 0 st e
|
||||||
|
SFX T y iest [^aeiou]y
|
||||||
|
SFX T 0 est [aeiou]y
|
||||||
|
SFX T 0 est [^ey]
|
||||||
|
|
||||||
|
SFX R Y 4
|
||||||
|
SFX R 0 r e
|
||||||
|
SFX R y ier [^aeiou]y
|
||||||
|
SFX R 0 er [aeiou]y
|
||||||
|
SFX R 0 er [^ey]
|
||||||
|
|
||||||
|
SFX Z Y 4
|
||||||
|
SFX Z 0 rs e
|
||||||
|
SFX Z y iers [^aeiou]y
|
||||||
|
SFX Z 0 ers [aeiou]y
|
||||||
|
SFX Z 0 ers [^ey]
|
||||||
|
|
||||||
|
SFX S Y 4
|
||||||
|
SFX S y ies [^aeiou]y
|
||||||
|
SFX S 0 s [aeiou]y
|
||||||
|
SFX S 0 es [sxzh]
|
||||||
|
SFX S 0 s [^sxzhy]
|
||||||
|
|
||||||
|
SFX P Y 3
|
||||||
|
SFX P y iness [^aeiou]y
|
||||||
|
SFX P 0 ness [aeiou]y
|
||||||
|
SFX P 0 ness [^y]
|
||||||
|
|
||||||
|
SFX M Y 1
|
||||||
|
SFX M 0 's .
|
||||||
|
|
||||||
|
SFX B Y 3
|
||||||
|
SFX B 0 able [^aeiou]
|
||||||
|
SFX B 0 able ee
|
||||||
|
SFX B e able [^aeiou]e
|
||||||
|
|
||||||
|
SFX L Y 1
|
||||||
|
SFX L 0 ment .
|
||||||
|
|
||||||
|
REP 90
|
||||||
|
REP a ei
|
||||||
|
REP ei a
|
||||||
|
REP a ey
|
||||||
|
REP ey a
|
||||||
|
REP ai ie
|
||||||
|
REP ie ai
|
||||||
|
REP alot a_lot
|
||||||
|
REP are air
|
||||||
|
REP are ear
|
||||||
|
REP are eir
|
||||||
|
REP air are
|
||||||
|
REP air ere
|
||||||
|
REP ere air
|
||||||
|
REP ere ear
|
||||||
|
REP ere eir
|
||||||
|
REP ear are
|
||||||
|
REP ear air
|
||||||
|
REP ear ere
|
||||||
|
REP eir are
|
||||||
|
REP eir ere
|
||||||
|
REP ch te
|
||||||
|
REP te ch
|
||||||
|
REP ch ti
|
||||||
|
REP ti ch
|
||||||
|
REP ch tu
|
||||||
|
REP tu ch
|
||||||
|
REP ch s
|
||||||
|
REP s ch
|
||||||
|
REP ch k
|
||||||
|
REP k ch
|
||||||
|
REP f ph
|
||||||
|
REP ph f
|
||||||
|
REP gh f
|
||||||
|
REP f gh
|
||||||
|
REP i igh
|
||||||
|
REP igh i
|
||||||
|
REP i uy
|
||||||
|
REP uy i
|
||||||
|
REP i ee
|
||||||
|
REP ee i
|
||||||
|
REP j di
|
||||||
|
REP di j
|
||||||
|
REP j gg
|
||||||
|
REP gg j
|
||||||
|
REP j ge
|
||||||
|
REP ge j
|
||||||
|
REP s ti
|
||||||
|
REP ti s
|
||||||
|
REP s ci
|
||||||
|
REP ci s
|
||||||
|
REP k cc
|
||||||
|
REP cc k
|
||||||
|
REP k qu
|
||||||
|
REP qu k
|
||||||
|
REP kw qu
|
||||||
|
REP o eau
|
||||||
|
REP eau o
|
||||||
|
REP o ew
|
||||||
|
REP ew o
|
||||||
|
REP oo ew
|
||||||
|
REP ew oo
|
||||||
|
REP ew ui
|
||||||
|
REP ui ew
|
||||||
|
REP oo ui
|
||||||
|
REP ui oo
|
||||||
|
REP ew u
|
||||||
|
REP u ew
|
||||||
|
REP oo u
|
||||||
|
REP u oo
|
||||||
|
REP u oe
|
||||||
|
REP oe u
|
||||||
|
REP u ieu
|
||||||
|
REP ieu u
|
||||||
|
REP ue ew
|
||||||
|
REP ew ue
|
||||||
|
REP uff ough
|
||||||
|
REP oo ieu
|
||||||
|
REP ieu oo
|
||||||
|
REP ier ear
|
||||||
|
REP ear ier
|
||||||
|
REP ear air
|
||||||
|
REP air ear
|
||||||
|
REP w qu
|
||||||
|
REP qu w
|
||||||
|
REP z ss
|
||||||
|
REP ss z
|
||||||
|
REP shun tion
|
||||||
|
REP shun sion
|
||||||
|
REP shun cion
|
||||||
|
REP size cise
|
48915
public/vendor/codemirror-spell-checker/en_US.dic
vendored
Normal file
48915
public/vendor/codemirror-spell-checker/en_US.dic
vendored
Normal file
File diff suppressed because it is too large
Load diff
7
public/vendor/codemirror-spell-checker/spell-checker.min.css
vendored
Normal file
7
public/vendor/codemirror-spell-checker/spell-checker.min.css
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
/**
|
||||||
|
* codemirror-spell-checker v1.0.6
|
||||||
|
* Copyright Next Step Webs, Inc.
|
||||||
|
* @link https://github.com/NextStepWebs/codemirror-spell-checker
|
||||||
|
* @license MIT
|
||||||
|
*/
|
||||||
|
.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){border-bottom:1px dashed rgba(255,0,0,.8)}
|
7
public/vendor/codemirror-spell-checker/spell-checker.min.js
vendored
Normal file
7
public/vendor/codemirror-spell-checker/spell-checker.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -31,6 +31,7 @@
|
||||||
<script src="<%- url %>/vendor/codemirror/codemirror.min.js" defer></script>
|
<script src="<%- url %>/vendor/codemirror/codemirror.min.js" defer></script>
|
||||||
<script src="<%- url %>/vendor/inlineAttachment/inline-attachment.js" defer></script>
|
<script src="<%- url %>/vendor/inlineAttachment/inline-attachment.js" defer></script>
|
||||||
<script src="<%- url %>/vendor/inlineAttachment/codemirror.inline-attachment.js" defer></script>
|
<script src="<%- url %>/vendor/inlineAttachment/codemirror.inline-attachment.js" defer></script>
|
||||||
|
<script src="<%- url %>/vendor/codemirror-spell-checker/spell-checker.min.js" defer></script>
|
||||||
<!--ot-->
|
<!--ot-->
|
||||||
<script src="<%- url %>/vendor/ot/ot.min.js" defer></script>
|
<script src="<%- url %>/vendor/ot/ot.min.js" defer></script>
|
||||||
<!--others-->
|
<!--others-->
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
<% } %>
|
<% } %>
|
||||||
<link rel="stylesheet" href="<%- url %>/vendor/jquery-ui/jquery-ui.min.css">
|
<link rel="stylesheet" href="<%- url %>/vendor/jquery-ui/jquery-ui.min.css">
|
||||||
<link rel="stylesheet" href="<%- url %>/vendor/codemirror/lib/codemirror.css">
|
<link rel="stylesheet" href="<%- url %>/vendor/codemirror/lib/codemirror.css">
|
||||||
|
<link rel="stylesheet" href="<%- url %>/vendor/codemirror-spell-checker/spell-checker.min.css">
|
||||||
<link rel="stylesheet" href="<%- url %>/vendor/codemirror/addon/fold/foldgutter.css">
|
<link rel="stylesheet" href="<%- url %>/vendor/codemirror/addon/fold/foldgutter.css">
|
||||||
<link rel="stylesheet" href="<%- url %>/vendor/codemirror/addon/display/fullscreen.css">
|
<link rel="stylesheet" href="<%- url %>/vendor/codemirror/addon/display/fullscreen.css">
|
||||||
<link rel="stylesheet" href="<%- url %>/vendor/codemirror/addon/dialog/dialog.css">
|
<link rel="stylesheet" href="<%- url %>/vendor/codemirror/addon/dialog/dialog.css">
|
||||||
|
|
Loading…
Reference in a new issue