490 |
490 |
491 /* PDF/HTML presentation */ |
491 /* PDF/HTML presentation */ |
492 |
492 |
493 if (!no_build) { |
493 if (!no_build) { |
494 val presentation_dir = presentation.dir(store) |
494 val presentation_dir = presentation.dir(store) |
495 progress.echo("Presentation in " + presentation_dir.absolute + " ...") |
495 progress.echo("Presentation in " + presentation_dir.absolute) |
496 |
496 |
497 val presentation_chapters = |
497 val presentation_chapters = |
498 for { info <- results.infos if results(info.name).ok && presentation.enabled(info) } |
498 (for { |
|
499 session_name <- deps.sessions_structure.build_topological_order.iterator |
|
500 info = results.info(session_name) |
|
501 if presentation.enabled(info) && results(session_name).ok } |
499 yield { |
502 yield { |
500 Presentation.session_html(info.name, deps, store, presentation) |
503 progress.echo("Presenting " + session_name + " ...") |
501 (info.chapter, (info.name, info.description)) |
504 Presentation.session_html(session_name, deps, store, presentation) |
502 } |
505 (info.chapter, (session_name, info.description)) |
|
506 }).toList |
503 |
507 |
504 val browser_chapters = |
508 val browser_chapters = |
505 presentation_chapters.groupBy(_._1). |
509 presentation_chapters.groupBy(_._1). |
506 map({ case (chapter, es) => (chapter, es.map(_._2)) }).filterNot(_._2.isEmpty) |
510 map({ case (chapter, es) => (chapter, es.map(_._2)) }).filterNot(_._2.isEmpty) |
507 |
511 |