diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 2ed2dc2f92..fe4c888160 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -101,5 +101,5 @@ This Code of Conduct is adapted from the [Citizen Code of Conduct](http://citizencodeofconduct.org/) and the [Django Code of Conduct](https://www.djangoproject.com/conduct/), and is under a -[Creative Commons BY-SA](http://creativecommons.org/licenses/by-sa/4.0/) +[Creative Commons BY-SA](https://creativecommons.org/licenses/by-sa/4.0/) license. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b53218866a..8d89556b51 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -47,7 +47,7 @@ don't require touching the codebase at all. We list a few of them below: * [Translating](https://zulip.readthedocs.io/en/latest/translating/translating.html) Zulip. * [Outreach](#zulip-outreach): Star us on GitHub, upvote us - on product comparison sites, or write for [the Zulip blog](http://blog.zulip.org/). + on product comparison sites, or write for [the Zulip blog](https://blog.zulip.org/). ## Your first (codebase) contribution @@ -333,7 +333,7 @@ have been using Zulip for a while and want to contribute more. about a technical aspect of Zulip can be a great way to spread the word about Zulip. -We also occasionally [publish](http://blog.zulip.org/) long-form +We also occasionally [publish](https://blog.zulip.org/) long-form articles related to Zulip. Our posts typically get tens of thousands of views, and we always have good ideas for blog posts that we can outline but don't have time to write. If you are an experienced writer diff --git a/README.md b/README.md index ecf90ffa62..cb30e13c43 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ You might be interested in: programs](https://zulip.readthedocs.io/en/latest/overview/contributing.html#outreach-programs)** like Google Summer of Code. -You may also be interested in reading our [blog](http://blog.zulip.org/) or +You may also be interested in reading our [blog](https://blog.zulip.org/) or 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. diff --git a/docs/conf.py b/docs/conf.py index 0853ea14d4..7ff84ba170 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -330,7 +330,7 @@ def setup(app: Any) -> None: }, True) # Enable `eval_rst`, and any other features enabled in recommonmark_config. - # Docs: http://recommonmark.readthedocs.io/en/latest/auto_structify.html + # Docs: https://recommonmark.readthedocs.io/en/latest/auto_structify.html # (But NB those docs are for master, not latest release.) app.add_transform(AutoStructify) diff --git a/docs/contributing/accessibility.md b/docs/contributing/accessibility.md index 6dd24b0a65..055fdead23 100644 --- a/docs/contributing/accessibility.md +++ b/docs/contributing/accessibility.md @@ -40,11 +40,11 @@ with many of the WCAG guidelines. Here are some of the more useful ones: * [aXe](https://www.deque.com/products/axe/) An open source Chrome and Firefox extension which runs a somewhat different set of checks than Google's Chrome extension. -* [Wave](http://wave.webaim.org/) This web application takes a URL and loads +* [Wave](https://wave.webaim.org/) This web application takes a URL and loads it in a frame, reporting on all the issues it finds with links to more information. Has the advantage of not requiring installation, but requires a URL which can be directly accessed by an external site. -* [Web Developer](http://chrispederick.com/work/web-developer/) This browser +* [Web Developer](https://chrispederick.com/work/web-developer/) This browser extension has many useful features, including a convenient link for opening the current URL in Wave to get an accessibility report. @@ -70,16 +70,16 @@ If you want to help make Zulip more accessible, here is a list of the For more information about making Zulip accessible to as many users as possible, the following resources may be useful. -* [Font Awesome accessibility guide](http://fontawesome.io/accessibility/), +* [Font Awesome accessibility guide](https://fontawesome.com/how-to-use/on-the-web/other-topics/accessibility), which is especially helpful since Zulip uses Font Awesome for its icons. * [Web Content Accessibility Guidelines (WCAG) 2.0](https://www.w3.org/TR/WCAG/) * [WAI-ARIA](https://www.w3.org/WAI/intro/aria) - Web Accessibility Initiative Accessible Rich Internet Application Suite -* [WebAIM](http://webaim.org/) - Web Accessibility in Mind +* [WebAIM](https://webaim.org/) - Web Accessibility in Mind * The [MDN page on accessibility](https://developer.mozilla.org/en-US/docs/Web/Accessibility) * The [Open edX Accessibility Guidelines][openedx-guidelines] for developers [chrome-webstore]: https://chrome.google.com/webstore/detail/accessibility-developer-t/fpkknkljclfencbdbgkenhalefipecmb -[openedx-guidelines]: http://edx.readthedocs.io/projects/edx-developer-guide/en/latest/conventions/accessibility.html +[openedx-guidelines]: https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/conventions/accessibility.html [accessibility-issues]: https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22area%3A%20accessibility%22 diff --git a/docs/contributing/code-reviewing.md b/docs/contributing/code-reviewing.md index edda35de4c..2ced64ea80 100644 --- a/docs/contributing/code-reviewing.md +++ b/docs/contributing/code-reviewing.md @@ -187,7 +187,7 @@ the maintainer time and get the PR merged quicker. We also strongly recommend reviewers to go through the following resources. -* [The Gentle Art of Patch Review](http://sage.thesharps.us/2014/09/01/the-gentle-art-of-patch-review/) +* [The Gentle Art of Patch Review](https://sage.thesharps.us/2014/09/01/the-gentle-art-of-patch-review/) article by Sarah Sharp * [Zulip & Good Code Review](https://www.harihareswara.net/sumana/2016/05/17/0) article by Sumana Harihareswara diff --git a/docs/contributing/code-style.md b/docs/contributing/code-style.md index a4b57c2ce3..24bcfda24f 100644 --- a/docs/contributing/code-style.md +++ b/docs/contributing/code-style.md @@ -22,8 +22,8 @@ The Vagrant setup process runs this for you. `lint` runs many lint checks in parallel, including -- JavaScript ([ESLint](http://eslint.org/)) -- Python ([Pyflakes](http://pypi.python.org/pypi/pyflakes)) +- JavaScript ([ESLint](https://eslint.org/)) +- Python ([Pyflakes](https://pypi.python.org/pypi/pyflakes)) - templates - Puppet configuration - custom checks (e.g. trailing whitespace and spaces-not-tabs) @@ -154,9 +154,9 @@ Always declare JavaScript variables using `const` or `let` rather than ### JavaScript and TypeScript `for (i in myArray)` Don't use it: -[[1]](http://stackoverflow.com/questions/500504/javascript-for-in-with-arrays), +[[1]](https://stackoverflow.com/questions/500504/javascript-for-in-with-arrays), [[2]](https://google.github.io/styleguide/javascriptguide.xml#for-in_loop), -[[3]](http://www.jslint.com/help.html#forin) +[[3]](https://www.jslint.com/help.html#forin) ### Translation tags @@ -187,7 +187,7 @@ syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operat and so on. Our Babel configuration automatically transpiles and polyfills these using [`core-js`](https://github.com/zloirock/core-js) when necessary. We used to use the -[Underscore](http://underscorejs.org/) library, but that should be +[Underscore](https://underscorejs.org/) library, but that should be avoided in new code. ## More arbitrary style things diff --git a/docs/contributing/summer-with-zulip.md b/docs/contributing/summer-with-zulip.md index 628eab62e8..92beca9798 100644 --- a/docs/contributing/summer-with-zulip.md +++ b/docs/contributing/summer-with-zulip.md @@ -54,7 +54,7 @@ materials](https://developers.google.com/open-source/gsoc/resources/manual). need help learning, and time-saving tricks. - If you need feedback from the community / decisions made, ask in the - appropriate public stream on [chat.zulip.org](http://chat.zulip.org). Often + appropriate public stream on [chat.zulip.org](https://chat.zulip.org). Often someone can provide important context that you need to succeed in your project. diff --git a/docs/development/remote.md b/docs/development/remote.md index eb079759d2..3b85bf4ee7 100644 --- a/docs/development/remote.md +++ b/docs/development/remote.md @@ -126,7 +126,7 @@ don't have a favorite, here are some suggestions: * [atom](https://atom.io/) * [emacs](https://www.gnu.org/software/emacs/) -* [vim](http://www.vim.org/) +* [vim](https://www.vim.org/) * [spacemacs](https://github.com/syl20bnr/spacemacs) * [sublime](https://www.sublimetext.com/) @@ -220,7 +220,7 @@ Two editors often available by default on Linux systems are: recommended it for quick edits to things like configuration files. Launch by running command `nano `. Exit by pressing *control-X*. -* **[Vim](http://www.vim.org/)**: A very powerful editor that can take a while +* **[Vim](https://www.vim.org/)**: A very powerful editor that can take a while to learn. Launch by running `vim `. Quit Vim by pressing *escape*, typing `:q`, and then pressing *return*. Vim comes with a program to learn it called `vimtutor` (just run that command to start it). diff --git a/docs/development/setup-vagrant.md b/docs/development/setup-vagrant.md index 4e7a71ddfb..404d5d613e 100644 --- a/docs/development/setup-vagrant.md +++ b/docs/development/setup-vagrant.md @@ -750,7 +750,7 @@ If this is already enabled in your BIOS, double-check that you are running a 64-bit operating system. For further information about troubleshooting vagrant timeout errors [see -this post](http://stackoverflow.com/questions/22575261/vagrant-stuck-connection-timeout-retrying#22575302). +this post](https://stackoverflow.com/questions/22575261/vagrant-stuck-connection-timeout-retrying#22575302). #### Vagrant was unable to communicate with the guest machine @@ -1016,10 +1016,10 @@ If at any time you wish to revert back to the default settings, simply remove the `GUEST_CPUS` and `GUEST_MEMORY_MB` lines from `~/.zulip-vagrant-config`. -[cygwin-dl]: http://cygwin.com/ +[cygwin-dl]: https://cygwin.com/ [vagrant-dl]: https://www.vagrantup.com/downloads.html [vbox-dl]: https://www.virtualbox.org/wiki/Downloads -[vmware-fusion-dl]: http://www.vmware.com/products/fusion.html +[vmware-fusion-dl]: https://www.vmware.com/products/fusion.html [vagrant-vmware-fusion-dl]: https://www.vagrantup.com/vmware/ [install-advanced]: ../development/setup-advanced.md [rtd-git-guide]: ../git/index.md diff --git a/docs/documentation/api.md b/docs/documentation/api.md index dd3a5123f2..0167e49fb3 100644 --- a/docs/documentation/api.md +++ b/docs/documentation/api.md @@ -229,7 +229,7 @@ above. "fixture"). The easiest way to do this is add an appropriate print statement (usually `json.dumps(result, indent=4, sort_keys=True)`), and then run `tools/test-api`. You can also use - to format the JSON + to format the JSON fixtures. Add the fixture to the `example` subsection of the `responses` section for the endpoint in `zerver/openapi/zulip.yaml`. diff --git a/docs/documentation/openapi.md b/docs/documentation/openapi.md index 8fc3f715b3..f5b7e344fa 100644 --- a/docs/documentation/openapi.md +++ b/docs/documentation/openapi.md @@ -1,6 +1,6 @@ # OpenAPI configuration -The [OpenAPI](http://swagger.io/specification/) (formerly known as +The [OpenAPI](https://swagger.io/specification/) (formerly known as Swagger) specification is a standardized way to describe how an API functions. This description then can then be used by any tool that supports the standard. @@ -14,7 +14,7 @@ may contain other objects, or reference objects defined elsewhere. Larger API specifications may be split into multiple files. There are more types of objects than mentioned here, you can find the complete details at -[Swagger/OpenAPI specification page](http://swagger.io/specification). +[Swagger/OpenAPI specification page](https://swagger.io/specification/). This library isn't in production use yet, but it is our current plan for how Zulip's API documentation will work. @@ -52,16 +52,16 @@ info: ### Endpoint definitions -The [Paths Object](http://swagger.io/specification/#pathsObject) +The [Paths Object](https://swagger.io/specification/#pathsObject) contains -[Path Item Objects](http://swagger.io/specification/#pathItemObject) +[Path Item Objects](https://swagger.io/specification/#pathItemObject) for each endpoint. It describes in detail the methods and parameters the endpoint accepts and responses it returns. There is one Path Item Object for each supported method, containing a -[Parameters Definition Object](http://swagger.io/specification/#parametersDefinitionObject) +[Parameters Definition Object](https://swagger.io/specification/#parametersDefinitionObject) describing the required and optional inputs. A -[Response Object](http://swagger.io/specification/#responseObject) +[Response Object](https://swagger.io/specification/#responseObject) similarly specifies the content of the response. They may reference schemas from a global Definitions Object (see [Schemas](#schemas), below.) @@ -69,9 +69,9 @@ below.) Example: The `/users/{user}/presence` endpoint (defined in a -[Path Item Object](http://swagger.io/specification/#pathItemObject)) +[Path Item Object](https://swagger.io/specification/#pathItemObject)) expects a GET request with one -[parameter](http://swagger.io/specification/#parameterObject), HTTP +[parameter](https://swagger.io/specification/#parameterObject), HTTP Basic authentication, and returns a JSON response containing `msg`, `result`, and `presence` values. @@ -109,7 +109,7 @@ Basic authentication, and returns a JSON response containing `msg`, ### Schemas The -[Definitions Object](http://swagger.io/specification/#definitionsObject) +[Definitions Object](https://swagger.io/specification/#definitionsObject) contains schemas referenced by other objects. For example, `MessageResponse`, the response from the `/messages` endpoint, contains three required parameters. Two are strings, and one is an @@ -151,13 +151,13 @@ characters are not permitted. If your editor has an option to replace tabs with spaces, this is helpful. You can also use the -[Swagger Editor](http://swagger.io/swagger-editor), which validates +[Swagger Editor](https://swagger.io/swagger-editor), which validates YAML and understands the Swagger specification. Download and run it locally, or use the online version. If you aren't using a YAML-aware editor, make small changes and check your additions often. Note: if you are working with -[Swagger UI](http://swagger.io/swagger-ui/) in a local development +[Swagger UI](https://swagger.io/swagger-ui/) in a local development environment, it uses an online validator that must be able to access your file. You may see a red "ERROR" button at the bottom of your API docs page instead of the green "VALID" one even if your file is diff --git a/docs/documentation/overview.md b/docs/documentation/overview.md index 2a5f34adf8..f4c49f5895 100644 --- a/docs/documentation/overview.md +++ b/docs/documentation/overview.md @@ -31,9 +31,9 @@ These three systems are documented in detail. What you are reading right now is part of the collection of documentation targeted at developers and people running their own Zulip servers. These docs are written in -[Commonmark Markdown](http://commonmark.org/) with a small bit of rST. +[Commonmark Markdown](https://commonmark.org/) with a small bit of rST. We've chosen Markdown because it is -[easy to write](http://commonmark.org/help). The source for Zulip's +[easy to write](https://commonmark.org/help/). The source for Zulip's developer documentation is at `docs/` in the Zulip git repository, and they are served in production at [zulip.readthedocs.io](https://zulip.readthedocs.io/en/latest/). diff --git a/docs/git/setup.md b/docs/git/setup.md index fb3d483d1c..632e7c77f9 100644 --- a/docs/git/setup.md +++ b/docs/git/setup.md @@ -58,7 +58,7 @@ And, if none of the above are to your liking, try [one of these][gitbook-guis]. [gitbook-setup]: https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup [gitbook-other-envs-bash]: https://git-scm.com/book/en/v2/Git-in-Other-Environments-Git-in-Bash [gitbook-other-envs-zsh]: https://git-scm.com/book/en/v2/Git-in-Other-Environments-Git-in-Zsh -[gitgui-gitcola]: http://git-cola.github.io/ +[gitgui-gitcola]: https://git-cola.github.io/ [gitgui-gitg]: https://wiki.gnome.org/Apps/Gitg [gitgui-gitk]: https://git-scm.com/docs/gitk [gitgui-gitx]: https://github.com/gitx/gitx/ diff --git a/docs/git/the-git-difference.md b/docs/git/the-git-difference.md index 1565551628..53441e3408 100644 --- a/docs/git/the-git-difference.md +++ b/docs/git/the-git-difference.md @@ -61,4 +61,4 @@ Here are the top things to know: current branch with `git commit`. [gitbook-basics]: https://git-scm.com/book/en/v2/Getting-Started-Git-Basics -[understanding-git]: http://web.mit.edu/nelhage/Public/git-slides-2009.pdf +[understanding-git]: https://web.mit.edu/nelhage/Public/git-slides-2009.pdf diff --git a/docs/overview/architecture-overview.md b/docs/overview/architecture-overview.md index 77be20f8b2..b4fdcfaac6 100644 --- a/docs/overview/architecture-overview.md +++ b/docs/overview/architecture-overview.md @@ -69,7 +69,7 @@ Components Zulip is primarily implemented in the [Django](https://www.djangoproject.com/) Python web framework. We -also make use of [Tornado](http://www.tornadoweb.org) for the +also make use of [Tornado](https://www.tornadoweb.org) for the real-time push system. Django is the main web application server; Tornado runs the diff --git a/docs/production/email.md b/docs/production/email.md index aeb72641e5..ab991c7f36 100644 --- a/docs/production/email.md +++ b/docs/production/email.md @@ -50,7 +50,7 @@ using a "transactional email" service like [Mailgun](https://documentation.mailgun.com/en/latest/quickstart-sending.html#send-via-smtp), [SendGrid](https://sendgrid.com/docs/API_Reference/SMTP_API/integrating_with_the_smtp_api.html), or, for AWS users, -[Amazon SES](http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html). +[Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html). These services are designed to send email from servers, and are by far the easiest way to get outgoing email working reliably (Mailgun has the best documentation). diff --git a/docs/production/password-strength.md b/docs/production/password-strength.md index a5151a3832..508e4d5a22 100644 --- a/docs/production/password-strength.md +++ b/docs/production/password-strength.md @@ -54,6 +54,6 @@ zxcvbn rarely underestimates the strength of a password too severely, and only about 10% of users do worse than this without prompting. [zxcvbn]: https://github.com/dropbox/zxcvbn -[BHOS15]: http://www.cl.cam.ac.uk/~fms27/papers/2015-BonneauHerOorSta-passwords.pdf +[BHOS15]: https://www.cl.cam.ac.uk/~fms27/papers/2015-BonneauHerOorSta-passwords.pdf [zxcvbn-paper]: https://www.usenix.org/system/files/conference/usenixsecurity16/sec16_paper_wheeler.pdf -[Bon12]: http://ieeexplore.ieee.org/document/6234435/ +[Bon12]: https://ieeexplore.ieee.org/document/6234435 diff --git a/docs/production/ssl-certificates.md b/docs/production/ssl-certificates.md index 36f1d73b8d..fad7ef9784 100644 --- a/docs/production/ssl-certificates.md +++ b/docs/production/ssl-certificates.md @@ -23,7 +23,7 @@ browsers, but not others and not the Zulip mobile and desktop apps. The desktop apps support [configuring a custom CA][desktop-certs] to allow validation of certificates generated by an internal CA. -[nginx-chains]: http://nginx.org/en/docs/http/configuring_https_servers.html#chains +[nginx-chains]: https://nginx.org/en/docs/http/configuring_https_servers.html#chains ### Testing @@ -172,7 +172,7 @@ To resolve this issue, update your server to support TLS 1.2, and preferably also TLS 1.3. For nginx, see [the `ssl_protocols` directive][nginx-doc-protocols] in your configuration. -[nginx-doc-protocols]: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols +[nginx-doc-protocols]: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols ### The Android app connects to the server on some devices but not others @@ -197,7 +197,7 @@ control the offered curves with `ssl_ecdh_curve` in the `nginx` configuration on your server. See [nginx docs][nginx-doc-curve] for details. -[nginx-doc-curve]: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ecdh_curve +[nginx-doc-curve]: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ecdh_curve Two signs for diagnosing this issue in contrast to some other root cause: diff --git a/docs/subsystems/dependencies.md b/docs/subsystems/dependencies.md index f76910198e..0161af9cfc 100644 --- a/docs/subsystems/dependencies.md +++ b/docs/subsystems/dependencies.md @@ -330,4 +330,4 @@ usually one needs to think about making changes in 3 places: [yarn]: https://yarnpkg.com/ [npm]: https://npmjs.com/ [iamcal]: https://github.com/iamcal/emoji-data -[pygments]: http://pygments.org/ +[pygments]: https://pygments.org/ diff --git a/docs/subsystems/full-text-search.md b/docs/subsystems/full-text-search.md index bd3dd02caa..362bed8746 100644 --- a/docs/subsystems/full-text-search.md +++ b/docs/subsystems/full-text-search.md @@ -3,7 +3,7 @@ Zulip supports full-text search, which can be combined arbitrarily with Zulip's full suite of narrowing operators. By default, it only supports English text, but there is an experimental -[PGroonga](http://pgroonga.github.io/) integration that provides +[PGroonga](https://pgroonga.github.io/) integration that provides full-text search for all languages. The user interface and feature set for Zulip's full-text search is @@ -13,7 +13,7 @@ app's gear menu. ## The default full-text search implementation Zulip's uses [PostgreSQL's built-in full-text search -feature](http://www.postgresql.org/docs/current/static/textsearch.html), +feature](https://www.postgresql.org/docs/current/textsearch.html), with a custom set of English stop words to improve the quality of the search results. @@ -27,7 +27,7 @@ application server instead. ## An optional full-text search implementation -Zulip now supports using [PGroonga](http://pgroonga.github.io/) for +Zulip now supports using [PGroonga](https://pgroonga.github.io/) for full-text search. PGroonga is a PostgreSQL extension that provides full-text search feature. PostgreSQL's built-in full-text search feature supports only one language at a time (in Zulip's case, diff --git a/docs/subsystems/html-css.md b/docs/subsystems/html-css.md index c154780d53..272e1a5bc9 100644 --- a/docs/subsystems/html-css.md +++ b/docs/subsystems/html-css.md @@ -3,7 +3,7 @@ ## Zulip CSS organization The Zulip application's CSS can be found in the `static/styles/` -directory. Zulip uses [Bootstrap](http://getbootstrap.com/) as its +directory. Zulip uses [Bootstrap](https://getbootstrap.com/) as its main third-party CSS library. Zulip uses SCSS for its CSS files. There are two high-level sections diff --git a/docs/subsystems/markdown.md b/docs/subsystems/markdown.md index ccb5ca3eb4..48ad64ee2d 100644 --- a/docs/subsystems/markdown.md +++ b/docs/subsystems/markdown.md @@ -236,14 +236,14 @@ be non-standard. things like `t.co/foo`. * Force links to be absolute. `[foo](google.com)` will go to - `http://google.com`, and not `http://zulip.com/google.com` which + `http://google.com`, and not `https://zulip.com/google.com` which is the default behavior. * Set `target="_blank"` and `title=`(the url) on every link tag so clicking always opens a new window. * Disable link-by-reference syntax, - `[foo][bar]` ... `[bar]: http://google.com`. + `[foo][bar]` ... `[bar]: https://google.com`. * Enable linking to other streams using `#**streamName**`. diff --git a/docs/testing/linters.md b/docs/testing/linters.md index 954f7ff0d8..2eee1e9d57 100644 --- a/docs/testing/linters.md +++ b/docs/testing/linters.md @@ -17,7 +17,7 @@ prevent common coding errors. We borrow some open source tools for much of our linting, and the links below will direct you to the official documentation for these projects. -- [eslint](http://eslint.org) +- [eslint](https://eslint.org) - [mypy](http://mypy-lang.org/) - [puppet](https://puppet.com/) (puppet provides its own mechanism for validating manifests) diff --git a/docs/testing/mypy.md b/docs/testing/mypy.md index 8bf85d7a95..be906daca3 100644 --- a/docs/testing/mypy.md +++ b/docs/testing/mypy.md @@ -17,10 +17,10 @@ def get_user(email: str, realm: Realm) -> UserProfile: You can learn more about it at: * The - [mypy cheat sheet for Python 3](http://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html) + [mypy cheat sheet for Python 3](https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html) is the best resource for quickly understanding how to write the PEP 484 type annotations used by mypy correctly. The - [Python 2 cheat sheet](http://mypy.readthedocs.io/en/latest/cheat_sheet.html) + [Python 2 cheat sheet](https://mypy.readthedocs.io/en/latest/cheat_sheet.html) is useful for understanding the type comment syntax needed for our few modules that need to support both Python 2 and 3. diff --git a/docs/testing/testing-with-casper.md b/docs/testing/testing-with-casper.md index 223c55bd6d..cdad57603c 100644 --- a/docs/testing/testing-with-casper.md +++ b/docs/testing/testing-with-casper.md @@ -38,7 +38,7 @@ trying to use the Casper debugging tools are: ### Print debugging If you need to use print debugging in casper, you can do using -`casper.log`; see for +`casper.log`; see for details. You can also enable casper's verbose logging mode using the `--verbose` flag. This @@ -111,9 +111,9 @@ for writing Casper tests in addition to the debugging notes below: will ensure that the UI has finished updating from the previous step before Casper attempts to next step. The various wait functions supported in Casper are documented in the Casper here: - + and the various assert statements available are documented here: - + - The `casper.wait` style functions (`waitWhileVisible`, `waitUntilVisible`, etc.) cannot be chained together in certain @@ -183,4 +183,4 @@ for writing Casper tests in addition to the debugging notes below: which can lead to confusing failures where the new code you write in between two `casper.then` blocks actually runs before either of them. See this for more details about how Casper works: - + diff --git a/docs/translating/german.md b/docs/translating/german.md index 9ab35eb114..b51fcc3079 100644 --- a/docs/translating/german.md +++ b/docs/translating/german.md @@ -183,7 +183,7 @@ For users to be able to join to an "invite-only" stream, they must have been invited by some user in this stream. This type of stream is equivalent to Facebook's "closed" groups, which in turn translates to "geschlossen" in German. This translation seems to be appropriate, for example [Linguee]( -http://www.linguee.de/englisch-deutsch/uebersetzung/invite-only.html) +https://www.linguee.de/englisch-deutsch/uebersetzung/invite-only.html) search returns only paraphrases of this term. *"Geschlossener Stream" (Transifex), "Geschlossene Gruppe" (Facebook), @@ -227,7 +227,7 @@ This one is tricky, since one might initially think of "Alarmwort" as a proper translation. "Alarm", however, has a negative connotation, people link it to unpleasant events. "Signal", on the other hand, is neutral, just like "alert word". Nevertheless, [Linguee]( -http://www.linguee.de/deutsch-englisch/search?source=auto&query=alert+word) +https://www.linguee.de/deutsch-englisch/search?source=auto&query=alert+word) shows that some websites misuse "Alarm" for the translation. *"Signalwort" (Transifex), "Wort-Alarm" (Linguee)* diff --git a/docs/translating/spanish.md b/docs/translating/spanish.md index b664b49ead..fe3a0eab8a 100644 --- a/docs/translating/spanish.md +++ b/docs/translating/spanish.md @@ -24,7 +24,7 @@ Use informal Spanish for translation: to decide what wouldn't sound awkward / rude in Spanish. * Latest RAE rule ("solo" should - [**never**](http://www.rae.es/consultas/el-adverbio-solo-y-los-pronombres-demostrativos-sin-tilde) + [**never**](https://www.rae.es/consultas/el-adverbio-solo-y-los-pronombres-demostrativos-sin-tilde) have accent, even when it can be replaced with "solamente"). Some terms are very tricky to translate, so be sure to communicate diff --git a/docs/tutorials/life-of-a-request.md b/docs/tutorials/life-of-a-request.md index af2bc9e16f..e9d3fb8666 100644 --- a/docs/tutorials/life-of-a-request.md +++ b/docs/tutorials/life-of-a-request.md @@ -7,7 +7,7 @@ Zulip codebase, and dive deep into how each part works. We will use as our example the creation of users through the API, but we will also highlight how alternative requests are handled. -## A request is sent to the server, and handled by [Nginx](http://nginx.org/en/docs/) +## A request is sent to the server, and handled by [Nginx](https://nginx.org/en/docs/) When Zulip is deployed in production, all requests go through nginx. For the most part we don't need to know how this works, except for when @@ -84,7 +84,7 @@ For example, the `/features` page (preview Note the `zh-hans` prefix--that url pattern gets added by `i18n_patterns`. -## API endpoints use [REST](http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm) +## API endpoints use [REST](https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm) Our example is a REST API endpoint. It's a PUT to `/users`. @@ -114,7 +114,7 @@ idempotent, and we like to write API endpoints in an idempotent fashion, as much as possible. This [cookbook](http://restcookbook.com/) and -[tutorial](http://www.restapitutorial.com/) can be helpful if you are +[tutorial](https://www.restapitutorial.com/) can be helpful if you are new to REST web applications. ### PUT is only for creating new things diff --git a/docs/tutorials/reading-list.md b/docs/tutorials/reading-list.md index 57f6471e34..0d8df1cee0 100644 --- a/docs/tutorials/reading-list.md +++ b/docs/tutorials/reading-list.md @@ -28,7 +28,7 @@ Some titles have been shortened for organizational purposes. *Blog* - [Idle Words talks transcripts][] -[Idle Words talks transcripts]: http://idlewords.com/talks +[Idle Words talks transcripts]: https://idlewords.com/talks *Tutorial* - [HTTP Can Do That?!, by Sumana Harihareswara (PyCon 2016)][] @@ -60,15 +60,15 @@ Some titles have been shortened for organizational purposes. *Article* - [Effective Learning Strategies for Programmers][] -[Effective Learning Strategies for Programmers]: http://akaptur.com/blog/2015/10/10/effective-learning-strategies-for-programmers/ +[Effective Learning Strategies for Programmers]: https://akaptur.com/blog/2015/10/10/effective-learning-strategies-for-programmers/ *Article* - [Readme Driven Development][] -[Readme Driven Development]: http://tom.preston-werner.com/2010/08/23/readme-driven-development.html +[Readme Driven Development]: https://tom.preston-werner.com/2010/08/23/readme-driven-development.html *Article* - [Systematic Debugging][] -[Systematic Debugging]: http://akaptur.com/blog/2013/07/24/systematic-debugging +[Systematic Debugging]: https://akaptur.com/blog/2013/07/24/systematic-debugging *Paper* - [Floating-Point Arithmetic][] @@ -86,11 +86,11 @@ Some titles have been shortened for organizational purposes. *Video* - [Build & break a Python sandbox, by Jessica McKellar (PyCon 2014)][] -[Build & break a Python sandbox, by Jessica McKellar (PyCon 2014)]: http://pyvideo.org/pycon-us-2014/building-and-breaking-a-python-sandbox.html +[Build & break a Python sandbox, by Jessica McKellar (PyCon 2014)]: https://pyvideo.org/pycon-us-2014/building-and-breaking-a-python-sandbox.html *Video* - [Cache me if you can, by Guillaume Ardaud (PyCon 2014)][] -[Cache me if you can, by Guillaume Ardaud (PyCon 2014)]: http://pyvideo.org/pycon-us-2014/cache-me-if-you-can-memcached-caching-patterns.html +[Cache me if you can, by Guillaume Ardaud (PyCon 2014)]: https://pyvideo.org/pycon-us-2014/cache-me-if-you-can-memcached-caching-patterns.html *Video* - [Loop like a native, by Ned Batchelder (PyCon 2013)][] @@ -106,15 +106,15 @@ Some titles have been shortened for organizational purposes. *Video* - [The Mighty Dictionary, by Brandon Rhodes (PyCon 2010)][] -[The Mighty Dictionary, by Brandon Rhodes (PyCon 2010)]: http://pyvideo.org/pycon-us-2010/the-mighty-dictionary-55.html +[The Mighty Dictionary, by Brandon Rhodes (PyCon 2010)]: https://pyvideo.org/pycon-us-2010/the-mighty-dictionary-55.html *Article* - [Static types in Python, oh my(py)!][] -[Static types in Python, oh my(py)!]: http://blog.zulip.org/2016/10/13/static-types-in-python-oh-mypy +[Static types in Python, oh my(py)!]: https://blog.zulip.org/2016/10/13/static-types-in-python-oh-mypy *Guide* - [The Hitchhiker’s Guide to Python!][] -[The Hitchhiker’s Guide to Python!]: http://docs.python-guide.org/en/latest +[The Hitchhiker’s Guide to Python!]: https://docs.python-guide.org/ ## Java/Android @@ -124,7 +124,7 @@ Some titles have been shortened for organizational purposes. *Blog* - [Java Tutorials for Beginners][] -[Java Tutorials for Beginners]: http://www.geeksforgeeks.org/java/ +[Java Tutorials for Beginners]: https://www.geeksforgeeks.org/java/ ## JavaScript/ECMAScript @@ -138,7 +138,7 @@ Some titles have been shortened for organizational purposes. *Slides* - [TypeScript vs. CoffeeScript vs. ES6][] -[TypeScript vs. CoffeeScript vs. ES6]: http://www.slideshare.net/NeilGreen1/type-script-vs-coffeescript-vs-es6 +[TypeScript vs. CoffeeScript vs. ES6]: https://www.slideshare.net/NeilGreen1/type-script-vs-coffeescript-vs-es6 ## TypeScript @@ -164,7 +164,7 @@ You may want to take a look first at our [Git and GitHub guide][]. *Blog* - [GeeksforGeeks][] -[GeeksforGeeks]: http://www.geeksforgeeks.org +[GeeksforGeeks]: https://www.geeksforgeeks.org *Book* [Introduction to Algorithms][] (*Not free!*) @@ -172,7 +172,7 @@ You may want to take a look first at our [Git and GitHub guide][]. *Blog* - [Setosa data visualization and visual explanations][] -[Setosa data visualization and visual explanations]: http://setosa.io +[Setosa data visualization and visual explanations]: https://setosa.io *Course* - [Algorithms, Part I][] @@ -190,7 +190,7 @@ You may want to take a look first at our [Git and GitHub guide][]. *Book* - [Producing Open Source Software][] -[Producing Open Source Software]: http://producingoss.com/en/ +[Producing Open Source Software]: https://producingoss.com/en/ *Article* - [Advice on Starting And Running A New Open Source Project][] @@ -220,7 +220,7 @@ You may want to take a look first at our [Git and GitHub guide][]. [CodeForces][] -[CodeForces]: http://codeforces.com +[CodeForces]: https://codeforces.com [Free Code Camp][] @@ -238,7 +238,7 @@ You may want to take a look first at our [Git and GitHub guide][]. [MIT OpenCourseWare][] -[MIT OpenCourseWare]: http://ocw.mit.edu +[MIT OpenCourseWare]: https://ocw.mit.edu [Udacity][] diff --git a/docs/tutorials/screenshot-and-gif-software.md b/docs/tutorials/screenshot-and-gif-software.md index 3edeafe58f..24bfa36da9 100644 --- a/docs/tutorials/screenshot-and-gif-software.md +++ b/docs/tutorials/screenshot-and-gif-software.md @@ -45,7 +45,7 @@ to checkout your branch. - [Gyazo GIF](https://gyazo.com/en) ### Windows -- [ScreenToGif](http://www.screentogif.com) +- [ScreenToGif](https://www.screentogif.com) - [Gyazo GIF](https://gyazo.com/en) - [Monosnap](https://www.monosnap.com/welcome) diff --git a/docs/tutorials/shell-tips.md b/docs/tutorials/shell-tips.md index 46e5d0b19d..1b85ffff74 100644 --- a/docs/tutorials/shell-tips.md +++ b/docs/tutorials/shell-tips.md @@ -27,7 +27,7 @@ at `(venv)john@laptop:~$`: - `(venv)` informs the user that they're currently in a virtual environment (more on [Python virtual - environments](http://docs.python-guide.org/en/latest/dev/virtualenvs/)) + environments](https://docs.python-guide.org/dev/virtualenvs/)) - the `john` before `@` is the username - the `laptop` is the host machine name - the `~` after the colon informs the user they're currently in the home @@ -316,7 +316,7 @@ cases, `#!/bin/bash` or `#!/bin/sh` is used. Frequently, you may find commands that you don't understand, or don't know what they do. You can use `man ` to see the **man**ual page for that specific command. Also, you may find useful -[explainshell](http://explainshell.com/), a webpage that explains what most +[explainshell](https://explainshell.com/), a webpage that explains what most commands do, part by part. Finally, [docopt](http://docopt.org/) can help you understand the syntax used by command-line tools to describe their interface, and make sense of strings like diff --git a/frontend_tests/casper_lib/common.js b/frontend_tests/casper_lib/common.js index a1be7152a6..f1b171d3bf 100644 --- a/frontend_tests/casper_lib/common.js +++ b/frontend_tests/casper_lib/common.js @@ -35,7 +35,7 @@ exports.initialize_casper = function () { // casper.start has been called. // Fail if we get a JavaScript error in the page's context. - // Based on the example at http://phantomjs.org/release-1.5.html + // Based on the example at https://phantomjs.org/release-1.5.html // // casper.on('error') doesn't work (it never gets called) so we // set this at the PhantomJS level. diff --git a/frontend_tests/casper_tests/02-site.js b/frontend_tests/casper_tests/02-site.js index 7da16cd3f7..f64563e536 100644 --- a/frontend_tests/casper_tests/02-site.js +++ b/frontend_tests/casper_tests/02-site.js @@ -6,7 +6,7 @@ */ // Provides a few utility functions. -// See https://web.archive.org/web/20200110122733if_/http://docs.casperjs.org/en/latest/modules/utils.html +// See https://web.archive.org/web/20200110122733if_/https://docs.casperjs.org/en/latest/modules/utils.html // For example, utils.dump() prints an Object with nice formatting. var common = require('../casper_lib/common.js'); diff --git a/puppet/zulip_ops/files/zulip-ec2-configure-interfaces b/puppet/zulip_ops/files/zulip-ec2-configure-interfaces index ca6d7fc75b..f618f5affd 100755 --- a/puppet/zulip_ops/files/zulip-ec2-configure-interfaces +++ b/puppet/zulip_ops/files/zulip-ec2-configure-interfaces @@ -120,7 +120,7 @@ for device in macs.values(): assert(gateway is not None) # Horrible hack to route return packets on the correct interface - # See http://unix.stackexchange.com/a/4421/933 + # See https://unix.stackexchange.com/a/4421/933 subprocess.check_call( ['/sbin/ip', 'rule', 'add', 'fwmark', dev_num, 'table', dev_num]) subprocess.check_call( diff --git a/static/js/colorspace.js b/static/js/colorspace.js index b48cdb59a3..5c5738e647 100644 --- a/static/js/colorspace.js +++ b/static/js/colorspace.js @@ -1,7 +1,7 @@ // Convert an sRGB value in [0, 255] to a linear intensity // value in [0, 1]. // -// http://en.wikipedia.org/wiki/SRGB#The_reverse_transformation +// https://en.wikipedia.org/wiki/SRGB#The_reverse_transformation exports.sRGB_to_linear = function (v) { v = v / 255.0; if (v <= 0.04045) { @@ -19,7 +19,7 @@ exports.rgb_luminance = function (channel) { // Convert luminance (photometric, CIE Y) // to lightness (perceptual, CIE L*) // -// http://en.wikipedia.org/wiki/Lab_color_space#Forward_transformation +// https://en.wikipedia.org/wiki/Lab_color_space#Forward_transformation exports.luminance_to_lightness = function (luminance) { let v; if (luminance <= 216 / 24389) { diff --git a/static/js/composebox_typeahead.js b/static/js/composebox_typeahead.js index 531b5473fd..1c689dfaf8 100644 --- a/static/js/composebox_typeahead.js +++ b/static/js/composebox_typeahead.js @@ -242,7 +242,7 @@ function handle_keyup(e) { } } -// http://stackoverflow.com/questions/3380458/looking-for-a-better-workaround-to-chrome-select-on-focus-bug +// https://stackoverflow.com/questions/3380458/looking-for-a-better-workaround-to-chrome-select-on-focus-bug function select_on_focus(field_id) { // A select event appears to trigger a focus event under certain // conditions in Chrome so we need to protect against infinite diff --git a/static/js/rtl.js b/static/js/rtl.js index 7989028694..03bb42901f 100644 --- a/static/js/rtl.js +++ b/static/js/rtl.js @@ -1,15 +1,15 @@ const util = require("./util"); -// How to determine the direction of a paragraph (P1-P3): http://www.unicode.org/reports/tr9/tr9-35.html#The_Paragraph_Level -// Embedding level: http://www.unicode.org/reports/tr9/tr9-35.html#BD2 -// How to find the matching PDI for an isolation initiator: http://www.unicode.org/reports/tr9/tr9-35.html#BD9 -// Bidirectional character types: http://www.unicode.org/reports/tr9/tr9-35.html#Table_Bidirectional_Character_Types +// How to determine the direction of a paragraph (P1-P3): https://www.unicode.org/reports/tr9/tr9-35.html#The_Paragraph_Level +// Embedding level: https://www.unicode.org/reports/tr9/tr9-35.html#BD2 +// How to find the matching PDI for an isolation initiator: https://www.unicode.org/reports/tr9/tr9-35.html#BD9 +// Bidirectional character types: https://www.unicode.org/reports/tr9/tr9-35.html#Table_Bidirectional_Character_Types -// Ranges data is extracted from: http://www.unicode.org/Public/9.0.0/ucd/extracted/DerivedBidiClass.txt +// Ranges data is extracted from: https://www.unicode.org/Public/9.0.0/ucd/extracted/DerivedBidiClass.txt // References: -// http://www.unicode.org/reports/tr44/tr44-18.html#UnicodeData.txt -// http://www.unicode.org/reports/tr44/tr44-18.html#Extracted_Properties_Table -// http://www.unicode.org/Public/9.0.0/ucd/UnicodeData.txt -// http://www.unicode.org/Public/9.0.0/ucd/extracted/DerivedBidiClass.txt +// https://www.unicode.org/reports/tr44/tr44-18.html#UnicodeData.txt +// https://www.unicode.org/reports/tr44/tr44-18.html#Extracted_Properties_Table +// https://www.unicode.org/Public/9.0.0/ucd/UnicodeData.txt +// https://www.unicode.org/Public/9.0.0/ucd/extracted/DerivedBidiClass.txt /** diff --git a/static/js/ui_util.js b/static/js/ui_util.js index 408297c63c..8c9ba81b0f 100644 --- a/static/js/ui_util.js +++ b/static/js/ui_util.js @@ -5,7 +5,7 @@ exports.change_tab_to = function (tabname) { $('#gear-menu a[href="' + tabname + '"]').tab('show'); }; -// http://stackoverflow.com/questions/4233265/contenteditable-set-caret-at-the-end-of-the-text-cross-browser +// https://stackoverflow.com/questions/4233265/contenteditable-set-caret-at-the-end-of-the-text-cross-browser exports.place_caret_at_end = function (el) { el.focus(); diff --git a/static/styles/app_components.scss b/static/styles/app_components.scss index f34e81a8a9..3aac383ff1 100644 --- a/static/styles/app_components.scss +++ b/static/styles/app_components.scss @@ -199,7 +199,7 @@ text-overflow: ellipsis; white-space: nowrap; overflow: hidden; - vertical-align: bottom; /* See http://stackoverflow.com/a/43266155/ */ + vertical-align: bottom; /* See https://stackoverflow.com/a/43266155/ */ padding: 3px 10px; background-color: hsl(0, 0%, 100%); cursor: pointer; diff --git a/static/templates/actions_popover_content.hbs b/static/templates/actions_popover_content.hbs index 3f9ea408e0..104c72331f 100644 --- a/static/templates/actions_popover_content.hbs +++ b/static/templates/actions_popover_content.hbs @@ -3,7 +3,7 @@ {{#if should_display_edit_and_view_source}}
  • - {{! Can consider http://fontawesome.io/icon/file-code-o/ when we upgrade to font awesome 4.}} + {{! Can consider https://fontawesome.com/v4.7.0/icon/file-code-o when we upgrade to font awesome 4.}} {{editability_menu_item}}
  • diff --git a/templates/zerver/app/markdown_help.html b/templates/zerver/app/markdown_help.html index 463b787543..44fc56fc03 100644 --- a/templates/zerver/app/markdown_help.html +++ b/templates/zerver/app/markdown_help.html @@ -61,7 +61,7 @@ - :heart: (and many others, from the Noto Project) + :heart: (and many others, from the Noto Project) :heart: @@ -113,7 +113,7 @@ def zulip(): {% trans %}To add syntax highlighting to a multi-line code block, - add the language's first Pygments short name + add the language's first Pygments short name after the first set of back-ticks. You can also make a code block by indenting each line with 4 spaces.{% endtrans %} diff --git a/templates/zerver/apps.html b/templates/zerver/apps.html index e6e15dfe7b..7b2635ba0d 100644 --- a/templates/zerver/apps.html +++ b/templates/zerver/apps.html @@ -60,7 +60,7 @@
    Zulip also works great in pinned browser tabs and multi-protocol desktop chat apps - like Rambox + like Rambox and Franz.
    diff --git a/templates/zerver/help/format-your-message-using-markdown.md b/templates/zerver/help/format-your-message-using-markdown.md index a3ec9a6be6..8d32b4e52d 100644 --- a/templates/zerver/help/format-your-message-using-markdown.md +++ b/templates/zerver/help/format-your-message-using-markdown.md @@ -108,7 +108,7 @@ You can also use `~~~` to start codeblocks, or just indent the code 4 or more sp Zulip supports syntax highlighting for hundreds of languages, and a typeahead will pop up when you start typing after the ` ``` `. If you can't -find your language, search for it [here](http://pygments.org/docs/lexers) +find your language, search for it [here](https://pygments.org/docs/lexers/) and try the **short names** listed for the lexers for your language. ## Latex diff --git a/templates/zerver/help/zulip-in-a-terminal.md b/templates/zerver/help/zulip-in-a-terminal.md index 70fecda669..622b24c320 100644 --- a/templates/zerver/help/zulip-in-a-terminal.md +++ b/templates/zerver/help/zulip-in-a-terminal.md @@ -4,7 +4,7 @@ At present, there are a few alpha-quality implementations of a terminal client for Zulip: * [Zulip Terminal](https://github.com/zulip/zulip-terminal) provides a -terminal interface for Zulip using [Urwid](https://urwid.org). It is +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! diff --git a/templates/zerver/integrations/capistrano.md b/templates/zerver/integrations/capistrano.md index 295cb1c076..d5e467074f 100644 --- a/templates/zerver/integrations/capistrano.md +++ b/templates/zerver/integrations/capistrano.md @@ -34,7 +34,7 @@ creating that file. at a different time. See [Capistrano's Before/After Hooks page][1] for more information! -[1]: http://capistranorb.com/documentation/getting-started/before-after/ +[1]: https://capistranorb.com/documentation/getting-started/before-after/ {!congrats.md!} diff --git a/templates/zerver/integrations/errbot.md b/templates/zerver/integrations/errbot.md index 50de671fba..01f2a49b51 100644 --- a/templates/zerver/integrations/errbot.md +++ b/templates/zerver/integrations/errbot.md @@ -1,6 +1,6 @@ Run your favorite chatbot in Zulip! -0. [Install errbot](http://errbot.io/en/latest/user_guide/setup.html) +0. [Install errbot](https://errbot.readthedocs.io/en/latest/user_guide/setup.html) and follow to instructions to setup a `config.py`. 0. Check our our [Errbot integration package for Zulip](https://github.com/zulip/errbot-backend-zulip) @@ -37,7 +37,7 @@ Run your favorite chatbot in Zulip! Sections you need to edit are marked with `<>`. -7. [Start ErrBot](http://errbot.io/en/latest/user_guide/setup.html#starting-the-daemon). +7. [Start ErrBot](https://errbot.readthedocs.io/en/latest/user_guide/setup.html#starting-the-daemon). {!congrats.md!} diff --git a/templates/zerver/integrations/mercurial.md b/templates/zerver/integrations/mercurial.md index e0831df80b..4dfe996fd3 100644 --- a/templates/zerver/integrations/mercurial.md +++ b/templates/zerver/integrations/mercurial.md @@ -52,7 +52,7 @@ notifications: web_url = "http://hg.example.com:8000/" site = {{ api_url }} -[1]: http://mercurial.selenic.com/wiki/QuickStart#Network_support +[1]: https://www.mercurial-scm.org/wiki/QuickStart#Network_support #### Branch whitelists and blacklists diff --git a/templates/zerver/integrations/nagios.md b/templates/zerver/integrations/nagios.md index 9d918357b7..b872492643 100644 --- a/templates/zerver/integrations/nagios.md +++ b/templates/zerver/integrations/nagios.md @@ -52,7 +52,7 @@ using the `Send custom service notification` command in the `Service Commands` section of any individual service’s page on your Nagios instance. -[1]: http://nagios.sourceforge.net/docs/3_0/extcommands.html +[1]: https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/extcommands.html **Troubleshooting** diff --git a/templates/zerver/integrations/perforce.md b/templates/zerver/integrations/perforce.md index 78fb429d9a..816efd6502 100644 --- a/templates/zerver/integrations/perforce.md +++ b/templates/zerver/integrations/perforce.md @@ -2,7 +2,7 @@ Zulip supports integration with Perforce as a [trigger][1] that fires once a changelist is submitted and committed. To do this: -[1]: http://www.perforce.com/perforce/doc.current/manuals/p4sag/chapter.scripting.html +[1]: https://www.perforce.com/manuals/p4sag/Content/P4SAG/chapter.scripting.html {!download-python-bindings.md!} @@ -21,7 +21,7 @@ something like the following: notify_zulip change-commit //depot/... "/usr/local/share/zulip/integrations/perforce/zulip_change-commit.py %change% %changeroot%" -[2]: http://www.perforce.com/perforce/doc.current/manuals/p4sag/chapter.scripting.html#d0e14583 +[2]: https://www.perforce.com/manuals/p4sag/Content/P4SAG/chapter.scripting.html#d0e14583 By default, this hook will send to streams of the form `depot_subdirectory-commits`. So, a changelist that modifies diff --git a/templates/zerver/integrations/redmine.md b/templates/zerver/integrations/redmine.md index 1605a75ad6..0211373b83 100644 --- a/templates/zerver/integrations/redmine.md +++ b/templates/zerver/integrations/redmine.md @@ -55,5 +55,5 @@ project's **Settings** page, and select the **Zulip** tab. ![](/static/images/integrations/redmine/001.png) -[1]: http://www.redmine.org/projects/redmine/wiki/Plugins +[1]: https://www.redmine.org/projects/redmine/wiki/Plugins [2]: https://github.com/zulip/zulip-redmine-plugin diff --git a/tools/linter_lib/custom_check.py b/tools/linter_lib/custom_check.py index 86123a00e2..001b9b0fbf 100644 --- a/tools/linter_lib/custom_check.py +++ b/tools/linter_lib/custom_check.py @@ -543,7 +543,7 @@ css_rules = RuleList( 'description': "Missing whitespace before '{' in CSS.", 'good_lines': ["input {", "body {"], 'bad_lines': ["input{", "body{"]}, - {'pattern': 'https://', + {'pattern': r'^(?:(?!/\*).)*https?://', 'description': "Zulip CSS should have no dependencies on external resources", 'good_lines': ['background: url(/static/images/landing-page/pycon.jpg);'], 'bad_lines': ['background: url(https://example.com/image.png);']}, diff --git a/tools/setup/emoji/emoji_names.py b/tools/setup/emoji/emoji_names.py index b12c6ffb64..313d5ea0e3 100644 --- a/tools/setup/emoji/emoji_names.py +++ b/tools/setup/emoji/emoji_names.py @@ -113,7 +113,7 @@ EMOJI_NAME_MAPS = { '1f925': {'canonical_name': 'lying', 'aliases': []}, # seems like best emoji for nervous/anxious '1f62c': {'canonical_name': 'grimacing', 'aliases': ['nervous', 'anxious']}, - # zip_it from http://mashable.com/2015/10/23/ios-9-1-emoji-guide, + # zip_it from https://mashable.com/2015/10/23/ios-9-1-emoji-guide/, # lips_sealed from https://emojipedia.org/zipper-mouth-face/, rest seemed # like reasonable additions '1f910': {'canonical_name': 'silence', 'aliases': ['quiet', 'hush', 'zip_it', 'lips_are_sealed']}, @@ -122,7 +122,7 @@ EMOJI_NAME_MAPS = { '1f927': {'canonical_name': 'sneezing', 'aliases': []}, # cant_talk from https://beebom.com/emoji-meanings/ '1f637': {'canonical_name': 'cant_talk', 'aliases': ['mask']}, - # flu from http://mashable.com/2015/10/23/ios-9-1-emoji-guide, sick from + # flu from https://mashable.com/2015/10/23/ios-9-1-emoji-guide/, sick from # https://emojipedia.org/face-with-thermometer/, face_with_thermometer so # it shows up in typeahead (thermometer taken by Objects/82) '1f912': {'canonical_name': 'sick', 'aliases': ['flu', 'face_with_thermometer', 'ill', 'fever']}, @@ -205,7 +205,7 @@ EMOJI_NAME_MAPS = { # seems like best emoji for high_five, raised_hand_with_fingers_splayed # doesn't seem that useful '1f590': {'canonical_name': 'high_five', 'aliases': ['palm']}, - # http://mashable.com/2015/10/23/ios-9-1-emoji-guide + # https://mashable.com/2015/10/23/ios-9-1-emoji-guide/ '1f596': {'canonical_name': 'spock', 'aliases': ['live_long_and_prosper']}, # People/119 is a better 'hi', but 'hi' will never show up in the typeahead # due to 'high_five' @@ -259,7 +259,7 @@ EMOJI_NAME_MAPS = { '1f477': {'canonical_name': 'construction_worker', 'aliases': []}, '1f482': {'canonical_name': 'guard', 'aliases': []}, # detective from gemoji, sneaky from - # http://mashable.com/2015/10/23/ios-9-1-emoji-guide/, agent seems a + # https://mashable.com/2015/10/23/ios-9-1-emoji-guide/, agent seems a # reasonable addition '1f575': {'canonical_name': 'detective', 'aliases': ['spy', 'sleuth', 'agent', 'sneaky']}, # mrs_claus from https://emojipedia.org/mother-christmas/ @@ -327,7 +327,7 @@ EMOJI_NAME_MAPS = { # king and queen seem like good additions '1f451': {'canonical_name': 'crown', 'aliases': ['queen', 'king']}, # safety and invincibility inspired by - # http://mashable.com/2015/10/23/ios-9-1-emoji-guide. hard_hat and + # https://mashable.com/2015/10/23/ios-9-1-emoji-guide/. hard_hat and # rescue_worker seem like good additions '26d1': {'canonical_name': 'helmet', 'aliases': ['hard_hat', 'rescue_worker', 'safety_first', 'invincible']}, # ignorelongline # backpack from gemoji, dominates satchel on google trends @@ -377,7 +377,7 @@ EMOJI_NAME_MAPS = { '1f426': {'canonical_name': 'bird', 'aliases': []}, '1f424': {'canonical_name': 'chick', 'aliases': ['baby_chick']}, '1f423': {'canonical_name': 'hatching', 'aliases': ['hatching_chick']}, - # http://www.iemoji.com/view/emoji/668/animals-nature/front-facing-baby-chick + # https://www.iemoji.com/view/emoji/668/animals-nature/front-facing-baby-chick '1f425': {'canonical_name': 'new_baby', 'aliases': []}, '1f986': {'canonical_name': 'duck', 'aliases': []}, '1f985': {'canonical_name': 'eagle', 'aliases': []}, @@ -752,7 +752,7 @@ EMOJI_NAME_MAPS = { '1f3c7': {'canonical_name': 'horse_racing', 'aliases': ['horse_riding']}, # at least in the US: this = cyclist, Activity/53 = mountain biker, and # motorcyclist = biker. Mainly from googling around and personal - # experience. E.g. http://grammarist.com/usage/cyclist-biker/ for cyclist + # experience. E.g. https://grammarist.com/usage/cyclist-biker/ for cyclist # and biker, # https://www.theguardian.com/lifeandstyle/2010/oct/24/bike-snobs-guide-cycling-tribes # for mountain biker (I've never heard the term "mountain cyclist", and @@ -914,7 +914,7 @@ EMOJI_NAME_MAPS = { '1f6a6': {'canonical_name': 'traffic_light', 'aliases': ['vertical_traffic_light']}, # see Places/57 '1f6a5': {'canonical_name': 'horizontal_traffic_light', 'aliases': []}, - # road_trip from http://mashable.com/2015/10/23/ios-9-1-emoji-guide + # road_trip from https://mashable.com/2015/10/23/ios-9-1-emoji-guide/ '1f5fa': {'canonical_name': 'map', 'aliases': ['world_map', 'road_trip']}, # rock_carving, statue, and tower seem more general and less culturally # specific, for Places/60, 61, and 63. @@ -1019,7 +1019,7 @@ EMOJI_NAME_MAPS = { # vise seems like a reasonable addition '1f5dc': {'canonical_name': 'compression', 'aliases': ['vise']}, # gold record seems more useful, idea came from - # http://www.11points.com/Web-Tech/11_Emoji_With_Different_Meanings_Than_You_Think + # https://11points.com/11-emoji-different-meanings-think/ '1f4bd': {'canonical_name': 'gold_record', 'aliases': ['minidisc']}, '1f4be': {'canonical_name': 'floppy_disk', 'aliases': []}, '1f4bf': {'canonical_name': 'cd', 'aliases': []}, @@ -1065,7 +1065,7 @@ EMOJI_NAME_MAPS = { '1f56f': {'canonical_name': 'candle', 'aliases': []}, # seems like a reasonable addition '1f5d1': {'canonical_name': 'wastebasket', 'aliases': ['trash_can']}, - # http://www.iemoji.com/view/emoji/1173/objects/oil-drum + # https://www.iemoji.com/view/emoji/1173/objects/oil-drum '1f6e2': {'canonical_name': 'oil_drum', 'aliases': ['commodities']}, # losing money from https://emojipedia.org/money-with-wings/, # easy_come_easy_go seems like a reasonable addition @@ -1095,10 +1095,10 @@ EMOJI_NAME_MAPS = { '26d3': {'canonical_name': 'chains', 'aliases': []}, '1f52b': {'canonical_name': 'gun', 'aliases': []}, '1f4a3': {'canonical_name': 'bomb', 'aliases': []}, - # betrayed from http://www.iemoji.com/view/emoji/786/objects/kitchen-knife + # betrayed from https://www.iemoji.com/view/emoji/786/objects/kitchen-knife '1f52a': {'canonical_name': 'knife', 'aliases': ['hocho', 'betrayed']}, # rated_for_violence from - # http://www.iemoji.com/view/emoji/1085/objects/dagger. hate (also + # https://www.iemoji.com/view/emoji/1085/objects/dagger. hate (also # suggested there) seems too strong, as does just "violence". '1f5e1': {'canonical_name': 'dagger', 'aliases': ['rated_for_violence']}, '2694': {'canonical_name': 'duel', 'aliases': ['swords']}, @@ -1115,7 +1115,7 @@ EMOJI_NAME_MAPS = { '2697': {'canonical_name': 'alchemy', 'aliases': ['alembic']}, '1f52d': {'canonical_name': 'telescope', 'aliases': []}, # science seems useful to have. scientist inspired by - # http://www.iemoji.com/view/emoji/787/objects/microscope + # https://www.iemoji.com/view/emoji/787/objects/microscope '1f52c': {'canonical_name': 'science', 'aliases': ['microscope', 'scientist']}, '1f573': {'canonical_name': 'hole', 'aliases': []}, '1f48a': {'canonical_name': 'medicine', 'aliases': ['pill']}, @@ -1127,11 +1127,11 @@ EMOJI_NAME_MAPS = { '1f6c1': {'canonical_name': 'bathtub', 'aliases': []}, '1f6c0': {'canonical_name': 'bath', 'aliases': []}, # reception and services from - # http://www.iemoji.com/view/emoji/1169/objects/bellhop-bell + # https://www.iemoji.com/view/emoji/1169/objects/bellhop-bell '1f6ce': {'canonical_name': 'bellhop_bell', 'aliases': ['reception', 'services', 'ding']}, '1f511': {'canonical_name': 'key', 'aliases': []}, - # encrypted from http://www.iemoji.com/view/emoji/1081/objects/old-key, - # secret from http://mashable.com/2015/10/23/ios-9-1-emoji-guide + # encrypted from https://www.iemoji.com/view/emoji/1081/objects/old-key, + # secret from https://mashable.com/2015/10/23/ios-9-1-emoji-guide/ '1f5dd': {'canonical_name': 'secret', 'aliases': ['dungeon', 'old_key', 'encrypted', 'clue', 'hint']}, '1f6aa': {'canonical_name': 'door', 'aliases': []}, '1f6cb': {'canonical_name': 'living_room', 'aliases': ['furniture', 'couch_and_lamp', 'lifestyles']}, @@ -1210,7 +1210,7 @@ EMOJI_NAME_MAPS = { '1f516': {'canonical_name': 'bookmark', 'aliases': []}, '1f517': {'canonical_name': 'link', 'aliases': []}, '1f4ce': {'canonical_name': 'paperclip', 'aliases': ['attachment']}, - # office_supplies from http://mashable.com/2015/10/23/ios-9-1-emoji-guide + # office_supplies from https://mashable.com/2015/10/23/ios-9-1-emoji-guide/ '1f587': {'canonical_name': 'office_supplies', 'aliases': ['paperclip_chain', 'linked']}, '1f4d0': {'canonical_name': 'carpenter_square', 'aliases': ['triangular_ruler']}, '1f4cf': {'canonical_name': 'ruler', 'aliases': ['straightedge']}, diff --git a/zerver/lib/bugdown/__init__.py b/zerver/lib/bugdown/__init__.py index cecb182ab6..d8a6800979 100644 --- a/zerver/lib/bugdown/__init__.py +++ b/zerver/lib/bugdown/__init__.py @@ -257,7 +257,7 @@ def list_of_tlds() -> List[str]: # HACK we manually blacklist a few domains blacklist = ['PY\n', "MD\n"] - # tlds-alpha-by-domain.txt comes from http://data.iana.org/TLD/tlds-alpha-by-domain.txt + # tlds-alpha-by-domain.txt comes from https://data.iana.org/TLD/tlds-alpha-by-domain.txt tlds_file = os.path.join(os.path.dirname(__file__), 'tlds-alpha-by-domain.txt') tlds = [tld.lower().strip() for tld in open(tlds_file, 'r') if tld not in blacklist and not tld[0].startswith('#')] @@ -664,7 +664,7 @@ class InlineInterestingLinkProcessor(markdown.treeprocessors.Treeprocessor): if parsed_url.netloc == 'pasteboard.co': return False - # List from http://support.google.com/chromeos/bin/answer.py?hl=en&answer=183093 + # List from https://support.google.com/chromeos/bin/answer.py?hl=en&answer=183093 for ext in [".bmp", ".gif", ".jpg", "jpeg", ".png", ".webp"]: if parsed_url.path.lower().endswith(ext): return True @@ -735,7 +735,7 @@ class InlineInterestingLinkProcessor(markdown.treeprocessors.Treeprocessor): def youtube_id(self, url: str) -> Optional[str]: if not self.markdown.image_preview_enabled: return None - # Youtube video id extraction regular expression from http://pastebin.com/KyKAFv1s + # Youtube video id extraction regular expression from https://pastebin.com/KyKAFv1s # Slightly modified to support URLs of the forms # - youtu.be/ # - youtube.com/playlist?v=&list= diff --git a/zerver/lib/ccache.py b/zerver/lib/ccache.py index 0a419613a1..c3c746dec0 100644 --- a/zerver/lib/ccache.py +++ b/zerver/lib/ccache.py @@ -133,7 +133,7 @@ def der_encode_ticket(tkt: Dict[str, Any]) -> bytes: base64.b64decode(tkt["encPart"]["cipher"]))])])) # Kerberos ccache writing code. Using format documentation from here: -# http://www.gnu.org/software/shishi/manual/html_node/The-Credential-Cache-Binary-File-Format.html +# https://www.gnu.org/software/shishi/manual/html_node/The-Credential-Cache-Binary-File-Format.html def ccache_counted_octet_string(data: bytes) -> bytes: if not isinstance(data, bytes): diff --git a/zerver/lib/debug.py b/zerver/lib/debug.py index 5e1b047555..0639a1c9cb 100644 --- a/zerver/lib/debug.py +++ b/zerver/lib/debug.py @@ -16,7 +16,7 @@ from typing import Optional logger = logging.getLogger('zulip.debug') # Interactive debugging code from -# http://stackoverflow.com/questions/132058/showing-the-stack-trace-from-a-running-python-application +# https://stackoverflow.com/questions/132058/showing-the-stack-trace-from-a-running-python-application # (that link also points to code for an interactive remote debugger # setup, which we might want if we move Tornado to run in a daemon # rather than via screen). diff --git a/zerver/lib/name_restrictions.py b/zerver/lib/name_restrictions.py index 4bbfae7d95..2db6d57ceb 100644 --- a/zerver/lib/name_restrictions.py +++ b/zerver/lib/name_restrictions.py @@ -43,7 +43,7 @@ ZULIP_RESERVED_SUBDOMAINS = frozenset([ # Most of this list was curated from the following sources: # http://wiki.dwscoalition.org/notes/List_of_reserved_subdomains (license: CC-BY-SA 3.0) -# http://stackoverflow.com/questions/11868191/which-saas-subdomains-to-block (license: CC-BY-SA 2.5) +# https://stackoverflow.com/questions/11868191/which-saas-subdomains-to-block (license: CC-BY-SA 2.5) GENERIC_RESERVED_SUBDOMAINS = frozenset([ 'about', 'abuse', 'account', 'ad', 'admanager', 'admin', 'admindashboard', 'administrator', 'adsense', 'adword', 'affiliate', 'alpha', 'anonymous', diff --git a/zerver/lib/push_notifications.py b/zerver/lib/push_notifications.py index 711b34d3c1..bf4d111bfb 100644 --- a/zerver/lib/push_notifications.py +++ b/zerver/lib/push_notifications.py @@ -291,7 +291,7 @@ def send_android_push_notification(devices: List[DeviceToken], data: Dict[str, A # res.canonical will contain results when there are duplicate registrations for the same # device. The "canonical" registration is the latest registration made by the device. - # Ref: http://developer.android.com/google/gcm/adv.html#canonical + # Ref: https://developer.android.com/google/gcm/adv.html#canonical if 'canonical' in res: for reg_id, new_reg_id in res['canonical'].items(): if reg_id == new_reg_id: diff --git a/zerver/lib/rate_limiter.py b/zerver/lib/rate_limiter.py index 662175f71b..1500586ba1 100644 --- a/zerver/lib/rate_limiter.py +++ b/zerver/lib/rate_limiter.py @@ -16,7 +16,7 @@ import redis import time # Implement a rate-limiting scheme inspired by the one described here, but heavily modified -# http://blog.domaintools.com/2013/04/rate-limiting-with-redis/ +# https://www.domaintools.com/resources/blog/rate-limiting-with-redis client = get_redis_client() rules = settings.RATE_LIMITING_RULES # type: Dict[str, List[Tuple[int, int]]] diff --git a/zerver/lib/timeout.py b/zerver/lib/timeout.py index b8f8927a3a..bd244b4770 100644 --- a/zerver/lib/timeout.py +++ b/zerver/lib/timeout.py @@ -7,7 +7,7 @@ import time import ctypes import threading -# Based on http://code.activestate.com/recipes/483752/ +# Based on https://code.activestate.com/recipes/483752/ class TimeoutExpired(Exception): '''Exception raised when a function times out.''' @@ -71,7 +71,7 @@ def timeout(timeout: float, func: Callable[..., ResultT], *args: Any, **kwargs: if thread.is_alive(): # Gamely try to kill the thread, following the dodgy approach from - # http://stackoverflow.com/a/325528/90777 + # https://stackoverflow.com/a/325528/90777 # # We need to retry, because an async exception received while the # thread is in a system call is simply ignored. @@ -84,7 +84,7 @@ def timeout(timeout: float, func: Callable[..., ResultT], *args: Any, **kwargs: if thread.exc_info: # Raise the original stack trace so our error messages are more useful. - # from http://stackoverflow.com/a/4785766/90777 + # from https://stackoverflow.com/a/4785766/90777 six.reraise(thread.exc_info[0], thread.exc_info[1], thread.exc_info[2]) assert thread.result is not None # assured if above did not reraise return thread.result diff --git a/zerver/lib/upload.py b/zerver/lib/upload.py index 750983e61b..537c0f3c9f 100644 --- a/zerver/lib/upload.py +++ b/zerver/lib/upload.py @@ -263,7 +263,7 @@ class ZulipUploadBackend: def get_bucket(conn: S3Connection, bucket_name: str) -> Bucket: # Calling get_bucket() with validate=True can apparently lead # to expensive S3 bills: - # http://www.appneta.com/blog/s3-list-get-bucket-default/ + # https://www.appneta.com/blog/s3-list-get-bucket-default/ # The benefits of validation aren't completely clear to us, and # we want to save on our bills, so we set the validate flag to False. # (We think setting validate to True would cause us to fail faster diff --git a/zerver/management/commands/makemessages.py b/zerver/management/commands/makemessages.py index 6ff654ebaa..41950716fd 100644 --- a/zerver/management/commands/makemessages.py +++ b/zerver/management/commands/makemessages.py @@ -25,7 +25,7 @@ unfortunately isn't extensible, so we can: We are currently doing that last thing. It turns out there we are lucky for once: It's simply a matter of extending two regular expressions. Credit for the approach goes to: -http://stackoverflow.com/questions/2090717 +https://stackoverflow.com/questions/2090717 """ import glob diff --git a/zerver/openapi/zulip-2.0.yaml b/zerver/openapi/zulip-2.0.yaml index ef362a6f77..28c37e71ed 100644 --- a/zerver/openapi/zulip-2.0.yaml +++ b/zerver/openapi/zulip-2.0.yaml @@ -7,7 +7,7 @@ # This file contains the Swagger UI configuration and API definitions # for the Zulip REST API. # -# For details on the Swagger/OpenAPI specification, see http://swagger.io/specification +# For details on the Swagger/OpenAPI specification, see https://swagger.io/specification # # Our own documentation lives at # diff --git a/zerver/openapi/zulip.yaml b/zerver/openapi/zulip.yaml index dc7ed5752e..e5474ac72e 100644 --- a/zerver/openapi/zulip.yaml +++ b/zerver/openapi/zulip.yaml @@ -1,6 +1,6 @@ # This file contains the API definitions for the Zulip REST API. # -# For details on the OpenAPI specification, see http://swagger.io/specification +# For details on the OpenAPI specification, see https://swagger.io/specification # # Our own documentation lives at # diff --git a/zproject/settings.py b/zproject/settings.py index 7f987162f4..22a444915d 100644 --- a/zproject/settings.py +++ b/zproject/settings.py @@ -115,7 +115,7 @@ MANAGERS = ADMINS ######################################################################## # Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name +# https://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. # In a Windows environment this must be set to your system time zone. TIME_ZONE = 'UTC'