aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2019-10-08 12:36:07 +0000
committers-ol <s-ol@users.noreply.github.com>2019-10-08 12:36:07 +0000
commit20aeafec7fee769fe8889b3a1ae8e0557273d628 (patch)
tree3caae036c15abe18e46483426d2006faab48e2a8
parentchange server path mapping (diff)
downloadmmm-20aeafec7fee769fe8889b3a1ae8e0557273d628.tar.gz
mmm-20aeafec7fee769fe8889b3a1ae8e0557273d628.zip
fix conversion pattern escapes
-rw-r--r--mmm/mmmfs/conversion.moon7
-rw-r--r--mmm/mmmfs/converts.moon2
2 files changed, 5 insertions, 4 deletions
diff --git a/mmm/mmmfs/conversion.moon b/mmm/mmmfs/conversion.moon
index 54cd680..871ba7e 100644
--- a/mmm/mmmfs/conversion.moon
+++ b/mmm/mmmfs/conversion.moon
@@ -2,14 +2,15 @@ require = relative ..., 1
converts = require '.converts'
count = (base, pattern='->') -> select 2, base\gsub pattern, ''
-escape_pattern = (inp) -> "^#{inp\gsub '([-/])', '%%%1'}$"
+escape_pattern = (inp) -> "^#{inp\gsub '([^%w])', '%%%1'}$"
+escape_inp = (inp) -> "^#{inp\gsub '([-/])', '%%%1'}$"
-- attempt to find a conversion path from 'have' to 'want'
-- * have - start type string or list of type strings
-- * want - stop type pattern
-- * limit - limit conversion amount
-- returns a list of conversion steps
-get_conversions = (want, have, _converts=converts, limit=3) ->
+get_conversions = (want, have, _converts=converts, limit=5) ->
assert have, 'need starting type(s)'
if 'string' == type have
@@ -28,7 +29,7 @@ get_conversions = (want, have, _converts=converts, limit=3) ->
return conversions, start
else
for convert in *_converts
- inp = escape_pattern convert.inp
+ inp = escape_inp convert.inp
continue unless rest\match inp
result = rest\gsub inp, convert.out
if result
diff --git a/mmm/mmmfs/converts.moon b/mmm/mmmfs/converts.moon
index f508d23..766c8ad 100644
--- a/mmm/mmmfs/converts.moon
+++ b/mmm/mmmfs/converts.moon
@@ -201,7 +201,7 @@ converts = {
transform: single code
},
{
- inp: 'URL -> .*',
+ inp: 'URL -> .+',
out: 'mmm/dom',
transform: single code
},