pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/www/ikiwiki Apply upstream patch to fix regression wit...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/c4209c594f04
branches:  trunk
changeset: 376838:c4209c594f04
user:      schmonz <schmonz%pkgsrc.org@localhost>
date:      Fri Mar 09 16:12:50 2018 +0000

description:
Apply upstream patch to fix regression with older libdiscount where
Markdown links were no longer rendered as links. Bump PKGREVISION.

diffstat:

 www/ikiwiki/Makefile                             |    3 +-
 www/ikiwiki/distinfo                             |    4 +-
 www/ikiwiki/patches/patch-IkiWiki_Plugin_mdwn.pm |  122 +++++++++++++++++++++++
 www/ikiwiki/patches/patch-t_mdwn.t               |   40 +++++++
 4 files changed, 167 insertions(+), 2 deletions(-)

diffs (199 lines):

diff -r 706c02ebc3c1 -r c4209c594f04 www/ikiwiki/Makefile
--- a/www/ikiwiki/Makefile      Fri Mar 09 14:38:36 2018 +0000
+++ b/www/ikiwiki/Makefile      Fri Mar 09 16:12:50 2018 +0000
@@ -1,8 +1,9 @@
-# $NetBSD: Makefile,v 1.153 2018/03/04 17:40:28 schmonz Exp $
+# $NetBSD: Makefile,v 1.154 2018/03/09 16:12:50 schmonz Exp $
 #
 
 DISTNAME=              ikiwiki_3.20180228.orig
 PKGNAME=               ${DISTNAME:S/_/-/:S/.orig//}
+PKGREVISION=           1
 CATEGORIES=            www textproc
 MASTER_SITES=          ${MASTER_SITE_DEBIAN:=pool/main/i/ikiwiki/}
 EXTRACT_SUFX=          .tar.xz
diff -r 706c02ebc3c1 -r c4209c594f04 www/ikiwiki/distinfo
--- a/www/ikiwiki/distinfo      Fri Mar 09 14:38:36 2018 +0000
+++ b/www/ikiwiki/distinfo      Fri Mar 09 16:12:50 2018 +0000
@@ -1,8 +1,10 @@
-$NetBSD: distinfo,v 1.125 2018/03/02 19:20:20 schmonz Exp $
+$NetBSD: distinfo,v 1.126 2018/03/09 16:12:50 schmonz Exp $
 
 SHA1 (ikiwiki_3.20180228.orig.tar.xz) = 736abf42a48007ac379bb1243ba120e7ec44a5a3
 RMD160 (ikiwiki_3.20180228.orig.tar.xz) = e8ac97d347228caacec54c5af8206ab457e7d46a
 SHA512 (ikiwiki_3.20180228.orig.tar.xz) = d3b20ff564ece42057ea7c4693a53ff1053874c55163b540d2d9ac184fb9bae2b36ebd0de7335fee7251134768e3bbdcbefc2915a728ef305948e7bf2463b88f
 Size (ikiwiki_3.20180228.orig.tar.xz) = 2637180 bytes
+SHA1 (patch-IkiWiki_Plugin_mdwn.pm) = 881d202ea0a325575c62f80d4432557398675778
 SHA1 (patch-Makefile.PL) = 35f12c579d497d2462d8e0c0f84c2e2144aaec60
 SHA1 (patch-po_Makefile) = 7adc25868a3d36157f7e3af7caedcec67e008397
+SHA1 (patch-t_mdwn.t) = 6c4fb5489cf36755b12825a57c2c7fae6e6dfc36
diff -r 706c02ebc3c1 -r c4209c594f04 www/ikiwiki/patches/patch-IkiWiki_Plugin_mdwn.pm
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/ikiwiki/patches/patch-IkiWiki_Plugin_mdwn.pm  Fri Mar 09 16:12:50 2018 +0000
@@ -0,0 +1,122 @@
+$NetBSD: patch-IkiWiki_Plugin_mdwn.pm,v 1.1 2018/03/09 16:12:50 schmonz Exp $
+
+Automatically detect which libdiscount flags to use.
+
+--- IkiWiki/Plugin/mdwn.pm.orig        2018-02-28 10:41:06.000000000 +0000
++++ IkiWiki/Plugin/mdwn.pm
+@@ -89,6 +89,55 @@ sub htmlize (@) {
+                   (! exists $config{nodiscount} || ! $config{nodiscount})) {
+                       eval q{use Text::Markdown::Discount};
+                       if (! $@) {
++                              my $markdown = \&Text::Markdown::Discount::markdown;
++                              my $always_flags = 0;
++
++                              # Disable Pandoc-style % Title, % Author, % Date
++                              # Use the meta plugin instead
++                              $always_flags |= Text::Markdown::Discount::MKD_NOHEADER();
++
++                              # Disable Unicodification of quote marks, em dashes...
++                              # Use the typography plugin instead
++                              $always_flags |= Text::Markdown::Discount::MKD_NOPANTS();
++
++                              # Workaround for discount's eliding of <style> blocks.
++                              # https://rt.cpan.org/Ticket/Display.html?id=74016
++                              if (Text::Markdown::Discount->can('MKD_NOSTYLE')) {
++                                      $always_flags |= Text::Markdown::Discount::MKD_NOSTYLE();
++                              }
++                              elsif ($markdown->('<style>x</style>', 0) !~ '<style>' &&
++                                      $markdown->('<style>x</style>', 0x00400000) =~ m{<style>x</style>}) {
++                                      $always_flags |= 0x00400000;
++                              }
++
++                              # Enable fenced code blocks in libmarkdown >= 2.2.0
++                              # https://bugs.debian.org/888055
++                              if (Text::Markdown::Discount->can('MKD_FENCEDCODE')) {
++                                      $always_flags |= Text::Markdown::Discount::MKD_FENCEDCODE();
++                              }
++                              elsif ($markdown->("~~~\nx\n~~~", 0) !~ m{<pre\b} &&
++                                      $markdown->("~~~\nx\n~~~", 0x02000000) =~ m{<pre\b}) {
++                                      $always_flags |= 0x02000000;
++                              }
++
++                              # PHP Markdown Extra-style term\n: definition -> <dl>
++                              if (Text::Markdown::Discount->can('MKD_DLEXTRA')) {
++                                      $always_flags |= Text::Markdown::Discount::MKD_DLEXTRA();
++                              }
++                              elsif ($markdown->("term\n: def\n", 0) !~ m{<dl>} &&
++                                      $markdown->("term\n: def\n", 0x01000000) =~ m{<dl>}) {
++                                      $always_flags |= 0x01000000;
++                              }
++
++                              # Allow dashes and underscores in tag names
++                              if (Text::Markdown::Discount->can('MKD_GITHUBTAGS')) {
++                                      $always_flags |= Text::Markdown::Discount::MKD_GITHUBTAGS();
++                              }
++                              elsif ($markdown->('<foo_bar>', 0) !~ m{<foo_bar} &&
++                                      $markdown->('<foo_bar>', 0x08000000) =~ m{<foo_bar\b}) {
++                                      $always_flags |= 0x08000000;
++                              }
++
+                               $markdown_sub=sub {
+                                       my $t=shift;
+ 
+@@ -96,15 +145,7 @@ sub htmlize (@) {
+                                       # https://rt.cpan.org/Ticket/Display.html?id=73657
+                                       return "" if $t=~/^\s*$/;
+ 
+-                                      my $flags=0;
+-
+-                                      # Disable Pandoc-style % Title, % Author, % Date
+-                                      # Use the meta plugin instead
+-                                      $flags |= Text::Markdown::Discount::MKD_NOHEADER();
+-
+-                                      # Disable Unicodification of quote marks, em dashes...
+-                                      # Use the typography plugin instead
+-                                      $flags |= Text::Markdown::Discount::MKD_NOPANTS();
++                                      my $flags=$always_flags;
+ 
+                                       if ($config{mdwn_footnotes}) {
+                                               $flags |= Text::Markdown::Discount::MKD_EXTRA_FOOTNOTE();
+@@ -114,42 +155,6 @@ sub htmlize (@) {
+                                               $flags |= Text::Markdown::Discount::MKD_NOALPHALIST();
+                                       }
+ 
+-                                      # Workaround for discount's eliding
+-                                      # of <style> blocks.
+-                                      # https://rt.cpan.org/Ticket/Display.html?id=74016
+-                                      if (Text::Markdown::Discount->can("MKD_NOSTYLE")) {
+-                                              $flags |= Text::Markdown::Discount::MKD_NOSTYLE();
+-                                      }
+-                                      else {
+-                                              # This is correct for the libmarkdown.so.2 ABI
+-                                              $flags |= 0x00400000;
+-                                      }
+-
+-                                      # Enable fenced code blocks in libmarkdown >= 2.2.0
+-                                      # https://bugs.debian.org/888055
+-                                      if (Text::Markdown::Discount->can("MKD_FENCEDCODE")) {
+-                                              $flags |= Text::Markdown::Discount::MKD_FENCEDCODE();
+-                                      }
+-                                      else {
+-                                              $flags |= 0x02000000;
+-                                      }
+-
+-                                      # PHP Markdown Extra-style term\n: definition -> <dl>
+-                                      if (Text::Markdown::Discount->can("MKD_DLEXTRA")) {
+-                                              $flags |= Text::Markdown::Discount::MKD_DLEXTRA();
+-                                      }
+-                                      else {
+-                                              $flags |= 0x01000000;
+-                                      }
+-
+-                                      # Allow dashes and underscores in tag names
+-                                      if (Text::Markdown::Discount->can("MKD_GITHUBTAGS")) {
+-                                              $flags |= Text::Markdown::Discount::MKD_GITHUBTAGS();
+-                                      }
+-                                      else {
+-                                              $flags |= 0x08000000;
+-                                      }
+-
+                                       return Text::Markdown::Discount::markdown($t, $flags);
+                               }
+                       }
diff -r 706c02ebc3c1 -r c4209c594f04 www/ikiwiki/patches/patch-t_mdwn.t
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/ikiwiki/patches/patch-t_mdwn.t        Fri Mar 09 16:12:50 2018 +0000
@@ -0,0 +1,40 @@
+$NetBSD: patch-t_mdwn.t,v 1.1 2018/03/09 16:12:50 schmonz Exp $
+
+Automatically detect which libdiscount flags to use.
+
+--- t/mdwn.t.orig      2018-02-28 10:41:06.000000000 +0000
++++ t/mdwn.t
+@@ -8,6 +8,7 @@ BEGIN { use_ok("IkiWiki"); }
+ 
+ %config=IkiWiki::defaultconfig();
+ $config{srcdir}=$config{destdir}="/dev/null";
++$config{disable_plugins}=["htmlscrubber"];
+ IkiWiki::loadplugins();
+ IkiWiki::checkconfig();
+ 
+@@ -41,4 +42,25 @@ like(IkiWiki::htmlize("foo", "foo", "mdw
+       "This works[^1]\n\n[^1]: Sometimes it doesn't.\n"),
+       qr{<p>This works<sup\W}, "footnotes can be enabled");
+ 
++SKIP: {
++      skip 'set $IKIWIKI_TEST_ASSUME_MODERN_DISCOUNT if you have Discount 2.2.0+', 4
++              unless $ENV{IKIWIKI_TEST_ASSUME_MODERN_DISCOUNT};
++      like(IkiWiki::htmlize("foo", "foo", "mdwn",
++                      "Definition list\n: A useful HTML structure\n"),
++              qr{<dl>.*<dt>Definition list</dt>\s*<dd>A useful HTML structure</dd>}s,
++              "definition lists are enabled by default");
++      like(IkiWiki::htmlize("foo", "foo", "mdwn",
++                      "```\n#!/bin/sh\n```\n"),
++              qr{<pre>\s*<code>\s*[#]!/bin/sh\s*</code>\s*</pre>}s,
++              "code blocks are enabled by default");
++      like(IkiWiki::htmlize("foo", "foo", "mdwn",
++                      "<foo_bar>"),
++              qr{<foo_bar>},
++              "GitHub tag name extensions are enabled by default");
++      like(IkiWiki::htmlize("foo", "foo", "mdwn",
++                      "<style>foo</style>"),
++              qr{<style>foo</style>},
++              "Styles are not stripped by default");
++}
++
+ done_testing();



Home | Main Index | Thread Index | Old Index