Publishing your YAML file
You’ve written an activity in YAML. Before you can hand it to a class, Novedu has to be able to read it. Novedu doesn’t store your activity inside a code; it reads the file from a public web address every time students use it. So the last authoring step is giving your file such an address.
There are two ways to do that, and both work equally well:
- Host it on GitHub in a public repository and use the file’s raw URL.
- Upload it in the app on the Files page, and let Novedu host it for you.
Pick whichever fits how you work. GitHub gives you version history and works well if you already keep teaching material there; the Files page needs no account or tooling beyond Novedu itself.
Option A: host the file on GitHub
Section titled “Option A: host the file on GitHub”Put your YAML file in a public GitHub repository, then use the file’s raw URL, the address that returns the plain file content rather than the GitHub page around it.
- Commit the file and push it to GitHub.
- Open the file on the GitHub website and select Raw.
- Copy the address from your browser. It looks like
https://raw.githubusercontent.com/<owner>/<repository>/refs/heads/main/<path-to-file>.yaml. - Paste that URL into the form when you create a code for the activity.
One thing to get right: Novedu reads the pushed version, not the copy on your computer. If you edit the file locally and forget to commit and push, students keep seeing the old version. Push first, then test.
Option B: upload the file in the app
Section titled “Option B: upload the file in the app”The Files page in Novedu lets you create and edit activity files without any hosting of your own. The app stores the file and serves it at a public address.
- Open the Files page and select New file.
- Give the file a name (letters, digits, hyphens, and underscores only, no spaces) and pick its kind: tutor, fragment, quiz, writing, or coding.
- Write the YAML in the editor, or select Upload file… to load a file from your computer into it.
- Select Validate to check the YAML without saving, as often as you like.
- Select Validate & create to save.
Saving always validates first: an invalid file is never stored, so anything the Files page has published is a file Novedu can actually run. After saving, the edit page shows the file’s Public URL with a copy button; that address is what you use when you create a code. The file list also offers a Create code shortcut next to each activity file, which starts the code form with the file already filled in.
Finding a file in the list
Section titled “Finding a file in the list”The Files page holds every teacher’s files, and it opens on your own: the Owner box starts on your name. Pick All owners to see everyone’s files, pick a colleague to see only theirs, or select Clear to come back to your own. You can also filter by name, title, and description, and sort by any column header.
A file’s owner is whoever saved it last, not whoever created it. So if you edit a colleague’s file, it becomes yours: it moves out of their default view and into yours. Nothing is lost, and everyone can still find it under All owners or by name, but it is worth knowing before you wonder where a file went.
If you prefer the command line, the Novedu CLI can upload a file too, with novedu-cli files upload <name> --file <path> --kind <kind>, and it runs the same validation on the server.
Editing the file later
Section titled “Editing the file later”A published file is not frozen. Novedu reads the current published version each time students use the activity, so your changes reach the class without touching any existing codes.
- GitHub: edit, commit, and push. The pushed version is live immediately.
- Files page: open the file, edit, and select Validate & save. The saved version is live immediately, and the address stays the same.
Deleting an uploaded file makes its address stop working, so any code that points at it stops working too.
Files that reference other files
Section titled “Files that reference other files”A tutor can pull in a shared fragment library by URL, and that URL may be relative. A relative reference resolves against the activity’s own address, wherever it is published. The sorting-algorithms sample tutor does exactly that:
prompt: fragment_files: - id: general_fragments url: "../shared/general-fragments.yaml"On GitHub this means the shared library has to sit in the repository next to the tutor, in the place the relative path expects. For uploaded files, ./other-file points at another uploaded file called other-file. If the pieces live in different places, use a full https:// URL instead of a relative one.