code: function calculateNodeScore (node, candidates) {
    const txt = node.text()
    let contentScore = 1
  
    // Ignore too small nodes
    if (txt.length < 25) {
      return
    }
  
    // Add points for any commas within this paragraph support Chinese commas
    const commas = txt.match(/[,，.。;；?？、]/g)
    if (commas && commas.length) {
      contentScore += commas.length
    }
  
    // For every 100 characters in this paragraph, add another point. Up to 3 points.
    contentScore += Math.min(Math.floor(txt.length / 100), 3)
  
    // If it has an article parent
    if (node.closest('article')) {
      contentScore += 25
    }
  
    // Initialize Parent and Grandparent
    // First initialize the parent node with contentScore / 1, then grandParentNode with contentScore / 2
    const parent = node.parent()
  
    if (parent && parent.length > 0) {
      scoreCandidate(parent, contentScore, candidates)
      const grandParent = parent.parent()
      if (grandParent && grandParent.length > 0) {
        scoreCandidate(grandParent, contentScore / 2, candidates)
      }
    }
  }
docs: Calculate score of specified node.
  @param node
  @param candidates