Compare commits
No commits in common. "c36ce7dd2055e23781b3e5c830f80f87e7ad0552" and "3ac4bc2965f3a0b8b006cd4873d4329eded53067" have entirely different histories.
c36ce7dd20
...
3ac4bc2965
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,4 @@
|
|||||||
**/__pycache__/
|
**/__pycache__/*
|
||||||
html/
|
html/
|
||||||
./.*/
|
./.*/
|
||||||
[articles/**/.static/]
|
[articles/**/.static/]
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Title: Testing Firefox Wasm Tail Call
|
Title: Testing Firefox Wasm Tail Call
|
||||||
Brief: Or why assumptions are not always correct.
|
Brief: Or why assumptions are not always correct.
|
||||||
Date: 1708076705
|
Date: 1708076705
|
||||||
Tags: Optimization, Wasm, Interpreters
|
Tags: Wasm, Interpreters
|
||||||
CSS: /style.css
|
CSS: /style.css
|
||||||
|
|
||||||
### Lore ###
|
### Lore ###
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Title: Hand Optimized Simplex 2D
|
Title: Hand Optimized Simplex 2D
|
||||||
Brief: Results of messing around with moving and hoisting stuff around.
|
Brief: Results of messing around with moving and hoisting stuff around.
|
||||||
Date: 1688995095
|
Date: 1688995095
|
||||||
Tags: Programming, GLSL, OpenGL, Optimization
|
Tags: Programming, GLSL, OpenGL
|
||||||
CSS: /style.css
|
CSS: /style.css
|
||||||
|
|
||||||
![](/articles/hand-opt-simplex-2d/noise.png)
|
![](/articles/hand-opt-simplex-2d/noise.png)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Title: Cached Neocities Uploads
|
Title: Cached Neocities Uploads
|
||||||
Brief: Making uploading of directories to Neocities less painful.
|
Brief: Making uploading of directories to Neocities less painful.
|
||||||
Date: 1707585916
|
Date: 1707585916
|
||||||
Tags: Programming, Bash
|
Tags: Bash
|
||||||
CSS: /style.css
|
CSS: /style.css
|
||||||
|
|
||||||
Quick and dirty Bash-based sha256sum checksum solution to create stamps for later checking and rejection.
|
Quick and dirty Bash-based sha256sum checksum solution to create stamps for later checking and rejection.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/sh
|
||||||
|
|
||||||
cd $(dirname "$0")
|
cd $(dirname "$0")
|
||||||
mkdir -p ./.dynamic
|
mkdir -p ./.dynamic
|
||||||
mkdir -p ./.temp
|
mkdir -p ./.temp
|
||||||
$CC -Wno-unused-result -Wno-incompatible-pointer-types waveforms.c ../../tools/gifenc/gifenc.c -I../../tools -O2 -o ./.temp/waveforms
|
gcc -Wno-unused-result -Wno-incompatible-pointer-types waveforms.c ../../tools/gifenc/gifenc.c -I../../tools -O2 -o ./.temp/waveforms
|
||||||
./.temp/waveforms
|
./.temp/waveforms
|
||||||
|
20
compile.sh
20
compile.sh
@ -1,12 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/sh
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
|
|
||||||
# Settings:
|
|
||||||
# =========
|
|
||||||
export CC=cc
|
|
||||||
export URL=https://mjestecko.neocities.org
|
|
||||||
|
|
||||||
mkdir -p ./html/articles
|
mkdir -p ./html/articles
|
||||||
|
|
||||||
./tools/main_page_generator.py ./articles | ./tools/mmd/build/multimarkdown > ./html/index.html
|
./tools/main_page_generator.py ./articles | ./tools/mmd/build/multimarkdown > ./html/index.html
|
||||||
@ -14,7 +9,7 @@ mkdir -p ./html/articles
|
|||||||
for d in ./articles/*/; do
|
for d in ./articles/*/; do
|
||||||
if [ -d "$d" ]; then
|
if [ -d "$d" ]; then
|
||||||
if test -f "$d/make"; then
|
if test -f "$d/make"; then
|
||||||
("$d/make")
|
"$d/make"
|
||||||
fi
|
fi
|
||||||
if test -d "$d/.dynamic"; then
|
if test -d "$d/.dynamic"; then
|
||||||
mkdir -p "./html/articles/$(basename -- $d)"
|
mkdir -p "./html/articles/$(basename -- $d)"
|
||||||
@ -24,15 +19,8 @@ for d in ./articles/*/; do
|
|||||||
mkdir -p "./html/articles/$(basename -- $d)"
|
mkdir -p "./html/articles/$(basename -- $d)"
|
||||||
cp -r "$d/.static/." "./html/articles/$(basename -- $d)/"
|
cp -r "$d/.static/." "./html/articles/$(basename -- $d)/"
|
||||||
fi
|
fi
|
||||||
./tools/article_wrapper.py "$d/page.mmd" $URL | ./tools/mmd/build/multimarkdown > "./html/articles/$(basename -- $d).html"
|
./tools/article_wrapper.py "$d/page.mmd" https://mjestecko.neocities.org | ./tools/mmd/build/multimarkdown > "./html/articles/$(basename -- $d).html"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
mkdir -p "./html/tags/"
|
./tools/feed_generator.py ./articles/ https://mjestecko.neocities.org > ./html/feed.xml
|
||||||
./tools/tag_listing_generator.py ./articles/ ./html/ | ./tools/mmd/build/multimarkdown > "./html/tags.html"
|
|
||||||
|
|
||||||
for f in ./html/tags/*.html; do
|
|
||||||
echo $(cat "$f" | ./tools/mmd/build/multimarkdown) > "$f"
|
|
||||||
done
|
|
||||||
|
|
||||||
./tools/feed_generator.py ./articles/ $URL > ./html/feed.xml
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/bash
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/sh
|
||||||
|
|
||||||
git submodule init
|
git submodule init
|
||||||
git submodule update
|
git submodule update
|
||||||
|
@ -18,7 +18,7 @@ def parse_metadata(filepath: str) -> {}:
|
|||||||
if key == "Date":
|
if key == "Date":
|
||||||
result["Date"] = time.gmtime(int(val))
|
result["Date"] = time.gmtime(int(val))
|
||||||
elif key == "Tags":
|
elif key == "Tags":
|
||||||
result["Tags"] = [v.strip() for v in val.split(",")]
|
result["Tags"] = val.split(",")
|
||||||
else:
|
else:
|
||||||
result[key] = val
|
result[key] = val
|
||||||
result["Last Edit"] = time.gmtime(int(subprocess.getoutput(r"stat -c %Y " + filepath)))
|
result["Last Edit"] = time.gmtime(int(subprocess.getoutput(r"stat -c %Y " + filepath)))
|
||||||
|
@ -24,7 +24,7 @@ with open(argv[1], "r") as f:
|
|||||||
metadata = parse_metadata(argv[1])
|
metadata = parse_metadata(argv[1])
|
||||||
directory = path.split(path.dirname(path.abspath(argv[1])))[-1]
|
directory = path.split(path.dirname(path.abspath(argv[1])))[-1]
|
||||||
|
|
||||||
title = metadata["Title"]
|
title = metadata.get("Title", "Oopsie, somebody forgot to name the article!")
|
||||||
article_head = "\n# " + title + "\n"
|
article_head = "\n# " + title + "\n"
|
||||||
|
|
||||||
brief = metadata.get("Brief")
|
brief = metadata.get("Brief")
|
||||||
@ -41,12 +41,10 @@ if not last_edit is None:
|
|||||||
last_edit.tm_mday != date.tm_mday or last_edit.tm_year != date.tm_year:
|
last_edit.tm_mday != date.tm_mday or last_edit.tm_year != date.tm_year:
|
||||||
article_head += f"-- Edited: *{MONTHS[last_edit.tm_mon]} {last_edit.tm_mday}, {last_edit.tm_year} UTC*\n\n"
|
article_head += f"-- Edited: *{MONTHS[last_edit.tm_mon]} {last_edit.tm_mday}, {last_edit.tm_year} UTC*\n\n"
|
||||||
|
|
||||||
|
# todo: Hyperlinks to appropriate tag pages.
|
||||||
tags = metadata.get("Tags")
|
tags = metadata.get("Tags")
|
||||||
if tags:
|
if tags:
|
||||||
tag_links = []
|
article_head += f"""-- Tags: *{",".join(tags)}*\n\n"""
|
||||||
for tag in tags:
|
|
||||||
tag_links.append(f"[{tag}](/tags/{urllib.parse.quote(tag.lower())}.html)")
|
|
||||||
article_head += f"""-- Tags: *{", ".join(tag_links)}*\n\n"""
|
|
||||||
|
|
||||||
article_head += "---\n\n"
|
article_head += "---\n\n"
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ HEAD_EMBED = """
|
|||||||
<li><a href="/articles/mjestečko.html">about</a></li>
|
<li><a href="/articles/mjestečko.html">about</a></li>
|
||||||
<li><a href="https://modarchive.org/index.php?request=view_artist_modules&query=96070">tracks</a></li>
|
<li><a href="https://modarchive.org/index.php?request=view_artist_modules&query=96070">tracks</a></li>
|
||||||
<li><a rel="me" href="https://poto.cafe/@veclavtalica">mastodon</a></li>
|
<li><a rel="me" href="https://poto.cafe/@veclavtalica">mastodon</a></li>
|
||||||
<li><a href="/tags.html">tags</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@ -18,7 +17,7 @@ HEAD_EMBED = """
|
|||||||
|
|
||||||
NOTICE = """
|
NOTICE = """
|
||||||
<footer>
|
<footer>
|
||||||
<a href="#top">^ Return</a>
|
<a href="#top">Take me home ↑</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
# todo: Problems might arise with casing if there are overlaps such as 'Tag' and 'tag'.
|
|
||||||
|
|
||||||
from sys import argv, exit
|
|
||||||
import time, urllib.parse, re
|
|
||||||
from os import walk
|
|
||||||
import os.path as path
|
|
||||||
|
|
||||||
from article_utils import the_line_after_metadata, parse_metadata
|
|
||||||
from page_shares import wrap_page
|
|
||||||
|
|
||||||
tag_listing_header = "CSS: /style.css\n\n"
|
|
||||||
main_listing_header = "CSS: /style.css\n\n"
|
|
||||||
|
|
||||||
if len(argv) <= 1:
|
|
||||||
print("No article directory was supplied")
|
|
||||||
exit(-1)
|
|
||||||
|
|
||||||
if len(argv) <= 2:
|
|
||||||
print("No tag listing output directory was supplied")
|
|
||||||
exit(-1)
|
|
||||||
|
|
||||||
tag_to_tag_page = {}
|
|
||||||
tag_to_articles = {}
|
|
||||||
tag_counts = {}
|
|
||||||
article_to_title = {}
|
|
||||||
|
|
||||||
for root, dirs, _ in walk(argv[1]):
|
|
||||||
for d in dirs:
|
|
||||||
metadata = parse_metadata(path.abspath(root + '/' + d + "/page.mmd"))
|
|
||||||
article = "/articles/" + urllib.parse.quote(d) + ".html"
|
|
||||||
for tag in metadata.get('Tags', []):
|
|
||||||
tag_to_articles[tag] = tag_to_articles.get(tag, []) + [article]
|
|
||||||
tag_counts[tag] = tag_counts.get(tag, 0) + 1
|
|
||||||
article_to_title[article] = metadata['Title']
|
|
||||||
break
|
|
||||||
|
|
||||||
for tag in tag_to_articles:
|
|
||||||
tag_page = f"/tags/{urllib.parse.quote(tag.lower())}.html"
|
|
||||||
tag_to_tag_page[tag] = tag_page
|
|
||||||
|
|
||||||
with open(argv[2] + tag_page, 'w') as f:
|
|
||||||
tagged_article_listing = f"\n# Tagged {tag} #\n---\n" + \
|
|
||||||
'\n'.join(f"- [{article_to_title[article]}]({article})" \
|
|
||||||
for article in tag_to_articles[tag])
|
|
||||||
f.write(tag_listing_header + wrap_page(tagged_article_listing))
|
|
||||||
|
|
||||||
main_listing = "\n# Tag Listing #\n---\n" + \
|
|
||||||
', '.join(f"[{tag}]({tag_to_tag_page[tag]}) ({tag_counts[tag]})" \
|
|
||||||
for tag in sorted(tag_counts.keys(), key=lambda x: tag_counts[x], reverse=True)) + \
|
|
||||||
'\n\n'
|
|
||||||
|
|
||||||
print(main_listing_header + wrap_page(main_listing))
|
|
Loading…
Reference in New Issue
Block a user