Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • M MathJax
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 304
    • Issues 304
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MathJax
  • MathJax
  • Wiki
  • Directory structure

Directory structure · Changes

Page history
Updated Directory structure (markdown) authored May 15, 2012 by pkra's avatar pkra
Hide whitespace changes
Inline Side-by-side
Directory-structure.md
View page @ 5fb9bd68
> This will require an update after switching the CDN to Rackspace ### Distribution origin at Rackspace Cloud Files
### Distribution origin server: `dist.mathjax.org` Note: Rackspace Cloud Files is a storage system and does not formally have a directory structure -- but it simulates one (see [here](http://www.rackspace.com/blog/nested-folders-in-rackspace-cloud-files/) for more information). Tools such as [Cyberduck](http://cyberduck.ch) or [FireUploader](http://www.fireuploader.com/) efficiently deal with the files hosted on Cloud Files.
This host is the origin server for cdn.mathjax.org, and will only host release and release candidate code. The content that is delivered through `cdn.mathjax.org` is located in the container `mathjax` on our CloudFiles account. Versioning will be accomplished via the following logical directory structure.
Versioning will be accomplished via the following logical directory structure.
``` ```
mathjax/ # project-name mathjax/
1.0-latest/ 1.0-latest/
1.1-beta/ # temporary
1.1-latest/ 1.1-latest/
latest/ # duplicate of 1.1-latest in this example 2.0-latest/
... ...
latest/
``` ```
Each directory corresponds to an official MathJax release. However, hotfixes (urgent bug fixes) will be applied in each release branch as necessary, even if new releases are not prepared. In other words, 1.1-latest will initially point to v1.1, but over time may be updated with patches that would correspond to releases that might be numbers 1.1a, 1.1b, etc even if such releases are not actually prepared for distribution (they likely won't be). Each directory corresponds to an official MathJax release. However, hotfixes (urgent bug fixes) will be applied in each release branch as necessary, even if new releases are not prepared. In other words, `2.0-latest` will initially point to the `v2.0` tag, but over time may be updated with patches that would correspond to releases that might be numbers 2.0a, 2.0b, etc **even if such releases are not actually prepared** for distribution (**they likely won't be**).
We may occasionally introduce directories for betas, as indicated above, but they will be temporary, and will be removed after the official release.
### Requirements / Constraints
* Must be able to switch hosting and CDN providers.
* There may be future projects that would be appropriately hosted here.
* Sites that rely on the MathJax CDN will only be able to stick with a `major.minor` branch, e.g. `2.0-latest`. If a site needs to stick with a specific release, even temporarily, then that will need to be installed rather than relying on the CDN.
### Potential issues
* The fonts directory is relatively large (due to the PNG folder), and is currently duplicated in every MathJax release / snapshot. Are there options to reduce this overhead? -> None at this stage but our storage costs are insignificant compared to the delivery costs.
* What Expires (or cache-control) settings are appropriate? None, since only branches - rather than specific releases - are being provided.
* Rackspace currently does not offer compression for eot, otf and woff files (even if browsers could accept them). By log analysis, woff fonts are the dominant form of fonts we deliver (by two orders of magnitude) and they are already compressed. We could manually compress and set content-headers, but there are some problems with older IE version.
We may occasionally introduce directories for betas, as indicated above, but they will be temprorary, and will be removed after the official release.
### Development server: devel.mathjax.org ### Development server: devel.mathjax.org
This could host development versions of MathJax, lowering the barrier to community testing and feedback. This could host development versions of MathJax, lowering the barrier to community testing and feedback.
The branches hosted here would probably be temporary. The following is an example only. The branches hosted here are temporary and may change without warning. The following is an example only.
``` ```
mathjax/ # project-name mathjax/ # project-name
...@@ -35,15 +47,16 @@ shogun70/ ...@@ -35,15 +47,16 @@ shogun70/
reflow/ reflow/
``` ```
### Requirements / Constraints
* Must be able to switch hosting and CDN providers. ### For archival purposes: `dist.mathjax.org`
* Amazon Cloudfront can only be configured to mirror a whole domain, as opposed to an arbitrary sub-directory which other CDN services (at least Edgecast) can do.
* There may be future projects that would be appropriately hosted here.
* Sites that rely on the MathJax CDN will only be able to stick with a major.minor branch, e.g. 1.1-latest. If a site needs to stick with a specific release, even temporarily, then that will need to be installed rather than relying on the CDN.
### Potential issues This was the origin server for delivery via Amazon CloudFront and followed the same logical directory structure.
```
mathjax/ # project-name
1.0-latest/
1.1-latest/
2.0-latest/
latest/ # duplicate of 2.0-latest
```
* The fonts directory is relatively large, and is currently duplicated in every MathJax release / snapshot. Are there options to reduce this overhead? None at this stage but there aren't enough branches for this to be a significant issue for now.
* What Expires (or cache-control) settings are appropriate? None, since only branches - rather than specific releases - are being provided.
* Should content be gzip'ed even for requests that don't request it? Yes for now - There is a small proportion of end-users who might find MathJax not working - people with early versions of IE6 who are behind a proxy. Possibly this is less significant than the number of people who turn off javascript or run unsupported browsers.
Clone repository

MathJax Wiki

  • Contributing
  • Development
    • Development Process
      • Release Process Checklist
      • Hotfix Release Process
      • Documentation Update Process
      • Source Control Policies
    • Design Documents
      • MathJax Roadmap
      • CDN Hosting
        • Directory Structure
        • CDN .htaccess settings
        • Managing Amazon Cloudfront distribution
        • Initial CDN investigation
      • Performance Discussion
      • Profiling and Diagnostics Tools
      • Configuration Options
      • Documentation generation guide
      • Testing