~hxii/hinode

cd7cea1e78dc1a10612e6cd470e5114323a49c5a — Paul (hxii) Glushak 2 years ago master
Init commit
A  => README.md +12 -0
@@ 1,12 @@
# 日の出 - Hinode
![Hinode Theme](https://paulglushak.com/flag-hinode.png)

**日の出** (*Hinode*) is a clean, minimal and bright theme for [Bludit](https://www.bludit.com/).

It started it's life as a commission which fell through, so I've decided to share it with everyone instead.

If you decide to use it and like it, please consider [donating/tipping](https://ko-fi.com/hxii_).

---

[Home](https://paulglushak.com/hinode)
\ No newline at end of file

A  => config.php +23 -0
@@ 1,23 @@
<?php 

return (object) [
    'entries_to_show'               => 8, // Entries to show on the homepage.
    'show_entry_list_excerpt'       => true, // If available, description will be shown.
    'excerpt_length'                => 20, // In words.
    'show_site_name_logo'           => false, // Show website name next to logo
    'show_site_slogan'              => false,
    'show_categories_in_menu'       => true, // Show categories in the menu
    'show_all_static_pages_in_menu' => true, // Show all pages or just if the page has show_in_menu custom metadata
    'show_sharing_links'            => true,

    'menu_icon'                     => '<svg width="22" height="12" viewBox="0 0 22 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21 8.5V3.5L17.25 6L13.5 3.5V8.5M1 1H21H1ZM1 6H11H1ZM1 11H21H1Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>',
    'tag_icon'                      => '<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 21V14.3333L14.3333 1L21 7.66667L7.66667 21H1Z" stroke="#0A0A0A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>',

    'show_social_links'             => true,
    'youtube_icon'                  => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkJz48c3ZnIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjEwMCUiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Ik0yNTYsMGMxNDEuMjksMCAyNTYsMTE0LjcxIDI1NiwyNTZjMCwxNDEuMjkgLTExNC43MSwyNTYgLTI1NiwyNTZjLTE0MS4yOSwwIC0yNTYsLTExNC43MSAtMjU2LC0yNTZjMCwtMTQxLjI5IDExNC43MSwtMjU2IDI1NiwtMjU2Wm0xNTMuMzE1LDE3OC45NzhjLTMuNjgsLTEzLjc2OSAtMTQuNTIyLC0yNC42MSAtMjguMjksLTI4LjI5Yy0yNC45NTgsLTYuNjg4IC0xMjUuMDI1LC02LjY4OCAtMTI1LjAyNSwtNi42ODhjMCwwIC0xMDAuMDY3LDAgLTEyNS4wMjUsNi42ODhjLTEzLjc2NSwzLjY4IC0yNC42MSwxNC41MjEgLTI4LjI5LDI4LjI5Yy02LjY4NSwyNC45NTUgLTYuNjg1LDc3LjAyNCAtNi42ODUsNzcuMDI0YzAsMCAwLDUyLjA2NyA2LjY4NSw3Ny4wMmMzLjY4LDEzLjc2OSAxNC41MjUsMjQuNjE0IDI4LjI5LDI4LjI5M2MyNC45NTgsNi42ODUgMTI1LjAyNSw2LjY4NSAxMjUuMDI1LDYuNjg1YzAsMCAxMDAuMDY3LDAgMTI1LjAyNSwtNi42ODVjMTMuNzY4LC0zLjY3OSAyNC42MSwtMTQuNTI0IDI4LjI5LC0yOC4yOTNjNi42ODUsLTI0Ljk1MyA2LjY4NSwtNzcuMDIgNi42ODUsLTc3LjAyYzAsMCAwLC01Mi4wNjkgLTYuNjg1LC03Ny4wMjRabS0xODUuMzE2LDEyNS4wMjVsMCwtOTYuMDAybDgzLjEzNyw0OC4wMDFsLTgzLjEzNyw0OC4wMDFaIi8+PC9zdmc+',
    'facebook_icon'                 => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkJz48c3ZnIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjEwMCUiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Ik0yNTUuMDIyLDUxMS45OThsMC4yMjksMC4wMDFsLTAuMDc5LDBsLTAuMTUsLTAuMDAxWm0xLjgwNiwwLjAwMWwtMC4wNzksMGwwLjIyOSwtMC4wMDFsLTAuMTUsMC4wMDFabS0yLjU4OCwtMC4wMDVsMC4yNDcsMC4wMDFsLTAuMTQyLDBsLTAuMTA1LC0wLjAwMVptMy40MTUsMC4wMDFsLTAuMTQyLDBsMC4yNDcsLTAuMDAxbC0wLjEwNSwwLjAwMVptLTQuMTY5LC0wLjAwN2wwLjE2NSwwLjAwMWwtMC4xMzIsLTAuMDAxbC0wLjAzMywwWm00Ljk5NSwwbC0wLjEzMiwwLjAwMWwwLjE2NSwtMC4wMDFsLTAuMDMzLDBabTAuODI2LC0wLjAwOWwtMC4wNTgsMC4wMDFsMC4yMjMsLTAuMDAzbC0wLjE2NSwwLjAwMlptLTYuNzc5LC0wLjAwMmwwLjIyMywwLjAwM2wtMC4wNTgsLTAuMDAxbC0wLjE2NSwtMC4wMDJabTcuNjA0LC0wLjAxbC0wLjEzNSwwLjAwMmwwLjI3NSwtMC4wMDRsLTAuMTQsMC4wMDJabS04LjQwNCwtMC4wMDJsMC4yNzUsMC4wMDRsLTAuMTM1LC0wLjAwMmwtMC4xNCwtMC4wMDJabTkuMjI4LC0wLjAxMmwtMC4xODIsMC4wMDNsMC4yNTQsLTAuMDA1bC0wLjA3MiwwLjAwMlptLTkuOTg0LC0wLjAwMmwwLjI1NCwwLjAwNWwtMC4xODIsLTAuMDAzbC0wLjA3MiwtMC4wMDJabS0wLjkzNywtMC4wMTlsMC4yMjUsMC4wMDVsLTAuMDQsLTAuMDAxbC0wLjE4NSwtMC4wMDRabTExLjc0NSwwLjAwNGwtMC4wNCwwLjAwMWwwLjIyNSwtMC4wMDVsLTAuMTg1LDAuMDA0Wm0tMTIuNTY3LC0wLjAyNWwwLjMwOSwwLjAwOGwtMC4xMjUsLTAuMDAzbC0wLjE4NCwtMC4wMDVabTEzLjM5LDAuMDA1bC0wLjEyNSwwLjAwM2wwLjMwOSwtMC4wMDhsLTAuMTg0LDAuMDA1Wm0wLjgyMywtMC4wMjJsLTAuMjAxLDAuMDA2bDAuMzE2LC0wLjAwOWwtMC4xMTUsMC4wMDNabS0xNC45NjcsLTAuMDAzbDAuMzE2LDAuMDA5bC0wLjIwMSwtMC4wMDZsLTAuMTE1LC0wLjAwM1ptLTAuNzIsLTAuMDIybDAuMjI1LDAuMDA3bC0wLjIxMiwtMC4wMDdsLTAuMTk0LC0wLjAwNmwwLjE4MSwwLjAwNlptMTYuNTA5LDBsLTAuMjEyLDAuMDA3bDAuMjI1LC0wLjAwN2wwLjE4MSwtMC4wMDZsLTAuMTk0LDAuMDA2Wm0wLjgyMSwtMC4wMjdsLTAuMTEyLDAuMDA0bDAuMzQ1LC0wLjAxMmwtMC4yMzMsMC4wMDhabS0xOC4zNzEsLTAuMDA4bDAuMzQ1LDAuMDEybC0wLjExMiwtMC4wMDRsLTAuMjMzLC0wLjAwOFptLTAuNzQ5LC0wLjAyOGwwLjM2MiwwLjAxM2wtMC4yMDEsLTAuMDA3bC0wLjE2MSwtMC4wMDZabTE5Ljk0MSwwLjAwNmwtMC4yMDEsMC4wMDdsMC4zNjIsLTAuMDEzbC0wLjE2MSwwLjAwNlptLTIwLjY3NiwtMC4wMzZsMC4zNTQsMC4wMTVsLTAuMjc3LC0wLjAxMWwtMC4wNzcsLTAuMDA0Wm0yMS40OTUsMC4wMDRsLTAuMjc3LDAuMDExbDAuMzU0LC0wLjAxNWwtMC4wNzcsMC4wMDRabS0yMi41MjUsLTAuMDQ5bDAuMzgsMC4wMTdsLTAuMDkzLC0wLjAwM2wtMC4yODcsLTAuMDE0Wm0yMy4zNDUsMC4wMTRsLTAuMDkzLDAuMDAzbDAuMzgsLTAuMDE3bC0wLjI4NywwLjAxNFptLTI0LjA4NCwtMC4wNDhsMC4zOTQsMC4wMThsLTAuMTg2LC0wLjAwOGwtMC4yMDgsLTAuMDFabTI0LjkwMiwwLjAxbC0wLjE4NiwwLjAwOGwwLjM5NCwtMC4wMThsLTAuMjA4LDAuMDFabS0yNS42MywtMC4wNDdsMC4zOTcsMC4wMmwtMC4yNzksLTAuMDEzbC0wLjExOCwtMC4wMDdabTI2LjQ0OCwwLjAwN2wtMC4yNzksMC4wMTNsMC4zOTcsLTAuMDJsLTAuMTE4LDAuMDA3Wm0wLjgxOCwtMC4wNDNsLTAuMzYyLDAuMDE5bDAuMzIxLC0wLjAxN2wwLjM3OCwtMC4wMjFsLTAuMzM3LDAuMDE5Wm0tMjcuOTI1LDAuMDAybDAuMzIxLDAuMDE3bC0wLjM2MiwtMC4wMTlsLTAuMzM3LC0wLjAxOWwwLjM3OCwwLjAyMVptMjguNzQxLC0wLjA0OGwtMC4xNiwwLjAwOWwwLjQwNiwtMC4wMjNsLTAuMjQ2LDAuMDE0Wm0tMjkuODQ0LC0wLjAxNGwwLjQwNiwwLjAyM2wtMC4xNiwtMC4wMDlsLTAuMjQ2LC0wLjAxNFptLTAuNzIyLC0wLjA0M2wwLjQwNSwwLjAyNGwtMC4yNTMsLTAuMDE0bC0wLjE1MiwtMC4wMVptMzEuMzgyLDAuMDFsLTAuMjUzLDAuMDE0bDAuNDA1LC0wLjAyNGwtMC4xNTIsMC4wMVptLTMyLjA3MSwtMC4wNTNsMC4zNjUsMC4wMjNsLTAuMzQsLTAuMDIxbC0wLjM0MiwtMC4wMjJsMC4zMTcsMC4wMlptMzIuODg3LDAuMDAybC0wLjM0LDAuMDIxbDAuMzY1LC0wLjAyM2wwLjMxNywtMC4wMmwtMC4zNDIsMC4wMjJabTAuODE0LC0wLjA1M2wtMC4xMjIsMC4wMDhsMC4zODcsLTAuMDI2bC0wLjI2NSwwLjAxOFptLTM0Ljc1NSwtMC4wMThsMC4zODcsMC4wMjZsLTAuMTIyLC0wLjAwOGwtMC4yNjUsLTAuMDE4Wm0tMC43MjEsLTAuMDVsMC4zOCwwLjAyN2wtMC4yMDgsLTAuMDE0bC0wLjE3MiwtMC4wMTNabTM2LjI5LDAuMDEzbC0wLjIwOCwwLjAxNGwwLjM4LC0wLjAyN2wtMC4xNzIsMC4wMTNabS0zNy4wMDksLTAuMDY0bDAuMzQ5LDAuMDI1bC0wLjI3MSwtMC4wMTlsLTAuMDc4LC0wLjAwNlptMzcuODIyLDAuMDA2bC0wLjI3MSwwLjAxOWwwLjM0OSwtMC4wMjVsLTAuMDc4LDAuMDA2Wm0tMzguNzg5LC0wLjA3OWwwLjMwNiwwLjAyM2wtMC4wNzQsLTAuMDA1bC0wLjIzMiwtMC4wMThabTM5LjYwMiwwLjAxOGwtMC4wNzQsMC4wMDVsMC4zMDYsLTAuMDIzbC0wLjIzMiwwLjAxOFptMC44MTEsLTAuMDYzbC0wLjE0NiwwLjAxMWwwLjMxMSwtMC4wMjVsLTAuMTY1LDAuMDE0Wm0tNDEuMTU3LC0wLjAxNGwwLjMxMSwwLjAyNWwtMC4xNDYsLTAuMDExbC0wLjE2NSwtMC4wMTRabS0wLjcyNSwtMC4wNTlsMC4yNjQsMC4wMjJsLTAuMTg2LC0wLjAxNWwtMC4wNzgsLTAuMDA3Wm00Mi42OTQsMC4wMDdsLTAuMTg2LDAuMDE1bDAuMjY0LC0wLjAyMmwtMC4wNzgsMC4wMDdabS00My40OTIsLTAuMDc0bDAuMDc5LDAuMDA3bC0wLjAxMywtMC4wMDFsLTAuMDY2LC0wLjAwNlptNDQuMzAyLDAuMDA2bC0wLjAxMywwLjAwMWwwLjA3OSwtMC4wMDdsLTAuMDY2LDAuMDA2Wm0wLjgxLC0wLjA3MWwtMC4wNzIsMC4wMDZsMC4xODEsLTAuMDE2bC0wLjEwOSwwLjAxWm0tNDUuOTY1LC0wLjAxbDAuMTgxLDAuMDE2bC0wLjA3MiwtMC4wMDZsLTAuMTA5LC0wLjAxWm0tMC43NSwtMC4wNjhsMC4xMzUsMC4wMTNsLTAuMDg0LC0wLjAwOGwtMC4wNTEsLTAuMDA1Wm00Ny41MjMsMC4wMDVsLTAuMDg0LDAuMDA4bDAuMTM1LC0wLjAxM2wtMC4wNTEsMC4wMDVabS02My43MzYsLTIuMDI1Yy0xMjIuMzE5LC0xOS4yMjYgLTIxNiwtMTI1LjIwMyAtMjE2LC0yNTIuODg3YzAsLTE0MS4yOSAxMTQuNzEsLTI1NiAyNTYsLTI1NmMxNDEuMjksMCAyNTYsMTE0LjcxIDI1NiwyNTZjMCwxMjcuNjg0IC05My42ODEsMjMzLjY2MSAtMjE2LDI1Mi44ODdsMCwtMTc4Ljg4N2w1OS42NSwwbDExLjM1LC03NGwtNzEsMGwwLC00OC4wMjFjMCwtMjAuMjQ1IDkuOTE4LC0zOS45NzkgNDEuNzE5LC0zOS45NzlsMzIuMjgxLDBsMCwtNjNjMCwwIC0yOS4yOTYsLTUgLTU3LjMwNSwtNWMtNTguNDc2LDAgLTk2LjY5NSwzNS40NCAtOTYuNjk1LDk5LjZsMCw1Ni40bC02NSwwbDAsNzRsNjUsMGwwLDE3OC44ODdaIi8+PC9zdmc+',
    'twitter_icon'                  => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkJz48c3ZnIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjEwMCUiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Ik0yNTYsMGMxNDEuMjksMCAyNTYsMTE0LjcxIDI1NiwyNTZjMCwxNDEuMjkgLTExNC43MSwyNTYgLTI1NiwyNTZjLTE0MS4yOSwwIC0yNTYsLTExNC43MSAtMjU2LC0yNTZjMCwtMTQxLjI5IDExNC43MSwtMjU2IDI1NiwtMjU2Wm0tNDUuMDkxLDM5Mi4xNThjMTEzLjI4MywwIDE3NS4yMjQsLTkzLjg3IDE3NS4yMjQsLTE3NS4yMjNjMCwtMi42ODIgMCwtNS4zNjQgLTAuMTI4LC03LjkxOWMxMi4wMDUsLTguNjg0IDIyLjQ3OCwtMTkuNTQgMzAuNzc5LC0zMS45MjhjLTEwLjk4Myw0Ljg1MyAtMjIuODYxLDguMTc0IC0zNS4zNzcsOS43MDZjMTIuNzcyLC03LjY2MyAyMi40NzgsLTE5LjY2OCAyNy4wNzYsLTM0LjA5OWMtMTEuODc4LDcuMDI0IC0yNS4wMzIsMTIuMTMyIC0zOS4wODEsMTQuOTQyYy0xMS4yMzksLTEyLjAwNSAtMjcuMjAzLC0xOS40MTIgLTQ0Ljk1NSwtMTkuNDEyYy0zMy45NzIsMCAtNjEuNTU4LDI3LjU4NiAtNjEuNTU4LDYxLjU1OGMwLDQuODUzIDAuNTExLDkuNTc4IDEuNjYsMTQuMDQ4Yy01MS4yMTMsLTIuNTU0IC05Ni41NTIsLTI3LjA3NSAtMTI2Ljk0NywtNjQuMzY4Yy01LjIzNyw5LjA2OCAtOC4zMDIsMTkuNjY4IC04LjMwMiwzMC45MDdjMCwyMS4zMjggMTAuODU2LDQwLjIzIDI3LjQ1OSw1MS4yMTNjLTEwLjA5LC0wLjI1NSAtMTkuNTQxLC0zLjA2NSAtMjcuODQyLC03LjY2MmwwLDAuNzY2YzAsMjkuODg1IDIxLjIsNTQuNjYxIDQ5LjQyNSw2MC40MDljLTUuMTA4LDEuNDA0IC0xMC42LDIuMTcxIC0xNi4yMTksMi4xNzFjLTMuOTYsMCAtNy43OTEsLTAuMzgzIC0xMS42MjIsLTEuMTVjNy43OSwyNC41MjEgMzAuNTIzLDQyLjI3NCA1Ny40NzEsNDIuNzg0Yy0yMS4wNzMsMTYuNDc2IC00Ny42MzcsMjYuMzEgLTc2LjUwMSwyNi4zMWMtNC45ODEsMCAtOS44MzQsLTAuMjU2IC0xNC42ODcsLTAuODk0YzI2Ljk0OCwxNy42MjQgNTkuMzg3LDI3Ljg0MSA5NC4xMjUsMjcuODQxWiIvPjwvc3ZnPg==',
    'instagram_icon'                => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkJz48c3ZnIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjEwMCUiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Ik0yNTYsMGMxNDEuMjksMCAyNTYsMTE0LjcxIDI1NiwyNTZjMCwxNDEuMjkgLTExNC43MSwyNTYgLTI1NiwyNTZjLTE0MS4yOSwwIC0yNTYsLTExNC43MSAtMjU2LC0yNTZjMCwtMTQxLjI5IDExNC43MSwtMjU2IDI1NiwtMjU2Wm0wLDk2Yy00My40NTMsMCAtNDguOTAyLDAuMTg0IC02NS45NjgsMC45NjNjLTE3LjAzLDAuNzc3IC0yOC42NjEsMy40ODIgLTM4LjgzOSw3LjQzN2MtMTAuNTIxLDQuMDg5IC0xOS40NDQsOS41NiAtMjguMzM5LDE4LjQ1NWMtOC44OTUsOC44OTUgLTE0LjM2NiwxNy44MTggLTE4LjQ1NSwyOC4zMzljLTMuOTU1LDEwLjE3NyAtNi42NTksMjEuODA4IC03LjQzNywzOC44MzhjLTAuNzc4LDE3LjA2NiAtMC45NjIsMjIuNTE1IC0wLjk2Miw2NS45NjhjMCw0My40NTMgMC4xODQsNDguOTAyIDAuOTYyLDY1Ljk2OGMwLjc3OCwxNy4wMyAzLjQ4MiwyOC42NjEgNy40MzcsMzguODM4YzQuMDg5LDEwLjUyMSA5LjU2LDE5LjQ0NCAxOC40NTUsMjguMzRjOC44OTUsOC44OTUgMTcuODE4LDE0LjM2NiAyOC4zMzksMTguNDU1YzEwLjE3OCwzLjk1NCAyMS44MDksNi42NTkgMzguODM5LDcuNDM2YzE3LjA2NiwwLjc3OSAyMi41MTUsMC45NjMgNjUuOTY4LDAuOTYzYzQzLjQ1MywwIDQ4LjkwMiwtMC4xODQgNjUuOTY4LC0wLjk2M2MxNy4wMywtMC43NzcgMjguNjYxLC0zLjQ4MiAzOC44MzgsLTcuNDM2YzEwLjUyMSwtNC4wODkgMTkuNDQ0LC05LjU2IDI4LjM0LC0xOC40NTVjOC44OTUsLTguODk2IDE0LjM2NiwtMTcuODE5IDE4LjQ1NSwtMjguMzRjMy45NTQsLTEwLjE3NyA2LjY1OSwtMjEuODA4IDcuNDM2LC0zOC44MzhjMC43NzksLTE3LjA2NiAwLjk2MywtMjIuNTE1IDAuOTYzLC02NS45NjhjMCwtNDMuNDUzIC0wLjE4NCwtNDguOTAyIC0wLjk2MywtNjUuOTY4Yy0wLjc3NywtMTcuMDMgLTMuNDgyLC0yOC42NjEgLTcuNDM2LC0zOC44MzhjLTQuMDg5LC0xMC41MjEgLTkuNTYsLTE5LjQ0NCAtMTguNDU1LC0yOC4zMzljLTguODk2LC04Ljg5NSAtMTcuODE5LC0xNC4zNjYgLTI4LjM0LC0xOC40NTVjLTEwLjE3NywtMy45NTUgLTIxLjgwOCwtNi42NiAtMzguODM4LC03LjQzN2MtMTcuMDY2LC0wLjc3OSAtMjIuNTE1LC0wLjk2MyAtNjUuOTY4LC0wLjk2M1ptMCwyOC44MjljNDIuNzIyLDAgNDcuNzgyLDAuMTYzIDY0LjY1NCwwLjkzM2MxNS42LDAuNzEyIDI0LjA3MSwzLjMxOCAyOS43MDksNS41MDljNy40NjksMi45MDIgMTIuNzk5LDYuMzcgMTguMzk3LDExLjk2OWM1LjYsNS41OTggOS4wNjcsMTAuOTI5IDExLjk2OSwxOC4zOTdjMi4xOTEsNS42MzggNC43OTgsMTQuMTA5IDUuNTA5LDI5LjcwOWMwLjc3LDE2Ljg3MiAwLjkzMywyMS45MzIgMC45MzMsNjQuNjU0YzAsNDIuNzIyIC0wLjE2Myw0Ny43ODIgLTAuOTMzLDY0LjY1NGMtMC43MTEsMTUuNiAtMy4zMTgsMjQuMDcxIC01LjUwOSwyOS43MDljLTIuOTAyLDcuNDY5IC02LjM2OSwxMi43OTkgLTExLjk2OSwxOC4zOTdjLTUuNTk4LDUuNiAtMTAuOTI4LDkuMDY3IC0xOC4zOTcsMTEuOTY5Yy01LjYzOCwyLjE5MSAtMTQuMTA5LDQuNzk4IC0yOS43MDksNS41MDljLTE2Ljg2OSwwLjc3IC0yMS45MjksMC45MzMgLTY0LjY1NCwwLjkzM2MtNDIuNzI1LDAgLTQ3Ljc4NCwtMC4xNjMgLTY0LjY1NCwtMC45MzNjLTE1LjYsLTAuNzExIC0yNC4wNzEsLTMuMzE4IC0yOS43MDksLTUuNTA5Yy03LjQ2OSwtMi45MDIgLTEyLjc5OSwtNi4zNjkgLTE4LjM5OCwtMTEuOTY5Yy01LjU5OSwtNS41OTggLTkuMDY2LC0xMC45MjggLTExLjk2OCwtMTguMzk3Yy0yLjE5MSwtNS42MzggLTQuNzk4LC0xNC4xMDkgLTUuNTEsLTI5LjcwOWMtMC43NywtMTYuODcyIC0wLjkzMiwtMjEuOTMyIC0wLjkzMiwtNjQuNjU0YzAsLTQyLjcyMiAwLjE2MiwtNDcuNzgyIDAuOTMyLC02NC42NTRjMC43MTIsLTE1LjYgMy4zMTksLTI0LjA3MSA1LjUxLC0yOS43MDljMi45MDIsLTcuNDY4IDYuMzY5LC0xMi43OTkgMTEuOTY4LC0xOC4zOTdjNS41OTksLTUuNTk5IDEwLjkyOSwtOS4wNjcgMTguMzk4LC0xMS45NjljNS42MzgsLTIuMTkxIDE0LjEwOSwtNC43OTcgMjkuNzA5LC01LjUwOWMxNi44NzIsLTAuNzcgMjEuOTMyLC0wLjkzMyA2NC42NTQsLTAuOTMzWm0wLDQ5LjAwOWMtNDUuMzc3LDAgLTgyLjE2MiwzNi43ODUgLTgyLjE2Miw4Mi4xNjJjMCw0NS4zNzcgMzYuNzg1LDgyLjE2MiA4Mi4xNjIsODIuMTYyYzQ1LjM3NywwIDgyLjE2MiwtMzYuNzg1IDgyLjE2MiwtODIuMTYyYzAsLTQ1LjM3NyAtMzYuNzg1LC04Mi4xNjIgLTgyLjE2MiwtODIuMTYyWm0wLDEzNS40OTVjLTI5LjQ1NSwwIC01My4zMzMsLTIzLjg3OCAtNTMuMzMzLC01My4zMzNjMCwtMjkuNDU1IDIzLjg3OCwtNTMuMzMzIDUzLjMzMywtNTMuMzMzYzI5LjQ1NSwwIDUzLjMzMywyMy44NzggNTMuMzMzLDUzLjMzM2MwLDI5LjQ1NSAtMjMuODc4LDUzLjMzMyAtNTMuMzMzLDUzLjMzM1ptMTA0LjYwOSwtMTM4Ljc0MWMwLDEwLjYwNCAtOC41OTcsMTkuMTk5IC0xOS4yMDEsMTkuMTk5Yy0xMC42MDMsMCAtMTkuMTk5LC04LjU5NSAtMTkuMTk5LC0xOS4xOTljMCwtMTAuNjA0IDguNTk2LC0xOS4yIDE5LjE5OSwtMTkuMmMxMC42MDQsMCAxOS4yMDEsOC41OTYgMTkuMjAxLDE5LjJaIi8+PC9zdmc+',
    'github_icon'                   => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgaGVpZ2h0PSIxMDI0IiB3aWR0aD0iMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTEyIDBDMjI5LjI1IDAgMCAyMjkuMjUgMCA1MTJjMCAyMjYuMjUgMTQ2LjY4OCA0MTguMTI1IDM1MC4xNTYgNDg1LjgxMiAyNS41OTQgNC42ODggMzQuOTM4LTExLjEyNSAzNC45MzgtMjQuNjI1IDAtMTIuMTg4LTAuNDY5LTUyLjU2Mi0wLjcxOS05NS4zMTJDMjQyIDkwOC44MTIgMjExLjkwNiA4MTcuNSAyMTEuOTA2IDgxNy41Yy0yMy4zMTItNTkuMTI1LTU2Ljg0NC03NC44NzUtNTYuODQ0LTc0Ljg3NS00Ni41MzEtMzEuNzUgMy41My0zMS4xMjUgMy41My0zMS4xMjUgNTEuNDA2IDMuNTYyIDc4LjQ3IDUyLjc1IDc4LjQ3IDUyLjc1IDQ1LjY4OCA3OC4yNSAxMTkuODc1IDU1LjYyNSAxNDkgNDIuNSA0LjY1NC0zMyAxNy45MDQtNTUuNjI1IDMyLjUtNjguMzc1QzMwNC45MDYgNzI1LjQzOCAxODUuMzQ0IDY4MS41IDE4NS4zNDQgNDg1LjMxMmMwLTU1LjkzOCAxOS45NjktMTAxLjU2MiA1Mi42NTYtMTM3LjQwNi01LjIxOS0xMy0yMi44NDQtNjUuMDk0IDUuMDYyLTEzNS41NjIgMCAwIDQyLjkzOC0xMy43NSAxNDAuODEyIDUyLjUgNDAuODEyLTExLjQwNiA4NC41OTQtMTcuMDMxIDEyOC4xMjUtMTcuMjE5IDQzLjUgMC4xODggODcuMzEyIDUuODc1IDEyOC4xODggMTcuMjgxIDk3LjY4OC02Ni4zMTIgMTQwLjY4OC01Mi41IDE0MC42ODgtNTIuNSAyOCA3MC41MzEgMTAuMzc1IDEyMi41NjIgNS4xMjUgMTM1LjUgMzIuODEyIDM1Ljg0NCA1Mi42MjUgODEuNDY5IDUyLjYyNSAxMzcuNDA2IDAgMTk2LjY4OC0xMTkuNzUgMjQwLTIzMy44MTIgMjUyLjY4OCAxOC40MzggMTUuODc1IDM0Ljc1IDQ3IDM0Ljc1IDk0Ljc1IDAgNjguNDM4LTAuNjg4IDEyMy42MjUtMC42ODggMTQwLjUgMCAxMy42MjUgOS4zMTIgMjkuNTYyIDM1LjI1IDI0LjU2MkM4NzcuNDM4IDkzMCAxMDI0IDczOC4xMjUgMTAyNCA1MTIgMTAyNCAyMjkuMjUgNzk0Ljc1IDAgNTEyIDB6Ii8+PC9zdmc+',
    'favicon'                       => 'data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=',
];
\ No newline at end of file

A  => css/style.css +282 -0
@@ 1,282 @@
:root {
    --w: #fff;
    --f: #000;
    --b: #292A29;
    --y: #F7F1E7;
    --r: #BA3222;
}

* {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}

html {
    font: 400 20px/1.62 'Inter', sans-serif;
    color: var(--f);
}

body {
    padding: 2rem;
    display: flex;
    justify-content: center;
    background: var(--y);
}

a, a:visited {
    color: var(--b);
    text-decoration-color: #ccc;
    transition: color .3s ease;
}

a:hover {
    color: var(--r);
    text-decoration-color: currentColor;
}

img {
    max-width: 100%;
}

pre {
    white-space: pre-wrap;
    word-break: break-word;
}

h1, h2, h3, h4, h5, .main-navigation a, .disp {
    font-family: Rufina, serif;
    line-height: 1;
}

h1, h2, h3, h4, h5, p, ul, ol {
    margin: 0 0 1rem 0
}

header{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    display: flex;
    align-items: center;
}

.logo img {
    max-height: 2rem;
}

.main-navigation {
    position: fixed;
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
    background: var(--w);
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100%;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s, visibility 0.5s;
    z-index: 100;
}

.main-navigation > * {
    max-width: 30%;
    flex: 0 1 auto;
}

.main-navigation ul {
    list-style-type: none;
    font-size: 2rem;
}

.menu-button {
    height: 32px;
    width: 32px;
    line-height: 32px;
    background: var(--r);   
    color: var(--w);
    text-align: center;
    z-index: 2;
    position: relative;
}

#menu {
    display: none;
}

#menu:checked ~ .main-navigation {
    visibility: visible;
    opacity: 1;
}

#menu:checked ~ label .menu-button {
    position: fixed;
    top: 4rem;
    left: 50%;
    z-index: 1000;
    background: var(--b);
}

.container {
    max-width: 80%;
}

.entry-list {
    display: grid;
    grid-gap: 2rem;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

.entry, footer {
    background: var(--w);
}

.entry-description, .entry-image {
    grid-column: 1/-1;
}

.entry-image img {
    width: 100%;
}



footer .footer-widgets {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    grid-gap: 1rem;
}

.social {
    display: flex;
    justify-content: center;
    align-items: center;
}

.social > *:not(:last-child) {
    margin: 0 1rem 0 0
}

.social img {
    height: 2rem;
}

/* Helper Classes */
.b-t {
    border-top: 1px solid var(--b)
}
.b-b {
    border-bottom: 1px solid var(--b)
}
.fs-110 {
    font-size: 1.1em;
}
.fs-120 {
    font-size: 1.2em;
}
.p1 {
    padding: 1rem
}
.ptb1 {
    padding: 1rem 0
}
.ptb2 {
    padding: 2rem 0
}
.pt1 {
    padding: 1rem 0 0 0
}
.pt2 {
    padding: 2rem 0 0 0
}
.mb1 {
    margin: 0 0 1rem
}
.mb2 {
    margin: 0 0 2rem
}
.mt2 {
    margin: 2rem 0 0
}
.mtb1 {
    margin: 1rem 0
}
.mtb2 {
    margin: 2rem 0
}
.db {
    display: block;
}
.dib {
    display: inline-block;
}
.df-r {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.df-c {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.df-c > * {
    width: 100%;
}
.ta-c {
    text-align: center;
}
.mo {
    font-family: 'Roboto Mono', monospace;
    font-size: .75rem;
    text-transform: uppercase;
}
.ch70 {
    max-width: 70ch;
}

.ul-cs {
    list-style-type: none;
}
.ul-cs li {
    display: inline-block;
}
.ul-cs li:not(:last-child):after {
    content: ', ';
}
.anim-i {
    animation: i 1s ease;
}

.anim-del-1 {
    animation-delay: 1s;
}

@keyframes i {
    from {
        opacity: 0;
        transform: translateY(-3rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media only screen and (max-width: 640px) {
    body {
        padding: 1rem
    }
    .container {
        max-width: 100%
    }
}

A  => css/style.min.css +1 -0
@@ 1,1 @@
*{box-sizing:border-box;}body{background:#fefefe;color:#333;font-family:sans-serif;}.container{max-width:960px;display:flex;flex-direction:column;}img{max-width:100%;}code{white-space:pre-wrap;word-break:break-word;}

A  => inc/category.php +37 -0
@@ 1,37 @@
<h1 class="page-title mb2">
	<?php
	$categories = new Categories();
	$category_key = $url->slug();
	$category = new Category( $category_key );
	echo $category->name(); ?>
</h1>
<?php if ( ! empty( $category->description() ) ): ?>
	<div class="page-description mb2"><?php echo $category->description(); ?></div>
<?php endif; ?>
<div class="entry-list mb2">
	<?php foreach ( $content as $page ): ?>
		<div class="entry p1">
		<?php if ( $page->coverImage() ): ?>
			<div class="entry-image mb1">
				<img src="<?php echo $page->coverImage(); ?>" loading="lazy">
			</div>
		<?php endif; ?>
			<div class="entry-title"><h2><a href="<?php echo $page->permalink(); ?>"><?php echo $page->title(); ?></a></h2></div>
			<div class="entry-meta db mo mb1"><time><?php echo $page->date( "F jS Y" ); ?></time>
				<?php if ( $page->categoryKey() ): ?>
					- <a href="<?php echo $page->categoryPermalink(); ?>"><?php echo $page->categoryKey(); ?></a>
				<?php endif; ?>
			</div>
			<div class="entry-description mb1">
				<?php if ( $page->description() ) {
					echo $page->description();
				} elseif ( $config->show_entry_list_excerpt ) {
					$raw = strip_tags( $page->contentRaw() );
					echo implode(' ', array_slice(explode(' ', $raw), 0, $config->excerpt_length)) . '...';
				} ?>
				
			</div>
			<a class="db" href="<?php echo $page->permalink(); ?>">Read More →</a>
		</div>
	<?php endforeach; ?>
</div>
\ No newline at end of file

A  => inc/footer.php +15 -0
@@ 1,15 @@
<footer class="mtb2 p1">
	<div class="footer-widgets mb1">
		<?php Theme::plugins( 'siteSidebar' ) ?>
		<?php if ( $config->show_social_links ): ?>
			<div class="social">
				<?php foreach ( Theme::socialNetworks() as $key=>$label ) : ?>
					<a href="<?php echo $site->{$key}(); ?>"><?php echo '<img src="'.$config->{$key.'_icon'} .'">'; ?></a>
				<?php endforeach; ?>
			</div>
		<?php endif; ?>
	</div>
	<?php Theme::plugins( 'siteBodyEnd' ); ?>
	<span class="loading-time"><?php echo round( ( microtime( true ) - $loadtime )*1000, 4 ) . 'ms'; ?></span>
	<div class="copyright"><?php echo $site->footer(); ?></div>
</footer>

A  => inc/header.php +34 -0
@@ 1,34 @@
<header class="mb2 ptb2">
	<div class="logo">
		<a href="<?php echo Theme::siteUrl() ?>">
			<?php echo ( $site->logo() )? "<img src='{$site->logo()}' alt='{$site->title()}'>" : ''; ?>
			<?php echo ( $config->show_site_name_logo )? "<span>{$site->title()}</span>" : ''; ?>
		</a>
		<?php if ( $config->show_site_slogan ): ?>
			<div class="slogan"><?php echo $site->slogan(); ?></div>
		<?php endif; ?>
	</div>

	<input type="checkbox" id="menu" name="menu">
	<label for="menu"><div class="menu-button"><?php echo $config->menu_icon; ?></div></label>

	<nav class="main-navigation">
		<ul>
			<?php 
				if ( $config->show_categories_in_menu ) {
					$categories = getCategories();
					foreach ( $categories as $category ) {
						if ( count( $category->pages() ) ) {
							echo "<li><a href='{$category->permalink()}'>{$category->name()}</a></li>";
						}
					}
				}
			?>
			<?php foreach ( $staticContent as $staticPage ) {
				if ( $config->show_all_static_pages_in_menu || $staticPage->custom('show_in_menu') ) {
						echo "<li><a href='{$staticPage->permalink()}' title=''>{$staticPage->title()}</a></li>";
				}
			} ?>
		</ul>
	</nav>
</header>

A  => inc/home.php +34 -0
@@ 1,34 @@
<?php $blog_posts = $pages->getList( 1, -1, true, false );
if ( $config->entries_to_show > 0 ) {
	$blog_posts = array_slice( $blog_posts, 0, $config->entries_to_show );
}
?>
<div class="entry-list mb2 anim-i">
	<?php foreach ( $blog_posts as $page ): ?>
		<?php $page = new Page( $page ); ?>
		<div class="entry p1 anim-i">
		<?php //echo ( $page->coverImage() )? '<img src="' . $page->coverImage() . '">' : ''; ?>
		<?php if ( $page->coverImage() ): ?>
			<div class="entry-image mb1">
				<img src="<?php echo $page->coverImage(); ?>" loading="lazy">
			</div>
		<?php endif; ?>
			<div class="entry-title"><h2><a href="<?php echo $page->permalink(); ?>"><?php echo $page->title(); ?></a></h2></div>
			<div class="entry-meta db mo mb1"><time><?php echo $page->date( "F jS Y" ); ?></time>
				<?php if ( $page->categoryKey() ): ?>
					- <a href="<?php echo $page->categoryPermalink(); ?>"><?php echo $page->categoryKey(); ?></a>
				<?php endif; ?>
			</div>
			<div class="entry-description mb1">
				<?php if ( $page->description() ) {
					echo $page->description();
				} elseif ( $config->show_entry_list_excerpt ) {
					$raw = strip_tags( $page->contentRaw() );
					echo implode(' ', array_slice(explode(' ', $raw), 0, $config->excerpt_length)) . '...';
				} ?>
				
			</div>
			<a class="db" href="<?php echo $page->permalink(); ?>">Read More →</a>
		</div>
	<?php endforeach; ?>
</div>
\ No newline at end of file

A  => inc/page.php +69 -0
@@ 1,69 @@
<div class="entry p1 df-c anim-i">
	<?php if ( $page->coverImage() ): ?>
		<div class="entry-image">
		<figure class="cover-image"><img alt="Cover Image" src="<?php echo $page->coverImage(); ?>"/></figure>
		</div>
	<?php endif ?>
<div class="entry-header ch70 mb2">
	<h1 class="entry-title mt2"><?php echo $page->title(); ?></h1>
	<?php if ( ! $page->isStatic() && ! $url->notFound() ): ?>
		<aside class="entry-meta mo">
		<?php echo $page->readingTime(); ?> read, posted <time datetime='<?php echo $page->date( 'Y-m-d H:i' ); ?>'><?php echo $page->date( 'D F jS Y' ); ?></time> in <a href="<?php echo $page->categoryPermalink(); ?>"><?php echo $page->categoryKey(); ?></a><?php 
			if ( $page->parent() ) {
				$parent = new Page($page->parent());
				echo ', Related to <a href="'. $parent->permalink() . '">' . $parent->title() . '</a>';
			}
		?>
		</aside>
	<?php endif; ?>
	<?php if ( ! empty( $page->description() ) ): ?>
		<div class="page-description"><?php echo $page->description(); ?></div>
	<?php endif; ?>
</div>
<div class="entry-content ch70">
	<?php echo $page->content(); ?>
</div>
<div class="entry-pagination mtb2 ch70 df-r b-t pt1">
	<?php 
	if ( $page->previousKey() ) {
		$prev_page = new Page($page->previousKey());
		echo "<div class='pagination-prev'><span class='disp'>Previously:</span> <a class='mo' rel='prev' href='{$prev_page->permalink()}'>{$prev_page->title()}</a></div>";
	}
	if ( $page->nextKey() ) {
		$next_page = new Page($page->nextKey());
		echo "<div class='pagination-prev'><span class='disp'>Next up:</span> <a class='mo' rel='prev' href='{$next_page->permalink()}'>{$next_page->title()}</a></div>";
	}
	?>
</div>

<?php if ( $config->show_sharing_links ): ?>
	<div class="entry-sharing ch70 mb2 ta-c b-t pt1">
		<span class="disp">Share this article via </span>
		<a class="share-twitter mo" href="https://twitter.com/intent/tweet?text=<?php echo urlencode($page->title().' - '.$page->permalink()); ?>">Twitter</a>
		<span class="disp">or</span>
		<a class="share-facebook mo" href="https://www.facebook.com/sharer/sharer.php?u=<?php echo $page->permalink(); ?>">Facebook</a>
	</div>
<?php endif; ?>

<?php if ( $page->hasChildren() ): ?>
	<div class="entry-children ch70">
		<span class="disp">More about "<?php echo $page->title(); ?>": </span>
		<ul class="children ul-cs dib mo">
			<?php $children = $page->children();
			foreach ( $children as $child ): ?>
			<li><a href="<?php echo $child->permalink(); ?>"><?php echo $child->title(); ?></a></li>
			<?php endforeach; ?>
			</ul>
	</div>
<?php endif; ?>
<?php if ( $page->tags( true ) ): ?>
	<div class="entry-tags ch70">
		<span class="disp">Tags: </span>
		<ul class="ul-cs dib mo">
			<?php foreach( $page->tags( true ) as $tagKey=>$tagName ) :?>
				<li><a href="<?php echo DOMAIN_TAGS.$tagKey ?>" rel="tag"><?php echo $tagName ?></a></li>
			<?php endforeach; ?>
		</ul>
	</div>
<?php endif; ?>
</div>
\ No newline at end of file

A  => inc/tag.php +27 -0
@@ 1,27 @@
<main>
	<article>
		<section class="article-meta">
			<h1 class="page-title">
				<?php echo $url->slug(); ?>
			</h1>
		</section>
		<section class="article-list">
			<?php
			$tagKey = $url->slug();
			$tag = new Tag( $tagKey );
			?>
			<?php foreach ( $tag->pages() as $page_key ): ?>
			<?php $page = new Page( $page_key ); ?>
			<article class="list-article<?php if ( $page->custom( 'important' ) ) { echo ' important'; } ?>">
				<section class="article-name">
					<a href="<?php echo $page->permalink(); ?>"><?php echo $page->title(); ?></a>
					<?php if ( $page->description() ) : ?>
						<span><?php echo $page->description(); ?></span>
					<?php endif; ?>
				</section>
				<aside class="article-meta"><time datetime='<?php echo $page->date( 'Y-m-d H:i' ); ?>'><?php echo $page->date( 'F jS Y' ); ?></time> in <?php echo $page->categoryKey(); ?></aside>
			</article>
			<?php endforeach; ?>
		</section>
	</article>
</main>
\ No newline at end of file

A  => index.php +47 -0
@@ 1,47 @@
<?php $config = require 'config.php'; ?>
<!DOCTYPE html>
<html lang="en">
	<head>
		<?php $loadtime = microtime(true); ?>
		<!--
			日の出 - Hinode
			by hxii (paul@glushak.net)
		-->
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<link rel="shortcut icon" href="<?php echo $config->favicon; ?>">
		<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&family=Roboto+Mono&family=Rufina:wght@700&display=swap" rel="stylesheet">
		<?php echo Theme::metaTags( 'title' ); ?>
		<?php echo Theme::metaTags( 'description' ); ?>
		<?php if (Theme::rssUrl()) {
			echo '<link rel="alternate" type="application/rss+xml" title="Subscribe to RSS" href="'.Theme::rssUrl().'" />';
		} ?>
		<?php echo ($WHERE_AM_I === 'page')? '<meta name="keywords" content="'.$page->tags( false ).'">' : ''; ?>
		<?php 
		$user = new User('admin');
		echo '<meta name="author" content="'.$user->firstName().' ' . $user->lastName(). '">'; ?>
		<?php echo Theme::css( 'css/style.css' ); ?>
		<?php Theme::plugins( 'siteHead' ) ?>
	</head>
	<body>
		<div class="container<?php echo ( $page->template() )? ' template-'.$page->template() : ''; ?>">
			<?php Theme::plugins( 'siteBodyBegin' ) ?>
			<?php include( 'inc/header.php' ); ?>
			<?php if ( $WHERE_AM_I === 'page' ) {
				if ( ! empty( $page->template() ) && file_exists( PATH_THEMES.$site->theme().'/inc/'.$page->template().'.php' ) ) {
					include( "inc/{$page->template()}.php" );
				} else {
					include( 'inc/page.php' );
				}
			} elseif ( $WHERE_AM_I === 'category' ) {
				include( 'inc/category.php' );
			} elseif ( $WHERE_AM_I === 'tag' ) {
				include ( 'inc/tag.php' );
			} else {
				include( 'inc/home.php' );
			} ?>
			<?php include( 'inc/footer.php' ); ?>
		</div>
	</body>
</html>

A  => languages/en.json +6 -0
@@ 1,6 @@
{
    "theme-data": {
        "name": "日の出 - Hinode",
        "description": "Hinode - Sunrise. A clean, minimal and bright theme for Bludit. Made by <a href='https://paulglushak.com'>hxii</a>."
    }
}

A  => metadata.json +10 -0
@@ 1,10 @@
{
    "author": "Paul (hxii) Glushak",
    "email": "paul@glushak.net",
    "website": "https://paulglushak.com/hinode",
    "version": "1.0",
    "releaseDate": "2020-05-30",
    "license": "GPLv3",
    "compatible": "3.0",
    "notes": "日の出 - Hinode."
}