From 59b700299f860f0854c37906eaa5a5850cc45f59 Mon Sep 17 00:00:00 2001
From: davidpkj <davidpenkow1@gmail.com>
Date: Sat, 13 Apr 2024 12:28:41 +0200
Subject: univis stuff & docs

---
 README.adoc | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)

(limited to 'README.adoc')

diff --git a/README.adoc b/README.adoc
index 58a57a2..86ff908 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1,6 +1,6 @@
 = Stundenplan
 
-A small JavaScript project to generate beautiful PDF schedules. Takes information from `src/variables.js`. Planning to use direct UnivIS-XML export.
+A small JavaScript project to generate beautiful PDF schedules. Takes information from `src/variables.js`.
 
 == Usage
 
@@ -10,3 +10,59 @@ Requires the `npm` tool.
 npm i # installes packages
 npm run main # runs the software
 ```
+
+=== Optional: Parse UnivIS XML
+
+You have the option to parse a full `public/data.xml` UnivIS export to get 80% of the way to a working configuration. You still have to manually clean up and refactor the information to yaml. But you dont have to write all those characters out.
+
+If you use vim, it then should be only a matter of seconds until you have your `.pdf`.
+
+```bash
+npm run parse
+```
+
+== Configuration Structure
+
+Generally, you may edit anything in the `public` directory. The default are how I like it.
+
+To configure the actual displayed information you shoudl edit the `.yaml` file. It should look something like the following, where things like `<THIS>` should be replaced by your text.
+
+Comments (things that are ignored by the software) is everything after a `#` sign. More information on the file format and syntax can be found https://yaml.org/[here].
+
+```yaml
+# General Information
+student: <YOUR NAME>
+semester: <THE SEMESTER>
+filename: <THE RESULT FILENAME> # i.e. Stundenplan_SS24.pdf
+
+# Each of these lines will be listed at the bottom of the PDF
+hinweise:
+  - <YOUR INFO> # i.e. "Mensabetrieb: 11:15 - 14:15 Uhr + 00:15 min"
+
+# Time definitions
+eintraege:
+  - <MODULE NAME>:
+      <LECTURE TYPE>:
+        - [<GERMAN ABBREVIATION FOR THE WEEKDAY>, <START TIME>, <END TIME>, <ROOM>]
+```
+
+Please note that times should be given in the format `HHhMM` so to say 9:19 AM, you would actually write 09h19. Also the Module and Lecture `BLOCKED` is reserved for a cross hatched block.
+
+So writing 
+```yaml
+...
+  - BLOCKED:
+      BLOCKED:
+...
+```
+
+would put a blocked area in the pdf, instead of putting an actual block with the text "BLOCKED / BLOCKED".
+
+== Known issues
+
+- Doesnt work if not all days are set (null checks in general)
+- Have to use the exact yaml structure
+- Margin on the left not easily configurable
+- Mensa times are not actually displayed
+- All config.yaml items are required
+- Code is german spaghetti
\ No newline at end of file
-- 
cgit v1.2.3

