mirror of https://github.com/zulip/zulip.git
docs: Capitalize Handlebars consistently.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
53231aa9d9
commit
25f6b53e90
|
@ -2314,7 +2314,7 @@ running a version from before 1.7 should upgrade directly to 1.7.1.
|
||||||
### 1.5.2 -- 2017-06-01
|
### 1.5.2 -- 2017-06-01
|
||||||
|
|
||||||
- CVE-2017-0896: Restricting inviting new users to admins was broken.
|
- CVE-2017-0896: Restricting inviting new users to admins was broken.
|
||||||
- CVE-2015-8861: Insecure old version of handlebars templating engine.
|
- CVE-2015-8861: Insecure old version of Handlebars templating engine.
|
||||||
|
|
||||||
### 1.5.1 -- 2017-02-07
|
### 1.5.1 -- 2017-02-07
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ patterns that can lead to security bugs.
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
Zulip does extensive linting of much of its source code, including
|
Zulip does extensive linting of much of its source code, including
|
||||||
Python/JavaScript/TypeScript files, HTML templates (Django/handlebars), CSS files,
|
Python/JavaScript/TypeScript files, HTML templates (Django/Handlebars), CSS files,
|
||||||
JSON fixtures, Markdown documents, puppet manifests, and shell scripts.
|
JSON fixtures, Markdown documents, puppet manifests, and shell scripts.
|
||||||
|
|
||||||
For some files we simply check for small things like trailing whitespace,
|
For some files we simply check for small things like trailing whitespace,
|
||||||
|
|
|
@ -293,7 +293,7 @@ translated block, because they don't work properly with translation.
|
||||||
The Handlebars expression would be evaluated before the string is
|
The Handlebars expression would be evaluated before the string is
|
||||||
processed by FormatJS, so that the string to be translated wouldn't be
|
processed by FormatJS, so that the string to be translated wouldn't be
|
||||||
constant. We have a linter to enforce that translated blocks don't
|
constant. We have a linter to enforce that translated blocks don't
|
||||||
contain handlebars.
|
contain Handlebars.
|
||||||
|
|
||||||
Restrictions on including HTML tags in translated strings are the same
|
Restrictions on including HTML tags in translated strings are the same
|
||||||
as in JavaScript. You can insert more complex markup using a local
|
as in JavaScript. You can insert more complex markup using a local
|
||||||
|
|
|
@ -10,7 +10,7 @@ const $ = require("../zjsunit/zjquery");
|
||||||
Until now, we had seen various testing techniques, learned
|
Until now, we had seen various testing techniques, learned
|
||||||
how to use helper functions like `mock_esm`, `override` of
|
how to use helper functions like `mock_esm`, `override` of
|
||||||
`run_test` etc., but we didn't see how to deal with
|
`run_test` etc., but we didn't see how to deal with
|
||||||
render calls to handlebars templates. We'll learn that
|
render calls to Handlebars templates. We'll learn that
|
||||||
in this test.
|
in this test.
|
||||||
|
|
||||||
The below code tests the rendering of typing notifications which
|
The below code tests the rendering of typing notifications which
|
||||||
|
|
|
@ -264,7 +264,7 @@ exports.zrequire = function (short_fn) {
|
||||||
There is no need to zrequire templates.js.
|
There is no need to zrequire templates.js.
|
||||||
|
|
||||||
The test runner automatically registers the
|
The test runner automatically registers the
|
||||||
Handlebar extensions.
|
Handlebars extensions.
|
||||||
`,
|
`,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -417,7 +417,7 @@ function edit_message($row, raw_content) {
|
||||||
editability === editability_types.TOPIC_ONLY ||
|
editability === editability_types.TOPIC_ONLY ||
|
||||||
editability === editability_types.FULL ||
|
editability === editability_types.FULL ||
|
||||||
is_stream_editable;
|
is_stream_editable;
|
||||||
// current message's stream has been already been added and selected in handlebar
|
// current message's stream has been already been added and selected in Handlebars
|
||||||
const available_streams = is_stream_editable
|
const available_streams = is_stream_editable
|
||||||
? stream_data.subscribed_subs().map((stream) => ({
|
? stream_data.subscribed_subs().map((stream) => ({
|
||||||
name: stream.name,
|
name: stream.name,
|
||||||
|
|
|
@ -531,7 +531,7 @@ export function send_test_notification(content) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note that this returns values that are not HTML-escaped, for use in
|
// Note that this returns values that are not HTML-escaped, for use in
|
||||||
// handlebars templates that will do further escaping.
|
// Handlebars templates that will do further escaping.
|
||||||
function get_message_header(message) {
|
function get_message_header(message) {
|
||||||
if (message.type === "stream") {
|
if (message.type === "stream") {
|
||||||
return message.stream + " > " + message.topic;
|
return message.stream + " > " + message.topic;
|
||||||
|
|
|
@ -3,9 +3,9 @@ import Handlebars from "handlebars/runtime";
|
||||||
import {default_html_elements, intl} from "./i18n";
|
import {default_html_elements, intl} from "./i18n";
|
||||||
import * as util from "./util";
|
import * as util from "./util";
|
||||||
|
|
||||||
// Below, we register Zulip-specific extensions to the handlebars API.
|
// Below, we register Zulip-specific extensions to the Handlebars API.
|
||||||
//
|
//
|
||||||
// IMPORTANT: When adding a new handlebars helper, update the
|
// IMPORTANT: When adding a new Handlebars helper, update the
|
||||||
// knownHelpers array in the webpack config so that webpack knows your
|
// knownHelpers array in the webpack config so that webpack knows your
|
||||||
// helper is registered at runtime and don't try to require them when
|
// helper is registered at runtime and don't try to require them when
|
||||||
// bundling.
|
// bundling.
|
||||||
|
|
|
@ -590,7 +590,7 @@ export function initialize_everything() {
|
||||||
// These components must be initialized early, because other
|
// These components must be initialized early, because other
|
||||||
// modules' initialization has not been audited for whether they
|
// modules' initialization has not been audited for whether they
|
||||||
// expect DOM elements to always exist (As that did before these
|
// expect DOM elements to always exist (As that did before these
|
||||||
// modules were migrated from Django templates to handlebars).
|
// modules were migrated from Django templates to Handlebars).
|
||||||
initialize_left_sidebar();
|
initialize_left_sidebar();
|
||||||
initialize_right_sidebar();
|
initialize_right_sidebar();
|
||||||
initialize_compose_box();
|
initialize_compose_box();
|
||||||
|
|
|
@ -41,7 +41,7 @@ if __name__ == "__main__":
|
||||||
if not found:
|
if not found:
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
print(WARNING + "Translation strings contain handlebars:" + ENDC)
|
print(WARNING + "Translation strings contain Handlebars:" + ENDC)
|
||||||
print("\n".join(found))
|
print("\n".join(found))
|
||||||
|
|
||||||
print(
|
print(
|
||||||
|
|
|
@ -137,7 +137,7 @@ js_rules = RuleList(
|
||||||
"static/js/dialog_widget.js",
|
"static/js/dialog_widget.js",
|
||||||
"frontend_tests/",
|
"frontend_tests/",
|
||||||
},
|
},
|
||||||
"description": "Setting HTML content with jQuery .html() can lead to XSS security bugs. Consider .text() or using rendered_foo as a variable name if content comes from handlebars and thus is already sanitized.",
|
"description": "Setting HTML content with jQuery .html() can lead to XSS security bugs. Consider .text() or using rendered_foo as a variable name if content comes from Handlebars and thus is already sanitized.",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"pattern": "[\"']json/",
|
"pattern": "[\"']json/",
|
||||||
|
|
Loading…
Reference in New Issue