mirror of
https://github.com/Orc/discount.git
synced 2026-09-25 04:10:00 +03:00
1. Fix a bug in generate.c where MKD_NO_EXT was not being handled.
2. Add -fext to the options for the markdown program 3. `try`ify a bunch more of the test cases.
This commit is contained in:
+8
-5
@@ -602,16 +602,19 @@ linkyformat(MMIOT *f, Cstring text, int image, Footnote *ref)
|
||||
|
||||
if ( image )
|
||||
tag = &imaget;
|
||||
else if ( (f->flags & NO_PSEUDO_PROTO) || (tag = pseudo(ref->link)) == 0 ) {
|
||||
else if ( tag = pseudo(ref->link) ) {
|
||||
if ( f->flags & (NO_PSEUDO_PROTO|SAFELINK) )
|
||||
return 0;
|
||||
}
|
||||
else if ( (f->flags & SAFELINK) && T(ref->link)
|
||||
&& (T(ref->link)[0] != '/')
|
||||
&& !isautoprefix(T(ref->link)) )
|
||||
/* if SAFELINK, only accept links that are local or
|
||||
* a well-known protocol
|
||||
*/
|
||||
if ( (f->flags & SAFELINK) && T(ref->link)
|
||||
&& (T(ref->link)[0] != '/')
|
||||
&& !isautoprefix(T(ref->link)) )
|
||||
return 0;
|
||||
else
|
||||
tag = &linkt;
|
||||
}
|
||||
|
||||
if ( f->flags & tag->flags )
|
||||
return 0;
|
||||
|
||||
@@ -48,6 +48,7 @@ static struct {
|
||||
{ "strict", 0, MKD_STRICT },
|
||||
{ "header", 1, MKD_NOHEADER },
|
||||
{ "html", 1, MKD_NOHTML },
|
||||
{ "ext", 1, MKD_NO_EXT },
|
||||
{ "cdata", 0, MKD_CDATA },
|
||||
{ "pants", 1, MKD_NOPANTS },
|
||||
{ "smarty", 1, MKD_NOPANTS },
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
rc=0
|
||||
|
||||
try() {
|
||||
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
@@ -4,6 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
@@ -4,6 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
@@ -4,6 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
+55
-77
@@ -3,94 +3,72 @@
|
||||
rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
esac
|
||||
|
||||
./echo -n " $1" '..................................' | ./cols 36
|
||||
|
||||
Q=`./echo "$2" | ./markdown $FLAGS`
|
||||
|
||||
|
||||
if [ "$3" = "$Q" ]; then
|
||||
./echo " ok"
|
||||
else
|
||||
./echo " FAILED"
|
||||
./echo "wanted: $3"
|
||||
./echo "got : $Q"
|
||||
rc=1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
HEADER='% title
|
||||
% author(s)
|
||||
% date'
|
||||
|
||||
|
||||
if ./markdown -V | grep HEADER > /dev/null; then
|
||||
|
||||
./echo -n ' valid header ..................... '
|
||||
TEXT='% title
|
||||
try 'valid header' "$HEADER" ''
|
||||
try -F0x0100 'valid header with -F0x0100' "$HEADER" '<p>% title
|
||||
% author(s)
|
||||
% date
|
||||
'
|
||||
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
|
||||
% date</p>'
|
||||
|
||||
if [ "$count" -eq 0 ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
|
||||
./echo -n ' valid header with -F0x0100........ '
|
||||
TEXT='% title
|
||||
try 'invalid header' \
|
||||
'% title
|
||||
% author(s)
|
||||
% date
|
||||
'
|
||||
count=`./echo "$TEXT" | ./markdown -F0x0100 | grep title | wc -l`
|
||||
|
||||
if [ "$count" -gt 0 ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
|
||||
./echo -n ' invalid header ................... '
|
||||
TEXT='% title
|
||||
a pony!' \
|
||||
'<p>% title
|
||||
% author(s)
|
||||
a pony!'
|
||||
a pony!</p>'
|
||||
|
||||
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
|
||||
|
||||
if [ "$count" -gt 0 ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
|
||||
./echo -n ' offset header .................... '
|
||||
TEXT='
|
||||
try 'offset header' \
|
||||
'
|
||||
% title
|
||||
% author(s)
|
||||
% date
|
||||
content'
|
||||
|
||||
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
|
||||
|
||||
if [ "$count" -gt 0 ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
|
||||
./echo -n ' indented header .................. '
|
||||
TEXT=' % title
|
||||
% author(s)
|
||||
% date
|
||||
content'
|
||||
|
||||
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
|
||||
|
||||
if [ "$count" -gt 0 ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
else
|
||||
./echo -n ' ignore headers ................... '
|
||||
TEXT='% title
|
||||
% date' \
|
||||
'<p>% title
|
||||
% author(s)
|
||||
% date
|
||||
'
|
||||
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
|
||||
% date</p>'
|
||||
|
||||
try 'indented header' \
|
||||
' % title
|
||||
% author(s)
|
||||
% date' \
|
||||
'<p> % title
|
||||
% author(s)
|
||||
% date</p>'
|
||||
|
||||
else
|
||||
|
||||
try 'ignore headers' "$HEADER" '<p>% title
|
||||
% author(s)
|
||||
% date</p>'
|
||||
|
||||
if [ "$count" -gt 0 ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $rc
|
||||
|
||||
@@ -4,6 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
+20
-21
@@ -3,30 +3,29 @@
|
||||
rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
./echo -n ' bogus url (-fsafelink) ........... '
|
||||
try() {
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
esac
|
||||
|
||||
./echo -n " $1" '..................................' | ./cols 36
|
||||
|
||||
TRICK='[test](bad:protocol)'
|
||||
Q=`./echo "$2" | ./markdown $FLAGS`
|
||||
|
||||
count=`./echo "$TRICK" | ./markdown -fsafelink | grep '<a' | wc -l`
|
||||
|
||||
if [ $count -eq 0 ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
if [ "$3" = "$Q" ]; then
|
||||
./echo " ok"
|
||||
else
|
||||
./echo " FAILED"
|
||||
./echo "wanted: $3"
|
||||
./echo "got : $Q"
|
||||
rc=1
|
||||
fi
|
||||
}
|
||||
|
||||
./echo -n ' bogus url (-fnosafelink) ......... '
|
||||
|
||||
TRICK='[test](bad:protocol)'
|
||||
|
||||
count=`./echo "$TRICK" | ./markdown -fnosafelink | grep '<a' | wc -l`
|
||||
|
||||
if [ $count -eq 1 ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
try -fsafelink 'bogus url (-fsafelink)' '[test](bad:protocol)' '<p>[test](bad:protocol)</p>'
|
||||
try -fnosafelink 'bogus url (-fnosafelink)' '[test](bad:protocol)' '<p><a href="bad:protocol">test</a></p>'
|
||||
|
||||
exit $rc
|
||||
|
||||
+24
-65
@@ -3,74 +3,33 @@
|
||||
rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
./echo -n ' [](id:) links .................... '
|
||||
try() {
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
esac
|
||||
|
||||
./echo -n " $1" '..................................' | ./cols 36
|
||||
|
||||
ASK=`./echo '[foo](id:bar)' | ./markdown`
|
||||
if ./echo "$ASK" | grep '<a id="bar">foo</a>' >/dev/null; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
Q=`./echo "$2" | ./markdown $FLAGS`
|
||||
|
||||
./echo -n ' [](id:) links with MKD_NO_EXT .... '
|
||||
|
||||
ASK=`./echo '[foo](id:bar)' | MARKDOWN_FLAGS=0x0040 ./markdown`
|
||||
if ./echo "$ASK" | grep '<a id="bar">foo</a>' >/dev/null; then
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
else
|
||||
./echo "ok"
|
||||
fi
|
||||
if [ "$3" = "$Q" ]; then
|
||||
./echo " ok"
|
||||
else
|
||||
./echo " FAILED"
|
||||
./echo "wanted: $3"
|
||||
./echo "got : $Q"
|
||||
rc=1
|
||||
fi
|
||||
}
|
||||
|
||||
./echo -n ' [](class:) links ................. '
|
||||
|
||||
ASK=`./echo '[foo](class:bar)' | ./markdown`
|
||||
|
||||
if ./echo "$ASK" | grep '<span class="bar">foo</span>' >/dev/null; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
|
||||
./echo -n ' [](class:) links with MKD_NO_EXT . '
|
||||
|
||||
ASK=`./echo '[foo](class:bar)' | MARKDOWN_FLAGS=0x0040 ./markdown`
|
||||
|
||||
if ./echo "$ASK" | grep '<span class="bar">foo</span>' >/dev/null; then
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
else
|
||||
./echo "ok"
|
||||
fi
|
||||
|
||||
./echo -n ' [](raw:) links ................... '
|
||||
|
||||
ASK=`./echo '[foo](raw:bar)' | ./markdown`
|
||||
|
||||
count1=`./echo "$ASK" | grep foo | wc -l`
|
||||
count2=`./echo "$ASK" | grep bar | wc -l`
|
||||
|
||||
if [ "$count1" -eq 0 -a "$count2" -eq 1 ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
|
||||
./echo -n ' [](raw:) links with MKD_NO_EXT ... '
|
||||
|
||||
ASK=`./echo '[foo](raw:bar)' | MARKDOWN_FLAGS=0x0040 ./markdown`
|
||||
|
||||
count1=`./echo "$ASK" | grep 'raw:bar' | wc -l`
|
||||
count2=`./echo "$ASK" | grep 'a href' | wc -l`
|
||||
|
||||
if [ \( "$count1" -gt 0 \) -a \( "$count2" -gt 0 \) ]; then
|
||||
./echo "ok"
|
||||
else
|
||||
./echo "FAILED"
|
||||
rc=1
|
||||
fi
|
||||
try '[](id:) links' '[foo](id:bar)' '<p><a id="bar">foo</a></p>'
|
||||
try -fnoext '[](id:) links with -fnoext' '[foo](id:bar)' '<p>[foo](id:bar)</p>'
|
||||
try '[](class:) links' '[foo](class:bar)' '<p><span class="bar">foo</span></p>'
|
||||
try -fnoext '[](class:) links with -fnoext' '[foo](class:bar)' '<p>[foo](class:bar)</p>'
|
||||
try '[](raw:) links' '[foo](raw:bar)' '<p>bar</p>'
|
||||
try -fnoext '[](raw:) links with -fnoext' '[foo](raw:bar)' '<p>[foo](raw:bar)</p>'
|
||||
|
||||
exit $rc
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
rc=0
|
||||
|
||||
try() {
|
||||
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
@@ -4,6 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=0x0; export MARKDOWN_FLAGS
|
||||
|
||||
try() {
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS="$1"
|
||||
shift ;;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ rc=0
|
||||
MARKDOWN_FLAGS=
|
||||
|
||||
try() {
|
||||
|
||||
unset FLAGS
|
||||
case "$1" in
|
||||
-*) FLAGS=$1
|
||||
shift ;;
|
||||
|
||||
Reference in New Issue
Block a user