Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Create summary page of subcategories
  • Loading branch information
Paul Cochrane committed Apr 6, 2015
1 parent 9e92e09 commit 4c7ea1b
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 6 deletions.
36 changes: 31 additions & 5 deletions lib/Pod/Htmlify.pm6
Expand Up @@ -99,12 +99,38 @@ class Website is export {
for $!categories.categories-table.kv -> $category-key, $title {
my @examples = %!examples-metadata{$category-key}.values;
my @rows = @examples.map: {[.pod-link, .title, .author]};
spurt $!base-html-dir ~ "/categories/$category-key.html", self.p2h(
pod-with-title($title,
pod-table(@rows, headers => @headers),
),
);
my $category-index-pod;
my $category = $!categories.category-with-key($category-key);

if $category.subcategories {
my $category-index-html = qq:to/EOT/;
=begin Html
<h2>Categories for $title </h2>
<ul>
EOT

for $category.subcategories.categories-list -> $subcategory {
my $subcat-title = $subcategory.title;
my $subcat-key = $subcategory.key;
$category-index-html ~= qq:to/EOT/;
<li><a href="/categories/$category-key/$subcat-key.html">$subcat-title </a></li>
EOT
}

$category-index-html ~= qq:to/EOT/;
</ul>
=end Html
\$=pod
EOT
$category-index-pod = EVAL $category-index-html;
}
else {
$category-index-pod = pod-with-title($title,
pod-table(@rows, headers => @headers),
);
}
spurt $!base-html-dir ~ "/categories/$category-key.html",
self.p2h($category-index-pod);
if $category.subcategories {
my $subcategories = $category.subcategories;
for $subcategories.categories-table.kv -> $subcategory-key, $title {
Expand Down
16 changes: 15 additions & 1 deletion t/004-website-basic.t
Expand Up @@ -285,13 +285,23 @@ subtest {
}, "p2h functionality";

subtest {
plan 7;
plan 9;

my %categories-table =
"sender" => "alice",
"receiver" => "bob",
"verifier" => "victor",
;
my $categories = Categories.new(categories-table => %categories-table);
my %subcategories-table =
"quantum" => "quantum victor",
;
my $quantum-subcategories = Categories.new(categories-table => %subcategories-table);
$categories.append-subcategories(
to-category => "verifier",
subcategories => $quantum-subcategories
);

my $base-dir = "/tmp/website-test";
mkdir $base-dir unless $base-dir.IO.d;

Expand Down Expand Up @@ -319,6 +329,10 @@ subtest {
"sender examples html files exist");
ok(($website.base-html-dir ~ "/categories/sender/eve.html").IO.e,
"sender examples html files exist");
ok(($website.base-html-dir ~ "/categories/verifier.html").IO.e,
"verifier examples summary html file exists");
my $verifier-summary = slurp $website.base-html-dir ~ "/categories/verifier.html";
ok($verifier-summary ~~ /"quantum victor"/, "verifier contents");

recursive-rmdir($base-dir) if $base-dir.IO.d;
}, "build() functionality";
Expand Down

0 comments on commit 4c7ea1b

Please sign in to comment.