docs: Convert .html#fragment links to .md#fragment.

This uses the myst_heading_anchors option to automatically generate
header anchors and make Sphinx aware of them.  See
https://myst-parser.readthedocs.io/en/latest/syntax/optional.html#auto-generated-header-anchors.

Note: to be compatible with GitHub, MyST-Parser uses a slightly
different convention for .md fragment links than .html fragment links
when punctuation is involved.  This does not affect the generated
fragment links in the HTML output.

Fixes #13264.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg 2022-02-15 16:39:15 -08:00 committed by Anders Kaseorg
parent dacf136f21
commit 75525f5b53
55 changed files with 161 additions and 160 deletions

View File

@ -36,6 +36,7 @@ myst_enable_extensions = [
"colon_fence", "colon_fence",
"substitution", "substitution",
] ]
myst_heading_anchors = 6
myst_substitutions = { myst_substitutions = {
"LATEST_RELEASE_VERSION": LATEST_RELEASE_VERSION, "LATEST_RELEASE_VERSION": LATEST_RELEASE_VERSION,
} }

View File

@ -237,8 +237,8 @@ We also strongly recommend reviewers to go through the following resources.
- [Zulip code of conduct](../code-of-conduct.md) - [Zulip code of conduct](../code-of-conduct.md)
[code-style]: code-style.md [code-style]: code-style.md
[commit-messages]: version-control.html#commit-messages [commit-messages]: version-control.md#commit-messages
[test-writing]: ../testing/testing.md [test-writing]: ../testing/testing.md
[mypy]: ../testing/mypy.md [mypy]: ../testing/mypy.md
[git tool]: ../git/zulip-tools.html#fetch-a-pull-request-and-rebase [git tool]: ../git/zulip-tools.md#fetch-a-pull-request-and-rebase
[translation]: ../translating/translating.md [translation]: ../translating/translating.md

View File

@ -28,7 +28,7 @@ your GSoC experience with the Zulip project will be highly interactive.
As part of our commitment to mentorship, Zulip has over 160,000 words of As part of our commitment to mentorship, Zulip has over 160,000 words of
[documentation for [documentation for
developers](../index.html#welcome-to-the-zulip-documentation), much of it developers](../index.md#welcome-to-the-zulip-documentation), much of it
designed to explain not just how Zulip works, but why Zulip works the way that designed to explain not just how Zulip works, but why Zulip works the way that
it does. To learn more about our mission and values, check out [this blog it does. To learn more about our mission and values, check out [this blog
post](https://blog.zulip.com/2021/04/28/why-zulip-is-on-github-sponsors/)! post](https://blog.zulip.com/2021/04/28/why-zulip-is-on-github-sponsors/)!
@ -67,7 +67,7 @@ also give you a feel for what it's like to do GSoC with us.
We have an easy-to-set-up development environment, and a library of We have an easy-to-set-up development environment, and a library of
tasks that are great for first-time contributors. Use tasks that are great for first-time contributors. Use
[our first-time Zulip developer guide](../overview/contributing.html#your-first-codebase-contribution) [our first-time Zulip developer guide](../overview/contributing.md#your-first-codebase-contribution)
to get your Zulip development environment set up and to find your first issue. If you have any to get your Zulip development environment set up and to find your first issue. If you have any
trouble, please speak up in the trouble, please speak up in the
[#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) stream on the [#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) stream on the
@ -135,7 +135,7 @@ For the first time in 2022, being a student is not required in order to apply to
GSoC. We are happy to accept both student and non-student participants. GSoC. We are happy to accept both student and non-student participants.
Our documentation on [what makes a great Zulip Our documentation on [what makes a great Zulip
contributor](../overview/contributing.html#what-makes-a-great-zulip-contributor) contributor](../overview/contributing.md#what-makes-a-great-zulip-contributor)
offers some additional helpful information. We also recommend reviewing the offers some additional helpful information. We also recommend reviewing the
[official GSoC [official GSoC
resources](https://developers.google.com/open-source/gsoc/resources/), resources](https://developers.google.com/open-source/gsoc/resources/),
@ -169,7 +169,7 @@ other contributors learn from reading the conversation.
- [Try, Then Ask](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/) - [Try, Then Ask](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/)
- [We Arent Just Making Code, Were Making History](https://www.harihareswara.net/sumana/2016/10/12/0) - [We Arent Just Making Code, Were Making History](https://www.harihareswara.net/sumana/2016/10/12/0)
- [How to Ask Good Questions](https://jvns.ca/blog/good-questions/) - [How to Ask Good Questions](https://jvns.ca/blog/good-questions/)
- Understand [what makes a great Zulip contributor](../overview/contributing.html#what-makes-a-great-zulip-contributor) - Understand [what makes a great Zulip contributor](../overview/contributing.md#what-makes-a-great-zulip-contributor)
This is a typical question/response sequence: This is a typical question/response sequence:

View File

@ -139,7 +139,7 @@ commit message.
**Tip:** You can set up [Zulip's Git pre-commit hook][commit-hook] to **Tip:** You can set up [Zulip's Git pre-commit hook][commit-hook] to
automatically catch common mistakes in the commit message itself. automatically catch common mistakes in the commit message itself.
[commit-hook]: ../git/zulip-tools.html#set-up-git-repo-script [commit-hook]: ../git/zulip-tools.md#set-up-git-repo-script
### Message body: ### Message body:

View File

@ -140,14 +140,14 @@ URL they post back to, which isn't supported directly by the Zulip
development environment. If you run a development environment. If you run a
[remote Zulip development server](remote.md), we have [remote Zulip development server](remote.md), we have
instructions for instructions for
[an nginx reverse proxy with SSL](remote.html#using-an-nginx-reverse-proxy) [an nginx reverse proxy with SSL](remote.md#using-an-nginx-reverse-proxy)
that you can use for your development efforts. that you can use for your development efforts.
## Testing LDAP in development ## Testing LDAP in development
Before Zulip 2.0, one of the more common classes of bug reports with Before Zulip 2.0, one of the more common classes of bug reports with
Zulip's authentication was users having trouble getting [LDAP Zulip's authentication was users having trouble getting [LDAP
authentication](../production/authentication-methods.html#ldap-including-active-directory) authentication](../production/authentication-methods.md#ldap-including-active-directory)
working. The root cause was because setting up a local LDAP server working. The root cause was because setting up a local LDAP server
for development was difficult, which meant most developers were unable for development was difficult, which meant most developers were unable
to work on fixing even simple issues with it. to work on fixing even simple issues with it.
@ -161,7 +161,7 @@ actual flows for LDAP configuration.
- To enable fakeldap, set `FAKE_LDAP_MODE` in - To enable fakeldap, set `FAKE_LDAP_MODE` in
`zproject/dev_settings.py` to one of the following options. For more `zproject/dev_settings.py` to one of the following options. For more
information on these modes, refer to information on these modes, refer to
[our production docs](../production/authentication-methods.html#ldap-including-active-directory): [our production docs](../production/authentication-methods.md#ldap-including-active-directory):
- `a`: If users' email addresses are in LDAP and used as username. - `a`: If users' email addresses are in LDAP and used as username.
- `b`: If LDAP only has usernames but email addresses are of the form - `b`: If LDAP only has usernames but email addresses are of the form

View File

@ -76,12 +76,12 @@ machine, take a look at our tips for
[developing remotely][dev-remote]. [developing remotely][dev-remote].
[dev-remote]: remote.md [dev-remote]: remote.md
[install-direct]: setup-advanced.html#installing-directly-on-ubuntu-debian-centos-or-fedora [install-direct]: setup-advanced.md#installing-directly-on-ubuntu-debian-centos-or-fedora
[install-vagrant]: setup-vagrant.md [install-vagrant]: setup-vagrant.md
[self-install-remote]: #installing-remotely [self-install-remote]: #installing-remotely
[self-slow-internet]: #slow-internet-connections [self-slow-internet]: #slow-internet-connections
[configure-proxy]: setup-vagrant.html#specifying-a-proxy [configure-proxy]: setup-vagrant.md#specifying-a-proxy
[using-dev-env]: using.md [using-dev-env]: using.md
[testing]: ../testing/testing.md [testing]: ../testing/testing.md
[ci]: ../git/cloning.html#step-3-configure-continuous-integration-for-your-fork [ci]: ../git/cloning.md#step-3-configure-continuous-integration-for-your-fork
[install-via-wsl]: setup-advanced.html#installing-directly-on-windows-10-with-wsl-2 [install-via-wsl]: setup-advanced.md#installing-directly-on-windows-10-with-wsl-2

View File

@ -270,7 +270,7 @@ Next, read the following to learn more about developing for Zulip:
- [Using the development environment][rtd-using-dev-env] - [Using the development environment][rtd-using-dev-env]
- [Testing][rtd-testing] - [Testing][rtd-testing]
[install-direct]: setup-advanced.html#installing-directly-on-ubuntu-debian-centos-or-fedora [install-direct]: setup-advanced.md#installing-directly-on-ubuntu-debian-centos-or-fedora
[install-vagrant]: setup-vagrant.md [install-vagrant]: setup-vagrant.md
[rtd-git-guide]: ../git/index.md [rtd-git-guide]: ../git/index.md
[rtd-using-dev-env]: using.md [rtd-using-dev-env]: using.md
@ -292,7 +292,7 @@ that the user is `zulipdev`; edit accordingly if the situation is
different. different.
1. First, get an SSL certificate; you can use 1. First, get an SSL certificate; you can use
[our certbot wrapper script used for production](../production/ssl-certificates.html#certbot-recommended) [our certbot wrapper script used for production](../production/ssl-certificates.md#certbot-recommended)
by running the following commands as root: by running the following commands as root:
```bash ```bash

View File

@ -23,7 +23,7 @@ You can just run the Zulip provision script on your machine.
**Note**: You should not use the `root` user to run the installation. **Note**: You should not use the `root` user to run the installation.
If you are using a [remote server](remote.md), see If you are using a [remote server](remote.md), see
the the
[section on creating appropriate user accounts](remote.html#setting-up-user-accounts). [section on creating appropriate user accounts](remote.md#setting-up-user-accounts).
:::{warning} :::{warning}
There is no supported uninstallation process with this There is no supported uninstallation process with this
@ -50,7 +50,7 @@ source /srv/zulip-py3-venv/bin/activate
Once you've done the above setup, you can pick up the [documentation Once you've done the above setup, you can pick up the [documentation
on using the Zulip development on using the Zulip development
environment](setup-vagrant.html#step-4-developing), environment](setup-vagrant.md#step-4-developing),
ignoring the parts about `vagrant` (since you're not using it). ignoring the parts about `vagrant` (since you're not using it).
## Installing directly on Windows 10 with WSL 2 ## Installing directly on Windows 10 with WSL 2
@ -101,7 +101,7 @@ installation method described here.
cd ~ # or cd /home/USERNAME cd ~ # or cd /home/USERNAME
``` ```
1. [Create your fork](../git/cloning.html#step-1a-create-your-fork) of 1. [Create your fork](../git/cloning.md#step-1a-create-your-fork) of
the [Zulip server repository](https://github.com/zulip/zulip). the [Zulip server repository](https://github.com/zulip/zulip).
1. [Create a new SSH key][create-ssh-key] for the WSL-2 Virtual 1. [Create a new SSH key][create-ssh-key] for the WSL-2 Virtual
@ -151,7 +151,7 @@ installation method described here.
to open VSCode connected to your WSL environment. to open VSCode connected to your WSL environment.
1. You're done! You can pick up the [documentation on using the 1. You're done! You can pick up the [documentation on using the
Zulip development environment](setup-vagrant.html#step-4-developing), Zulip development environment](setup-vagrant.md#step-4-developing),
ignoring the parts about `vagrant` (since you're not using it). ignoring the parts about `vagrant` (since you're not using it).
WSL 2 can be uninstalled by following [Microsoft's documentation][uninstall-wsl] WSL 2 can be uninstalled by following [Microsoft's documentation][uninstall-wsl]
@ -302,5 +302,5 @@ submit a pull request, or you can ask for help in
in [the Zulip development community](https://zulip.com/development-community/), in [the Zulip development community](https://zulip.com/development-community/),
and a core team member can help guide you through adding support for the platform. and a core team member can help guide you through adding support for the platform.
[zulip-rtd-git-cloning]: ../git/cloning.html#step-1b-clone-to-your-machine [zulip-rtd-git-cloning]: ../git/cloning.md#step-1b-clone-to-your-machine
[zulip-rtd-git-connect]: ../git/cloning.html#step-1c-connect-your-fork-to-zulip-upstream [zulip-rtd-git-connect]: ../git/cloning.md#step-1c-connect-your-fork-to-zulip-upstream

View File

@ -12,7 +12,7 @@ all related services will run.
Contents: Contents:
- [Requirements](#requirements) - [Requirements](#requirements)
- [Step 0: Set up Git & GitHub](#step-0-set-up-git-github) - [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 2: Get Zulip code](#step-2-get-zulip-code)
- [Step 3: Start the development environment](#step-3-start-the-development-environment) - [Step 3: Start the development environment](#step-3-start-the-development-environment)
@ -151,7 +151,7 @@ Debian](https://docs.docker.com/install/linux/docker-ce/debian/).
#### Windows 10 #### Windows 10
:::{note} :::{note}
We recommend using [WSL 2 for Windows development](setup-advanced.html#installing-directly-on-windows-10-with-wsl-2). We recommend using [WSL 2 for Windows development](setup-advanced.md#installing-directly-on-windows-10-with-wsl-2).
::: :::
1. Install [Git for Windows][git-bash], which installs _Git BASH_. 1. Install [Git for Windows][git-bash], which installs _Git BASH_.
@ -236,8 +236,8 @@ projects and to instead follow these instructions exactly.)
2. Open Terminal (macOS/Linux) or Git BASH (Windows; must 2. Open Terminal (macOS/Linux) or Git BASH (Windows; must
**run as an Administrator**). **run as an Administrator**).
3. In Terminal/Git BASH, 3. In Terminal/Git BASH,
[clone your fork of the Zulip repository](../git/cloning.html#step-1b-clone-to-your-machine) and [clone your fork of the Zulip repository](../git/cloning.md#step-1b-clone-to-your-machine) and
[connect the Zulip upstream repository](../git/cloning.html#step-1c-connect-your-fork-to-zulip-upstream): [connect the Zulip upstream repository](../git/cloning.md#step-1c-connect-your-fork-to-zulip-upstream):
```bash ```bash
git clone --config pull.rebase git@github.com:YOURUSERNAME/zulip.git git clone --config pull.rebase git@github.com:YOURUSERNAME/zulip.git
@ -1049,4 +1049,4 @@ remove the `GUEST_CPUS` and `GUEST_MEMORY_MB` lines from
[git-bash]: https://git-for-windows.github.io/ [git-bash]: https://git-for-windows.github.io/
[bash-admin-setup]: https://superuser.com/questions/1002262/run-applications-as-administrator-by-default-in-windows-10 [bash-admin-setup]: https://superuser.com/questions/1002262/run-applications-as-administrator-by-default-in-windows-10
[set-up-git]: ../git/setup.md [set-up-git]: ../git/setup.md
[ci]: ../git/cloning.html#step-3-configure-continuous-integration-for-your-fork [ci]: ../git/cloning.md#step-3-configure-continuous-integration-for-your-fork

View File

@ -23,7 +23,7 @@ the development environment][authentication-dev-server].
- After making changes, you'll often want to run the - After making changes, you'll often want to run the
[linters](../testing/linters.md) and relevant [test [linters](../testing/linters.md) and relevant [test
suites](../testing/testing.md). Consider using our [Git pre-commit suites](../testing/testing.md). Consider using our [Git pre-commit
hook](../git/zulip-tools.html#set-up-git-repo-script) to hook](../git/zulip-tools.md#set-up-git-repo-script) to
automatically lint whenever you make a commit. automatically lint whenever you make a commit.
- All of our test suites are designed to support quickly testing just - All of our test suites are designed to support quickly testing just
a single file or test case, which you should take advantage of to a single file or test case, which you should take advantage of to

View File

@ -247,7 +247,7 @@ above.
defined OpenAPI schema. Use `test-backend --rerun` for a fast defined OpenAPI schema. Use `test-backend --rerun` for a fast
edit/refresh cycle when debugging. edit/refresh cycle when debugging.
[rest-api-tutorial]: ../tutorials/writing-views.html#writing-api-rest-endpoints [rest-api-tutorial]: ../tutorials/writing-views.md#writing-api-rest-endpoints
1. Add a function for the endpoint you'd like to document to 1. Add a function for the endpoint you'd like to document to
`zerver/openapi/python_examples.py`, decorated with `zerver/openapi/python_examples.py`, decorated with

View File

@ -134,7 +134,7 @@ recommend running locally when making significant edits:
- `tools/lint` catches a number of common mistakes, and we highly - `tools/lint` catches a number of common mistakes, and we highly
recommend recommend
[using our linter pre-commit hook](../git/zulip-tools.html#set-up-git-repo-script). [using our linter pre-commit hook](../git/zulip-tools.md#set-up-git-repo-script).
See the [main linter doc](../testing/linters.md) for more details. See the [main linter doc](../testing/linters.md) for more details.
- The ReadTheDocs docs are built and the links tested by - The ReadTheDocs docs are built and the links tested by

View File

@ -112,5 +112,5 @@ See also [fixing commits][fix-commit]
- `git status`: show the working tree status, unstaged and staged files - `git status`: show the working tree status, unstaged and staged files
[fix-commit]: fixing-commits.md [fix-commit]: fixing-commits.md
[git-config-clone]: cloning.html#step-1b-clone-to-your-machine [git-config-clone]: cloning.md#step-1b-clone-to-your-machine
[git-overview]: overview.md [git-overview]: overview.md

View File

@ -137,4 +137,4 @@ You can check the `Actions` tab of your repository to see the builds.
[github-actions]: https://docs.github.com/en/actions [github-actions]: https://docs.github.com/en/actions
[zulip-rtd-dev-first-time]: ../development/setup-vagrant.md [zulip-rtd-dev-first-time]: ../development/setup-vagrant.md
[zulip-rtd-dev-overview]: ../development/overview.md [zulip-rtd-dev-overview]: ../development/overview.md
[zulip-rtd-tools-setup]: zulip-tools.html#set-up-git-repo-script [zulip-rtd-tools-setup]: zulip-tools.md#set-up-git-repo-script

View File

@ -56,4 +56,4 @@ tools/fetch-pull-request <PR-number>
``` ```
[github-help-co-pr-locally]: https://help.github.com/en/articles/checking-out-pull-requests-locally [github-help-co-pr-locally]: https://help.github.com/en/articles/checking-out-pull-requests-locally
[tools-pr]: zulip-tools.html#fetch-a-pull-request-and-rebase [tools-pr]: zulip-tools.md#fetch-a-pull-request-and-rebase

View File

@ -59,12 +59,12 @@ Git workflow, or if you'd like a Git refresher.
[github-zulip]: https://github.com/zulip/ [github-zulip]: https://github.com/zulip/
[github-zulip-zulip]: https://github.com/zulip/zulip/ [github-zulip-zulip]: https://github.com/zulip/zulip/
[continuous-integration]: ../testing/continuous-integration.md [continuous-integration]: ../testing/continuous-integration.md
[zulip-git-guide-fork-ci]: cloning.html#step-3-configure-continuous-integration-for-your-fork [zulip-git-guide-fork-ci]: cloning.md#step-3-configure-continuous-integration-for-your-fork
[zulip-rtd-code-style]: ../contributing/code-style.md [zulip-rtd-code-style]: ../contributing/code-style.md
[zulip-rtd-commit-discipline]: ../contributing/version-control.html#commit-discipline [zulip-rtd-commit-discipline]: ../contributing/version-control.md#commit-discipline
[zulip-rtd-commit-messages]: ../contributing/version-control.html#commit-messages [zulip-rtd-commit-messages]: ../contributing/version-control.md#commit-messages
[zulip-rtd-dev-overview]: ../development/overview.md [zulip-rtd-dev-overview]: ../development/overview.md
[zulip-rtd-lint-tools]: ../contributing/code-style.html#lint-tools [zulip-rtd-lint-tools]: ../contributing/code-style.md#lint-tools
[zulip-rtd-mypy]: ../testing/mypy.md [zulip-rtd-mypy]: ../testing/mypy.md
[zulip-rtd-testing]: ../testing/testing.md [zulip-rtd-testing]: ../testing/testing.md
[zulip-rtd-zulip-tools]: zulip-tools.md [zulip-rtd-zulip-tools]: zulip-tools.md

View File

@ -29,7 +29,7 @@ work from being merged before you're confident in it.
### Step 0: Make sure you're on a feature branch (not `main`) ### Step 0: Make sure you're on a feature branch (not `main`)
It is important to [work on a feature It is important to [work on a feature
branch](using.html#work-on-a-feature-branch) when creating a pull branch](using.md#work-on-a-feature-branch) when creating a pull
request. Your new pull request will be inextricably linked with your request. Your new pull request will be inextricably linked with your
branch while it is open, so you will need to reserve your branch only branch while it is open, so you will need to reserve your branch only
for changes related to your issue, and avoid introducing extraneous for changes related to your issue, and avoid introducing extraneous
@ -158,7 +158,7 @@ for another review.
[github-help-about-pr]: https://help.github.com/en/articles/about-pull-requests [github-help-about-pr]: https://help.github.com/en/articles/about-pull-requests
[github-help-create-pr-fork]: https://help.github.com/en/articles/creating-a-pull-request-from-a-fork [github-help-create-pr-fork]: https://help.github.com/en/articles/creating-a-pull-request-from-a-fork
[images-create-pr]: ../images/zulip-open-pr.png [images-create-pr]: ../images/zulip-open-pr.png
[keep-up-to-date]: using.html#keep-your-fork-up-to-date [keep-up-to-date]: using.md#keep-your-fork-up-to-date
[self-push-commits]: using.html#push-your-commits-to-github [self-push-commits]: using.md#push-your-commits-to-github
[screenshots-gifs]: ../tutorials/screenshot-and-gif-software.md [screenshots-gifs]: ../tutorials/screenshot-and-gif-software.md
[wip-prs]: #work-in-progress-pull-requests [wip-prs]: #work-in-progress-pull-requests

View File

@ -49,7 +49,7 @@ text-mode interface to Git.
And, if none of the above are to your liking, try [one of these][gitbook-guis]. And, if none of the above are to your liking, try [one of these][gitbook-guis].
[git-bash-admin]: ../development/setup-vagrant.html#running-git-bash-as-an-administrator [git-bash-admin]: ../development/setup-vagrant.md#running-git-bash-as-an-administrator
[gitbook-aliases]: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases [gitbook-aliases]: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases
[gitbook-config]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration [gitbook-config]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
[gitbook-guis]: https://git-scm.com/downloads/guis [gitbook-guis]: https://git-scm.com/downloads/guis

View File

@ -275,8 +275,8 @@ keep,** you'll need to use `git log FETCH_HEAD` to identify that hashes of the
commits you want to keep and then `git cherry-pick <commit>` those commits into commits you want to keep and then `git cherry-pick <commit>` those commits into
whichever branch you need to update. whichever branch you need to update.
[clone-to-your-machine]: cloning.html#step-1b-clone-to-your-machine [clone-to-your-machine]: cloning.md#step-1b-clone-to-your-machine
[connect-upstream]: cloning.html#step-1c-connect-your-fork-to-zulip-upstream [connect-upstream]: cloning.md#step-1c-connect-your-fork-to-zulip-upstream
[gitbook-advanced-merging]: https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_advanced_merging [gitbook-advanced-merging]: https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_advanced_merging
[gitbook-basic-merge-conflicts]: https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging#Basic-Merge-Conflicts [gitbook-basic-merge-conflicts]: https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging#Basic-Merge-Conflicts
[gitbook-git-cherry-pick]: https://git-scm.com/docs/git-cherry-pick [gitbook-git-cherry-pick]: https://git-scm.com/docs/git-cherry-pick

View File

@ -451,7 +451,7 @@ complicated rebase.
[github-help-rebase]: https://help.github.com/en/articles/using-git-rebase [github-help-rebase]: https://help.github.com/en/articles/using-git-rebase
[github-help-sync-fork]: https://help.github.com/en/articles/syncing-a-fork [github-help-sync-fork]: https://help.github.com/en/articles/syncing-a-fork
[how-git-is-different]: the-git-difference.md [how-git-is-different]: the-git-difference.md
[self-multiple-computers]: troubleshooting.html#working-from-multiple-computers [self-multiple-computers]: troubleshooting.md#working-from-multiple-computers
[zulip-git-guide-up-to-date]: #keep-your-fork-up-to-date [zulip-git-guide-up-to-date]: #keep-your-fork-up-to-date
[zulip-rtd-commit-discipline]: ../contributing/version-control.html#commit-discipline [zulip-rtd-commit-discipline]: ../contributing/version-control.md#commit-discipline
[zulip-rtd-commit-messages]: ../contributing/version-control.html#commit-messages [zulip-rtd-commit-messages]: ../contributing/version-control.md#commit-messages

View File

@ -176,5 +176,5 @@ git rebase --continue
``` ```
[github-zulip-zulip]: https://github.com/zulip/zulip/ [github-zulip-zulip]: https://github.com/zulip/zulip/
[zulip-git-guide-fetch-pr]: collaborate.html#check-out-a-pull-request-locally [zulip-git-guide-fetch-pr]: collaborate.md#check-out-a-pull-request-locally
[zulip-git-guide-ci]: cloning.html#step-3-configure-continuous-integration-for-your-fork [zulip-git-guide-ci]: cloning.md#step-3-configure-continuous-integration-for-your-fork

View File

@ -108,9 +108,9 @@ feed.
For more details on the frontend, see our documentation on For more details on the frontend, see our documentation on
[translation](../translating/translating.md), [translation](../translating/translating.md),
[templates](../subsystems/html-css.html#html-templates), [templates](../subsystems/html-css.md#html-templates),
[directory structure](directory-structure.md), and [directory structure](directory-structure.md), and
[the static asset pipeline](../subsystems/html-css.html#static-asset-pipeline). [the static asset pipeline](../subsystems/html-css.md#static-asset-pipeline).
[jinja2]: http://jinja.pocoo.org/ [jinja2]: http://jinja.pocoo.org/
[handlebars]: https://handlebarsjs.com/ [handlebars]: https://handlebarsjs.com/

View File

@ -414,8 +414,8 @@ log][commit-log] for an up-to-date list of raw changes.
major release. major release.
[docker-zulip-manual]: https://github.com/zulip/docker-zulip#manual-configuration [docker-zulip-manual]: https://github.com/zulip/docker-zulip#manual-configuration
[smokescreen]: ../production/deployment.html#customizing-the-outgoing-http-proxy [smokescreen]: ../production/deployment.md#customizing-the-outgoing-http-proxy
[update-settings-docs]: ../production/upgrade-or-modify.html#updating-settings-py-inline-documentation [update-settings-docs]: ../production/upgrade-or-modify.md#updating-settingspy-inline-documentation
#### Full feature changelog #### Full feature changelog
@ -534,7 +534,7 @@ log][commit-log] for an up-to-date list of raw changes.
codebase with Prettier. codebase with Prettier.
- Migrated testing from CircleCI to GitHub Actions. - Migrated testing from CircleCI to GitHub Actions.
[zulip-conf-settings]: ../production/deployment.html#system-and-deployment-configuration [zulip-conf-settings]: ../production/deployment.md#system-and-deployment-configuration
## Zulip 3.x series ## Zulip 3.x series
@ -703,8 +703,8 @@ log][commit-log] for an up-to-date list of raw changes.
- The changelog now has a section that makes it easy to find the - The changelog now has a section that makes it easy to find the
Upgrade notes for all releases one is upgrading across. Upgrade notes for all releases one is upgrading across.
[manage-shell]: ../production/management-commands.html#manage-py-shell [manage-shell]: ../production/management-commands.md#managepy-shell
[postgresql-upgrade]: ../production/upgrade-or-modify.html#upgrading-postgresql [postgresql-upgrade]: ../production/upgrade-or-modify.md#upgrading-postgresql
#### Full feature changelog #### Full feature changelog
@ -998,7 +998,7 @@ details.
- We merged significant preparatory work for supporting RHEL/CentOS in - We merged significant preparatory work for supporting RHEL/CentOS in
production. We're now interested in beta testers for this feature. production. We're now interested in beta testers for this feature.
- Reorganized Zulip's documentation for sysadmins, and added [new - Reorganized Zulip's documentation for sysadmins, and added [new
documentation](../production/upgrade-or-modify.html#modifying-zulip) documentation](../production/upgrade-or-modify.md#modifying-zulip)
on maintaining a fork of Zulip. on maintaining a fork of Zulip.
- Added new `streams:public` search operator that searches the public - Added new `streams:public` search operator that searches the public
history of all streams in the organization (even before you joined). history of all streams in the organization (even before you joined).
@ -1034,7 +1034,7 @@ details.
Zulip how to look up a user in LDAP given their email address: Zulip how to look up a user in LDAP given their email address:
`AUTH_LDAP_REVERSE_EMAIL_SEARCH` and `AUTH_LDAP_USERNAME_ATTR`. See `AUTH_LDAP_REVERSE_EMAIL_SEARCH` and `AUTH_LDAP_USERNAME_ATTR`. See
the [LDAP configuration the [LDAP configuration
instructions](../production/authentication-methods.html#ldap-including-active-directory) instructions](../production/authentication-methods.md#ldap-including-active-directory)
for details. You can use the usual `manage.py query_ldap` method to for details. You can use the usual `manage.py query_ldap` method to
verify whether your configuration is working correctly. verify whether your configuration is working correctly.
- The Zulip web and desktop apps have been converted to directly count - The Zulip web and desktop apps have been converted to directly count
@ -1302,7 +1302,7 @@ details.
and is enabled by default in that case. To disable it, set and is enabled by default in that case. To disable it, set
`SUBMIT_USAGE_STATISTICS = False` in `/etc/zulip/settings.py`. `SUBMIT_USAGE_STATISTICS = False` in `/etc/zulip/settings.py`.
[mpns-statistics-docs]: ../production/mobile-push-notifications.html#submitting-statistics [mpns-statistics-docs]: ../production/mobile-push-notifications.md#submitting-statistics
#### Full feature changelog #### Full feature changelog
@ -1460,7 +1460,7 @@ Zulip installations; it has minimal changes for existing servers.
- Renamed the hotkey for starring a message to Ctrl+S. - Renamed the hotkey for starring a message to Ctrl+S.
- Added the new `SOCIAL_AUTH_SUBDOMAIN` setting, which all servers using - Added the new `SOCIAL_AUTH_SUBDOMAIN` setting, which all servers using
both GitHub authentication and hosting multiple Zulip organizations both GitHub authentication and hosting multiple Zulip organizations
should set (see [the docs for details](../production/multiple-organizations.html#authentication)). should set (see [the docs for details](../production/multiple-organizations.md#authentication)).
- Added automatic thumbnailing of images, powered by thumbor. The new - Added automatic thumbnailing of images, powered by thumbor. The new
THUMBOR_URL setting controls this feature; it is disabled by default THUMBOR_URL setting controls this feature; it is disabled by default
in this release, because the mobile apps don't support it yet. in this release, because the mobile apps don't support it yet.
@ -2462,15 +2462,15 @@ running a version from before 1.7 should upgrade directly to 1.7.1.
This section links to the upgrade notes from past releases, so you can This section links to the upgrade notes from past releases, so you can
easily read them all when upgrading across multiple releases. easily read them all when upgrading across multiple releases.
- [Draft upgrade notes for 5.0](#upgrade-notes-for-5-0) - [Draft upgrade notes for 5.0](#upgrade-notes-for-50)
- [Upgrade notes for 4.0](#upgrade-notes-for-4-0) - [Upgrade notes for 4.0](#upgrade-notes-for-40)
- [Upgrade notes for 3.0](#upgrade-notes-for-3-0) - [Upgrade notes for 3.0](#upgrade-notes-for-30)
- [Upgrade notes for 2.1.5](#upgrade-notes-for-2-1-5) - [Upgrade notes for 2.1.5](#upgrade-notes-for-215)
- [Upgrade notes for 2.1.0](#upgrade-notes-for-2-1-0) - [Upgrade notes for 2.1.0](#upgrade-notes-for-210)
- [Upgrade notes for 2.0.0](#upgrade-notes-for-2-0-0) - [Upgrade notes for 2.0.0](#upgrade-notes-for-200)
- [Upgrade notes for 1.9.0](#upgrade-notes-for-1-9-0) - [Upgrade notes for 1.9.0](#upgrade-notes-for-190)
- [Upgrade notes for 1.8.0](#upgrade-notes-for-1-8-0) - [Upgrade notes for 1.8.0](#upgrade-notes-for-180)
- [Upgrade notes for 1.7.0](#upgrade-notes-for-1-7-0) - [Upgrade notes for 1.7.0](#upgrade-notes-for-170)
[docker-zulip]: https://github.com/zulip/docker-zulip [docker-zulip]: https://github.com/zulip/docker-zulip
[commit-log]: https://github.com/zulip/zulip/commits/main [commit-log]: https://github.com/zulip/zulip/commits/main

View File

@ -108,7 +108,7 @@ release series except in rare cases involving a security issue or
critical bug just after publishing a major release. critical bug just after publishing a major release.
[blog-major-releases]: https://blog.zulip.com/tag/major-releases/ [blog-major-releases]: https://blog.zulip.com/tag/major-releases/
[upgrade-from-git]: ../production/upgrade-or-modify.html#upgrading-from-a-git-repository [upgrade-from-git]: ../production/upgrade-or-modify.md#upgrading-from-a-git-repository
### Security releases ### Security releases
@ -184,7 +184,7 @@ GitHub issue. Please an include an explanation of your use case: such
details can be extremely helpful in designing appropriately general details can be extremely helpful in designing appropriately general
solutions, and also helps us identify cases where an existing solution solutions, and also helps us identify cases where an existing solution
can solve your problem. See [Reporting can solve your problem. See [Reporting
issues](contributing.html#reporting-issues) for more details. issues](contributing.md#reporting-issues) for more details.
## Client apps ## Client apps
@ -227,10 +227,10 @@ core community, like the Python and JavaScript bindings, are released
independently as needed. independently as needed.
[electron]: https://www.electronjs.org/ [electron]: https://www.electronjs.org/
[upgrading-to-main]: ../production/upgrade-or-modify.html#upgrading-to-main [upgrading-to-main]: ../production/upgrade-or-modify.md#upgrading-to-main
[os-upgrade]: ../production/upgrade-or-modify.html#upgrading-the-operating-system [os-upgrade]: ../production/upgrade-or-modify.md#upgrading-the-operating-system
[chat-zulip-org]: https://zulip.com/development-community/ [chat-zulip-org]: https://zulip.com/development-community/
[fork-zulip]: ../production/upgrade-or-modify.html#modifying-zulip [fork-zulip]: ../production/upgrade-or-modify.md#modifying-zulip
[zulip-server]: https://github.com/zulip/zulip [zulip-server]: https://github.com/zulip/zulip
[mobile-beta]: https://github.com/zulip/zulip-mobile#using-the-beta [mobile-beta]: https://github.com/zulip/zulip-mobile#using-the-beta
[label-blocker]: https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22priority%3A+blocker%22 [label-blocker]: https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22priority%3A+blocker%22

View File

@ -384,7 +384,7 @@ it as follows:
the "SAML ACS url" in SAML terminology. the "SAML ACS url" in SAML terminology.
If you're If you're
[hosting multiple organizations](multiple-organizations.html#authentication), [hosting multiple organizations](multiple-organizations.md#authentication),
you need to use `SOCIAL_AUTH_SUBDOMAIN`. For example, you need to use `SOCIAL_AUTH_SUBDOMAIN`. For example,
if `SOCIAL_AUTH_SUBDOMAIN="auth"` and `EXTERNAL_HOST=zulip.example.com`, if `SOCIAL_AUTH_SUBDOMAIN="auth"` and `EXTERNAL_HOST=zulip.example.com`,
this should be `https://auth.zulip.example.com/complete/saml/`. this should be `https://auth.zulip.example.com/complete/saml/`.
@ -876,4 +876,4 @@ passwordless login as any user in a development environment. It's
mentioned on this page only for completeness. mentioned on this page only for completeness.
[custom-profile-fields]: https://zulip.com/help/add-custom-profile-fields [custom-profile-fields]: https://zulip.com/help/add-custom-profile-fields
[update-inline-comments]: upgrade-or-modify.html#updating-settings-py-inline-documentation [update-inline-comments]: upgrade-or-modify.md#updating-settingspy-inline-documentation

View File

@ -18,8 +18,8 @@ git clone https://github.com/zulip/zulip.git zulip-server-git
``` ```
and then and then
[continue the normal installation instructions](install.html#step-2-install-zulip). [continue the normal installation instructions](install.md#step-2-install-zulip).
You can also [upgrade Zulip from Git](upgrade-or-modify.html#upgrading-from-a-git-repository). You can also [upgrade Zulip from Git](upgrade-or-modify.md#upgrading-from-a-git-repository).
The most common use case for this is upgrading to `main` to get a The most common use case for this is upgrading to `main` to get a
feature that hasn't made it into an official release yet (often feature that hasn't made it into an official release yet (often
@ -33,8 +33,8 @@ In particular, we are always very glad to investigate problems with
installing Zulip from `main`; they are rare and help us ensure that installing Zulip from `main`; they are rare and help us ensure that
our next major release has a reliable install experience. our next major release has a reliable install experience.
[upgrade-to-main]: upgrade-or-modify.html#upgrading-to-main [upgrade-to-main]: upgrade-or-modify.md#upgrading-to-main
[upgrade-to-future-release]: upgrade-or-modify.html#upgrading-to-future-releases [upgrade-to-future-release]: upgrade-or-modify.md#upgrading-to-future-releases
## Zulip in Docker ## Zulip in Docker
@ -49,7 +49,7 @@ specific reason to prefer Docker.
The Zulip installer supports the following advanced installer options The Zulip installer supports the following advanced installer options
as well as those mentioned in the as well as those mentioned in the
[install](install.html#installer-options) documentation: [install](install.md#installer-options) documentation:
- `--postgresql-version`: Sets the version of PostgreSQL that will be - `--postgresql-version`: Sets the version of PostgreSQL that will be
installed. We currently support PostgreSQL 10, 11, 12, 13, and 14. installed. We currently support PostgreSQL 10, 11, 12, 13, and 14.
@ -269,7 +269,7 @@ In Zulip 4.7 and older, to enable SSRF protection via Smokescreen, you
will need to explicitly add the `zulip::profile::smokescreen` Puppet will need to explicitly add the `zulip::profile::smokescreen` Puppet
class, and configure the `[http_proxy]` block as above. class, and configure the `[http_proxy]` block as above.
[proxy.enable_for_camo]: #enable-for-camo [proxy.enable_for_camo]: #enable_for_camo
[smokescreen]: https://github.com/stripe/smokescreen [smokescreen]: https://github.com/stripe/smokescreen
[smokescreen-acls]: https://github.com/stripe/smokescreen#acls [smokescreen-acls]: https://github.com/stripe/smokescreen#acls
[ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery [ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
@ -535,7 +535,7 @@ configuration of `pg_hba.conf` and client certificates on the
replica. replica.
[warm-standby]: https://www.postgresql.org/docs/current/warm-standby.html [warm-standby]: https://www.postgresql.org/docs/current/warm-standby.html
[wal-g]: export-and-import.html#backup-details [wal-g]: export-and-import.md#backup-details
## System and deployment configuration ## System and deployment configuration
@ -565,7 +565,7 @@ Any other value (including the empty string) is considered false.
A comma-separated list of the Puppet classes to install on the server. A comma-separated list of the Puppet classes to install on the server.
The most common is **`zulip::profile::standalone`**, used for a The most common is **`zulip::profile::standalone`**, used for a
stand-alone single-host deployment. stand-alone single-host deployment.
[Components](../overview/architecture-overview.html#components) of [Components](../overview/architecture-overview.md#components) of
that include: that include:
- **`zulip::profile::app_frontend`** - **`zulip::profile::app_frontend`**
@ -575,13 +575,13 @@ that include:
- **`zulip::profile::rabbitmq`** - **`zulip::profile::rabbitmq`**
If you are using a [Apache as a single-sign-on If you are using a [Apache as a single-sign-on
authenticator](authentication-methods.html#apache-based-sso-with-remote-user), authenticator](authentication-methods.md#apache-based-sso-with-remote_user),
you will need to add **`zulip::apache_sso`** to the list. you will need to add **`zulip::apache_sso`** to the list.
#### `pgroonga` #### `pgroonga`
Set to true if enabling the [multi-language PGroonga search Set to true if enabling the [multi-language PGroonga search
extension](../subsystems/full-text-search.html#multi-language-full-text-search). extension](../subsystems/full-text-search.md#multi-language-full-text-search).
### `[deployment]` ### `[deployment]`
@ -604,7 +604,7 @@ for servers that are upgraded frequently by core Zulip developers.
#### `git_repo_url` #### `git_repo_url`
Default repository URL used when [upgrading from a Git Default repository URL used when [upgrading from a Git
repository](upgrade-or-modify.html#upgrading-from-a-git-repository). repository](upgrade-or-modify.md#upgrading-from-a-git-repository).
### `[application_server]` ### `[application_server]`
@ -626,7 +626,7 @@ configure `settings.py` and set this to true to configure
`nginx`. Remove this field to return to the local uploads backend (any `nginx`. Remove this field to return to the local uploads backend (any
non-empty value is currently equivalent to true). non-empty value is currently equivalent to true).
[s3-uploads]: upload-backends.html#s3-backend-configuration [s3-uploads]: upload-backends.md#s3-backend-configuration
#### `queue_workers_multiprocess` #### `queue_workers_multiprocess`
@ -669,7 +669,7 @@ more than 3.5GiB of RAM, 4 on hosts with less.
#### `mailname` #### `mailname`
The hostname that [Postfix should be configured to receive mail The hostname that [Postfix should be configured to receive mail
at](email-gateway.html#local-delivery-setup). at](email-gateway.md#local-delivery-setup).
### `[postgresql]` ### `[postgresql]`
@ -694,7 +694,7 @@ Set to true to enable replication to enable [log shipping replication
between PostgreSQL servers](#postgresql-warm-standby). This should be between PostgreSQL servers](#postgresql-warm-standby). This should be
enabled on the primary, as well as any replicas, and further requires enabled on the primary, as well as any replicas, and further requires
configuration of configuration of
[wal-g](export-and-import.html#backup-details). [wal-g](export-and-import.md#backup-details).
#### `replication_primary` #### `replication_primary`
@ -726,7 +726,7 @@ connections.
#### `version` #### `version`
The version of PostgreSQL that is in use. Do not set by hand; use the The version of PostgreSQL that is in use. Do not set by hand; use the
[PostgreSQL upgrade tool](upgrade-or-modify.html#upgrading-postgresql). [PostgreSQL upgrade tool](upgrade-or-modify.md#upgrading-postgresql).
### `[memcached]` ### `[memcached]`

View File

@ -96,7 +96,7 @@ using an [HTTP reverse proxy][reverse-proxy]).
Congratulations! The integration should be fully operational. Congratulations! The integration should be fully operational.
[reverse-proxy]: deployment.html#putting-the-zulip-application-behind-a-reverse-proxy [reverse-proxy]: deployment.md#putting-the-zulip-application-behind-a-reverse-proxy
## Polling setup ## Polling setup

View File

@ -48,9 +48,9 @@ service (or back):
decommissioning a Zulip organization. decommissioning a Zulip organization.
- It's possible to set up [PostgreSQL streaming - It's possible to set up [PostgreSQL streaming
replication](deployment.html#postgresql-warm-standby) replication](deployment.md#postgresql-warm-standby)
and the [S3 file upload and the [S3 file upload
backend](upload-backends.html#s3-backend-configuration) backend](upload-backends.md#s3-backend-configuration)
as part of a high availability environment. as part of a high availability environment.
## Backups ## Backups
@ -365,7 +365,7 @@ cd /home/zulip/deployments/current
This could take several minutes to run depending on how much data you're This could take several minutes to run depending on how much data you're
importing. importing.
[upgrade-zulip-from-git]: upgrade-or-modify.html#upgrading-from-a-git-repository [upgrade-zulip-from-git]: upgrade-or-modify.md#upgrading-from-a-git-repository
#### Import options #### Import options
@ -411,7 +411,7 @@ delete the test import data from your Zulip server before doing a
final import. You can **permanently delete** all data from a Zulip final import. You can **permanently delete** all data from a Zulip
organization using the following procedure: organization using the following procedure:
- Start a [Zulip management shell](management-commands.html#manage-py-shell) - Start a [Zulip management shell](management-commands.md#managepy-shell)
- In the management shell, run the following commands, replacing `""` - In the management shell, run the following commands, replacing `""`
with the subdomain if [you are hosting the organization on a with the subdomain if [you are hosting the organization on a
subdomain](multiple-organizations.md): subdomain](multiple-organizations.md):

View File

@ -5,7 +5,7 @@ You'll need an Ubuntu or Debian system that satisfies
you can use a preconfigured you can use a preconfigured
[DigitalOcean droplet](https://marketplace.digitalocean.com/apps/zulip?refcode=3ee45da8ee26), or [DigitalOcean droplet](https://marketplace.digitalocean.com/apps/zulip?refcode=3ee45da8ee26), or
Zulip's Zulip's
[experimental Docker image](deployment.html#zulip-in-docker). [experimental Docker image](deployment.md#zulip-in-docker).
Note that if you're developing for Zulip, you should install Zulip's Note that if you're developing for Zulip, you should install Zulip's
[development environment](../development/overview.md) instead. If [development environment](../development/overview.md) instead. If
@ -27,7 +27,7 @@ tar -xf zulip-server-latest.tar.gz
- If you'd like to verify the download, we - If you'd like to verify the download, we
[publish the sha256sums of our release tarballs](https://download.zulip.com/server/SHA256SUMS.txt). [publish the sha256sums of our release tarballs](https://download.zulip.com/server/SHA256SUMS.txt).
- You can also - You can also
[install a pre-release version of Zulip](deployment.html#installing-zulip-from-git) [install a pre-release version of Zulip](deployment.md#installing-zulip-from-git)
using code from our [repository on GitHub](https://github.com/zulip/zulip/). using code from our [repository on GitHub](https://github.com/zulip/zulip/).
## Step 2: Install Zulip ## Step 2: Install Zulip
@ -73,9 +73,9 @@ You can see the more advanced installer options in our [deployment options][doc-
documentation. documentation.
[doc-settings]: settings.md [doc-settings]: settings.md
[doc-certbot]: ssl-certificates.html#certbot-recommended [doc-certbot]: ssl-certificates.md#certbot-recommended
[doc-ssl-manual]: ssl-certificates.html#manual-install [doc-ssl-manual]: ssl-certificates.md#manual-install
[doc-deployment-options]: deployment.html#advanced-installer-options [doc-deployment-options]: deployment.md#advanced-installer-options
## Step 3: Create a Zulip organization, and log in ## Step 3: Create a Zulip organization, and log in
@ -85,7 +85,7 @@ or another Zulip server, you should stop here
and return to the import instructions. and return to the import instructions.
[slack-import]: https://zulip.com/help/import-from-slack [slack-import]: https://zulip.com/help/import-from-slack
[zulip-backups]: export-and-import.html#backups [zulip-backups]: export-and-import.md#backups
Otherwise, open the link in a browser. Follow the prompts to set up Otherwise, open the link in a browser. Follow the prompts to set up
your organization, and your own user account as an administrator. your organization, and your own user account as an administrator.

View File

@ -9,7 +9,7 @@ have since all moved to dedicated pages:
### Monitoring ### Monitoring
Moved to [Troubleshooting](troubleshooting.html#monitoring). Moved to [Troubleshooting](troubleshooting.md#monitoring).
### Securing your Zulip server ### Securing your Zulip server
@ -17,21 +17,21 @@ Moved to [Security model](security-model.md).
### Upgrading ### Upgrading
Moved to [Upgrading to a release](upgrade-or-modify.html#upgrading-to-a-release). Moved to [Upgrading to a release](upgrade-or-modify.md#upgrading-to-a-release).
### Upgrading from a Git repository ### Upgrading from a Git repository
Moved to [Upgrading from a Git Moved to [Upgrading from a Git
repository](upgrade-or-modify.html#upgrading-from-a-git-repository). repository](upgrade-or-modify.md#upgrading-from-a-git-repository).
### Upgrading the operating system ### Upgrading the operating system
Moved to [Upgrading the operating Moved to [Upgrading the operating
system](upgrade-or-modify.html#upgrading-the-operating-system). system](upgrade-or-modify.md#upgrading-the-operating-system).
### Scalability ### Scalability
Moved to [Scalability](requirements.html#scalability). Moved to [Scalability](requirements.md#scalability).
### Management commands ### Management commands

View File

@ -148,7 +148,7 @@ self-hosted Zulip server:
[webhook integration][webhook-integrations] or [bot][writing-bots]. [webhook integration][webhook-integrations] or [bot][writing-bots].
- Writing a program using the [Zulip API][zulip-api]. - Writing a program using the [Zulip API][zulip-api].
- [Modifying the Zulip server][modifying-zulip]. - [Modifying the Zulip server][modifying-zulip].
- Using the interactive [management shell](#manage-py-shell), - Using the interactive [management shell](#managepy-shell),
documented above, for one-time work or prototyping. documented above, for one-time work or prototyping.
- Writing a custom management command, detailed here. - Writing a custom management command, detailed here.
@ -171,12 +171,12 @@ the Zulip server.
Instead, we recommend deploying custom management commands either via Instead, we recommend deploying custom management commands either via
the [modifying Zulip][modifying-zulip] process or by storing them in the [modifying Zulip][modifying-zulip] process or by storing them in
`/etc/zulip` (so they are included in `/etc/zulip` (so they are included in
[backups](export-and-import.html#backups)) and then [backups](export-and-import.md#backups)) and then
symlinking them into symlinking them into
`/home/zulip/deployments/current/zerver/management/` after each `/home/zulip/deployments/current/zerver/management/` after each
upgrade. upgrade.
[modifying-zulip]: upgrade-or-modify.html#modifying-zulip [modifying-zulip]: upgrade-or-modify.md#modifying-zulip
[writing-bots]: https://zulip.com/api/writing-bots [writing-bots]: https://zulip.com/api/writing-bots
[integrations]: https://zulip.com/integrations [integrations]: https://zulip.com/integrations
[zulip-api]: https://zulip.com/api/rest [zulip-api]: https://zulip.com/api/rest

View File

@ -18,7 +18,7 @@ support forwarding push notifications to a central push notification
forwarding service. Accessing this service requires outgoing HTTPS forwarding service. Accessing this service requires outgoing HTTPS
access to the public Internet; if that is restricted by a proxy, you access to the public Internet; if that is restricted by a proxy, you
will need to [configure Zulip to use your outgoing HTTP will need to [configure Zulip to use your outgoing HTTP
proxy](deployment.html#customizing-the-outgoing-http-proxy) proxy](deployment.md#customizing-the-outgoing-http-proxy)
first. first.
You can enable this for your Zulip server as follows: You can enable this for your Zulip server as follows:
@ -27,7 +27,7 @@ You can enable this for your Zulip server as follows:
`PUSH_NOTIFICATION_BOUNCER_URL = 'https://push.zulipchat.com'` line `PUSH_NOTIFICATION_BOUNCER_URL = 'https://push.zulipchat.com'` line
in your `/etc/zulip/settings.py` file (i.e. remove the `#` at the in your `/etc/zulip/settings.py` file (i.e. remove the `#` at the
start of the line), and [restart your Zulip start of the line), and [restart your Zulip
server](settings.html#making-changes). If you server](settings.md#making-changes). If you
installed your Zulip server with a version older than 1.6, you'll installed your Zulip server with a version older than 1.6, you'll
need to add the line (it won't be there to uncomment). need to add the line (it won't be there to uncomment).

View File

@ -55,7 +55,7 @@ the homepage for the server is a copy of the Zulip homepage.
You'll need to install an SSL certificate valid for all the 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 (sub)domains you're using your Zulip server with. You can get an SSL
certificate covering several domains for free by using certificate covering several domains for free by using
[our Certbot wrapper tool](ssl-certificates.html#after-zulip-is-already-installed), [our Certbot wrapper tool](ssl-certificates.md#after-zulip-is-already-installed),
though if you're going to host a large number of organizations, you though if you're going to host a large number of organizations, you
may want to get a wildcard certificate. You can also get a wildcard may want to get a wildcard certificate. You can also get a wildcard
certificate for certificate for

View File

@ -8,7 +8,7 @@ When a user tries to set a password, we use [zxcvbn][zxcvbn] to check
that it isn't a weak one. that it isn't a weak one.
See discussion in [our main docs for server See discussion in [our main docs for server
admins](security-model.html#passwords). This doc explains in more admins](security-model.md#passwords). This doc explains in more
detail how we set the default threshold (`PASSWORD_MIN_GUESSES`) we use. detail how we set the default threshold (`PASSWORD_MIN_GUESSES`) we use.
First, read the doc section there. (It's short.) First, read the doc section there. (It's short.)

View File

@ -10,7 +10,7 @@ included with the base operating system (E.g. PostgreSQL 12 on Ubuntu
PostgreSQL releases [upgrade to PostgreSQL 14][upgrade-postgresql], as PostgreSQL releases [upgrade to PostgreSQL 14][upgrade-postgresql], as
we may drop support for older PostgreSQL in a future release. we may drop support for older PostgreSQL in a future release.
[upgrade-postgresql]: upgrade-or-modify.html#upgrading-postgresql [upgrade-postgresql]: upgrade-or-modify.md#upgrading-postgresql
#### Remote PostgreSQL database #### Remote PostgreSQL database

View File

@ -17,7 +17,7 @@ To run a Zulip server, you will need:
For details on each of these requirements, see below. For details on each of these requirements, see below.
[upgrade-from-git]: upgrade-or-modify.html#upgrading-from-a-git-repository [upgrade-from-git]: upgrade-or-modify.md#upgrading-from-a-git-repository
## Server ## Server
@ -53,7 +53,7 @@ sudo apt update
``` ```
[docker-zulip-homepage]: https://github.com/zulip/docker-zulip#readme [docker-zulip-homepage]: https://github.com/zulip/docker-zulip#readme
[upgrade-os]: upgrade-or-modify.html#upgrading-the-operating-system [upgrade-os]: upgrade-or-modify.md#upgrading-the-operating-system
[ubuntu-repositories]: https://help.ubuntu.com/community/Repositories/Ubuntu [ubuntu-repositories]: https://help.ubuntu.com/community/Repositories/Ubuntu
[enable-universe]: https://help.ubuntu.com/community/Repositories/CommandLine#Adding_the_Universe_and_Multiverse_Repositories [enable-universe]: https://help.ubuntu.com/community/Repositories/CommandLine#Adding_the_Universe_and_Multiverse_Repositories
@ -78,7 +78,7 @@ on hardware requirements for larger organizations.
#### Network and security specifications #### Network and security specifications
- Incoming HTTPS access (usually port 443, though this is - Incoming HTTPS access (usually port 443, though this is
[configurable](deployment.html#using-an-alternate-port)) [configurable](deployment.md#using-an-alternate-port))
from the networks where your users are (usually, the public from the networks where your users are (usually, the public
Internet). Internet).
- Incoming port 80 access (optional). Zulip only serves content over - Incoming port 80 access (optional). Zulip only serves content over
@ -112,8 +112,8 @@ on hardware requirements for larger organizations.
Zulip supports using that instead. Zulip supports using that instead.
[ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery [ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
[smokescreen-proxy]: deployment.html#customizing-the-outgoing-http-proxy [smokescreen-proxy]: deployment.md#customizing-the-outgoing-http-proxy
[reverse-proxy]: deployment.html#putting-the-zulip-application-behind-a-reverse-proxy [reverse-proxy]: deployment.md#putting-the-zulip-application-behind-a-reverse-proxy
[email-mirror-code]: https://github.com/zulip/zulip/blob/main/zerver/management/commands/email_mirror.py [email-mirror-code]: https://github.com/zulip/zulip/blob/main/zerver/management/commands/email_mirror.py
## Credentials needed ## Credentials needed
@ -133,8 +133,8 @@ installer.
If you'd rather acquire an SSL certificate another way, see our [SSL If you'd rather acquire an SSL certificate another way, see our [SSL
certificate documentation](ssl-certificates.md). certificate documentation](ssl-certificates.md).
[doc-certbot]: ssl-certificates.html#certbot-recommended [doc-certbot]: ssl-certificates.md#certbot-recommended
[doc-self-signed]: ssl-certificates.html#self-signed-certificate [doc-self-signed]: ssl-certificates.md#self-signed-certificate
#### Outgoing email #### Outgoing email
@ -143,7 +143,7 @@ certificate documentation](ssl-certificates.md).
during the signup process, message notification emails, password during the signup process, message notification emails, password
reset, etc.). If you don't have an existing outgoing SMTP solution, reset, etc.). If you don't have an existing outgoing SMTP solution,
read about read about
[free outgoing SMTP options and options for prototyping](email.html#free-outgoing-email-services). [free outgoing SMTP options and options for prototyping](email.md#free-outgoing-email-services).
Once you have met these requirements, see [full instructions for installing Once you have met these requirements, see [full instructions for installing
Zulip in production](install.md). Zulip in production](install.md).
@ -241,6 +241,6 @@ For readers interested in technical details around what features
impact Zulip's scalability, this [performance and scalability design impact Zulip's scalability, this [performance and scalability design
document](../subsystems/performance.md) may also be of interest. document](../subsystems/performance.md) may also be of interest.
[s3-uploads]: upload-backends.html#s3-backend-configuration [s3-uploads]: upload-backends.md#s3-backend-configuration
[streaming-replication]: deployment.html#postgresql-warm-standby [streaming-replication]: deployment.md#postgresql-warm-standby
[contact-support]: https://zulip.com/help/contact-support [contact-support]: https://zulip.com/help/contact-support

View File

@ -272,8 +272,8 @@ strength allowed is controlled by two settings in
[go-camo]: https://github.com/cactus/go-camo [go-camo]: https://github.com/cactus/go-camo
[ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery [ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
[smokescreen-setup]: deployment.html#customizing-the-outgoing-http-proxy [smokescreen-setup]: deployment.md#customizing-the-outgoing-http-proxy
[proxy.enable_for_camo]: deployment.html#enable-for-camo [proxy.enable_for_camo]: deployment.md#enable_for_camo
## Final notes and security response ## Final notes and security response

View File

@ -28,7 +28,7 @@ from an old version of Zulip, we recommend [carefully updating your
comment documentation for new configuration settings after upgrading comment documentation for new configuration settings after upgrading
to each new major release. to each new major release.
[update-settings-docs]: upgrade-or-modify.html#updating-settings-py-inline-documentation [update-settings-docs]: upgrade-or-modify.md#updating-settingspy-inline-documentation
[settings-py-template]: https://github.com/zulip/zulip/blob/main/zproject/prod_settings_template.py [settings-py-template]: https://github.com/zulip/zulip/blob/main/zproject/prod_settings_template.py
Since Zulip's settings file is a Python script, there are a number of Since Zulip's settings file is a Python script, there are a number of

View File

@ -81,7 +81,7 @@ Internet.
If you need to configure a multiple domain certificate, you can generate If you need to configure a multiple domain certificate, you can generate
one as described in the section below after installing Zulip. one as described in the section below after installing Zulip.
[doc-install-script]: install.html#step-2-install-zulip [doc-install-script]: install.md#step-2-install-zulip
### After Zulip is already installed ### After Zulip is already installed

View File

@ -7,7 +7,7 @@ Supervisor client to monitor and manage services.
If you haven't already, now might be a good time to read Zulip's [architectural If you haven't already, now might be a good time to read Zulip's [architectural
overview](../overview/architecture-overview.md), particularly the overview](../overview/architecture-overview.md), particularly the
[Components](../overview/architecture-overview.html#components) section. This will help you [Components](../overview/architecture-overview.md#components) section. This will help you
understand the many services Zulip uses. understand the many services Zulip uses.
If you encounter issues while running Zulip, take a look at Zulip's logs, which If you encounter issues while running Zulip, take a look at Zulip's logs, which

View File

@ -4,7 +4,7 @@ This page explains how to upgrade, patch, or modify Zulip, including:
- [Upgrading to a release](#upgrading-to-a-release) - [Upgrading to a release](#upgrading-to-a-release)
- [Upgrading from a Git repository](#upgrading-from-a-git-repository) - [Upgrading from a Git repository](#upgrading-from-a-git-repository)
- [Updating `settings.py` inline documentation](#updating-settings-py-inline-documentation) - [Updating `settings.py` inline documentation](#updating-settingspy-inline-documentation)
- [Troubleshooting and rollback](#troubleshooting-and-rollback) - [Troubleshooting and rollback](#troubleshooting-and-rollback)
- [Preserving local changes to service configuration files](#preserving-local-changes-to-service-configuration-files) - [Preserving local changes to service configuration files](#preserving-local-changes-to-service-configuration-files)
- [Upgrading the operating system](#upgrading-the-operating-system) - [Upgrading the operating system](#upgrading-the-operating-system)
@ -20,7 +20,7 @@ or have [modified Zulip-managed configuration
files](#preserving-local-changes-to-service-configuration-files). To upgrade files](#preserving-local-changes-to-service-configuration-files). To upgrade
to a new Zulip release: to a new Zulip release:
1. Read the [upgrade notes](../overview/changelog.html#upgrade-notes) 1. Read the [upgrade notes](../overview/changelog.md#upgrade-notes)
for all releases newer than what is currently installed. for all releases newer than what is currently installed.
1. Download the appropriate release tarball from 1. Download the appropriate release tarball from
@ -60,7 +60,7 @@ involved (these will be documented in the [release
notes](../overview/changelog.md), and usually can be avoided with notes](../overview/changelog.md), and usually can be avoided with
some care). If downtime is problematic for your organization, some care). If downtime is problematic for your organization,
consider testing the upgrade on a consider testing the upgrade on a
[backup](export-and-import.html#backups) in advance, [backup](export-and-import.md#backups) in advance,
doing the final upgrade at off hours, or buying a support contract. doing the final upgrade at off hours, or buying a support contract.
See the [troubleshooting guide](#troubleshooting-and-rollback) if you See the [troubleshooting guide](#troubleshooting-and-rollback) if you
@ -156,7 +156,7 @@ suggest using that updated template to update
su zulip -c '/home/zulip/deployments/current/scripts/restart-server' su zulip -c '/home/zulip/deployments/current/scripts/restart-server'
``` ```
[backups]: export-and-import.html#backups [backups]: export-and-import.md#backups
[changelog]: ../overview/changelog.md [changelog]: ../overview/changelog.md
## Troubleshooting and rollback ## Troubleshooting and rollback
@ -365,7 +365,7 @@ instructions for other supported platforms.
``` ```
8. [Upgrade from Ubuntu 18.04 to 8. [Upgrade from Ubuntu 18.04 to
20.04](#upgrading-from-ubuntu-18-04-bionic-to-20-04-focal), so that 20.04](#upgrading-from-ubuntu-1804-bionic-to-2004-focal), so that
you are running a supported operating system. you are running a supported operating system.
### Upgrading from Ubuntu 14.04 Trusty to 16.04 Xenial ### Upgrading from Ubuntu 14.04 Trusty to 16.04 Xenial
@ -408,7 +408,7 @@ instructions for other supported platforms.
correctly. correctly.
6. [Upgrade from Ubuntu 16.04 to 6. [Upgrade from Ubuntu 16.04 to
18.04](#upgrading-from-ubuntu-16-04-xenial-to-18-04-bionic), so 18.04](#upgrading-from-ubuntu-1604-xenial-to-1804-bionic), so
that you are running a supported operating system. that you are running a supported operating system.
### Upgrading from Debian 10 to 11 ### Upgrading from Debian 10 to 11
@ -800,7 +800,7 @@ upgrading to `main`, make sure you understand:
- We do not support downgrading from `main` to earlier versions, so - We do not support downgrading from `main` to earlier versions, so
if downtime for your Zulip server is unacceptable, make sure you if downtime for your Zulip server is unacceptable, make sure you
have a current have a current
[backup](export-and-import.html#backups) in case the [backup](export-and-import.md#backups) in case the
upgrade fails. upgrade fails.
- Our changelog contains [draft release - Our changelog contains [draft release
notes](../overview/changelog.md) available listing major changes notes](../overview/changelog.md) available listing major changes
@ -821,7 +821,7 @@ contributors like you. If your changes are likely to be of useful to
other organizations, consider [contributing other organizations, consider [contributing
them](../overview/contributing.md). them](../overview/contributing.md).
[fork-clone]: ../git/cloning.html#get-zulip-code [fork-clone]: ../git/cloning.md#get-zulip-code
[upgrade-zulip-from-git]: #upgrading-from-a-git-repository [upgrade-zulip-from-git]: #upgrading-from-a-git-repository
[upgrade-zulip]: #upgrading [upgrade-zulip]: #upgrading
[git-guide]: ../git/index.md [git-guide]: ../git/index.md

View File

@ -232,7 +232,7 @@ reasoning here.
dependencies in the `yarn.lock` file; `yarn install` updates the dependencies in the `yarn.lock` file; `yarn install` updates the
`yarn.lock` files. `yarn.lock` files.
- `tools/update-prod-static`. This process is discussed in detail in - `tools/update-prod-static`. This process is discussed in detail in
the [static asset pipeline](html-css.html#static-asset-pipeline) the [static asset pipeline](html-css.md#static-asset-pipeline)
article, but we don't use the `node_modules` directories directly in article, but we don't use the `node_modules` directories directly in
production. Instead, static assets are compiled using our static production. Instead, static assets are compiled using our static
asset pipeline and it is the compiled assets that are served asset pipeline and it is the compiled assets that are served

View File

@ -72,9 +72,9 @@ mutate the HTML email one can see previewed on `/emails`.
To do this sort of testing, you need to set up an outgoing SMTP To do this sort of testing, you need to set up an outgoing SMTP
provider. Our production advice for provider. Our production advice for
[Gmail](../production/email.html#using-gmail-for-outgoing-email) and [Gmail](../production/email.md#using-gmail-for-outgoing-email) and
[transactional email [transactional email
providers](../production/email.html#free-outgoing-email-services) are providers](../production/email.md#free-outgoing-email-services) are
relevant; you can ignore the Gmail warning as Gmail's rate limits are relevant; you can ignore the Gmail warning as Gmail's rate limits are
appropriate for this sort of low-volume testing. appropriate for this sort of low-volume testing.

View File

@ -20,7 +20,7 @@ First, a few notes on philosophy.
design/implementation work to make requests fast over the operational design/implementation work to make requests fast over the operational
work of running 2-5x as much hardware to handle the same load. work of running 2-5x as much hardware to handle the same load.
See also [scalability for production users](../production/requirements.html#scalability). See also [scalability for production users](../production/requirements.md#scalability).
## Load profiles ## Load profiles
@ -38,7 +38,7 @@ of load profiles:
example for this, with more than 15K total user accounts, of which example for this, with more than 15K total user accounts, of which
only several hundred have logged in during the last few weeks. only several hundred have logged in during the last few weeks.
Zulip has many important optimizations, including [soft Zulip has many important optimizations, including [soft
deactivation](sending-messages.html#soft-deactivation) deactivation](sending-messages.md#soft-deactivation)
to ensure idle users have minimal impact on both server-side to ensure idle users have minimal impact on both server-side
scalability and request latency. scalability and request latency.
- Fulltime teams, like your typical corporate Zulip installation, - Fulltime teams, like your typical corporate Zulip installation,
@ -249,7 +249,7 @@ it does a large number of these requests:
zulip.com, this can result in a thundering herd effect for both `/` zulip.com, this can result in a thundering herd effect for both `/`
and `GET /messages`. A great deal of care has been taking in and `GET /messages`. A great deal of care has been taking in
designing this [auto-reload designing this [auto-reload
system](hashchange-system.html#server-initiated-reloads) system](hashchange-system.md#server-initiated-reloads)
to spread most of that herd over several minutes. to spread most of that herd over several minutes.
Typical requests consume 20-100ms to process, much of which is waiting Typical requests consume 20-100ms to process, much of which is waiting

View File

@ -13,7 +13,7 @@ preparing a new release.
- Upgrade all puppet-installed dependencies (e.g. Smokescreen, go, - Upgrade all puppet-installed dependencies (e.g. Smokescreen, go,
etc) in `puppet/zulip/manifests/common.pp` etc) in `puppet/zulip/manifests/common.pp`
- [Upload strings to - [Upload strings to
Transifex](../translating/internationalization.html#translation-process) Transifex](../translating/internationalization.md#translation-process)
using `push-translations`. Post a Transifex using `push-translations`. Post a Transifex
[Announcement](https://www.transifex.com/zulip/zulip/announcements/) [Announcement](https://www.transifex.com/zulip/zulip/announcements/)
notifying translators that we're approaching a release. notifying translators that we're approaching a release.

View File

@ -62,7 +62,7 @@ In a production environment, we have:
is the main documentation for Zulip settings, we recommend that is the main documentation for Zulip settings, we recommend that
production installations [carefully update `/etc/zulip/settings.py` production installations [carefully update `/etc/zulip/settings.py`
every major every major
release](../production/upgrade-or-modify.html#updating-settings-py-inline-documentation) release](../production/upgrade-or-modify.md#updating-settingspy-inline-documentation)
to pick up new inline documentation. to pick up new inline documentation.
- `/etc/zulip/zulip-secrets.conf` (generated by - `/etc/zulip/zulip-secrets.conf` (generated by

View File

@ -65,7 +65,7 @@ but it is good practice to run lint checks locally.
:::{important} :::{important}
We provide a We provide a
[Git pre-commit hook](../git/zulip-tools.html#set-up-git-repo-script) [Git pre-commit hook](../git/zulip-tools.md#set-up-git-repo-script)
that can automatically run `tools/lint` on just the files that that can automatically run `tools/lint` on just the files that
changed (in a few 100ms) whenever you make a commit. This can save changed (in a few 100ms) whenever you make a commit. This can save
you a lot of time, by automatically detecting linter errors as you you a lot of time, by automatically detecting linter errors as you

View File

@ -330,7 +330,7 @@ with self.settings(RATE_LIMITING=True):
self.assertTrue(rate_limit_mock.called) self.assertTrue(rate_limit_mock.called)
``` ```
Follow [this link](../subsystems/settings.html#testing-non-default-settings) for more Follow [this link](../subsystems/settings.md#testing-non-default-settings) for more
information on the "settings" context manager. information on the "settings" context manager.
Zulip has several features, like outgoing webhooks or social Zulip has several features, like outgoing webhooks or social
@ -411,7 +411,7 @@ We use mocks and stubs for all the typical reasons:
- to stub out calls to third-party services - to stub out calls to third-party services
- to make it so that you can [run the Zulip tests on the airplane without wifi][no-internet] - to make it so that you can [run the Zulip tests on the airplane without wifi][no-internet]
[no-internet]: testing.html#internet-access-inside-test-suites [no-internet]: testing.md#internet-access-inside-test-suites
A detailed description of mocks, along with useful coded snippets, can be found in the section A detailed description of mocks, along with useful coded snippets, can be found in the section
[Testing with mocks](#testing-with-mocks). [Testing with mocks](#testing-with-mocks).
@ -449,7 +449,7 @@ the same data structure as performing an action that generates said event.
This is a bit esoteric, but if you read the tests, you will see some of This is a bit esoteric, but if you read the tests, you will see some of
the patterns. You can also learn more about our event system in the the patterns. You can also learn more about our event system in the
[new feature tutorial](../tutorials/new-feature-tutorial.html#handle-database-interactions). [new feature tutorial](../tutorials/new-feature-tutorial.md#handle-database-interactions).
### Negative tests ### Negative tests

View File

@ -126,7 +126,7 @@ This is easy to do using test fixtures (a fancy word for fixed data
used in tests) and the `mock.patch` function to specify what HTTP used in tests) and the `mock.patch` function to specify what HTTP
response should be used by the tests for every outgoing HTTP (or other response should be used by the tests for every outgoing HTTP (or other
network) request. Consult network) request. Consult
[our guide on mocking](testing-with-django.html#zulip-mocking-practices) to [our guide on mocking](testing-with-django.md#zulip-mocking-practices) to
learn how to mock network requests easily; there are also a number of learn how to mock network requests easily; there are also a number of
examples throughout the codebase. examples throughout the codebase.

View File

@ -26,7 +26,7 @@ principles are important in how we think about internationalization:
element needs to be built in a way that supports i18n. element needs to be built in a way that supports i18n.
- This is more about string consistency in general, but we have a - This is more about string consistency in general, but we have a
"Sentence case" [capitalization "Sentence case" [capitalization
policy](translating.html#capitalization) that we enforce using linters policy](translating.md#capitalization) that we enforce using linters
that check all strings tagged for translation in Zulip. that check all strings tagged for translation in Zulip.
This article aims to provide a brief introduction. We recommend the This article aims to provide a brief introduction. We recommend the
@ -108,7 +108,7 @@ The end-to-end tooling process for translations in Zulip is as follows.
Transifex API tool, `tx pull`, internally). Transifex API tool, `tx pull`, internally).
If you're interested, you may also want to check out the [translators' If you're interested, you may also want to check out the [translators'
workflow](translating.html#translators-workflow), just so you have a workflow](translating.md#translators-workflow), just so you have a
sense of how everything fits together. sense of how everything fits together.
## Translation resource files ## Translation resource files
@ -339,4 +339,4 @@ organizations from the command line.
[helpers]: https://handlebarsjs.com/guide/block-helpers.html [helpers]: https://handlebarsjs.com/guide/block-helpers.html
[transifex]: https://transifex.com [transifex]: https://transifex.com
[transifexrc]: https://docs.transifex.com/client/client-configuration#transifexrc [transifexrc]: https://docs.transifex.com/client/client-configuration#transifexrc
[html-templates]: ../subsystems/html-css.html#html-templates [html-templates]: ../subsystems/html-css.md#html-templates

View File

@ -115,7 +115,7 @@ can usually just deploy the latest translations there.
- First, download the updated resource files from Transifex using the - First, download the updated resource files from Transifex using the
`tools/i18n/sync-translations` command (it will require some [initial `tools/i18n/sync-translations` command (it will require some [initial
setup](internationalization.html#transifex-cli-setup)). This setup](internationalization.md#transifex-cli-setup)). This
command will download the resource files from Transifex and replace command will download the resource files from Transifex and replace
your local resource files with them, and then compile them. You can your local resource files with them, and then compile them. You can
now test your translation work in the Zulip UI. now test your translation work in the Zulip UI.
@ -199,7 +199,7 @@ capitalization in general. This means that:
The Zulip test suite enforces these capitalization guidelines in the The Zulip test suite enforces these capitalization guidelines in the
web app codebase [in our test web app codebase [in our test
suite](../testing/testing.html#other-test-suites) suite](../testing/testing.md#other-test-suites)
(`./tools/check-capitalization`; `tools/lib/capitalization.py` has (`./tools/check-capitalization`; `tools/lib/capitalization.py` has
some exclude lists, e.g. `IGNORED_PHRASES`). some exclude lists, e.g. `IGNORED_PHRASES`).

View File

@ -39,7 +39,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#django-and-tornado [tornado-django]: ../overview/architecture-overview.md#django-and-tornado
All our connected clients hold open long-polling connections so that All our connected clients hold open long-polling connections so that
they can receive events (messages, presence notifications, and so on) in they can receive events (messages, presence notifications, and so on) in

View File

@ -89,7 +89,7 @@ to learn more about creating and applying database migrations.
**Test your changes:** Once you've run the migration, flush memcached **Test your changes:** Once you've run the migration, flush memcached
on your development server (`./scripts/setup/flush-memcached`) and then on your development server (`./scripts/setup/flush-memcached`) and then
[restart the development server](../development/remote.html#running-the-development-server) [restart the development server](../development/remote.md#running-the-development-server)
to avoid interacting with cached objects. to avoid interacting with cached objects.
### Backend changes ### Backend changes
@ -265,7 +265,7 @@ Running migrations:
``` ```
Once you've run the migration, restart memcached on your development Once you've run the migration, restart memcached on your development
server (`/etc/init.d/memcached restart`) and then [restart the development server](../development/remote.html#running-the-development-server) server (`/etc/init.d/memcached restart`) and then [restart the development server](../development/remote.md#running-the-development-server)
to avoid interacting with cached objects. to avoid interacting with cached objects.
### Handle database interactions ### Handle database interactions

View File

@ -347,4 +347,4 @@ will be useful in your journey, as well.
![Git - XKCD 1597](https://imgs.xkcd.com/comics/git.png) ![Git - XKCD 1597](https://imgs.xkcd.com/comics/git.png)
[git-cheat-detailed]: ../git/cheat-sheet.html#detailed-cheat-sheet [git-cheat-detailed]: ../git/cheat-sheet.md#detailed-cheat-sheet

View File

@ -37,7 +37,7 @@ integrations).
The format of the URL patterns in Django is [documented The format of the URL patterns in Django is [documented
here](https://docs.djangoproject.com/en/3.2/topics/http/urls/), and here](https://docs.djangoproject.com/en/3.2/topics/http/urls/), and
the Zulip specific details for these are discussed in detail in the the Zulip specific details for these are discussed in detail in the
[life of a request doc](life-of-a-request.html#options). [life of a request doc](life-of-a-request.md#options).
We have two Zulip-specific conventions we use for internationalization and for We have two Zulip-specific conventions we use for internationalization and for
our REST API, respectively. our REST API, respectively.