name: VEHICLES
path: ,
name: LAND
path: ,VEHICLES,
name: WATER
path: ,VEHICLES,
name: CARS
path: ,VEHICLES,LAND,
name: BICYCLES
path: ,VEHICLES,LAND,
First up is to sort them by path+name:
VEHICLES
LAND
BICYCLES
CARS
WATER
Then, you can recursively (well, not strictly in the sense of that word because of the
i
, but you get the point) generate the tree using a mixin:mixin rpt(base)
- item = items[i];
- re = new RegExp('^' + base);
- here = item.path.replace(re, '');
- here = here.substring(0, here.indexOf(','));
- re2 = new RegExp('^' + base);
if here == ''
li= item.name
- i++;
else if re2.test(item.path)
ol
mixin rpt(base + here + ',')
ol
- var i = 0
while i < items.length
mixin rpt(',')
Edit: Oh dear pasted the wrong code. Here's the correct one.
mixin rpt(base)
- var re = new RegExp('^' + base + '$');
- var re2 = new RegExp('^' + base);
- var end = false;
- while (i < items.length && !end)
- var item = items[i];
if re.test(item.path)
li= item.name
- i++;
else if re2.test(item.path)
ol
mixin rpt(item.path)
else
- end = true
h1 Areas
ol
if items
- var i = 0
mixin rpt(',')
That was fun!
No comments:
Post a Comment