Skip to content

Instantly share code, notes, and snippets.

@brussell98
Created August 5, 2019 22:40
Show Gist options
  • Save brussell98/b934475fd06d3ac9b642ae0931ae4092 to your computer and use it in GitHub Desktop.
Save brussell98/b934475fd06d3ac9b642ae0931ae4092 to your computer and use it in GitHub Desktop.
newline: a.default.defaultRules.newline,
paragraph: a.default.defaultRules.paragraph,
escape: a.default.defaultRules.escape,
blockQuote: E({}, a.default.defaultRules.blockQuote, {
match: function(e, t, n, r) {
return !T.test(r) || t.inQuote ? null : v.exec(e)
},
parse: function(e, t, n) {
var r = e[0],
i = Boolean(y.exec(r)),
a = i ? y : S,
o = r.replace(a, ""),
s = n.inQuote || !1,
u = n.inline || !1;
n.inQuote = !0, i || (n.inline = !0);
var l = t(o, n);
return n.inQuote = s, n.inline = u, {
content: l,
type: "blockQuote"
}
}
}),
link: E({}, a.default.defaultRules.link, {
parse: function(e, t, n) {
var r = a.default.unescapeUrl(e[2]);
if (!/^https?:\/\//i.test(r)) return t(e[1], n);
var i = b(r);
if (null == i) return {
type: "text",
content: r
};
var o = i.target;
return {
content: t(e[1], n),
target: o,
title: e[3]
}
}
}),
autolink: E({}, a.default.defaultRules.autolink, {
parse: I
}),
url: E({}, a.default.defaultRules.url, {
match: function(e, t) {
if (!t.inline) return null;
var n = /^((?:https?|steam):\/\/[^\s<]+[^<.,:;"'\]\s])/.exec(e);
if (null != n) {
for (var r = 0, i = n[0], a = i.length - 1; a >= 0 && ")" === i[a]; a--) {
var o = i.indexOf("(", r);
if (-1 === o) {
i = i.slice(0, i.length - 1);
break
}
r = o + 1
}
n[0] = n[1] = i
}
return n
},
parse: I
}),
strong: a.default.defaultRules.strong,
em: a.default.defaultRules.em,
u: a.default.defaultRules.u,
br: a.default.defaultRules.br,
text: a.default.defaultRules.text,
inlineCode: a.default.defaultRules.inlineCode,
emoticon: {
order: a.default.defaultRules.text.order,
match: function(e) {
return /^(¯\\_\(ツ\)_\/¯)/.exec(e)
},
parse: function(e) {
return {
type: "text",
content: e[1]
}
}
},
codeBlock: {
order: a.default.defaultRules.codeBlock.order,
match: function(e) {
return /^```(([a-z0-9-]+?)\n+)?\n*([^]+?)\n*```/i.exec(e)
},
parse: function(e, t, n) {
return {
lang: (e[2] || "").trim(),
content: e[3] || "",
inQuote: n.inQuote || !1
}
}
},
roleMention: {
order: a.default.defaultRules.text.order,
match: function(e) {
return /^<@&(\d+)>/.exec(e)
},
parse: function(e, t, n) {
e[0];
var r = e[1],
i = l.default.getChannel(n.channelId),
a = i ? i.getGuildId() : null,
o = a ? c.default.getGuild(a) : null,
s = o ? o.roles[r] : null;
return null == s ? {
type: "text",
content: "@deleted-role"
} : {
type: "mention",
color: s.color,
colorString: s.colorString,
content: [{
type: "text",
content: "@" + s.name
}]
}
}
},
mention: {
order: a.default.defaultRules.text.order,
match: function(e) {
return /^<@!?(\d+)>|^(@(?:everyone|here))/.exec(e)
},
parse: function(e, t, n) {
var r, i, a = d.default.getUser(e[1]);
if (null != a) {
i = a.id, r = a.toString();
var o = l.default.getChannel(n.channelId);
null != o && (r = f.default.getNickname(o.getGuildId(), n.channelId, a) || r)
}
return {
userId: i,
channelId: n.channelId,
content: [{
type: "text",
content: null != r ? "@" + r : e[0]
}]
}
}
},
channel: {
order: a.default.defaultRules.text.order,
match: function(e) {
return /^<#(\d+)>/.exec(e)
},
parse: function(e) {
var t = l.default.getChannel(e[1]),
n = d.default.getCurrentUser();
return null != t && (0, u.isGuildSelectableChannelType)(t.type) && p.default.can(_.Permissions.VIEW_CHANNEL, n, t) ? {
channelId: null != t ? t.id : null,
guildId: null != t ? t.guild_id : null,
content: [{
type: "text",
content: null != t ? "#" + t.toString() : "#deleted-channel"
}]
} : {
type: "text",
content: null != t ? "#" + t.toString() : "#deleted-channel"
}
}
},
emoji: {
order: a.default.defaultRules.text.order,
match: function(e) {
var t = s.default.EMOJI_NAME_RE.exec(e);
if (null != t && "" !== s.default.convertNameToSurrogate(t[1])) return t
},
parse: function(e) {
var t = s.default.convertNameToSurrogate(e[1]);
return {
type: "text",
content: t || ":" + e[1] + ":"
}
}
},
customEmoji: {
order: a.default.defaultRules.text.order,
match: function(e) {
return /^<a?:(\w+):(\d+)>/.exec(e)
},
parse: function(e) {
return {
type: "text",
content: ":" + e[1] + ":"
}
}
},
s: {
order: a.default.defaultRules.u.order,
match: a.default.inlineRegex(/^~~([\s\S]+?)~~(?!_)/),
parse: a.default.defaultRules.u.parse
},
spoiler: {
order: a.default.defaultRules.text.order,
match: function(e) {
return _.MARKDOWN_SPOILER_REGEXP.exec(e)
},
parse: function(e, t, n) {
return {
content: t(e[1], n),
channelId: n.channelId
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment