Git Product home page Git Product logo

website's Introduction

Measurement Lab Source Code

This is the source code of the Measurement Lab website built using Jekyll.

Current Build Status is: Build Status

Contributing

To learn about how to setup your environment, and our standards and practices for contributing, please see CONTRIBUTING.md.

website's People

Contributors

apjanke avatar bassosimone avatar cristinaleonr avatar fangfanli avatar jeremiak avatar jpwain avatar laiyi-ohlsen avatar mattmathis avatar mtlynch avatar nkinkade avatar pboothe avatar robertodauria avatar rschulman avatar shredtechular avatar stephen-soltesz avatar yachang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

website's Issues

Eliminate htmlproofer suppressions

htmlproofer is failing on some pages. We should determine the cause of the failures and fix the root causes. We generally should not be disabling htmlproofer.

One example is in .travis.yml:
- bundle exec htmlproof ./_site --only-4xx --check-html --file-ignore "/mlab_observatory/" --href-ignore "http://projectbismark.net/signup.html"

We should remove the ignores. Are there others?

determine a strategy for internationalization

We have an international audience, so our site should support translations into different languages. There are multiple ways to do this in Jekyll. We should identify which strategy we want to use and implement that.

Eliminate MD rule suppression for incrementing header levels

The linter rule is 'MD001' and the failing page is /publications.

The header levels are actually correct when generated by Jekyll, but the linter is just looking at the markdown file and not the generated page.

  1. Should look into seeing possibilities to restructure this in Jekyll, or
  2. Look at adding custom check in htmlproofer that checks this instead of the markdown linter since it seems like it is more important that the generated html has the correct header levels.

Invalidate CloudFront cache after production builds

The default (and current) TTL for objects in the CloudFront cache is 1 day, which means that users could be seeing day-old content. We need to implement a way to invalidate the cache after each production build, but no on other builds, like ones for PRs.

Formatting on the test pages for links to data is incorrect

The bullets aren't showing in the Data section of some of the pages:

https://www.measurementlab.net/tools/ndt/
https://www.measurementlab.net/tools/npad/
https://www.measurementlab.net/tools/paris_traceroute/

example from NDT:

Data collected by NDT is available…
in raw format at https://storage.cloud.google.com/m-lab/ndt
via an SQL interface (see https://github.com/m-lab/mlab-wikis/blob/master/BigQueryMLabDataset.md).
Visualized in Public Data Explorer.
Please cite this dataset as follows: The MLab NDT Dataset, . http://measurementlab.net/tools/ndt

Overall, the formatting is a little easier to read on OONI Probe & Glasnost, but I'll wait to see the CSS changes that @shredtechular is working on before I file more issues :)

Eliminate MD rule suppression for trailing punctuation in header

The linter rule is 'MD026' and the failing pages currently are:

  • /about page - has a couple headers with "?" at the end. I think this is okay.
  • /page/gsoc_2014/ - has 1 header with an "!" at the end. I think this is okay?
  • /tools/pathload2/ - has 1 header with an "." at the end.

We can modify this rule so that some punctuation is allowed and others are not. By default, the linter doesn't accept the following punctuation at the end of headers: ' . , ; : ! ? '.

I don't think the h2 is very semantically correct on /tools/pathload2/, so probably just need a decision on if that should really be an h2 or if so, then can we remove the "." at the end?

@critzo @georgiamoon @mtlynch can you provide the business rule for what punctuation you would like to allow at the end of header levels? It seems like I could make a case for allowing ' : ! ? ' but maybe not ' . , ; '.

Add Travis check for trailing whitespace

We should add a Travis check to make sure that files in this repo do not have trailing whitespace (at the very least .md and .yml files).

This can either a simple grep for "\s+$" or can be a more thorough check using a Markdown linter (bonus points if we can smoothly integrate a markdown linter into Travis/git hooks, especially one that reflows lines to break at 80 columns)

Build check: Forbid "http://measurementlab.net"

We should add a build check that checks Jekyll files for the strings http://measurementlab.net or http://www.measurementlab.net and flags the user to convert these to {{ site.baseurl }}

Replace the "Infrastructure" tab with a "Data" tab

Replace the "Infrastructure" tab with a "Data" tab (The Infrastructure page currently accounts for only ~0.3% of our visits) that gives an introduction to our data, move Infrastructure content to the bottom of "Tests" page.

Smooth out separation between NDT backend and frontend

We'd like to make it as easy as possible for third parties to:

  • take an M-Lab produced NDT widget and tweak it
  • create their own NDT widget from scratch without forking the NDT client

To do this, we have to solve the following problems:

  • Implementers currently have to import five different scripts to use the NDT backend. We should reduce this to just one script import, maybe with a minified script option.
  • At least two of the five are UI libraries that the implementer shouldn't have to deal with if they're implementing their own UI (jQuery and gauge)
  • Implementers currently have to set two global JS variables (CANV_GAUGE_FONTS_PATH and ndtServer). We should figure out another way of passing this information to NDT explicitly so that it's hard to omit accidentally and it doesn't clutter the global namespace.

If any of these changes require patches to https://github.com/ndt-project/ndt, we can submit a PR to them.

Create embeddable iframe for NDT HTML5 test

I'd like us to make it as easy as possible for third parties to drop in the HTML5 NDT test onto their own sites in the form of an iframe.

This involves fixing the following sub-issues:

  • Make the widget self-contained so that it has M-Lab's logo and a link back to M-Lab's site and brief text explaining that it's a bandwidth test. It shouldn't require surrounding context of the page to explain what the widget is.
  • Add a button to the widget that generates the HTML required for embedding
  • The client currently generates a JS warning: Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/. It's likely that mlab-ns isn't going to delay the page load much, but it'd be nice to avoid this. I think we can build more intelligence into the widget so that it the widget handles waiting for the mlab-ns response.

If any of these changes require patches to ndt-project/ndt, we can submit a PR to them.

Handle non-www to www redirection better

We serve the M-Lab site on www.measurementlab.net, and we want to redirect requests for measurementlab.net to that domain. However, we need to point the root domain to an IP address (an A record). CloudFront and S3 don't give you IP addresses to point to (that I know of), but simply domain names, and they manage and muck the underlying IP addresses as they need to. A lot of DNS hosting services provide a redirection service like this, include Amazon's own Route 53. Since we host our own DNS for measurementlab.net, we're going to need to figure out how to redirect requests to measurementlab.net to www.measurementlab.net. As a stop-gap, I pointed measurementlab.net to our Linode Nagios VM, and Apache on that machine redirects (301) all requests to www.measurementlab.net. While this works fine, we won't ultimately want the Linode VM having anything to do with the core website. We can find some service will provide this redirection for us, or we could deploy the redirection on some other server we manage, or we could move our DNS to another provider (like Google Cloud DNS or Amazon Route 53) who provides this sort of redirect.

Additionally the above temporary redirection mechanism does not work for HTTPS at the moment.

No indication of which top-level menu item is selected

When a page has menu two levels like "Data > Overview" the menu gives a visual indication that "Overview" is the selected page, but there's no indication that "Data" is the selected top level menu item.

image

This is true even on pages with no subpages.

We should give some visual indication on the menu buttons of which menu item is selected.

Re-enable external link checking

We had to temporarily disable htmlproofer's external link checking in #124 because ISC's web server was misconfigured. It does seem weird that an external site's temporary misconfiguration should stop us from deploying updates, but I feel like this is in general a good check because we don't want to accrue dead external links and we will if we don't have automated checks.

Maybe we can investigate ways of manually overriding the external link checks without actually making changes to code (like some sort of way we can re-run a Travis build with an extra environment variable or something).

Simplify markdown on accordion pages

On pages with accordion organizers, we should work to make it easier for the author to edit content and not have to manually manage accordion logic. On PR #120 we ran into a lot of issues where the task of writing content was made more difficult by the task of managing accordion logic.

This is currently most problematic on the FAQ page:

https://github.com/m-lab/m-lab.github.io/blob/master/_pages/faq.md

Ideal would be on all of these pages if:

  • Content author can author content using only standard markdown and the backend page logic figures out how to organize it into accordion groupings for proper rendering
  • Content author does not need to do any kind of metadata management (declaring up front the names or numbers of headings)

Make blog posts easy to permalink

We should make it easier to find permalinks to blog posts. Currently, the only way I can figure out how to do it is to go to the per-month category, then copy the "Read more" link, but users should be able to find permalinks from within the blog post itself. The title is an obvious place to make a permalink, but I'm open to other ideas.

Move to new IA

We have discussed and planned a new IA, restructuring the site pages, menus and content. Review the proposed site IA and move the site content over to the new IA when ready.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.