mirror of
https://github.com/wassname/talk.git
synced 2026-07-06 05:17:19 +08:00
initial rewrite
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
node_modules
|
||||
|
||||
dist
|
||||
docs/*.log
|
||||
docs/db.json
|
||||
docs/public/
|
||||
docs/.deploy*/
|
||||
|
||||
npm-debug.log*
|
||||
dump.rdb
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
_site
|
||||
.sass-cache
|
||||
.jekyll-metadata
|
||||
@@ -1,24 +0,0 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
# Hello! This is where you manage which Jekyll version is used to run.
|
||||
# When you want to use a different version, change it below, save the
|
||||
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
|
||||
#
|
||||
# bundle exec jekyll serve
|
||||
#
|
||||
# This will help ensure the proper Jekyll version is running.
|
||||
# Happy Jekylling!
|
||||
gem "jekyll", "3.5.2"
|
||||
|
||||
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
|
||||
# uncomment the line below. To upgrade, run `bundle update github-pages`.
|
||||
# gem "github-pages", group: :jekyll_plugins
|
||||
|
||||
# If you have any plugins, put them here!
|
||||
group :jekyll_plugins do
|
||||
gem "jekyll-seo-tag", "~> 2.1"
|
||||
end
|
||||
|
||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.5.2)
|
||||
public_suffix (>= 2.0.2, < 4.0)
|
||||
colorator (1.1.0)
|
||||
ffi (1.9.18)
|
||||
forwardable-extended (2.6.0)
|
||||
jekyll (3.5.2)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
jekyll-watch (~> 1.1)
|
||||
kramdown (~> 1.3)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.3.3)
|
||||
pathutil (~> 0.9)
|
||||
rouge (~> 1.7)
|
||||
safe_yaml (~> 1.0)
|
||||
jekyll-sass-converter (1.5.0)
|
||||
sass (~> 3.4)
|
||||
jekyll-seo-tag (2.3.0)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-watch (1.5.0)
|
||||
listen (~> 3.0, < 3.1)
|
||||
kramdown (1.15.0)
|
||||
liquid (4.0.0)
|
||||
listen (3.0.8)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
mercenary (0.3.6)
|
||||
pathutil (0.14.0)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (3.0.0)
|
||||
rb-fsevent (0.10.2)
|
||||
rb-inotify (0.9.10)
|
||||
ffi (>= 0.5.0, < 2)
|
||||
rouge (1.11.1)
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.5.1)
|
||||
sass-listen (~> 4.0.0)
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll (= 3.5.2)
|
||||
jekyll-seo-tag (~> 2.1)
|
||||
tzinfo-data
|
||||
|
||||
BUNDLED WITH
|
||||
1.15.4
|
||||
+143
-56
@@ -1,24 +1,136 @@
|
||||
# Welcome to Jekyll!
|
||||
#
|
||||
# This config file is meant for settings that affect your whole blog, values
|
||||
# which you are expected to set up once and rarely edit after that. If you find
|
||||
# yourself editing this file very often, consider using Jekyll's data files
|
||||
# feature for the data you need to update frequently.
|
||||
#
|
||||
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
|
||||
# Hexo Configuration
|
||||
## Docs: https://hexo.io/docs/configuration.html
|
||||
## Source: https://github.com/hexojs/hexo/
|
||||
|
||||
# Site settings
|
||||
# These are used to personalize your new site. If you look in the HTML files,
|
||||
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
|
||||
# You can create any custom variable you would like, and they will be accessible
|
||||
# in the templates via {{ site.myvariable }}.
|
||||
# Site
|
||||
title: Talk Documentation
|
||||
description: > # this means to ignore newlines until "baseurl:"
|
||||
subtitle:
|
||||
description: >
|
||||
Documentation and guides for Talk from The Coral Project.
|
||||
baseurl: "/talk" # the subpath of your site, e.g. /blog
|
||||
url: "https://coralproject.github.io" # the base hostname & protocol for your site, e.g. http://example.com
|
||||
google_analytics: UA-73335347-5
|
||||
author:
|
||||
language:
|
||||
timezone:
|
||||
|
||||
# URL
|
||||
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
|
||||
url: https://coralproject.github.io/talk
|
||||
root: /talk/
|
||||
permalink: :permalink/
|
||||
permalink_defaults:
|
||||
|
||||
# Directory
|
||||
source_dir: source
|
||||
public_dir: public
|
||||
tag_dir: tags
|
||||
archive_dir: archives
|
||||
category_dir: categories
|
||||
code_dir: downloads/code
|
||||
i18n_dir: :lang
|
||||
skip_render:
|
||||
|
||||
# Writing
|
||||
new_post_name: :title.md # File name of new posts
|
||||
default_layout: doc
|
||||
titlecase: false # Transform title into titlecase
|
||||
external_link: true # Open external links in new tab
|
||||
filename_case: 0
|
||||
render_drafts: false
|
||||
post_asset_folder: false
|
||||
relative_link: false
|
||||
future: true
|
||||
highlight:
|
||||
enable: false
|
||||
|
||||
# Home page setting
|
||||
# path: Root path for your blogs index page. (default = '')
|
||||
# per_page: Posts displayed per page. (0 = disable pagination)
|
||||
# order_by: Posts order. (Order by date descending by default)
|
||||
index_generator:
|
||||
path: ''
|
||||
|
||||
# Category & Tag
|
||||
default_category: uncategorized
|
||||
category_map:
|
||||
tag_map:
|
||||
|
||||
# Date / Time format
|
||||
## Hexo uses Moment.js to parse and display date
|
||||
## You can customize the date format as defined in
|
||||
## http://momentjs.com/docs/#/displaying/format/
|
||||
date_format: YYYY-MM-DD
|
||||
time_format: HH:mm:ss
|
||||
|
||||
# Extensions
|
||||
## Plugins: https://hexo.io/plugins/
|
||||
## Themes: https://hexo.io/themes/
|
||||
theme: coral
|
||||
|
||||
# Deployment
|
||||
## Docs: https://hexo.io/docs/deployment.html
|
||||
deploy:
|
||||
type:
|
||||
|
||||
sidebar:
|
||||
top:
|
||||
- title: Github
|
||||
url: https://github.com/coralproject/
|
||||
- title: Docker
|
||||
url: https://hub.docker.com/r/coralproject/
|
||||
- title: Roadmap
|
||||
url: https://www.pivotaltracker.com/n/projects/1863625
|
||||
- title: Google Group
|
||||
url: https://groups.google.com/forum/#!forum/coral-talk-users
|
||||
side:
|
||||
- title: Installation
|
||||
children:
|
||||
- title: Talk Quickstart
|
||||
url: /
|
||||
- title: Installation from Docker
|
||||
url: /installation-from-docker/
|
||||
- title: Installation from Source
|
||||
url: /installation-from-source/
|
||||
- title: Configuration
|
||||
children:
|
||||
- title: Required Configuration
|
||||
url: /configuration/
|
||||
- title: Advanced Configuration
|
||||
url: /advanced-configuration/
|
||||
- title: Product Guide
|
||||
children:
|
||||
- title: How Talk Works
|
||||
url: /how-talk-works/
|
||||
- title: Commenter Features
|
||||
url: /commenter-features/
|
||||
- title: Moderator Features
|
||||
url: /moderator-features/
|
||||
- title: Trust
|
||||
url: /trust/
|
||||
- title: Toxic Comments
|
||||
url: /toxic-comments/
|
||||
- title: Configuring Talk
|
||||
url: /configuring-talk/
|
||||
- title: Plugins
|
||||
children:
|
||||
- title: Plugins Overview
|
||||
url: /plugins/
|
||||
- title: Default Plugins
|
||||
url: /default-plugins/
|
||||
- title: Additional Plugins
|
||||
url: /additional-plugins/
|
||||
- title: Plugin Recipes
|
||||
url: /plugin-recipes/
|
||||
- title: FAQ
|
||||
children:
|
||||
- title: FAQ
|
||||
url: /faq/
|
||||
- title: Migrating
|
||||
children:
|
||||
- title: Migrating to v4.0.0
|
||||
url: /migration/4/
|
||||
- title: Migrating to v4.1.0
|
||||
url: /migration/4.1/
|
||||
|
||||
versions:
|
||||
node: 8+
|
||||
yarn: 1.3.2+
|
||||
@@ -27,43 +139,18 @@ versions:
|
||||
docker: 17.06.2+
|
||||
docker_compose: 1.14.0+
|
||||
|
||||
# Build settings
|
||||
markdown: kramdown
|
||||
kramdown:
|
||||
syntax_highlighter_opts:
|
||||
disable : true
|
||||
marked:
|
||||
gfm: true
|
||||
pedantic: false
|
||||
sanitize: false
|
||||
tables: true
|
||||
breaks: false
|
||||
smartLists: true
|
||||
smartypants: true
|
||||
modifyAnchors: ''
|
||||
autolink: true
|
||||
|
||||
plugins:
|
||||
- jekyll-seo-tag
|
||||
|
||||
# Exclude from processing.
|
||||
# The following items will not be processed, by default. Create a custom list
|
||||
# to override the default setting.
|
||||
# exclude:
|
||||
# - Gemfile
|
||||
# - Gemfile.lock
|
||||
# - node_modules
|
||||
# - vendor/bundle/
|
||||
# - vendor/cache/
|
||||
# - vendor/gems/
|
||||
# - vendor/ruby/
|
||||
|
||||
# Sass/SCSS
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
|
||||
|
||||
# Collections
|
||||
collections:
|
||||
docs:
|
||||
output: true
|
||||
permalink: /:path/
|
||||
|
||||
# Defaults
|
||||
defaults:
|
||||
# _docs
|
||||
- scope:
|
||||
path: ""
|
||||
type: docs
|
||||
values:
|
||||
layout: doc
|
||||
node_sass:
|
||||
outputStyle: compressed
|
||||
precision: 5
|
||||
sourceComments: false
|
||||
@@ -1,13 +0,0 @@
|
||||
items:
|
||||
- title: GitHub release
|
||||
img: https://img.shields.io/github/release/coralproject/talk.svg
|
||||
link: https://github.com/coralproject/talk/releases
|
||||
- title: ImageLayers Size
|
||||
img: https://img.shields.io/imagelayers/image-size/coralproject/talk/latest.svg
|
||||
link: https://hub.docker.com/r/coralproject/talk/
|
||||
- title: Docker Pulls
|
||||
img: https://img.shields.io/docker/pulls/coralproject/talk.svg
|
||||
link: https://hub.docker.com/r/coralproject/talk/
|
||||
- title: CircleCI
|
||||
img: https://img.shields.io/circleci/project/github/coralproject/talk.svg
|
||||
link: https://circleci.com/gh/coralproject/talk
|
||||
@@ -1,49 +0,0 @@
|
||||
items:
|
||||
- title: Installation
|
||||
children:
|
||||
- title: Talk Quickstart
|
||||
url: /
|
||||
- title: Installation from Docker
|
||||
url: /installation-from-docker/
|
||||
- title: Installation from Source
|
||||
url: /installation-from-source/
|
||||
- title: Configuration
|
||||
children:
|
||||
- title: Required Configuration
|
||||
url: /configuration/
|
||||
- title: Advanced Configuration
|
||||
url: /advanced-configuration/
|
||||
- title: Product Guide
|
||||
children:
|
||||
- title: How Talk Works
|
||||
url: /how-talk-works/
|
||||
- title: Commenter Features
|
||||
url: /commenter-features/
|
||||
- title: Moderator Features
|
||||
url: /moderator-features/
|
||||
- title: Trust
|
||||
url: /trust/
|
||||
- title: Toxic Comments
|
||||
url: /toxic-comments/
|
||||
- title: Configuring Talk
|
||||
url: /configuring-talk/
|
||||
- title: Plugins
|
||||
children:
|
||||
- title: Plugins Overview
|
||||
url: /plugins/
|
||||
- title: Default Plugins
|
||||
url: /default-plugins/
|
||||
- title: Additional Plugins
|
||||
url: /additional-plugins/
|
||||
- title: Plugin Recipes
|
||||
url: /plugin-recipes/
|
||||
- title: FAQ
|
||||
children:
|
||||
- title: FAQ
|
||||
url: /faq/
|
||||
- title: Migrating
|
||||
children:
|
||||
- title: Migrating to v4.0.0
|
||||
url: /migration/4/
|
||||
- title: Migrating to v4.1.0
|
||||
url: /migration/4.1/
|
||||
@@ -1,3 +0,0 @@
|
||||
{% for item in site.data.badges.items %}<a class="plain-link" target="_blank" title="{{ item.title }}" href="{{ item.link }}">
|
||||
<img src="{{ item.img }}" alt="{{ item.title }}"/>
|
||||
</a>{% endfor %}
|
||||
@@ -1,13 +0,0 @@
|
||||
In order for the demo to work, you must add
|
||||
`{{ site.url | remove: "http://" | remove: "https://" | remove: "/" }}` to your
|
||||
permitted domains list. You can do this by visiting
|
||||
[http://127.0.0.1:3000/admin/configure](http://127.0.0.1:3000/admin/configure){:target="_blank"}
|
||||
now and selecting *Tech Settings* from the sidebar.
|
||||
|
||||
Once you have added the domain of these docs, you can click the button below.
|
||||
|
||||
<div class="demo">
|
||||
<button id="talk-demo-embed-button" type="button" class="btn btn-block btn-coral">Start Demo</button>
|
||||
<div class="alert" role="alert"></div>
|
||||
<div class="mount"></div>
|
||||
</div>
|
||||
@@ -1,37 +0,0 @@
|
||||
# For details on the syntax of docker-compose.yml files, check out:
|
||||
# https://docs.docker.com/compose/compose-file/compose-file-v2/
|
||||
|
||||
version: '2'
|
||||
services:
|
||||
talk:
|
||||
image: coralproject/talk:latest
|
||||
restart: always
|
||||
ports:
|
||||
- "3000:3000"
|
||||
depends_on:
|
||||
- mongo
|
||||
- redis
|
||||
environment:
|
||||
- NODE_ENV=development # remove this line in production
|
||||
- TALK_MONGO_URL=mongodb://mongo/talk
|
||||
- TALK_REDIS_URL=redis://redis
|
||||
- TALK_ROOT_URL=http://127.0.0.1:3000
|
||||
- TALK_PORT=3000
|
||||
- TALK_JWT_SECRET=password
|
||||
- TALK_FACEBOOK_APP_ID=12345
|
||||
- TALK_FACEBOOK_APP_SECRET=123abc
|
||||
mongo:
|
||||
image: mongo:latest
|
||||
restart: always
|
||||
volumes:
|
||||
- mongo:/data/db
|
||||
redis:
|
||||
image: redis:latest
|
||||
restart: always
|
||||
volumes:
|
||||
- redis:/data
|
||||
volumes:
|
||||
mongo:
|
||||
external: false
|
||||
redis:
|
||||
external: false
|
||||
@@ -1,12 +0,0 @@
|
||||
<header class="header">
|
||||
<form class="search d-flex align-items-center">
|
||||
<input type="search" class="form-control" id="search-input" placeholder="Search documentation..." aria-label="Search for..." autocomplete="off">
|
||||
<nav class="header__nav">
|
||||
<a target="_blank" alt="Coral Project Github" href="https://github.com/coralproject/">Github</a>
|
||||
<a target="_blank" alt="Coral Project Docker Hub" href="https://hub.docker.com/r/coralproject/">Docker</a>
|
||||
<a target="_blank" alt="Coral Project Roadmap" href="https://www.pivotaltracker.com/n/projects/1863625">Roadmap</a>
|
||||
<a target="_blank" alt="Coral Project Google Group" href="https://groups.google.com/forum/#!forum/coral-talk-users">Google Group</a>
|
||||
<a href="#" alt="Toggle Sidebar" id="sidebar-toggle">{% include images/hamburger.svg %}</a>
|
||||
</nav>
|
||||
</form>
|
||||
</header>
|
||||
@@ -1,28 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ page.lang | default: site.lang | default: "en" }}">
|
||||
|
||||
{% include head.html %}
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<div>
|
||||
|
||||
{% include sidebar.html %}
|
||||
|
||||
<main class="content" role="main">
|
||||
|
||||
{% include header.html %}
|
||||
|
||||
{{ content }}
|
||||
|
||||
|
||||
</main>
|
||||
|
||||
{% include footer.html %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
# Only the main Sass file needs front matter (the dashes are enough)
|
||||
---
|
||||
|
||||
@import "talk";
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "hexo-site",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"hexo": {
|
||||
"version": "3.5.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "hexo serve",
|
||||
"build": "hexo generate",
|
||||
"develop-theme": "nodemon -x 'rm db.json; hexo serve' -w assets/ -w code/ -w source/ -w themes/ -w scripts/"
|
||||
},
|
||||
"dependencies": {
|
||||
"hexo": "^3.2.0",
|
||||
"hexo-generator-index": "^0.2.0",
|
||||
"hexo-renderer-marked": "^0.3.0",
|
||||
"hexo-renderer-sass": "^0.3.2",
|
||||
"hexo-server": "^0.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^1.14.12"
|
||||
}
|
||||
}
|
||||
@@ -3,37 +3,35 @@ title: Talk Quickstart
|
||||
permalink: /
|
||||
---
|
||||
|
||||
{% include badges.html %}
|
||||
|
||||
Online comments are broken. Our open-source Talk tool rethinks how moderation,
|
||||
comment display, and conversation function, creating the opportunity for safer,
|
||||
smarter discussions around your work. Read more about our product features and
|
||||
goals [here](https://coralproject.net/products/talk.html){:target="_blank"}. The
|
||||
goals [here](https://coralproject.net/products/talk.html). The
|
||||
documentation available here is pertaining to the technical details for
|
||||
installing, configuring, and deploying Talk.
|
||||
|
||||
Talk is a [Node](https://nodejs.org/){:target="_blank"} application with
|
||||
Talk is a [Node](https://nodejs.org/) application with
|
||||
dependencies managed by
|
||||
[Yarn](https://yarnpkg.com/en/docs/install){:target="_blank"} that connects to
|
||||
[MongoDB](https://docs.mongodb.com/manual/installation/){:target="_blank"} and
|
||||
[Redis](https://redis.io/topics/quickstart){:target="_blank"} databases in order
|
||||
[Yarn](https://yarnpkg.com/en/docs/install) that connects to
|
||||
[MongoDB](https://docs.mongodb.com/manual/installation/) and
|
||||
[Redis](https://redis.io/topics/quickstart) databases in order
|
||||
to persist data. The following versions are supported:
|
||||
|
||||
- Node {{ site.versions.node }}
|
||||
- Yarn {{ site.versions.yarn }}
|
||||
- MongoDB {{ site.versions.mongodb }}
|
||||
- Redis {{ site.versions.redis }}
|
||||
- Node {{ config.versions.node }}
|
||||
- Yarn {{ config.versions.yarn }}
|
||||
- MongoDB {{ config.versions.mongodb }}
|
||||
- Redis {{ config.versions.redis }}
|
||||
|
||||
An optional dependency for Talk is
|
||||
[Docker](https://www.docker.com/community-edition#/download){:target="_blank"}.
|
||||
[Docker](https://www.docker.com/community-edition#/download).
|
||||
It is used during [development](#development) to set up the database and can be
|
||||
used to [install via Docker](#installation-from-docker). We have tested Talk
|
||||
and this documentation with versions {{ site.versions.docker }}.
|
||||
and this documentation with versions {{ config.versions.docker }}.
|
||||
|
||||
Another optional dependency for Talk is
|
||||
[Docker Compose](https://docs.docker.com/compose/install/){:target="_blank"}. It
|
||||
[Docker Compose](https://docs.docker.com/compose/install/). It
|
||||
can be used to setup your environment easily for testing. We have tested Talk
|
||||
and this documentation with versions {{ site.versions.docker_compose }}.
|
||||
and this documentation with versions {{ config.versions.docker_compose }}.
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -44,12 +42,12 @@ provided docker image. The following is a `docker-compose.yml` file that can
|
||||
be used to setup Talk:
|
||||
|
||||
```yml
|
||||
{% include files/docker-compose.yml %}
|
||||
|
||||
```
|
||||
|
||||
This is the bare minimum needed to run the demo, for more configuration
|
||||
variables, check out the [Configuration]({{ "/configuration/" | relative_url }}) section.
|
||||
{: .code-aside}
|
||||
variables, check out the [Configuration](./configuration/) section.
|
||||
|
||||
|
||||
And you can then start it with:
|
||||
|
||||
@@ -71,7 +69,7 @@ Creating redis_1 ... done
|
||||
Creating talk_1 ...
|
||||
Creating talk_1 ... done
|
||||
```
|
||||
{: .no-copy }
|
||||
|
||||
|
||||
And when you run `docker-compose ps`, you should see something like:
|
||||
|
||||
@@ -82,7 +80,7 @@ mongo_1 docker-entrypoint.sh mongod Up 27017/tcp
|
||||
redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
|
||||
talk_1 yarn start Up 0.0.0.0:3000->3000/tcp
|
||||
```
|
||||
{: .no-copy }
|
||||
|
||||
|
||||
Continue onto the [Running](#running) section for details on how to complete the
|
||||
installation and get started using Talk.
|
||||
@@ -107,8 +105,8 @@ yarn
|
||||
yarn build
|
||||
```
|
||||
|
||||
You can either setup the required databases by visiting the docs for [MongoDB](https://docs.mongodb.com/manual/installation/){:target="_blank"} and
|
||||
[Redis](https://redis.io/topics/quickstart){:target="_blank"}, or using the following commands which will leverage Docker:
|
||||
You can either setup the required databases by visiting the docs for [MongoDB](https://docs.mongodb.com/manual/installation/) and
|
||||
[Redis](https://redis.io/topics/quickstart), or using the following commands which will leverage Docker:
|
||||
|
||||
```bash
|
||||
docker run -p 127.0.0.1:6379:6379 -d redis
|
||||
@@ -118,7 +116,7 @@ docker run -p 127.0.0.1:27017:27017 -d mongo
|
||||
Didn't work? Sometimes you may already have a container running on these ports,
|
||||
run `docker ps` to see what other containers you have running and running
|
||||
`docker stop <id>` on those containers to stop them.
|
||||
{: .code-aside}
|
||||
|
||||
|
||||
_This documentation assumes that you will be running MongoDB on
|
||||
`127.0.0.1:27017` and Redis on `127.0.0.1:6379`. The above Docker commands bind
|
||||
@@ -140,9 +138,9 @@ TALK_FACEBOOK_APP_SECRET=A-Facebook-App-Secret
|
||||
```
|
||||
|
||||
This is only the bare minimum needed to run the demo, for more configuration
|
||||
variables, check out the [Configuration]({{ "/configuration/" | relative_url }}) section. Facebook login above
|
||||
variables, check out the [Configuration](./configuration/) section. Facebook login above
|
||||
will definitely not work unless you change those values as well.
|
||||
{: .code-aside}
|
||||
|
||||
|
||||
You can now start the application by running:
|
||||
|
||||
@@ -156,17 +154,17 @@ installation and get started using Talk.
|
||||
## Running
|
||||
|
||||
You can now navigate to
|
||||
[http://127.0.0.1:3000/admin/install](http://127.0.0.1:3000/admin/install){:target="_blank"}
|
||||
[http://127.0.0.1:3000/admin/install](http://127.0.0.1:3000/admin/install)
|
||||
and go through the admin installation. There you will be prompted to create your
|
||||
first admin account, and specify the domain whitelist for domains that are
|
||||
allowed to have the comment box on.
|
||||
|
||||
_During development, ensure you whitelist 127.0.0.1:3000 otherwise the
|
||||
[http://127.0.0.1:3000/](http://127.0.0.1:3000/){:target="_blank"} page will not
|
||||
[http://127.0.0.1:3000/](http://127.0.0.1:3000/) page will not
|
||||
load._
|
||||
|
||||
Once you've completed the installation, you can visit
|
||||
[http://127.0.0.1:3000/](http://127.0.0.1:3000/){:target="_blank"} where you can
|
||||
[http://127.0.0.1:3000/](http://127.0.0.1:3000/) where you can
|
||||
view our development area where we test out features in Talk where you can write
|
||||
comments and see them in the admin interface where you can do moderation and
|
||||
reconfigure the user experience.
|
||||
@@ -178,8 +176,6 @@ Talk. To demonstrate what your own self-hosted copy of Talk can do, below
|
||||
you'll find a demo that can be used to test the copy that is running now on your
|
||||
machine.
|
||||
|
||||
{% include demo.html %}
|
||||
|
||||
At this point you've successfully installed, configured, and ran your very own
|
||||
instance of Talk! Continue through this documentation on this site to learn more
|
||||
on how to configure, develop with, and contribute to Talk!
|
||||
+14
-17
@@ -3,15 +3,13 @@ title: Installation from Docker
|
||||
permalink: /installation-from-docker/
|
||||
---
|
||||
|
||||
{% include badges.html %}
|
||||
|
||||
[Docker](https://www.docker.com/community-edition#/download){:target="_blank"} {{ site.versions.docker }} and
|
||||
[Docker Compose](https://docs.docker.com/compose/install/){:target="_blank"} {{ site.versions.docker_compose }} are required
|
||||
[Docker](https://www.docker.com/community-edition#/download) {{ site.versions.docker }} and
|
||||
[Docker Compose](https://docs.docker.com/compose/install/) {{ site.versions.docker_compose }} are required
|
||||
to perform installation via Docker. This is the recommended way to deploy the
|
||||
application when used in production.
|
||||
|
||||
Available as [coralproject/talk](https://hub.docker.com/r/coralproject/talk/){:target="_blank"} on
|
||||
Docker Hub. [(latest/Dockerfile)](https://github.com/coralproject/talk/blob/master/Dockerfile){:target="_blank"}
|
||||
Available as [coralproject/talk](https://hub.docker.com/r/coralproject/talk/) on
|
||||
Docker Hub. [(latest/Dockerfile)](https://github.com/coralproject/talk/blob/master/Dockerfile)
|
||||
|
||||
Images are tagged using the following notation:
|
||||
|
||||
@@ -27,7 +25,7 @@ Images are tagged using the following notation:
|
||||
extending Talk or are sure of a specific version you want to freeze.
|
||||
|
||||
We provide tags with `*-onbuild`
|
||||
[(onbuild/Dockerfile)](https://github.com/coralproject/talk/blob/master/Dockerfile.onbuild){:target="_blank"}
|
||||
[(onbuild/Dockerfile)](https://github.com/coralproject/talk/blob/master/Dockerfile.onbuild)
|
||||
that can be used for easy plugin integration and acts as a customization
|
||||
endpoint. To use this image tag, refer to the
|
||||
[onbuild](#onbuild) section.
|
||||
@@ -39,12 +37,11 @@ provided docker image. The following is a `docker-compose.yml` file that can
|
||||
be used to setup Talk:
|
||||
|
||||
```yml
|
||||
{% include files/docker-compose.yml %}
|
||||
```
|
||||
|
||||
This is the bare minimum needed to start Talk, for more configuration
|
||||
variables, check out the [Configuration]({{ "/configuration/" | relative_url }}) section.
|
||||
{: .code-aside}
|
||||
variables, check out the [Configuration](./configuration/) section.
|
||||
|
||||
|
||||
And you can then start it with:
|
||||
|
||||
@@ -66,7 +63,7 @@ Creating redis_1 ... done
|
||||
Creating talk_1 ...
|
||||
Creating talk_1 ... done
|
||||
```
|
||||
{: .no-copy }
|
||||
|
||||
|
||||
And when you run `docker-compose ps`, you should see something like:
|
||||
|
||||
@@ -77,9 +74,9 @@ mongo_1 docker-entrypoint.sh mongod Up 27017/tcp
|
||||
redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
|
||||
talk_1 yarn start Up 0.0.0.0:3000->3000/tcp
|
||||
```
|
||||
{: .no-copy }
|
||||
|
||||
At this stage, you should refer to the [configuration]({{ "/configuration/" | relative_url }}) for
|
||||
|
||||
At this stage, you should refer to the [configuration](./configuration/) for
|
||||
configuration variables that are specific to your installation.
|
||||
|
||||
## Onbuild
|
||||
@@ -99,9 +96,9 @@ docker build -t my-awesome-talk-image --build-arg TALK_DEFAULT_LANG=es .
|
||||
```
|
||||
|
||||
Don't forget to replace `my-awesome-talk-image` with your own image name, and
|
||||
specify your build variables with the `--build-arg`. Refer to [Dockerfile.onbuild](https://github.com/coralproject/talk/blob/master/Dockerfile.onbuild){:target="_blank"} for the
|
||||
specify your build variables with the `--build-arg`. Refer to [Dockerfile.onbuild](https://github.com/coralproject/talk/blob/master/Dockerfile.onbuild) for the
|
||||
available build variables.
|
||||
{: .code-aside}
|
||||
|
||||
|
||||
This accomplishes a lot:
|
||||
|
||||
@@ -110,8 +107,8 @@ This accomplishes a lot:
|
||||
2. Installs any new dependencies that were required by any new plugins.
|
||||
3. Builds the new static bundles so that they are ready to serve when the image
|
||||
is running.
|
||||
4. Specifies a build time variable [TALK_DEFAULT_LANG]({{ "/advanced-configuration/#talk_default_lang" | relative_url }}){:.param}. Refer
|
||||
to [Dockerfile.onbuild](https://github.com/coralproject/talk/blob/master/Dockerfile.onbuild){:target="_blank"} for the
|
||||
4. Specifies a build time variable [TALK_DEFAULT_LANG](./advanced-configuration/#talk_default_lang). Refer
|
||||
to [Dockerfile.onbuild](https://github.com/coralproject/talk/blob/master/Dockerfile.onbuild) for the
|
||||
available build variables.
|
||||
|
||||
This means that you can create a repository for your organization that simply
|
||||
+7
-9
@@ -3,13 +3,11 @@ title: Installation from Source
|
||||
permalink: /installation-from-source/
|
||||
---
|
||||
|
||||
{% include badges.html %}
|
||||
|
||||
To install Talk from Source, ensure that you have Node version
|
||||
{{ site.versions.node }}. Installing via source is the recommended method when
|
||||
developing as it give you the best tooling. We release versions using semantic
|
||||
versioning, and do so to our
|
||||
[Github Releases](https://github.com/coralproject/talk/releases){:target="_blank"}
|
||||
[Github Releases](https://github.com/coralproject/talk/releases)
|
||||
page. There you can download archives of older versions or the latest release.
|
||||
The examples following will download the latest code on our master branch.
|
||||
|
||||
@@ -32,8 +30,8 @@ yarn
|
||||
yarn build
|
||||
```
|
||||
|
||||
You can either setup the required databases by visiting the docs for [MongoDB](https://docs.mongodb.com/manual/installation/){:target="_blank"} and
|
||||
[Redis](https://redis.io/topics/quickstart){:target="_blank"}, or using the following commands which will leverage Docker:
|
||||
You can either setup the required databases by visiting the docs for [MongoDB](https://docs.mongodb.com/manual/installation/) and
|
||||
[Redis](https://redis.io/topics/quickstart), or using the following commands which will leverage Docker:
|
||||
|
||||
```bash
|
||||
docker run -p 127.0.0.1:6379:6379 -d redis
|
||||
@@ -43,7 +41,7 @@ docker run -p 127.0.0.1:27017:27017 -d mongo
|
||||
Didn't work? Sometimes you may already have a container running on these ports,
|
||||
run `docker ps` to see what other containers you have running and running
|
||||
`docker stop <id>` on those containers to stop them.
|
||||
{: .code-aside}
|
||||
|
||||
|
||||
_This documentation assumes that you will be running MongoDB on
|
||||
`127.0.0.1:27017` and Redis on `127.0.0.1:6379`. The above Docker commands bind
|
||||
@@ -65,10 +63,10 @@ TALK_FACEBOOK_APP_SECRET=A-Facebook-App-Secret
|
||||
```
|
||||
|
||||
This is the bare minimum needed to start Talk, for more configuration
|
||||
variables, check out the [Configuration]({{ "/configuration/" | relative_url }})
|
||||
variables, check out the [Configuration](./configuration/)
|
||||
section. Facebook login above will definitely not work unless you change those
|
||||
values as well.
|
||||
{: .code-aside}
|
||||
|
||||
|
||||
You can now start the application by running:
|
||||
|
||||
@@ -76,5 +74,5 @@ You can now start the application by running:
|
||||
yarn watch:server
|
||||
```
|
||||
|
||||
At this stage, you should refer to the [configuration]({{ "/configuration/" | relative_url }}) for
|
||||
At this stage, you should refer to the [configuration](./configuration/) for
|
||||
configuration variables that are specific to your installation.
|
||||
+7
-10
@@ -6,18 +6,16 @@ class: configuration
|
||||
|
||||
Talk requires configuration in order to customize the installation. The default
|
||||
behavior is to load it's configuration from the environment, following the
|
||||
[12 Factor App Manifesto](https://12factor.net/){:target="_blank"}.
|
||||
[12 Factor App Manifesto](https://12factor.net/).
|
||||
In development, you can specify configuration in a file named `.env` and it will
|
||||
be loaded into the environment when you run `yarn watch:server`.
|
||||
|
||||
The following variables do not have defaults, and are **required** to start your
|
||||
instance of Talk:
|
||||
|
||||
{% include toc.html %}
|
||||
|
||||
If you've already configured your application with the required configuration,
|
||||
you can further customize it's behavior by applying
|
||||
[Advanced Configuration]({{ "/advanced-configuration/" | relative_url }}).
|
||||
[Advanced Configuration](./advanced-configuration/).
|
||||
|
||||
## TALK_MONGO_URL
|
||||
|
||||
@@ -28,7 +26,7 @@ form of:
|
||||
TALK_MONGO_URL=mongodb://<DATABASE USER>:<DATABASE PASSWORD>@<DATABASE HOST>:<DATABASE PORT>/<DATABASE NAME>
|
||||
```
|
||||
|
||||
Refer to [connection string uri format](https://docs.mongodb.com/manual/reference/connection-string/){:target="_blank"}
|
||||
Refer to [connection string uri format](https://docs.mongodb.com/manual/reference/connection-string/)
|
||||
for the detailed url scheme of the MongoDB url.
|
||||
|
||||
## TALK_REDIS_URL
|
||||
@@ -47,7 +45,7 @@ where I want to use database #2, I could set the `TALK_REDIS_URL` to:
|
||||
TALK_REDIS_URL=redis://127.0.0.1:6379/2
|
||||
```
|
||||
|
||||
Refer to [uri scheme](http://www.iana.org/assignments/uri-schemes/prov/redis){:target="_blank"}
|
||||
Refer to [uri scheme](http://www.iana.org/assignments/uri-schemes/prov/redis)
|
||||
for the detailed url scheme of the Redis url.
|
||||
|
||||
## TALK_ROOT_URL
|
||||
@@ -59,8 +57,8 @@ TALK_ROOT_URL=<SCHEME>://<HOST>:<PORT?>/<PATHNAME>
|
||||
```
|
||||
|
||||
For example, if we installed our application onto the `talk.coralproject.net`
|
||||
domain, where we used a proxy like [Caddy](https://caddyserver.com){:target="_blank"}
|
||||
or [Nginx](https://nginx.org){:target="_blank"} to perform SSL termination, then
|
||||
domain, where we used a proxy like [Caddy](https://caddyserver.com)
|
||||
or [Nginx](https://nginx.org) to perform SSL termination, then
|
||||
`TALK_ROOT_URL` would be:
|
||||
|
||||
```plain
|
||||
@@ -79,8 +77,7 @@ An example for `TALK_JWT_SECRET` could be:
|
||||
```plain
|
||||
TALK_JWT_SECRET=jX9y8G2ApcVLwyL{$6s3
|
||||
```
|
||||
{: .no-copy}
|
||||
|
||||
Be default, we sign our tokens with HMAC using a SHA-256 hash algorithm. If you
|
||||
want to change the signing algorithm, or use multiple signing/verifying keys,
|
||||
refer to our [Advanced Configuration]({{ "/advanced-configuration/" | relative_url }}) documentation.
|
||||
refer to our [Advanced Configuration](./advanced-configuration/) documentation.
|
||||
+59
-68
@@ -6,28 +6,26 @@ class: configuration
|
||||
|
||||
Talk requires configuration in order to customize the installation. The default
|
||||
behavior is to load its configuration from the environment, following the
|
||||
[12 Factor App Manifesto](https://12factor.net/){:target="_blank"}.
|
||||
[12 Factor App Manifesto](https://12factor.net/).
|
||||
In development, you can specify configuration in a file named `.env` and it will
|
||||
be loaded into the environment when you run `yarn watch:server`.
|
||||
|
||||
The following variables have defaults, and are _optional_ to start your
|
||||
instance of Talk:
|
||||
|
||||
{% include toc.html %}
|
||||
|
||||
If this is your first time configuring Talk, ensure you've also added the
|
||||
[Required Configuration]({{ "/configuration/" | relative_url }}) as well,
|
||||
[Required Configuration](./configuration) as well,
|
||||
otherwise the application will fail to start.
|
||||
|
||||
## TALK_CACHE_EXPIRY_COMMENT_COUNT
|
||||
|
||||
Configure the duration for which comment counts are cached for, parsed by
|
||||
[ms](https://www.npmjs.com/package/ms){:target="_blank"}. (Default `1hr`)
|
||||
[ms](https://www.npmjs.com/package/ms). (Default `1hr`)
|
||||
|
||||
## TALK_DEFAULT_LANG
|
||||
|
||||
This is a **Build Variable** and must be consumed during build. If using the
|
||||
[Docker-onbuild]({{ "/installation-from-docker/#onbuild" | relative_url }})
|
||||
[Docker-onbuild](./installation-from-docker/#onbuild)
|
||||
image you can specify it with `--build-arg TALK_DEFAULT_LANG=en`.
|
||||
|
||||
Specify the default translation language. (Default `en`)
|
||||
@@ -35,7 +33,7 @@ Specify the default translation language. (Default `en`)
|
||||
## TALK_DEFAULT_STREAM_TAB
|
||||
|
||||
This is a **Build Variable** and must be consumed during build. If using the
|
||||
[Docker-onbuild]({{ "/installation-from-docker/#onbuild" | relative_url }})
|
||||
[Docker-onbuild](./installation-from-docker/#onbuild)
|
||||
image you can specify it with `--build-arg TALK_DEFAULT_STREAM_TAB=all`.
|
||||
|
||||
Specify the default stream tab in the admin. (Default `all`)
|
||||
@@ -47,23 +45,23 @@ When `TRUE`, disables flagging of comments that match the suspect word filter. (
|
||||
## TALK_DISABLE_EMBED_POLYFILL
|
||||
|
||||
When set to `TRUE`, the build process will not include the
|
||||
[babel-polyfill](https://babeljs.io/docs/usage/polyfill/){:target="_blank"}
|
||||
[babel-polyfill](https://babeljs.io/docs/usage/polyfill/)
|
||||
in the embed.js target that is loaded on the page that loads the embed. (Default
|
||||
`FALSE`)
|
||||
|
||||
## TALK_DISABLE_STATIC_SERVER
|
||||
|
||||
When `TRUE`, it will not mount the static asset serving routes on the router.
|
||||
This is used primarily in conjunction with [TALK_STATIC_URI](#talk_static_uri){: .param}
|
||||
This is used primarily in conjunction with [TALK_STATIC_URI](#talk_static_uri)
|
||||
when the static assets are being hosted on an external domain. (Default `FALSE`)
|
||||
|
||||
## TALK_FACEBOOK_APP_ID
|
||||
|
||||
The Facebook App ID for your Facebook Login enabled app. You can learn more
|
||||
about getting a Facebook App ID at the
|
||||
[Facebook Developers Portal](https://developers.facebook.com){:target="_blank"}
|
||||
[Facebook Developers Portal](https://developers.facebook.com)
|
||||
or by visiting the
|
||||
[Creating an App ID](https://developers.facebook.com/docs/apps/register){:target="_blank"}
|
||||
[Creating an App ID](https://developers.facebook.com/docs/apps/register)
|
||||
guide. This is only required while the `talk-plugin-facebook-auth` plugin is
|
||||
enabled.
|
||||
|
||||
@@ -71,23 +69,23 @@ enabled.
|
||||
|
||||
The Facebook App Secret for your Facebook Login enabled app. You can learn more
|
||||
about getting a Facebook App Secret at the
|
||||
[Facebook Developers Portal](https://developers.facebook.com){:target="_blank"}
|
||||
[Facebook Developers Portal](https://developers.facebook.com)
|
||||
or by visiting the
|
||||
[Creating an App ID](https://developers.facebook.com/docs/apps/register){:target="_blank"}
|
||||
[Creating an App ID](https://developers.facebook.com/docs/apps/register)
|
||||
guide. This is only required while the `talk-plugin-facebook-auth` plugin is
|
||||
enabled.
|
||||
|
||||
## TALK_HELMET_CONFIGURATION
|
||||
|
||||
A JSON string representing the configuration passed to the
|
||||
[helmet](https://github.com/helmetjs/helmet){:target="_blank"} middleware. It
|
||||
can be used to disable features like [HSTS](https://helmetjs.github.io/docs/hsts/){:target="_blank"}
|
||||
[helmet](https://github.com/helmetjs/helmet) middleware. It
|
||||
can be used to disable features like [HSTS](https://helmetjs.github.io/docs/hsts/)
|
||||
and others by simply providing the configuration as detailed on the
|
||||
[helmet docs](https://helmetjs.github.io/docs/){:target="_blank"}. (Default `{}`)
|
||||
[helmet docs](https://helmetjs.github.io/docs/). (Default `{}`)
|
||||
|
||||
For sites that do not have SSL enabled on all their pages across their domain,
|
||||
it is critical that you specify the following to disable the
|
||||
[HSTS](https://helmetjs.github.io/docs/hsts/){:target="_blank"} headers from
|
||||
[HSTS](https://helmetjs.github.io/docs/hsts/) headers from
|
||||
being sent:
|
||||
|
||||
```plain
|
||||
@@ -106,11 +104,10 @@ set to `TRUE` after you've deployed Talk. (Default `FALSE`)
|
||||
|
||||
The algorithm used to sign/verify JWTs used for session management. Read up
|
||||
about alternative algorithms on the
|
||||
[jsonwebtoken](https://www.npmjs.com/package/jsonwebtoken#algorithms-supported){:target="_blank"}
|
||||
[jsonwebtoken](https://www.npmjs.com/package/jsonwebtoken#algorithms-supported)
|
||||
package. (Default `HS256`)
|
||||
|
||||
### Shared Secret
|
||||
{:.no_toc}
|
||||
|
||||
You would use a shared secret when you have no need to share the tokens with
|
||||
other applications in your organization.
|
||||
@@ -128,10 +125,8 @@ These must be provided in the form:
|
||||
"secret": "<my secret key>"
|
||||
}
|
||||
```
|
||||
{: .no-copy}
|
||||
|
||||
### Asymmetric Secret
|
||||
{:.no_toc}
|
||||
|
||||
You would use a asymmetric secret when you want to share the token in your
|
||||
organization, and would like to pass an existing auth token to Talk in order to
|
||||
@@ -154,7 +149,6 @@ These must be provided in the form:
|
||||
"private": "<the PEM encoded private key>"
|
||||
}
|
||||
```
|
||||
{: .no-copy}
|
||||
|
||||
Note that when using the asymmetric keys as discussed above, the certificates
|
||||
must have their newlines replaced with `\\n`, this is to ensure that the
|
||||
@@ -162,19 +156,19 @@ newlines are preserved after JSON decoding. Not doing so will result in parsing
|
||||
errors.
|
||||
|
||||
To assist with this process, we have developed a tool that can generate new
|
||||
certificates that match our required format: [coralcert](https://github.com/coralproject/coralcert){:target="_blank"}.
|
||||
This tool can generate RSA and ECDSA certificates, check it's [README](https://github.com/coralproject/coralcert){:target="_blank"}
|
||||
certificates that match our required format: [coralcert](https://github.com/coralproject/coralcert).
|
||||
This tool can generate RSA and ECDSA certificates, check it's [README](https://github.com/coralproject/coralcert)
|
||||
for more details.
|
||||
|
||||
## TALK_JWT_AUDIENCE
|
||||
|
||||
The audience [aud](https://tools.ietf.org/html/rfc7519#section-4.1.3){:target="_blank"}
|
||||
The audience [aud](https://tools.ietf.org/html/rfc7519#section-4.1.3)
|
||||
claim for login JWT tokens. (Default `talk`)
|
||||
|
||||
## TALK_JWT_CLEAR_COOKIE_LOGOUT
|
||||
|
||||
When `FALSE`, Talk will not clear the cookie with name
|
||||
[TALK_JWT_SIGNING_COOKIE_NAME](#talk_jwt_signing_cookie_name){: .param} when logging out
|
||||
[TALK_JWT_SIGNING_COOKIE_NAME](#talk_jwt_signing_cookie_name) when logging out
|
||||
but will still blacklist the token. (Default `TRUE`)
|
||||
|
||||
## TALK_JWT_COOKIE_NAME
|
||||
@@ -185,8 +179,8 @@ user. (Default `authorization`)
|
||||
## TALK_JWT_COOKIE_NAMES
|
||||
|
||||
The different cookie names to check for a JWT token in, separated by a `,`. By
|
||||
default, we always use the value of [TALK_JWT_COOKIE_NAME](#talk_jwt_cookie_name){: .param}
|
||||
and [TALK_JWT_SIGNING_COOKIE_NAME](#talk_jwt_signing_cookie_name){: .param} for this
|
||||
default, we always use the value of [TALK_JWT_COOKIE_NAME](#talk_jwt_cookie_name)
|
||||
and [TALK_JWT_SIGNING_COOKIE_NAME](#talk_jwt_signing_cookie_name) for this
|
||||
value. Any additional cookie names specified here will be appended to the list
|
||||
of cookie names to inspect.
|
||||
|
||||
@@ -207,30 +201,30 @@ Would mean we would check the following cookies (in order) for a valid token:
|
||||
## TALK_JWT_DISABLE_AUDIENCE
|
||||
|
||||
When `TRUE`, Talk will not verify or sign JWT’s with an audience
|
||||
[aud](https://tools.ietf.org/html/rfc7519#section-4.1.3){:target="_blank"}
|
||||
claim, even if [TALK_JWT_AUDIENCE](#talk_jwt_audience){: .param} is set. (Default `FALSE`)
|
||||
[aud](https://tools.ietf.org/html/rfc7519#section-4.1.3)
|
||||
claim, even if [TALK_JWT_AUDIENCE](#talk_jwt_audience) is set. (Default `FALSE`)
|
||||
|
||||
## TALK_JWT_DISABLE_ISSUER
|
||||
|
||||
When `TRUE`, Talk will not verify or sign JWT’s with an issuer
|
||||
[iss](https://tools.ietf.org/html/rfc7519#section-4.1.1){:target="_blank"}
|
||||
claim, even if [TALK_JWT_ISSUER](#talk_jwt_issuer){: .param} is set. (Default `FALSE`)
|
||||
[iss](https://tools.ietf.org/html/rfc7519#section-4.1.1)
|
||||
claim, even if [TALK_JWT_ISSUER](#talk_jwt_issuer) is set. (Default `FALSE`)
|
||||
|
||||
## TALK_JWT_EXPIRY
|
||||
|
||||
The expiry duration [exp](https://tools.ietf.org/html/rfc7519#section-4.1.4){:target="_blank"}
|
||||
The expiry duration [exp](https://tools.ietf.org/html/rfc7519#section-4.1.4)
|
||||
for the tokens issued for logged in sessions, parsed by
|
||||
[ms](https://www.npmjs.com/package/ms){:target="_blank"}. (Default `1 day`)
|
||||
[ms](https://www.npmjs.com/package/ms). (Default `1 day`)
|
||||
|
||||
If the user logs out, then an entry is created in the token blacklist of it's
|
||||
[jti](https://tools.ietf.org/html/rfc7519#section-4.1.7){:target="_blank"} for
|
||||
[jti](https://tools.ietf.org/html/rfc7519#section-4.1.7) for
|
||||
set to be automatically removed at it's expiry time. It is important for this
|
||||
reason to create reasonable expiry lengths as to minimize the storage overhead.
|
||||
|
||||
## TALK_JWT_ISSUER
|
||||
|
||||
The issuer [iss](https://tools.ietf.org/html/rfc7519#section-4.1.1){:target="_blank"}
|
||||
claim for login JWT tokens. (Defaults to value of [TALK_ROOT_URL]({{ "/configuration/#talk_root_url" | relative_url }}){: .param})
|
||||
The issuer [iss](https://tools.ietf.org/html/rfc7519#section-4.1.1)
|
||||
claim for login JWT tokens. (Defaults to value of [TALK_ROOT_URL](./configuration/#talk_root_url))
|
||||
|
||||
## TALK_JWT_SECRET
|
||||
|
||||
@@ -241,7 +235,6 @@ An example for `TALK_JWT_SECRET` could be:
|
||||
```plain
|
||||
TALK_JWT_SECRET=jX9y8G2ApcVLwyL{$6s3
|
||||
```
|
||||
{: .no-copy}
|
||||
|
||||
You can also express this secret in the JSON syntax:
|
||||
|
||||
@@ -249,50 +242,48 @@ You can also express this secret in the JSON syntax:
|
||||
TALK_JWT_SECRET={"secret": "jX9y8G2ApcVLwyL{$6s3"}
|
||||
```
|
||||
|
||||
Refer to the documentation for [TALK_JWT_ALG](#talk_jwt_alg){: .param} for other signing
|
||||
Refer to the documentation for [TALK_JWT_ALG](#talk_jwt_alg) for other signing
|
||||
methods and other forms of the `TALK_JWT_SECRET`. If you are interested in using
|
||||
multiple keys, then refer to [TALK_JWT_SECRETS](#talk_jwt_secrets){: .param}.
|
||||
multiple keys, then refer to [TALK_JWT_SECRETS](#talk_jwt_secrets).
|
||||
|
||||
## TALK_JWT_SECRETS
|
||||
|
||||
Used when specifying multiple secrets used for key rotations. This is a JSON
|
||||
encoded array, where each element matches the JWT Secret pattern. When this is
|
||||
used, you do not need to specify a [TALK_JWT_SECRET](#talk_jwt_secret){: .param} as this
|
||||
used, you do not need to specify a [TALK_JWT_SECRET](#talk_jwt_secret) as this
|
||||
will take precedence. **The first secret in `TALK_JWT_SECRETS` will be used for
|
||||
signing, and must contain a private key if used with an asymmetric algorithm.**
|
||||
|
||||
All secrets should specify a `kid` field which uniquely identifies a given key
|
||||
and will sign all tokens with that `kid` for later identification.
|
||||
|
||||
When the value of [TALK_JWT_ALG](#talk_jwt_alg){: .param} is a `HS*` value, then the value
|
||||
When the value of [TALK_JWT_ALG](#talk_jwt_alg) is a `HS*` value, then the value
|
||||
of the `TALK_JWT_SECRETS` should take the form:
|
||||
|
||||
```plain
|
||||
TALK_JWT_SECRETS=[{"kid": "1", "secret": "my-super-secret"}, {"kid": "2", "secret": "my-other-super-secret"}]
|
||||
```
|
||||
{: .no-copy}
|
||||
|
||||
Note that the secret is stored in a JSON object, keyed by `secret`. This is only
|
||||
needed when specifying in the multiple secrets for `TALK_JWT_SECRETS`, but may
|
||||
be used to specify the single [TALK_JWT_SECRET](#talk_jwt_secret){: .param}.
|
||||
{: .code-aside}
|
||||
be used to specify the single [TALK_JWT_SECRET](#talk_jwt_secret).
|
||||
|
||||
When the value of [TALK_JWT_ALG](#talk_jwt_alg){: .param} is **not** a `HS*` value, then
|
||||
|
||||
When the value of [TALK_JWT_ALG](#talk_jwt_alg) is **not** a `HS*` value, then
|
||||
the value of the `TALK_JWT_SECRETS` should take the form:
|
||||
|
||||
```plain
|
||||
TALK_JWT_SECRETS=[{"kid": "1", "private": "<my private key>", "public": "<my public key>"}, ...]
|
||||
```
|
||||
{: .no-copy}
|
||||
|
||||
Refer to the documentation on the [TALK_JWT_ALG](#talk_jwt_alg){: .param} for more
|
||||
Refer to the documentation on the [TALK_JWT_ALG](#talk_jwt_alg) for more
|
||||
information on what to store in these parameters.
|
||||
{: .code-aside}
|
||||
|
||||
|
||||
## TALK_JWT_SIGNING_COOKIE_NAME
|
||||
|
||||
The default cookie name that is use to set a cookie containing a JWT that was
|
||||
issued by Talk. (Defaults to value of [TALK_JWT_COOKIE_NAME](#talk_jwt_cookie_name){: .param})
|
||||
issued by Talk. (Defaults to value of [TALK_JWT_COOKIE_NAME](#talk_jwt_cookie_name))
|
||||
|
||||
## TALK_JWT_USER_ID_CLAIM
|
||||
|
||||
@@ -319,15 +310,15 @@ TALK_JWT_USER_ID_CLAIM=user.id
|
||||
|
||||
The keepalive timeout that should be used to send keep alive messages through
|
||||
the websocket to keep the socket alive, parsed by
|
||||
[ms](https://www.npmjs.com/package/ms){:target="_blank"}. (Default `30s`)
|
||||
[ms](https://www.npmjs.com/package/ms). (Default `30s`)
|
||||
|
||||
## TALK_RECAPTCHA_PUBLIC
|
||||
|
||||
Setting a reCAPTCHA Public and Secret key will enable and require reCAPTCHA upon multiple failed login attempts.
|
||||
|
||||
Client secret used for enabling reCAPTCHA powered logins. If
|
||||
[TALK_RECAPTCHA_SECRET](#talk_recaptcha_secret){: .param} and
|
||||
[TALK_RECAPTCHA_PUBLIC](#talk_recaptcha_public){: .param} are not provided it will instead
|
||||
[TALK_RECAPTCHA_SECRET](#talk_recaptcha_secret) and
|
||||
[TALK_RECAPTCHA_PUBLIC](#talk_recaptcha_public) are not provided it will instead
|
||||
default to providing only a time based lockout. Refer to
|
||||
[reCAPTCHA](https://www.google.com/recaptcha/intro/index.html) for information
|
||||
on getting an account setup.
|
||||
@@ -335,8 +326,8 @@ on getting an account setup.
|
||||
## TALK_RECAPTCHA_SECRET
|
||||
|
||||
Server secret used for enabling reCAPTCHA powered logins. If
|
||||
[TALK_RECAPTCHA_SECRET](#talk_recaptcha_secret){: .param} and
|
||||
[TALK_RECAPTCHA_PUBLIC](#talk_recaptcha_public){: .param} are not provided it will instead
|
||||
[TALK_RECAPTCHA_SECRET](#talk_recaptcha_secret) and
|
||||
[TALK_RECAPTCHA_PUBLIC](#talk_recaptcha_public) are not provided it will instead
|
||||
default to providing only a time based lockout. Refer to
|
||||
[reCAPTCHA](https://www.google.com/recaptcha/intro/index.html) for information
|
||||
on getting an account setup.
|
||||
@@ -346,14 +337,14 @@ on getting an account setup.
|
||||
Configuration overrides for the redis client configuration in a JSON encoded
|
||||
string. Configuration is overridden as the second parameter to the redis client
|
||||
constructor, and is merged with default configuration. Refer to the
|
||||
[ioredis](https://github.com/luin/ioredis){:target="_blank"} docs on the
|
||||
[ioredis](https://github.com/luin/ioredis) docs on the
|
||||
available options. (Default `{}`)
|
||||
|
||||
## TALK_REDIS_CLUSTER_CONFIGURATION
|
||||
|
||||
The JSON encoded form of the cluster nodes. Only required when
|
||||
[TALK_REDIS_CLUSTER_MODE](#talk_redis_cluster_mode){: .param} is `CLUSTER`. See
|
||||
[https://github.com/luin/ioredis#cluster](https://github.com/luin/ioredis#cluster){:target="_blank"}
|
||||
[TALK_REDIS_CLUSTER_MODE](#talk_redis_cluster_mode) is `CLUSTER`. See
|
||||
[https://github.com/luin/ioredis#cluster](https://github.com/luin/ioredis#cluster)
|
||||
for configuration details. (Default `[]`)
|
||||
|
||||
## TALK_REDIS_CLUSTER_MODE
|
||||
@@ -365,17 +356,17 @@ The cluster mode of the redis client. Can be either `NONE` or `CLUSTER`.
|
||||
|
||||
The time factor that will be multiplied against the current attempt count
|
||||
between attempts to connect to redis, parsed by
|
||||
[ms](https://www.npmjs.com/package/ms){:target="_blank"}. (Default `500 ms`)
|
||||
[ms](https://www.npmjs.com/package/ms). (Default `500 ms`)
|
||||
|
||||
## TALK_REDIS_RECONNECTION_BACKOFF_MINIMUM_TIME
|
||||
|
||||
The minimum time used to delay before attempting to reconnect to redis, parsed
|
||||
by [ms](https://www.npmjs.com/package/ms){:target="_blank"}. (Default `1 sec`)
|
||||
by [ms](https://www.npmjs.com/package/ms). (Default `1 sec`)
|
||||
|
||||
## TALK_ROOT_URL_MOUNT_PATH
|
||||
|
||||
When set to `TRUE`, the routes will be mounted onto the `<PATHNAME>` component
|
||||
of the [TALK_ROOT_URL]({{ "/configuration/#talk_root_url" | relative_url }}){: .param}.
|
||||
of the [TALK_ROOT_URL](./configuration/#talk_root_url).
|
||||
You would use this when your upstream proxy cannot strip the prefix from the
|
||||
url. (Default `FALSE`)
|
||||
|
||||
@@ -423,12 +414,12 @@ Used to set the uri where the static assets should be served from. This is used
|
||||
when you want to upload the static assets through your build process to a
|
||||
service like Google Cloud Storage or Amazon S3 and you would then specify the
|
||||
CDN/Storage url. (Defaults to value of
|
||||
[TALK_ROOT_URL]({{ "/configuration/#talk_root_url" | relative_url }}){: .param})
|
||||
[TALK_ROOT_URL](./configuration/#talk_root_url))
|
||||
|
||||
## TALK_THREADING_LEVEL
|
||||
|
||||
This is a **Build Variable** and must be consumed during build. If using the
|
||||
[Docker-onbuild]({{ "/installation-from-docker/#onbuild" | relative_url }})
|
||||
[Docker-onbuild](./installation-from-docker/#onbuild)
|
||||
image you can specify it with `--build-arg TALK_THREADING_LEVEL=3`.
|
||||
|
||||
Specify the maximum depth of the comment thread. (Default `3`)
|
||||
@@ -442,13 +433,13 @@ Used to override the location to connect to the websocket endpoint to
|
||||
potentially another host. This should be used when you need to route websocket
|
||||
requests out of your CDN in order to serve traffic more efficiently.
|
||||
|
||||
If the value of [TALK_ROOT_URL]({{ "/configuration/#talk_root_url" | relative_url }}){: .param}
|
||||
If the value of [TALK_ROOT_URL](./configuration/#talk_root_url)
|
||||
is a https url, then this defaults to `wss://${location.host}${MOUNT_PATH}api/v1/live`.
|
||||
Otherwise, it defaults to `ws://${location.host}${MOUNT_PATH}api/v1/live`.
|
||||
|
||||
Where `MOUNT_PATH` is either `/` if [TALK_ROOT_URL_MOUNT_PATH](#talk_root_url_mount_path){: .param}
|
||||
Where `MOUNT_PATH` is either `/` if [TALK_ROOT_URL_MOUNT_PATH](#talk_root_url_mount_path)
|
||||
is `FALSE`, or the path component of
|
||||
[TALK_ROOT_URL]({{ "/configuration/#talk_root_url" | relative_url }}){: .param} if it's `TRUE`.
|
||||
[TALK_ROOT_URL](./configuration/#talk_root_url) if it's `TRUE`.
|
||||
|
||||
**Warning: if used without managing the auth state manually, auth
|
||||
cannot be persisted due to browser restrictions.**
|
||||
@@ -499,13 +490,13 @@ or set to `FALSE`.
|
||||
## TALK_SETTINGS_CACHE_TIME
|
||||
|
||||
The duration of time that the settings object will be kept in the Redis cache,
|
||||
parsed by [ms](https://www.npmjs.com/package/ms){:target="_blank"}. (Default
|
||||
parsed by [ms](https://www.npmjs.com/package/ms). (Default
|
||||
`1hr`)
|
||||
|
||||
## APOLLO_ENGINE_KEY
|
||||
|
||||
Used to set the key for use with
|
||||
[Apollo Engine](https://www.apollographql.com/engine/){:target="_blank"} for
|
||||
[Apollo Engine](https://www.apollographql.com/engine/) for
|
||||
tracing of GraphQL requests.
|
||||
|
||||
**Note: Apollo Engine is a premium service, charges may apply.**
|
||||
+4
-4
@@ -20,7 +20,7 @@ Talk Core is the core application of Talk - this contains all of the standard
|
||||
commenting features that are necessary for a comment section, and ones that we
|
||||
believe are important to be universal. If you would like to contribute to Talk,
|
||||
be sure to check out our
|
||||
[Contributor's Guide](https://github.com/coralproject/talk/blob/master/CONTRIBUTING.md){:target="_blank"}.
|
||||
[Contributor's Guide](https://github.com/coralproject/talk/blob/master/CONTRIBUTING.md).
|
||||
|
||||
## Plugins
|
||||
|
||||
@@ -28,13 +28,13 @@ Plugins are additional functionality which are optional to use with Talk. You
|
||||
can turn these on or off, depending on your specific needs. Plugins are either
|
||||
part of our core plugins, which ship with Talk, or they are developed by 3rd
|
||||
parties and either used privately and internally, or are open sourced for use
|
||||
across the greater community. You can explore the plugins we offer by visiting our [Default Plugins]({{ "/default-plugins/" | relative_url}})
|
||||
and [Additional Plugins]({{ "/additional-plugins/" | relative_url }}) pages.
|
||||
across the greater community. You can explore the plugins we offer by visiting our [Default Plugins](./default-plugins/)
|
||||
and [Additional Plugins](./additional-plugins/) pages.
|
||||
|
||||
## Recipes
|
||||
|
||||
Recipes are plugin templates that are created by the Talk team and 3rd party
|
||||
developers, in order to help contributors and newsrooms build plugins easily.
|
||||
You can explore the recipes we offer by visiting our [Plugin Recipes]({{ "/plugin-recipes/" | relative_url}})
|
||||
You can explore the recipes we offer by visiting our [Plugin Recipes](./plugin-recipes/)
|
||||
page.
|
||||
|
||||
+4
-4
@@ -11,7 +11,7 @@ There are 2 ways that newsrooms can support signup/login functionality with Talk
|
||||
|
||||
* Create their own auth plugin to integrate with your own auth systems
|
||||
|
||||
We also provide a Facebook auth plugin that supports logging in with Facebook (you must provide your own Facebook App ID and Secret, which you can read more about here: [https://developers.facebook.com](https://developers.facebook.com){:target="_blank"})
|
||||
We also provide a Facebook auth plugin that supports logging in with Facebook (you must provide your own Facebook App ID and Secret, which you can read more about here: [https://developers.facebook.com](https://developers.facebook.com))
|
||||
|
||||
## Comments and Replies
|
||||
|
||||
@@ -31,7 +31,7 @@ https://<your asset url>?commentId=<the comment id>
|
||||
Talk supports by default 3 levels of threading, meaning each top-level comment
|
||||
has a depth of 3 replies; replies beyond that are not nested below the 3rd
|
||||
level. You can adjust this using the
|
||||
[TALK_THREADING_LEVEL]({{ "/advanced-configuration/#talk_threading_level" | relative_url }}){:.param}
|
||||
[TALK_THREADING_LEVEL](./advanced-configuration/#talk_threading_level)
|
||||
configuration variable. We don’t recommend deep threading because it can cause
|
||||
issues with styling, especially on mobile.
|
||||
|
||||
@@ -73,7 +73,7 @@ useful tool to ensure commenters are concise with their comments.
|
||||
|
||||
Talk comes with a `respect` button out of the box. Why a “respect” button, you
|
||||
ask?
|
||||
[Read more here](https://mediaengagement.org/research/engagement-buttons/){:target="_blank"}.
|
||||
[Read more here](https://mediaengagement.org/research/engagement-buttons/).
|
||||
|
||||
We also have 2 more plugins, `like` and `love`, that you can turn on and
|
||||
experiment with on your own Talk install.
|
||||
@@ -162,7 +162,7 @@ Staff role.
|
||||
The Featured comment badge shows when a comment has been featured.
|
||||
|
||||
Another optional badge is the Subscriber badge (which is available as a
|
||||
[Recipe]({{ "/plugin-recipes/#recipe-subscriber" | relative_url}}).
|
||||
[Recipe](./plugin-recipes/#recipe-subscriber).
|
||||
|
||||
Badges are another easy part of Talk to customize by creating a new `tag`, then
|
||||
setting some rules for when it should show, and how the badge should be styled.
|
||||
+4
-4
@@ -56,8 +56,8 @@ history.
|
||||
**Toxic**
|
||||
|
||||
The Toxic badge signifies comments that are above the set Toxicity Probability
|
||||
Threshold. Note you must have [talk-plugin-toxic-comments]({{ "/additional-plugins/#talk-plugin-toxic-comments" | relative_url }}){:.param} enabled.
|
||||
[Read more about Toxic Comments here]({{ "/toxic-comments/" | relative_url}}).
|
||||
Threshold. Note you must have [talk-plugin-toxic-comments](./additional-plugins/#talk-plugin-toxic-comments) enabled.
|
||||
[Read more about Toxic Comments here](./toxic-comments/).
|
||||
|
||||
**Suspect**
|
||||
|
||||
@@ -122,7 +122,7 @@ automatically.
|
||||
**Reports**
|
||||
|
||||
This shows if a commenter is a reliable flagger, an unreliable flagger, or a
|
||||
neutral flagger. [Read more about reliable and unreliable flaggers here]({{"/trust/#reliable-and-unreliable-flaggers" | relative_url }}).
|
||||
neutral flagger. [Read more about reliable and unreliable flaggers here](./trust/#reliable-and-unreliable-flaggers).
|
||||
|
||||
**Moderating from this View**
|
||||
|
||||
@@ -173,7 +173,7 @@ manage your team members’ roles (Admins, Moderators, Staff), as well as search
|
||||
for commenters and take action on them (e.g. Ban/Un-ban, Suspend, etc.). ###
|
||||
Configure
|
||||
|
||||
See [Configuring Talk]({{ "/configuring-talk/" | relative_url }}).
|
||||
See [Configuring Talk](./configuring-talk/).
|
||||
|
||||
## Moderating via the Comment Stream
|
||||
|
||||
@@ -28,7 +28,7 @@ Here are the default thresholds:
|
||||
+3 and higher: Reliable
|
||||
```
|
||||
|
||||
You can configure your own Trust thresholds by using [TRUST_THRESHOLD]({{"/advanced-configuration/#trust_thresholds" | relative_url }}{:.param}) in your
|
||||
You can configure your own Trust thresholds by using [TRUST_THRESHOLD](./advanced-configuration/#trust_thresholds) in your
|
||||
configuration.
|
||||
|
||||
|
||||
+4
-4
@@ -19,13 +19,13 @@ Talk (0.8 or 80% is the default), which works like this:
|
||||
queues
|
||||
|
||||
Read more about Coral’s take on toxicity
|
||||
[on our blog](https://blog.coralproject.net/toxic-avenging/){:target="_blank"}.
|
||||
[on our blog](https://blog.coralproject.net/toxic-avenging/).
|
||||
|
||||
## What is the Perspective API?
|
||||
|
||||
The likely toxicity of a comment is evaluated using scores generated from
|
||||
[Perspective API](http://perspectiveapi.com/){:target="_blank"}. This is part of
|
||||
the [Conversation AI](https://conversationai.github.io/){:target="_blank"}
|
||||
[Perspective API](http://perspectiveapi.com/). This is part of
|
||||
the [Conversation AI](https://conversationai.github.io/)
|
||||
research effort run by Jigsaw (a section of Google that works on global problems
|
||||
around speech and access to information).
|
||||
|
||||
@@ -50,7 +50,7 @@ trying to improve a broken part of the internet.
|
||||
|
||||
## How do I add the Toxic Comments plugin?
|
||||
To enable this behavior, visit the
|
||||
[talk-plugin-toxic-comments]({{ "/additional-plugins/#talk-plugin-toxic-comments" | relative_url }})
|
||||
[talk-plugin-toxic-comments](./additional-plugins/#talk-plugin-toxic-comments)
|
||||
plugin documentation.
|
||||
|
||||
|
||||
+2
-2
@@ -19,7 +19,7 @@ Allows toggling of pre-moderating comments that have links.
|
||||
### Ask Readers a Question & Question Icons
|
||||
|
||||
Admins can choose to Ask Readers a Question in order to help guide the
|
||||
discussion. [Read more about why this is important on our blog](https://blog.coralproject.net/the-empty-box/){:target="_blank"}.
|
||||
discussion. [Read more about why this is important on our blog](https://blog.coralproject.net/the-empty-box/).
|
||||
|
||||
There are a selection of icons to display different messaging other than a
|
||||
question on a particular stream, like an announcement, or general information
|
||||
@@ -45,7 +45,7 @@ A maximum comment length across the site.
|
||||
#### Comment Stream Description
|
||||
|
||||
Description text that will appear above every comment stream site-wide. We
|
||||
recommend linking to your Code of Conduct or Community Guidelines. [Read tips on how to write a Code of Conduct here](https://guides.coralproject.net/create-a-code-of-conduct/){:target="_blank"}.
|
||||
recommend linking to your Code of Conduct or Community Guidelines. [Read tips on how to write a Code of Conduct here](https://guides.coralproject.net/create-a-code-of-conduct/).
|
||||
|
||||
#### Closed Stream Message
|
||||
|
||||
@@ -12,7 +12,7 @@ life cycle.
|
||||
|
||||
Recipes are plugin templates provided by the Coral Core team. Developers can use
|
||||
these recipes to build their own plugins. You can find all the Talk recipes
|
||||
here: [github.com/coralproject/talk-recipes](https://github.com/coralproject/talk-recipes/){:target="_blank"}.
|
||||
here: [github.com/coralproject/talk-recipes](https://github.com/coralproject/talk-recipes/).
|
||||
|
||||
## Plugin Registration
|
||||
|
||||
@@ -115,5 +115,4 @@ configuration and will ensure that the image is ready to use by building all
|
||||
assets inside the image as well.
|
||||
|
||||
For more information on the onbuild image, refer to the
|
||||
[Installation from Docker]({{ "/installation-from-docker/" | relative_url }})
|
||||
documentation.
|
||||
[Installation from Docker](./installation-from-docker/) documentation.
|
||||
@@ -6,19 +6,16 @@ class: configuration
|
||||
|
||||
The default Talk plugins can be found in the `plugins.default.json` file
|
||||
[here](https://github.com/coralproject/talk/blob/master/plugins.default.json).
|
||||
Talk ships out of the box with these plugins enabled.
|
||||
|
||||
Talk ships out of the box with these plugins enabled:
|
||||
|
||||
{% include toc.html %}
|
||||
|
||||
We ship [Additional Plugins]({{ "/additional-plugins/" | relative_url }}) with
|
||||
We ship [Additional Plugins](./additional-plugins/) with
|
||||
Talk that are not enabled by default. You can enable these or disable these
|
||||
default plugins by consulting the [Plugins Overview]({{ "/plugins/" | relative_url }})
|
||||
default plugins by consulting the [Plugins Overview](./plugins/)
|
||||
page.
|
||||
|
||||
## talk-plugin-auth
|
||||
|
||||
Source: [plugins/talk-plugin-auth](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-auth){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-auth](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-auth)
|
||||
|
||||
Enables generic registration via an email address, a username, a password, and a
|
||||
password confirmation. To sync Talk auth with your own auth systems, you can use
|
||||
@@ -26,20 +23,20 @@ this plugin as a template.
|
||||
|
||||
## talk-plugin-facebook-auth
|
||||
|
||||
Source: [plugins/talk-plugin-auth](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-auth){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-auth](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-auth)
|
||||
|
||||
Requires: [talk-plugin-facebook-auth](#talk-plugin-facebook-auth){:.param}
|
||||
Requires: [talk-plugin-facebook-auth](#talk-plugin-facebook-auth)
|
||||
|
||||
Enables sign-in via Facebook via the server side passport middleware.
|
||||
|
||||
Configuration:
|
||||
|
||||
- [TALK_FACEBOOK_APP_ID]({{ "/configuration/#talk_facebook_app_id" | relative_url }}){:.param} (**required**) - See the existing documentation for the [TALK_FACEBOOK_APP_ID]({{ "/configuration/#talk_facebook_app_id" | relative_url }}){:.param}.
|
||||
- [TALK_FACEBOOK_APP_SECRET]({{ "/configuration/#talk_facebook_app_secret" | relative_url }}){:.param} (**required**) - See the existing documentation for the [TALK_FACEBOOK_APP_SECRET]({{ "/configuration/#talk_facebook_app_secret" | relative_url }}){:.param}.
|
||||
- [TALK_FACEBOOK_APP_ID](./configuration/#talk_facebook_app_id) (**required**) - See the existing documentation for the [TALK_FACEBOOK_APP_ID](./configuration/#talk_facebook_app_id).
|
||||
- [TALK_FACEBOOK_APP_SECRET](./configuration/#talk_facebook_app_secret) (**required**) - See the existing documentation for the [TALK_FACEBOOK_APP_SECRET](./configuration/#talk_facebook_app_secret).
|
||||
|
||||
## talk-plugin-featured-comments
|
||||
|
||||
Source: [plugins/talk-plugin-featured-comments](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-featured-comments){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-featured-comments](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-featured-comments)
|
||||
|
||||
Enables the ability for Moderators to feature and un-feature comments via the
|
||||
Stream and the Admin. Featured comments show in a first-place tab on the Stream
|
||||
@@ -47,14 +44,14 @@ if there are any featured comments on that story.
|
||||
|
||||
## talk-plugin-respect
|
||||
|
||||
Source: [plugins/talk-plugin-respect](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-respect){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-respect](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-respect)
|
||||
|
||||
Enables a `respect` reaction button. Why a "respect" button, you ask?
|
||||
[Read more here](https://mediaengagement.org/research/engagement-buttons/).
|
||||
|
||||
## talk-plugin-comment-content
|
||||
|
||||
Source: [plugins/talk-plugin-comment-content](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-comment-content){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-comment-content](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-comment-content)
|
||||
|
||||
Pluginizes the text of a comment to support custom treatment of this text. This
|
||||
plugin currently parses the given text to see if it contains a link, and makes
|
||||
@@ -62,7 +59,7 @@ them clickable.
|
||||
|
||||
## talk-plugin-ignore-user
|
||||
|
||||
Source: [plugins/talk-plugin-ignore-user](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-ignore-user){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-ignore-user](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-ignore-user)
|
||||
|
||||
Enables ability for users to ignore (or "mute") other users. If a user is
|
||||
ignored, you will not see any of their comments. You can un-ignore a user via
|
||||
@@ -70,81 +67,81 @@ the My Profile tab.
|
||||
|
||||
## talk-plugin-permalink
|
||||
|
||||
Source: [plugins/talk-plugin-permalink](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-permalink){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-permalink](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-permalink)
|
||||
|
||||
Enables a `Link` button that will provide a permalink to the comment that can be
|
||||
shared with others.
|
||||
|
||||
## talk-plugin-viewing-options
|
||||
|
||||
Source: [plugins/talk-plugin-viewing-options](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-viewing-options){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-viewing-options](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-viewing-options)
|
||||
|
||||
Pluginizes the sorting/viewing options for a comment stream.
|
||||
|
||||
## talk-plugin-sort-newest
|
||||
|
||||
Source: [plugins/talk-plugin-sort-newest](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-newest){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-sort-newest](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-newest)
|
||||
|
||||
Requires: [talk-plugin-viewing-options](#talk-plugin-viewing-options){:.param}
|
||||
Requires: [talk-plugin-viewing-options](#talk-plugin-viewing-options)
|
||||
|
||||
Provides a sort for the newest comments first. This isn't necessarily required
|
||||
as the default sort without options/plugins is newest first.
|
||||
|
||||
## talk-plugin-sort-oldest
|
||||
|
||||
Source: [plugins/talk-plugin-sort-oldest](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-oldest){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-sort-oldest](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-oldest)
|
||||
|
||||
Requires: [talk-plugin-viewing-options](#talk-plugin-viewing-options){:.param}
|
||||
Requires: [talk-plugin-viewing-options](#talk-plugin-viewing-options)
|
||||
|
||||
Provides a sort for the newest comments first.
|
||||
|
||||
## talk-plugin-sort-most-respected
|
||||
|
||||
Source: [plugins/talk-plugin-sort-most-respected](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-most-respected){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-sort-most-respected](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-most-respected)
|
||||
|
||||
Requires: [talk-plugin-viewing-options](#talk-plugin-viewing-options){:.param}, [talk-plugin-respect](#talk-plugin-respect){:.param}
|
||||
Requires: [talk-plugin-viewing-options](#talk-plugin-viewing-options), [talk-plugin-respect](#talk-plugin-respect)
|
||||
|
||||
Provides a sort for the comments with the most `respect` reactions first.
|
||||
|
||||
## talk-plugin-sort-most-replied
|
||||
|
||||
Source: [plugins/talk-plugin-sort-most-replied](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-most-replied){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-sort-most-replied](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-most-replied)
|
||||
|
||||
Requires: [talk-plugin-viewing-options](#talk-plugin-viewing-options){:.param}
|
||||
Requires: [talk-plugin-viewing-options](#talk-plugin-viewing-options)
|
||||
|
||||
Provides a sort for the comments with the most replies first.
|
||||
|
||||
## talk-plugin-offtopic
|
||||
|
||||
Source: [plugins/talk-plugin-offtopic](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-offtopic){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-offtopic](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-offtopic)
|
||||
|
||||
Allows the comment authors to tag their comment as `Off-Topic` which will add a
|
||||
visible badge on the frontend to other users that their comment is off-topic.
|
||||
|
||||
## talk-plugin-author-menu
|
||||
|
||||
Source: [plugins/talk-plugin-author-menu](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-author-menu){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-author-menu](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-author-menu)
|
||||
|
||||
Pluginizes the author's name on hover.
|
||||
|
||||
## talk-plugin-member-since
|
||||
|
||||
Source: [plugins/talk-plugin-member-since](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-member-since){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-member-since](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-member-since)
|
||||
|
||||
Requires: [talk-plugin-author-menu](#talk-plugin-author-menu){:.param}
|
||||
Requires: [talk-plugin-author-menu](#talk-plugin-author-menu)
|
||||
|
||||
Displays the date that the user was created as a `Member Since ${created_at}`.
|
||||
|
||||
## talk-plugin-moderation-actions
|
||||
|
||||
Source: [plugins/talk-plugin-moderation-actions](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-moderation-actions){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-moderation-actions](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-moderation-actions)
|
||||
|
||||
Enables in-stream moderation so that Moderators can reject, approve comments,
|
||||
as well as ban users, directly from the comment stream. When [talk-plugin-featured-comments](#talk-plugin-featured-comments){:.param} is enabled
|
||||
as well as ban users, directly from the comment stream. When [talk-plugin-featured-comments](#talk-plugin-featured-comments) is enabled
|
||||
|
||||
## talk-plugin-flag-details
|
||||
|
||||
Source: [plugins/talk-plugin-flag-details](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-flag-details){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-flag-details](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-flag-details)
|
||||
|
||||
Pluginizes the Flag Details area of comments in the Moderation Queues to display
|
||||
data. Some basic details are already included on flags by default.
|
||||
@@ -4,52 +4,49 @@ permalink: /additional-plugins/
|
||||
class: configuration
|
||||
---
|
||||
|
||||
Talk ships with several plugins that aren't enabled by default:
|
||||
|
||||
{% include toc.html %}
|
||||
|
||||
These plugins can be enabled by consulting the
|
||||
[Plugins Overview]({{ "/plugins/" | relative_url }}) page.
|
||||
Talk ships with several plugins that aren't enabled by default. These plugins
|
||||
can be enabled by consulting the [Plugins Overview](./plugins/)
|
||||
page.
|
||||
|
||||
## talk-plugin-like
|
||||
|
||||
Source: [plugins/talk-plugin-like](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-like){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-like](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-like)
|
||||
|
||||
Enables a `like` reaction button.
|
||||
|
||||
## talk-plugin-sort-most-liked
|
||||
|
||||
Source: [plugins/talk-plugin-sort-most-liked](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-most-liked){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-sort-most-liked](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-most-liked)
|
||||
|
||||
Requires: [talk-plugin-viewing-options]({{ "/default-plugins/#talk-plugin-viewing-options" | relative_url }}){:.param}, [talk-plugin-like](#talk-plugin-like){:.param}
|
||||
Requires: [talk-plugin-viewing-options](./default-plugins/#talk-plugin-viewing-options), [talk-plugin-like](#talk-plugin-like)
|
||||
|
||||
Provides a sort for the comments with the most `like` reactions first.
|
||||
|
||||
## talk-plugin-love
|
||||
|
||||
Source: [plugins/talk-plugin-love](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-love){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-love](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-love)
|
||||
|
||||
Enables a `love` reaction button.
|
||||
|
||||
## talk-plugin-sort-most-loved
|
||||
|
||||
Source: [plugins/talk-plugin-sort-most-loved](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-most-loved){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-sort-most-loved](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-sort-most-loved)
|
||||
|
||||
Requires: [talk-plugin-viewing-options]({{ "/default-plugins/#talk-plugin-viewing-options" | relative_url }}){:.param}, [talk-plugin-love](#talk-plugin-love){:.param}
|
||||
Requires: [talk-plugin-viewing-options](./default-plugins/#talk-plugin-viewing-options), [talk-plugin-love](#talk-plugin-love)
|
||||
|
||||
Provides a sort for the comments with the most `love` reactions first.
|
||||
|
||||
## talk-plugin-remember-sort
|
||||
|
||||
Source: [plugins/talk-plugin-remember-sort](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-remember-sort){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-remember-sort](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-remember-sort)
|
||||
|
||||
Requires: [talk-plugin-viewing-options]({{ "/default-plugins/#talk-plugin-viewing-options" | relative_url }}){:.param}
|
||||
Requires: [talk-plugin-viewing-options](./default-plugins/#talk-plugin-viewing-options)
|
||||
|
||||
Enables saving a user’s last sort selection as they browse other articles.
|
||||
|
||||
## talk-plugin-deep-reply-count
|
||||
|
||||
Source: [plugins/talk-plugin-deep-reply-count](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-deep-reply-count){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-deep-reply-count](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-deep-reply-count)
|
||||
|
||||
Enables counting of comments to include replies via a new graph edge. Not
|
||||
recommended for large installations as it will unreasonably reduce the query
|
||||
@@ -57,11 +54,11 @@ efficiency to compute this number.
|
||||
|
||||
## talk-plugin-slack-notifications
|
||||
|
||||
Source: [plugins/talk-plugin-slack-notifications](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-slack-notifications){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-slack-notifications](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-slack-notifications)
|
||||
|
||||
Enables all new comments that are written to be posted to a Slack channel as
|
||||
well. Configure an
|
||||
[Incoming Webhook](https://api.slack.com/incoming-webhooks){:target="_blank"}
|
||||
[Incoming Webhook](https://api.slack.com/incoming-webhooks)
|
||||
app and provide that url in the form of the `SLACK_WEBHOOK_URL`
|
||||
detailed below.
|
||||
|
||||
@@ -76,29 +73,29 @@ Configuration:
|
||||
|
||||
## talk-plugin-toxic-comments
|
||||
|
||||
Source: [plugins/talk-plugin-toxic-comments](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-toxic-comments){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-toxic-comments](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-toxic-comments)
|
||||
|
||||
Using the [Perspective API](http://perspectiveapi.com/){:target="_blank"}, this
|
||||
Using the [Perspective API](http://perspectiveapi.com/), this
|
||||
plugin will warn users and reject comments that exceed the predefined toxicity
|
||||
threshold. For more information on what Toxic Comments are, check out the
|
||||
[Toxic Comments]({{ "/toxic-comments/" | relative_url }}) documentation.
|
||||
[Toxic Comments](./toxic-comments/) documentation.
|
||||
|
||||
Configuration:
|
||||
|
||||
- `TALK_PERSPECTIVE_API_KEY` (**required**) - The API Key for Perspective. You
|
||||
can register and get your own key at [http://perspectiveapi.com/](http://perspectiveapi.com/){:target="_blank"}.
|
||||
can register and get your own key at [http://perspectiveapi.com/](http://perspectiveapi.com/).
|
||||
- `TALK_TOXICITY_THRESHOLD` - If the comments toxicity exceeds this threshold,
|
||||
the comment will be rejected. (Default `0.8`)
|
||||
- `TALK_PERSPECTIVE_API_ENDPOINT` - API Endpoint for hitting the
|
||||
perspective API. (Default `https://commentanalyzer.googleapis.com/v1alpha1`)
|
||||
- `TALK_PERSPECTIVE_TIMEOUT` - The timeout for sending a comment to
|
||||
be processed before it will skip the toxicity analysis, parsed by
|
||||
[ms](https://www.npmjs.com/package/ms){:target="_blank"}. (Default `300ms`)
|
||||
- `TALK_PERSPECTIVE_DO_NOT_STORE` - Whether the API is permitted to store comment and context from this request. Stored comments will be used for future research and community model building purposes to improve the API over time. (Default `true`) [Perspective API - Analize Comment Request](https://github.com/conversationai/perspectiveapi/blob/master/api_reference.md#analyzecomment-request){:target="_blank"}
|
||||
[ms](https://www.npmjs.com/package/ms). (Default `300ms`)
|
||||
- `TALK_PERSPECTIVE_DO_NOT_STORE` - Whether the API is permitted to store comment and context from this request. Stored comments will be used for future research and community model building purposes to improve the API over time. (Default `true`) [Perspective API - Analize Comment Request](https://github.com/conversationai/perspectiveapi/blob/master/api_reference.md#analyzecomment-request)
|
||||
|
||||
## talk-plugin-subscriber
|
||||
|
||||
Source: [plugins/talk-plugin-subscriber](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-subscriber){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-subscriber](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-subscriber)
|
||||
|
||||
Enables a `Subscriber` badge to be added to comments where the author has the
|
||||
`SUBSCRIBER` tag. This must match with a custom auth integration that adds the
|
||||
@@ -106,7 +103,7 @@ tag to the users that are subscribed to the service.
|
||||
|
||||
## talk-plugin-akismet
|
||||
|
||||
Source: [plugins/talk-plugin-akismet](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-akismet){:target="_blank"}
|
||||
Source: [plugins/talk-plugin-akismet](https://github.com/coralproject/talk/tree/master/plugins/talk-plugin-akismet)
|
||||
|
||||
Enables spam detection from [Akismet](https://akismet.com/). Comments will be passed to the Akismet API for spam detection. If a comment
|
||||
is determined to be spam, it will prompt the user, indicating that the comment might be considered spam. If the user continues after this
|
||||
@@ -14,11 +14,9 @@ needs.
|
||||
|
||||
The following are the available recipes for use:
|
||||
|
||||
{% include toc.html %}
|
||||
|
||||
## recipe-avatar
|
||||
|
||||
Source: [talk-recipes/tree/master/plugins/avatar](https://github.com/coralproject/talk-recipes/tree/master/plugins/avatar){:target="_blank"}
|
||||
Source: [talk-recipes/tree/master/plugins/avatar](https://github.com/coralproject/talk-recipes/tree/master/plugins/avatar)
|
||||
|
||||
Provides support for avatars hosted via third party, extends the User Model and
|
||||
provides UI on the client-side too.
|
||||
@@ -26,7 +24,7 @@ provides UI on the client-side too.
|
||||
|
||||
## recipe-translations
|
||||
|
||||
Source: [talk-recipes/tree/master/plugins/translations](https://github.com/coralproject/talk-recipes/tree/master/plugins/translations){:target="_blank"}
|
||||
Source: [talk-recipes/tree/master/plugins/translations](https://github.com/coralproject/talk-recipes/tree/master/plugins/translations)
|
||||
|
||||
Provides an example for overriding application text through the translation
|
||||
system.
|
||||
@@ -34,7 +32,7 @@ system.
|
||||
|
||||
## recipe-subscriber
|
||||
|
||||
Source: [talk-recipes/tree/master/plugins/subscriber](https://github.com/coralproject/talk-recipes/tree/master/plugins/subscriber){:target="_blank"}
|
||||
Source: [talk-recipes/tree/master/plugins/subscriber](https://github.com/coralproject/talk-recipes/tree/master/plugins/subscriber)
|
||||
|
||||
Provides an example for adding `SUBSCRIBER` badges for users with the
|
||||
`SUBSCRIBER` tag added to their user model through a direct server plugin with
|
||||
@@ -43,7 +41,7 @@ the auth system.
|
||||
|
||||
## recipe-author-name
|
||||
|
||||
Source: [talk-recipes/tree/master/plugins/author-name](https://github.com/coralproject/talk-recipes/tree/master/plugins/author-name){:target="_blank"}
|
||||
Source: [talk-recipes/tree/master/plugins/author-name](https://github.com/coralproject/talk-recipes/tree/master/plugins/author-name)
|
||||
|
||||
Enables the ability to hover over a commenter’s name and add plugin
|
||||
functionality there. The Member Since plugin that is provided in this recipe is
|
||||
@@ -19,7 +19,7 @@ process:
|
||||
```
|
||||
This will prompt you to perform a database backup before starting the migration
|
||||
process. Data loss is entirely possible otherwise.
|
||||
{: .code-aside}
|
||||
|
||||
|
||||
### Docker Compose
|
||||
|
||||
@@ -31,5 +31,5 @@ docker-compose run --rm talk cli migration run
|
||||
```
|
||||
This will prompt you to perform a database backup before starting the migration
|
||||
process. Data loss is entirely possible otherwise.
|
||||
{: .code-aside}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ Running the following will start the migration process:
|
||||
```
|
||||
This will prompt you to perform a database backup before starting the migration
|
||||
process. Data loss is entirely possible otherwise.
|
||||
{: .code-aside}
|
||||
|
||||
|
||||
The migration itself may take some time to complete, as we're reformatting
|
||||
documents rather than performing a nice table alter. If the process crashes
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
default_layout: doc
|
||||
@@ -1,7 +1,3 @@
|
||||
---
|
||||
layout: doc
|
||||
---
|
||||
|
||||
<style type="text/css" media="screen">
|
||||
.container {
|
||||
margin: 10px auto;
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{{ partial('partial/head') }}
|
||||
<body>
|
||||
<div>
|
||||
<div>
|
||||
|
||||
{{ partial('partial/sidebar') }}
|
||||
|
||||
<main class="content" role="main">
|
||||
{{ partial('partial/header') }}
|
||||
|
||||
{{ body }}
|
||||
</main>
|
||||
|
||||
{{ partial('partial/footer') }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,11 +1,8 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
<article{% if page.class %} class="{{ page.class }}"{% endif %}>
|
||||
<a class="btn btn-sm btn-light float-right suggest-edits plain-link" href="https://github.com/coralproject/talk/edit/master/docs/{{ page.path }}" title="Suggest edits to this page">Suggest Edits</a>
|
||||
<a class="btn btn-sm btn-light float-right suggest-edits plain-link" href="https://github.com/coralproject/talk/edit/master/docs/source/{{ page.source }}" title="Suggest edits to this page">Suggest Edits</a>
|
||||
<h1>{{ page.title }}</h1>
|
||||
<hr/>
|
||||
|
||||
{{ content }}
|
||||
{{ page.content }}
|
||||
|
||||
</article>
|
||||
@@ -6,8 +6,7 @@
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js" integrity="sha256-Daf8GuI2eLKHJlOWLRR/zRy9Clqcj4TUSumbxYH9kGI=" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/docsearch.js/2.4.1/docsearch.min.js" integrity="sha256-/cR58XeT7FS/4QEWCHJj/TdJ4b377Sf9p0DRto6I6cI=" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="{{ "/assets/js/highlight.min.js" | relative_url }}?{{site.time | date: '%s%N'}}"></script>
|
||||
<script type="text/javascript" src="{{ "/assets/js/main.js" | relative_url }}?{{site.time | date: '%s%N'}}"></script>
|
||||
{{ js(['js/highlight.min.js', 'js/main.js']) }}
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
@@ -2,9 +2,9 @@
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
{% seo %}
|
||||
<title>{% if page.title %}{{ page.title }} | {% endif %}{{ config.title }}</title>
|
||||
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/docsearch.js/2.4.1/docsearch.min.css" integrity="sha256-imGt4ps5hI/tN3Tv+6oUNyaXzZ0AefV47v2Xa3RRVRg=" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="{{ "/assets/css/main.min.css" | relative_url }}?{{site.time | date: '%s%N'}}">
|
||||
{{ css('css/talk') }}
|
||||
</head>
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
<header class="header">
|
||||
<form class="search d-flex align-items-center">
|
||||
<input type="search" class="form-control" id="search-input" placeholder="Search documentation..." aria-label="Search for..." autocomplete="off">
|
||||
<nav class="header__nav">
|
||||
{% for item in config.sidebar.top %}
|
||||
<a target="_blank" rel="nofollow noreferer" alt="{{ item.title }}" href="{{ item.url }}">{{ item.title }}</a>
|
||||
{% endfor %}
|
||||
<a href="#" alt="Toggle Sidebar" id="sidebar-toggle">{{ image_tag('images/hamburger.svg') }}</a>
|
||||
</nav>
|
||||
</form>
|
||||
</header>
|
||||
+7
-7
@@ -1,18 +1,18 @@
|
||||
<aside class="sidebar">
|
||||
<a class="brand" href="{{ "/" | relative_url }}">
|
||||
<a class="brand" href="{{ url_for("/") }}">
|
||||
<h2>
|
||||
{% include images/logo.svg %}
|
||||
{{ image_tag('images/logo.svg', {width: 50, height: 50}) }}
|
||||
<span>Talk</span>
|
||||
</h2>
|
||||
</a>
|
||||
<ul class="sidebar__list">
|
||||
{% for item in site.data.nav.items %}
|
||||
<li class="sidebar__section{% for item in item.children %}{% if page.url == item.url %} active toggled{% endif %}{% endfor %}">
|
||||
{% for item in config.sidebar.side %}
|
||||
<li class="sidebar__section{% for item in item.children %}{% if is_current(item.url) %} active toggled{% endif %}{% endfor %}">
|
||||
<a href="#" class="sidebar__header">{{ item.title }}</a>
|
||||
<ul class="sidebar__links">
|
||||
{% for item in item.children %}
|
||||
<li class="{% if page.url == item.url %}active{% endif %}">
|
||||
<a href="{% if page.url != item.url %}{{ item.url | relative_url }}{% else %}#{% endif %}">{{ item.title }}</a>
|
||||
<li class="{% if is_current(item.url) %}active{% endif %}">
|
||||
<a href="{% if !is_current(item.url) %}{{ url_for(item.url) }}{% else %}#{% endif %}">{{ item.title }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
@@ -24,7 +24,7 @@
|
||||
<div class="notice">
|
||||
<p>Don't see what you're looking for? We're upgrading the docs, check out our <a href="https://github.com/coralproject/talk/tree/ef49d9a3d2acc4d2fc03b00e0c872dfbc57f005a/docs/_docs" target="_blank" class="coral-link-invert">old docs</a>.</p>
|
||||
<p><a href="https://coralproject.net/" class="coral-link-invert" target="_blank">The Coral Project</a> from Mozilla</p>
|
||||
<a href="https://www.mozilla.org/" target="_blank" title="Mozilla"><figure class="mozilla" alt="Mozilla">{% include images/moz-logo-bw-rgb.svg %}</figure></a>
|
||||
<a href="https://www.mozilla.org/" target="_blank" title="Mozilla"><figure class="mozilla" alt="Mozilla">{{ image_tag('images/moz-logo-bw-rgb.svg') }}</figure></a>
|
||||
</div>
|
||||
</aside>
|
||||
<div class="sidebar__backdrop"></div>
|
||||
@@ -1,7 +1,6 @@
|
||||
<aside>
|
||||
<nav class="toc" markdown="1">
|
||||
<nav class="toc">
|
||||
{% if include.title %}<header><h4 class="nav__title">{{ include.title }}</h4></header>{% endif %}
|
||||
* Auto generated table of contents
|
||||
{:toc .toc__menu}
|
||||
<%- toc(page.content) %>
|
||||
</nav>
|
||||
</aside>
|
||||
|
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 326 B |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Vendored
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
+3521
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user