Fri Mar 9 16:12:50 2018 UTC ()
Apply upstream patch to fix regression with older libdiscount where
Markdown links were no longer rendered as links. Bump PKGREVISION.
(schmonz)
diff -r1.153 -r1.154 pkgsrc/www/ikiwiki/Makefile
diff -r1.125 -r1.126 pkgsrc/www/ikiwiki/distinfo
diff -r0 -r1.1 pkgsrc/www/ikiwiki/patches/patch-IkiWiki_Plugin_mdwn.pm
diff -r0 -r1.1 pkgsrc/www/ikiwiki/patches/patch-t_mdwn.t
--- pkgsrc/www/ikiwiki/Makefile 2018/03/04 17:40:28 1.153
+++ pkgsrc/www/ikiwiki/Makefile 2018/03/09 16:12:50 1.154
| @@ -1,18 +1,19 @@ | | | @@ -1,18 +1,19 @@ |
1 | # $NetBSD: Makefile,v 1.153 2018/03/04 17:40:28 schmonz Exp $ | | 1 | # $NetBSD: Makefile,v 1.154 2018/03/09 16:12:50 schmonz Exp $ |
2 | # | | 2 | # |
3 | | | 3 | |
4 | DISTNAME= ikiwiki_3.20180228.orig | | 4 | DISTNAME= ikiwiki_3.20180228.orig |
5 | PKGNAME= ${DISTNAME:S/_/-/:S/.orig//} | | 5 | PKGNAME= ${DISTNAME:S/_/-/:S/.orig//} |
| | | 6 | PKGREVISION= 1 |
6 | CATEGORIES= www textproc | | 7 | CATEGORIES= www textproc |
7 | MASTER_SITES= ${MASTER_SITE_DEBIAN:=pool/main/i/ikiwiki/} | | 8 | MASTER_SITES= ${MASTER_SITE_DEBIAN:=pool/main/i/ikiwiki/} |
8 | EXTRACT_SUFX= .tar.xz | | 9 | EXTRACT_SUFX= .tar.xz |
9 | | | 10 | |
10 | MAINTAINER= schmonz@NetBSD.org | | 11 | MAINTAINER= schmonz@NetBSD.org |
11 | HOMEPAGE= https://ikiwiki.info/ | | 12 | HOMEPAGE= https://ikiwiki.info/ |
12 | COMMENT= Flexible static site generator with dynamic features | | 13 | COMMENT= Flexible static site generator with dynamic features |
13 | LICENSE= gnu-gpl-v2 | | 14 | LICENSE= gnu-gpl-v2 |
14 | | | 15 | |
15 | DEPENDS+= p5-Text-Markdown-Discount-[0-9]*:../../textproc/p5-Text-Markdown-Discount | | 16 | DEPENDS+= p5-Text-Markdown-Discount-[0-9]*:../../textproc/p5-Text-Markdown-Discount |
16 | DEPENDS+= p5-URI>=1.36:../../www/p5-URI | | 17 | DEPENDS+= p5-URI>=1.36:../../www/p5-URI |
17 | DEPENDS+= p5-HTML-Parser-[0-9]*:../../www/p5-HTML-Parser | | 18 | DEPENDS+= p5-HTML-Parser-[0-9]*:../../www/p5-HTML-Parser |
18 | DEPENDS+= p5-HTML-Template-[0-9]*:../../www/p5-HTML-Template | | 19 | DEPENDS+= p5-HTML-Template-[0-9]*:../../www/p5-HTML-Template |
--- pkgsrc/www/ikiwiki/distinfo 2018/03/02 19:20:20 1.125
+++ pkgsrc/www/ikiwiki/distinfo 2018/03/09 16:12:50 1.126
| @@ -1,8 +1,10 @@ | | | @@ -1,8 +1,10 @@ |
1 | $NetBSD: distinfo,v 1.125 2018/03/02 19:20:20 schmonz Exp $ | | 1 | $NetBSD: distinfo,v 1.126 2018/03/09 16:12:50 schmonz Exp $ |
2 | | | 2 | |
3 | SHA1 (ikiwiki_3.20180228.orig.tar.xz) = 736abf42a48007ac379bb1243ba120e7ec44a5a3 | | 3 | SHA1 (ikiwiki_3.20180228.orig.tar.xz) = 736abf42a48007ac379bb1243ba120e7ec44a5a3 |
4 | RMD160 (ikiwiki_3.20180228.orig.tar.xz) = e8ac97d347228caacec54c5af8206ab457e7d46a | | 4 | RMD160 (ikiwiki_3.20180228.orig.tar.xz) = e8ac97d347228caacec54c5af8206ab457e7d46a |
5 | SHA512 (ikiwiki_3.20180228.orig.tar.xz) = d3b20ff564ece42057ea7c4693a53ff1053874c55163b540d2d9ac184fb9bae2b36ebd0de7335fee7251134768e3bbdcbefc2915a728ef305948e7bf2463b88f | | 5 | SHA512 (ikiwiki_3.20180228.orig.tar.xz) = d3b20ff564ece42057ea7c4693a53ff1053874c55163b540d2d9ac184fb9bae2b36ebd0de7335fee7251134768e3bbdcbefc2915a728ef305948e7bf2463b88f |
6 | Size (ikiwiki_3.20180228.orig.tar.xz) = 2637180 bytes | | 6 | Size (ikiwiki_3.20180228.orig.tar.xz) = 2637180 bytes |
| | | 7 | SHA1 (patch-IkiWiki_Plugin_mdwn.pm) = 881d202ea0a325575c62f80d4432557398675778 |
7 | SHA1 (patch-Makefile.PL) = 35f12c579d497d2462d8e0c0f84c2e2144aaec60 | | 8 | SHA1 (patch-Makefile.PL) = 35f12c579d497d2462d8e0c0f84c2e2144aaec60 |
8 | SHA1 (patch-po_Makefile) = 7adc25868a3d36157f7e3af7caedcec67e008397 | | 9 | SHA1 (patch-po_Makefile) = 7adc25868a3d36157f7e3af7caedcec67e008397 |
| | | 10 | SHA1 (patch-t_mdwn.t) = 6c4fb5489cf36755b12825a57c2c7fae6e6dfc36 |
$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);
}
}
$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();