   Object.defineProperties
     title: nav.title
     # how you get here from there, but only if here is an actual place
-    href: webPath.relative context[0], webPath.resolve context... if nav.exists
-    active: context[0] is webPath.resolve context... # ending where we started?
+    href: relative context[0], resolve context... if nav.exists
+    active: context[0] is resolve context... # ending where we started?
   ,
     parent:
       enumerable: yes             # these properties should be easy to find

          @push file
          return transformCallback()
      # normalize the path and break it into its constituent elements
      _path = path.resolve '/', file.relative
        .replace /index\.[^/]+$/, ''          # index identified with directory
        .replace /\.[^./]+$/, '.' + hrefExtension     # e.g. '.jade' -> '.html'
        .split /([^/]*\/)/                    # e.g. '/a/b' -> ['/', 'a/', 'b']
        .filter (element) -> element isnt ''
      # find the right spot for the new resource
      current = navTree
      for element in _path
        current = current.children[element] ?= # recurse down the path, filling
          parent: current                      # in tree with missing elements
          children: {}
          exists: no                           # for directories without index
          title: path.basename element.replace /\/?index[^/]*$/, ''
            .toLowerCase()
            .replace /\.[^.]*$/, ''                    # remove extension
            .replace /(?:^|[-._])[a-z]/g, (first) ->

      current.title = title ? current.title # overwrite defaults with non-nulls
      current.order = order ? current.order
      # use leaf to make the nav object
      nav = navInContext current, [path.join '']
      # set properties of vinyl object XXX does this need error handling?
      for target in targets
        obj = file
