From 20aeafec7fee769fe8889b3a1ae8e0557273d628 Mon Sep 17 00:00:00 2001 From: s-ol Date: Tue, 8 Oct 2019 14:36:07 +0200 Subject: fix conversion pattern escapes --- mmm/mmmfs/conversion.moon | 7 ++++--- mmm/mmmfs/converts.moon | 2 +- 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 }, -- cgit v1.2.3