Refactor out isLinkPreviewable
parent
ee11838537
commit
4d399a3640
|
@ -84,10 +84,27 @@ module.exports = React.createClass({
|
||||||
findLink: function(nodes) {
|
findLink: function(nodes) {
|
||||||
for (var i = 0; i < nodes.length; i++) {
|
for (var i = 0; i < nodes.length; i++) {
|
||||||
var node = nodes[i];
|
var node = nodes[i];
|
||||||
if (node.tagName === "A" && node.getAttribute("href") &&
|
if (node.tagName === "A" && node.getAttribute("href"))
|
||||||
(node.getAttribute("href").startsWith("http://") ||
|
|
||||||
node.getAttribute("href").startsWith("https://")))
|
|
||||||
{
|
{
|
||||||
|
return this.isLinkPreviewable(node) ? node : undefined;
|
||||||
|
}
|
||||||
|
else if (node.tagName === "PRE" || node.tagName === "CODE") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (node.children && node.children.length) {
|
||||||
|
return this.findLink(node.children)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
isLinkPreviewable: function(node) {
|
||||||
|
// don't try to preview relative links
|
||||||
|
if (!node.getAttribute("href").startsWith("http://") &&
|
||||||
|
!node.getAttribute("href").startsWith("https://"))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// as a random heuristic to avoid highlighting things like "foo.pl"
|
// as a random heuristic to avoid highlighting things like "foo.pl"
|
||||||
// we require the linked text to either include a / (either from http://
|
// we require the linked text to either include a / (either from http://
|
||||||
// or from a full foo.bar/baz style schemeless URL) - or be a markdown-style
|
// or from a full foo.bar/baz style schemeless URL) - or be a markdown-style
|
||||||
|
@ -109,14 +126,6 @@ module.exports = React.createClass({
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (node.tagName === "PRE" || node.tagName === "CODE") {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if (node.children && node.children.length) {
|
|
||||||
return this.findLink(node.children)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onCancelClick: function(event) {
|
onCancelClick: function(event) {
|
||||||
|
|
Loading…
Reference in New Issue