Zulip 服务器和 Web 应用程序。开源团队聊天可帮助团队保持高效和专注。
Go to file
Steve Howell 67a487db79 refactor: Extract message_parser module.
I moved four functions, verbatim, to a new module.
They were in message_util before, which led to
filter.js having several accidental indirect
dependencies.

I considered just putting these four functions in
filter.js, but I think it's a nice abstraction boundary
that filter.js delegates actual message parsing, and
the original author apparently had a similar thought
process.

I also wanted to make it so that a casual reader of
filter.js doesn't think we are manipulating DOM. It's
true that we still indirectly require jquery here, but
it's only for parsing, and it seems plausible we would
eventually use a more low-level parser.

I can see us maybe using these functions in something
like MessageListData in the future, so speculatively
splitting them out might future-proof us from some
cyclical dependencies.

I also think it's plausible that we will just modify
our two markdown processors to attach that kind of
metadata to the messages.

Last but not least, I think there might be opportunity
here to simplify the filter tests and remove some of
the zjquery hacks. We would instead just mock the
message_has_* helpers for the filter tests, and then
do more detailed direct testing on the functions
themselves.
2021-03-22 13:21:56 -07:00
.github ci: Remove CircleCI workaround for buggy CPU count allocation. 2021-03-16 15:11:26 -07:00
.tx cleanup: Delete trailing newlines. 2019-08-06 23:29:11 -07:00
analytics analytics: escape HTML correctly when generating links. 2021-03-18 15:08:31 -07:00
confirmation python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
corporate tests: Use do_create_realm where possible. 2021-03-14 08:50:02 -07:00
docs refactor: Extract watchdog module. 2021-03-22 13:17:37 -07:00
frontend_tests refactor: Extract watchdog module. 2021-03-22 13:17:37 -07:00
locale i18n: Update translation data from Transifex. 2021-01-19 17:45:13 -08:00
pgroonga python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
puppet puppet: Add a nagios alert configuration for smokescreen. 2021-03-18 10:11:15 -07:00
requirements requirements: Upgrade talon fork to 1.4.8. 2021-03-18 17:10:18 -07:00
scripts requirements: Upgrade talon fork to 1.4.8. 2021-03-18 17:10:18 -07:00
static refactor: Extract message_parser module. 2021-03-22 13:21:56 -07:00
stubs requirements: Upgrade mypy to 0.790. 2020-11-12 15:44:30 -08:00
templates message: Record whether unread_msgs data is truncated. 2021-03-21 19:48:13 -07:00
tools refactor: Extract stream_bar.decorate. 2021-03-22 13:21:56 -07:00
var/puppeteer puppeteer_tests: Port to TypeScript. 2021-02-22 16:03:10 -08:00
zerver sentry: Do not assume context lines exist in stacktrace. 2021-03-22 12:16:10 -07:00
zilencer tests: Use do_create_realm where possible. 2021-03-14 08:50:02 -07:00
zproject ldap: Add option to limit user access to certain realms. 2021-03-18 11:19:59 -07:00
zthumbor python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
.browserslistrc browserslist: Drop 0.2% usage threshold to 0.15%. 2020-09-28 10:57:49 -07:00
.codecov.yml codecov: Change threshold to use percentage syntax. 2019-07-20 14:37:04 -07:00
.editorconfig lint: Add shfmt as a linter. 2020-10-15 15:16:00 -07:00
.eslintignore gitignore: Ignore zulip-thumbor-venv. 2021-03-04 18:06:21 -08:00
.eslintrc.json eslint: Enable @typescript-eslint/consistent-type-imports. 2021-03-18 17:26:19 -07:00
.gitattributes Revert "gitattributes: Mark yarn.lock as "binary", i.e. suppress diffs." 2019-05-20 19:31:14 -07:00
.gitignore ci: Use general terms for CircleCI. 2021-03-16 14:56:43 -07:00
.gitlint lint: Re-enable imperative-mood checking. 2021-02-23 14:54:07 -08:00
.mailmap mailmap: Give priority to Vishnu KS's zulip email. 2020-07-31 10:37:49 -07:00
.npmignore Add proxy notes to new README.dev.md troubleshooting section. 2016-03-29 21:54:05 -07:00
.prettierignore lint: Use Prettier for JSON files. 2020-07-24 09:42:56 -07:00
.pyre_configuration pysa: Update .pyre_configuration to point to typeshed. 2020-09-22 15:44:47 -07:00
.sonarcloud.properties tools: Configure Zulip to be scannable by SonarCloud. 2020-06-24 12:41:17 -07:00
.yarnrc .yarnrc: Set ignore-scripts true. 2019-08-28 16:15:54 -07:00
babel.config.js babel: Specify core-js minor version. 2020-10-05 14:51:03 -07:00
CODE_OF_CONDUCT.md docs: Fix various capitalization errors. 2020-08-11 10:25:52 -07:00
CONTRIBUTING.md docs: Move GSoC ideas to contributing/, and index. 2021-02-18 16:01:16 -08:00
Dockerfile-postgresql docs: Standardize on PostgreSQL, not Postgres. 2020-10-28 11:55:16 -07:00
LICENSE license: Move copyright notice from LICENSE to NOTICE. 2021-02-05 09:28:12 -08:00
manage.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
mypy.ini markdown: Re-enable typeshed stub for Python-Markdown. 2021-03-10 11:49:59 -08:00
NOTICE docs: Bump copyright year. 2021-02-05 09:28:15 -08:00
package.json zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
postcss.config.js styles: Use range context queries to eliminate *_max variables. 2021-02-05 09:23:59 -08:00
prettier.config.js casper: Remove few traces of casper. 2020-08-30 17:16:02 -07:00
pyproject.toml isort: Move configuration into pyproject.toml. 2021-03-04 18:03:30 -08:00
README.md ci: Remove unused circleci config file and update codebase. 2021-03-16 15:11:21 -07:00
SECURITY.md docs: Fix more capitalization issues. 2020-10-23 11:46:55 -07:00
setup.cfg pycodestyle: Improve comments documenting excludes. 2021-02-12 13:11:25 -08:00
stylelint.config.js dependencies: Upgrade JavaScript dependencies. 2020-09-02 19:34:37 -07:00
tsconfig.json dependencies: Add ts-node. 2021-02-22 16:03:10 -08:00
Vagrantfile Revert "Make sure Vagrant works with SELinux enabled" 2021-01-26 13:14:06 -08:00
version.py message: Record whether unread_msgs data is truncated. 2021-03-21 19:48:13 -07:00
webpack.config.ts webpack: Prevent Emacs file locks from crashing webpack-dev-server. 2021-03-11 13:31:30 -08:00
yarn.lock zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00

Zulip overview

Zulip is a powerful, open source group chat application that combines the immediacy of real-time chat with the productivity benefits of threaded conversations. Zulip is used by open source projects, Fortune 500 companies, large standards bodies, and others who need a real-time chat system that allows users to easily process hundreds or thousands of messages a day. With over 700 contributors merging over 500 commits a month, Zulip is also the largest and fastest growing open source group chat project.

GitHub Actions build status coverage status Mypy coverage code style: black code style: prettier GitHub release docs Zulip chat Twitter

Getting started

Click on the appropriate link below. If nothing seems to apply, join us on the Zulip community server and tell us what's up!

You might be interested in:

You may also be interested in reading our blog or following us on Twitter. Zulip is distributed under the Apache 2.0 license.