Merging @pellenilsson reply notification PR
* Added reply notification for commenter
* Removed debug info
* Bugfix
* Add notification column to database if needed
* Make SMTP connections thread safe
* Include link to comment in email notifications
* Implement opt-out for email notifications
* Fix faulty check for parent comment
* Support notifications also for replies
* Don't send notification when someone responds to his/her own comment
* Make unsubscribe work with notifications for replies
* Correct hash in 'unsubscribe' API example
* Introduce public-endpoint setting
* Fix whitespace issue
* Postpone notifications to users until comment has been approved by moderator
* New setting general.reply-notifications
* Add client-side configuration setting reply-notifications
* Documentation for reply notifications
When a browser doesn't support DOM manipulation convenience methods,
the addition of the feed link was triggering an error because elements
created by `$.new()` are regular elements, not elements from our own
mini-DOM implementation. Therefore, the `append()` method may be
absent. Use `appendChild()` instead.
When the button is clicked, the /preview endpoint is used to render a
preview text. The preview is inserted and the preview button is
replaced by an edit button to go back to edit mode. Alternatively, the
use can click on the preview to edit.
Some small CSS modifications are done to accomodate the
modification. Also, the preview is wrapped into `.isso-common
.text-wrapper .text` to not make the CSS more complex.
When in preview mode, the background is stripped/greyish in case it's not easy
to make a difference between preview and not preview (due to
unformatted text). We avoid to modify borders/shadow boxes because it
would make the design "jumpy".
On server-side, this can be enabled by providing a base URL to use to
build the full URL. Limit also becomes configurable. On client-side,
we need to add a switch to know whatever or not the additional link
can be displayed.
"nofollow" is a deterrent for spammers: they cannot put links and hope
to increase their SEO when all these links have the nofollow
relationship.
"noopener" is a security for links opening a new window. They ensure
the target cannot control us.
Fix#373