One of the goals while building the new Magnum website was to lower the barrier for contributing content. With Git and GitHub it’s already very easy to contribute code to the project itself, so why not extend that to the website as well?
Guest posts were kicked off with the Area Lights post by Jonathan Hale last week and there are already more articles being prepared for the next rounds. Guest posts are about sharing success stories, presenting research, showing productivity tricks or, for example, showing a deeper insight into a feature that was just recently integrated into Magnum.
We believe that publishing your content here can be beneficial for many sides — for you, as it has the potential to reach people outside of your usual circles, for the community, as fresh and extraordinary things always spark new interest, and of course, for Magnum itself. Maybe you are working on something cool and don’t have an established place to show it to the world, or maybe you just finished a paper about a new rendering technique and need a place to present a WebGL demo? We’re set up for that.
Interesting times ahead.
Being this open to new content would be very hard to achieve with a centralized CMS, as potential contributors would either need access rights or would have to submit a post with no possibility to check the output before it gets published. Here, however, you can just build a copy of the whole site on your machine and iterate on the content locally.
Writing a guest post
So, how does one write a guest blog post? First of all, please get in touch so we can make a mutual agreement on the topic, scope and timeframe for when it gets published. The topic should involve Magnum in some way, obviously.
The content is written in reStructuredText and can be submitted via a pull-request to the mosra/magnum-website repository on GitHub. If you don’t know reST from Sphinx or other documentation systems, the m.css docs have a basic introduction to writing reST markup. Or you can have a look at source files in the repository. For example, the whole original content of the Area Lights post is contained in the following commit: mosra/magnum-website@fd3ef28
The best way for writing a post is setting up a local copy of the website for immediate visual feedback. It’s not strictly required, though — you can also contribute the blog post copy simply as a plain text, for example, if that’s a better alternative for you.
The boring technical details
In order to set up a local copy of the website you need Python 3 with Pelican, Pyphen and Pillow packages installed and optionally some LaTeX distribution for math rendering.
On ArchLinux it’s the following packages:
sudo pacman -S texlive-most pelican python-pillow
cower -d python-pyphen # Build the python-pyphen package from AUR
On Ubuntu you need these:
sudo apt install texlive-base texlive-latex-extra texlive-fonts-extra python3-matplotlib graphviz pip3 install pelican Pyphen Pillow
On Windows and macOS pick some LaTeX distribution and make it available in the
PATH
. Python packages can be installed via pip3
as well:
pip3 install pelican Pyphen Pillow
Next, make sure to clone the repository (or your fork of the repository)
including submodules so m.css is properly included
(use git clone --recursive
, for example).
That’s it. Now you can build the website and start a webserver on
http://localhost:8000
with the following command. The website is
automatically rebuilt on changes in the input files.
cd magnum-website
make devserver
By the way…
The last weeks were quite busy with updates — in case you didn’t see yet, there is a bunch of new WebGL examples and demos on the Showcase page: