def collect_list(parent, current):
  # このフォルダのパスと子供一覧をリストに追加
  children = Bookmark.gatherUrlOrHash(current)
  folder = {
    'depth': getDepth(parent),
    'path': getPath(parent),
    'children': children
  }
  outlist = [folder]
  # 子フォルダから再帰的にパスと子供一覧を集める
  child_list = filter(Bookmark.isFolder, Bookmark.getChildren(current))
  def collect_child(child):
    newPath = getPath(parent) + '/' + Bookmark.getTitle(child)
    child_folder = {
      'depth': getDepth(parent) + 1,
      'path': newPath
    }
    children = collect_list(child_folder, child)
    outlist.extend(children)
  map(collect_child, child_list)
  return outlist