parent nodes: GlobalAttributesSpellChecking | ProgramFiles | TheEditor | UserFiles | WikiFiles

Spell Checking

Contents:
Spell Checking
General
Language dictionaries
Language specification
Word definition
The spell check dialog
General
The dialog
The word lists
Settings
Page attributes
Global attributes
Func.pages

Back

General

Wikidpad is prepared to support spell checking on a page or wiki basis. To do so however you need to have installed either: You should be able to retrieve the add-on from the same place where you downloaded WikidPad. If not you can download it from the Wikidpad: Home page. The add-on should be installed áfter WikidPad is installed and in the same program directory as WikidPad. When WikidPad is uninstalled, the add-on must be uninstalled separately.

The enchant library allows to use several of the available spell checker programs and the dictionaries created for them. The standard pyEnchant library (and therefore the add-on package) default provides ISpell and MySpell as spell checkers.

Language dictionaries

The add-on already contains MySpell dictionaries for the languages:
en_US : English (US)
en_GB : English (UK)
de_DE : German (Germany)
fr_FR : French (France)
If you use a different language, you will have to download the appropriate dictionary first. Since MySpell is also used by OpenOffice, you might find the dictionaries of your choice at: They should work just as well for WikidPad as they do for OpenOffice.

A dictionary consists of a .dic and an .aff file, both with the same name, like "en_US.dic" and "en_US.aff". To install a new dictionary, go to the sub-subdirectory "share / enchant" of the WikidPad program directory. There you will see the directories "ispell" and "myspell". Copy the new .dic and .aff files into the directory for the appropriate spell checker and WikidPad should be ready to use them.

Language specification

Before you can use spell checking in your wiki, you first have to specify the language that should be used. You can set the language for a whole wiki by adding the global language attribute to the settings page; like: You can then override this setting on a page basis by adding the local language attribute to a page, like: In these attributes the name of the language is always equal to that of the library.

Word definition

Spell checking requires the ability to find the words in the content. The regular expression used to find words is located in the "WikiSyntax.py" file (in the directory "extensions" or "user_extensions") and lhas about this format:
TextWordRE = re.compile(ur"(?P<negative>[0-9]+|"+ UrlRE.pattern + u"|" +
        WikiWordRE.pattern + ur")|\b[\w']+",
        re.DOTALL | re.UNICODE | re.MULTILINE)
If you have some experience with regular expressions, you can change it; see WikiSyntax for details.

The expression contains a named group "negative". If something matches one of the entries in this group (joined with '|'), this is not interpreted as word (by default these are numbers, URLs and camel-case wiki words). This allows to ignore unwanted patterns.

Top

The spell check dialog

General

If you want to perform a spell check, select the option Editor / "Spell check" from the main menu. This option is only shown, when the addon is installed. So if the option isn't in the Editor menu, then either: After the dialog is opened, it starts searching for spelling errors from the beginning of the page and down. If it finds an error, it is shown in red with some context before and after it in the "To check" area of the dialog. You now have the possibility to manually correct the error in the "Replace with" field or to choose an of the suggested correct spellings from the list beneath the field and then click on "Replace". Or you can skip it by pressing Enter to go to the next error.

The dialog

The dialog is non-modal, this means you can edit the wiki page while the dialog is open. When pressing "Ignore", the spell checker always starts searching where you left the cursor, so you can go to another page and place the cursor where you want spell checking to continue.
The dialog can't be used to check functional pages like the text blocks pages (see TextBlocks). The available buttons in the dialog have the following meanings:

Ignore
Ignore this error and find the next one.

Ignore All
Ignore this error and if a word with exactly the same spelling (including case) is found again later, ignore that too.

Replace
Replace the error with the text entered in "Replace with".

Replace All
Replace the error and if a word with exactly the same spelling (including case) is found again later, correct it in the same way.

Add Globally
Add the found word to the permanent application-wide list of words to ignore.

Add Locally
Add the found word to the permanent wiki-wide list of words to ignore.

Done
Close dialog.

Checkbox 'Go to next page'
If the spell checker reaches the end of the current page and this check box is checked, it goes on to the "next" page. "Next" means here the following page in alphabetical order of page name (case sensitive), so the spell checking might jump around in the page tree.

The word lists

With "Ignore All" and "Replace all" you can add words to temporary word-ignore or -replace lists; these lists however are cleared when the dialog is closed.

With the buttons "Add Globally" and "Add Locally" you can add words to more permanent ignore lists. These words are part of the "func. pages" in the views tree and can be modied in the editor as if they were a wiki page. The lists are: Each line contains a word to ignore during spell checking. You can add, modify or delete words or the whole list arbitrarily and cut & paste words between the lists.

Top

Settings

Page attributes

[language: language code]
Sets the default language code for spell checking; default = none

Top

Global attributes

[global.language: language code]
Sets the default language code for spell checking; default = none

Top

Func.pages

Wiki spell list

Global spell list

Top
previous: Back
parents:  GlobalAttributesSpellChecking, ProgramFiles, TheEditor, UserFiles, WikiFiles
[help.status: done]