Compare commits

...

5 Commits

10 changed files with 195 additions and 74 deletions

View File

@ -1,6 +1,6 @@
base_url = "/"
title = "M-Labs"
description = ""
description = "M-Labs is a company and community who develops, manufactures and sells advanced open hardware devices and solutions. e.g Milkymist system-on-chip (SoC)"
compile_sass = true
highlight_code = true

View File

@ -32,7 +32,7 @@ Modern research on quantum information systems poses particular challenges to th
{% layout_text_img(src="images/comp.svg", alt="lab hardware", textleft=true) %}
{% layout_text_img(src="images/comp.svg", alt="comp", textleft=true) %}
##### Enter ARTIQ
@ -52,7 +52,7 @@ Technologies employed include <a href="http://python.org/" target="_blank" rel="
{{ layout_centered_img(src='images/enter-artiq-min.png', popup="images/origin/gui_screenshot.png", alt='') }}
{{ layout_centered_img(src='images/enter-artiq-min.png', popup="images/origin/gui_screenshot.png", alt='ARTIQ') }}
@ -71,13 +71,13 @@ ARTIQ was initiated by the Ion Storage Group at NIST, and other partners have co
{% layout_logos() %}
[![](/images/logo_nist.png)](https://www.nist.gov/pml/time-and-frequency-division/ion-storage)
[![](/images/logo_oxford.png)](https://www2.physics.ox.ac.uk/)
[![](/images/logo_jqi.png)](http://jqi.umd.edu/)
[![](/images/logo_duke.png)](http://www.duke.edu)
[![](/images/logo_ptb.png)](http://ptb.de)
[![](/images/logo_bmbf.png)](https://bmbf.de)
[![](/images/logo_ise.png)](http://www.ise.pw.edu.pl)
[![log nist](/images/logo_nist.png)](https://www.nist.gov/pml/time-and-frequency-division/ion-storage)
[![logo oxfort](/images/logo_oxford.png)](https://www2.physics.ox.ac.uk/)
[![logo jqi](/images/logo_jqi.png)](http://jqi.umd.edu/)
[![logo duke](/images/logo_duke.png)](http://www.duke.edu)
[![logo ptb](/images/logo_ptb.png)](http://ptb.de)
[![logo bmbf](/images/logo_bmbf.png)](https://bmbf.de)
[![logo ise](/images/logo_ise.png)](http://www.ise.pw.edu.pl)
{% end %}

View File

@ -55,40 +55,56 @@ template = "page.html"
<div class="row mt-5">
{% layout_card(src="images/mattermost@2x.png", css="col-12 col-md-3 text-center") %}
{% layout_card(src="images/mattermost@2x.png", css="col-12 col-md-4 text-center") %}
<a href="http://chat.m-labs.hk/" target="_blank" rel="noopener noreferrer">Mattermost live chat</a>
<small>(bridged to IRC)</small>
{% end %}
{% layout_card(src="images/forum@2x.png", css="col-12 col-md-3 text-center") %}
{% layout_card(src="images/forum@2x.png", css="col-12 col-md-4 text-center") %}
<a href="https://forum.m-labs.hk/" target="_blank" rel="noopener noreferrer">Forum</a>
<small>(New!)</small>
{% end %}
{% layout_card(src="images/irc@2x.png", css="col-12 col-md-3 text-center") %}
{% layout_card(src="images/email@2x.png", css="col-12 col-md-4 text-center") %}
<a href="https://webchat.freenode.net/" target="_blank" rel="noopener noreferrer">IRC: #m-labs</a>
<small>on Freenode</small>
{% end %}
{% layout_card(src="images/git@2x.png", css="col-12 col-md-3 text-center") %}
{% layout_card(src="images/directory@2x.png", css="col-12 col-md-4 text-center") %}
<a href="https://ssl.serverraum.org/lists/listinfo/artiq" target="_blank" rel="noopener noreferrer">Public mailing list</a>
<small>&nbsp;</small>
{% end %}
{% layout_card(src="images/git@2x.png", css="col-12 col-md-4 text-center") %}
<a href="https://github.com/m-labs/artiq" target="_blank" rel="noopener noreferrer">Source code repository</a>
<small>&nbsp;</small>
{% end %}
{% layout_card(src="images/press@2x.png", css="col-12 col-md-4 text-center") %}
NIST press release
<br>
<a href="https://www.nist.gov/news-events/news/2015/01/open-source-software-quantum-information" target="_blank" rel="noopener noreferrer">Open-Source Software for Quantum Information</a>
<small>&nbsp;</small>
{% end %}
</div>
<div class="row d-flex align-items-center mt-5 mb-5">
{% layout_div(css="col-12 col-md-6") %}
{% layout_div(css="col-12 text-center") %}
##### Commercial support available
**Sinara hardware purchases, ports to your hardware, feature development, technical support, bugfixing**
@ -99,20 +115,5 @@ We welcome inquiries from research groups of all sizes.<br><a href="https://gith
{% end %}
<div class="col-12 col-md-6">
{% layout_icon_label(src="images/directory@2x.png") %}
<a href="https://ssl.serverraum.org/lists/listinfo/artiq" target="_blank" rel="noopener noreferrer">Public mailing list</a>
{% end %}
{% layout_icon_label(src="images/press@2x.png") %}
NIST press release
<br>
<a href="https://www.nist.gov/news-events/news/2015/01/open-source-software-quantum-information" target="_blank" rel="noopener noreferrer">Open-Source Software for Quantum Information</a>
{% end %}
</div>
</div>

View File

@ -1,17 +1,20 @@
@font-face {
font-family: 'Noto Sans';
font-display: swap;
src: url('../fonts/NotoSans-Regular.ttf') format('truetype');
}
@font-face {
font-family: 'Noto Sans';
font-display: swap;
src: url('../fonts/NotoSans-Bold.ttf') format('truetype');
font-weight: 700;
}
@font-face {
font-family: 'Noto Sans';
font-display: swap;
src: url('../fonts/NotoSans-BoldItalic.ttf') format('truetype');
font-weight: 700;
font-style: italic;
@ -19,6 +22,7 @@
@font-face {
font-family: 'Noto Sans';
font-display: swap;
src: url('../fonts/NotoSans-Italic.ttf') format('truetype');
font-style: italic;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

40
static/js/as.js Normal file
View File

@ -0,0 +1,40 @@
(function () {
var swRegistration;
var newWorker;
var isRefreshing = false;
var pathname = window.location.pathname;
var deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
console.log('[AS] Before install prompt');
// Prevent Chrome 67 and earlier from automatically showing the prompt
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
});
if ('serviceWorker' in navigator) {
console.info('Service Worker is supported');
window.addEventListener('load', function () {
navigator.serviceWorker.register('/sw.js', {
updateViaCache: 'all',
}).then(function (registration) {
swRegistration = registration;
console.log('[SW] registration successful with scope: ', swRegistration.scope);
console.log('[SW] is waiting: ', swRegistration.waiting);
navigator.serviceWorker.addEventListener('controllerchange', function () {
if (isRefreshing) {
return;
}
window.location.reload();
isRefreshing = true;
});
}, function (err) {
console.log('[SW] registration failed: ', err);
});
});
}
})();

View File

@ -1,5 +1,10 @@
{
"name": "App",
"name": "M-Labs",
"short_name": "M-Labs",
"start_url": "/",
"background_color": "#fff",
"display": "standalone",
"theme_color": "#715ec7",
"icons": [
{
"src": "\/android-icon-36x36.png",
@ -36,6 +41,11 @@
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
},
{
"src": "\/android-icon-512x512.png",
"sizes": "512x512",
"type": "image\/png"
}
]
}

48
static/sw.js Normal file
View File

@ -0,0 +1,48 @@
var CACHE_NAME = 'ml-02';
var urlsToCache = [
'/css/bootstrap-4.3.1.min.css',
'/css/styles.css',
'/js/jquery-3.3.1.slim.min.js',
'/js/bootstrap-4.3.1.min.js',
'/js/popper-1.14.7.min.js',
'/js/hammer-2.0.8.js',
'/js/three-r76.js',
'/js/SolveSpaceControls.js',
'/js/SolveSpaceControls.js',
'/js/models/kf25.js',
'/js/models/viewport.js',
'/js/models/multiport.js',
'/js/models/chamber.js',
'/js/models/k526s-body.js',
'/js/models/k526s-head.js',
'/js/models/k526s-fixture.js',
'/js/models/k526s-adapter.js',
'/js/models/k526s-adapter-assy.js',
];
self.addEventListener('install', function(event) {
console.log('[SW] Install');
event.waitUntil(
caches.open(CACHE_NAME)
.then(function(cache) {
console.log('[SW] add to cache');
return cache.addAll(urlsToCache);
})
);
});
self.addEventListener('fetch', function (event) {
console.log('[SW] Fetch');
event.respondWith(
caches.match(event.request).then(function (response) {
return response || fetch(event.request);
})
);
});
self.addEventListener('message', function (event) {
if (event.data.action === 'skipWaiting') {
self.skipWaiting();
caches.delete(CACHE_NAME);
}
});

View File

@ -9,8 +9,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="noindex">
<meta property="og:type" content="website">
{% block ogtitle %}
<meta property="og:title" content="{% block og_title%}{{ config.title }}{% endblock %}">
@ -23,6 +21,7 @@
<meta property="og:image" content={{ get_url(path='images/logo@2x.png', cachebust=true) }}>
{% block meta %}{% endblock meta %}
<meta name="theme-color" content="#715ec7">
<link rel="manifest" href="/manifest.json" />
<link rel="apple-touch-icon" href="{{ get_url(path='/apple-icon-114x114.png') }}" sizes="114x114">
@ -43,8 +42,6 @@
<link href="{{ get_url(path='favicon.ico', cachebust=true) }}" rel="shortcut icon" type="image/x-icon">
<link href="{{ get_url(path='favicon.ico', cachebust=true) }}" rel="icon" type="image/x-icon">
<link rel="stylesheet" href="{{ get_url(path='css/bootstrap-4.3.1.min.css', cachebust=true) }}">
<link rel="stylesheet" href="{{ get_url(path='css/styles.css', cachebust=true) }}">
{% block styles %}{% endblock %}
</head>
@ -122,6 +119,25 @@
{% endblock %}
<!-- ./MAIN CONTENT -->
<noscript id="deferred-main-styles">
<link rel="stylesheet" href="{{ get_url(path='css/bootstrap-4.3.1.min.css', cachebust=true) }}">
<link rel="stylesheet" href="{{ get_url(path='css/styles.css', cachebust=true) }}">
{% block deferred_styles %}{% endblock %}
</noscript>
<script>
var loadDeferredMainStyles = function() {
var addStylesNode = document.getElementById("deferred-main-styles");
var replacement = document.createElement("div");
replacement.innerHTML = addStylesNode.textContent;
document.body.appendChild(replacement)
addStylesNode.parentElement.removeChild(addStylesNode);
};
var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
if (raf) raf(function() { window.setTimeout(loadDeferredMainStyles, 0); });
else window.addEventListener('load', loadDeferredMainStyles);
</script>
<!-- FOOTER -->
<footer class="container text-center text-md-left">
@ -155,6 +171,8 @@
</div>
<script src="{{ get_url(path='js/as.js', cachebust=true) }}"></script>
<script src="{{ get_url(path='js/jquery-3.3.1.slim.min.js', cachebust=true) }}"></script>
<script src="{{ get_url(path='js/popper-1.14.7.min.js', cachebust=true) }}"></script>
<script src="{{ get_url(path='js/bootstrap-4.3.1.min.js', cachebust=true) }}"></script>

View File

@ -13,7 +13,7 @@
<h1>Open tools for open physics.</h1>
<img src="{{ get_url(path='images/ion@2x.png', cachebust=true) }}" height="12" align="ion">
<img src="{{ get_url(path='images/ion@2x.png', cachebust=true) }}" height="12" alt="ion">
</div>