Add recent posts & tracks to homepage
This commit is contained in:
parent
ca5c8a5bdc
commit
d8bf19e868
@ -1,19 +1,26 @@
|
|||||||
template: page
|
template: page
|
||||||
title: Homepage
|
title: Homepage
|
||||||
license: CC-BY
|
blog_list_limit: 2
|
||||||
|
music_list_limit: 2
|
||||||
|
|
||||||
# Homepage
|
# Homepage
|
||||||
|
|
||||||
Ahoy, my name is Ryan Fox. I am a Canadian guy who likes programming and music.
|
Ahoy, my name is Ryan Fox. I am a Canadian guy who likes programming and music.
|
||||||
|
|
||||||
Have you come to [read about me]({root}about{ext})?
|
Feel free to click on the links in the header to browse this website!
|
||||||
|
|
||||||
If not, feel free to [read some blog posts]({root}blog/) or
|
|
||||||
[listen to my music]({root}music/).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Projects
|
## Recent posts
|
||||||
|
|
||||||
* [flewkey-overlay](https://git.sdf.org/flewkey/flewkey-overlay) - My personal Gentoo overlay.
|
<div>
|
||||||
* [minecraft-tweaks-2a03](https://git.sdf.org/flewkey/minecraft-tweaks-2a03) - A basic Minecraft mod.
|
{blog_list}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recent tracks
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{music_list}
|
||||||
|
</div>
|
||||||
|
@ -3,19 +3,24 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import markdown
|
import markdown
|
||||||
from template import template
|
|
||||||
|
|
||||||
def gen_list(files, ext):
|
def gen_list(files, ext, limit=-1, mini=False):
|
||||||
|
from template import template
|
||||||
md = markdown.Markdown(extensions = ["meta", "extra"])
|
md = markdown.Markdown(extensions = ["meta", "extra"])
|
||||||
items = ""
|
items = ""
|
||||||
|
i = 0
|
||||||
for post in files:
|
for post in files:
|
||||||
with open("posts/"+post, "r", encoding="utf-8") as file_in:
|
with open("posts/"+post, "r", encoding="utf-8") as file_in:
|
||||||
html = md.convert(file_in.read())
|
html = md.convert(file_in.read())
|
||||||
md.Meta["template"] = "post_preview"
|
md.Meta["template"] = "post_preview" if not mini else "post_preview_mini"
|
||||||
items += template(html, "blog/"+post[:-3]+ext, ext, md.Meta)
|
items += template(html, "blog/"+post[:-3]+ext, ext, md.Meta)
|
||||||
|
i += 1
|
||||||
|
if limit >= 0 and i >= limit:
|
||||||
|
break;
|
||||||
return items
|
return items
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
from template import template
|
||||||
meta = {"template": "post_list"}
|
meta = {"template": "post_list"}
|
||||||
ext = "."+sys.argv[2].split(".")[-1]
|
ext = "."+sys.argv[2].split(".")[-1]
|
||||||
files = sorted(os.listdir(sys.argv[1]), reverse=True)
|
files = sorted(os.listdir(sys.argv[1]), reverse=True)
|
||||||
|
@ -5,14 +5,18 @@ import sys
|
|||||||
import json
|
import json
|
||||||
from template import template
|
from template import template
|
||||||
|
|
||||||
def gen_list(music, ext):
|
def gen_list(music, ext, limit=-1, mini=False):
|
||||||
items = ""
|
items = ""
|
||||||
|
i = 0
|
||||||
for track in music:
|
for track in music:
|
||||||
track["template"] = "track_preview"
|
track["template"] = "track_preview" if not mini else "track_preview_mini"
|
||||||
track["file_size"] = str(os.path.getsize("music/"+track["id"]+".mp3"))
|
track["file_size"] = str(os.path.getsize("music/"+track["id"]+".mp3"))
|
||||||
if "group" in track:
|
if "group" in track:
|
||||||
track["group_text"] = "<span>Part of "+track["group"]+"</span><br/>"
|
track["group_text"] = "<span>Part of "+track["group"]+"</span><br/>"
|
||||||
items += template("", sys.argv[2], ext, track)
|
items += template("", sys.argv[2], ext, track)
|
||||||
|
i += 1
|
||||||
|
if limit >= 0 and i >= limit:
|
||||||
|
break;
|
||||||
return items
|
return items
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -87,6 +87,17 @@ def template(content, path, ext, meta):
|
|||||||
meta["date"] = datetime.fromtimestamp(int(meta["timestamp"])).isoformat().split("T")[0]
|
meta["date"] = datetime.fromtimestamp(int(meta["timestamp"])).isoformat().split("T")[0]
|
||||||
if "pub_date" not in meta and "timestamp" in meta:
|
if "pub_date" not in meta and "timestamp" in meta:
|
||||||
meta["pub_date"] = utils.format_datetime(datetime.fromtimestamp(int(meta["timestamp"])))
|
meta["pub_date"] = utils.format_datetime(datetime.fromtimestamp(int(meta["timestamp"])))
|
||||||
|
if "blog_list_limit" in meta:
|
||||||
|
import gen_blog
|
||||||
|
import os
|
||||||
|
files = sorted(os.listdir("posts"), reverse=True)
|
||||||
|
meta["blog_list"] = gen_blog.gen_list(files, ext, limit=int(meta["blog_list_limit"]), mini=True)
|
||||||
|
if "music_list_limit" in meta:
|
||||||
|
import gen_music
|
||||||
|
import json
|
||||||
|
with open("music.json", "r", encoding="utf-8") as file:
|
||||||
|
music = json.loads(file.read())
|
||||||
|
meta["music_list"] = gen_music.gen_list(music, ext, limit=int(meta["music_list_limit"]), mini=True)
|
||||||
meta["head"] += "\n<link rel=\"canonical\" href=\""+meta["base"]+meta["full_path"]+"\"/>"
|
meta["head"] += "\n<link rel=\"canonical\" href=\""+meta["base"]+meta["full_path"]+"\"/>"
|
||||||
meta["content"] = content.format_map(meta)
|
meta["content"] = content.format_map(meta)
|
||||||
if "description" not in meta and meta["ext"] == ".html":
|
if "description" not in meta and meta["ext"] == ".html":
|
||||||
|
@ -100,6 +100,11 @@ p {
|
|||||||
margin-bottom: 18px;
|
margin-bottom: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.block-small p {
|
||||||
|
margin-top: 9px;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
h1, h2 {
|
h1, h2 {
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
margin-bottom: 32px;
|
margin-bottom: 32px;
|
||||||
@ -146,7 +151,13 @@ div.block {
|
|||||||
padding-bottom: 48px;
|
padding-bottom: 48px;
|
||||||
border-top: solid 2px #AAAAAA;
|
border-top: solid 2px #AAAAAA;
|
||||||
}
|
}
|
||||||
div.block:first-of-type {
|
|
||||||
|
div.block-small {
|
||||||
|
padding-top: 32px;
|
||||||
|
padding-bottom: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.block:first-of-type, div.block-small {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
border-top: none;
|
border-top: none;
|
||||||
}
|
}
|
||||||
|
5
templates/post_preview_mini.html
Normal file
5
templates/post_preview_mini.html
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<div class="block-small">
|
||||||
|
<a href="{full_path}"><h3>{title}</h3></a>
|
||||||
|
<p>{auto_description}</p>
|
||||||
|
<a href="{full_path}">Read more</a>
|
||||||
|
</div>
|
4
templates/track_preview_mini.html
Normal file
4
templates/track_preview_mini.html
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<div id="audio_{id}" class="player block-small">
|
||||||
|
<h4>{name}</h4>
|
||||||
|
<audio controls style="width: 100%"><source src="{id}.mp3" type="audio/mpeg"/></audio>
|
||||||
|
</div>
|
Loading…
Reference in New Issue
Block a user