[IPython-dev] CodeMirror overlay for spell checking

Matthias Bussonnier bussonniermatthias at gmail.com
Fri Jul 25 05:02:00 EDT 2014


Le 25 juil. 2014 à 03:59, Doug Blank a écrit :

> Success; we now have a working IPython notebook with spelling checking in Markdown cells!
> 
> I'll try to package this up over the next few days to make a notebook extension for all kernels. Currently, I have this all in one custom.js file [1] ... check out the toggle_spell_check function and code loaded on app_initialized.
> 
> The way that is currently works is as a toggle "spell check" button: click it once, and it turns on a spell check overlay over the "markdown" mode on all Markdown cells (see attached picture). Press the button again, and it turns it off.
> 
> I'm currently using Typo.js, but any JavaScript spell check library could work. Typo isn't bad... may need to adjust what gets checked (need to remove single quotes, and maybe add HTML tag names to dictionary).
> 
> Possible options/limitations:
> 
> 1) Should markdown cells be the only cells spell checked?

I suppose, unless you have a way to spellcheck only comment in the languages, which will be hard. 

> 
> 2) doesn't currently allow for right-click suggestion fixes; important?

Would be good, but will prevent user to use normal right click which is super annoying. 
you won't be able to right-click copy, or lots of other stuff. Would suggest no-to.
Or have an option to enable disable the menu.

> 
> 3) English only. Just need to provide more dictionaries and an API to change the dictionary.
> 
> 4) Should the spell checking be on all of the time?

You can persist the state  in cell metadata. (language in notebook level metadata). 
We have to see the overhead of spellchecking.

> Other options/suggestions welcomed!

Will work on fall in refactoring completer. Might use completer to quick-correct maybe. 

> 
> -Doug
> 
> [1] - https://bitbucket.org/ipre/calico/src/master/notebooks/profile/static/custom/custom.js

> 
> This custom.js has a few things in it that we'll break into extensions: two-column mode, bibtex references, tabbed in/out cells, heading numbering, table of contents, and spelling checking.

Nice,  I suppose you have seen this, which regroups a few extensions. 
https://github.com/ipython-contrib/IPython-notebook-extensions

Your would be welcomed I guess. 
--
M

> 
> 
> 
> On Thu, Jul 24, 2014 at 4:52 PM, Doug Blank <doug.blank at gmail.com> wrote:
> On Thu, Jul 24, 2014 at 2:31 PM, Damián Avila <damianavila at gmail.com> wrote:
> > I'm interested to see the code.
> 
> Me too ;-)
> 
> Thanks for the hints and links...
> 
> Oh, we'll make this available to all... no more misspellings in notebooks!
> 
> -Doug
>  
> 
> 
> 2014-07-24 15:30 GMT-03:00 Matthias Bussonnier <bussonniermatthias at gmail.com>:
> 
> 
> Le 24 juil. 2014 à 19:06, Doug Blank a écrit :
> 
> > I have successfully created and registered a CodeMirror overlay (for spell checking), but two questions:
> >
> > 1) Which of the modes is used for Markdown cells? I guess that will be the mode that I overlay.
> 
> JSconsole :
> 
> > IPython.TextCell.options_default.cm_config.mode
> "htmlmixed"
> 
> 
> 
> >
> > 2) How do I make it so that my new mode will be used on Markdown cells?
> 
> IPython.TextCell.options_default.cm_config.mode = yourmode
> +
> loop on all cell and set
> IPython.notebook.get_cell(0).code_mirror.setOption('mode',yourmode)
> 
> might need to require your mode first though, maybe with code_mirrorm.getMode
> 
> cf julia custom.js
> 
> https://github.com/JuliaLang/IJulia.jl/blob/master/deps/custom.js#L66-L90
> 
> >
> > I guess that I need to associate the mime type of Markdown cells with my new mode, but having some trouble finding where to connect this in the IPython JavaScript.
> 
> I'm interested to see the code.
> --
> M
> 
> >
> > Thanks for any suggestions,
> >
> > -Doug
> >
> > _______________________________________________
> > IPython-dev mailing list
> > IPython-dev at scipy.org
> > http://mail.scipy.org/mailman/listinfo/ipython-dev
> 
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
> 
> 
> 
> -- 
> Damián
> 
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
> 
> 
> 
> <Screenshot from 2014-07-24 21:55:22.png>_______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20140725/e75bbef3/attachment.html>


More information about the IPython-dev mailing list