docs: def _build_page(self, filepath):
          """ To build from filepath, relative to pages_dir """
          filename = filepath.split("/")[-1]
          # If filename starts with _ (underscore) or . (dot) do not build
          if not filename.startswith(("_", ".")) and (filename.endswith(PAGE_FORMAT)):
              meta = self._get_page_meta(filepath)
              content = self._get_page_content(filepath)
  
              # The default context for the page
              _default_page = {
                  "build_dir": self.build_dir,
                  "filepath": meta["filepath"],
                  "context": {"page": meta},
                  "content": content,
                  "markup": meta.get("markup"),
                  "template": meta.get("template"),
                  "layout": meta.get("layout") or self.default_layout
              }
  
              # GENERATOR
              # Allows to generate
              _generator = meta.get("_generator")
              if _generator:
                  data = self._data.get(_generator.get("data_source"))
  
                  # We want these back in meta in they exists in the data
                  special_meta = ["title", "slug", "description"]
  
                  # SINGLE
                  if _generator.get("type") == "single":
                      for d in data:
                          dmeta = copy.deepcopy(meta)
                          page = copy.deepcopy(_default_page)
                          for _ in special_meta:
                              if _ in d:
                                  dmeta[_] = d.get(_)
  
                          # If generator has the slug, it will substitute if
                          # Slug in the generator must have token from the data
                          # to generate the slug
                          if "slug" in _generator:
                              dmeta["slug"] = _generator.get("slug").format(**d)
  
                          # Slug is required
                          if "slug" not in dmeta:
                              print("WARNING: Skipping page because it's missing `slug`")
                              continue
                          slug = dmeta.get("slug")
                          dmeta["url"] = slug
                          dmeta["context"] = d
  
                          page.update({
                              "filepath": slug,
                              "context": {"page": dmeta}
                          })
                          self.create_page(**page)
  
                  if _generator.get("type") == "pagination":
  
                      per_page = int(_generator.get("per_page", self.site_config.get("pagination.per_page", 10)))
                      left_edge = int(_generator.get("left_edge", self.site_config.get("pagination.left_edge", 2)))
                      left_current = int(_generator.get("left_edge", self.site_config.get("pagination.left_current", 3)))
                      right_current = int(_generator.get("right_current", self.site_config.get("pagination.right_current", 4)))
                      right_edge = int(_generator.get("right_edge", self.site_config.get("pagination.right_edge", 2)))
                      padding = _generator.get("padding")
                      slug = _generator.get("slug")
                      limit = _generator.get("limit")
  
                      if "limit" in _generator:
                          data = data[:int(limit)]
                      data_chunks = utils.chunk_list(data, per_page)
                      len_data = len(data)
  
                      for i, d in enumerate(data_chunks):
                          dmeta = copy.deepcopy(meta)
                          page = copy.deepcopy(_default_page)
  
                          page_num = i + 1
                          _paginator = Paginator([],
                                                 total=len_data,
                                                 page=page_num,
                                                 per_page=per_page,
                                                 padding=padding,
                                                 left_edge=left_edge,
                                                 right_edge=right_edge,
                                                 left_current=left_current,
                                                 right_current=right_current)
                          _paginator.slug = slug
                          _paginator.index_slug = _generator.get("index_slug")
  
                          _slug = slug.format(**{"page_num": page_num})
                          dmeta["url"] = _slug
                          dmeta["context"] = d
                          dmeta["paginator"] = _paginator
                          page.update({
                              "filepath": _slug,
                              "context": {"page": dmeta}
                          })
                          self.create_page(**page)
  
                          # First page need to generate the index
                          if i == 0 and _generator.get("index_slug"):
                              page["filepath"] = _generator.get("index_slug")
                              self.create_page(**page)
  
              # NORMAL PAGE
              else:
                  self.create_page(**_default_page)