summaryrefslogtreecommitdiff
path: root/build_html.py
diff options
context:
space:
mode:
authorBlaise Thompson <blaise@untzag.com>2021-07-05 22:40:33 -0500
committerBlaise Thompson <blaise@untzag.com>2021-07-05 22:40:33 -0500
commit17fba39d4beeecdeb4c84565e9b3d0c2054d5dca (patch)
treeda951e20a8d3939afba7eb251d502ee3981dd473 /build_html.py
parentba52f5d4a24cdc58a4835d53922c8f3aa693b792 (diff)
build no html
Diffstat (limited to 'build_html.py')
-rw-r--r--build_html.py119
1 files changed, 0 insertions, 119 deletions
diff --git a/build_html.py b/build_html.py
deleted file mode 100644
index d05f8cf..0000000
--- a/build_html.py
+++ /dev/null
@@ -1,119 +0,0 @@
-"""Build html to be served at agenda.blaise.zone."""
-
-import os
-import pathlib
-
-import datetime
-
-__here__ = pathlib.Path(__file__).parent
-
-
-# consume org file --------------------------------------------------------------------------------
-
-
-global latest_scheduled
-latest_scheduled = datetime.date.today()
-
-
-class Event:
- def __init__(self, line):
- global latest_scheduled
- # timestamp (start time)
- year, month, day = (int(s) for s in line.split("<")[1][0:10].split("-"))
- self.timestamp = datetime.date(year, month, day)
- if self.timestamp > latest_scheduled:
- latest_scheduled = self.timestamp
- # end time
- if "--<" in line:
- year, month, day = (int(s) for s in line.split("--<")[1][0:10].split("-"))
- self.end = datetime.date(year, month, day)
- if self.end > latest_scheduled:
- latest_scheduled = self.end
- else:
- self.end = None
- # time of day
- tod = line[line.find("<") + 1 : line.find(">")][15:]
- # description
- self.description = " ".join(filter(None, [tod, line.split(">")[-1].strip()]))
-
-
-org_fp = "/home/blaise/org/agenda.org"
-
-events = []
-
-with open(org_fp, "r") as org:
- for line in org:
- line = line.strip()
- if not line:
- continue
- if not line[0] == "*":
- continue
- if ":private:" in line:
- continue
- if ":info:" in line:
- continue
- events.append(Event(line))
-
-
-# create html -------------------------------------------------------------------------------------
-
-
-today = datetime.date.today()
-
-if not os.path.isdir(__here__ / "public"):
- os.mkdir(__here__ / "public")
-
-head = """<html>
-<head>
- <meta charset="utf-8" name="viewport" content="width=80ch">
- <title>agenda.blaise.zone</title>
- <link rel="stylesheet" href="style.css">
-</head>
-"""
-
-with open(__here__ / "public" / "index.html", "w") as html:
- # header
- html.write("<!DOCTYPE html>\n")
- html.write(head)
- html.write("<body>\n")
- html.write("<h1><a href='http://blaise.zone'>blaise</a>-agenda</h1>\n")
- html.write("<hr>")
- html.write("<p>")
- html.write("Welcome to my public agenda!<br>\n")
- html.write("All timestamps are in 'blaise-local-time'.<br>\n")
- html.write("Thanks for stopping by! —Blaise\n")
- html.write("</p>")
- # body
- monday = today - datetime.timedelta(days=today.weekday())
- while True:
- year, week, day = monday.isocalendar()
- id = f"{year}-w{week}"
- html.write(
- f'<h2 id="{id}"><a href=#{id} style=color:#f0c674>{year} W{week}</a></h2>'
- )
- for i in range(7):
- day = monday + datetime.timedelta(days=i)
- id = day.isoformat()
- html.write(
- f"<h3 id={id}><a href=#{id}>{day.isoformat()} {day.strftime('%A')}</a></h3>"
- )
- for event in events:
- if event.end:
- if event.timestamp <= day and event.end >= day:
- total = event.end - event.timestamp
- elapsed = total - (event.end - day)
- html.write(
- f"(day {elapsed.days+1}/{total.days+1}) {event.description}<br>"
- )
- else:
- if event.timestamp == day:
- html.write(f"{event.description}<br>")
- # increment
- monday += datetime.timedelta(days=7)
- if monday > latest_scheduled:
- break
- # footer
- html.write("<hr>")
- html.write(f"last updated {today.isoformat()}")
- html.write("</body>\n")
- html.write("</html>\n")