RDC@Campus Sessions Workshop Website in Vuepress v2

For a Workshop Series in the new IOER Research Data Centre (RDC), we were looking for a clean and responsive way to organize sessions.

I am a fan of Vue but never had the chance to try it. Vuepress is a Static Site generator based on Markdown. Using Vuepress, it was relatively easy to get to the finished website:

https://ioer.gp.hrz.tu-chemnitz.de/fdz/campus/

The webpage is versiond in Git, in a public repository on Gitlab from the TU Chemnitz.

I had to contact the Servicedesk to find out the URL for Gitlab pages, which is gp.hrz.tu-chemnitz.de. The page is then build from Markdown in Continuos Integration (a Gitlab Runner from TUD) and published under the above public URL.

For setting up Vuepress, the shortest route I found was this:

# intall NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
# install latest node and npm with NVM
nvm install node

Prepare Vuepress template:

npm init vuepress vuepress-starter
# serve test site under http://localhost:8080/
npm run docs:dev

For building the latest Release Candidate, I encountered an issue that could be fixed with:

npm add -D vuepress@next

Other issues, such as usexxx-is-called-without-provider can be fixed with:

npx vp-update

In Gitlab CI, I referenced the same node version (node --version):

image: node:21.7.1

Have a look at the repository, which includes all data, code and configs.

Generally, I found Vuepress easy to setup. But the config.js gets confusing quickly when adding multiple languages (i8n) and configuration settings, even for a small site. Also, it is unfortunate that the different languages are stored in different folders, which makes editing slightly more difficult. Lastly, there are litte options to automaticall derive teh sidebar links from Markdown headers. Most configurations for the default theme require manually specifying sidebar texts.

Now, speaking of longevity, Vuepress 2 does not seem to have a bright future. There are plans to phase out Vuepress altogether in favor of Vitepress. However, since this is a very simple page, I am fine with Vuepress for now.