aboutsummaryrefslogtreecommitdiff
path: root/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'build.py')
-rwxr-xr-xbuild.py130
1 files changed, 0 insertions, 130 deletions
diff --git a/build.py b/build.py
deleted file mode 100755
index 84867272..00000000
--- a/build.py
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env python3
-import datetime
-import os
-import pathlib
-import shutil
-import textwrap
-
-
-class Post:
- def __init__(self, slug, content):
- self.content = content
- self.slug = slug
-
- @property
- def title(self):
- return self.content.splitlines()[0][2:]
-
- @property
- def posted(self):
- return datetime.datetime.strptime(self.content.splitlines()[1], "%Y-%m-%d").date()
-
- @property
- def uri(self):
- yyyy = self.posted.strftime("%Y")
- mm = self.posted.strftime("%m")
- return f"{yyyy}/{mm}/{self.slug}/"
-
-
- def __repr__(self):
- return f"Post(slug={self.slug},title={self.title},posted={self.posted}"
-
-
-def load_posts():
- posts = []
-
- for directory, _, files in os.walk("content"):
- for file in files:
- if file.endswith("gmi"):
- with open(f"{directory}/{file}") as old_file:
- posts.append(Post(file[:-4], old_file.read()))
- else:
- # FIXME
- pass
-
- return posts
-
-
-def create_index(posts):
- with open("build/gmi/index.gmi", "w") as index:
- index.write(textwrap.dedent("""
- # El blog es mío
-
- ## Hay otros como él, pero este es el mío
- """).lstrip())
-
- index.write("_" * 40)
- index.write("\n")
-
- for post in posts[0:10]:
- index.write(textwrap.dedent(f"""
- => {post.uri} {post.posted} {post.title}
-
- ### {post.title}
- """))
-
- post_lines = post.content.splitlines()
-
- index.write("\n".join(post_lines[2:]))
- index.write("\n\n")
- index.write("_" * 40)
- index.write("\n")
-
- index.write(textwrap.dedent("""
- # Sobre mí
-
- => https://alex.corcoles.net/feed/ Feed RSS de este blog
- => https://github.com/alexpdp7/ GitHub
- => https://es.linkedin.com/in/alexcorcoles LinkedIn
- => https://projecteuler.net/profile/koalillo.png Project Euler
- => https://stackexchange.com/users/13361/alex Stack Exchange
- => https://farside.link/nitter/koalillo Twitter
-
- Podéis escribirme cogiendo el dominio de esta web y cambiando el primer punto por una arroba.
-
- # El resto...
- """))
-
-
-
- for post in posts[10:]:
- index.write(textwrap.dedent(f"""
- => {post.uri} {post.posted} {post.title}
- """)[:-1])
-
-def create_individual_posts(posts):
- for post in posts:
- os.makedirs(f"build/gmi/{post.uri}", exist_ok=True)
- with open(f"build/gmi/{post.uri}/index.gmi", "w") as post_file:
- post_file.write(textwrap.dedent("""
- => / El blog es mío
-
- """))
- post_file.write(post.content)
- post_file.write(textwrap.dedent(f"""
-
- => https://github.com/alexpdp7/gemini_blog/edit/master/content/{post.uri}.gmi Editar este post
-
- Podéis escribirme cogiendo el dominio de esta web y cambiando el primer punto por una arroba.
-
- # Volver al inicio
-
- => / El blog es mío
- """))
-
-
-def build():
- shutil.rmtree("build", ignore_errors=True)
- os.makedirs("build/gmi")
-
- posts = load_posts()
- create_index(sorted(posts, key=lambda p: p.posted, reverse=True))
- create_individual_posts(posts)
- for directory, _, files in os.walk("static/gmi"):
- new_dir = directory.replace("static/gmi", "build/gmi")
- for file in files:
- pathlib.Path(new_dir).mkdir(parents=True, exist_ok=True)
- shutil.copy(f"{directory}/{file}", f"{new_dir}/{file}")
-
-if __name__ == "__main__":
- build()