fix(core): avoid mutating document data for fallback date...
apples-kksk
·
2026-09-18
·
via Recent Commits to jekyll:master
| Original file line number | Diff line number | Diff line change |
|---|
@@ -143,12 +143,14 @@ gettalong
|
143 | 143 | ghp |
144 | 144 | ghpages |
145 | 145 | giraffeacademy |
| 146 | +gitcms |
146 | 147 | githubcom |
147 | 148 | gitlab |
148 | 149 | gjtorikian |
149 | 150 | globbed |
150 | 151 | gotcha |
151 | 152 | Goulven |
| 153 | +GPT |
152 | 154 | gridism |
153 | 155 | GSo |
154 | 156 | gsubbing |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -84,7 +84,7 @@ def merge_data!(other, source: "YAML front matter")
|
84 | 84 | # |
85 | 85 | # Return document date string. |
86 | 86 | def date |
87 | | -data["date"] ||= (draft? ? source_file_mtime : site.time) |
| 87 | +data["date"] || fallback_date |
88 | 88 | end |
89 | 89 | |
90 | 90 | # Return document file modification time in the form of a Time object. |
@@ -539,5 +539,9 @@ def modify_date(date)
|
539 | 539 | def generate_excerpt |
540 | 540 | data["excerpt"] ||= Jekyll::Excerpt.new(self) if generate_excerpt? |
541 | 541 | end |
| 542 | + |
| 543 | +def fallback_date |
| 544 | +@fallback_date ||= (draft? ? source_file_mtime : site.time) |
| 545 | +end |
542 | 546 | end |
543 | 547 | end |
| Original file line number | Diff line number | Diff line change |
|---|
@@ -77,6 +77,14 @@ def setup_document_with_dates(filename)
|
77 | 77 | assert_equal Time.now.strftime("%Y/%m/%d"), @document.to_liquid["date"].strftime("%Y/%m/%d") |
78 | 78 | end |
79 | 79 | |
| 80 | +should "not mutate its data when resolving a fallback date" do |
| 81 | +refute @document.data.key?("date") |
| 82 | + |
| 83 | +@document.to_liquid["date"] |
| 84 | + |
| 85 | +refute @document.data.key?("date") |
| 86 | +end |
| 87 | + |
80 | 88 | should "be jsonify-able" do |
81 | 89 | page_json = @document.to_liquid.to_json |
82 | 90 | parsed = JSON.parse(page_json) |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。