diff --git a/docs/Makefile b/docs/Makefile index 21b8a9cbe9..f2502be3a7 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -37,6 +37,8 @@ help: @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " spelling to check for typos in documentation" + clean: -rm -rf $(BUILDDIR)/* @@ -143,3 +145,9 @@ doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." + +spelling: + $(SPHINXBUILD) -b spelling $(ALLSPHINXOPTS) $(BUILDDIR)/spelling + @echo + @echo "Check finished. Wrong words can be found in " \ + "$(BUILDDIR)/spelling/output.txt." diff --git a/docs/conf.py b/docs/conf.py index ff919a6265..f10354f244 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -33,6 +33,17 @@ needs_sphinx = '1.0' # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ["djangodocs", "sphinx.ext.intersphinx"] +# Spelling check needs an additional module that is not installed by default. +# Add it only if spelling check is requested so docs can be generated without it. +if 'spelling' in sys.argv: + extensions.append("sphinxcontrib.spelling") + +# Spelling language. +spelling_lang = 'en_US' + +# Location of word list. +spelling_word_list_filename = 'spelling_wordlist' + # Add any paths that contain templates here, relative to this directory. # templates_path = [] diff --git a/docs/internals/contributing/writing-documentation.txt b/docs/internals/contributing/writing-documentation.txt index 94a9ae3cb4..2ceef3d05d 100644 --- a/docs/internals/contributing/writing-documentation.txt +++ b/docs/internals/contributing/writing-documentation.txt @@ -348,3 +348,27 @@ look better: (that's a tilde) to get just the "last bit" of that path. So ``:class:`~django.contrib.contenttypes.models.ContentType``` will just display a link with the title "ContentType". + +Spelling check +-------------- + +Before you commit your docs, it's a good idea to run the spelling checker. +You'll need to install a couple packages first: + +* `pyenchant `_ (which requires + `enchant `_) + +* `sphinxcontrib-spelling + `_ + +Then from the ``docs`` directory, run ``make spelling``. Wrong words (if any) +along with the file and line number where they occur will be saved to +``_build/spelling/output.txt``. + +If you encounter false-positives (error output that actually is correct), do +one of the following: + +* Surround inline code or brand/technology names with grave accents (`). +* Find synonyms that the spell checker recognizes. +* If, and only if, you are sure the word you are using is correct - add it + to ``docs/spelling_wordlist`` (please keep the list in alphabetical order). diff --git a/docs/spelling_wordlist b/docs/spelling_wordlist new file mode 100644 index 0000000000..03502242e2 --- /dev/null +++ b/docs/spelling_wordlist @@ -0,0 +1,727 @@ +Aalto +accessor +Aceh +addslashes +admin +admindocs +admins +aggregator +Ai +Alchin +amet +Anssi +apnumber +Apolloner +app +appname +apps +architected +arg +args +assistive +attr +auth +autoclobber +autocommit +autoconf +autodetect +autodetectable +autodetection +autodetector +autodiscovery +autoescape +autoescaping +autogenerated +autoincrement +autoreload +Aymeric +backend +backends +backport +backported +backports +backtraces +basename +bbcontains +bboverlaps +Bcc +BCC'ed +bcrypt +Bcrypt +beatles +Beaven +Berners +Biggs +Bjørn +blocktrans +blog +Boersma +boilerplatish +Bokmål +bolded +bookmarklets +Bookmarklets +bpython +Bronn +bugfix +bugfixes +bugfixing +builtin +builtins +Byteorder +bytestring +bytestrings +cacheable +cachetable +callables +camelcase +camelCase +capfirst +changelist +Changelist +changepassword +changeset +charset +checkbox +checkboxes +checkin +Checkin +clearable +clearsessions +clickable +clickjacking +cms +codebase +codec +collectstatic +commenter +commenters +committer +committers +compilemessages +concat +conf +config +contactdata +ContentType +contenttypes +contrib +coveredby +Córdoba +createcachetable +createdb +createsuperuser +criticals +cron +crontab +crossref +csrf +csrfmiddlewaretoken +css +csv +Ctrl +customizability +daemonizing +Danga +Darussalam +dat +databrowse +Databrowse +datatype +datetimes +dbshell +de +deconstruct +deconstructing +deepcopy +deserialization +deserialize +deserialized +deserializer +deserializing +Deserializing +dev +dict +dictConfig +dicts +dictsort +dictsortreversed +diff +diffsettings +dirmod +distro +divisibleby +django +djangojs +djangonaut +djangoproject +dm +docstring +docstrings +doctests +doctype +documentational +dos +DoS +downloadable +Dreamhost +Dreamweaver +drilldown +dropdown +drupal +dumpdata +Dunck +dwithin +editability +Endian +endswith +Enero +escapejs +esque +Ess +Etag +ETag +ETags +exe +extendible +fabfile +fabfiles +Facebook +fallback +fallbacks +faq +fastcgi +FastCGI +fcgid +fieldset +fieldsets +filesizeformat +filesystem +filesystems +findstatic +firstof +flatpage +Flatpage +flatpages +Flatpages +floatformat +flup +followup +fooapp +formfield +formset +formsets +formtools +freenode +Friedl +Frysian +fu +gdal +geo +geoip +geolibs +geolocalized +geolocation +geoquerysets +geospatial +Geospatial +Gettext +GiB +gid +gis +github +globalization +google +Googol +Graz +Greenhill +grey +gte +gunicorn +Gunicorn +gz +GZip +hackish +handheld +hardcode +hardcoded +hardcoding +hashable +hashers +headerlist +Hoerner +Holovaty +Homebrew +honeypot +Honza +hostname +hostnames +howto +html +http +https +hyperlinks +icontains +Idan +ie +iendswith +ies +iexact +ifchanged +ifequal +ifnotequal +iframe +inbox +Incompliance +indices +ing +ini +init +inline +inlines +inspectdb +intcomma +internet +intranet +intword +ip +ipsum +Ipsum +IPv +IPython +irc +iregex +iriencode +ise +isnull +iso +istartswith +iterable +iterables +itunes +iTunes +ize +Jannis +javascript +jQuery +JServ +Julien +jython +Kääriäinen +keyservers +KiB +kilometre +Kocherhans +Koziarski +Král +kwarg +kwargs +Kyngesburye +latin +lawrence +Lawrence +lexer +lhs +lifecycle +lifecycles +lighttpd +linebreaks +linebreaksbr +linenumbers +linestring +Livni +ljust +loaddata +localdomain +localflavor +localflavors +localhost +localizable +localtime +lorem +lt +lte +Magee +makemessages +makemigrations +Mapnik +MBR +memcache +memcached +mentorship +mercator +metaclass +metaclasses +metadata +metre +MiB +micrometre +middleware +middlewares +migrationname +millimetre +Minification +Mispelon +mixin +mixins +modelforms +modelformset +modwsgi +monkeypatched +Montréal +multijoins +multiline +multipart +multipolygon +multithreaded +multithreading +Mumbai +myapp +myproject +mysite +mysql +naïve +namespace +namespaced +Namespaced +namespaces +namespacing +Nanggroe +naturalday +naturaltime +nd +needsinfo +neuroscientist +newforms +nginx +nonspatial +nullable +OAuth +offline +OGC +OGR +ogrinspect +oldforms +online +orderable +O'Reilly +org +Orléans +orm +outbox +Outdim +outfile +paginator +Palau +params +parens +pdf +perl +permalink +pessimization +Peucker +pgAdmin +php +pickleable +picosecond +PIL +pingback +pingbacks +Pinney +plaintext +plugin +plugins +po +podcast +popup +postgis +postgres +Postgres +postgresql +pq +pre +preconfigured +prefetch +prefetched +prefetching +prefork +preforked +prepend +prepended +prepending +prepopulate +prepopulated +prepopulates +preprocess +programmatically +projectname +proxied +proxying +pseudocode +psycopg +Puthraya +py +pyformat +Pygments +pysqlite +pythonic +Pythonista +pytz +qs +Québec +queryset +querysets +Querysets +querystring +Quickstart +quoteless +Radziej +rc +rebase +rebased +rebasing +recomputation +refactor +refactored +refactorings +refactors +referer +regex +regexes +reimplement +reindex +removetags +repo +reprojection +reraise +reST +reStructuredText +reupload +Reusability +revalidate +rhs +rjust +roadmap +Roald +rss +runfcgi +runnning +runserver +safeseq +Sandvik +savepoint +savepoints +Schaub +screencast +screencasts +screenshot +screenshots +sdist +semimajor +semiminor +serializable +serializer +serializers +sessionid +setuptools +sha +shapefile +shapefiles +sharding +sid +simultaneously +sitemap +sitemaps +sitewide +slashdot +sliceable +slippy +slugify +solaris +Solr +spaceless +spam +spammers +spatialite +Springmeyer +sql +sqlall +sqlclear +sqlcustom +sqldropindexes +sqlflush +sqlindexes +sqlmigrate +sqlsequencereset +ssi +stacktrace +startapp +startproject +startswith +stateful +staticfile +staticfiles +stderr +stdlib +stdout +stringformat +striptags +Stufft +stylesheet +stylesheets +subclass +subclassed +subclassing +subdir +subdomain +subdomains +sublanguage +subminor +subpackage +subpackages +subqueries +subquery +subselect +subtemplate +subtemplates +subviews +subwidgets +symlink +symlinking +symlinks +syncdb +sysadmin +systemwide +tablespace +tablespaces +tagline +Tamlyn +tarball +tarballs +Tastypie +teardown +templatability +templatetag +templating +testcase +testserver +textarea +Thejaswi +timedelta +timeframe +timeline +timelines +timesaving +timesince +timestamp +timeuntil +titlecase +tmp +toolbar +toolset +trac +Transifex +Tredinnick +triager +triagers +truncatechars +truncatewords +tv +txt +tz +ubuntu +Ubuntuusers +ul +umask +unapply +unapplying +uncheck +unclaim +uncopyable +unescape +unescaped +ungrouped +unhandled +unharmful +unicode +uninstall +uninstalling +uninstalls +uniterated +unittest +unittests +unlocalize +unmigrated +unparseable +unpickle +unpickled +unpythonic +unregistration +unrendered +Unreviewed +unsanitized +unsets +untar +url +urlencode +urlize +urlizetrunc +urljoins +urllib +urlpatterns +urls +useable +username +usernames +utc +UTF +util +utils +uwsgi +uWSGI +validator +validators +validsite +VARCHAR +variadic +vendored +vendorname +versioned +versioning +vertices +virtualenv +virtualized +Votizen +webapps +webdesign +webkit +WebKit +Weblog +webpages +webserver +webservers +whatsnext +whitelist +whitelisted +whitespaces +whizbang +widthratio +wiki +wikipedia +wildcard +wildcards +Willison +Wittams +wontfix +wordcount +wordwrap +workflow +worksforme +wsgi +www +xe +xgettext +xref +xxxxx +yesno +Zope