Class: Html2rss::LinkDestination::NoisePolicy
- Inherits:
-
Object
- Object
- Html2rss::LinkDestination::NoisePolicy
- Defined in:
- lib/html2rss/link_destination/noise_policy.rb
Overview
Noise / junk chrome eligibility for SST anchors (port of LinkHeuristics#noise_anchor?).
Constant Summary collapse
- ICON_NAMES =
Child tag names that mark icon-only anchors as noise.
%i[img svg].freeze
Instance Method Summary collapse
-
#initialize(link_resolver:, index:) ⇒ NoisePolicy
constructor
A new instance of NoisePolicy.
- #noise_anchor?(text:, destination_facts:, anchor: nil, container: nil, heading_anchor: false) ⇒ Boolean
Constructor Details
#initialize(link_resolver:, index:) ⇒ NoisePolicy
Returns a new instance of NoisePolicy.
13 14 15 16 |
# File 'lib/html2rss/link_destination/noise_policy.rb', line 13 def initialize(link_resolver:, index:) @link_resolver = link_resolver @index = index end |
Instance Method Details
#noise_anchor?(text:, destination_facts:, anchor: nil, container: nil, heading_anchor: false) ⇒ Boolean
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/html2rss/link_destination/noise_policy.rb', line 25 def noise_anchor?(text:, destination_facts:, anchor: nil, container: nil, heading_anchor: false) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity return true unless destination_facts destination_facts.taxonomy_path || short_utility_label?(text, destination_facts) || recommended_chrome?(text, destination_facts, heading_anchor:) || (@link_resolver.utility_prefix_text?(text) && destination_facts.high_confidence_utility_destination) || (@link_resolver.utility_text?(text) && destination_facts.vanity_path) || utility_text_chrome?(text, destination_facts, heading_anchor:) || icon_only_anchor?(anchor, text) || utility_landmark_ancestor?(anchor, container) end |