Support experimental spell checking feature (en-US only), can be enabled by the YAML meta option

This commit is contained in:
Cheng-Han, Wu 2016-04-20 18:09:36 +08:00
parent 692903f1a1
commit 0fb70a1487
8 changed files with 49151 additions and 0 deletions

View File

@ -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;

View File

@ -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,

View 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

File diff suppressed because it is too large Load Diff

View 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)}

File diff suppressed because one or more lines are too long

View File

@ -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-->

View File

@ -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">