X-Git-Url: http://nitlanguage.org diff --git a/src/nitweb.nit b/src/nitweb.nit index 3617df4..8baf1e8 100644 --- a/src/nitweb.nit +++ b/src/nitweb.nit @@ -17,7 +17,6 @@ module nitweb import frontend import doc::api -import doc::doc_down redef class ToolContext @@ -72,9 +71,9 @@ private class NitwebPhase accept_attribute = not toolcontext.opt_no_attribute.value ) - var view = new ModelView(model, mainmodule, filter) + var catalog = build_catalog(toolcontext.modelbuilder, filter) - var config = new NitwebConfig(model, mainmodule, toolcontext.modelbuilder, view) + var config = new NitwebConfig(model, mainmodule, toolcontext.modelbuilder, filter, catalog) var config_file = toolcontext.opt_config.value if config_file == null then config.default_config_file = "nitweb.ini" config.parse_options(args) @@ -88,8 +87,8 @@ private class NitwebPhase redef fun process_mainmodule(mainmodule, mmodules) do var config = build_config(toolcontext, mainmodule) + config.model.index # pre load model index config.model.nitdoc_md_processor = config.md_processor - config.build_catalog var app = new App @@ -100,10 +99,32 @@ private class NitwebPhase app.use("/oauth", new GithubOAuthCallBack(config.github_client_id, config.github_client_secret)) app.use("/logout", new GithubLogout) app.use("/*", new StaticHandler(toolcontext.share_dir / "nitweb", "index.html")) - app.use_after("/*", new ConsoleLog) + app.use_after("/*", new PopLogger(info_level)) app.listen(config.app_host, config.app_port) end + + # Build the catalog + # + # This method should be called at nitweb startup. + fun build_catalog(modelbuilder: ModelBuilder, filter: nullable ModelFilter): Catalog do + var catalog = new Catalog(modelbuilder) + var mpackages = modelbuilder.model.collect_mpackages(filter) + # Compute the poset + for p in mpackages do + var g = p.root + assert g != null + modelbuilder.scan_group(g) + end + # Build the catalog + for mpackage in mpackages do + catalog.package_page(mpackage) + catalog.git_info(mpackage) + catalog.mpackage_stats(mpackage) + end + return catalog + end + end # build toolcontext