# -*- coding: utf-8 -*- 

# lp4all: literate programming embedded in source code as wiki comments
# Copyright (C) 2006 Jean-Marie Favreau, Frédéric Lehobey, David Mentré
#                    and Thomas Petazzoni
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

import os
import htmlbasicout

Generate an HTML page for each directory. It allows to browse through the different directories of the project, using inputdirs computed before. if file_blocks containts entry for index, use it and remove it from file_blocks.

def build(outdir, project, current_dir, entries, file_blocks):
    files = []
    dirs  = []
    for entry, subentries in entries.iteritems():
        if len(subentries) == 0:
            files.append(entry)
        else:
            dirs.append(entry)
            # recursive call only for non empty subdir
            if not (subentries.has_key('.') and len(subentries) == 1):
                build(outdir, project, os.path.join(current_dir, entry), subentries, file_blocks)

    files.sort()
    dirs.sort()
    index_file = os.path.normpath(os.path.join(current_dir, "index"))
    if file_blocks.has_key(index_file):
        htmlbasicout.index(outdir, project, current_dir, files, dirs, file_blocks[index_file])
        file_blocks.pop(index_file)
    else:
        htmlbasicout.index(outdir, project, current_dir, files, dirs)