Compare commits
5 Commits
8f31b18ebb
...
8a56d53d1f
Author | SHA1 | Date |
---|---|---|
sovanna | 8a56d53d1f | |
sovanna | be53b238f4 | |
sovanna | 54cb76eece | |
sovanna | 2aec9fb4a0 | |
sovanna | d923ac8930 |
|
@ -1,6 +1,6 @@
|
||||||
base_url = "/"
|
base_url = "/"
|
||||||
title = "M-Labs"
|
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
|
compile_sass = true
|
||||||
highlight_code = true
|
highlight_code = true
|
||||||
|
|
|
@ -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
|
##### 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() %}
|
{% layout_logos() %}
|
||||||
|
|
||||||
[![](/images/logo_nist.png)](https://www.nist.gov/pml/time-and-frequency-division/ion-storage)
|
[![log nist](/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/)
|
[![logo oxfort](/images/logo_oxford.png)](https://www2.physics.ox.ac.uk/)
|
||||||
[![](/images/logo_jqi.png)](http://jqi.umd.edu/)
|
[![logo jqi](/images/logo_jqi.png)](http://jqi.umd.edu/)
|
||||||
[![](/images/logo_duke.png)](http://www.duke.edu)
|
[![logo duke](/images/logo_duke.png)](http://www.duke.edu)
|
||||||
[![](/images/logo_ptb.png)](http://ptb.de)
|
[![logo ptb](/images/logo_ptb.png)](http://ptb.de)
|
||||||
[![](/images/logo_bmbf.png)](https://bmbf.de)
|
[![logo bmbf](/images/logo_bmbf.png)](https://bmbf.de)
|
||||||
[![](/images/logo_ise.png)](http://www.ise.pw.edu.pl)
|
[![logo ise](/images/logo_ise.png)](http://www.ise.pw.edu.pl)
|
||||||
|
|
||||||
{% end %}
|
{% end %}
|
||||||
|
|
||||||
|
|
|
@ -55,40 +55,56 @@ template = "page.html"
|
||||||
|
|
||||||
<div class="row mt-5">
|
<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>
|
<a href="http://chat.m-labs.hk/" target="_blank" rel="noopener noreferrer">Mattermost live chat</a>
|
||||||
|
|
||||||
<small>(bridged to IRC)</small>
|
<small>(bridged to IRC)</small>
|
||||||
{% end %}
|
{% 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>
|
<a href="https://forum.m-labs.hk/" target="_blank" rel="noopener noreferrer">Forum</a>
|
||||||
|
|
||||||
<small>(New!)</small>
|
<small>(New!)</small>
|
||||||
{% end %}
|
{% 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>
|
<a href="https://webchat.freenode.net/" target="_blank" rel="noopener noreferrer">IRC: #m-labs</a>
|
||||||
|
|
||||||
<small>on Freenode</small>
|
<small>on Freenode</small>
|
||||||
{% end %}
|
{% 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> </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>
|
<a href="https://github.com/m-labs/artiq" target="_blank" rel="noopener noreferrer">Source code repository</a>
|
||||||
|
|
||||||
<small> </small>
|
<small> </small>
|
||||||
{% end %}
|
{% 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> </small>
|
||||||
|
{% end %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="row d-flex align-items-center mt-5 mb-5">
|
<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
|
##### Commercial support available
|
||||||
|
|
||||||
**Sinara hardware purchases, ports to your hardware, feature development, technical support, bugfixing**
|
**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 %}
|
{% 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>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,20 @@
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Noto Sans';
|
font-family: 'Noto Sans';
|
||||||
|
font-display: swap;
|
||||||
src: url('../fonts/NotoSans-Regular.ttf') format('truetype');
|
src: url('../fonts/NotoSans-Regular.ttf') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Noto Sans';
|
font-family: 'Noto Sans';
|
||||||
|
font-display: swap;
|
||||||
src: url('../fonts/NotoSans-Bold.ttf') format('truetype');
|
src: url('../fonts/NotoSans-Bold.ttf') format('truetype');
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Noto Sans';
|
font-family: 'Noto Sans';
|
||||||
|
font-display: swap;
|
||||||
src: url('../fonts/NotoSans-BoldItalic.ttf') format('truetype');
|
src: url('../fonts/NotoSans-BoldItalic.ttf') format('truetype');
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
|
@ -19,6 +22,7 @@
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Noto Sans';
|
font-family: 'Noto Sans';
|
||||||
|
font-display: swap;
|
||||||
src: url('../fonts/NotoSans-Italic.ttf') format('truetype');
|
src: url('../fonts/NotoSans-Italic.ttf') format('truetype');
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
|
@ -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);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
|
@ -1,41 +1,51 @@
|
||||||
{
|
{
|
||||||
"name": "App",
|
"name": "M-Labs",
|
||||||
"icons": [
|
"short_name": "M-Labs",
|
||||||
{
|
"start_url": "/",
|
||||||
"src": "\/android-icon-36x36.png",
|
"background_color": "#fff",
|
||||||
"sizes": "36x36",
|
"display": "standalone",
|
||||||
"type": "image\/png",
|
"theme_color": "#715ec7",
|
||||||
"density": "0.75"
|
"icons": [
|
||||||
},
|
{
|
||||||
{
|
"src": "\/android-icon-36x36.png",
|
||||||
"src": "\/android-icon-48x48.png",
|
"sizes": "36x36",
|
||||||
"sizes": "48x48",
|
"type": "image\/png",
|
||||||
"type": "image\/png",
|
"density": "0.75"
|
||||||
"density": "1.0"
|
},
|
||||||
},
|
{
|
||||||
{
|
"src": "\/android-icon-48x48.png",
|
||||||
"src": "\/android-icon-72x72.png",
|
"sizes": "48x48",
|
||||||
"sizes": "72x72",
|
"type": "image\/png",
|
||||||
"type": "image\/png",
|
"density": "1.0"
|
||||||
"density": "1.5"
|
},
|
||||||
},
|
{
|
||||||
{
|
"src": "\/android-icon-72x72.png",
|
||||||
"src": "\/android-icon-96x96.png",
|
"sizes": "72x72",
|
||||||
"sizes": "96x96",
|
"type": "image\/png",
|
||||||
"type": "image\/png",
|
"density": "1.5"
|
||||||
"density": "2.0"
|
},
|
||||||
},
|
{
|
||||||
{
|
"src": "\/android-icon-96x96.png",
|
||||||
"src": "\/android-icon-144x144.png",
|
"sizes": "96x96",
|
||||||
"sizes": "144x144",
|
"type": "image\/png",
|
||||||
"type": "image\/png",
|
"density": "2.0"
|
||||||
"density": "3.0"
|
},
|
||||||
},
|
{
|
||||||
{
|
"src": "\/android-icon-144x144.png",
|
||||||
"src": "\/android-icon-192x192.png",
|
"sizes": "144x144",
|
||||||
"sizes": "192x192",
|
"type": "image\/png",
|
||||||
"type": "image\/png",
|
"density": "3.0"
|
||||||
"density": "4.0"
|
},
|
||||||
}
|
{
|
||||||
]
|
"src": "\/android-icon-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "4.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image\/png"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
});
|
|
@ -9,8 +9,6 @@
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<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="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
{% block ogtitle %}
|
{% block ogtitle %}
|
||||||
<meta property="og:title" content="{% block og_title%}{{ config.title }}{% endblock %}">
|
<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) }}>
|
<meta property="og:image" content={{ get_url(path='images/logo@2x.png', cachebust=true) }}>
|
||||||
{% block meta %}{% endblock meta %}
|
{% block meta %}{% endblock meta %}
|
||||||
|
|
||||||
|
<meta name="theme-color" content="#715ec7">
|
||||||
<link rel="manifest" href="/manifest.json" />
|
<link rel="manifest" href="/manifest.json" />
|
||||||
|
|
||||||
<link rel="apple-touch-icon" href="{{ get_url(path='/apple-icon-114x114.png') }}" sizes="114x114">
|
<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="shortcut icon" type="image/x-icon">
|
||||||
<link href="{{ get_url(path='favicon.ico', cachebust=true) }}" rel="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 %}
|
{% block styles %}{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -122,6 +119,25 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
<!-- ./MAIN CONTENT -->
|
<!-- ./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 -->
|
||||||
|
|
||||||
<footer class="container text-center text-md-left">
|
<footer class="container text-center text-md-left">
|
||||||
|
@ -155,6 +171,8 @@
|
||||||
</div>
|
</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/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/popper-1.14.7.min.js', cachebust=true) }}"></script>
|
||||||
<script src="{{ get_url(path='js/bootstrap-4.3.1.min.js', cachebust=true) }}"></script>
|
<script src="{{ get_url(path='js/bootstrap-4.3.1.min.js', cachebust=true) }}"></script>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
<h1>Open tools for open physics.</h1>
|
<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>
|
</div>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue