View Javadoc
1   /**************************************************************************
2    *
3    * Copyright (c) 2016-2020 Yawg project contributors.
4    *
5    **************************************************************************/
6   
7   package com.varmateo.yawg.spi;
8   
9   import java.nio.file.Path;
10  import java.util.Optional;
11  
12  
13  /**
14   * Information to be used by a baker when baking a file.
15   */
16  public interface PageContext {
17  
18  
19      /**
20       * The URL of the directory containing the current page relative
21       * to the top of the document tree.
22       */
23      String dirUrl();
24  
25  
26      /**
27       * Template to be used when generating the target page.
28       */
29      Optional<Template> templateFor(Path path);
30  
31  
32      /**
33       * Additional variables made available to the template.
34       */
35      PageVars pageVars();
36  
37  
38      /**
39       * The URL of the top of the baked site relative to the current
40       * page. Useful for refering to resources at the top of the
41       * document tree.
42       */
43      String rootRelativeUrl();
44  
45  
46      /**
47       * Randomly generated unique bake identifier. Each bake will have
48       * a different identifier.
49       */
50      String bakeId();
51  
52  }