mirror of https://github.com/zulip/zulip.git
mobile sharing: Move fenced_code.js to shared/js.
We also take fenced_code out of the global namespace, since it only requires katex and underscore. And we fix the exports to be ES6 style.
This commit is contained in:
parent
c50dbf8297
commit
cc31403112
|
@ -147,7 +147,6 @@
|
|||
"favicon": false,
|
||||
"feature_flags": false,
|
||||
"feedback_widget": false,
|
||||
"fenced_code": false,
|
||||
"flatpickr": false,
|
||||
"floating_recipient_bar": false,
|
||||
"gear_menu": false,
|
||||
|
@ -162,7 +161,6 @@
|
|||
"input_pill": false,
|
||||
"invite": false,
|
||||
"jQuery": false,
|
||||
"katex": false,
|
||||
"keydown_util": false,
|
||||
"lightbox": false,
|
||||
"list_cursor": false,
|
||||
|
|
|
@ -23,7 +23,6 @@ zrequire("compose_ui");
|
|||
zrequire("compose");
|
||||
zrequire("compose_state");
|
||||
zrequire("compose_actions");
|
||||
zrequire("fenced_code");
|
||||
zrequire("stream_data");
|
||||
|
||||
set_global("document", "document-stub");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
zrequire("fenced_code");
|
||||
const fenced_code = zrequire("fenced_code", "shared/js/fenced_code");
|
||||
|
||||
run_test("get_unused_fence", () => {
|
||||
assert.equal(fenced_code.get_unused_fence("```js\nsomething\n```"), "`".repeat(4));
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
zrequire("hash_util");
|
||||
set_global("katex", zrequire("katex", "katex/dist/katex.min.js"));
|
||||
set_global("marked", zrequire("marked", "third/marked/lib/marked"));
|
||||
|
||||
const emoji_codes = zrequire("emoji_codes", "generated/emoji/emoji_codes.json");
|
||||
const fenced_code = zrequire("fenced_code", "shared/js/fenced_code");
|
||||
const markdown_config = zrequire("markdown_config");
|
||||
|
||||
zrequire("emoji");
|
||||
zrequire("fenced_code");
|
||||
zrequire("markdown");
|
||||
zrequire("message_store");
|
||||
zrequire("people");
|
||||
|
|
|
@ -5,27 +5,28 @@
|
|||
There may be a better way.
|
||||
*/
|
||||
|
||||
const rewiremock = require("rewiremock/node");
|
||||
|
||||
const markdown_config = zrequire("markdown_config");
|
||||
|
||||
set_global("marked", zrequire("marked", "third/marked/lib/marked"));
|
||||
set_global("page_params", {});
|
||||
|
||||
zrequire("emoji");
|
||||
zrequire("fenced_code");
|
||||
zrequire("hash_util");
|
||||
zrequire("message_store");
|
||||
zrequire("people");
|
||||
zrequire("stream_data");
|
||||
zrequire("user_groups");
|
||||
|
||||
set_global("katex", {
|
||||
renderToString: () => {
|
||||
throw new Error("some-exception");
|
||||
const markdown = rewiremock.proxy(() => zrequire("markdown"), {
|
||||
"katex/dist/katex.min.js": {
|
||||
renderToString: () => {
|
||||
throw new Error("some-exception");
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const markdown = zrequire("markdown");
|
||||
|
||||
markdown.initialize([], markdown_config.get_helpers());
|
||||
|
||||
run_test("katex_throws_unexpected_exceptions", () => {
|
||||
|
|
|
@ -97,7 +97,6 @@ zrequire("user_groups");
|
|||
zrequire("unread");
|
||||
zrequire("bot_data");
|
||||
set_global("marked", zrequire("marked", "third/marked/lib/marked"));
|
||||
zrequire("fenced_code");
|
||||
zrequire("markdown");
|
||||
zrequire("upload");
|
||||
zrequire("compose");
|
||||
|
|
|
@ -77,7 +77,6 @@ import "../narrow.js";
|
|||
import "../reload_state.js";
|
||||
import "../reload.js";
|
||||
import "../compose_fade.js";
|
||||
import "../fenced_code.js";
|
||||
import "../markdown.js";
|
||||
import "../local_message.js";
|
||||
import "../echo.js";
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const autosize = require("autosize");
|
||||
const fenced_code = require("../shared/js/fenced_code");
|
||||
|
||||
exports.blur_compose_inputs = function () {
|
||||
$(".message_comp").find("input, textarea, button, #private_message_recipient").trigger("blur");
|
||||
|
|
|
@ -44,7 +44,6 @@ declare let emoji_picker: any;
|
|||
declare let favicon: any;
|
||||
declare let feature_flags: any;
|
||||
declare let feedback_widget: any;
|
||||
declare let fenced_code: any;
|
||||
declare let floating_recipient_bar: any;
|
||||
declare let gear_menu: any;
|
||||
declare let hashchange: any;
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
const katex = require("katex/dist/katex.min.js");
|
||||
const fenced_code = require("../shared/js/fenced_code");
|
||||
|
||||
// This contains zulip's frontend markdown implementation; see
|
||||
// docs/subsystems/markdown.md for docs on our Markdown syntax. The other
|
||||
// main piece in rendering markdown client-side is
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
import _ from "underscore";
|
||||
import katex from "katex/dist/katex.min.js";
|
||||
|
||||
// Parsing routine that can be dropped in to message parsing
|
||||
// and formats code blocks
|
||||
//
|
||||
|
@ -27,7 +30,7 @@ let stash_func = function (text) {
|
|||
return text;
|
||||
};
|
||||
|
||||
exports.wrap_code = function (code) {
|
||||
export function wrap_code(code) {
|
||||
// Trim trailing \n until there's just one left
|
||||
// This mirrors how pygments handles code input
|
||||
return (
|
||||
|
@ -35,7 +38,7 @@ exports.wrap_code = function (code) {
|
|||
_.escape(code.replace(/^\n+|\n+$/g, "")) +
|
||||
"\n</code></pre></div>\n"
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
function wrap_quote(text) {
|
||||
const paragraphs = text.split("\n\n");
|
||||
|
@ -80,11 +83,11 @@ function wrap_spoiler(header, text, stash_func) {
|
|||
return output.join("\n\n");
|
||||
}
|
||||
|
||||
exports.set_stash_func = function (stash_handler) {
|
||||
export function set_stash_func(stash_handler) {
|
||||
stash_func = stash_handler;
|
||||
};
|
||||
}
|
||||
|
||||
exports.process_fenced_code = function (content) {
|
||||
export function process_fenced_code(content) {
|
||||
const input = content.split("\n");
|
||||
const output = [];
|
||||
const handler_stack = [];
|
||||
|
@ -166,7 +169,7 @@ exports.process_fenced_code = function (content) {
|
|||
},
|
||||
|
||||
done() {
|
||||
const text = exports.wrap_code(lines.join("\n"));
|
||||
const text = wrap_code(lines.join("\n"));
|
||||
// insert safe HTML that is passed through the parsing
|
||||
const placeholder = stash_func(text, true);
|
||||
output_lines.push("");
|
||||
|
@ -222,10 +225,10 @@ exports.process_fenced_code = function (content) {
|
|||
}
|
||||
|
||||
return output.join("\n");
|
||||
};
|
||||
}
|
||||
|
||||
const fence_length_re = /^ {0,3}(`{3,})/gm;
|
||||
exports.get_unused_fence = (content) => {
|
||||
export function get_unused_fence(content) {
|
||||
// we only return ``` fences, not ~~~.
|
||||
let length = 3;
|
||||
let match;
|
||||
|
@ -234,6 +237,4 @@ exports.get_unused_fence = (content) => {
|
|||
length = Math.max(length, match[1].length + 1);
|
||||
}
|
||||
return "`".repeat(length);
|
||||
};
|
||||
|
||||
window.fenced_code = exports;
|
||||
}
|
Loading…
Reference in New Issue