Moved home to index; added order to blog tag selector
This commit is contained in:
parent
b24256a59e
commit
ed7ddb2dc7
47
index.php
47
index.php
@ -1,47 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<head>
|
|
||||||
<script src="scripts/vendor/jquery-3.6.0.min.js"></script>
|
|
||||||
<script src="https://kit.fontawesome.com/09beb7ae4a.js" crossorigin="anonymous"></script>
|
|
||||||
<link rel="stylesheet" type="text/css" href="styles/reset.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="styles/common.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="styles/layout.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="styles/theme.css">
|
|
||||||
|
|
||||||
<?php include 'scripts/query_handler.php';?>
|
|
||||||
<title><?php
|
|
||||||
echo $page->name." | Jim Shepich";
|
|
||||||
?></title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<header id="main-header" class="no-highlight">
|
|
||||||
<span class="silver-text">Jim Shepich III</span>
|
|
||||||
</header>
|
|
||||||
<nav id="main-navbar" class="no-highlight">
|
|
||||||
<?php include 'scripts/nav.php';?>
|
|
||||||
</nav>
|
|
||||||
<main>
|
|
||||||
<?php
|
|
||||||
if(isset($page->link)){
|
|
||||||
echo "<script>window.location.href = '".$page->link."'</script>";
|
|
||||||
//If the directory assigns the page to an external link, redirect to that location.
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isset($page->iframe)){
|
|
||||||
echo "<iframe id='content' src='pages/".$page->file."'></iframe>";
|
|
||||||
//If the directory says to embed the page in an iframe, then do that.
|
|
||||||
} else {
|
|
||||||
echo file_get_contents(__DIR__ ."/pages/".$page->file);
|
|
||||||
//Otherwise, just write the HTML of the page in the content area.
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
</main>
|
|
||||||
<footer>
|
|
||||||
<div id="socials" class="silver-text"><?php include 'scripts/footer.php';?></div>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
<script src="scripts/resize.js"></script>
|
|
||||||
</html>
|
|
||||||
@ -7,11 +7,22 @@ from .articles import ArticleMetadata, Article, format_article_tags
|
|||||||
from .templating import format_html_template, TemplateSelections
|
from .templating import format_html_template, TemplateSelections
|
||||||
|
|
||||||
|
|
||||||
def build_tag_index(index: dict[str, Article]) -> dict[str, list[str]]:
|
def build_tag_index(index: dict[str, Article], wildcard ='*') -> dict[str, list[Article]]:
|
||||||
|
'''Creates an inverted index mapping each article tag to a postings list of articles
|
||||||
|
with said tag.'''
|
||||||
tag_index = {}
|
tag_index = {}
|
||||||
for article in index.values():
|
|
||||||
|
# Index the articles in ascending order of original publication date.
|
||||||
|
for article in sorted(index.values(), key = lambda a: a.metadata.date):
|
||||||
|
|
||||||
|
# Add all articles to the wildcard tag's postings list.
|
||||||
|
if wildcard is not None:
|
||||||
|
tag_index[wildcard] = (tag_index.get(wildcard,[])) + [article]
|
||||||
|
|
||||||
|
# Add the article to each of its tags' posting lists.
|
||||||
for tag in article.metadata.tags:
|
for tag in article.metadata.tags:
|
||||||
tag_index[tag] = (tag_index.get(tag,[])) + [article]
|
tag_index[tag] = (tag_index.get(tag,[])) + [article]
|
||||||
|
|
||||||
return tag_index
|
return tag_index
|
||||||
|
|
||||||
|
|
||||||
@ -51,7 +62,9 @@ def build_blog_archive(
|
|||||||
display: list-item!important;
|
display: list-item!important;
|
||||||
}}}}
|
}}}}
|
||||||
''']
|
''']
|
||||||
for tag, articles in ({'*': [*index.keys()]} | tag_index).items():
|
|
||||||
|
# Add tag selector options in descending order of article count.
|
||||||
|
for tag, articles in sorted(tag_index.items(), key = lambda item : -len(item[1])):
|
||||||
tag_selector_options.append(format_html_template(
|
tag_selector_options.append(format_html_template(
|
||||||
template_selections['tag_selector_option'],
|
template_selections['tag_selector_option'],
|
||||||
tag_name = tag,
|
tag_name = tag,
|
||||||
@ -92,19 +105,6 @@ def build_blog_archive(
|
|||||||
|
|
||||||
with open(f'{site.web_root.rstrip('/')}/archive.html', 'w') as f:
|
with open(f'{site.web_root.rstrip('/')}/archive.html', 'w') as f:
|
||||||
f.write(archive_html_page)
|
f.write(archive_html_page)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# TODO: create a tag inventory page, as well as individual browse-by-tag pages.
|
|
||||||
# def build_tag_inventory(
|
|
||||||
# site: SiteConfig,
|
|
||||||
# index: dict[str, tuple[str, str]],
|
|
||||||
# tag_index: dict[str, list[str]],
|
|
||||||
# template_selections: TemplateSelections
|
|
||||||
# ):
|
|
||||||
# tag_
|
|
||||||
|
|
||||||
|
|
||||||
def build_rss_feed(site: SiteConfig, index: dict[str, Article]):
|
def build_rss_feed(site: SiteConfig, index: dict[str, Article]):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user