this is the code for the sagemath.org website
HTML JavaScript Python Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea
conf 8.3 release Aug 7, 2018
publications @ 7d38fae updating pub Aug 3, 2018
scripts mirror: fix webseed tracker Aug 7, 2018
src Update help-irc.html Aug 10, 2018
templates calctut: banner also on index page and link to it from the menu Oct 22, 2017
.gitignore publish: re-use git repository for the www-website and publish automa… May 10, 2015
.gitmodules submodule "publications" added Aug 19, 2014
.travis.yml very simple travis file for building the website Oct 6, 2015
README.md
cont.py cont: moving global objects into the handler class Aug 26, 2014
makefile make update Feb 4, 2017
publish.sh ci alias -> commit May 25, 2015
render.py
requirements.txt
test.py test.py: simple unittests Aug 23, 2014

README.md

Sagemath.org WebsiteBuild Status

The src contains the sources for the files, they are rendered to fill-in the blanks for the templates and the output is placed into www.

There are various support scripts for processing the data sources and a makefile to help working with it.

Getting Started

Make sure to not only clone from here or your fork, but also to initialize all submodules.

git clone --recursive git@github.com:sagemath/website.git

or if you forgot the --recursive switch, do this:

git submodule update --init --recursive

Later, don't forget to not only update the website project, but also the submodules (or whatever it is the right thing to do). For example:

git submodule foreach "git checkout master; git pull origin master"

Ubuntu Packages

To get started on Ubuntu:

sudo apt-get install -y pybtex python-jinja2 python-markdown python-yaml

Development

The websites needs various data-sources to build its pages. For example, the publications pages use HTML snippets generated by the publications submodule.

Ideally, a courageous make should do everything for you and and additional make open opens up your web-browser to inspect the result.

To test the website under realistic conditions, make server starts a minimal HTTP server on port 8181 and make show opens it in your web-browser.

NQ8 Images

Shrinking PNG images further down via e.g.

pngnq -v -f -s 64 index_icons.png

Continuous Build Mode

For your convenience, there is a continuous build mode available: make cont

It depends on

  • pyInotify - pip install --user pyinotify - to pick up any changes in your local file-system.

  • xdotool - apt-get install xdotool - which does reload the open tab in your web-browser (by sending Shift+Ctrl+R).

Their combined effect is, that less than a second after you "save" a file, you can see the result without lifting a finger.

Style

  • HTML: Modern HTML5, but nothing too fancy please. One of the main design goals is that everything should still work without Javascript and no Flash.

  • Python: PEP8 is authoritative for various Python scripts -- except E501 (long lines). Just make sure your pep8 and autopep8 is up-to-date and do a healthy make style to clean up your code before you commit.

License

The actual content and included media files are licensed under CC BY-SA 4.0 like the rest of the Sage documentation pages.

The included scripts have their appropriate licensing explained at the top of their respective source files. If no licensing information can be found, regard it as Apache 2.0.

markerclusterer.js

That's copied from https://github.com/googlemaps/js-marker-clusterer

Google Cloud Storage Notes

  • RSync: gsutil -m rsync -d -r www gs://www.sagemath.org
  • Publish all files: gsutil -m acl ch -r -u AllUsers:R gs://www.sagemath.org
  • Cache-Control 10 minutes: gsutil -m setmeta -r -h "Cache-Control:public, max-age=600" gs://www.sagemath.org