diff options
| -rw-r--r-- | assets/css/components/_hero.scss (renamed from assets/css/components/_page-header.scss) | 2 | ||||
| -rw-r--r-- | assets/css/components/_page.scss | 14 | ||||
| -rw-r--r-- | assets/css/style.scss | 2 | ||||
| -rw-r--r-- | content/_personal/index.md | 4 | ||||
| -rw-r--r-- | content/blog/index.md | 4 | ||||
| -rw-r--r-- | content/blog/test1.md | 2 | ||||
| -rw-r--r-- | content/blog/test2/index.md | 2 | ||||
| -rw-r--r-- | filters/common_actions.lua | 12 | ||||
| -rw-r--r-- | metadata/metadata.yaml | 4 | ||||
| -rw-r--r-- | scripts/metadata_filter.lua | 108 | ||||
| -rw-r--r-- | templates/base.html | 27 | ||||
| -rw-r--r-- | templates/layouts/dated_list.html (renamed from templates/list.html) | 4 | ||||
| -rw-r--r-- | templates/layouts/index.html | 44 | ||||
| -rw-r--r-- | templates/layouts/page.html | 12 | ||||
| -rw-r--r-- | templates/page.html | 1 | ||||
| -rw-r--r-- | templates/partials/pageHeader.html | 17 | ||||
| -rw-r--r-- | templates/partials/pageHeaderSm.html | 10 |
17 files changed, 157 insertions, 112 deletions
diff --git a/assets/css/components/_page-header.scss b/assets/css/components/_hero.scss index e97aaf7..7fa79e1 100644 --- a/assets/css/components/_page-header.scss +++ b/assets/css/components/_hero.scss | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | .c-page-header { | 1 | .c-hero { |
| 2 | margin-bottom: $line-height * 2em; | 2 | margin-bottom: $line-height * 2em; |
| 3 | margin-left: -1 * $page--item-prefix--width; | 3 | margin-left: -1 * $page--item-prefix--width; |
| 4 | padding-left: $page--item-prefix--width; | 4 | padding-left: $page--item-prefix--width; |
diff --git a/assets/css/components/_page.scss b/assets/css/components/_page.scss index bccf069..ce67f7e 100644 --- a/assets/css/components/_page.scss +++ b/assets/css/components/_page.scss | |||
| @@ -1,4 +1,18 @@ | |||
| 1 | .c-page { | 1 | .c-page { |
| 2 | &__header { | ||
| 3 | margin-bottom: $line-height * 1em; | ||
| 4 | |||
| 5 | &__title { | ||
| 6 | margin-top: 0; | ||
| 7 | } | ||
| 8 | |||
| 9 | &__meta { | ||
| 10 | margin-top: 0; | ||
| 11 | color: var(--fg-hi); | ||
| 12 | font-weight: normal; | ||
| 13 | } | ||
| 14 | } | ||
| 15 | |||
| 2 | &__content { | 16 | &__content { |
| 3 | padding-left: $page--item-prefix--width; | 17 | padding-left: $page--item-prefix--width; |
| 4 | 18 | ||
diff --git a/assets/css/style.scss b/assets/css/style.scss index e89cbd6..9f3bb31 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | @import 'components/hlist'; | 6 | @import 'components/hlist'; |
| 7 | @import 'components/nav'; | 7 | @import 'components/nav'; |
| 8 | @import 'components/page'; | 8 | @import 'components/page'; |
| 9 | @import 'components/page-header'; | 9 | @import 'components/hero'; |
| 10 | 10 | ||
| 11 | @import 'layouts/container'; | 11 | @import 'layouts/container'; |
| 12 | 12 | ||
diff --git a/content/_personal/index.md b/content/_personal/index.md new file mode 100644 index 0000000..5e89459 --- /dev/null +++ b/content/_personal/index.md | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | --- | ||
| 2 | title: Personal Blog | ||
| 3 | layout: dated_list | ||
| 4 | --- | ||
diff --git a/content/blog/index.md b/content/blog/index.md index 1053dc2..6668eba 100644 --- a/content/blog/index.md +++ b/content/blog/index.md | |||
| @@ -1,7 +1,5 @@ | |||
| 1 | --- | 1 | --- |
| 2 | title: Blog | 2 | title: Blog |
| 3 | 3 | layout: dated_list | |
| 4 | create_feed: true | 4 | create_feed: true |
| 5 | --- | 5 | --- |
| 6 | |||
| 7 | # Blog | ||
diff --git a/content/blog/test1.md b/content/blog/test1.md index 05c2b2d..943570c 100644 --- a/content/blog/test1.md +++ b/content/blog/test1.md | |||
| @@ -3,5 +3,3 @@ date: 2020-12-25 | |||
| 3 | title: Test Page 1 | 3 | title: Test Page 1 |
| 4 | category: tes | 4 | category: tes |
| 5 | --- | 5 | --- |
| 6 | |||
| 7 | # Test Page 1 | ||
diff --git a/content/blog/test2/index.md b/content/blog/test2/index.md index 9d1ebd2..aee4641 100644 --- a/content/blog/test2/index.md +++ b/content/blog/test2/index.md | |||
| @@ -4,8 +4,6 @@ title: Test Page 2 | |||
| 4 | category: per | 4 | category: per |
| 5 | --- | 5 | --- |
| 6 | 6 | ||
| 7 | # Test Page 2 | ||
| 8 | |||
| 9 | ``` | 7 | ``` |
| 10 | - /----\ | 8 | - /----\ |
| 11 | - | | | 9 | - | | |
diff --git a/filters/common_actions.lua b/filters/common_actions.lua index 1d13e3a..a358b99 100644 --- a/filters/common_actions.lua +++ b/filters/common_actions.lua | |||
| @@ -2,7 +2,10 @@ function CodeBlock(el) | |||
| 2 | if next(el.classes) == nil then | 2 | if next(el.classes) == nil then |
| 3 | el.classes = el.classes .. {'c-page__prefixed', 'c-page__prefixed--pre'} | 3 | el.classes = el.classes .. {'c-page__prefixed', 'c-page__prefixed--pre'} |
| 4 | else | 4 | else |
| 5 | local formatted = pandoc.pipe('pygmentize', {'-l', el.classes[1], '-f', 'html', '-O', 'cssclass=c-page__code s-code'}, el.text) | 5 | local formatted = pandoc.pipe('pygmentize', { |
| 6 | '-l', el.classes[1], '-f', 'html', '-O', | ||
| 7 | 'cssclass=c-page__code s-code' | ||
| 8 | }, el.text) | ||
| 6 | el = pandoc.RawBlock('html', formatted) | 9 | el = pandoc.RawBlock('html', formatted) |
| 7 | end | 10 | end |
| 8 | 11 | ||
| @@ -21,9 +24,7 @@ function Header(el) | |||
| 21 | end | 24 | end |
| 22 | 25 | ||
| 23 | function Div(el) | 26 | function Div(el) |
| 24 | if el.attributes.macro == nil then | 27 | if el.attributes.macro == nil then return el end |
| 25 | return el | ||
| 26 | end | ||
| 27 | 28 | ||
| 28 | if el.attributes.macro == 'refs' and el.content[1].tag == 'BulletList' then | 29 | if el.attributes.macro == 'refs' and el.content[1].tag == 'BulletList' then |
| 29 | local newchildren = pandoc.List() | 30 | local newchildren = pandoc.List() |
| @@ -31,7 +32,8 @@ function Div(el) | |||
| 31 | newchildren:insert(pandoc.RawBlock('html', '<ul>')) | 32 | newchildren:insert(pandoc.RawBlock('html', '<ul>')) |
| 32 | 33 | ||
| 33 | for k, children in ipairs(el.content[1].content) do | 34 | for k, children in ipairs(el.content[1].content) do |
| 34 | newchildren:insert(pandoc.RawBlock('html', '<li class="c-page__prefixed c-page__prefixed--ref">')) | 35 | newchildren:insert(pandoc.RawBlock('html', |
| 36 | '<li class="c-page__prefixed c-page__prefixed--ref">')) | ||
| 35 | newchildren:extend(children) | 37 | newchildren:extend(children) |
| 36 | newchildren:insert(pandoc.RawBlock('html', '</li>')) | 38 | newchildren:insert(pandoc.RawBlock('html', '</li>')) |
| 37 | end | 39 | end |
diff --git a/metadata/metadata.yaml b/metadata/metadata.yaml index 51e8cda..ac8474d 100644 --- a/metadata/metadata.yaml +++ b/metadata/metadata.yaml | |||
| @@ -14,6 +14,10 @@ menus: | |||
| 14 | - id: blog | 14 | - id: blog |
| 15 | label: Blog | 15 | label: Blog |
| 16 | url: /blog/ | 16 | url: /blog/ |
| 17 | - id: _personal | ||
| 18 | label: Personal | ||
| 19 | url: /_personal/ | ||
| 20 | hidden: true | ||
| 17 | 21 | ||
| 18 | feeds: | 22 | feeds: |
| 19 | - title: Blog | 23 | - title: Blog |
diff --git a/scripts/metadata_filter.lua b/scripts/metadata_filter.lua index d6379b9..4abb716 100644 --- a/scripts/metadata_filter.lua +++ b/scripts/metadata_filter.lua | |||
| @@ -1,13 +1,9 @@ | |||
| 1 | function format_date(date) | 1 | function format_date(date) |
| 2 | if date == nil then | 2 | if date == nil then return date end |
| 3 | return date | ||
| 4 | end | ||
| 5 | 3 | ||
| 6 | date = pandoc.utils.normalize_date(pandoc.utils.stringify(date)) | 4 | date = pandoc.utils.normalize_date(pandoc.utils.stringify(date)) |
| 7 | local year, month, day = date:match("(%d%d%d%d)-(%d%d)-(%d%d)") | 5 | local year, month, day = date:match("(%d%d%d%d)-(%d%d)-(%d%d)") |
| 8 | if year == nil then | 6 | if year == nil then return nil end |
| 9 | return nil | ||
| 10 | end | ||
| 11 | 7 | ||
| 12 | local time = os.time({ | 8 | local time = os.time({ |
| 13 | year = tonumber(year), | 9 | year = tonumber(year), |
| @@ -26,15 +22,10 @@ function table_to_list(t, cmp) | |||
| 26 | local l = pandoc.List() | 22 | local l = pandoc.List() |
| 27 | 23 | ||
| 28 | for key, value in pairs(t) do | 24 | for key, value in pairs(t) do |
| 29 | l:insert(pandoc.MetaMap({ | 25 | l:insert(pandoc.MetaMap({key = key, value = value})) |
| 30 | key = key, | ||
| 31 | value = value | ||
| 32 | })) | ||
| 33 | end | 26 | end |
| 34 | 27 | ||
| 35 | l:sort(cmp or function(i1, i2) | 28 | l:sort(cmp or function(i1, i2) return i1.key < i2.key end) |
| 36 | return i1.key < i2.key | ||
| 37 | end) | ||
| 38 | 29 | ||
| 39 | return l | 30 | return l |
| 40 | end | 31 | end |
| @@ -56,9 +47,7 @@ function group_by(l, field, insert) | |||
| 56 | 47 | ||
| 57 | if f ~= nil then | 48 | if f ~= nil then |
| 58 | local out = insert(groups[f], f, item) | 49 | local out = insert(groups[f], f, item) |
| 59 | if out ~= nil then | 50 | if out ~= nil then groups[f] = out end |
| 60 | groups[f] = out | ||
| 61 | end | ||
| 62 | end | 51 | end |
| 63 | end | 52 | end |
| 64 | 53 | ||
| @@ -68,9 +57,7 @@ end | |||
| 68 | function splitstr(input, sep) | 57 | function splitstr(input, sep) |
| 69 | sep = sep or "%s" | 58 | sep = sep or "%s" |
| 70 | local t = {} | 59 | local t = {} |
| 71 | for str in input:gmatch("([^" .. sep .. "]+)") do | 60 | for str in input:gmatch("([^" .. sep .. "]+)") do table.insert(t, str) end |
| 72 | table.insert(t, str) | ||
| 73 | end | ||
| 74 | return t | 61 | return t |
| 75 | end | 62 | end |
| 76 | 63 | ||
| @@ -98,9 +85,7 @@ function relative_to(dir, target) | |||
| 98 | path = path .. (path == "" and "" or "/") .. target[i] | 85 | path = path .. (path == "" and "" or "/") .. target[i] |
| 99 | end | 86 | end |
| 100 | elseif #dir > #target then | 87 | elseif #dir > #target then |
| 101 | for i = #target + 1, #dir do | 88 | for _ = #target + 1, #dir do path = "../" .. path end |
| 102 | path = "../" .. path | ||
| 103 | end | ||
| 104 | end | 89 | end |
| 105 | 90 | ||
| 106 | return path | 91 | return path |
| @@ -123,6 +108,16 @@ function resolve_url(page_type, site_url, content_dir, base_dir, cur_file) | |||
| 123 | }) | 108 | }) |
| 124 | end | 109 | end |
| 125 | 110 | ||
| 111 | function resolve_layout(layout) | ||
| 112 | if layout then | ||
| 113 | layout = pandoc.utils.stringify(layout) | ||
| 114 | return pandoc.MetaMap({ | ||
| 115 | id = pandoc.MetaString(layout), | ||
| 116 | ["is_" .. layout] = pandoc.MetaBool(true) | ||
| 117 | }) | ||
| 118 | end | ||
| 119 | end | ||
| 120 | |||
| 126 | function resolve_section(abs_url) | 121 | function resolve_section(abs_url) |
| 127 | local section = abs_url:match("^/(.-)[/.]") or "index" | 122 | local section = abs_url:match("^/(.-)[/.]") or "index" |
| 128 | return pandoc.MetaMap({ | 123 | return pandoc.MetaMap({ |
| @@ -131,25 +126,48 @@ function resolve_section(abs_url) | |||
| 131 | }) | 126 | }) |
| 132 | end | 127 | end |
| 133 | 128 | ||
| 134 | function organize_subpages(site_url, content_dir, base_dir, pages, categories) | 129 | function resolve_category(categories, category) |
| 135 | local grouped_pages = group_by(pages, function(p) | 130 | if categories and category then |
| 136 | return not p.date | 131 | category = pandoc.utils.stringify(category) |
| 132 | return pandoc.MetaMap({ | ||
| 133 | id = pandoc.MetaString(category), | ||
| 134 | name = pandoc.MetaString(categories[category] or category) | ||
| 135 | }) | ||
| 136 | end | ||
| 137 | end | ||
| 138 | |||
| 139 | function create_main_menu_state(section, main_menu) | ||
| 140 | for i = 1, #main_menu do | ||
| 141 | local item = main_menu[i] | ||
| 142 | local active = pandoc.utils.stringify(item.id) == section.id | ||
| 143 | item.active = pandoc.MetaBool(active) | ||
| 144 | end | ||
| 145 | |||
| 146 | return main_menu:filter(function(item) | ||
| 147 | return not item.hidden or item.active | ||
| 137 | end) | 148 | end) |
| 149 | end | ||
| 150 | |||
| 151 | function organize_subpages(pages) | ||
| 152 | local grouped_pages = group_by(pages, function(p) return not p.date end) | ||
| 138 | 153 | ||
| 139 | local pages_undated = grouped_pages[true] or pandoc.MetaList({}) | 154 | local pages_undated = grouped_pages[true] or pandoc.MetaList({}) |
| 140 | pages_undated:sort(function(p1, p2) | 155 | pages_undated:sort(function(p1, p2) |
| 141 | return pandoc.utils.stringify(p1.title) < pandoc.utils.stringify(p2.title) | 156 | return pandoc.utils.stringify(p1.title) < |
| 157 | pandoc.utils.stringify(p2.title) | ||
| 142 | end) | 158 | end) |
| 143 | 159 | ||
| 144 | local pages_dated = grouped_pages[false] or pandoc.MetaList({}) | 160 | local pages_dated = grouped_pages[false] or pandoc.MetaList({}) |
| 145 | pages_dated:sort(function(p1, p2) | 161 | pages_dated:sort(function(p1, p2) |
| 146 | return pandoc.utils.stringify(p1.date.yyyy_mm_dd) > pandoc.utils.stringify(p2.date.yyyy_mm_dd) | 162 | return pandoc.utils.stringify(p1.date.yyyy_mm_dd) > |
| 163 | pandoc.utils.stringify(p2.date.yyyy_mm_dd) | ||
| 147 | end) | 164 | end) |
| 148 | 165 | ||
| 149 | local pages_by_year = group_by(pages_dated, function(p) | 166 | local pages_by_year = group_by(pages_dated, function(p) |
| 150 | return pandoc.utils.stringify(p.date.yyyy) | 167 | return pandoc.utils.stringify(p.date.yyyy) |
| 151 | end) | 168 | end) |
| 152 | pages_by_year = pandoc.MetaList(table_to_list(pages_by_year, function(i1, i2) | 169 | pages_by_year = pandoc.MetaList(table_to_list(pages_by_year, |
| 170 | function(i1, i2) | ||
| 153 | return i1.key > i2.key | 171 | return i1.key > i2.key |
| 154 | end)) | 172 | end)) |
| 155 | 173 | ||
| @@ -161,13 +179,10 @@ function organize_subpages(site_url, content_dir, base_dir, pages, categories) | |||
| 161 | }) | 179 | }) |
| 162 | 180 | ||
| 163 | local categories_data = group_by(pages_dated, function(p) | 181 | local categories_data = group_by(pages_dated, function(p) |
| 164 | return p.category and pandoc.utils.stringify(p.category) | 182 | return p.category and pandoc.utils.stringify(p.category.id) |
| 165 | end, function(stats, category) | 183 | end, function(stats, _, p) |
| 166 | if not stats then | 184 | if not stats then |
| 167 | return { | 185 | return {name = pandoc.MetaString(p.category.name), count = 1} |
| 168 | name = pandoc.MetaString(categories[category] or category), | ||
| 169 | count = 1 | ||
| 170 | } | ||
| 171 | else | 186 | else |
| 172 | stats.count = stats.count + 1 | 187 | stats.count = stats.count + 1 |
| 173 | end | 188 | end |
| @@ -175,7 +190,8 @@ function organize_subpages(site_url, content_dir, base_dir, pages, categories) | |||
| 175 | categories_data = pandoc.MetaList(table_to_list(categories_data)) | 190 | categories_data = pandoc.MetaList(table_to_list(categories_data)) |
| 176 | 191 | ||
| 177 | for i = 1, #categories_data do | 192 | for i = 1, #categories_data do |
| 178 | categories_data[i].value.count = pandoc.MetaString(("%d"):format(categories_data[i].value.count)) | 193 | categories_data[i].value.count = |
| 194 | pandoc.MetaString(("%d"):format(categories_data[i].value.count)) | ||
| 179 | end | 195 | end |
| 180 | 196 | ||
| 181 | return pages_data, categories_data | 197 | return pages_data, categories_data |
| @@ -188,6 +204,8 @@ function Meta(meta) | |||
| 188 | meta.base_dir = meta.base_file:gsub("^(.*)/.-$", "%1") | 204 | meta.base_dir = meta.base_file:gsub("^(.*)/.-$", "%1") |
| 189 | meta.page_type = meta.page_type or "page" | 205 | meta.page_type = meta.page_type or "page" |
| 190 | 206 | ||
| 207 | meta.layout = resolve_layout(meta.layout) | ||
| 208 | |||
| 191 | meta.date = format_date(meta.date) | 209 | meta.date = format_date(meta.date) |
| 192 | if meta.last_update ~= nil then | 210 | if meta.last_update ~= nil then |
| 193 | meta.last_update = format_date(meta.last_update) | 211 | meta.last_update = format_date(meta.last_update) |
| @@ -197,28 +215,26 @@ function Meta(meta) | |||
| 197 | 215 | ||
| 198 | if meta.page_type == "feed" then | 216 | if meta.page_type == "feed" then |
| 199 | meta.page = pandoc.MetaMap({ | 217 | meta.page = pandoc.MetaMap({ |
| 200 | url = resolve_url("page", meta.site.url, meta.content_dir, meta.base_dir, meta.file) | 218 | url = resolve_url("page", meta.site.url, meta.content_dir, |
| 219 | meta.base_dir, meta.file) | ||
| 201 | }) | 220 | }) |
| 202 | end | 221 | end |
| 203 | 222 | ||
| 204 | meta.url = resolve_url(meta.page_type, meta.site.url, meta.content_dir, meta.base_dir, meta.file) | 223 | meta.url = resolve_url(meta.page_type, meta.site.url, meta.content_dir, |
| 224 | meta.base_dir, meta.file) | ||
| 205 | meta.section = resolve_section(meta.url.abs) | 225 | meta.section = resolve_section(meta.url.abs) |
| 206 | meta.categories = meta.categories[meta.section.id] | 226 | meta.category = resolve_category(meta.categories[meta.section.id], |
| 227 | meta.category) | ||
| 228 | meta.categories = nil | ||
| 207 | 229 | ||
| 208 | if meta.menus and meta.menus.main then | 230 | if meta.menus and meta.menus.main then |
| 209 | for i = 1, #meta.menus.main do | 231 | meta.menus.main = create_main_menu_state(meta.section, meta.menus.main) |
| 210 | local item = meta.menus.main[i] | ||
| 211 | item.active = pandoc.MetaBool(pandoc.utils.stringify(item.id) == meta.section.id) | ||
| 212 | end | ||
| 213 | end | 232 | end |
| 214 | 233 | ||
| 215 | if meta.pages then | 234 | if meta.pages then |
| 216 | local pages, categories = organize_subpages(meta.site.url, meta.content_dir, meta.base_dir, meta.pages, | 235 | local pages, categories = organize_subpages(meta.pages) |
| 217 | meta.categories) | ||
| 218 | meta.pages = pages | 236 | meta.pages = pages |
| 219 | meta.categories = categories | 237 | meta.categories = categories |
| 220 | else | ||
| 221 | meta.categories = nil | ||
| 222 | end | 238 | end |
| 223 | 239 | ||
| 224 | return meta | 240 | return meta |
diff --git a/templates/base.html b/templates/base.html index b4a2953..da3dec9 100644 --- a/templates/base.html +++ b/templates/base.html | |||
| @@ -45,33 +45,14 @@ | |||
| 45 | <main class="c-page s-page l-container l-container--content l-container--pad-v"> | 45 | <main class="c-page s-page l-container l-container--content l-container--pad-v"> |
| 46 | <div class="c-page__content"> | 46 | <div class="c-page__content"> |
| 47 | $if(section.is_index)$ | 47 | $if(section.is_index)$ |
| 48 | <header class="c-page-header u-hidden@sm-down" role="presentation"> | 48 | ${layouts/index()} |
| 49 | ${partials/pageHeader()} | 49 | $elseif(layout.is_dated_list)$ |
| 50 | </header> | 50 | ${layouts/dated_list()} |
| 51 | |||
| 52 | ${page()} | ||
| 53 | $elseif(pages)$ | ||
| 54 | ${list()} | ||
| 55 | $else$ | 51 | $else$ |
| 56 | ${page()} | 52 | ${layouts/page()} |
| 57 | $endif$ | 53 | $endif$ |
| 58 | </div> | 54 | </div> |
| 59 | </main> | 55 | </main> |
| 60 | |||
| 61 | $if(section.is_index)$ | ||
| 62 | <template id="header-sm"> | ||
| 63 | ${partials/pageHeaderSm()} | ||
| 64 | </template> | ||
| 65 | |||
| 66 | <script> | ||
| 67 | var headerEl = document.querySelector(".c-page-header"); | ||
| 68 | var headerTemplateEl = document.getElementById("header-sm"); | ||
| 69 | var headerSmEl = headerTemplateEl.content.cloneNode("true"); | ||
| 70 | |||
| 71 | headerEl.classList.remove("u-hidden@sm-down"); | ||
| 72 | headerEl.appendChild(headerSmEl); | ||
| 73 | </script> | ||
| 74 | $endif$ | ||
| 75 | </body> | 56 | </body> |
| 76 | 57 | ||
| 77 | </html> | 58 | </html> |
diff --git a/templates/list.html b/templates/layouts/dated_list.html index d74681c..0a279f0 100644 --- a/templates/list.html +++ b/templates/layouts/dated_list.html | |||
| @@ -1,3 +1,5 @@ | |||
| 1 | <h1 class="c-page__prefixed c-page__prefixed--h1">$title$</h1> | ||
| 2 | |||
| 1 | $body$ | 3 | $body$ |
| 2 | 4 | ||
| 3 | $if(categories)$ | 5 | $if(categories)$ |
| @@ -12,7 +14,7 @@ $for(pages.by_year)$ | |||
| 12 | <ul> | 14 | <ul> |
| 13 | $for(it.value)$ | 15 | $for(it.value)$ |
| 14 | <li class="c-page__prefixed c-page__prefixed--ref"> | 16 | <li class="c-page__prefixed c-page__prefixed--ref"> |
| 15 | <a href="$it.url.rel$">$it.category/uppercase$ $it.date.yyyy_mm_dd$ - $it.title$</a> | 17 | <a href="$it.url.rel$">$it.category.id/uppercase$ $it.date.yyyy_mm_dd$ - $it.title$</a> |
| 16 | </li> | 18 | </li> |
| 17 | $endfor$ | 19 | $endfor$ |
| 18 | </ul> | 20 | </ul> |
diff --git a/templates/layouts/index.html b/templates/layouts/index.html new file mode 100644 index 0000000..144d1ed --- /dev/null +++ b/templates/layouts/index.html | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | <header class="c-hero u-hidden@sm-down" role="presentation"> | ||
| 2 | $-- ' | ' ' ' ' ' | | | ' ' | ||
| 3 | $-- | ' ' ' //\_ ' | ' . | ' ' | ||
| 4 | $-- .| ' ____,...,______..,_~`` -`.., ' | ' | ' ' | ||
| 5 | $-- | _,~´"' , . ,~--´ ' _| | . |~~.__ ' ' | ||
| 6 | $-- | | ,-" _.-|~/ |..,____,) ,/,,"' '_( | ' |) ) ' ' | ||
| 7 | $-- '| \__,~"´ /:) / |:\ \ ,~( ) . | | ) `, ' _,--. | ||
| 8 | $-- ___\___.___:____(:/\_-,______\:.\_-,____.__\_.\______.__:___\__.___)_.___,/_____ | ||
| 9 | $-- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ | ||
| 10 | |||
| 11 | <pre class="c-hero__pre c-page__prefixed c-page__prefixed--pre u-mt0 u-hidden@sm-down"> | ||
| 12 | ' | ' ' ' ' ' | | | ' ' | ||
| 13 | | ' ' ' <strong>//\_</strong> ' | ' . | ' ' | ||
| 14 | .| ' <strong>____,...,______..,_~`` -`..,</strong> ' | ' | ' ' | ||
| 15 | | <strong>_,~´"' , . ,~--´</strong> ' _| | . |~~.__ ' ' | ||
| 16 | | | <strong>,-" _.-|~/ |..,____,) ,/,,"'</strong> '_( | ' |) ) ' ' | ||
| 17 | '| <strong>\__,~"´ /:) / |:\ \</strong> ,~( ) . | | ) `, ' _,--. | ||
| 18 | \ . : <strong>(:/\_-, \:.\_-,</strong> . \ .\ . : \ . ) . ' ,/ </pre> | ||
| 19 | |||
| 20 | </header> | ||
| 21 | |||
| 22 | $body$ | ||
| 23 | |||
| 24 | <template id="header-sm"> | ||
| 25 | $-- .| //\__ ' .' | . | ' . ' | ||
| 26 | $-- | _.~-"""-----~`` ,-´ ' ' |' | ' ' | ||
| 27 | $-- '| .´ ,~'\ ).,__,)/,," ' . ' | | | ' .' | ||
| 28 | $-- |_ `~´ (/\\, (/\\, _' '_ _| ' |_ _' '_ | ||
| 29 | |||
| 30 | <pre class="c-hero__pre c-page__prefixed c-page__prefixed--pre u-mt0 $if(section.is_index)$u-hidden@sm-up$endif$"> | ||
| 31 | .| <strong> //\__</strong> ' .' | . | ' . ' | ||
| 32 | | <strong> _.~-"""-----~`` ,-´</strong> ' ' |' | ' ' | ||
| 33 | '| <strong>.´ ,~'\ ).,__,)/,," </strong> ' . ' | | | ' .' | ||
| 34 | |_ <strong>`~´ (/\\, (/\\, </strong> _' '_ _| ' |_ _' '_</pre> | ||
| 35 | </template> | ||
| 36 | |||
| 37 | <script> | ||
| 38 | var headerEl = document.querySelector(".c-hero"); | ||
| 39 | var headerTemplateEl = document.getElementById("header-sm"); | ||
| 40 | var headerSmEl = headerTemplateEl.content.cloneNode("true"); | ||
| 41 | |||
| 42 | headerEl.classList.remove("u-hidden@sm-down"); | ||
| 43 | headerEl.appendChild(headerSmEl); | ||
| 44 | </script> | ||
diff --git a/templates/layouts/page.html b/templates/layouts/page.html new file mode 100644 index 0000000..332a846 --- /dev/null +++ b/templates/layouts/page.html | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | <header class="c-page__header"> | ||
| 2 | <h1 class="c-page__prefixed c-page__prefixed--h1 c-page__header__title">$title$</h1> | ||
| 3 | $if(date)$ | ||
| 4 | <h2 class="c-page__header__meta">$date.yyyy_mm_dd$$if(category)$ in $category.name$$endif$</h2> | ||
| 5 | $elseif(category)$ | ||
| 6 | <h2 class="c-page__header__meta">in $category.name$</h2> | ||
| 7 | $endif$ | ||
| 8 | </header> | ||
| 9 | |||
| 10 | <section> | ||
| 11 | $body$ | ||
| 12 | </section> | ||
diff --git a/templates/page.html b/templates/page.html deleted file mode 100644 index 36d66c2..0000000 --- a/templates/page.html +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | $body$ | ||
diff --git a/templates/partials/pageHeader.html b/templates/partials/pageHeader.html deleted file mode 100644 index 95e55f7..0000000 --- a/templates/partials/pageHeader.html +++ /dev/null | |||
| @@ -1,17 +0,0 @@ | |||
| 1 | $-- ' | ' ' ' ' ' | | | ' ' | ||
| 2 | $-- | ' ' ' //\_ ' | ' . | ' ' | ||
| 3 | $-- .| ' ____,...,______..,_~`` -`.., ' | ' | ' ' | ||
| 4 | $-- | _,~´"' , . ,~--´ ' _| | . |~~.__ ' ' | ||
| 5 | $-- | | ,-" _.-|~/ |..,____,) ,/,,"' '_( | ' |) ) ' ' | ||
| 6 | $-- '| \__,~"´ /:) / |:\ \ ,~( ) . | | ) `, ' _,--. | ||
| 7 | $-- ___\___.___:____(:/\_-,______\:.\_-,____.__\_.\______.__:___\__.___)_.___,/_____ | ||
| 8 | $-- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ | ||
| 9 | |||
| 10 | <pre class="c-page-header__pre c-page__prefixed c-page__prefixed--pre u-mt0 u-hidden@sm-down"> | ||
| 11 | ' | ' ' ' ' ' | | | ' ' | ||
| 12 | | ' ' ' <strong>//\_</strong> ' | ' . | ' ' | ||
| 13 | .| ' <strong>____,...,______..,_~`` -`..,</strong> ' | ' | ' ' | ||
| 14 | | <strong>_,~´"' , . ,~--´</strong> ' _| | . |~~.__ ' ' | ||
| 15 | | | <strong>,-" _.-|~/ |..,____,) ,/,,"'</strong> '_( | ' |) ) ' ' | ||
| 16 | '| <strong>\__,~"´ /:) / |:\ \</strong> ,~( ) . | | ) `, ' _,--. | ||
| 17 | \ . : <strong>(:/\_-, \:.\_-,</strong> . \ .\ . : \ . ) . ' ,/ </pre> | ||
diff --git a/templates/partials/pageHeaderSm.html b/templates/partials/pageHeaderSm.html deleted file mode 100644 index 92359fa..0000000 --- a/templates/partials/pageHeaderSm.html +++ /dev/null | |||
| @@ -1,10 +0,0 @@ | |||
| 1 | $-- .| //\__ ' .' | . | ' . ' | ||
| 2 | $-- | _.~-"""-----~`` ,-´ ' ' |' | ' ' | ||
| 3 | $-- '| .´ ,~'\ ).,__,)/,," ' . ' | | | ' .' | ||
| 4 | $-- |_ `~´ (/\\, (/\\, _' '_ _| ' |_ _' '_ | ||
| 5 | |||
| 6 | <pre class="c-page-header__pre c-page__prefixed c-page__prefixed--pre u-mt0 $if(section.is_index)$u-hidden@sm-up$endif$"> | ||
| 7 | .| <strong> //\__</strong> ' .' | . | ' . ' | ||
| 8 | | <strong> _.~-"""-----~`` ,-´</strong> ' ' |' | ' ' | ||
| 9 | '| <strong>.´ ,~'\ ).,__,)/,," </strong> ' . ' | | | ' .' | ||
| 10 | |_ <strong>`~´ (/\\, (/\\, </strong> _' '_ _| ' |_ _' '_</pre> | ||
