diff --git a/src/functions.js b/src/functions.js index 7d663dda..f431e3ed 100644 --- a/src/functions.js +++ b/src/functions.js @@ -1,6 +1,5 @@ // @flow /** Include this to ensure that all functions are defined. */ -import ParseError from "./ParseError"; import { default as _defineFunction, ordargument, @@ -122,24 +121,7 @@ defineFunction("xArrow", [ import "./functions/cr"; // Environment delimiters -defineFunction("environment", ["\\begin", "\\end"], { - numArgs: 1, - argTypes: ["text"], -}, function(context, args) { - const nameGroup = args[0]; - if (nameGroup.type !== "ordgroup") { - throw new ParseError("Invalid environment name", nameGroup); - } - let name = ""; - for (let i = 0; i < nameGroup.value.length; ++i) { - name += nameGroup.value[i].value; - } - return { - type: "environment", - name: name, - nameGroup: nameGroup, - }; -}); +import "./functions/environment"; // Box manipulation defineFunction("raisebox", ["\\raisebox"], { diff --git a/src/functions/environment.js b/src/functions/environment.js new file mode 100644 index 00000000..d6aa651b --- /dev/null +++ b/src/functions/environment.js @@ -0,0 +1,29 @@ +// @flow +import defineFunction from "../defineFunction"; +import ParseError from "../ParseError"; + +// Environment delimiters. HTML/MathML rendering is defined in the corresponding +// defineEnvironment definitions. +defineFunction({ + type: "environment", + names: ["\\begin", "\\end"], + props: { + numArgs: 1, + argTypes: ["text"], + }, + handler(context, args) { + const nameGroup = args[0]; + if (nameGroup.type !== "ordgroup") { + throw new ParseError("Invalid environment name", nameGroup); + } + let name = ""; + for (let i = 0; i < nameGroup.value.length; ++i) { + name += nameGroup.value[i].value; + } + return { + type: "environment", + name: name, + nameGroup: nameGroup, + }; + }, +});