mirror of https://github.com/zulip/zulip.git
docs: Convert many http URLs to https.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
This commit is contained in:
parent
586f78cb32
commit
7ff9b22500
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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 <filename>`. 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 <filename>`. 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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
<http://jsonformatter.curiousconcept.com/> to format the JSON
|
||||
<https://jsonformatter.curiousconcept.com/> to format the JSON
|
||||
fixtures. Add the fixture to the `example` subsection of the
|
||||
`responses` section for the endpoint in
|
||||
`zerver/openapi/zulip.yaml`.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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/).
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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**`.
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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 <https://web.archive.org/web/20200108115113if_/http://docs.casperjs.org/en/latest/logging.html> for
|
||||
`casper.log`; see <https://web.archive.org/web/20200108115113if_/https://docs.casperjs.org/en/latest/logging.html> 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:
|
||||
<https://web.archive.org/web/20200108100925if_/http://docs.casperjs.org/en/latest/modules/casper.html#waitforselector>
|
||||
<https://web.archive.org/web/20200108100925if_/https://docs.casperjs.org/en/latest/modules/casper.html#waitforselector>
|
||||
and the various assert statements available are documented here:
|
||||
<https://web.archive.org/web/20190814204845if_/http://docs.casperjs.org/en/latest/modules/tester.html#the-tester-prototype>
|
||||
<https://web.archive.org/web/20190814204845if_/https://docs.casperjs.org/en/latest/modules/tester.html#the-tester-prototype>
|
||||
|
||||
- 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:
|
||||
<https://web.archive.org/web/20200107035425if_/http://docs.casperjs.org/en/latest/faq.html#how-does-then-and-the-step-stack-work>
|
||||
<https://web.archive.org/web/20200107035425if_/https://docs.casperjs.org/en/latest/faq.html#how-does-then-and-the-step-stack-work>
|
||||
|
|
|
@ -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)*
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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][]
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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 <command>` 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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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');
|
||||
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{{#if should_display_edit_and_view_source}}
|
||||
<li>
|
||||
<a href="#" class="popover_edit_message" data-message-id="{{message_id}}">
|
||||
{{! 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.}}
|
||||
<i class="{{#if use_edit_icon}}fa fa-pencil{{else}}fa fa-file-text-o{{/if}}" aria-hidden="true"></i> {{editability_menu_item}}
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>:heart: (and <a href="http://www.emoji-cheat-sheet.com/" target="_blank">many others</a>, from the <a href="https://code.google.com/p/noto/" target="_blank">Noto Project</a>)</td>
|
||||
<td>:heart: (and <a href="https://www.webfx.com/tools/emoji-cheat-sheet/" target="_blank">many others</a>, from the <a href="https://code.google.com/p/noto/" target="_blank">Noto Project</a>)</td>
|
||||
<td class="rendered_markdown"><img alt=":heart:" class="emoji" src="/static/generated/emoji/images/emoji/heart.png" title=":heart:" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -113,7 +113,7 @@ def zulip():
|
|||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">{% trans %}To add syntax highlighting to a multi-line code block,
|
||||
add the language's <b>first</b> <a target="_blank" href="http://pygments.org/docs/lexers/">Pygments short name</a>
|
||||
add the language's <b>first</b> <a target="_blank" href="https://pygments.org/docs/lexers/">Pygments short name</a>
|
||||
after the first set of back-ticks.
|
||||
You can also make a code block by indenting each line with 4 spaces.{% endtrans %}</td>
|
||||
</tr>
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<div id="third-party-apps">
|
||||
Zulip also works great in pinned browser tabs and
|
||||
multi-protocol desktop chat apps
|
||||
like <a href="http://rambox.pro">Rambox</a>
|
||||
like <a href="https://rambox.pro">Rambox</a>
|
||||
and <a href="https://meetfranz.com">Franz</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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!
|
||||
|
||||
|
|
|
@ -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!}
|
||||
|
||||
|
|
|
@ -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!}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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**
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);']},
|
||||
|
|
|
@ -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']},
|
||||
|
|
|
@ -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/<id>
|
||||
# - youtube.com/playlist?v=<id>&list=<list-id>
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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]]]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
|
|
@ -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'
|
||||
|
|
Loading…
Reference in New Issue