highmark-markdown 0.0.58 → 0.0.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example.js +136 -203
- package/lib/example/view.js +2 -2
- package/lib/markdown/entries.js +2 -2
- package/lib/markdown/lexer.js +2 -2
- package/lib/mixins/content.js +3 -3
- package/lib/node/markdown/address.js +3 -2
- package/lib/node/markdown/blockListing.js +1 -8
- package/lib/node/markdown/blockText.js +4 -4
- package/lib/node/markdown/division.js +1 -2
- package/lib/node/markdown/emphasisedText.js +2 -2
- package/lib/node/markdown/endOfLine.js +5 -9
- package/lib/node/markdown/error.js +7 -13
- package/lib/node/markdown/hyperlink.js +24 -24
- package/lib/node/markdown/image.js +15 -22
- package/lib/node/markdown/inlineText.js +2 -2
- package/lib/node/markdown/line.js +4 -3
- package/lib/node/markdown/mailToLink.js +24 -24
- package/lib/node/markdown/strongText.js +2 -2
- package/lib/node/markdown/stronglyEmphasisedText.js +2 -2
- package/lib/node/markdown/tableCell.js +7 -43
- package/lib/node/markdown/text.js +2 -12
- package/lib/node/markdown/url.js +3 -2
- package/lib/node/markdown/verticalSpace.js +12 -14
- package/lib/node/markdown.js +15 -15
- package/lib/utilities/content.js +15 -12
- package/package.json +1 -1
- package/src/example/view.js +5 -1
- package/src/markdown/entries.js +1 -1
- package/src/markdown/lexer.js +1 -2
- package/src/mixins/content.js +3 -2
- package/src/node/markdown/address.js +3 -1
- package/src/node/markdown/blockListing.js +0 -9
- package/src/node/markdown/blockText.js +6 -5
- package/src/node/markdown/division.js +0 -1
- package/src/node/markdown/emphasisedText.js +1 -2
- package/src/node/markdown/endOfLine.js +6 -9
- package/src/node/markdown/error.js +7 -18
- package/src/node/markdown/hyperlink.js +30 -30
- package/src/node/markdown/image.js +22 -28
- package/src/node/markdown/inlineText.js +1 -2
- package/src/node/markdown/line.js +1 -4
- package/src/node/markdown/mailToLink.js +28 -28
- package/src/node/markdown/strongText.js +1 -2
- package/src/node/markdown/stronglyEmphasisedText.js +1 -2
- package/src/node/markdown/tableCell.js +6 -51
- package/src/node/markdown/text.js +0 -13
- package/src/node/markdown/url.js +3 -1
- package/src/node/markdown/verticalSpace.js +19 -16
- package/src/node/markdown.js +12 -12
- package/src/utilities/content.js +17 -15
package/lib/utilities/content.js
CHANGED
|
@@ -13,22 +13,25 @@ var _constants = require("../constants");
|
|
|
13
13
|
var _tokenTypes = require("../tokenTypes");
|
|
14
14
|
var first = _necessary.arrayUtilities.first, last = _necessary.arrayUtilities.last;
|
|
15
15
|
function contentFromMarkdownNodes(markdownNodes, context) {
|
|
16
|
+
var trimmed = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
|
|
16
17
|
var content = _constants.EMPTY_STRING;
|
|
17
18
|
var tokens = context.tokens;
|
|
18
19
|
var markdownNodesLength = markdownNodes.length, firstMarkdownNode = first(markdownNodes), lastMarkdownNode = markdownNodesLength === 1 ? firstMarkdownNode : last(markdownNodes), firstSignificantToken = firstMarkdownNode.getFirstSignificantToken(), lastSignificantToken = lastMarkdownNode.getLastSignificantToken(), firstSignificantTokenIndex = tokens.indexOf(firstSignificantToken), lastSignificantTokenIndex = tokens.indexOf(lastSignificantToken);
|
|
19
20
|
var firstTokenIndex = firstSignificantTokenIndex, lastTokenIndex = lastSignificantTokenIndex; ///
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
if (!trimmed) {
|
|
22
|
+
var previousTokenIndex = firstTokenIndex - 1, nextTokenIndex = lastTokenIndex + 1;
|
|
23
|
+
if (previousTokenIndex > -1) {
|
|
24
|
+
var previousToken = tokens[previousTokenIndex], previousTokenSignificant = previousToken.isSignificant();
|
|
25
|
+
if (!previousTokenSignificant) {
|
|
26
|
+
firstTokenIndex--;
|
|
27
|
+
}
|
|
25
28
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
var tokensLength = tokens.length;
|
|
30
|
+
if (nextTokenIndex < tokensLength) {
|
|
31
|
+
var nextToken = tokens[nextTokenIndex], nextTokenSignificant = nextToken.isSignificant();
|
|
32
|
+
if (!nextTokenSignificant) {
|
|
33
|
+
lastTokenIndex++;
|
|
34
|
+
}
|
|
32
35
|
}
|
|
33
36
|
}
|
|
34
37
|
var start = firstTokenIndex, end = lastTokenIndex + 1;
|
|
@@ -49,4 +52,4 @@ function tokenContentFromToken(token) {
|
|
|
49
52
|
return tokenContent;
|
|
50
53
|
}
|
|
51
54
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEVTQ0FQRURfVE9LRU5fVFlQRSB9IGZyb20gXCIuLi90b2tlblR5cGVzXCI7XG5cbmNvbnN0IHsgZmlyc3QsIGxhc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudEZyb21NYXJrZG93bk5vZGVzKG1hcmtkb3duTm9kZXMsIGNvbnRleHQsIHRyaW1tZWQgPSBmYWxzZSkge1xuICBsZXQgY29udGVudCA9IEVNUFRZX1NUUklORztcblxuICBsZXQgeyB0b2tlbnMgfSA9IGNvbnRleHQ7XG5cbiAgY29uc3QgbWFya2Rvd25Ob2Rlc0xlbmd0aCA9IG1hcmtkb3duTm9kZXMubGVuZ3RoLFxuICAgICAgICBmaXJzdE1hcmtkb3duTm9kZSA9IGZpcnN0KG1hcmtkb3duTm9kZXMpLFxuICAgICAgICBsYXN0TWFya2Rvd25Ob2RlID0gKG1hcmtkb3duTm9kZXNMZW5ndGggPT09IDEpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdE1hcmtkb3duTm9kZSA6IC8vL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdChtYXJrZG93bk5vZGVzKSxcbiAgICAgICAgZmlyc3RTaWduaWZpY2FudFRva2VuID0gZmlyc3RNYXJrZG93bk5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuKCksXG4gICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuID0gbGFzdE1hcmtkb3duTm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRva2Vucy5pbmRleE9mKGZpcnN0U2lnbmlmaWNhbnRUb2tlbiksXG4gICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZihsYXN0U2lnbmlmaWNhbnRUb2tlbik7XG5cbiAgbGV0IGZpcnN0VG9rZW5JbmRleCA9IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4LCAgLy8vXG4gICAgICBsYXN0VG9rZW5JbmRleCA9IGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gIGlmICghdHJpbW1lZCkge1xuICAgIGNvbnN0IHByZXZpb3VzVG9rZW5JbmRleCA9IGZpcnN0VG9rZW5JbmRleCAtIDEsXG4gICAgICAgICAgbmV4dFRva2VuSW5kZXggPSBsYXN0VG9rZW5JbmRleCArIDE7XG5cbiAgICBpZiAocHJldmlvdXNUb2tlbkluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzVG9rZW4gPSB0b2tlbnNbcHJldmlvdXNUb2tlbkluZGV4XSxcbiAgICAgICAgICAgIHByZXZpb3VzVG9rZW5TaWduaWZpY2FudCA9IHByZXZpb3VzVG9rZW4uaXNTaWduaWZpY2FudCgpO1xuXG4gICAgICBpZiAoIXByZXZpb3VzVG9rZW5TaWduaWZpY2FudCkge1xuICAgICAgICBmaXJzdFRva2VuSW5kZXgtLTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbnNMZW5ndGggPSB0b2tlbnMubGVuZ3RoO1xuXG4gICAgaWYgKG5leHRUb2tlbkluZGV4IDwgdG9rZW5zTGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0VG9rZW4gPSB0b2tlbnNbbmV4dFRva2VuSW5kZXhdLFxuICAgICAgICAgICAgbmV4dFRva2VuU2lnbmlmaWNhbnQgPSBuZXh0VG9rZW4uaXNTaWduaWZpY2FudCgpO1xuXG4gICAgICBpZiAoIW5leHRUb2tlblNpZ25pZmljYW50KSB7XG4gICAgICAgIGxhc3RUb2tlbkluZGV4Kys7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RhcnQgPSBmaXJzdFRva2VuSW5kZXgsICAvLy9cbiAgICAgICAgZW5kID0gbGFzdFRva2VuSW5kZXggKyAxO1xuXG4gIHRva2VucyA9IHRva2Vucy5zbGljZShzdGFydCwgZW5kKTtcblxuICB0b2tlbnMuZm9yRWFjaCgodG9rZW4pID0+IHtcbiAgICBjb25zdCB0b2tlbkNvbnRlbnQgPSB0b2tlbkNvbnRlbnRGcm9tVG9rZW4odG9rZW4pO1xuXG4gICAgY29udGVudCArPSB0b2tlbkNvbnRlbnQ7XG4gIH0pO1xuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG5mdW5jdGlvbiB0b2tlbkNvbnRlbnRGcm9tVG9rZW4odG9rZW4pIHtcbiAgbGV0IHRva2VuQ29udGVudCA9IHRva2VuLmdldENvbnRlbnQoKTtcblxuICBjb25zdCB0eXBlID0gdG9rZW4uZ2V0VHlwZSgpO1xuXG4gIGlmICh0eXBlID09PSBFU0NBUEVEX1RPS0VOX1RZUEUpIHtcbiAgICBjb25zdCBzdGFydCA9IDE7XG5cbiAgICB0b2tlbkNvbnRlbnQgPSB0b2tlbkNvbnRlbnQuc3Vic3RyaW5nKHN0YXJ0KTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbkNvbnRlbnQ7XG59XG4iXSwibmFtZXMiOlsiY29udGVudEZyb21NYXJrZG93bk5vZGVzIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImxhc3QiLCJtYXJrZG93bk5vZGVzIiwiY29udGV4dCIsInRyaW1tZWQiLCJjb250ZW50IiwiRU1QVFlfU1RSSU5HIiwidG9rZW5zIiwibWFya2Rvd25Ob2Rlc0xlbmd0aCIsImxlbmd0aCIsImZpcnN0TWFya2Rvd25Ob2RlIiwibGFzdE1hcmtkb3duTm9kZSIsImZpcnN0U2lnbmlmaWNhbnRUb2tlbiIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbiIsImxhc3RTaWduaWZpY2FudFRva2VuIiwiZ2V0TGFzdFNpZ25pZmljYW50VG9rZW4iLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImluZGV4T2YiLCJsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZmlyc3RUb2tlbkluZGV4IiwibGFzdFRva2VuSW5kZXgiLCJwcmV2aW91c1Rva2VuSW5kZXgiLCJuZXh0VG9rZW5JbmRleCIsInByZXZpb3VzVG9rZW4iLCJwcmV2aW91c1Rva2VuU2lnbmlmaWNhbnQiLCJpc1NpZ25pZmljYW50IiwidG9rZW5zTGVuZ3RoIiwibmV4dFRva2VuIiwibmV4dFRva2VuU2lnbmlmaWNhbnQiLCJzdGFydCIsImVuZCIsInNsaWNlIiwiZm9yRWFjaCIsInRva2VuIiwidG9rZW5Db250ZW50IiwidG9rZW5Db250ZW50RnJvbVRva2VuIiwiZ2V0Q29udGVudCIsInR5cGUiLCJnZXRUeXBlIiwiRVNDQVBFRF9UT0tFTl9UWVBFIiwic3Vic3RyaW5nIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNnQkE7OztlQUFBQTs7O3lCQVBlO3lCQUVGOzBCQUNNO0FBRW5DLElBQVFDLFFBQWdCQyx5QkFBYyxDQUE5QkQsT0FBT0UsT0FBU0QseUJBQWMsQ0FBdkJDO0FBRVIsU0FBU0gseUJBQXlCSSxhQUFhLEVBQUVDLE9BQU87UUFBRUMsVUFBQUEsaUVBQVU7SUFDekUsSUFBSUMsVUFBVUMsdUJBQVk7SUFFMUIsSUFBSSxBQUFFQyxTQUFXSixRQUFYSTtJQUVOLElBQU1DLHNCQUFzQk4sY0FBY08sTUFBTSxFQUMxQ0Msb0JBQW9CWCxNQUFNRyxnQkFDMUJTLG1CQUFtQixBQUFDSCx3QkFBd0IsSUFDckJFLG9CQUNFVCxLQUFLQyxnQkFDOUJVLHdCQUF3QkYsa0JBQWtCRyx3QkFBd0IsSUFDbEVDLHVCQUF1QkgsaUJBQWlCSSx1QkFBdUIsSUFDL0RDLDZCQUE2QlQsT0FBT1UsT0FBTyxDQUFDTCx3QkFDNUNNLDRCQUE0QlgsT0FBT1UsT0FBTyxDQUFDSDtJQUVqRCxJQUFJSyxrQkFBa0JILDRCQUNsQkksaUJBQWlCRiwyQkFBMkIsR0FBRztJQUVuRCxJQUFJLENBQUNkLFNBQVM7UUFDWixJQUFNaUIscUJBQXFCRixrQkFBa0IsR0FDdkNHLGlCQUFpQkYsaUJBQWlCO1FBRXhDLElBQUlDLHFCQUFxQixDQUFDLEdBQUc7WUFDM0IsSUFBTUUsZ0JBQWdCaEIsTUFBTSxDQUFDYyxtQkFBbUIsRUFDMUNHLDJCQUEyQkQsY0FBY0UsYUFBYTtZQUU1RCxJQUFJLENBQUNELDBCQUEwQjtnQkFDN0JMO1lBQ0Y7UUFDRjtRQUVBLElBQU1PLGVBQWVuQixPQUFPRSxNQUFNO1FBRWxDLElBQUlhLGlCQUFpQkksY0FBYztZQUNqQyxJQUFNQyxZQUFZcEIsTUFBTSxDQUFDZSxlQUFlLEVBQ2xDTSx1QkFBdUJELFVBQVVGLGFBQWE7WUFFcEQsSUFBSSxDQUFDRyxzQkFBc0I7Z0JBQ3pCUjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQU1TLFFBQVFWLGlCQUNSVyxNQUFNVixpQkFBaUI7SUFFN0JiLFNBQVNBLE9BQU93QixLQUFLLENBQUNGLE9BQU9DO0lBRTdCdkIsT0FBT3lCLE9BQU8sQ0FBQyxTQUFDQztRQUNkLElBQU1DLGVBQWVDLHNCQUFzQkY7UUFFM0M1QixXQUFXNkI7SUFDYjtJQUVBLE9BQU83QjtBQUNUO0FBRUEsU0FBUzhCLHNCQUFzQkYsS0FBSztJQUNsQyxJQUFJQyxlQUFlRCxNQUFNRyxVQUFVO0lBRW5DLElBQU1DLE9BQU9KLE1BQU1LLE9BQU87SUFFMUIsSUFBSUQsU0FBU0UsOEJBQWtCLEVBQUU7UUFDL0IsSUFBTVYsUUFBUTtRQUVkSyxlQUFlQSxhQUFhTSxTQUFTLENBQUNYO0lBQ3hDO0lBRUEsT0FBT0s7QUFDVCJ9
|
package/package.json
CHANGED
package/src/example/view.js
CHANGED
|
@@ -110,7 +110,11 @@ class View extends Element {
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
static initialMarkdown = `
|
|
113
|
-
|
|
113
|
+
|
|
114
|
+
1. Regular expressions[^regular-expressions].
|
|
115
|
+
|
|
116
|
+
[^regular-expressions]: A footnote about regular expressions.
|
|
117
|
+
|
|
114
118
|
`;
|
|
115
119
|
|
|
116
120
|
static tagName = "div";
|
package/src/markdown/entries.js
CHANGED
|
@@ -47,7 +47,7 @@ const entries = [
|
|
|
47
47
|
"number": "^[1-9][0-9]*"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
"path": "^\\/(?:[A-Za-
|
|
50
|
+
"path": "^\\/(?:[A-Za-z_\\-]+\\/)*(?:[A-Za-z_\\-]+(?:\\.[A-Za-z_\\-]+)?)?"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"domain": "^[a-z]+(?:-[a-z]+)*(?:\\.[a-z]+(?:-[a-z]+)*)+"
|
package/src/markdown/lexer.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import { CommonLexer } from "occam-lexers";
|
|
4
4
|
import { WhitespaceToken,
|
|
5
|
-
RegularExpressionToken,
|
|
6
5
|
EndOfLineSignificantToken,
|
|
7
6
|
CStyleSingleLineCommentToken,
|
|
8
7
|
SinglyQuotedStringLiteralToken,
|
|
@@ -25,7 +24,7 @@ export default class MarkdownLexer extends CommonLexer {
|
|
|
25
24
|
|
|
26
25
|
static SingleLineCommentToken = CStyleSingleLineCommentToken; ///
|
|
27
26
|
|
|
28
|
-
static RegularExpressionToken =
|
|
27
|
+
static RegularExpressionToken = null;
|
|
29
28
|
|
|
30
29
|
static EndOfMultiLineCommentToken = CStyleEndOfMultiLineCommentToken; ///
|
|
31
30
|
|
package/src/mixins/content.js
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
import { contentFromMarkdownNodes } from "../utilities/content";
|
|
4
4
|
|
|
5
5
|
function content(context) {
|
|
6
|
-
const
|
|
6
|
+
const trimmed = true,
|
|
7
|
+
markdownNode = this, ///
|
|
7
8
|
markdownNodes = [
|
|
8
9
|
markdownNode
|
|
9
10
|
],
|
|
10
|
-
content = contentFromMarkdownNodes(markdownNodes, context);
|
|
11
|
+
content = contentFromMarkdownNodes(markdownNodes, context, trimmed);
|
|
11
12
|
|
|
12
13
|
return content;
|
|
13
14
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
4
|
import contentMixins from "../../mixins/content";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
class AddressMarkdownNode extends MarkdownNode {
|
|
7
7
|
asHTML(indent, context) {
|
|
8
8
|
const content = this.content(context),
|
|
9
9
|
html = content; ///
|
|
@@ -24,3 +24,5 @@ export default class AddressMarkdownNode extends MarkdownNode {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
Object.assign(AddressMarkdownNode.prototype, contentMixins);
|
|
27
|
+
|
|
28
|
+
export default AddressMarkdownNode;
|
|
@@ -7,15 +7,6 @@ import MarkdownNode from "../../node/markdown";
|
|
|
7
7
|
const { first, second } = arrayUtilities;
|
|
8
8
|
|
|
9
9
|
export default class BlockListingMarkdownNode extends MarkdownNode {
|
|
10
|
-
content(context) {
|
|
11
|
-
const childNodes = this.getChildNodes(),
|
|
12
|
-
secondChildNode = second(childNodes),
|
|
13
|
-
blockTextMarkdownNode = secondChildNode, ///
|
|
14
|
-
content = blockTextMarkdownNode.content(context);
|
|
15
|
-
|
|
16
|
-
return content;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
10
|
className(context) {
|
|
20
11
|
let className = super.className(context);
|
|
21
12
|
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import contentMixins from "../../mixins/content";
|
|
4
|
-
|
|
5
3
|
import MarkdownNode from "../markdown";
|
|
4
|
+
import contentMixins from "../../mixins/content";
|
|
6
5
|
|
|
7
6
|
class BlockTextMarkdownNode extends MarkdownNode {
|
|
8
7
|
asHTML(indent, context) {
|
|
9
|
-
const
|
|
8
|
+
const trimmed = false,
|
|
9
|
+
content = this.content(context, trimmed),
|
|
10
10
|
html = content; ///
|
|
11
11
|
|
|
12
12
|
return html;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
createDOMElement(context) {
|
|
16
|
-
const
|
|
17
|
-
|
|
16
|
+
const trimmed = false,
|
|
17
|
+
content = this.content(context),
|
|
18
|
+
domElement = document.createTextNode(content, trimmed);
|
|
18
19
|
|
|
19
20
|
this.setDOMElement(domElement);
|
|
20
21
|
|
|
@@ -5,7 +5,6 @@ import FootnotesListMarkdownNode from "../../node/markdown/footnotesList";
|
|
|
5
5
|
|
|
6
6
|
import { EMPTY_STRING } from "../../constants";
|
|
7
7
|
import { renumberLinkMarkdownNodes, renumberLinkMarkdownNodesHTML } from "../../utilities/link";
|
|
8
|
-
import ruleNameToHTMLMap from "../../ruleNameToHTMLMap";
|
|
9
8
|
|
|
10
9
|
export default class DivisionMarkdownNode extends MarkdownNode {
|
|
11
10
|
className(context) {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import contentMixins from "../../mixins/content";
|
|
4
|
-
|
|
5
3
|
import MarkdownNode from "../markdown";
|
|
4
|
+
import contentMixins from "../../mixins/content";
|
|
6
5
|
|
|
7
6
|
class EmphasisedTextMarkdownNode extends MarkdownNode {
|
|
8
7
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(EmphasisedTextMarkdownNode, ruleName, childNodes, opacity); }
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
|
+
import contentMixins from "../../mixins/content";
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
class EndOfLineMarkdownNode extends MarkdownNode {
|
|
6
7
|
asHTML(indent, context) {
|
|
7
8
|
const content = this.content(context),
|
|
8
9
|
html = content; ///
|
|
@@ -19,13 +20,9 @@ export default class EndOfLineMarkdownNode extends MarkdownNode {
|
|
|
19
20
|
return domElement;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
content(context) {
|
|
23
|
-
const firstSignificantToken = this.getFirstSignificantToken(),
|
|
24
|
-
endOfLineToken = firstSignificantToken, ///
|
|
25
|
-
content = endOfLineToken.getContent();
|
|
26
|
-
|
|
27
|
-
return content;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
23
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(EndOfLineMarkdownNode, ruleName, childNodes, opacity); }
|
|
31
24
|
}
|
|
25
|
+
|
|
26
|
+
Object.assign(EndOfLineMarkdownNode.prototype, contentMixins);
|
|
27
|
+
|
|
28
|
+
export default EndOfLineMarkdownNode;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { arrayUtilities } from "necessary";
|
|
4
|
-
|
|
5
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
|
+
import contentMixins from "../../mixins/content";
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export default class ErrorMarkdownNode extends MarkdownNode {
|
|
6
|
+
class ErrorMarkdownNode extends MarkdownNode {
|
|
10
7
|
childNodesAsHTML(indent, context) {
|
|
11
8
|
const content = this.content(context),
|
|
12
9
|
childNodesHTML = content; ///
|
|
@@ -16,22 +13,14 @@ export default class ErrorMarkdownNode extends MarkdownNode {
|
|
|
16
13
|
|
|
17
14
|
createChildNodeDOMElements(context) {
|
|
18
15
|
const content = this.content(context),
|
|
19
|
-
domElement = this.getDOMElement(),
|
|
20
|
-
parentDOMElement = domElement, ///
|
|
21
|
-
siblingDOMElement = null,
|
|
22
16
|
childNodeDOMElement = document.createTextNode(content);
|
|
23
17
|
|
|
24
|
-
|
|
18
|
+
this.insertDOMElement(childNodeDOMElement);
|
|
25
19
|
}
|
|
26
20
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
firstChildNode = first(childNodes),
|
|
30
|
-
terminalNode = firstChildNode, ///
|
|
31
|
-
content = terminalNode.getContent();
|
|
21
|
+
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(ErrorMarkdownNode, ruleName, childNodes, opacity); }
|
|
22
|
+
}
|
|
32
23
|
|
|
33
|
-
|
|
34
|
-
}
|
|
24
|
+
Object.assign(ErrorMarkdownNode.prototype, contentMixins);
|
|
35
25
|
|
|
36
|
-
|
|
37
|
-
}
|
|
26
|
+
export default ErrorMarkdownNode;
|
|
@@ -9,11 +9,39 @@ import { HREF_ATTRIBUTE_NAME } from "../../attributeNames";
|
|
|
9
9
|
const { first, second, secondLast } = arrayUtilities;
|
|
10
10
|
|
|
11
11
|
export default class HyperlinkMarkdownNode extends MarkdownNode {
|
|
12
|
+
attributeName(context) {
|
|
13
|
+
const attributeName = HREF_ATTRIBUTE_NAME;
|
|
14
|
+
|
|
15
|
+
return attributeName;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
attributeValue(context) {
|
|
19
|
+
const childNodes = this.getChildNodes(),
|
|
20
|
+
childNodesLength = childNodes.length;
|
|
21
|
+
|
|
22
|
+
let urlMarkdownNode;
|
|
23
|
+
|
|
24
|
+
if (childNodesLength === 1) {
|
|
25
|
+
const firstChildNode = first(childNodes);
|
|
26
|
+
|
|
27
|
+
urlMarkdownNode = firstChildNode; ///
|
|
28
|
+
} else {
|
|
29
|
+
const secondLastChildNode = secondLast(childNodes);
|
|
30
|
+
|
|
31
|
+
urlMarkdownNode = secondLastChildNode; ///
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const urlMarkdownNodeContent = urlMarkdownNode.content(context),
|
|
35
|
+
attributeValue = urlMarkdownNodeContent; ///
|
|
36
|
+
|
|
37
|
+
return attributeValue;
|
|
38
|
+
}
|
|
39
|
+
|
|
12
40
|
childNodesAsHTML(indent, context) {
|
|
13
41
|
let childNodesHTML;
|
|
14
42
|
|
|
15
43
|
const childNodes = this.getChildNodes(),
|
|
16
|
-
|
|
44
|
+
childNodesLength = childNodes.length;
|
|
17
45
|
|
|
18
46
|
if (childNodesLength === 1) {
|
|
19
47
|
const firstChildNode = first(childNodes),
|
|
@@ -34,7 +62,7 @@ export default class HyperlinkMarkdownNode extends MarkdownNode {
|
|
|
34
62
|
|
|
35
63
|
createChildNodeDOMElements(context) {
|
|
36
64
|
const childNodes = this.getChildNodes(),
|
|
37
|
-
|
|
65
|
+
childNodesLength = childNodes.length;
|
|
38
66
|
|
|
39
67
|
if (childNodesLength === 1) {
|
|
40
68
|
const firstChildNode = first(childNodes),
|
|
@@ -51,33 +79,5 @@ export default class HyperlinkMarkdownNode extends MarkdownNode {
|
|
|
51
79
|
}
|
|
52
80
|
}
|
|
53
81
|
|
|
54
|
-
attributeName(context) {
|
|
55
|
-
const attributeName = HREF_ATTRIBUTE_NAME;
|
|
56
|
-
|
|
57
|
-
return attributeName;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
attributeValue(context) {
|
|
61
|
-
const childNodes = this.getChildNodes(),
|
|
62
|
-
childNodesLength = childNodes.length;
|
|
63
|
-
|
|
64
|
-
let urlMarkdownNode;
|
|
65
|
-
|
|
66
|
-
if (childNodesLength === 1) {
|
|
67
|
-
const firstChildNode = first(childNodes);
|
|
68
|
-
|
|
69
|
-
urlMarkdownNode = firstChildNode; ///
|
|
70
|
-
} else {
|
|
71
|
-
const secondLastChildNode = secondLast(childNodes);
|
|
72
|
-
|
|
73
|
-
urlMarkdownNode = secondLastChildNode; ///
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const urlMarkdownNodeContent = urlMarkdownNode.content(context),
|
|
77
|
-
attributeValue = urlMarkdownNodeContent; ///
|
|
78
|
-
|
|
79
|
-
return attributeValue;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
82
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(HyperlinkMarkdownNode, ruleName, childNodes, opacity); }
|
|
83
83
|
}
|
|
@@ -9,32 +9,6 @@ import { SRC_ATTRIBUTE_NAME } from "../../attributeNames";
|
|
|
9
9
|
const { second, secondLast } = arrayUtilities;
|
|
10
10
|
|
|
11
11
|
export default class ImageMarkdownNode extends MarkdownNode {
|
|
12
|
-
childNodesAsHTML(indent, context) {
|
|
13
|
-
const content = this.content(context),
|
|
14
|
-
childNodesHTML = content; ///
|
|
15
|
-
|
|
16
|
-
return childNodesHTML;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
createChildNodeDOMElements(context) {
|
|
20
|
-
const content = this.content(context),
|
|
21
|
-
domElement = this.getDOMElement(),
|
|
22
|
-
parentDOMElement = domElement, ///
|
|
23
|
-
siblingDOMElement = null,
|
|
24
|
-
childNodeDOMElement = document.createTextNode(content);
|
|
25
|
-
|
|
26
|
-
parentDOMElement.insertBefore(childNodeDOMElement, siblingDOMElement);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
content(context) {
|
|
30
|
-
const childNodes = this.getChildNodes(),
|
|
31
|
-
secondChildNode = second(childNodes),
|
|
32
|
-
inlineTextMarkdownNode = secondChildNode, ///
|
|
33
|
-
content = inlineTextMarkdownNode.content(context);
|
|
34
|
-
|
|
35
|
-
return content;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
12
|
attributeName(context) {
|
|
39
13
|
const attributeName = SRC_ATTRIBUTE_NAME;
|
|
40
14
|
|
|
@@ -49,12 +23,32 @@ export default class ImageMarkdownNode extends MarkdownNode {
|
|
|
49
23
|
pathTerminalNodeContent = pathTerminalNode.getContent(),
|
|
50
24
|
path = pathTerminalNodeContent, ///
|
|
51
25
|
imageURL = (pathToURL === null) ?
|
|
52
|
-
|
|
53
|
-
|
|
26
|
+
path : ///
|
|
27
|
+
pathToURL(path),
|
|
54
28
|
attributeValue = imageURL; ///
|
|
55
29
|
|
|
56
30
|
return attributeValue;
|
|
57
31
|
}
|
|
58
32
|
|
|
33
|
+
childNodesAsHTML(indent, context) {
|
|
34
|
+
const childNodes = this.getChildNodes(),
|
|
35
|
+
secondChildNode = second(childNodes),
|
|
36
|
+
inlineTextMarkdownNode = secondChildNode, ///
|
|
37
|
+
content = inlineTextMarkdownNode.content(context),
|
|
38
|
+
childNodesHTML = content; ///
|
|
39
|
+
|
|
40
|
+
return childNodesHTML;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
createChildNodeDOMElements(context) {
|
|
44
|
+
const childNodes = this.getChildNodes(),
|
|
45
|
+
secondChildNode = second(childNodes),
|
|
46
|
+
inlineTextMarkdownNode = secondChildNode, ///
|
|
47
|
+
content = inlineTextMarkdownNode.content(context),
|
|
48
|
+
childNodeDOMElement = document.createTextNode(content);
|
|
49
|
+
|
|
50
|
+
this.insertDOMElement(childNodeDOMElement);
|
|
51
|
+
}
|
|
52
|
+
|
|
59
53
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(ImageMarkdownNode, ruleName, childNodes, opacity); }
|
|
60
54
|
}
|
|
@@ -14,14 +14,11 @@ export default class LineMarkdownNode extends MarkdownNode {
|
|
|
14
14
|
|
|
15
15
|
createChildNodeDOMElements(context) {
|
|
16
16
|
const childNodes = this.getChildNodes(),
|
|
17
|
-
domElement = this.getDOMElement(),
|
|
18
17
|
domElements = domElementsFromChildNodes(childNodes, context),
|
|
19
|
-
parentDOMElement = domElement, ///
|
|
20
|
-
siblingDOMElement = null,
|
|
21
18
|
childNodeDOMElements = domElements; ///
|
|
22
19
|
|
|
23
20
|
childNodeDOMElements.forEach((childNodeDOMElement) => {
|
|
24
|
-
|
|
21
|
+
this.insertDOMElement(childNodeDOMElement);
|
|
25
22
|
});
|
|
26
23
|
}
|
|
27
24
|
|
|
@@ -9,6 +9,34 @@ import { HREF_ATTRIBUTE_NAME } from "../../attributeNames";
|
|
|
9
9
|
const { first, second, secondLast } = arrayUtilities;
|
|
10
10
|
|
|
11
11
|
export default class MailToLinkMarkdownNode extends MarkdownNode {
|
|
12
|
+
attributeName(context) {
|
|
13
|
+
const attributeName = HREF_ATTRIBUTE_NAME;
|
|
14
|
+
|
|
15
|
+
return attributeName;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
attributeValue(context) {
|
|
19
|
+
const childNodes = this.getChildNodes(),
|
|
20
|
+
childNodesLength = childNodes.length;
|
|
21
|
+
|
|
22
|
+
let addressMarkdownNode;
|
|
23
|
+
|
|
24
|
+
if (childNodesLength === 1) {
|
|
25
|
+
const firstChildNode = first(childNodes);
|
|
26
|
+
|
|
27
|
+
addressMarkdownNode = firstChildNode; ///
|
|
28
|
+
} else {
|
|
29
|
+
const secondLastChildNode = secondLast(childNodes);
|
|
30
|
+
|
|
31
|
+
addressMarkdownNode = secondLastChildNode; ///
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const addressMarkdownNodeContent = addressMarkdownNode.content(context),
|
|
35
|
+
attributeValue = `mailto:${addressMarkdownNodeContent}`;
|
|
36
|
+
|
|
37
|
+
return attributeValue;
|
|
38
|
+
}
|
|
39
|
+
|
|
12
40
|
childNodesAsHTML(indent, context) {
|
|
13
41
|
let childNodesHTML;
|
|
14
42
|
|
|
@@ -51,33 +79,5 @@ export default class MailToLinkMarkdownNode extends MarkdownNode {
|
|
|
51
79
|
}
|
|
52
80
|
}
|
|
53
81
|
|
|
54
|
-
attributeName(context) {
|
|
55
|
-
const attributeName = HREF_ATTRIBUTE_NAME;
|
|
56
|
-
|
|
57
|
-
return attributeName;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
attributeValue(context) {
|
|
61
|
-
const childNodes = this.getChildNodes(),
|
|
62
|
-
childNodesLength = childNodes.length;
|
|
63
|
-
|
|
64
|
-
let addressMarkdownNode;
|
|
65
|
-
|
|
66
|
-
if (childNodesLength === 1) {
|
|
67
|
-
const firstChildNode = first(childNodes);
|
|
68
|
-
|
|
69
|
-
addressMarkdownNode = firstChildNode; ///
|
|
70
|
-
} else {
|
|
71
|
-
const secondLastChildNode = secondLast(childNodes);
|
|
72
|
-
|
|
73
|
-
addressMarkdownNode = secondLastChildNode; ///
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const addressMarkdownNodeContent = addressMarkdownNode.content(context),
|
|
77
|
-
attributeValue = `mailto:${addressMarkdownNodeContent}`;
|
|
78
|
-
|
|
79
|
-
return attributeValue;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
82
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(MailToLinkMarkdownNode, ruleName, childNodes, opacity); }
|
|
83
83
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import contentMixins from "../../mixins/content";
|
|
4
|
-
|
|
5
3
|
import MarkdownNode from "../markdown";
|
|
4
|
+
import contentMixins from "../../mixins/content";
|
|
6
5
|
|
|
7
6
|
class StrongTextMarkdownNode extends MarkdownNode {
|
|
8
7
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(StrongTextMarkdownNode, ruleName, childNodes, opacity); }
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import contentMixins from "../../mixins/content";
|
|
4
|
-
|
|
5
3
|
import MarkdownNode from "../markdown";
|
|
4
|
+
import contentMixins from "../../mixins/content";
|
|
6
5
|
import ruleNameToHTMLMap from "../../ruleNameToHTMLMap";
|
|
7
6
|
|
|
8
7
|
import { STRONG_TEXT_RULE_NAME } from "../../ruleNames";
|
|
@@ -1,69 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { arrayUtilities } from "necessary";
|
|
4
|
-
|
|
5
3
|
import MarkdownNode from "../../node/markdown";
|
|
6
|
-
import TextMarkdownNode from "./text";
|
|
7
4
|
|
|
8
|
-
import { PERIOD } from "../../constants";
|
|
9
5
|
import { htmlFromChildNodes, domElementsFromChildNodes } from "../../utilities/childNodes";
|
|
10
6
|
|
|
11
|
-
const { first } = arrayUtilities;
|
|
12
|
-
|
|
13
7
|
export default class TableCellMarkdownNode extends MarkdownNode {
|
|
14
|
-
isEmpty(context) {
|
|
15
|
-
let empty = false;
|
|
16
|
-
|
|
17
|
-
const childNodes = this.getChildNodes(),
|
|
18
|
-
childNodesLength = childNodes.length;
|
|
19
|
-
|
|
20
|
-
if (childNodesLength === 2) {
|
|
21
|
-
const firstChildNode = first(childNodes),
|
|
22
|
-
firstChildNodeTextMarkdownNode = (firstChildNode instanceof TextMarkdownNode);
|
|
23
|
-
|
|
24
|
-
if (firstChildNodeTextMarkdownNode) {
|
|
25
|
-
const textMarkdownNode = firstChildNode, ///
|
|
26
|
-
content = textMarkdownNode.content(context);
|
|
27
|
-
|
|
28
|
-
if (content === PERIOD) {
|
|
29
|
-
empty = true;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return empty;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
8
|
childNodesAsHTML(indent, context) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const empty = this.isEmpty(context);
|
|
41
|
-
|
|
42
|
-
if (!empty) {
|
|
43
|
-
const childNodes = this.getChildNodes(),
|
|
44
|
-
html = htmlFromChildNodes(childNodes, context);
|
|
45
|
-
|
|
46
|
-
childNodesHTML = html; ///
|
|
47
|
-
}
|
|
9
|
+
const childNodes = this.getChildNodes(),
|
|
10
|
+
childNodesHTML = htmlFromChildNodes(childNodes, context);
|
|
48
11
|
|
|
49
12
|
return childNodesHTML;
|
|
50
13
|
}
|
|
51
14
|
|
|
52
|
-
createChildNodeDOMElements(
|
|
53
|
-
const empty = this.isEmpty(context);
|
|
54
|
-
|
|
55
|
-
if (empty) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
|
|
15
|
+
createChildNodeDOMElements(context) {
|
|
59
16
|
const childNodes = this.getChildNodes(),
|
|
60
17
|
domElements = domElementsFromChildNodes(childNodes, context),
|
|
61
|
-
|
|
62
|
-
childDOMElements = domElements, ///
|
|
63
|
-
siblingDOMElement = null;
|
|
18
|
+
childNodeDOMElements = domElements; ///
|
|
64
19
|
|
|
65
|
-
|
|
66
|
-
|
|
20
|
+
childNodeDOMElements.forEach((childNodeDOMElement) => {
|
|
21
|
+
this.insertDOMElement(childNodeDOMElement);
|
|
67
22
|
});
|
|
68
23
|
}
|
|
69
24
|
|
|
@@ -1,20 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { arrayUtilities } from "necessary";
|
|
4
|
-
|
|
5
3
|
import MarkdownNode from "../../node/markdown";
|
|
6
4
|
|
|
7
|
-
const { first } = arrayUtilities;
|
|
8
|
-
|
|
9
5
|
export default class TextMarkdownNode extends MarkdownNode {
|
|
10
|
-
content(context) {
|
|
11
|
-
const childNodes = this.getChildNodes(),
|
|
12
|
-
firstChildNode = first(childNodes),
|
|
13
|
-
terminalNode = firstChildNode, ///
|
|
14
|
-
content = terminalNode.getContent();
|
|
15
|
-
|
|
16
|
-
return content;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
6
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(TextMarkdownNode, ruleName, childNodes, opacity); }
|
|
20
7
|
}
|