annotate tests/bakes/test_pagination.bake @ 369:4b1019bb2533

serve: Giant refactor to change how we handle data when serving pages. * We need a distinction between source metadata and route metadata. In most cases they're the same, but in cases like taxonomy pages, route metadata contains more things that can't be in source metadata if we want to re-use cached pages. * Create a new `QualifiedPage` type which is a page with a specific route and route metadata. Pass this around in many places. * Instead of passing an URL around, use the route in the `QualifiedPage` to generate URLs. This is better since it removes the guess-work from trying to generate URLs for sub-pages. * Deep-copy app and page configurations before passing them around to things that could modify them, like data builders and such. * Exclude taxonomy pages from iterator data providers. * Properly nest iterator data providers for when the theme and user page sources are merged inside `site.pages`.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 03 May 2015 18:47:10 -0700
parents 498a917cd2d4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
352
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 ---
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 config:
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 site:
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 posts_per_page: 3
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 pagination_suffix: /page%num%
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 in:
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 posts/2015-03-01_post01.md: "---\ntitle: Post 01\n---\n"
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 posts/2015-03-02_post02.md: "---\ntitle: Post 02\n---\n"
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 posts/2015-03-03_post03.md: "---\ntitle: Post 03\n---\n"
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 posts/2015-03-04_post04.md: "---\ntitle: Post 04\n---\n"
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 posts/2015-03-05_post05.md: "---\ntitle: Post 05\n---\n"
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12 posts/2015-03-06_post06.md: "---\ntitle: Post 06\n---\n"
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 posts/2015-03-07_post07.md: "---\ntitle: Post 07\n---\n"
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 pages/_index.md: ''
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 pages/foo.md: |
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 {%- for p in pagination.items -%}
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 {{p.url}} {{p.title}}
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 {% endfor -%}
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19 {{pagination.prev_page}}
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 {{pagination.this_page}}
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 {{pagination.next_page}}
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 outfiles:
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 foo.html: |
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 /2015/03/07/post07.html Post 07
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 /2015/03/06/post06.html Post 06
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 /2015/03/05/post05.html Post 05
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 None
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 /foo.html
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 /foo/page2.html
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 foo/page2.html: |
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 /2015/03/04/post04.html Post 04
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32 /2015/03/03/post03.html Post 03
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 /2015/03/02/post02.html Post 02
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 /foo.html
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 /foo/page2.html
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 /foo/page3.html
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 foo/page3.html: |
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 /2015/03/01/post01.html Post 01
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 /foo/page2.html
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 /foo/page3.html
498a917cd2d4 pagination: Make pagination use routes to generate proper URLs.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 None
369
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
42 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
43 config:
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
44 site:
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
45 posts_per_page: 3
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
46 in:
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
47 posts/2015-03-01_post01.md: |
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
48 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
49 title: Post 01
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
50 tags: [foo]
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
51 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
52 posts/2015-03-02_post02.md: |
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
53 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
54 title: Post 02
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
55 tags: [foo]
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
56 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
57 posts/2015-03-03_post03.md: |
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
58 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
59 title: Post 03
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
60 tags: [foo]
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
61 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
62 posts/2015-03-04_post04.md: |
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
63 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
64 title: Post 04
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
65 tags: [foo]
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
66 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
67 posts/2015-03-05_post05.md: |
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
68 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
69 title: Post 05
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
70 tags: [foo]
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
71 ---
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
72 pages/_index.md: ''
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
73 pages/_tag.md: |
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
74 Posts with {{tag}}
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
75 {% for p in pagination.items -%}
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
76 {{p.url}} {{p.title}}
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
77 {% endfor -%}
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
78 {{pagination.prev_page}}
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
79 {{pagination.this_page}}
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
80 {{pagination.next_page}}
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
81 outfiles:
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
82 tag/foo.html: |
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
83 Posts with foo
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
84 /2015/03/05/post05.html Post 05
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
85 /2015/03/04/post04.html Post 04
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
86 /2015/03/03/post03.html Post 03
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
87 None
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
88 /tag/foo.html
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
89 /tag/foo/2.html
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 352
diff changeset
90