Unverified Commit f19ab8e9 authored by Andrey Azov's avatar Andrey Azov Committed by GitHub

Update the API (#21)

- Menus have been updated and the transformation of toc.ymls into menu data type formalised.
- Sequelize was replaced with TypeORM, as a more fully-featured typescript-friendly ORM.
  Database requirements are so simple that they could have been solved without any ORM,
  but an ORM adds extra convenience.
- Data models were updated, as were relationships between them.
  Previously, the code used to have Articles and Videos as two separate models,
  with a one-to-many relationship between articles and videos.
  It has become clear that:
    - videos are going to have their own pages
    - videos are going to be included in the menus
    - videos may have related articles of their own
    - related articles and related videos can mix together in a single list of related items
    - database needs to store the order of related articles and videos
Therefore, this PR promotes videos to articles in their own right, and adds storing of the order
of related articles and videos.

Also, some of the more naive code (e.g. parsing paths manually instead of using node's path module) got updated.
parent 2cade5b8
Pipeline #143805 passed with stages
in 2 minutes and 2 seconds