106 lines
3.6 KiB
RPMSpec
106 lines
3.6 KiB
RPMSpec
#
|
|
# spec file for package perl-HTML-Strip
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define cpan_name HTML-Strip
|
|
Name: perl-HTML-Strip
|
|
Version: 2.120.0
|
|
Release: 0
|
|
# 2.12 -> normalize -> 2.120.0
|
|
%define cpan_version 2.12
|
|
License: Artistic-1.0 OR GPL-1.0-or-later
|
|
Summary: Perl extension for stripping HTML markup from text
|
|
URL: https://metacpan.org/release/%{cpan_name}
|
|
Source0: https://cpan.metacpan.org/authors/id/K/KI/KILINRAX/%{cpan_name}-%{cpan_version}.tar.gz
|
|
Source1: cpanspec.yml
|
|
Source100: README.md
|
|
BuildRequires: perl
|
|
BuildRequires: perl-macros
|
|
BuildRequires: perl(Test::Exception)
|
|
Requires: perl(Test::Exception)
|
|
Provides: perl(HTML::Strip) = %{version}
|
|
%undefine __perllib_provides
|
|
%{perl_requires}
|
|
|
|
%description
|
|
This module simply strips HTML-like markup from text rapidly and brutally.
|
|
It could easily be used to strip XML or SGML markup instead - but as
|
|
removing HTML is a much more common problem, this module lives in the
|
|
HTML:: namespace.
|
|
|
|
It is written in XS, and thus about five times quicker than using regular
|
|
expressions for the same task.
|
|
|
|
It does _not_ do any syntax checking. If you want that, use HTML::Parser.
|
|
Instead it merely applies the following rules:
|
|
|
|
* 1
|
|
|
|
Anything that looks like a tag, or group of tags will be replaced with a
|
|
single space character. Tags are considered to be anything that starts with
|
|
a '<' and ends with a '>'; with the caveat that a '>' character may appear
|
|
in either of the following without ending the tag:
|
|
|
|
* Quote
|
|
|
|
Quotes are considered to start with either a ''' or a '"' character, and
|
|
end with a matching character _not_ preceded by an even number or escaping
|
|
slashes (i.e. '\"' does not end the quote but '\\\\"' does).
|
|
|
|
* Comment
|
|
|
|
If the tag starts with an exclamation mark, it is assumed to be a
|
|
declaration or a comment. Within such tags, '>' characters do not end the
|
|
tag if they appear within pairs of double dashes (e.g. '<!-- <a
|
|
href="old.htm">old page</a> -->' would be stripped completely). No parsing
|
|
for quotes is performed within comments, so for instance '<!-- comment with
|
|
both ' quote types " -->' would be entirely stripped.
|
|
|
|
* 2
|
|
|
|
Anything that appears between tags which we term _strip tags_ is removed.
|
|
By default, these tags are 'title', 'script', 'style' and 'applet'.
|
|
|
|
HTML::Strip maintains state between calls, so you can parse a document in
|
|
chunks should you wish. If a call to 'parse()' ends half-way through a tag,
|
|
quote or comment; the next call to 'parse()' expects its input to carry on
|
|
from that point.
|
|
|
|
If this is not the behaviour you want, you can either call 'eof()' between
|
|
calls to 'parse()', or set 'auto_reset' to true (either on the constructor
|
|
or with 'set_auto_reset') so that the parser will reset after each call.
|
|
|
|
%prep
|
|
%autosetup -n %{cpan_name}-%{cpan_version}
|
|
|
|
%build
|
|
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
|
|
%make_build
|
|
|
|
%check
|
|
make test
|
|
|
|
%install
|
|
%perl_make_install
|
|
%perl_process_packlist
|
|
%perl_gen_filelist
|
|
|
|
%files -f %{name}.files
|
|
%doc Changes README
|
|
|
|
%changelog
|