code: function filterCandidates (topCandidate, siblings, $) {
    const articleContent = $("<div id='readabilityArticle'></div>")
    const siblingScoreThreshold = Math.max(
      10,
      topCandidate.data('readabilityScore') * 0.3
    )
  
    siblings.each(function (index, elem) {
      const node = $(this)
      const type = node.get(0).name
      const score = node.data('readabilityScore')
      const children = siblings.contents().length
      let append = false
  
      if (node.is(topCandidate) || score > siblingScoreThreshold) {
        append = true
      }
  
      if (children > 0) {
        siblings.contents().each((index, elem) => {
          if (elem.name === 'img') {
            append = true
          }
        })
      }
  
      if (
        !append &&
        (type === 'p' ||
          type === 'ul' ||
          type === 'blockquote' ||
          type === 'pre' ||
          type === 'h2')
      ) {
        $(elem)
          .find('a')
          .each((index, elems) => {
            if ($(elems).text().length > 1) {
              return
            }
            if (elems.name === 'a') {
              $(elems).remove()
            }
          })
  
        const linkDensity = getLinkDensity(node, $)
        const len = node.text().length
        if (len < 3) {
          return
        }
  
        if (len > 80 && linkDensity < 0.25) {
          append = true
        } else if (
          len < 80 &&
          linkDensity === 0 &&
          node.text().replace(regexps.trimRe, '').length > 0
        ) {
          append = true
        }
      }
  
      if (append) {
        articleContent.append(node)
      }
    })
  
    return articleContent
  }
docs: Filter TopCandidate Siblings (Children) based on their Link Density, and readabilityScore
  Append the nodes to articleContent