Purpose of the documentation pages
The purpose of these pages is to help understand the structure of the department
website, and to invite everyone at the department to contribute to updating the content
on our website.
General principles of the website organization
1. Collaborative editing powered by GitHub
Edits to the website are tested automatically so are unlikely to break anything.
Moreover, any edit can be reverted. Therefore, you are welcome to
participate in editing the content. The first step is to sign up on GitHub.com
and send your username to L. Petrov to be added as a collaborator.
See here for more details on how to contribute.
There are two main ways to edit the website content:
- On the web: Smaller edits can be made directly on the web at GitHub. The GitHub icon
in the lower right corner of each page points to the source file associated with this page, for quicker and simpler editing of existing content on the web.
- Locally: Clone the website code to your local machine, make edits, and then sync the changes back to GitHub. For this we recommend installing the GitHub Desktop app and the Atom text editor. Both are available for both Windows and Mac, and Atom is also available for Linux.
In both cases, the changes in the code will trigger the website to automatically update, this takes about 5 minutes.
Having a local copy of the website allows to preview your edits locally using Jekyll (only on Mac and Linux). This procedure is described in detail in Jekyll documentation, see for example here and here. Note that due to API limitations seminar google calendars will not work in local previews.
The website building (and testing) are powered by Github Actions.
2. Simple content structure powered by Jekyll
- Any simple change in content should require editing in only one place. More complicated edits (such as adding a new seminar) might need changes in up to three places. Typical editing scenarios are documented on these pages.
- The content is text file based, with no databases or complicated CMSs
- The simply structured content is then built (using Github Actions) into a static HTML website (plus a little client-side javascript for google calendar interaction, math rendering, and responsive design)
3. Flexible design powered by Bootstrap
- Most design elements can be tweaked independently of content (and most changes require editing only in one file)
- Design is fully customizable