protected List<String> getInheritedItems(WikiPage page, Set<WikiPage> visitedPages)
      throws Exception {
    List<String> items = new ArrayList<String>();
    addItemsFromPage(page, items);

    List<WikiPage> ancestors = WikiPageUtil.getAncestorsOf(page);
    for (WikiPage ancestor : ancestors) {
      if (!visitedPages.contains(ancestor)) {
        visitedPages.add(ancestor);
        addItemsFromPage(ancestor, items);
      }
    }
    return items;
  }