diff --git a/.travis.yml b/.travis.yml index 29682488140..e31bcc43075 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,14 +4,26 @@ python: "2.7" sudo: false +addons: + apt_packages: + - enchant + - aspell + - aspell-en + - ispell + - iamerican + cache: directories: - $HOME/.cache/pip - _build -install: pip install sphinx~=1.3 git+https://github.com/fabpot/sphinx-php.git +install: pip install -r requirements.txt -q -script: sphinx-build -nW -b html -d _build/doctrees . _build/html +script: + - sphinx-build -nW -b html -d _build/doctrees . _build/html + - make spelling + - cat _build/spelling/output.txt | sed -e 's/.*(\(.*\))/\1/g' | sort | uniq + - cat _build/spelling/output.txt | sed -e 's/.*(\(.*\))/\1/g' | sort | uniq | wc -l branches: except: diff --git a/Makefile b/Makefile index a37807af545..2105cbe9c99 100644 --- a/Makefile +++ b/Makefile @@ -37,6 +37,7 @@ 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 generate a spelling report" clean: -rm -rf $(BUILDDIR)/* @@ -151,3 +152,7 @@ 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 "Spelling report generated in $(BUILDDIR)/spelling/output.txt" diff --git a/book/doctrine.rst b/book/doctrine.rst index 7cde77256c8..ef17f3e6229 100644 --- a/book/doctrine.rst +++ b/book/doctrine.rst @@ -4,7 +4,7 @@ Databases and Doctrine ====================== -One of the most common and challenging tasks for any application +One of the most common deliberatemistake and challenging tasks for any application involves persisting and reading information to and from a database. Although the Symfony full-stack Framework doesn't integrate any ORM by default, the Symfony Standard Edition, which is the most widely used distribution, diff --git a/conf.py b/conf.py index e7c6b9d1800..4660adccbc2 100644 --- a/conf.py +++ b/conf.py @@ -33,11 +33,24 @@ # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ - 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', - 'sensio.sphinx.refinclude', 'sensio.sphinx.configurationblock', 'sensio.sphinx.phpcode', 'sensio.sphinx.bestpractice', 'sensio.sphinx.codeblock', - 'symfonycom.sphinx' + 'sphinx.ext.autodoc', + 'sphinx.ext.doctest', + 'sphinx.ext.todo', + 'sensio.sphinx.refinclude', + 'sensio.sphinx.configurationblock', + 'sensio.sphinx.phpcode', + 'sensio.sphinx.bestpractice', + 'sensio.sphinx.codeblock', + 'sphinxcontrib.spelling', ] +# Configuration for sphinxcontrib.spelling +spelling_lang='en_US' +spelling_word_list_filename='spelling_word_list.txt' + +# We exclude the changelog to prevent the spell checker checking the changelog +exclude_patterns = ['_theme', 'changelog.rst'] + # Add any paths that contain templates here, relative to this directory. templates_path = ['_theme/_templates'] @@ -73,9 +86,6 @@ # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_theme'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None diff --git a/index.rst b/index.rst index cdfd5ff67f8..b8083efe348 100644 --- a/index.rst +++ b/index.rst @@ -3,11 +3,6 @@ Symfony Documentation ===================== -.. toctree:: - :hidden: - - changelog - Quick Tour ---------- diff --git a/make.bat b/make.bat index cfda326358d..fa5e3debf7b 100644 --- a/make.bat +++ b/make.bat @@ -38,6 +38,7 @@ if "%1" == "help" ( echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled echo. coverage to run coverage check of the documentation if enabled + echo. spelling generate a spelling report goto end ) @@ -235,6 +236,12 @@ results in %BUILDDIR%/doctest/output.txt. goto end ) +if "%1" == "spelling" ( + %SPHINXBUILD% -b spelling %ALLSPHINXOPTS% %BUILDDIR%/spelling + echo.Spelling report generated in %BUILDDIR%/spelling/output.txt. + goto end +) + if "%1" == "coverage" ( %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage if errorlevel 1 exit /b 1 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000000..87eb4939759 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +Sphinx==1.3 +sphinxcontrib-spelling +pyenchant +git+https://github.com/fabpot/sphinx-php.git diff --git a/spelling_word_list.txt b/spelling_word_list.txt new file mode 100644 index 00000000000..c2683e6f1f3 --- /dev/null +++ b/spelling_word_list.txt @@ -0,0 +1,441 @@ +accessor +addEventSubscriber +admin +admins +Ai +Akamai +allowExtraFields +allowLandscape +allowLandscapeMessage +allowMissingFields +allowPortrait +allowPortraitMessage +allowSquare +allowSquareMessage +antiflood +apc +Apc +api +apikey +app +App +apps +architected +args +assetic +Assetic +attr +auth +authenticateToken +autocompleted +autocompletion +Autocompletion +autofill +autoload +autoloaded +autoloaders +autoloading +Autoloading +backend +Baz +bcrypt +Bcrypt +BCrypt +behaviour +Behaviour +binaryFormat +bio +birthdate +bitmask +bitmasks +Bitmasks +blog +Blog +bothIsbnMessage +bugfix +BundleName +cacheability +cacheable +callables +camelCase +Camelized +camelizes +caseSensitive +catalogue +Catalogue +catalogues +CGI +changeset +charset +Charset +charsets +checkbox +checkboxes +Checkboxes +checkHost +checkMX +chgrp +chmod +chown +cli +clickable +codebase +conf +config +Config +configurability +configurator +Configurator +createToken +cron +cronjobs +csrf +Ctrl +ctype +cURL +datapicker +datatypes +de +Debian +denormalization +denormalized +deserialize +deserialized +deserializer +deserializing +Deserializing +dev +disallowEmptyMessage +docblock +downloader +Doxygen +dropdown +Drupal +dumpFile +Eberlei +eg +enctype +enum +Enum +errorPath +esi +ETag +ETags +exactMessage +extraFieldsMessage +eZPublish +fabien +fallback +Fallback +fastcgi +fcgi +filesystem +Filesystem +filesystems +foo +Foobar +foreach +formulae +freenode +frontend +Frontend +ftp +gc +genrb +gmail +Gmail +Goutte +GPL +hardcode +Hardcode +hardcoded +hardcoding +Hardcoding +hasser +Hassers +headshot +Heroku +hinclude +Honeycrisp +hostname +html +htmlPattern +http +Http +httpd +httponly +https +hyperlinks +Iban +iconv +Icu +ide +ies +ignoreNull +ing +ini +inline +Inline +inlined +intl +Intl +intranet +invalidMessage +Ip +IPv +isAbsolutePath +isbn +Isbn +isser +Issers +Issn +jpegoptim +Jpegoptim +jQuery +js +json +Karlton +kB +KiB +kibibyte +Kudu +latin +libxml +lifecycle +Lifecycle +listbox +localhost +locator +Logplex +loopback +Luhn +makePathRelative +matchingCityAndZipCode +maxHeight +maxHeightMessage +maxlifetime +maxMessage +maxRatio +maxRatioMessage +maxSize +maxSizeMessage +maxWidth +maxWidthMessage +mbstring +mebibyte +meetup +memcache +memcached +Memcached +metadata +Metadata +MiB +microtime +mimeTypes +mimeTypesMessage +minHeight +minHeightMessage +minification +Minification +minifier +minMessage +minRatio +minRatioMessage +minWidth +minWidthMessage +missingFieldsMessage +mitre +mkdir +modelled +monolog +Monolog +mre +multipleMessage +Multiselect +namespace +Namespace +namespaced +Namespaced +namespaces +Namespaces +namespacing +nd +Nginx +notFoundMessage +notReadableMessage +npm +ยบ +OAuth +offline +ok +online +optgroup +org +overcomplicate +overriden +Overriden +PaaS +Packagist +params +performant +php +PHP +phpdoc +pid +Pid +plaintext +plugin +Plugin +plugins +Plugins +popup +postExecute +Potencier +pre +Pre +preconfigured +preExecute +prepend +prepended +Prepending +preUpdate +Procfile +programmatically +readonly +Readonly +rebase +Rebase +rebasing +refactor +Refactor +refactored +refactorization +regex +Regex +regexes +renderers +replaceXXX +repo +repositoryMethod +requireHyphen +reST +reStructuredText +reusability +revalidate +rsync +sandboxed +sandboxing +scp +screenshot +selectedchoice +sendmail +serializer +Serializer +setfacl +setXXX +sha +Silex +sizeNotDetectedMessage +Sluggable +smartphone +smtp +Sqlite +Stabilisation +stacktrace +stderr +stty +stylesheet +stylesheets +Stylesheets +subinterface +sublicense +subrequest +subroles +subtemplate +superglobal +superglobals +superinterface +supportsToken +swiftmailer +symfony +Symfony +symlink +symlinks +tagname +targetEntity +templating +Templating +textarea +textbox +throbber +timeline +timestamp +Timestampable +toctrees +todo +tokenizer +tomany +Tomayko +toolbar +Toolbar +Toolbelt +tooltip +transchoice +txt +Ubuntu +UI +umask +un +uncached +unhandled +unix +Unported +unserialize +unversioned +uploadErrorMessage +uploadFormSizeErrorMessage +uploadIniSizeErrorMessage +url +Url +urls +Urls +userland +username +Username +Uuid +vaidation +validator +Validator +validators +Validators +vcl +vendoring +versioned +versioning +Versioning +VirtualBox +vv +webmaster +webprofiler +webserver +webservice +whitelist +Wikipedia +wildcard +wildcards +Woh +workflow +Workflow +xcache +Xdebug +XDebug +xkcd +Xliff +xml +xor +xpath +XPath +xsd +yaml +Yaml +yml