diff --git a/basis/farkup/farkup-tests.factor b/basis/farkup/farkup-tests.factor
index 64699817ac..685b1e3a58 100644
--- a/basis/farkup/farkup-tests.factor
+++ b/basis/farkup/farkup-tests.factor
@@ -49,16 +49,16 @@ link-no-follow? off
[ "\n\n\n\n" ] [ "\r\r\r\r" convert-farkup ] unit-test
[ "\n\n\n" ] [ "\r\r\r" convert-farkup ] unit-test
[ "\n\n\n" ] [ "\n\n\n" convert-farkup ] unit-test
-[ "
foo
bar
" ] [ "foo\n\nbar" convert-farkup ] unit-test
-[ "foo
bar
" ] [ "foo\r\n\r\nbar" convert-farkup ] unit-test
-[ "foo
bar
" ] [ "foo\r\rbar" convert-farkup ] unit-test
-[ "foo
bar
" ] [ "foo\r\r\nbar" convert-farkup ] unit-test
+[ "foo\n
bar
" ] [ "foo\n\nbar" convert-farkup ] unit-test
+[ "foo\n
bar
" ] [ "foo\r\n\r\nbar" convert-farkup ] unit-test
+[ "foo\n
bar
" ] [ "foo\r\rbar" convert-farkup ] unit-test
+[ "foo\n
bar
" ] [ "foo\r\r\nbar" convert-farkup ] unit-test
[ "\nbar\n
" ] [ "\nbar\n" convert-farkup ] unit-test
[ "\nbar\n
" ] [ "\rbar\r" convert-farkup ] unit-test
[ "\nbar\n
" ] [ "\r\nbar\r\n" convert-farkup ] unit-test
-[ "foo
bar
" ] [ "foo\n\n\nbar" convert-farkup ] unit-test
+[ "foo\n
bar
" ] [ "foo\n\n\nbar" convert-farkup ] unit-test
[ "" ] [ "" convert-farkup ] unit-test
@@ -113,7 +113,7 @@ link-no-follow? off
] [ "Feature comparison:\n|a|Factor|Java|Lisp|\n|Coolness|Yes|No|No|\n|Badass|Yes|No|No|\n|Enterprise|Yes|Yes|No|\n|Kosher|Yes|No|Yes|\n" convert-farkup ] unit-test
[
- "Feature comparison:
a | Factor | Java | Lisp |
Coolness | Yes | No | No |
Badass | Yes | No | No |
Enterprise | Yes | Yes | No |
Kosher | Yes | No | Yes |
"
+ "Feature comparison:\n
a | Factor | Java | Lisp |
Coolness | Yes | No | No |
Badass | Yes | No | No |
Enterprise | Yes | Yes | No |
Kosher | Yes | No | Yes |
"
] [ "Feature comparison:\n\n|a|Factor|Java|Lisp|\n|Coolness|Yes|No|No|\n|Badass|Yes|No|No|\n|Enterprise|Yes|Yes|No|\n|Kosher|Yes|No|Yes|\n" convert-farkup ] unit-test
[
@@ -131,7 +131,8 @@ link-no-follow? off
[ "asdf\n
" ] [ "asdf\n-lol\n-haha" convert-farkup ] unit-test
-[ "asdf
" ] [ "asdf\n\n-lol\n-haha" convert-farkup ] unit-test
+[ "asdf\n
" ]
+ [ "asdf\n\n-lol\n-haha" convert-farkup ] unit-test
[ "
" ] [ "___" convert-farkup ] unit-test
[ "
\n" ] [ "___\n" convert-farkup ] unit-test
@@ -151,5 +152,5 @@ link-no-follow? off
[ "paragraph\n a ___ b
" ]
[ "paragraph\n a ___ b" convert-farkup ] unit-test
-[ "\n
" ]
+[ "\n
" ]
[ "\n- a\n___" convert-farkup ] unit-test
diff --git a/basis/farkup/farkup.factor b/basis/farkup/farkup.factor
index 7844cf8f41..0ac0e7a7cf 100644
--- a/basis/farkup/farkup.factor
+++ b/basis/farkup/farkup.factor
@@ -86,7 +86,8 @@ labelled-link = "[[" link-content "|" link-content "]]"
link = image-link | labelled-link | simple-link
-escaped-char = "\" . => [[ second 1string ]]
+escaped-char = "\" .
+ => [[ second 1string ]]
inline-tag = strong | emphasis | superscript | subscript | inline-code
| link | escaped-char
@@ -108,9 +109,10 @@ table = ((table-row nl => [[ first ]] )+ table-row? | table-row)
text = (!(nl | code | heading | inline-delimiter | table ).)+
=> [[ >string ]]
-paragraph-item = (table | nl list | nl line | code | text | inline-tag | inline-delimiter)+
-paragraph = ((paragraph-item nl => [[ first ]])+ nl+ => [[ first ]]
- | (paragraph-item nl)+ paragraph-item?
+paragraph-nl-item = nl (list | line)?
+paragraph-item = (table | code | text | inline-tag | inline-delimiter)+
+paragraph = ((paragraph-item paragraph-nl-item)+ nl+ => [[ first ]]
+ | (paragraph-item paragraph-nl-item)+ paragraph-item?
| paragraph-item)
=> [[ paragraph boa ]]
@@ -134,7 +136,8 @@ line = '___'
=> [[ drop line new ]]
-named-code = '[' (!('{' | whitespace | '[').)+ '{' (!("}]").)+ "}]"
+named-code
+ = '[' (!('{' | whitespace | '[').)+ '{' (!("}]").)+ "}]"
=> [[ [ second >string ] [ fourth >string ] bi code boa ]]
simple-code
@@ -148,8 +151,6 @@ stand-alone
= (line | code | heading | list | table | paragraph | nl)*
;EBNF
-
-
: invalid-url "javascript:alert('Invalid URL in farkup');" ;
: check-url ( href -- href' )