mirror of https://github.com/zulip/zulip.git
docs: Fix various capitalization errors.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
768f9f93cd
commit
c155403884
|
@ -14,7 +14,7 @@ This isn't an exhaustive list of things that you can't do. Rather, take it
|
|||
in the spirit in which it's intended --- a guide to make it easier to enrich
|
||||
all of us and the technical communities in which we participate.
|
||||
|
||||
## Expected Behavior
|
||||
## Expected behavior
|
||||
|
||||
The following behaviors are expected and requested of all community members:
|
||||
|
||||
|
@ -29,7 +29,7 @@ The following behaviors are expected and requested of all community members:
|
|||
* Community event venues may be shared with members of the public; be
|
||||
respectful to all patrons of these locations.
|
||||
|
||||
## Unacceptable Behavior
|
||||
## Unacceptable behavior
|
||||
|
||||
The following behaviors are considered harassment and are unacceptable
|
||||
within the Zulip community:
|
||||
|
@ -53,7 +53,7 @@ within the Zulip community:
|
|||
presentations.
|
||||
* Advocating for, or encouraging, any of the behaviors above.
|
||||
|
||||
## Reporting and Enforcement
|
||||
## Reporting and enforcement
|
||||
|
||||
Harassment and other code of conduct violations reduce the value of the
|
||||
community for everyone. If someone makes you or anyone else feel unsafe or
|
||||
|
@ -95,7 +95,7 @@ behavior occurring outside the scope of community activities when such
|
|||
behavior has the potential to adversely affect the safety and well-being of
|
||||
community members.
|
||||
|
||||
## License and Attribution
|
||||
## License and attribution
|
||||
|
||||
This Code of Conduct is adapted from the
|
||||
[Citizen Code of Conduct](http://citizencodeofconduct.org/) and the
|
||||
|
|
|
@ -299,7 +299,7 @@ for ZSoC, we'll contact you when the GSoC results are announced.
|
|||
[gsoc-guide]: https://zulip.readthedocs.io/en/latest/overview/gsoc-ideas.html
|
||||
[gsoc-faq]: https://developers.google.com/open-source/gsoc/faq
|
||||
|
||||
## Zulip Outreach
|
||||
## Zulip outreach
|
||||
|
||||
**Upvoting Zulip**. Upvotes and reviews make a big difference in the public
|
||||
perception of projects like Zulip. We've collected a few sites below
|
||||
|
|
|
@ -71,7 +71,7 @@ You might be interested in:
|
|||
like Google Summer of Code.
|
||||
|
||||
You may also be interested in reading our [blog](https://blog.zulip.org/) or
|
||||
following us on [twitter](https://twitter.com/zulip).
|
||||
following us on [Twitter](https://twitter.com/zulip).
|
||||
Zulip is distributed under the
|
||||
[Apache 2.0](https://github.com/zulip/zulip/blob/master/LICENSE) license.
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ sometimes report false positives as well. They are a useful aid in quickly
|
|||
identifying potential problems and checking for regressions, but their
|
||||
recommendations should not be blindly obeyed.
|
||||
|
||||
## GitHub Issues
|
||||
## GitHub issues
|
||||
|
||||
Problems with Zulip's accessibility should be reported as
|
||||
[GitHub issues](https://github.com/zulip/zulip/issues) with the "accessibility"
|
||||
|
@ -65,7 +65,7 @@ comment on the issue:
|
|||
If you want to help make Zulip more accessible, here is a list of the
|
||||
[currently open accessibility issues][accessibility-issues].
|
||||
|
||||
## Additional Resources
|
||||
## Additional resources
|
||||
|
||||
For more information about making Zulip accessible to as many users as
|
||||
possible, the following resources may be useful.
|
||||
|
|
|
@ -183,7 +183,7 @@ feel free to do that in a new commit, then push your branch to GitHub
|
|||
and mention the branch in a comment on the pull request. That'll save
|
||||
the maintainer time and get the PR merged quicker.
|
||||
|
||||
## Additional Resources
|
||||
## Additional resources
|
||||
|
||||
We also strongly recommend reviewers to go through the following resources.
|
||||
|
||||
|
@ -194,7 +194,7 @@ We also strongly recommend reviewers to go through the following resources.
|
|||
* [Code Review - A consolidation of advice and stuff from the
|
||||
sinternet](https://gist.github.com/porterjamesj/002fb27dd70df003646df46f15e898de)
|
||||
article by James J. Porter
|
||||
* [Zulip Code of Conduct](../code-of-conduct.md)
|
||||
* [Zulip code of conduct](../code-of-conduct.md)
|
||||
|
||||
[code-style]: ../contributing/code-style.md
|
||||
[commit-messages]: ../contributing/version-control.html#commit-messages
|
||||
|
|
|
@ -77,7 +77,7 @@ tools in the Zulip development environment). See
|
|||
for details on our various existing documentation systems.
|
||||
|
||||
In part due to past work by a technical writer, Zulip has a
|
||||
well-documented and easy to setup development environment for a
|
||||
well-documented and easy-to-set-up development environment for a
|
||||
project of its scope. Use
|
||||
[our first-time Zulip developer guide](../overview/contributing.html#your-first-codebase-contribution)
|
||||
to get your Zulip development environment set up. If you have any
|
||||
|
@ -202,12 +202,12 @@ proposal. It's also fine for you to come up with your own project
|
|||
ideas.
|
||||
|
||||
For many of our projects, an important skill to develop is a good
|
||||
command of Git; read [our Git Guide](../git/overview.md) in full to
|
||||
command of Git; read [our Git guide](../git/overview.md) in full to
|
||||
learn how to use it well. Of particular importance is mastering using
|
||||
Git rebase so that you can construct commits that are readable,
|
||||
are clearly correct and that explain why they are correct.
|
||||
|
||||
**Project name**: REST API Documentation
|
||||
**Project name**: REST API documentation
|
||||
|
||||
Fill in the gaps in Zulip's
|
||||
[REST API documentation](https://zulip.com/api). Zulip has a
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#######################
|
||||
Code Contribution Guide
|
||||
Code contribution guide
|
||||
#######################
|
||||
|
||||
.. toctree::
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Version control
|
||||
|
||||
## Commit Discipline
|
||||
## Commit discipline
|
||||
|
||||
We follow the Git project's own commit discipline practice of "Each
|
||||
commit is a minimal coherent idea". This discipline takes a bit of work,
|
||||
|
@ -83,7 +83,7 @@ you need to do a refactoring partway through writing the feature. When that
|
|||
happens, we recommend you stash your partial feature, do the refactoring,
|
||||
commit it, and then unstash and finish implementing your feature.
|
||||
|
||||
## Commit Messages
|
||||
## Commit messages
|
||||
|
||||
First, check out
|
||||
[these](https://github.com/zulip/zulip/commit/4869e1b0b2bc6d56fcf44b7d0e36ca20f45d0521)
|
||||
|
|
|
@ -24,7 +24,7 @@ lower-case naming convention for that file.
|
|||
Below, we document the procedure for each of the major authentication
|
||||
methods supported by Zulip.
|
||||
|
||||
### Email and Password
|
||||
### Email and password
|
||||
|
||||
Zulip's default EmailAuthBackend authenticates users by verifying
|
||||
control over their email address, and then allowing them to set a
|
||||
|
@ -204,7 +204,7 @@ exactly what data is being used in the test without looking at other
|
|||
resources. It also gives us more freedom to edit the development
|
||||
environment directory without worrying about tests.
|
||||
|
||||
## Two Factor Authentication
|
||||
## Two factor authentication
|
||||
|
||||
Zulip uses [django-two-factor-auth][0] as a beta 2FA integration.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#######################
|
||||
Development Environment
|
||||
Development environment
|
||||
#######################
|
||||
|
||||
.. toctree::
|
||||
|
@ -7,7 +7,7 @@ Development Environment
|
|||
|
||||
Development environment installation <overview>
|
||||
Recommended setup (Vagrant) <setup-vagrant>
|
||||
Advanced Setup (non-Vagrant) <setup-advanced>
|
||||
Advanced setup (non-Vagrant) <setup-advanced>
|
||||
Using the development environment <using>
|
||||
Developing remotely <remote>
|
||||
Authentication in the development environment <authentication>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Advanced Setup (non-Vagrant)
|
||||
# Advanced setup (non-Vagrant)
|
||||
|
||||
Contents:
|
||||
|
||||
|
@ -56,7 +56,7 @@ on using the Zulip development
|
|||
environment](../development/setup-vagrant.html#step-4-developing),
|
||||
ignoring the parts about `vagrant` (since you're not using it).
|
||||
|
||||
## Installing directly on Windows 10 (Experimental)
|
||||
## Installing directly on Windows 10 (experimental)
|
||||
|
||||
We will be using Microsoft's new feature [WSL
|
||||
2](https://docs.microsoft.com/en-us/windows/wsl/wsl2-about) for
|
||||
|
|
|
@ -12,18 +12,18 @@ all related services will run.
|
|||
Contents:
|
||||
* [Requirements](#requirements)
|
||||
* [Step 0: Set up Git & GitHub](#step-0-set-up-git-github)
|
||||
* [Step 1: Install Prerequisites](#step-1-install-prerequisites)
|
||||
* [Step 1: Install prerequisites](#step-1-install-prerequisites)
|
||||
* [Step 2: Get Zulip code](#step-2-get-zulip-code)
|
||||
* [Step 3: Start the development environment](#step-3-start-the-development-environment)
|
||||
* [Step 4: Developing](#step-4-developing)
|
||||
* [Troubleshooting and Common Errors](#troubleshooting-and-common-errors)
|
||||
* [Troubleshooting and common errors](#troubleshooting-and-common-errors)
|
||||
* [Specifying an Ubuntu mirror](#specifying-an-ubuntu-mirror)
|
||||
* [Specifying a proxy](#specifying-a-proxy)
|
||||
* [Customizing CPU and RAM allocation](#customizing-cpu-and-ram-allocation)
|
||||
|
||||
**If you encounter errors installing the Zulip development
|
||||
environment,** check [Troubleshooting and Common
|
||||
Errors](#troubleshooting-and-common-errors). If that doesn't help,
|
||||
environment,** check [troubleshooting and common
|
||||
errors](#troubleshooting-and-common-errors). If that doesn't help,
|
||||
please visit [#provision
|
||||
help](https://chat.zulip.org/#narrow/stream/21-provision-help) in the
|
||||
[Zulip development community
|
||||
|
@ -63,13 +63,13 @@ docs.
|
|||
You can skip this step if you already have Git, GitHub, and SSH access
|
||||
to GitHub working on your machine.
|
||||
|
||||
Follow our [Git Guide][set-up-git] in order to install Git, set up a
|
||||
Follow our [Git guide][set-up-git] in order to install Git, set up a
|
||||
GitHub account, create an SSH key to access code on GitHub
|
||||
efficiently, etc. Be sure to create an ssh key and add it to your
|
||||
GitHub account using
|
||||
[these instructions](https://help.github.com/en/articles/generating-an-ssh-key).
|
||||
|
||||
### Step 1: Install Prerequisites
|
||||
### Step 1: Install prerequisites
|
||||
|
||||
Jump to:
|
||||
|
||||
|
@ -87,7 +87,7 @@ Jump to:
|
|||
Fusion][vmware-fusion-dl] with the [VMWare Fusion Vagrant
|
||||
plugin][vagrant-vmware-fusion-dl].)
|
||||
|
||||
Now you are ready for [Step 2: Get Zulip Code.](#step-2-get-zulip-code).
|
||||
Now you are ready for [Step 2: Get Zulip code](#step-2-get-zulip-code).
|
||||
|
||||
#### Ubuntu
|
||||
|
||||
|
@ -142,7 +142,7 @@ sudo systemctl enable docker
|
|||
sudo systemctl start docker
|
||||
```
|
||||
|
||||
Now you are ready for [Step 2: Get Zulip Code.](#step-2-get-zulip-code)
|
||||
Now you are ready for [Step 2: Get Zulip code](#step-2-get-zulip-code).
|
||||
|
||||
#### Debian
|
||||
|
||||
|
@ -200,7 +200,7 @@ true
|
|||
```
|
||||
|
||||
If you see `true`, you are ready for [Step 2: Get Zulip
|
||||
Code.](#step-2-get-zulip-code)
|
||||
code](#step-2-get-zulip-code).
|
||||
|
||||
Otherwise, if the above command prints `false` or nothing at all, then symlinks
|
||||
have not been enabled.
|
||||
|
@ -223,7 +223,7 @@ $ echo $CYGWIN
|
|||
winsymlinks:native
|
||||
```
|
||||
|
||||
Now you are ready for [Step 2: Get Zulip Code.](#step-2-get-zulip-code)
|
||||
Now you are ready for [Step 2: Get Zulip code](#step-2-get-zulip-code).
|
||||
|
||||
(Note: The **GitHub Desktop client** for Windows has a bug where it
|
||||
will automatically set `git config core.symlink false` on a repository
|
||||
|
@ -232,7 +232,7 @@ development environment, because we use symbolic links. For that
|
|||
reason, we recommend avoiding using GitHub Desktop client to clone
|
||||
projects and to instead follow these instructions exactly.)
|
||||
|
||||
### Step 2: Get Zulip Code
|
||||
### Step 2: Get Zulip code
|
||||
|
||||
1. In your browser, visit <https://github.com/zulip/zulip>
|
||||
and click the `fork` button. You will need to be logged in to GitHub to
|
||||
|
@ -268,7 +268,7 @@ Checking out files: 100% (1912/1912), done.`
|
|||
```
|
||||
|
||||
Now you are ready for [Step 3: Start the development
|
||||
environment.](#step-3-start-the-development-environment)
|
||||
environment](#step-3-start-the-development-environment).
|
||||
|
||||
### Step 3: Start the development environment
|
||||
|
||||
|
@ -392,7 +392,7 @@ should see something like:
|
|||
2016-05-04 18:21:57,819 INFO 127.0.0.1 GET 200 209ms (db: 7ms/2q) /login/ (unauth@zulip via ?)
|
||||
```
|
||||
|
||||
Now you're ready for [Step 4: Developing.](#step-4-developing)
|
||||
Now you're ready for [Step 4: Developing](#step-4-developing).
|
||||
|
||||
### Step 4: Developing
|
||||
|
||||
|
@ -424,10 +424,10 @@ there.
|
|||
See [Logging](../subsystems/logging.md) for further details on the run-dev.py console
|
||||
output.
|
||||
|
||||
#### Committing and pushing changes with git
|
||||
#### Committing and pushing changes with Git
|
||||
|
||||
When you're ready to commit or push changes via git, you will do this by
|
||||
running git commands in Terminal (macOS/Ubuntu) or Git BASH (Windows) in the
|
||||
When you're ready to commit or push changes via Git, you will do this by
|
||||
running Git commands in Terminal (macOS/Ubuntu) or Git BASH (Windows) in the
|
||||
directory where you cloned Zulip on your main machine.
|
||||
|
||||
If you're new to working with Git/GitHub, check out our [Git & GitHub
|
||||
|
@ -528,7 +528,7 @@ $ vagrant ssh
|
|||
$ ./tools/run-dev.py
|
||||
```
|
||||
|
||||
### Next Steps
|
||||
### Next steps
|
||||
|
||||
Next, read the following to learn more about developing for Zulip:
|
||||
|
||||
|
@ -538,7 +538,7 @@ Next, read the following to learn more about developing for Zulip:
|
|||
run the full test suite against any branches you push to your fork,
|
||||
which can help you optimize your development workflow).
|
||||
|
||||
### Troubleshooting and Common Errors
|
||||
### Troubleshooting and common errors
|
||||
|
||||
Below you'll find a list of common errors and their solutions. Most
|
||||
issues are resolved by just provisioning again (by running
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Using the Development Environment
|
||||
Using the development environment
|
||||
=================================
|
||||
|
||||
This page describes the basic edit/refresh workflows for working with
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#####################
|
||||
Writing Documentation
|
||||
Writing documentation
|
||||
#####################
|
||||
|
||||
.. toctree::
|
||||
|
|
|
@ -230,7 +230,7 @@ All tips/warnings should appear inside tip/warning blocks. There
|
|||
should be only one tip/warning inside each block, and they usually
|
||||
should be formatted as a continuation of a numbered step.
|
||||
|
||||
### Tab Switcher
|
||||
### Tab switcher
|
||||
|
||||
Our Markdown processor supports easily creating a tab switcher widget
|
||||
design to easily show the instructions for different
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Git Cheat Sheet
|
||||
# Git cheat sheet
|
||||
|
||||
See also [fixing commits][fix-commit]
|
||||
|
||||
## Common Commands
|
||||
## Common commands
|
||||
|
||||
- add
|
||||
- `git add foo.py`
|
||||
|
@ -53,7 +53,7 @@ See also [fixing commits][fix-commit]
|
|||
- status
|
||||
- `git status`
|
||||
|
||||
## Detailed Cheat Sheet
|
||||
## Detailed cheat sheet
|
||||
|
||||
- add
|
||||
- `git add foo.py`: add `foo.py` to the staging area
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Fixing Commits
|
||||
# Fixing commits
|
||||
This is mostly from
|
||||
[here](https://help.github.com/en/articles/changing-a-commit-message#rewriting-the-most-recent-commit-message).
|
||||
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
#########
|
||||
Git Guide
|
||||
Git guide
|
||||
#########
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
|
||||
Quick Start <overview>
|
||||
Quick start <overview>
|
||||
Set up Git <setup>
|
||||
Zulip-specific-tools <zulip-tools>
|
||||
Zulip-specific tools <zulip-tools>
|
||||
How Git is different <the-git-difference>
|
||||
Important Git terms <terminology>
|
||||
Get Zulip code <cloning>
|
||||
Working copies <working-copies>
|
||||
Using Git as you work <using>
|
||||
Pull Requests <pull-requests>
|
||||
Pull requests <pull-requests>
|
||||
Collaborate <collaborate>
|
||||
Fixing commits <fixing-commits>
|
||||
Reviewing changes <reviewing>
|
||||
Get and stay out of trouble <troubleshooting>
|
||||
Git Cheat Sheet <cheat-sheet>
|
||||
Git cheat sheet <cheat-sheet>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Quick start: How Zulip uses Git and GitHub
|
||||
# Quick start: how Zulip uses Git and GitHub
|
||||
|
||||
This quick start provides a brief overview of how Zulip uses Git and GitHub.
|
||||
|
||||
|
|
|
@ -8,14 +8,14 @@ from *Pro Git* by Scott Chacon and Ben Straub.
|
|||
|
||||
Here are the top things to know:
|
||||
|
||||
- **Git works on snapshots:** Unlike other version control systems (e.g.,
|
||||
- **Git works on snapshots.** Unlike other version control systems (e.g.,
|
||||
Subversion, Perforce, Bazaar), which track files and changes to those files
|
||||
made over time, Git tracks *snapshots* of your project. Each time you commit
|
||||
or otherwise make a change to your repository, Git takes a snapshot of your
|
||||
project and stores a reference to that snapshot. If a file hasn't changed,
|
||||
Git creates a link to the identical file rather than storing it again.
|
||||
|
||||
- **Most Git operations are local:** Git is a distributed version control
|
||||
- **Most Git operations are local.** Git is a distributed version control
|
||||
system, so once you've cloned a repository, you have a complete copy of that
|
||||
repository's *entire history*. Staging, committing, branching, and browsing
|
||||
history are all things you can do locally without network access and without
|
||||
|
@ -56,7 +56,7 @@ Here are the top things to know:
|
|||
changes but have not yet been marked for inclusion in the next commit; they
|
||||
have not been added to the index.
|
||||
|
||||
- **Git commit workflow is as follows:** Edit files in your *working tree*. Add
|
||||
- **Git commit workflow is as follows.** Edit files in your *working tree*. Add
|
||||
to the *index* (that is *stage*) with `git add`. *Commit* to the HEAD of the
|
||||
current branch with `git commit`.
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ names.
|
|||
- **origin**: This is your fork.
|
||||
- **upstream**: This is the official Zulip repo.
|
||||
|
||||
## Relevant git commands
|
||||
## Relevant Git commands
|
||||
|
||||
The following commands are useful for moving commits between
|
||||
working copies:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
This article documents several useful tools that can save you a lot of
|
||||
time when working with Git on the Zulip project.
|
||||
|
||||
## Set up git repo script
|
||||
## Set up Git repo script
|
||||
|
||||
**Extremely useful**. In the `tools` directory of
|
||||
[zulip/zulip][github-zulip-zulip] you'll find a bash script
|
||||
|
|
|
@ -32,14 +32,14 @@ installation <production/install.html>`_ or `Contributing to Zulip
|
|||
Contents:
|
||||
|
||||
* :ref:`Overview <overview>`
|
||||
* :ref:`Zulip in Production <zulip-in-production>`
|
||||
* :ref:`Development Environment <development-environment>`
|
||||
* :ref:`Developer Tutorials <developer-tutorials>`
|
||||
* :ref:`Git Guide <git-guide>`
|
||||
* :ref:`Code Contribution Guide <code-contribution-guide>`
|
||||
* :ref:`Code Testing <code-testing>`
|
||||
* :ref:`Subsystem Documentation <subsystem-documentation>`
|
||||
* :ref:`Writing Documentation <writing-documentation>`
|
||||
* :ref:`Zulip in production <zulip-in-production>`
|
||||
* :ref:`Development environment <development-environment>`
|
||||
* :ref:`Developer tutorials <developer-tutorials>`
|
||||
* :ref:`Git guide <git-guide>`
|
||||
* :ref:`Code contribution guide <code-contribution-guide>`
|
||||
* :ref:`Code testing <code-testing>`
|
||||
* :ref:`Subsystem documentation <subsystem-documentation>`
|
||||
* :ref:`Writing documentation <writing-documentation>`
|
||||
* :ref:`Translating <translating>`
|
||||
|
||||
.. _overview:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Zulip architectural overview
|
||||
============================
|
||||
|
||||
Key Codebases
|
||||
Key codebases
|
||||
-------------
|
||||
|
||||
The main Zulip codebase is at <https://github.com/zulip/zulip>. It
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Version History
|
||||
# Version history
|
||||
|
||||
All notable changes to the Zulip server are documented in this file.
|
||||
|
||||
|
@ -16,7 +16,7 @@ in bursts.
|
|||
- Redesigned the top navbar/search area to be much cleaner and show
|
||||
useful data like subscriber counts and stream descriptions in
|
||||
default views.
|
||||
- Added a new "Recent Topics" widget, which lets one browse recent
|
||||
- Added a new "recent topics" widget, which lets one browse recent
|
||||
and ongoing conversations at a glance. We expect this widget to
|
||||
replace "All messages" as the default view in Zulip in the
|
||||
next major release.
|
||||
|
|
|
@ -43,7 +43,7 @@ paths will be familiar to Django developers.
|
|||
|
||||
-------------------------------------------------------------------
|
||||
|
||||
### HTML Templates
|
||||
### HTML templates
|
||||
|
||||
See [our docs](../subsystems/html-css.md) for details on Zulip's
|
||||
templating systems.
|
||||
|
@ -126,7 +126,7 @@ Django context (i.e. with database access).
|
|||
|
||||
---------------------------------------------------------
|
||||
|
||||
### API and Bots
|
||||
### API and bots
|
||||
|
||||
* See the [Zulip API repository](https://github.com/zulip/python-zulip-api).
|
||||
Zulip's Python API bindings, a number of Zulip integrations and
|
||||
|
@ -163,7 +163,7 @@ This is used to deploy essentially all configuration in production.
|
|||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
### Jinja2 Compatibility Files
|
||||
### Jinja2 compatibility files
|
||||
|
||||
* `zproject/jinja2/__init__.py` Jinja2 environment.
|
||||
|
||||
|
|
|
@ -518,7 +518,7 @@ we have enough strong applicants.
|
|||
well. You'll need to learn React Native as part of getting
|
||||
involved. There's tons of good online tutorials, courses, etc.
|
||||
|
||||
### Electron Desktop app
|
||||
### Electron desktop app
|
||||
|
||||
Code:
|
||||
[Our cross-platform desktop app written in JavaScript on Electron](https://github.com/zulip/zulip-desktop).
|
||||
|
@ -528,7 +528,7 @@ Experts: Akash Nimare, Abhighyan Khaund
|
|||
application](https://github.com/zulip/zulip-desktop). There's
|
||||
plenty of feature/UI work to do, but focus areas for us include
|
||||
things to (1) improve the release process for the app, using
|
||||
automated testing, typescript, etc. and (2) polish the UI. Browse
|
||||
automated testing, TypeScript, etc. and (2) polish the UI. Browse
|
||||
the open issues and get involved!
|
||||
|
||||
**Skills required**: JavaScript experience, Electron experience. You
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# The Zulip Roadmap
|
||||
# The Zulip roadmap
|
||||
|
||||
Zulip has received a great deal of interest and attention since it was
|
||||
released as free and open source software by Dropbox. That attention
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
###################
|
||||
Zulip in Production
|
||||
Zulip in production
|
||||
###################
|
||||
|
||||
.. toctree::
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
:orphan:
|
||||
```
|
||||
|
||||
# Production Installation on Existing Server
|
||||
# Production installation on existing server
|
||||
|
||||
Here are some tips for installing the latest release Zulip on a
|
||||
production server running Debian or Ubuntu. The Zulip installation
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Production Installation
|
||||
# Production installation
|
||||
|
||||
You'll need an Ubuntu or Debian system that satisfies
|
||||
[the installation requirements](../production/requirements.md). Alternatively,
|
||||
|
|
|
@ -157,10 +157,10 @@ Zulip open source project understand how many people are using Zulip,
|
|||
and help us allocate resources towards supporting self-hosted
|
||||
installations.
|
||||
|
||||
Our use of these statistics is governed by the same ToS and
|
||||
Privacy Policy that covers the Mobile Push Notifications Service
|
||||
itself. If your organization does not want to submit these
|
||||
statistics, you can disable this feature at any time by setting
|
||||
Our use of these statistics is governed by the same Terms of Service
|
||||
and Privacy Policy that covers the Mobile Push Notifications Service
|
||||
itself. If your organization does not want to submit these statistics,
|
||||
you can disable this feature at any time by setting
|
||||
`SUBMIT_USAGE_STATISTICS=False` in `/etc/zulip/settings.py`.
|
||||
|
||||
## Sending push notifications directly from your server
|
||||
|
|
|
@ -50,7 +50,7 @@ For servers hosting a large number of organizations, like
|
|||
= True` in `/etc/zulip/settings.py` so that the homepage for the
|
||||
server is a copy of the Zulip homepage.
|
||||
|
||||
### SSL Certificates
|
||||
### SSL certificates
|
||||
|
||||
You'll need to install an SSL certificate valid for all the
|
||||
(sub)domains you're using your Zulip server with. You can get an SSL
|
||||
|
@ -125,7 +125,7 @@ like "Notification Bot", "Welcome Bot", etc. exist. In the future,
|
|||
we're considering moving these bots to exist in every realm, so that
|
||||
we wouldn't need the system realm anymore.
|
||||
|
||||
### Migrating / Troubleshooting
|
||||
### Migrating / troubleshooting
|
||||
|
||||
If you're migrating from a configuration using the root domain to one
|
||||
with realms hosted on subdomains, be sure to clear cookies in any
|
||||
|
|
|
@ -139,7 +139,7 @@ with this approach, since it does bypass some of the work that
|
|||
pg_ctlcluster does.
|
||||
|
||||
|
||||
#### Postgres Vacuuming alerts
|
||||
#### Postgres vacuuming alerts
|
||||
|
||||
The `autovac_freeze` postgres alert from `check_postgres` is
|
||||
particularly important. This alert indicates that the age (in terms
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Requirements and Scalability
|
||||
# Requirements and scalability
|
||||
|
||||
To run a Zulip server, you will need:
|
||||
* A dedicated machine or VM
|
||||
|
@ -26,7 +26,7 @@ disregard our advice and use a server that hosts other services, we
|
|||
can't support you, but
|
||||
[we do have some notes on issues you'll encounter](install-existing-server.md).
|
||||
|
||||
#### Operating System
|
||||
#### Operating system
|
||||
|
||||
Ubuntu 20.04 Focal, 18.04 Bionic, and Debian 10 Buster are supported
|
||||
for running Zulip in production. 64-bit is recommended. We recommend
|
||||
|
@ -48,7 +48,7 @@ sudo apt update
|
|||
https://help.ubuntu.com/community/Repositories/Ubuntu
|
||||
[enable-universe]: https://help.ubuntu.com/community/Repositories/CommandLine#Adding_the_Universe_and_Multiverse_Repositories
|
||||
|
||||
#### Hardware Specifications
|
||||
#### Hardware specifications
|
||||
|
||||
* CPU and Memory: For installations with 100+ users you'll need a
|
||||
minimum of **2 CPUs** and **4GB RAM**. For installations with fewer
|
||||
|
@ -66,7 +66,7 @@ https://help.ubuntu.com/community/Repositories/Ubuntu
|
|||
See our [documentation on scalability](#scalability) below for advice
|
||||
on hardware requirements for larger organizations.
|
||||
|
||||
#### Network and Security Specifications
|
||||
#### Network and security specifications
|
||||
|
||||
* Incoming HTTPS access (usually port 443, though this is
|
||||
[configurable](../production/deployment.html#using-an-alternate-port))
|
||||
|
@ -96,7 +96,7 @@ on hardware requirements for larger organizations.
|
|||
|
||||
## Credentials needed
|
||||
|
||||
#### SSL Certificate
|
||||
#### SSL certificate
|
||||
|
||||
Your Zulip server will need an SSL certificate for the domain name it
|
||||
uses. For most Zulip servers, the recommended (and simplest) way to
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Security Model
|
||||
# Security model
|
||||
|
||||
This section attempts to document the Zulip security model. It likely
|
||||
does not cover every issue; if there are details you're curious about,
|
||||
|
@ -25,7 +25,7 @@ announcement).
|
|||
entire message history, and thus someone with control over the
|
||||
server has access to that data as well.
|
||||
|
||||
## Encryption and Authentication
|
||||
## Encryption and authentication
|
||||
|
||||
* Traffic between clients (web, desktop and mobile) and the Zulip is
|
||||
encrypted using HTTPS. By default, all Zulip services talk to each
|
||||
|
@ -90,7 +90,7 @@ strength allowed is controlled by two settings in
|
|||
[zxcvbn-paper]: https://www.usenix.org/system/files/conference/usenixsecurity16/sec16_paper_wheeler.pdf
|
||||
[Bon12]: http://ieeexplore.ieee.org/document/6234435/
|
||||
|
||||
## Messages and History
|
||||
## Messages and history
|
||||
|
||||
* Zulip message content is rendered using a specialized Markdown
|
||||
parser which escapes content to protect against cross-site scripting
|
||||
|
@ -132,7 +132,7 @@ strength allowed is controlled by two settings in
|
|||
[Configuring message editing and deletion](https://zulip.com/help/configure-message-editing-and-deletion)
|
||||
for more details.
|
||||
|
||||
## Users and Bots
|
||||
## Users and bots
|
||||
|
||||
* There are several types of users in a Zulip organization: Organization
|
||||
Owners, Organization Administrators, Members (normal users), Guests,
|
||||
|
|
|
@ -21,7 +21,7 @@ su zulip -c '/home/zulip/deployments/current/scripts/restart-server'
|
|||
|
||||
## Specific settings
|
||||
|
||||
### Domain and Email settings
|
||||
### Domain and email settings
|
||||
|
||||
`EXTERNAL_HOST`: the user-accessible domain name for your Zulip
|
||||
installation (i.e., what users will type in their web browser). This
|
||||
|
@ -34,7 +34,7 @@ maintaining this installation and who will get support and error
|
|||
emails. If you passed `--email` to the installer, this will be
|
||||
prefilled with that value.
|
||||
|
||||
### Authentication Backends
|
||||
### Authentication backends
|
||||
|
||||
`AUTHENTICATION_BACKENDS`: Zulip supports a wide range of popular
|
||||
options for authenticating users to your server, including Google
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Installing SSL Certificates
|
||||
# Installing SSL certificates
|
||||
|
||||
To keep your communications secure, Zulip runs over HTTPS only.
|
||||
You'll need an SSL/TLS certificate.
|
||||
|
|
|
@ -63,7 +63,7 @@ doing the final upgrade at off hours, or buying a support contract.
|
|||
See the [troubleshooting guide](#troubleshooting-and-rollback) if you
|
||||
run into any issues or need to roll back the upgrade.
|
||||
|
||||
## Upgrading from a git repository
|
||||
## Upgrading from a Git repository
|
||||
|
||||
Zulip supports upgrading a production installation to any commit in a
|
||||
Git repository, which is great for [running pre-release changes from
|
||||
|
@ -489,7 +489,7 @@ cd zulip
|
|||
git fetch --tags upstream
|
||||
git checkout acme-branch
|
||||
git rebase --onto 2.1.0 2.0.4
|
||||
# Fix any errors or merge conflicts; see Zulip's Git Guide for advice
|
||||
# Fix any errors or merge conflicts; see Zulip's Git guide for advice
|
||||
|
||||
# Use `git diff` to verify your changes are what you expect
|
||||
git diff 2.1.0 acme-branch
|
||||
|
|
|
@ -123,7 +123,7 @@ efficient:
|
|||
year, most of whose values are 0. A related note is to be cautious about
|
||||
adding queries that are typically non-0 instead of being typically 0.
|
||||
|
||||
## Backend Testing
|
||||
## Backend testing
|
||||
|
||||
There are a few types of automated tests that are important for this sort of
|
||||
system:
|
||||
|
@ -156,7 +156,7 @@ statistics, etc.). There is currently a reference implementation of a
|
|||
|
||||
## Analytics UI development and testing
|
||||
|
||||
### Setup and Testing
|
||||
### Setup and testing
|
||||
|
||||
The main testing approach for the /stats page UI is manual testing.
|
||||
For most UI testing, you can visit `/stats/realm/analytics` while
|
||||
|
|
|
@ -61,11 +61,11 @@ Things that we still may need:
|
|||
We have a few major classes of data. They are listed below in the order
|
||||
that we process them in `do_export_realm()`:
|
||||
|
||||
#### Public Realm Data
|
||||
#### Public realm data
|
||||
|
||||
`Realm/RealmDomain/RealmEmoji/RealmFilter/DefaultStream`.
|
||||
|
||||
#### Cross Realm Data
|
||||
#### Cross realm data
|
||||
|
||||
`Client/zerver_userprofile_cross_realm`
|
||||
|
||||
|
@ -75,18 +75,18 @@ This includes `Client` and three bots.
|
|||
`UserProfile` or `Realm` (unless you somewhat painfully tie it back to
|
||||
users in a bottom-up fashion though other tables).
|
||||
|
||||
#### Disjoint User Data
|
||||
#### Disjoint user data
|
||||
|
||||
`UserProfile/UserActivity/UserActivityInterval/UserPresence`.
|
||||
|
||||
#### Recipient Data
|
||||
#### Recipient data
|
||||
|
||||
`Recipient/Stream/Subscription/Huddle`.
|
||||
|
||||
These tables are tied back to users, but they introduce complications
|
||||
when you try to deal with multi-user subsets.
|
||||
|
||||
#### File-related Data
|
||||
#### File-related data
|
||||
|
||||
`Attachment`
|
||||
|
||||
|
@ -95,7 +95,7 @@ of `UserProfile`. Most importantly, of course, it requires us to grab
|
|||
files from S3. Finally, `Attachment`'s `m2m` relationship ties to
|
||||
`Message`.
|
||||
|
||||
#### Message Data
|
||||
#### Message data
|
||||
|
||||
`Message/UserMessage`
|
||||
|
||||
|
@ -116,13 +116,13 @@ process the data, which isn't surprising for a top-down approach.)
|
|||
|
||||
The next section of the document talks about risk factors.
|
||||
|
||||
## Risk Mitigation
|
||||
## Risk mitigation
|
||||
|
||||
### Generic considerations
|
||||
|
||||
We have two major mechanisms for getting data:
|
||||
|
||||
##### Top Down
|
||||
##### Top down
|
||||
|
||||
Get realm data, then all users in realm, then all recipients, then all
|
||||
messages, etc.
|
||||
|
@ -131,7 +131,7 @@ The problem with the top-down approach will be **filtering**. Also,
|
|||
if errors arise during top-down passes, it may be time consuming to
|
||||
re-run the processes.
|
||||
|
||||
##### Bottom Up
|
||||
##### Bottom up
|
||||
|
||||
Start with users, get their recipient data, etc.
|
||||
|
||||
|
@ -139,14 +139,14 @@ The problems with the bottom up approach will be **merging**. Also,
|
|||
if we run multiple bottom-up passes, there is the danger of
|
||||
duplicating some work, particularly on the message side of things.
|
||||
|
||||
### Approved Transfers
|
||||
### Approved transfers
|
||||
|
||||
We have not yet integrated the approved-transfer model, which tells us
|
||||
which users can be moved.
|
||||
|
||||
### Risk factors broken out by data categories
|
||||
|
||||
#### Message Data
|
||||
#### Message data
|
||||
|
||||
- models: `Message`/`UserMessage`.
|
||||
- assets: `messages-*.json`, subprocesses, partial files
|
||||
|
@ -165,7 +165,7 @@ We currently have these measures in place for top-down processing:
|
|||
- messages are filtered by both sender and recipient
|
||||
|
||||
|
||||
#### File Related Data
|
||||
#### File related data
|
||||
|
||||
- models: `Attachment`
|
||||
- assets: S3, `attachment.json`, `uploads-temp/`, image files in
|
||||
|
@ -185,7 +185,7 @@ parts**:
|
|||
- At import time we have to populate the `m2m` table (but fortunately,
|
||||
this is pretty low risk in terms of breaking anything.)
|
||||
|
||||
#### Recipient Data
|
||||
#### Recipient data
|
||||
- models: `Recipient/Stream/Subscription/Huddle`
|
||||
- assets: `realm.json`, `(user,stream,huddle)_(recipient,subscription)`
|
||||
|
||||
|
@ -219,7 +219,7 @@ Recommendation: We probably want to get a backup of all this data that
|
|||
is very simply bulk-exported from the entire DB, and we should
|
||||
obviously put it in a secure place.
|
||||
|
||||
#### Cross Realm Data
|
||||
#### Cross realm data
|
||||
- models: `Client`
|
||||
- assets: `realm.json`, three bots (`notification`/`email`/`welcome`),
|
||||
`id_maps`
|
||||
|
@ -245,7 +245,7 @@ example. As for possibly missing messages that the welcome bot and
|
|||
friends have sent in the past, I am not sure what our risk profile is
|
||||
there, but I imagine it is relatively low.
|
||||
|
||||
#### Disjoint User Data
|
||||
#### Disjoint user data
|
||||
- models: `UserProfile/UserActivity/UserActivityInterval/UserPresence`
|
||||
- assets: `realm.json`, `password`, `api_key`, `avatar salt`,
|
||||
`id_maps`
|
||||
|
@ -259,7 +259,7 @@ We have code in place to exclude `password` and `api_key` from
|
|||
`UserProfile` rows. The import process calls
|
||||
`set_unusable_password()`.
|
||||
|
||||
#### Public Realm Data
|
||||
#### Public realm data
|
||||
|
||||
- models: `Realm/RealmDomain/RealmEmoji/RealmFilter/DefaultStream`
|
||||
- asserts: `realm.json`
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Real-time Push and Events
|
||||
# Real-time push and events
|
||||
|
||||
Zulip's "events system" is the server-to-client push system that
|
||||
powers our real-time sync. This document explains how it works; to
|
||||
|
|
|
@ -27,7 +27,7 @@ changes made in source files will immediately take effect in open
|
|||
browser windows, either by live-updating the CSS or reloading the
|
||||
browser window (following backend changes).
|
||||
|
||||
## CSS Style guidelines
|
||||
## CSS style guidelines
|
||||
|
||||
### Avoid duplicated code
|
||||
|
||||
|
@ -147,7 +147,7 @@ relevant background as well.
|
|||
### Primary build process
|
||||
|
||||
Zulip's frontend is primarily JavaScript in the `static/js` directory;
|
||||
we are working on migrating these to Typescript modules. Stylesheets
|
||||
we are working on migrating these to TypeScript modules. Stylesheets
|
||||
are written in the Sass extension of CSS (with the scss syntax), they
|
||||
are converted from plain CSS, and we have yet to take full advantage of
|
||||
the features Sass offers. We use Webpack to transpile and build JS
|
||||
|
@ -237,7 +237,7 @@ server is restarted, files are copied into that directory.
|
|||
without breaking the rendering of old messages (or doing a
|
||||
mass-rerender of old messages).
|
||||
|
||||
### CommonJS/Typescript modules
|
||||
### CommonJS/TypeScript modules
|
||||
|
||||
Webpack provides seamless interoperability between different module
|
||||
systems such as CommonJS, AMD and ES6. Our JS files are written in the
|
||||
|
@ -257,7 +257,7 @@ analysis. TypeScript uses an ES6-like module system. Any declaration
|
|||
can be made public by adding the `export` keyword. Consuming
|
||||
variables, functions, etc exported from another module should be done
|
||||
with the `import` statement as oppose to accessing them from the
|
||||
global `window` scope. Internally our typescript compiler is
|
||||
global `window` scope. Internally our TypeScript compiler is
|
||||
configured to transpile TS to the ES6 module system.
|
||||
|
||||
Read more about these module systems here:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
########################
|
||||
Subsystems Documentation
|
||||
Subsystems documentation
|
||||
########################
|
||||
|
||||
.. toctree::
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# UI: Input Pills
|
||||
# UI: input pills
|
||||
|
||||
This is a high level and API explanation of the input pill interface in the
|
||||
frontend of the Zulip web application.
|
||||
|
@ -15,7 +15,7 @@ A pill container should have the following markup:
|
|||
|
||||
The pills will automatically be inserted in before the ".input" in order.
|
||||
|
||||
## Basic Usage
|
||||
## Basic usage
|
||||
|
||||
```js
|
||||
var pill_containter = $("#input_container");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Logging and Error reporting
|
||||
# Logging and error reporting
|
||||
|
||||
Having a good system for logging error reporting is essential to
|
||||
making a large project like Zulip successful. Without reliable error
|
||||
|
|
|
@ -196,7 +196,7 @@ and users are generally writing quickly. Zulip's Markdown strategy is
|
|||
based on the principles of giving users the power they need to express
|
||||
complicated ideas in a chat context while minimizing those two error rates.
|
||||
|
||||
## Zulip's Changes to Markdown
|
||||
## Zulip's changes to Markdown
|
||||
|
||||
Below, we document the changes that Zulip has against stock
|
||||
Python-Markdown; some of the features we modify / disable may already
|
||||
|
|
|
@ -9,14 +9,14 @@ The
|
|||
[production docs on multiple realms](../production/multiple-organizations.md)
|
||||
are likely also relevant reading.
|
||||
|
||||
## Creating Realms
|
||||
## Creating realms
|
||||
|
||||
There are two main methods for creating realms.
|
||||
|
||||
* Using unique link generator
|
||||
* Enabling open realm creation
|
||||
|
||||
#### Using Unique Link Generator
|
||||
#### Using unique link generator
|
||||
|
||||
```bash
|
||||
./manage.py generate_realm_creation_link
|
||||
|
@ -28,10 +28,10 @@ after the creation of the realm. The link also expires if not used
|
|||
within 7 days. The expiration period can be changed by modifying
|
||||
`REALM_CREATION_LINK_VALIDITY_DAYS` in settings.py.
|
||||
|
||||
### Enabling Open Realm Creation
|
||||
### Enabling open realm creation
|
||||
|
||||
If you want anyone to be able to create new realms on your server, you
|
||||
can enable Open Realm Creation. This will add a **Create new
|
||||
can enable open realm creation. This will add a **Create new
|
||||
organization** link to your Zulip homepage footer, and anyone can
|
||||
create a new realm by visiting this link (**/new**). This
|
||||
feature is disabled by default in production instances, and can be
|
||||
|
@ -55,7 +55,7 @@ releases had much less nice handling for subdomains. See our
|
|||
[docs on using subdomains](../production/multiple-organizations.md) for
|
||||
user-facing documentation on this.
|
||||
|
||||
### Working With Subdomains In Development Environment
|
||||
### Working with subdomains in development environment
|
||||
|
||||
By default, Linux does not provide a convenient way to use subdomains
|
||||
in your local development environment. To solve this problem, we use
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Schema Migrations
|
||||
# Schema migrations
|
||||
|
||||
Zulip uses the [standard Django system for doing schema
|
||||
migrations](https://docs.djangoproject.com/en/1.10/topics/migrations/).
|
||||
|
|
|
@ -284,7 +284,7 @@ of about 1 second per 2000 users subscribed to receive the message.
|
|||
While these delays may not be immediately obvious to users (Zulip,
|
||||
like many other chat applications,
|
||||
[local echoes](../subsystems/markdown.md) messages that a user sends
|
||||
as soon as the user hits “send”), latency beyond a second or two
|
||||
as soon as the user hits “Send”), latency beyond a second or two
|
||||
significantly impacts the feeling of interactivity in a chat
|
||||
experience (i.e. it feels like everyone takes a long time to reply to
|
||||
even simple questions).
|
||||
|
|
|
@ -231,7 +231,7 @@ but you don't want to have to modify the Zulip server codebase
|
|||
to turn on those features. This is where our "zform"
|
||||
architecture comes to the rescue.
|
||||
|
||||
## zform (Trivia Quiz bot)
|
||||
## zform (trivia quiz bot)
|
||||
|
||||
This section will describe our "zform" architecture.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
############
|
||||
Code Testing
|
||||
Code testing
|
||||
############
|
||||
|
||||
.. toctree::
|
||||
|
|
|
@ -195,7 +195,7 @@ We use Puppet as our tool to manage configuration files, using
|
|||
puppet "manifests." To lint puppet manifests, we use the "parser validate"
|
||||
option of puppet.
|
||||
|
||||
#### HTML Templates
|
||||
#### HTML templates
|
||||
|
||||
Zulip uses two HTML templating systems:
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ This doc assumes you know how to set up a local development server
|
|||
and open the Zulip app in the browser. It also assumes a basic
|
||||
knowledge of how to use Zulip.
|
||||
|
||||
## Basic Stuff ##
|
||||
## Basic stuff ##
|
||||
|
||||
When testing Zulip manually, here are things to focus on:
|
||||
|
||||
|
@ -453,7 +453,7 @@ Test per-stream options:
|
|||
messages view
|
||||
- Verify stream subscriber counts in the main stream view
|
||||
|
||||
### User Settings ###
|
||||
### User settings ###
|
||||
|
||||
You can modify per-user settings by choosing "Settings" in the gear menu.
|
||||
Do these tasks as Cordelia.
|
||||
|
@ -492,7 +492,7 @@ Do these tasks as Cordelia.
|
|||
- Turn on/off "Enable desktop notifications for new streams" and test.
|
||||
(We may eliminate this option soon.)
|
||||
|
||||
### Keyboard Shortcuts ###
|
||||
### Keyboard shortcuts ###
|
||||
|
||||
We mostly test keyboard shortcuts as part of other tasks.
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ an `Any` or `# type: ignore[code]` so you're not blocked waiting for help,
|
|||
add a `# TODO: ` comment so it doesn't get forgotten in code review,
|
||||
and ask for help in chat.zulip.org.
|
||||
|
||||
## mypy stubs for third-party modules.
|
||||
## Mypy stubs for third-party modules
|
||||
|
||||
For the Python standard library and some popular third-party modules,
|
||||
the [typeshed project](https://github.com/python/typeshed) has
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Testing Philosophy
|
||||
# Testing philosophy
|
||||
|
||||
Zulip's automated tests are a huge part of what makes the project able
|
||||
to make progress. This page records some of the key principles behind
|
||||
|
@ -195,4 +195,3 @@ these tests are defense in depth; the main way we prevent invalid
|
|||
access to streams is not offering developers a way to get a Stream
|
||||
object in server code except as mediated through these security check
|
||||
functions.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Web frontend black-box casperjs tests
|
||||
# Web frontend black-box CasperJS tests
|
||||
|
||||
These live in `frontend_tests/casper_tests/`. This is a "black box"
|
||||
integration test; we load the frontend in a real (headless) browser,
|
||||
|
@ -17,7 +17,7 @@ You can run the casper tests with `./tools/test-js-with-casper` or as
|
|||
`./tools/test-js-with-casper 06-settings.js` to run a single test file
|
||||
from `frontend_tests/casper_tests/`.
|
||||
|
||||
## Debugging Casper.JS
|
||||
## Debugging CasperJS
|
||||
|
||||
When a Casper test fails, the first things to check (before you bother
|
||||
trying to use the Casper debugging tools are:
|
||||
|
@ -46,7 +46,7 @@ can sometimes give insight into exactly what's happening.
|
|||
|
||||
### Remote debugging
|
||||
|
||||
Casper.js (via PhantomJS) has support for remote debugging. However, it
|
||||
CasperJS (via PhantomJS) has support for remote debugging. However, it
|
||||
is not perfect. Here are some steps for using it and gotchas you might
|
||||
want to know; you'll likely also want to read the section on writing
|
||||
tests (below) if you get stuck, since the advice on how to write
|
||||
|
|
|
@ -298,7 +298,7 @@ A common use is to prevent a call to a third-party service from using
|
|||
the Internet; `git grep mock.patch | grep requests` is a good way to
|
||||
find several examples of doing this.
|
||||
|
||||
## Zulip Testing Philosophy
|
||||
## Zulip testing philosophy
|
||||
|
||||
If there is one word to describe Zulip's philosophy for writing tests,
|
||||
it is probably "flexible." (Hopefully "thorough" goes without saying.)
|
||||
|
|
|
@ -7,7 +7,7 @@ following general translation rules.
|
|||
|
||||
## Rules
|
||||
|
||||
### Formal or Informal?
|
||||
### Formal or informal?
|
||||
|
||||
**Informal.**
|
||||
|
||||
|
@ -114,7 +114,7 @@ to get a feeling for the vocabulary.
|
|||
|
||||
* Balance common verbs and nouns with specific IT-related translations
|
||||
of English terms - this can be tricky, try to check how other resources
|
||||
were translated (e.g. GMail, Microsoft websites, Facebook) to decide
|
||||
were translated (e.g. Gmail, Microsoft websites, Facebook) to decide
|
||||
what wouldn't sound awkward / rude in German.
|
||||
|
||||
* For additional translation information, feel free to check out
|
||||
|
@ -144,7 +144,7 @@ Since we try to avoid concatenating words whenever possible, don't use
|
|||
We go with "markiert" instead of "gesternt" (which is not even a proper
|
||||
German word) here, since it comes closer to the original meaning of "starred".
|
||||
|
||||
*"Markierte Nachricht" (GMail, Transifex),
|
||||
*"Markierte Nachricht" (Gmail, Transifex),
|
||||
"Nachricht mit Stern" (WhatsApp)*
|
||||
|
||||
*"Bereich" (Transifex), "Community" (Google+)*
|
||||
|
|
|
@ -16,7 +16,7 @@ Use informal Hindi for translation:
|
|||
|
||||
* Balance common verbs and nouns with specific IT-related translations
|
||||
of English terms - this can be tricky, try to check how other
|
||||
resources were translated (e.g. GMail, Microsoft websites, Facebook)
|
||||
resources were translated (e.g. Gmail, Microsoft websites, Facebook)
|
||||
to decide what wouldn't sound awkward / rude in Hindi.
|
||||
|
||||
Some terms are very tricky to translate, so be sure to communicate
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Internationalization for Developers
|
||||
# Internationalization for developers
|
||||
|
||||
Zulip, like many popular applications, is designed with
|
||||
internationalization (i18n) in mind, which means users can fully use
|
||||
|
|
|
@ -30,7 +30,7 @@ Use semi-formal Polish for translation, some specifics:
|
|||
|
||||
* Balance common verbs and nouns with specific IT-related translations
|
||||
of English terms - this can be tricky, try to check how other
|
||||
resources were translated (e.g. GMail, Microsoft websites, Facebook)
|
||||
resources were translated (e.g. Gmail, Microsoft websites, Facebook)
|
||||
to decide what wouldn't sound awkward in Polish.
|
||||
|
||||
Some terms are very tricky to translate, so be sure to communicate
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Russian Translation Style Guide
|
||||
# Russian translation style guide
|
||||
|
||||
Вот некоторые правила, которых стоит придерживаться для поддержания
|
||||
качества перевода. Они продиктованы опытом - собственным и коллег,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Spanish Translation Style Guide
|
||||
# Spanish translation style guide
|
||||
|
||||
Use informal Spanish for translation:
|
||||
|
||||
|
@ -20,7 +20,7 @@ Use informal Spanish for translation:
|
|||
|
||||
* Balance common verbs and nouns with specific IT-related translations
|
||||
of English terms - this can be tricky, try to check how other
|
||||
resources were translated (e.g. GMail, Microsoft websites, Facebook)
|
||||
resources were translated (e.g. Gmail, Microsoft websites, Facebook)
|
||||
to decide what wouldn't sound awkward / rude in Spanish.
|
||||
|
||||
* Latest RAE rule ("solo" should
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation Guidelines
|
||||
# Translation guidelines
|
||||
|
||||
Zulip's has full support for Unicode (and partial support for RTL
|
||||
languages), so you can use your preferred language everywhere in
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
###################
|
||||
Developer Tutorials
|
||||
Developer tutorials
|
||||
###################
|
||||
|
||||
.. toctree::
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Life of a Request
|
||||
# Life of a request
|
||||
|
||||
It can sometimes be confusing to figure out how to write a new feature,
|
||||
or debug an existing one. Let us try to follow a request through the
|
||||
|
@ -37,7 +37,7 @@ location /static/ {
|
|||
}
|
||||
```
|
||||
|
||||
## Nginx routes other requests [between django and tornado][tornado-django]
|
||||
## Nginx routes other requests [between Django and Tornado][tornado-django]
|
||||
|
||||
[tornado-django]: ../overview/architecture-overview.html?highlight=tornado#django-and-tornado
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ organized. And finally, the
|
|||
[message sending](../subsystems/sending-messages.md) documentation on
|
||||
the additional complexity involved in sending messages.
|
||||
|
||||
## General Process
|
||||
## General process
|
||||
|
||||
### Files impacted
|
||||
|
||||
|
@ -50,12 +50,12 @@ organization in Zulip). The following files are involved in the process:
|
|||
(ex: pushing an organization change to other open browsers and updating
|
||||
the application's state).
|
||||
|
||||
**Backend Testing**
|
||||
**Backend testing**
|
||||
- `zerver/tests/test_realm.py`: end-to-end API tests for updating realm settings.
|
||||
- `zerver/tests/test_events.py`: tests for possible race bugs in the
|
||||
zerver/lib/events.py implementation.
|
||||
|
||||
**Frontend Testing**
|
||||
**Frontend testing**
|
||||
- `frontend_tests/casper_tests/10-admin.js`: end-to-end tests for the organization
|
||||
admin settings pages.
|
||||
- `frontend_tests/node_tests/dispatch.js`
|
||||
|
@ -134,7 +134,7 @@ or JavaScript/TypeScript code that generates user-facing strings, be sure to
|
|||
|
||||
**Testing:** There are two types of frontend tests: node-based unit
|
||||
tests and blackbox end-to-end tests. The blackbox tests are run in a
|
||||
headless browser using Casper.js and are located in
|
||||
headless browser using CasperJS and are located in
|
||||
`frontend_tests/casper_tests/`. The unit tests use Node's `assert`
|
||||
module are located in `frontend_tests/node_tests/`. For more
|
||||
information on writing and running tests, see the
|
||||
|
@ -461,7 +461,7 @@ with the new value. E.g., for `authentication_methods`, we created
|
|||
This completes the backend implementation. A great next step is to
|
||||
write automated backend tests for your new feature.
|
||||
|
||||
### Backend Tests
|
||||
### Backend tests
|
||||
|
||||
To test the new setting syncs correctly with the `property_types`
|
||||
framework, one usually just needs to add a line in each of
|
||||
|
@ -637,7 +637,7 @@ Here are few important cases you should consider when testing your changes:
|
|||
buttons, so changes and saving in one subsection shouldn't affect
|
||||
the others.
|
||||
|
||||
### Front End Tests
|
||||
### Front end tests
|
||||
|
||||
A great next step is to write front end tests. There are two types of
|
||||
frontend tests: [node-based unit tests](../testing/testing-with-node.md) and
|
||||
|
|
|
@ -154,13 +154,13 @@ Some titles have been shortened for organizational purposes.
|
|||
|
||||
[TypeScript Declaration Files Introduction]: https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html
|
||||
|
||||
## Git/Version Control Systems (VCS)
|
||||
## Git/version control systems (VCS)
|
||||
|
||||
You may want to take a look first at our [Git and GitHub guide][].
|
||||
|
||||
[Git and GitHub guide]: ../git/index.md
|
||||
|
||||
## Computer Science/Algorithms
|
||||
## Computer science/algorithms
|
||||
|
||||
*Blog* - [GeeksforGeeks][]
|
||||
|
||||
|
@ -216,7 +216,7 @@ You may want to take a look first at our [Git and GitHub guide][].
|
|||
|
||||
[List of good projects for new contributors]: https://github.com/MunGell/awesome-for-beginners
|
||||
|
||||
## Competitions/Camps
|
||||
## Competitions/camps
|
||||
|
||||
[CodeForces][]
|
||||
|
||||
|
@ -226,7 +226,7 @@ You may want to take a look first at our [Git and GitHub guide][].
|
|||
|
||||
[Free Code Camp]: https://www.freecodecamp.com
|
||||
|
||||
## Massive Open Online Courses (MOOC) Platforms
|
||||
## Massive open online courses (MOOC) platforms
|
||||
|
||||
[Coursera][]
|
||||
|
||||
|
|
|
@ -340,7 +340,7 @@ extremely useful and even easy to use (at least the 99% of the time).
|
|||
|
||||
To learn more about how to use it, read
|
||||
[our docs](../git/index.md) on Git and
|
||||
Github.
|
||||
GitHub.
|
||||
|
||||
[This cheatsheet][git-cheat-detailed]
|
||||
will be useful in your journey, as well.
|
||||
|
|
|
@ -222,7 +222,7 @@ casper.then(function () {
|
|||
casper.fill(
|
||||
'form[action^="/json/messages"]',
|
||||
{
|
||||
content: "**Markdown Preview** >> Test for Markdown preview",
|
||||
content: "**Markdown preview** >> Test for Markdown preview",
|
||||
},
|
||||
false
|
||||
);
|
||||
|
@ -235,7 +235,7 @@ casper.then(function () {
|
|||
casper.waitForSelectorTextChange("#preview_content", function () {
|
||||
casper.test.assertEquals(
|
||||
casper.getHTML("#preview_content"),
|
||||
"<p><strong>Markdown Preview</strong> >> Test for Markdown preview</p>",
|
||||
"<p><strong>Markdown preview</strong> >> Test for Markdown preview</p>",
|
||||
"Check Markdown is previewed properly"
|
||||
);
|
||||
});
|
||||
|
|
|
@ -286,7 +286,7 @@ run_test("basic_chars", () => {
|
|||
overlays.is_active = return_false;
|
||||
assert_mapping("d", "drafts.launch");
|
||||
|
||||
// Test opening and closing of Recent Topics
|
||||
// Test opening and closing of recent topics
|
||||
overlays.is_active = return_true;
|
||||
overlays.recent_topics_open = return_true;
|
||||
assert_mapping("t", "overlays.close_overlay");
|
||||
|
|
|
@ -192,12 +192,12 @@ async function test_markdown_rendering(page) {
|
|||
"",
|
||||
);
|
||||
await common.fill_form(page, 'form[action^="/json/messages"]', {
|
||||
content: "**Markdown Preview** >> Test for Markdown preview",
|
||||
content: "**Markdown preview** >> Test for Markdown preview",
|
||||
});
|
||||
await page.click("#markdown_preview");
|
||||
await page.waitForSelector("#preview_content", {visible: true});
|
||||
const expected_markdown_html =
|
||||
"<p><strong>Markdown Preview</strong> >> Test for Markdown preview</p>";
|
||||
"<p><strong>Markdown preview</strong> >> Test for Markdown preview</p>";
|
||||
await page.waitForFunction(() => $("#preview_content").html() !== "");
|
||||
markdown_preview_element = await page.$("#preview_content");
|
||||
assert.equal(
|
||||
|
|
|
@ -316,7 +316,7 @@ exports.create = function (opts) {
|
|||
const id = $pill.data("id");
|
||||
funcs.removePill(id);
|
||||
$next.trigger("focus");
|
||||
// the "backspace" key in FireFox will go back a page if you do
|
||||
// the "backspace" key in Firefox will go back a page if you do
|
||||
// not prevent it.
|
||||
e.preventDefault();
|
||||
}
|
||||
|
|
|
@ -336,7 +336,7 @@ exports.user_initiated_animate_scroll = function (scroll_amount) {
|
|||
exports.recenter_view = function (message, opts) {
|
||||
opts = opts || {};
|
||||
|
||||
// Barnowl-style recentering: if the pointer is too high, move it to
|
||||
// BarnOwl-style recentering: if the pointer is too high, move it to
|
||||
// the 1/2 marks. If the pointer is too low, move it to the 1/7 mark.
|
||||
// See keep_pointer_in_view() for related logic to keep the pointer onscreen.
|
||||
|
||||
|
|
|
@ -30,16 +30,16 @@ mirror script instead of using Webathena.</p>
|
|||
web application will warn you if the Zephyr mirroring script is
|
||||
not running.</p>
|
||||
|
||||
<p>If you already have Barnowl running in screen/tmux somewhere,
|
||||
<p>If you already have BarnOwl running in screen/tmux somewhere,
|
||||
you can just run:</p>
|
||||
|
||||
<p><code>/mit/tabbott/zulip/zephyr_mirror.py</code></p>
|
||||
|
||||
<p>inside that screen session.</p>
|
||||
|
||||
<h4>Mirroring without a Barnowl session</h4>
|
||||
<h4>Mirroring without a BarnOwl session</h4>
|
||||
|
||||
<p>If you are not already running a screen/tmux for Barnowl, you
|
||||
<p>If you are not already running a screen/tmux for BarnOwl, you
|
||||
can setup a screen session to run the Zephyr mirroring script by
|
||||
running the following on a dialup such
|
||||
as <a href="https://linerva.mit.edu">linerva.mit.edu</a>:</p>
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<code>/mit/tabbott/zulip/zephyr_mirror.py --sync-subscriptions</code></p>
|
||||
|
||||
<p> <strong>NOTE</strong>: Zulip supports several ways to control what messages you want to read
|
||||
right now, but Zulip does not yet have a direct equivalent to Barnowl filters.
|
||||
right now, but Zulip does not yet have a direct equivalent to BarnOwl filters.
|
||||
If you have more subscriptions than you generally read, we recommend that you use
|
||||
Zulip's "Mute" option to hide those subscriptions from your
|
||||
home view that you less commonly read. You can still easily access those streams
|
||||
|
|
|
@ -12,9 +12,9 @@ images and/or website links.
|
|||
|
||||
{settings_tab|organization-settings}
|
||||
|
||||
1. Under **Other Settings**, toggle **Show previews of uploaded and linked images**.
|
||||
1. Under **Other settings**, toggle **Show previews of uploaded and linked images**.
|
||||
|
||||
1. Under **Other Settings**, toggle **Show previews of linked websites**.
|
||||
1. Under **Other settings**, toggle **Show previews of linked websites**.
|
||||
|
||||
{!save-changes.md!}
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ Organization administrators can also configure a default syntax
|
|||
highlighting language. In this configuration, one can use ````text`
|
||||
to display content without any syntax highlighting.
|
||||
|
||||
## Latex
|
||||
## LaTeX
|
||||
~~~
|
||||
Inline: $$O(n^2)$$
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# GDPR Compliance
|
||||
# GDPR compliance
|
||||
|
||||
This page covers how Zulip interacts with the EU's landmark GDPR
|
||||
legislation; you can read the
|
||||
|
@ -13,7 +13,7 @@ give them control over how their personal data is collected,
|
|||
processed, and used. The law applies to any company that collects or
|
||||
processes the data of European consumers.
|
||||
|
||||
## Controllers and Processors
|
||||
## Controllers and processors
|
||||
|
||||
There are two key relationships that are defined in the GDPR. As a
|
||||
customer of Zulip Cloud, you operate as the controller when using our
|
||||
|
@ -35,7 +35,7 @@ personal data. These entities are commonly referred to as
|
|||
sub-processors. For example, Kandra Labs leverages cloud service
|
||||
providers like Amazon Web Services and Mailgun to host Zulip Cloud.
|
||||
|
||||
## How Zulip Supports GDPR Compliance
|
||||
## How Zulip supports GDPR compliance
|
||||
|
||||
We’re committed to the compliance of all parties including you,
|
||||
third-parties, and us.
|
||||
|
@ -66,7 +66,7 @@ this page but not defined have the meaning set forth in Zulip's Terms
|
|||
of Service or superseding written agreement between Customer and
|
||||
Kandra Labs (the "Agreement").
|
||||
|
||||
### Third Parties
|
||||
### Third parties
|
||||
|
||||
Zulip currently uses third party Subprocessors to provide
|
||||
infrastructure services, and to help us provide customer support and
|
||||
|
|
|
@ -9,7 +9,7 @@ W3C's Web Content Accessibility Guidelines.
|
|||
|
||||
2. Under **Display settings**, select **High contrast mode**.
|
||||
|
||||
## Related Articles
|
||||
## Related articles
|
||||
|
||||
* [Accessibility in Zulip](https://zulip.readthedocs.io/en/latest/contributing/accessibility.html)
|
||||
* [View emoji as text](/help/view-emoji-as-text)
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
* [Export your organization](/help/export-your-organization)
|
||||
* [Change organization URL](/help/change-organization-url)
|
||||
* [Deactivate your organization](/help/deactivate-your-organization)
|
||||
* [GDPR Compliance](/help/gdpr-compliance)
|
||||
* [GDPR compliance](/help/gdpr-compliance)
|
||||
|
||||
## Organization settings
|
||||
* [Restrict stream creation](/help/configure-who-can-create-streams)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Zulip User Documentation
|
||||
# Zulip user documentation
|
||||
|
||||
Zulip is a group chat app. Its most distinctive characteristic is that
|
||||
conversation within an organization is divided into “**streams**”
|
||||
|
|
|
@ -137,10 +137,10 @@ title="thumbs up"/>**: `+`
|
|||
(including All messages), and don't contribute to unread counts. Read more about
|
||||
[muting topics](/help/mute-a-topic).
|
||||
|
||||
## Recent Topics
|
||||
## Recent topics
|
||||
|
||||
* **View Recent Topics**: `t`
|
||||
* **Hide Recent Topics**: `Esc`
|
||||
* **View recent topics**: `t`
|
||||
* **Hide recent topics**: `Esc`
|
||||
|
||||
Keyboard navigation (e.g. arrow keys) works as expected.
|
||||
Use `Enter` to engage with elements.
|
||||
|
|
|
@ -32,6 +32,6 @@ Muted streams still appear in the left sidebar, though they are grayed out.
|
|||
|
||||
{end_tabs}
|
||||
|
||||
## Related Articles
|
||||
## Related articles
|
||||
|
||||
* [Mute a topic](/help/mute-a-topic)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Organize the Streams sidebar
|
||||
# Organize the streams sidebar
|
||||
|
||||
At an organization level, we recommend starting with a few streams and
|
||||
growing organically, and doing a cleanup once every year or two to archive
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Restrict Profile picture change
|
||||
# Restrict profile picture change
|
||||
|
||||
{!admin-only.md!}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# SAML Authentication
|
||||
# SAML authentication
|
||||
|
||||
Zulip supports using SAML authentication for Single Sign On, both when
|
||||
self-hosting or on the Zulip Cloud Plus plan.
|
||||
|
@ -57,7 +57,7 @@ Zulip with various common SAML Identity Providers.
|
|||
* Optionally you can also send us an icon that should be shown on the button.
|
||||
1. We will take care of the server-side setup and let you know as soon as it's ready.
|
||||
|
||||
## Related Articles
|
||||
## Related articles
|
||||
|
||||
* [SAML configuration][saml-readthedocs] for self-hosting.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Zulip in a Terminal
|
||||
# Zulip in a terminal
|
||||
|
||||
At present, there are a few alpha-quality implementations of a terminal
|
||||
client for Zulip:
|
||||
|
@ -8,9 +8,9 @@ terminal interface for Zulip using [Urwid](http://urwid.org). It is
|
|||
written in python and is being very actively developed; feedback and
|
||||
bug reports are very welcome!
|
||||
|
||||
* [Barnowl](https://github.com/aglasgall/barnowl/tree/zulip) is a
|
||||
* [BarnOwl](https://github.com/aglasgall/barnowl/tree/zulip) is a
|
||||
multi-protocol terminal client for various chat systems, written in
|
||||
Perl. [Barnowl itself](https://barnowl.mit.edu/) is very mature
|
||||
Perl. [BarnOwl itself](https://barnowl.mit.edu/) is very mature
|
||||
software, and the Zulip integration has been used for a few years, but
|
||||
it isn't integrated into the mainline branch and needs work on
|
||||
documentation.
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
that previously created
|
||||
<a href="https://www.ksplice.com">Ksplice</a>, software for
|
||||
live-patching a running Linux kernel. Zulip was inspired by
|
||||
the <a href="https://barnowl.mit.edu/">Barnowl</a> client for
|
||||
the <a href="https://barnowl.mit.edu/">BarnOwl</a> client for
|
||||
the <a href="https://en.wikipedia.org/wiki/Zephyr_(protocol)">Zephyr</a>
|
||||
protocol, and the incredible community that Zephyr supported at MIT.
|
||||
</p>
|
||||
|
|
|
@ -18,7 +18,7 @@ VIDEO_CHAT_PROVIDERS = {
|
|||
def remove_google_hangouts_provider(apps: StateApps, schema_editor: DatabaseSchemaEditor) -> None:
|
||||
# We are removing the Google Hangout integration because Google has
|
||||
# removed the Hangouts brand. All the realms that used Hangouts as
|
||||
# their video chat provided are now set to the default, jitsi.
|
||||
# their video chat provided are now set to the default, Jitsi.
|
||||
Realm = apps.get_model('zerver', 'Realm')
|
||||
Realm.objects.filter(video_chat_provider=VIDEO_CHAT_PROVIDERS['google_hangouts']['id']).update(
|
||||
video_chat_provider=VIDEO_CHAT_PROVIDERS['jitsi_meet']['id']
|
||||
|
|
|
@ -78,7 +78,7 @@ docs_without_macros = [
|
|||
def render_markdown_path(markdown_file_path: str,
|
||||
context: Mapping[str, Any]={},
|
||||
pure_markdown: bool=False) -> str:
|
||||
"""Given a path to a Markdown file, return the rendered html.
|
||||
"""Given a path to a Markdown file, return the rendered HTML.
|
||||
|
||||
Note that this assumes that any HTML in the Markdown file is
|
||||
trusted; it is intended to be used for documentation, not user
|
||||
|
|
Loading…
Reference in New Issue