pyssgA tiny-kernel, plugin-driven static site generator

Kế thừa

Kế thừa template cho phép bạn định nghĩa bộ khung trang một lần và để mỗi layout điền vào những phần thay đổi. pyssg dùng {% extends %}{% block %} native của Jinja2 - không có gì thêm để học hay bật.

Một bộ khung gốc

Đặt phần HTML dùng chung trong một template gốc với các block có tên cho những phần biến thiên:

<!-- layouts/base.html -->
<!doctype html>
<html lang="en">
<head>
  <title>{% block title %}{{ site.title }}{% endblock %}</title>
  <link rel="stylesheet" href="/assets/style.50233765.css">
</head>
<body>
  <main>{% block main %}{% endblock %}</main>
</body>
</html>

Mở rộng nó

Một layout cụ thể mở rộng bộ gốc và ghi đè các block:

<!-- layouts/_default/single.html -->
{% extends "base.html" %}

{% block main %}
  <article>{{ content }}</article>
{% endblock %}

Bất cứ thứ gì không bị ghi đè sẽ rơi xuống giá trị mặc định của bộ gốc. Bạn có thể lồng kế thừa sâu tùy thích - một layout section có thể mở rộng một bộ gốc, bộ này lại mở rộng một bộ khung gốc nữa.

Quy ước

Layout tham chiếu mà preset docs() dùng được tổ chức như sau:

layouts/
  base.html              # the skeleton every page shares
  _default/
    single.html          # extends base.html - normal pages
    list.html            # extends base.html - listing pages
  partials/              # reusable snippets (see Partials)

Xem lookup cascade để biết single.htmllist.html được chọn tự động ra sao.