slipway-theme 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/_includes/blocks/annotations.html +18 -0
- data/_includes/blocks/audio.html +22 -0
- data/_includes/blocks/badge.html +2 -0
- data/_includes/blocks/chart.html +32 -0
- data/_includes/blocks/citation.html +12 -0
- data/_includes/blocks/code-group.html +10 -0
- data/_includes/blocks/compare.html +64 -0
- data/_includes/blocks/diff.html +31 -0
- data/_includes/blocks/download.html +28 -0
- data/_includes/blocks/endpoint.html +50 -0
- data/_includes/blocks/file-tree.html +52 -0
- data/_includes/blocks/gallery.html +18 -0
- data/_includes/blocks/hero.html +30 -0
- data/_includes/blocks/kbd.html +27 -0
- data/_includes/blocks/logos.html +21 -0
- data/_includes/blocks/people.html +47 -0
- data/_includes/blocks/pricing.html +28 -0
- data/_includes/blocks/pull-quote.html +22 -0
- data/_includes/blocks/stats.html +14 -0
- data/_includes/blocks/steps.html +24 -0
- data/_includes/blocks/terminal.html +14 -0
- data/_includes/blocks/testimonial.html +23 -0
- data/_includes/blocks/timeline.html +23 -0
- data/_includes/breadcrumbs.html +16 -0
- data/_includes/changelog-version.html +6 -0
- data/_includes/comments.html +19 -0
- data/_includes/edit-sources.html +11 -2
- data/_includes/head.html +5 -0
- data/_includes/i18n/ar.html +35 -0
- data/_includes/i18n/az.html +78 -0
- data/_includes/i18n/bn.html +78 -0
- data/_includes/i18n/ckb.html +78 -0
- data/_includes/i18n/cs.html +78 -0
- data/_includes/i18n/da.html +78 -0
- data/_includes/i18n/de.html +35 -0
- data/_includes/i18n/dv.html +78 -0
- data/_includes/i18n/el.html +78 -0
- data/_includes/i18n/en.html +35 -0
- data/_includes/i18n/es.html +35 -0
- data/_includes/i18n/fa.html +35 -0
- data/_includes/i18n/fi.html +78 -0
- data/_includes/i18n/fr.html +35 -0
- data/_includes/i18n/he.html +36 -0
- data/_includes/i18n/hi.html +78 -0
- data/_includes/i18n/hu.html +78 -0
- data/_includes/i18n/id.html +78 -0
- data/_includes/i18n/it.html +35 -0
- data/_includes/i18n/ja.html +35 -0
- data/_includes/i18n/ko.html +78 -0
- data/_includes/i18n/ms.html +78 -0
- data/_includes/i18n/nb.html +78 -0
- data/_includes/i18n/nl.html +35 -0
- data/_includes/i18n/pl.html +78 -0
- data/_includes/i18n/ps.html +78 -0
- data/_includes/i18n/pt.html +35 -0
- data/_includes/i18n/ro.html +78 -0
- data/_includes/i18n/ru.html +35 -0
- data/_includes/i18n/sd.html +78 -0
- data/_includes/i18n/sv.html +78 -0
- data/_includes/i18n/sw.html +78 -0
- data/_includes/i18n/ta.html +78 -0
- data/_includes/i18n/th.html +78 -0
- data/_includes/i18n/tr.html +35 -0
- data/_includes/i18n/ug.html +78 -0
- data/_includes/i18n/uk.html +78 -0
- data/_includes/i18n/ur.html +78 -0
- data/_includes/i18n/vi.html +78 -0
- data/_includes/i18n/yi.html +78 -0
- data/_includes/i18n/zh.html +35 -0
- data/_includes/i18n-builtin.html +1 -1
- data/_includes/jsonld.html +5 -3
- data/_includes/last-updated.html +12 -0
- data/_includes/page-status.html +19 -0
- data/_includes/schema-table.html +122 -0
- data/_includes/seo.html +23 -3
- data/_includes/snippet.html +20 -0
- data/_layouts/adr-index.html +32 -0
- data/_layouts/adr.html +45 -0
- data/_layouts/changelog-feed.html +28 -0
- data/_layouts/changelog.html +40 -0
- data/_layouts/doc.html +28 -6
- data/_layouts/feed.html +2 -2
- data/_layouts/links.html +31 -0
- data/_layouts/not-found.html +8 -0
- data/_layouts/page.html +7 -2
- data/_layouts/post.html +33 -0
- data/_layouts/search-index.html +32 -2
- data/_layouts/sitemap.html +1 -1
- data/assets/css/components/adr.css +11 -0
- data/assets/css/components/annotations.css +6 -0
- data/assets/css/components/audio.css +8 -0
- data/assets/css/components/badge.css +13 -0
- data/assets/css/components/changelog.css +11 -0
- data/assets/css/components/chart.css +7 -0
- data/assets/css/components/citation.css +5 -0
- data/assets/css/components/code-group.css +9 -0
- data/assets/css/components/compare.css +8 -0
- data/assets/css/components/diff.css +9 -0
- data/assets/css/components/download.css +7 -0
- data/assets/css/components/endpoint.css +1 -0
- data/assets/css/components/file-tree.css +12 -0
- data/assets/css/components/gallery.css +6 -0
- data/assets/css/components/hero.css +11 -0
- data/assets/css/components/kbd.css +4 -0
- data/assets/css/components/logos.css +8 -0
- data/assets/css/components/mirror.css +1 -0
- data/assets/css/components/page-status.css +5 -0
- data/assets/css/components/people.css +7 -0
- data/assets/css/components/pricing.css +9 -0
- data/assets/css/components/pull-quote.css +6 -0
- data/assets/css/components/schema-table.css +13 -0
- data/assets/css/components/stats.css +1 -0
- data/assets/css/components/steps.css +10 -0
- data/assets/css/components/terminal.css +17 -0
- data/assets/css/components/testimonial.css +8 -0
- data/assets/css/components/timeline.css +11 -0
- data/assets/css/lang/ckb.css +6 -0
- data/assets/css/lang/dv.css +6 -0
- data/assets/css/lang/ps.css +3 -0
- data/assets/css/lang/sd.css +10 -0
- data/assets/css/lang/ug.css +3 -0
- data/assets/css/lang/ur.css +10 -0
- data/assets/css/lang/yi.css +5 -0
- data/assets/css/slipway.css +54 -1
- data/assets/js/copy-code.js +1 -1
- data/assets/js/search.js +12 -10
- data/assets/og/template.svg +39 -0
- metadata +99 -2
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{%- case include.key -%}
|
|
2
|
+
{%- when 'about_author' -%}Về tác giả
|
|
3
|
+
{%- when 'accepted' -%}Đã chấp nhận
|
|
4
|
+
{%- when 'adr_date' -%}Ngày
|
|
5
|
+
{%- when 'adr_deciders' -%}Người quyết định
|
|
6
|
+
{%- when 'adr_status' -%}Trạng thái
|
|
7
|
+
{%- when 'adr_superseded_by' -%}Được thay thế bởi
|
|
8
|
+
{%- when 'adr_supersedes' -%}Thay thế
|
|
9
|
+
{%- when 'and' -%}và
|
|
10
|
+
{%- when 'breadcrumbs' -%}Đường dẫn điều hướng
|
|
11
|
+
{%- when 'by' -%}Bởi
|
|
12
|
+
{%- when 'categories' -%}Danh mục
|
|
13
|
+
{%- when 'comma' -%},
|
|
14
|
+
{%- when 'comments' -%}Bình luận
|
|
15
|
+
{%- when 'copied' -%}Đã sao chép
|
|
16
|
+
{%- when 'copy' -%}Sao chép
|
|
17
|
+
{%- when 'copy_failed' -%}Nhấn Ctrl+C
|
|
18
|
+
{%- when 'copy_page_md' -%}Sao chép trang dưới dạng Markdown
|
|
19
|
+
{%- when 'default' -%}Default
|
|
20
|
+
{%- when 'deprecated' -%}Không dùng nữa
|
|
21
|
+
{%- when 'description' -%}Mô tả
|
|
22
|
+
{%- when 'docs_nav' -%}Tài liệu
|
|
23
|
+
{%- when 'edit_label' -%}Chỉnh sửa với trợ lý của bạn
|
|
24
|
+
{%- when 'edit_prompt' -%}Chỉnh sửa {source}. Văn bản hiện tại: "{text}". Thay đổi:
|
|
25
|
+
{%- when 'edited_on' -%}được chỉnh sửa vào
|
|
26
|
+
{%- when 'example_request' -%}Yêu cầu mẫu
|
|
27
|
+
{%- when 'example_response' -%}Phản hồi mẫu
|
|
28
|
+
{%- when 'go_home' -%}Về trang chủ
|
|
29
|
+
{%- when 'home' -%}Trang chủ
|
|
30
|
+
{%- when 'language' -%}Ngôn ngữ
|
|
31
|
+
{%- when 'last_updated' -%}Cập nhật lần cuối
|
|
32
|
+
{%- when 'latest_posts' -%}Bài viết mới nhất
|
|
33
|
+
{%- when 'links' -%}Liên kết
|
|
34
|
+
{%- when 'main_nav' -%}Điều hướng chính
|
|
35
|
+
{%- when 'min_read' -%}phút đọc
|
|
36
|
+
{%- when 'mode_auto' -%}Tự động
|
|
37
|
+
{%- when 'mode_dark' -%}Tối
|
|
38
|
+
{%- when 'mode_light' -%}Sáng
|
|
39
|
+
{%- when 'name' -%}Tên
|
|
40
|
+
{%- when 'next' -%}Tiếp theo
|
|
41
|
+
{%- when 'no' -%}Không
|
|
42
|
+
{%- when 'not_found_text' -%}Địa chỉ này không tồn tại hoặc đã được di chuyển. Hãy dùng ô tìm kiếm hoặc về trang chủ.
|
|
43
|
+
{%- when 'not_found_title' -%}Không tìm thấy trang
|
|
44
|
+
{%- when 'on_this_page' -%}Trên trang này
|
|
45
|
+
{%- when 'pager' -%}Trước và tiếp theo
|
|
46
|
+
{%- when 'parameters' -%}Tham số
|
|
47
|
+
{%- when 'partial' -%}Một phần
|
|
48
|
+
{%- when 'post_pager' -%}Bài viết trước và tiếp theo
|
|
49
|
+
{%- when 'posts' -%}Bài viết
|
|
50
|
+
{%- when 'previous' -%}Trước
|
|
51
|
+
{%- when 'proposed' -%}Đề xuất
|
|
52
|
+
{%- when 'rejected' -%}Bị từ chối
|
|
53
|
+
{%- when 'related_posts' -%}Bài viết liên quan
|
|
54
|
+
{%- when 'releases' -%}Bản phát hành
|
|
55
|
+
{%- when 'required' -%}Bắt buộc
|
|
56
|
+
{%- when 'scheduled' -%}Đã lên lịch
|
|
57
|
+
{%- when 'search' -%}Tìm kiếm
|
|
58
|
+
{%- when 'search_count' -%}{n} kết quả
|
|
59
|
+
{%- when 'search_none' -%}Không có kết quả
|
|
60
|
+
{%- when 'series' -%}Loạt bài
|
|
61
|
+
{%- when 'series_pager' -%}Trước và tiếp theo trong loạt bài này
|
|
62
|
+
{%- when 'series_part' -%}Phần {n} trong tổng số {total}
|
|
63
|
+
{%- when 'skip' -%}Chuyển đến nội dung
|
|
64
|
+
{%- when 'social_links' -%}Liên kết mạng xã hội
|
|
65
|
+
{%- when 'status_beta' -%}Bản thử nghiệm
|
|
66
|
+
{%- when 'status_deprecated' -%}Không dùng nữa
|
|
67
|
+
{%- when 'status_experimental' -%}Thử nghiệm
|
|
68
|
+
{%- when 'status_replaced_by' -%}Được thay thế bởi
|
|
69
|
+
{%- when 'status_since' -%}Từ
|
|
70
|
+
{%- when 'superseded' -%}Đã bị thay thế
|
|
71
|
+
{%- when 'tags' -%}Thẻ
|
|
72
|
+
{%- when 'theme' -%}Giao diện
|
|
73
|
+
{%- when 'translation_key' -%}Khóa dịch
|
|
74
|
+
{%- when 'translation_missing' -%}Trang này chưa được dịch. Đọc bằng:
|
|
75
|
+
{%- when 'type' -%}Loại
|
|
76
|
+
{%- when 'versions' -%}Phiên bản
|
|
77
|
+
{%- when 'yes' -%}Có
|
|
78
|
+
{%- endcase -%}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{%- case include.key -%}
|
|
2
|
+
{%- when 'about_author' -%}וועגן דעם מחבר
|
|
3
|
+
{%- when 'accepted' -%}Accepted
|
|
4
|
+
{%- when 'adr_date' -%}Date
|
|
5
|
+
{%- when 'adr_deciders' -%}Deciders
|
|
6
|
+
{%- when 'adr_status' -%}Status
|
|
7
|
+
{%- when 'adr_superseded_by' -%}Superseded by
|
|
8
|
+
{%- when 'adr_supersedes' -%}Supersedes
|
|
9
|
+
{%- when 'and' -%}און
|
|
10
|
+
{%- when 'breadcrumbs' -%}ברעקלעך
|
|
11
|
+
{%- when 'by' -%}דורך
|
|
12
|
+
{%- when 'categories' -%}קאַטעגאָריעס
|
|
13
|
+
{%- when 'comma' -%},
|
|
14
|
+
{%- when 'comments' -%}קאָמענטאַרן
|
|
15
|
+
{%- when 'copied' -%}קאָפּירט
|
|
16
|
+
{%- when 'copy' -%}קאָפּירן
|
|
17
|
+
{%- when 'copy_failed' -%}דריקט Ctrl+C
|
|
18
|
+
{%- when 'copy_page_md' -%}קאָפּירן בלאַט ווי Markdown
|
|
19
|
+
{%- when 'default' -%}Default
|
|
20
|
+
{%- when 'deprecated' -%}Deprecated
|
|
21
|
+
{%- when 'description' -%}Description
|
|
22
|
+
{%- when 'docs_nav' -%}דאָקומענטאַציע
|
|
23
|
+
{%- when 'edit_label' -%}רעדאַקטירן מיט דיין אַגענט
|
|
24
|
+
{%- when 'edit_prompt' -%}רעדאַקטירן {source}. קראַנט טעקסט: "{text}". טוישן:
|
|
25
|
+
{%- when 'edited_on' -%}רעדאַקטירט אום
|
|
26
|
+
{%- when 'example_request' -%}Example request
|
|
27
|
+
{%- when 'example_response' -%}Example response
|
|
28
|
+
{%- when 'go_home' -%}גיין צום הויפּט בלאַט
|
|
29
|
+
{%- when 'home' -%}הויפּט בלאַט
|
|
30
|
+
{%- when 'language' -%}שפּראַך
|
|
31
|
+
{%- when 'last_updated' -%}לעצט דערהיינטיקט
|
|
32
|
+
{%- when 'latest_posts' -%}לעצטע אַרטיקלען
|
|
33
|
+
{%- when 'links' -%}Links
|
|
34
|
+
{%- when 'main_nav' -%}הויפּט מעניו
|
|
35
|
+
{%- when 'min_read' -%}מין לייענען
|
|
36
|
+
{%- when 'mode_auto' -%}אויטאָמאַטיש
|
|
37
|
+
{%- when 'mode_dark' -%}טונקל
|
|
38
|
+
{%- when 'mode_light' -%}ליכטיק
|
|
39
|
+
{%- when 'name' -%}Name
|
|
40
|
+
{%- when 'next' -%}ווייטערדיק
|
|
41
|
+
{%- when 'no' -%}No
|
|
42
|
+
{%- when 'not_found_text' -%}דער אַדרעס עקזיסטירט נישט אָדער איז אריבערגעפירט געוואָרן. ניצט דעם זוכן פעלד אָדער גייט צום הויפּט בלאַט.
|
|
43
|
+
{%- when 'not_found_title' -%}בלאַט נישט געפונען
|
|
44
|
+
{%- when 'on_this_page' -%}אויף דעם בלאַט
|
|
45
|
+
{%- when 'pager' -%}פֿריִערדיקער און ווייטערדיקער
|
|
46
|
+
{%- when 'parameters' -%}Parameters
|
|
47
|
+
{%- when 'partial' -%}Partial
|
|
48
|
+
{%- when 'post_pager' -%}פֿריִערדיקער און ווייטערדיקער אַרטיקל
|
|
49
|
+
{%- when 'posts' -%}אַרטיקלען
|
|
50
|
+
{%- when 'previous' -%}פֿריִערדיקער
|
|
51
|
+
{%- when 'proposed' -%}Proposed
|
|
52
|
+
{%- when 'rejected' -%}Rejected
|
|
53
|
+
{%- when 'related_posts' -%}פֿאַרבונדענע אַרטיקלען
|
|
54
|
+
{%- when 'releases' -%}Releases
|
|
55
|
+
{%- when 'required' -%}Required
|
|
56
|
+
{%- when 'scheduled' -%}פארגעפלאנט
|
|
57
|
+
{%- when 'search' -%}זוכן
|
|
58
|
+
{%- when 'search_count' -%}{n} רעזולטאַטן
|
|
59
|
+
{%- when 'search_none' -%}קיין רעזולטאַטן
|
|
60
|
+
{%- when 'series' -%}סעריע
|
|
61
|
+
{%- when 'series_pager' -%}פֿריִערדיקער און ווייטערדיקער אין דער סעריע
|
|
62
|
+
{%- when 'series_part' -%}טייל {n} פֿון {total}
|
|
63
|
+
{%- when 'skip' -%}איבערהיפּערן צום אינהאַלט
|
|
64
|
+
{%- when 'social_links' -%}Social links
|
|
65
|
+
{%- when 'status_beta' -%}Beta
|
|
66
|
+
{%- when 'status_deprecated' -%}Deprecated
|
|
67
|
+
{%- when 'status_experimental' -%}Experimental
|
|
68
|
+
{%- when 'status_replaced_by' -%}Replaced by
|
|
69
|
+
{%- when 'status_since' -%}Since
|
|
70
|
+
{%- when 'superseded' -%}Superseded
|
|
71
|
+
{%- when 'tags' -%}טאַגס
|
|
72
|
+
{%- when 'theme' -%}טעמע
|
|
73
|
+
{%- when 'translation_key' -%}איבערזעצונג שליסל
|
|
74
|
+
{%- when 'translation_missing' -%}This page hasn't been translated yet. Read it in:
|
|
75
|
+
{%- when 'type' -%}Type
|
|
76
|
+
{%- when 'versions' -%}Versions
|
|
77
|
+
{%- when 'yes' -%}Yes
|
|
78
|
+
{%- endcase -%}
|
data/_includes/i18n/zh.html
CHANGED
|
@@ -1,35 +1,59 @@
|
|
|
1
1
|
{%- case include.key -%}
|
|
2
2
|
{%- when 'about_author' -%}关于作者
|
|
3
|
+
{%- when 'accepted' -%}Accepted
|
|
4
|
+
{%- when 'adr_date' -%}Date
|
|
5
|
+
{%- when 'adr_deciders' -%}Deciders
|
|
6
|
+
{%- when 'adr_status' -%}Status
|
|
7
|
+
{%- when 'adr_superseded_by' -%}Superseded by
|
|
8
|
+
{%- when 'adr_supersedes' -%}Supersedes
|
|
3
9
|
{%- when 'and' -%}和
|
|
4
10
|
{%- when 'breadcrumbs' -%}面包屑导航
|
|
5
11
|
{%- when 'by' -%}作者
|
|
6
12
|
{%- when 'categories' -%}分类
|
|
7
13
|
{%- when 'comma' -%},
|
|
14
|
+
{%- when 'comments' -%}评论
|
|
8
15
|
{%- when 'copied' -%}已复制
|
|
9
16
|
{%- when 'copy' -%}复制
|
|
10
17
|
{%- when 'copy_failed' -%}按Ctrl+C
|
|
11
18
|
{%- when 'copy_page_md' -%}复制页面为Markdown
|
|
19
|
+
{%- when 'default' -%}Default
|
|
20
|
+
{%- when 'deprecated' -%}Deprecated
|
|
21
|
+
{%- when 'description' -%}Description
|
|
12
22
|
{%- when 'docs_nav' -%}文档
|
|
13
23
|
{%- when 'edit_label' -%}与您的助手一起编辑
|
|
14
24
|
{%- when 'edit_prompt' -%}编辑 {source}。当前文本:"{text}"。更改:
|
|
25
|
+
{%- when 'edited_on' -%}编辑于
|
|
26
|
+
{%- when 'example_request' -%}Example request
|
|
27
|
+
{%- when 'example_response' -%}Example response
|
|
15
28
|
{%- when 'go_home' -%}返回主页
|
|
16
29
|
{%- when 'home' -%}首页
|
|
17
30
|
{%- when 'language' -%}语言
|
|
31
|
+
{%- when 'last_updated' -%}最后更新
|
|
18
32
|
{%- when 'latest_posts' -%}最新文章
|
|
33
|
+
{%- when 'links' -%}Links
|
|
19
34
|
{%- when 'main_nav' -%}主导航
|
|
20
35
|
{%- when 'min_read' -%}分钟阅读
|
|
21
36
|
{%- when 'mode_auto' -%}自动
|
|
22
37
|
{%- when 'mode_dark' -%}深色
|
|
23
38
|
{%- when 'mode_light' -%}浅色
|
|
39
|
+
{%- when 'name' -%}Name
|
|
24
40
|
{%- when 'next' -%}下一个
|
|
41
|
+
{%- when 'no' -%}No
|
|
25
42
|
{%- when 'not_found_text' -%}此地址不存在或已移动。请使用搜索框或返回主页。
|
|
26
43
|
{%- when 'not_found_title' -%}未找到页面
|
|
27
44
|
{%- when 'on_this_page' -%}本页内容
|
|
28
45
|
{%- when 'pager' -%}上一页和下一页
|
|
46
|
+
{%- when 'parameters' -%}Parameters
|
|
47
|
+
{%- when 'partial' -%}Partial
|
|
29
48
|
{%- when 'post_pager' -%}上一篇和下一篇文章
|
|
30
49
|
{%- when 'posts' -%}文章
|
|
31
50
|
{%- when 'previous' -%}上一个
|
|
51
|
+
{%- when 'proposed' -%}Proposed
|
|
52
|
+
{%- when 'rejected' -%}Rejected
|
|
32
53
|
{%- when 'related_posts' -%}相关文章
|
|
54
|
+
{%- when 'releases' -%}Releases
|
|
55
|
+
{%- when 'required' -%}Required
|
|
56
|
+
{%- when 'scheduled' -%}定时发布
|
|
33
57
|
{%- when 'search' -%}搜索
|
|
34
58
|
{%- when 'search_count' -%}{n} 个结果
|
|
35
59
|
{%- when 'search_none' -%}无结果
|
|
@@ -37,7 +61,18 @@
|
|
|
37
61
|
{%- when 'series_pager' -%}本系列的上一个和下一个
|
|
38
62
|
{%- when 'series_part' -%}第 {n} 部分,共 {total} 部分
|
|
39
63
|
{%- when 'skip' -%}跳至内容
|
|
64
|
+
{%- when 'social_links' -%}Social links
|
|
65
|
+
{%- when 'status_beta' -%}Beta
|
|
66
|
+
{%- when 'status_deprecated' -%}Deprecated
|
|
67
|
+
{%- when 'status_experimental' -%}Experimental
|
|
68
|
+
{%- when 'status_replaced_by' -%}Replaced by
|
|
69
|
+
{%- when 'status_since' -%}Since
|
|
70
|
+
{%- when 'superseded' -%}Superseded
|
|
40
71
|
{%- when 'tags' -%}标签
|
|
41
72
|
{%- when 'theme' -%}主题
|
|
42
73
|
{%- when 'translation_key' -%}翻译键
|
|
74
|
+
{%- when 'translation_missing' -%}This page hasn't been translated yet. Read it in:
|
|
75
|
+
{%- when 'type' -%}Type
|
|
76
|
+
{%- when 'versions' -%}Versions
|
|
77
|
+
{%- when 'yes' -%}Yes
|
|
43
78
|
{%- endcase -%}
|
data/_includes/i18n-builtin.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{%- comment -%} Built-in UI strings. A site overrides or adds languages in _data/i18n/<lang>.yml. {%- endcomment -%}
|
|
2
2
|
{%- assign sl_builtin_lang = include.lang -%}
|
|
3
|
-
{%- assign sl_supported = 'fa,ar,he,es,fr,pt,de,it,ru,tr,nl,ja,zh,en' | split: ',' -%}
|
|
3
|
+
{%- assign sl_supported = 'el,fa,ar,he,ur,ckb,dv,ps,sd,yi,ug,es,fr,pt,de,it,ru,tr,nl,ja,zh,az,hu,nb,th,ta,uk,ro,sw,hi,id,ko,ms,bn,vi,cs,da,pl,fi,sv,en' | split: ',' -%}
|
|
4
4
|
{%- unless sl_supported contains sl_builtin_lang -%}
|
|
5
5
|
{%- assign sl_builtin_lang = 'en' -%}
|
|
6
6
|
{%- endunless -%}
|
data/_includes/jsonld.html
CHANGED
|
@@ -16,20 +16,22 @@
|
|
|
16
16
|
{%- assign sl_ld_lang = page.lang | default: site.lang | default: 'en' -%}
|
|
17
17
|
{%- assign sl_ld_title = page.title | default: site.title -%}
|
|
18
18
|
{%- assign sl_ld_author = site.author.name | default: site.author -%}
|
|
19
|
+
{%- assign sl_ld_url = page.canonical_url | default: page.url | absolute_url -%}
|
|
19
20
|
{%- capture sl_ld_site -%}{"@type":"WebSite","name":{{ site.title | default: sl_ld_title | jsonify }},"url":{{ '/' | absolute_url | jsonify }}}{%- endcapture -%}
|
|
20
21
|
{%- capture sl_ld -%}
|
|
21
22
|
{"@context":"https://schema.org","@type":"{{ sl_ld_type }}"
|
|
22
23
|
{%- if sl_ld_type == 'WebSite' -%}
|
|
23
24
|
,"name":{{ site.title | default: sl_ld_title | jsonify }}
|
|
24
25
|
{%- elsif sl_ld_type == 'BlogPosting' or sl_ld_type == 'TechArticle' -%}
|
|
25
|
-
,"headline":{{ sl_ld_title | jsonify }},"mainEntityOfPage":{{
|
|
26
|
+
,"headline":{{ sl_ld_title | jsonify }},"mainEntityOfPage":{{ sl_ld_url | jsonify }},"isPartOf":{{ sl_ld_site }}
|
|
26
27
|
{%- else -%}
|
|
27
28
|
,"name":{{ sl_ld_title | jsonify }},"isPartOf":{{ sl_ld_site }}
|
|
28
29
|
{%- endif -%}
|
|
29
|
-
,"url":{{
|
|
30
|
+
,"url":{{ sl_ld_url | jsonify }},"inLanguage":{{ sl_ld_lang | jsonify }}
|
|
30
31
|
{%- if sl_desc and sl_desc != '' -%},"description":{{ sl_desc | jsonify }}{%- endif -%}
|
|
31
32
|
{%- if sl_ld_type == 'BlogPosting' and page.date -%}
|
|
32
|
-
|
|
33
|
+
{%- assign sl_ld_modified = page.updated | default: page.last_modified_at | default: page.date -%}
|
|
34
|
+
,"datePublished":{{ page.date | date_to_xmlschema | jsonify }},"dateModified":{{ sl_ld_modified | date_to_xmlschema | jsonify }}
|
|
33
35
|
{%- endif -%}
|
|
34
36
|
{%- if sl_ld_type == 'BlogPosting' or sl_ld_type == 'TechArticle' -%}
|
|
35
37
|
{%- if sl_ld_author -%},"author":{"@type":"Person","name":{{ sl_ld_author | jsonify }}}{%- endif -%}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
"Last updated" for a doc page: page.last_modified_at from front matter, or, in Actions mode, from
|
|
3
|
+
the page's last git commit (_plugins/slipway_last_modified.rb). A page without a date shows nothing,
|
|
4
|
+
so classic Pages keeps working without the plugin. The date is localized by date.html; the
|
|
5
|
+
datetime attribute stays the machine-readable ISO 8601 value. Plain HTML, so it reads without
|
|
6
|
+
JavaScript and follows the text direction.
|
|
7
|
+
{%- endcomment -%}
|
|
8
|
+
{%- assign sl_lu_date = page.last_modified_at -%}
|
|
9
|
+
{%- if sl_lu_date -%}
|
|
10
|
+
{%- capture sl_lu_text -%}{% include date.html date=sl_lu_date %}{%- endcapture -%}
|
|
11
|
+
<p class="sl-last-updated">{% include t.html key='last_updated' %} <time datetime="{{ sl_lu_date | date_to_xmlschema }}">{{ sl_lu_text | strip }}</time></p>
|
|
12
|
+
{%- endif -%}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{%- if page.status -%}
|
|
2
|
+
{%- include component-css.html name="page-status" -%}
|
|
3
|
+
<div class="sl-page-status sl-page-status-{{ page.status }}">
|
|
4
|
+
{%- capture sl_status_text -%}
|
|
5
|
+
{%- case page.status -%}
|
|
6
|
+
{%- when 'experimental' -%}{%- include t.html key="status_experimental" -%}
|
|
7
|
+
{%- when 'beta' -%}{%- include t.html key="status_beta" -%}
|
|
8
|
+
{%- when 'deprecated' -%}{%- include t.html key="status_deprecated" -%}
|
|
9
|
+
{%- endcase -%}
|
|
10
|
+
{%- endcapture -%}
|
|
11
|
+
<strong>{{ sl_status_text }}</strong>
|
|
12
|
+
{%- if page.status == 'deprecated' and page.since -%}
|
|
13
|
+
<span> {% include t.html key="status_since" %} {{ page.since }}.</span>
|
|
14
|
+
{%- endif -%}
|
|
15
|
+
{%- if page.status == 'deprecated' and page.replaced_by -%}
|
|
16
|
+
<span> {% include t.html key="status_replaced_by" %} <a href="{{ page.replaced_by | relative_url }}">{{ page.replaced_by }}</a>.</span>
|
|
17
|
+
{%- endif -%}
|
|
18
|
+
</div>
|
|
19
|
+
{%- endif -%}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Renders a JSON Schema (usually from _data) as a property table: name, type,
|
|
3
|
+
required, default, and description. Nested object properties render as a
|
|
4
|
+
sub-table one level deep; enum and oneOf show in the type cell.
|
|
5
|
+
|
|
6
|
+
{% include schema-table.html schema=site.data.widget_schema %}
|
|
7
|
+
{%- endcomment -%}
|
|
8
|
+
{%- if include.schema.properties and include.schema.properties.size > 0 -%}
|
|
9
|
+
{%- include component-css.html name="schema-table" -%}
|
|
10
|
+
<div class="sl-schema-table-wrapper">
|
|
11
|
+
<table class="sl-schema-table">
|
|
12
|
+
<thead>
|
|
13
|
+
<tr>
|
|
14
|
+
<th scope="col">{% include i18n-builtin.html key="name" %}</th>
|
|
15
|
+
<th scope="col">{% include i18n-builtin.html key="type" %}</th>
|
|
16
|
+
<th scope="col">{% include i18n-builtin.html key="required" %}</th>
|
|
17
|
+
<th scope="col">{% include i18n-builtin.html key="default" %}</th>
|
|
18
|
+
<th scope="col">{% include i18n-builtin.html key="description" %}</th>
|
|
19
|
+
</tr>
|
|
20
|
+
</thead>
|
|
21
|
+
<tbody>
|
|
22
|
+
{%- for sl_property in include.schema.properties -%}
|
|
23
|
+
{%- assign sl_name = sl_property[0] -%}
|
|
24
|
+
{%- assign sl_prop = sl_property[1] -%}
|
|
25
|
+
<tr class="sl-schema-row">
|
|
26
|
+
<th scope="row" class="sl-schema-name"><code>{{ sl_name }}</code></th>
|
|
27
|
+
<td class="sl-schema-type">
|
|
28
|
+
{%- if sl_prop.type -%}
|
|
29
|
+
<code>{{ sl_prop.type | join: " | " }}</code>
|
|
30
|
+
{%- elsif sl_prop.oneOf -%}
|
|
31
|
+
<code>{{ sl_prop.oneOf | map: "type" | join: " | " }}</code>
|
|
32
|
+
{%- elsif sl_prop.properties -%}
|
|
33
|
+
<code>object</code>
|
|
34
|
+
{%- elsif sl_prop.items -%}
|
|
35
|
+
<code>array</code>
|
|
36
|
+
{%- endif -%}
|
|
37
|
+
{%- if sl_prop.enum -%}
|
|
38
|
+
<ul class="sl-schema-values">
|
|
39
|
+
{%- for sl_value in sl_prop.enum -%}
|
|
40
|
+
<li><code>{{ sl_value }}</code></li>
|
|
41
|
+
{%- endfor -%}
|
|
42
|
+
</ul>
|
|
43
|
+
{%- endif -%}
|
|
44
|
+
</td>
|
|
45
|
+
<td class="sl-schema-required">
|
|
46
|
+
{%- if include.schema.required contains sl_name -%}
|
|
47
|
+
{% include i18n-builtin.html key="yes" %}
|
|
48
|
+
{%- else -%}
|
|
49
|
+
{% include i18n-builtin.html key="no" %}
|
|
50
|
+
{%- endif -%}
|
|
51
|
+
</td>
|
|
52
|
+
<td class="sl-schema-default">
|
|
53
|
+
{%- if sl_prop.default != nil -%}<code>{{ sl_prop.default | jsonify }}</code>{%- endif -%}
|
|
54
|
+
</td>
|
|
55
|
+
<td class="sl-schema-description">{%- if sl_prop.description %} {{ sl_prop.description | markdownify | strip }}{%- endif -%}</td>
|
|
56
|
+
</tr>
|
|
57
|
+
{%- assign sl_children = sl_prop.properties -%}
|
|
58
|
+
{%- assign sl_children_required = sl_prop.required -%}
|
|
59
|
+
{%- unless sl_children -%}
|
|
60
|
+
{%- assign sl_children = sl_prop.items.properties -%}
|
|
61
|
+
{%- assign sl_children_required = sl_prop.items.required -%}
|
|
62
|
+
{%- endunless -%}
|
|
63
|
+
{%- if sl_children and sl_children.size > 0 -%}
|
|
64
|
+
<tr class="sl-schema-children">
|
|
65
|
+
<td colspan="5">
|
|
66
|
+
<table class="sl-schema-table sl-schema-table-nested">
|
|
67
|
+
<thead>
|
|
68
|
+
<tr>
|
|
69
|
+
<th scope="col">{% include i18n-builtin.html key="name" %}</th>
|
|
70
|
+
<th scope="col">{% include i18n-builtin.html key="type" %}</th>
|
|
71
|
+
<th scope="col">{% include i18n-builtin.html key="required" %}</th>
|
|
72
|
+
<th scope="col">{% include i18n-builtin.html key="default" %}</th>
|
|
73
|
+
<th scope="col">{% include i18n-builtin.html key="description" %}</th>
|
|
74
|
+
</tr>
|
|
75
|
+
</thead>
|
|
76
|
+
<tbody>
|
|
77
|
+
{%- for sl_child in sl_children -%}
|
|
78
|
+
{%- assign sl_child_name = sl_child[0] -%}
|
|
79
|
+
{%- assign sl_child_prop = sl_child[1] -%}
|
|
80
|
+
<tr class="sl-schema-row sl-schema-row-child">
|
|
81
|
+
<th scope="row" class="sl-schema-name"><code>{{ sl_child_name }}</code></th>
|
|
82
|
+
<td class="sl-schema-type">
|
|
83
|
+
{%- if sl_child_prop.type -%}
|
|
84
|
+
<code>{{ sl_child_prop.type | join: " | " }}</code>
|
|
85
|
+
{%- elsif sl_child_prop.oneOf -%}
|
|
86
|
+
<code>{{ sl_child_prop.oneOf | map: "type" | join: " | " }}</code>
|
|
87
|
+
{%- elsif sl_child_prop.properties -%}
|
|
88
|
+
<code>object</code>
|
|
89
|
+
{%- elsif sl_child_prop.items -%}
|
|
90
|
+
<code>array</code>
|
|
91
|
+
{%- endif -%}
|
|
92
|
+
{%- if sl_child_prop.enum -%}
|
|
93
|
+
<ul class="sl-schema-values">
|
|
94
|
+
{%- for sl_value in sl_child_prop.enum -%}
|
|
95
|
+
<li><code>{{ sl_value }}</code></li>
|
|
96
|
+
{%- endfor -%}
|
|
97
|
+
</ul>
|
|
98
|
+
{%- endif -%}
|
|
99
|
+
</td>
|
|
100
|
+
<td class="sl-schema-required">
|
|
101
|
+
{%- if sl_children_required contains sl_child_name -%}
|
|
102
|
+
{% include i18n-builtin.html key="yes" %}
|
|
103
|
+
{%- else -%}
|
|
104
|
+
{% include i18n-builtin.html key="no" %}
|
|
105
|
+
{%- endif -%}
|
|
106
|
+
</td>
|
|
107
|
+
<td class="sl-schema-default">
|
|
108
|
+
{%- if sl_child_prop.default != nil -%}<code>{{ sl_child_prop.default | jsonify }}</code>{%- endif -%}
|
|
109
|
+
</td>
|
|
110
|
+
<td class="sl-schema-description">{%- if sl_child_prop.description %} {{ sl_child_prop.description | markdownify | strip }}{%- endif -%}</td>
|
|
111
|
+
</tr>
|
|
112
|
+
{%- endfor -%}
|
|
113
|
+
</tbody>
|
|
114
|
+
</table>
|
|
115
|
+
</td>
|
|
116
|
+
</tr>
|
|
117
|
+
{%- endif -%}
|
|
118
|
+
{%- endfor -%}
|
|
119
|
+
</tbody>
|
|
120
|
+
</table>
|
|
121
|
+
</div>
|
|
122
|
+
{%- endif -%}
|
data/_includes/seo.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{%- comment %} Canonical, Open Graph, Twitter card, and hreflang alternates. Plain Liquid, so classic Pages needs no jekyll-seo-tag. Expects sl_desc from head.html. {% endcomment %}
|
|
2
2
|
{%- assign sl_seo_lang = page.lang | default: site.lang | default: 'en' %}
|
|
3
|
-
{%- assign sl_seo_url = page.url | absolute_url %}
|
|
3
|
+
{%- assign sl_seo_url = page.canonical_url | default: page.url | absolute_url %}
|
|
4
4
|
{%- assign sl_seo_title = page.title | default: site.title %}
|
|
5
5
|
<link rel="canonical" href="{{ sl_seo_url }}">
|
|
6
6
|
<meta property="og:type" content="{% if page.collection == 'posts' %}article{% else %}website{% endif %}">
|
|
@@ -14,9 +14,29 @@
|
|
|
14
14
|
{%- if sl_desc != '' %}
|
|
15
15
|
<meta property="og:description" content="{{ sl_desc | escape }}">
|
|
16
16
|
{%- endif %}
|
|
17
|
-
|
|
17
|
+
{%- comment %} The social image: the page's `image` first, then the one the Actions plugin generated from the title (page.slipway_og, _plugins/slipway_og.rb), then the shared asset a site may replace (docs/overrides.md). Only the shared and generated pictures are known to be 1200 by 630. {% endcomment %}
|
|
18
|
+
{%- assign sl_og_image = page.image %}
|
|
19
|
+
{%- if sl_og_image %}
|
|
20
|
+
{%- assign sl_og_card = 'summary_large_image' %}
|
|
21
|
+
{%- else %}
|
|
22
|
+
{%- assign sl_og_image = page.slipway_og %}
|
|
23
|
+
{%- if sl_og_image %}
|
|
24
|
+
{%- assign sl_og_sized = true %}
|
|
25
|
+
{%- assign sl_og_card = 'summary_large_image' %}
|
|
26
|
+
{%- else %}
|
|
27
|
+
{%- assign sl_og_image = '/assets/images/social.png' %}
|
|
28
|
+
{%- assign sl_og_sized = true %}
|
|
29
|
+
{%- assign sl_og_card = 'summary' %}
|
|
30
|
+
{%- endif %}
|
|
31
|
+
{%- endif %}
|
|
32
|
+
<meta property="og:image" content="{{ sl_og_image | absolute_url }}">
|
|
33
|
+
{%- if sl_seo_title %}
|
|
34
|
+
<meta property="og:image:alt" content="{{ sl_seo_title | escape }}">
|
|
35
|
+
{%- endif %}
|
|
36
|
+
{%- if sl_og_sized %}
|
|
18
37
|
<meta property="og:image:width" content="1200">
|
|
19
38
|
<meta property="og:image:height" content="630">
|
|
39
|
+
{%- endif %}
|
|
20
40
|
<meta property="og:locale" content="{{ sl_seo_lang | replace: '-', '_' }}">
|
|
21
41
|
{%- if page.collection == 'posts' and page.date %}
|
|
22
42
|
<meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
|
|
@@ -24,7 +44,7 @@
|
|
|
24
44
|
<meta property="article:tag" content="{{ tag | escape }}">
|
|
25
45
|
{%- endfor %}
|
|
26
46
|
{%- endif %}
|
|
27
|
-
<meta name="twitter:card" content="
|
|
47
|
+
<meta name="twitter:card" content="{{ sl_og_card }}">
|
|
28
48
|
{%- if page.translation_key %}
|
|
29
49
|
{%- assign sl_seo_alts = site.pages | concat: site.documents | where: 'translation_key', page.translation_key %}
|
|
30
50
|
{%- if sl_seo_alts.size > 1 %}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
A region of a repository file, copied into _data/snippets.json by tools/snippets/sync.mjs.
|
|
3
|
+
Usage: {% include snippet.html file="src/app.ts" region="setup" %}
|
|
4
|
+
{%- endcomment -%}
|
|
5
|
+
{%- assign snippet_key = include.file | downcase | replace: '/', '-' | replace: '.', '-' | replace: '_', '-' | replace: ' ', '-' -%}
|
|
6
|
+
{%- assign snippet_key = snippet_key | append: '--' | append: include.region | downcase | replace: ' ', '-' -%}
|
|
7
|
+
{%- assign snippet = site.data.snippets[snippet_key] -%}
|
|
8
|
+
{%- assign snippet_repo = site.github.repository_url | default: site.repository_url -%}
|
|
9
|
+
{%- if snippet -%}
|
|
10
|
+
<figure class="sl-snippet">
|
|
11
|
+
<pre><code class="language-{{ snippet.lang | escape }}">{{ snippet.text | escape }}</code></pre>
|
|
12
|
+
<figcaption>
|
|
13
|
+
{%- if snippet_repo -%}
|
|
14
|
+
<a href="{{ snippet_repo }}/blob/HEAD/{{ snippet.file }}#L{{ snippet.line }}">{{ snippet.file }}:{{ snippet.line }}</a>
|
|
15
|
+
{%- else -%}
|
|
16
|
+
{{ snippet.file }}:{{ snippet.line }}
|
|
17
|
+
{%- endif -%}
|
|
18
|
+
</figcaption>
|
|
19
|
+
</figure>
|
|
20
|
+
{%- endif -%}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: base
|
|
3
|
+
---
|
|
4
|
+
{%- include component-css.html name="adr" -%}
|
|
5
|
+
{%- assign sl_adr_docs = site.documents | concat: site.pages | where: 'layout', 'adr' | sort: 'title' -%}
|
|
6
|
+
<div class="sl-adr-index">
|
|
7
|
+
<header class="sl-page-header">
|
|
8
|
+
<h1>{{ page.title | escape }}</h1>
|
|
9
|
+
{%- if page.description %}
|
|
10
|
+
<p class="sl-page-lead">{{ page.description }}</p>
|
|
11
|
+
{%- endif %}
|
|
12
|
+
</header>
|
|
13
|
+
|
|
14
|
+
{% assign statuses = "proposed,accepted,rejected,superseded,deprecated" | split: "," %}
|
|
15
|
+
|
|
16
|
+
{% for status in statuses %}
|
|
17
|
+
{% assign docs = sl_adr_docs | where: "status", status %}
|
|
18
|
+
{% if docs.size > 0 %}
|
|
19
|
+
<section class="sl-adr-group">
|
|
20
|
+
<h2>{% include t.html key=status %}</h2>
|
|
21
|
+
<ul>
|
|
22
|
+
{% for doc in docs %}
|
|
23
|
+
<li>
|
|
24
|
+
<a href="{{ doc.url | relative_url }}">{{ doc.title | escape }}</a>
|
|
25
|
+
{% if doc.date %}<time datetime="{{ doc.date | date_to_xmlschema }}">{% include date.html date=doc.date %}</time>{% endif %}
|
|
26
|
+
</li>
|
|
27
|
+
{% endfor %}
|
|
28
|
+
</ul>
|
|
29
|
+
</section>
|
|
30
|
+
{% endif %}
|
|
31
|
+
{% endfor %}
|
|
32
|
+
</div>
|
data/_layouts/adr.html
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: base
|
|
3
|
+
---
|
|
4
|
+
{%- include component-css.html name="adr" -%}
|
|
5
|
+
{%- assign sl_adr_docs = site.documents | concat: site.pages | where: 'layout', 'adr' -%}
|
|
6
|
+
<article class="sl-adr">
|
|
7
|
+
<header class="sl-adr-header">
|
|
8
|
+
<h1>{{ page.title | escape }}</h1>
|
|
9
|
+
<dl class="sl-adr-meta">
|
|
10
|
+
<dt>{% include t.html key='adr_status' %}</dt>
|
|
11
|
+
<dd class="sl-adr-status sl-adr-status-{{ page.status | escape }}">{% include t.html key=page.status %}</dd>
|
|
12
|
+
{% if page.date %}
|
|
13
|
+
<dt>{% include t.html key='adr_date' %}</dt>
|
|
14
|
+
<dd><time datetime="{{ page.date | date_to_xmlschema }}">{% include date.html date=page.date %}</time></dd>
|
|
15
|
+
{% endif %}
|
|
16
|
+
{% if page.deciders and page.deciders.size > 0 %}
|
|
17
|
+
<dt>{% include t.html key='adr_deciders' %}</dt>
|
|
18
|
+
<dd>{{ page.deciders | join: ', ' | escape }}</dd>
|
|
19
|
+
{% endif %}
|
|
20
|
+
{% if page.supersedes %}
|
|
21
|
+
<dt>{% include t.html key='adr_supersedes' %}</dt>
|
|
22
|
+
<dd>
|
|
23
|
+
{% assign superseded_docs = sl_adr_docs | where: "title", page.supersedes %}
|
|
24
|
+
{% if superseded_docs.size > 0 %}
|
|
25
|
+
<a href="{{ superseded_docs.first.url | relative_url }}">{{ page.supersedes | escape }}</a>
|
|
26
|
+
{% else %}
|
|
27
|
+
{{ page.supersedes | escape }}
|
|
28
|
+
{% endif %}
|
|
29
|
+
</dd>
|
|
30
|
+
{% endif %}
|
|
31
|
+
{% if page.superseded_by %}
|
|
32
|
+
<dt>{% include t.html key='adr_superseded_by' %}</dt>
|
|
33
|
+
<dd>
|
|
34
|
+
{% assign superseding_docs = sl_adr_docs | where: "title", page.superseded_by %}
|
|
35
|
+
{% if superseding_docs.size > 0 %}
|
|
36
|
+
<a href="{{ superseding_docs.first.url | relative_url }}">{{ page.superseded_by | escape }}</a>
|
|
37
|
+
{% else %}
|
|
38
|
+
{{ page.superseded_by | escape }}
|
|
39
|
+
{% endif %}
|
|
40
|
+
</dd>
|
|
41
|
+
{% endif %}
|
|
42
|
+
</dl>
|
|
43
|
+
</header>
|
|
44
|
+
{{ content }}
|
|
45
|
+
</article>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
4
|
+
{%- assign sl_source = site.pages | where: 'url', page.changelog | first -%}
|
|
5
|
+
{%- assign sl_source_html = sl_source.content | markdownify -%}
|
|
6
|
+
{%- assign sl_sections = sl_source_html | split: '<h2 id="' -%}
|
|
7
|
+
<feed xmlns="http://www.w3.org/2005/Atom">
|
|
8
|
+
<id>{{ page.url | absolute_url | xml_escape }}</id>
|
|
9
|
+
<title>{{ sl_source.title | default: page.title | xml_escape }}</title>
|
|
10
|
+
<updated>{{ site.time | date_to_xmlschema }}</updated>
|
|
11
|
+
<link href="{{ page.url | absolute_url | xml_escape }}" rel="self" type="application/atom+xml"/>
|
|
12
|
+
<link href="{{ sl_source.url | absolute_url | xml_escape }}"/>
|
|
13
|
+
{%- for sl_section in sl_sections offset: 1 -%}
|
|
14
|
+
{%- include changelog-version.html section=sl_section -%}
|
|
15
|
+
{%- assign sl_unreleased = sl_release_version | downcase -%}
|
|
16
|
+
{%- if sl_unreleased == 'unreleased' -%}{%- continue -%}{%- endif -%}
|
|
17
|
+
{%- assign sl_release_body = sl_section | split: '</h2>' | last -%}
|
|
18
|
+
{%- assign sl_release_url = sl_source.url | absolute_url | append: '#' | append: sl_release_id -%}
|
|
19
|
+
<entry>
|
|
20
|
+
<id>{{ sl_release_url | xml_escape }}</id>
|
|
21
|
+
<title>{{ sl_release_version | xml_escape }}</title>
|
|
22
|
+
<link href="{{ sl_release_url | xml_escape }}"/>
|
|
23
|
+
<updated>{{ sl_release_date | date_to_xmlschema }}</updated>
|
|
24
|
+
<author><name>{{ site.author | default: site.title | default: 'Slipway' | xml_escape }}</name></author>
|
|
25
|
+
<content type="html">{{ sl_release_body | xml_escape }}</content>
|
|
26
|
+
</entry>
|
|
27
|
+
{%- endfor %}
|
|
28
|
+
</feed>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: base
|
|
3
|
+
---
|
|
4
|
+
{% include component-css.html name="changelog" %}
|
|
5
|
+
<article class="sl-page sl-changelog">
|
|
6
|
+
<header class="sl-page-header">
|
|
7
|
+
{% include breadcrumbs.html %}
|
|
8
|
+
<h1>{{ page.title | escape }}</h1>{% include copy-page.html %}
|
|
9
|
+
{%- if page.description %}
|
|
10
|
+
<p class="sl-page-lead">{{ page.description | escape }}</p>
|
|
11
|
+
{%- endif %}
|
|
12
|
+
</header>
|
|
13
|
+
{%- assign sl_sections = content | split: '<h2 id="' %}
|
|
14
|
+
<div class="sl-changelog-layout">
|
|
15
|
+
<div class="sl-changelog-main">
|
|
16
|
+
{{ sl_sections.first }}
|
|
17
|
+
{%- for sl_section in sl_sections offset: 1 %}
|
|
18
|
+
{%- include changelog-version.html section=sl_section %}
|
|
19
|
+
{%- assign sl_old_id = sl_section | split: '"' | first %}
|
|
20
|
+
{%- assign sl_old_attr = 'id="' | append: sl_old_id | append: '"' %}
|
|
21
|
+
{%- assign sl_new_attr = 'id="' | append: sl_release_id | append: '"' %}
|
|
22
|
+
{%- assign sl_section_html = '<h2 id="' | append: sl_section %}
|
|
23
|
+
{{ sl_section_html | replace_first: sl_old_attr, sl_new_attr }}
|
|
24
|
+
{%- endfor %}
|
|
25
|
+
</div>
|
|
26
|
+
<aside class="sl-changelog-sidebar">
|
|
27
|
+
<nav aria-label="{% include t.html key='versions' %}">
|
|
28
|
+
<ul class="sl-changelog-toc">
|
|
29
|
+
{%- for sl_section in sl_sections offset: 1 %}
|
|
30
|
+
{%- include changelog-version.html section=sl_section %}
|
|
31
|
+
<li><a href="#{{ sl_release_id }}">{{ sl_release_version | escape }}</a></li>
|
|
32
|
+
{%- endfor %}
|
|
33
|
+
</ul>
|
|
34
|
+
{%- if page.feed_url %}
|
|
35
|
+
<a href="{{ page.feed_url | relative_url }}" class="sl-changelog-feed" type="application/atom+xml">{% include t.html key='releases' %}</a>
|
|
36
|
+
{%- endif %}
|
|
37
|
+
</nav>
|
|
38
|
+
</aside>
|
|
39
|
+
</div>
|
|
40
|
+
</article>
|