aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/timeline/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'pydis_site/apps/timeline/README.md')
-rw-r--r--pydis_site/apps/timeline/README.md44
1 files changed, 44 insertions, 0 deletions
diff --git a/pydis_site/apps/timeline/README.md b/pydis_site/apps/timeline/README.md
new file mode 100644
index 00000000..a4272c4d
--- /dev/null
+++ b/pydis_site/apps/timeline/README.md
@@ -0,0 +1,44 @@
+# The "timeline" app
+
+The [timeline page](https://www.pythondiscord.com/timeline/) on our website is
+powered by this Django application.
+
+## The entries
+
+Timeline entries are written in markdown files with YAML frontmatter under the
+`entries` directory.
+
+Each file represents a timeline entry. The files are named with the format
+`<date>_<name>.md`:
+- `date`: The date is in the `YYYY-MM-DD` format, intended for easy sorting in
+ editor/shell command directory listings. It's also used to sort the entries
+ before rendering the timeline page.
+- `name`: The name component is an arbitrary slug in **kebab-case**. This is used
+ for linking to individual timeline entries on the page, and will be set in
+ the `id` attribute.
+
+Each file contains:
+- YAML frontmatter. This defines some metadata shown next to each entry in
+ the timeline, including:
+ - Date: User-facing date label.
+ - Icon: The CSS class to be used for the icon. Set to `pydis` to use the
+ pydis logo image.
+ - Icon color: The CSS class that sets the background color of the icon. Leave
+ empty if the pydis logo is used.
+- Markdown content.
+
+
+## Directory structure
+
+The app has a single view in `views.py` that takes care of reading the `.md`
+files in the `entires` directory. This is a standard Django view, mounted in
+`urls.py` as usual.
+
+The `tests` directory validates that our redirects and helper functions work as
+expected. If you made changes to the app and are looking for guidance on adding
+new tests, the [Django tutorial introducing automated
+testing](https://docs.djangoproject.com/en/dev/intro/tutorial05/) is a good
+place to start.
+
+This application does not use the database and as such does not have models nor
+migrations.