SEO optimizations and fixes #163
@ -1,4 +1,4 @@
|
||||
base_url = "/"
|
||||
base_url = "https://m-labs.hk"
|
||||
|
||||
title = "M-Labs"
|
||||
description = "Open tools for open physics."
|
||||
|
||||
|
@ -13,25 +13,25 @@ template = "page.html"
|
||||
{% layout_card(title="ARTIQ manual", sameheight=100) %}
|
||||
<small>Stable version</small>
|
||||
|
||||
<a href="https://m-labs.hk/artiq/manual.pdf" target="_blank">PDF</a> | <a href="https://m-labs.hk/artiq/manual/" target="_blank" rel="noopener noreferrer">HTML</a>
|
||||
<a href="https://m-labs.hk/artiq/manual.pdf" target="_blank" itemprop="url">PDF</a> | <a href="https://m-labs.hk/artiq/manual/" target="_blank" rel="noopener noreferrer" itemprop="url">HTML</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="SiPyCo manual", sameheight=100) %}
|
||||
<small>Starting with ARTIQ-5, this library replaces <tt>artiq.protocols</tt>.</small>
|
||||
|
||||
<a href="https://m-labs.hk/artiq/sipyco-manual.pdf" target="_blank">PDF</a> | <a href="https://m-labs.hk/artiq/sipyco-manual/" target="_blank" rel="noopener noreferrer">HTML</a>
|
||||
<a href="https://m-labs.hk/artiq/sipyco-manual.pdf" target="_blank" itemprop="url">PDF</a> | <a href="https://m-labs.hk/artiq/sipyco-manual/" target="_blank" rel="noopener noreferrer" itemprop="url">HTML</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="ARTIQ manual", sameheight=100) %}
|
||||
<small>Beta (development) version</small>
|
||||
|
||||
<a href="https://m-labs.hk/artiq/manual-beta.pdf" target="_blank">PDF</a> | <a href="https://m-labs.hk/artiq/manual-beta/" target="_blank" rel="noopener noreferrer">HTML</a>
|
||||
<a href="https://m-labs.hk/artiq/manual-beta.pdf" target="_blank" itemprop="url">PDF</a> | <a href="https://m-labs.hk/artiq/manual-beta/" target="_blank" rel="noopener noreferrer" itemprop="url">HTML</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="ARTIQ manual", sameheight=100) %}
|
||||
<small>Legacy version</small>
|
||||
|
||||
<a href="https://m-labs.hk/artiq/manual-legacy.pdf" target="_blank">PDF</a> | <a href="https://m-labs.hk/artiq/manual-legacy/" target="_blank" rel="noopener noreferrer">HTML</a>
|
||||
<a href="https://m-labs.hk/artiq/manual-legacy.pdf" target="_blank" itemprop="url">PDF</a> | <a href="https://m-labs.hk/artiq/manual-legacy/" target="_blank" rel="noopener noreferrer" itemprop="url">HTML</a>
|
||||
{% end %}
|
||||
|
||||
|
||||
@ -39,14 +39,14 @@ template = "page.html"
|
||||
{% layout_card(title="Slideshow", sameheight=100) %}
|
||||
<small>The ARTIQ experiment control system</small>
|
||||
|
||||
<a href="/docs/artiq/artiq_overview.pdf" target="_blank" rel="noopener noreferrer">View slides</a>
|
||||
<a href="/docs/artiq/artiq_overview.pdf" target="_blank" rel="noopener noreferrer" itemprop="url">View slides</a>
|
||||
{% end %}
|
||||
|
||||
|
||||
{% layout_card(title="Slideshow", sameheight=100) %}
|
||||
<small>Timing control in ARTIQ</small>
|
||||
|
||||
<a href="/docs/artiq/slides_timing.pdf" target="_blank" rel="noopener noreferrer">View slides</a>
|
||||
<a href="/docs/artiq/slides_timing.pdf" target="_blank" rel="noopener noreferrer" itemprop="url">View slides</a>
|
||||
{% end %}
|
||||
|
||||
</div>
|
||||
@ -64,40 +64,40 @@ template = "page.html"
|
||||
<div class="row mt-5">
|
||||
|
||||
{% 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" itemprop="url">Mattermost live chat</a>
|
||||
|
||||
<small>(bridged to IRC)</small>
|
||||
{% end %}
|
||||
|
||||
|
||||
{% 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" itemprop="url">Forum</a>
|
||||
|
||||
<small> </small>
|
||||
{% end %}
|
||||
|
||||
|
||||
{% layout_card(src="images/irc@2x.png", css="col-12 col-md-4 text-center") %}
|
||||
<a href="https://webchat.oftc.net/" target="_blank" rel="noopener noreferrer">IRC: #m-labs</a>
|
||||
<a href="https://webchat.oftc.net/" target="_blank" rel="noopener noreferrer" itemprop="url">IRC: #m-labs</a>
|
||||
|
||||
<small>on OFTC</small>
|
||||
{% end %}
|
||||
|
||||
|
||||
{% layout_card(src="images/press@2x.png", css="col-12 col-md-4 text-center") %}
|
||||
<a href="https://www.nist.gov/news-events/news/2015/01/open-source-software-quantum-information" target="_blank" rel="noopener noreferrer">NIST ARTIQ press release</a>
|
||||
<a href="https://www.nist.gov/news-events/news/2015/01/open-source-software-quantum-information" target="_blank" rel="noopener noreferrer" itemprop="url">NIST ARTIQ press release</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">ARTIQ source code repository</a>
|
||||
<a href="https://github.com/m-labs/artiq" target="_blank" rel="noopener noreferrer" itemprop="url">ARTIQ source code repository</a>
|
||||
|
||||
<small>on GitHub</small>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(src="images/git@2x.png", css="col-12 col-md-4 text-center") %}
|
||||
<a href="https://git.m-labs.hk" target="_blank" rel="noopener noreferrer">Gitea</a>
|
||||
<a href="https://git.m-labs.hk" target="_blank" rel="noopener noreferrer" itemprop="url">Gitea</a>
|
||||
|
||||
<small> </small>
|
||||
{% end %}
|
||||
@ -129,108 +129,108 @@ We welcome inquiries from research groups of all sizes.<br>[See what has been fu
|
||||
{% layout_card(title="Entangler core", sameheight=120) %}
|
||||
<small>A FPGA core written in Migen with ARTIQ interface, for controlling remote quantum entanglement of trapped ions.</small>
|
||||
|
||||
<a href="https://github.com/OxfordIonTrapGroup/entangler-core" target="_blank" rel="noopener noreferrer">Repository</a> | <a href="https://arxiv.org/abs/1911.10841" target="_blank" rel="noopener noreferrer">Paper</a>
|
||||
<a href="https://github.com/OxfordIonTrapGroup/entangler-core" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a> | <a href="https://arxiv.org/abs/1911.10841" target="_blank" rel="noopener noreferrer" itemprop="url">Paper</a>
|
||||
{% end %}
|
||||
|
||||
|
||||
{% layout_card(title="ndscan", sameheight=120) %}
|
||||
<small>N-dimensional scans for ARTIQ</small>
|
||||
|
||||
<a href="https://github.com/OxfordIonTrapGroup/ndscan" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/OxfordIonTrapGroup/ndscan" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
|
||||
{% layout_card(title="Oxford routines", sameheight=120) %}
|
||||
<small>Oxford Ion-Trap Group routines</small>
|
||||
|
||||
<a href="https://github.com/OxfordIonTrapGroup/oitg" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/OxfordIonTrapGroup/oitg" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="UCLA routines", sameheight=120) %}
|
||||
<small>ARTIQ experiments in use at UCLA AMO</small>
|
||||
|
||||
<a href="https://github.com/EGGS-Experiment/LAX_exp" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/EGGS-Experiment/LAX_exp" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="nvOS", sameheight=120) %}
|
||||
<small>A quantum operating system built around ARTIQ and NV centers in diamond.</small>
|
||||
|
||||
<a href="https://github.com/vontell/nvOS" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/vontell/nvOS" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="Haeffner Lab routines", sameheight=120) %}
|
||||
<small>Haeffner Lab (Berkeley) routines</small>
|
||||
|
||||
<a href="https://github.com/HaeffnerLab/artiq-work-lattice" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/HaeffnerLab/artiq-work-lattice" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="Birmingham examples", sameheight=120) %}
|
||||
<small>A repository of simple examples of ARTIQ code</small>
|
||||
|
||||
<a href="https://github.com/cnourshargh/Bham-ARTIQ-examples" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/cnourshargh/Bham-ARTIQ-examples" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="DAX - Duke ARTIQ extensions", sameheight=120) %}
|
||||
<small>A library to provide tools for system organization/abstraction and to improve usability by automating common functionality.</small>
|
||||
|
||||
<a href="https://gitlab.com/duke-artiq" target="_blank" rel="noopener noreferrer">Repositories</a>
|
||||
<a href="https://gitlab.com/duke-artiq" target="_blank" rel="noopener noreferrer" itemprop="url">Repositories</a>
|
||||
{% end %}
|
||||
|
||||
|
||||
{% layout_card(title="Argent", sameheight=120) %}
|
||||
<small>High-level sequence control interface for ARTIQ.</small>
|
||||
|
||||
<a href="https://github.com/robertfasano/argent" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/robertfasano/argent" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="flake8-artiq", sameheight=120) %}
|
||||
<small>A Flake8 plugin for checking ARTIQ code</small>
|
||||
|
||||
<a href="https://gitlab.com/duke-artiq/flake8-artiq" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://gitlab.com/duke-artiq/flake8-artiq" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="GenericSCPIDriver", sameheight=120) %}
|
||||
<small>A generic Python driver for SCPI devices driven over serial connections. Compatible with ARTIQ.</small>
|
||||
|
||||
<a href="https://github.com/charlesbaynham/GenericSCPIDriver" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/charlesbaynham/GenericSCPIDriver" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="artiq_influx_generic", sameheight=120) %}
|
||||
<small>RPC interface to InfluxDB with support for generic data logging.</small>
|
||||
|
||||
<a href="https://gitlab.com/charlesbaynham/artiq_influx_generic" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://gitlab.com/charlesbaynham/artiq_influx_generic" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="DP700", sameheight=120) %}
|
||||
<small>ARTIQ NDSP for RIGOL DP700 Series power supplies.</small>
|
||||
|
||||
<a href="https://github.com/OregonIons/DP700" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/OregonIons/DP700" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="AGUC8", sameheight=120) %}
|
||||
<small>ARTIQ NDSP for Newport AG-UC8 piezo motor controller.</small>
|
||||
|
||||
<a href="https://github.com/OregonIons/AGUC8" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/OregonIons/AGUC8" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
|
||||
{% layout_card(title="TSICam", sameheight=120) %}
|
||||
<small>ARTIQ NDSP for Thorlabs Scientific Imaging cameras.</small>
|
||||
|
||||
<a href="https://github.com/OregonIons/TSICam" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/OregonIons/TSICam" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
|
||||
{% layout_card(title="U Toronto examples", sameheight=120) %}
|
||||
<small>A repository of examples of ARTIQ code and instructions</small>
|
||||
|
||||
<a href="https://github.com/vuthalab/artiq" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/vuthalab/artiq" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
{% layout_card(title="OffsetStabilizer", sameheight=120) %}
|
||||
<small>Stabilizer firmware for laser frequency offset stabilization</small>
|
||||
|
||||
<a href="https://github.com/PhBrb/OffsetStabilizer" target="_blank" rel="noopener noreferrer">Repository</a>
|
||||
<a href="https://github.com/PhBrb/OffsetStabilizer" target="_blank" rel="noopener noreferrer" itemprop="url">Repository</a>
|
||||
{% end %}
|
||||
|
||||
</div>
|
||||
|
859
package-lock.json
generated
859
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,8 @@
|
||||
"start": "npx webpack --watch",
|
||||
"build": "npx webpack",
|
||||
"start-dev": "npx webpack --watch --mode=development --devtool=inline-source-map",
|
||||
"build-dev": "npx webpack --mode=development --devtool=inline-source-map"
|
||||
"build-dev": "npx webpack --mode=development --devtool=inline-source-map",
|
||||
"optimize-bootstrap": "zola build -o tmp_out && npx purgecss --css static/css/bootstrap-5.3.0.min.css --content 'tmp_out/**/*.html' -o static/css/bootstrap-5.3.0.opt.css --safelist modal-backdrop && rm -rf tmp_out"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -33,7 +34,8 @@
|
||||
"babel-preset-minify": "^0.5.2",
|
||||
"webpack": "^5.93.0",
|
||||
"webpack-cli": "^5.1.4",
|
||||
"webpack-preprocessor-loader": "^1.3.0"
|
||||
"webpack-preprocessor-loader": "^1.3.0",
|
||||
"purgecss": "^7.0.2"
|
||||
},
|
||||
"babel": {
|
||||
"presets": [
|
||||
|
@ -107,10 +107,14 @@ h3, h2, h1 {
|
||||
padding: .4rem; }
|
||||
|
||||
|
||||
p ~ h5 {
|
||||
p ~ h5, div.desc-wrapper ~ h5 {
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
div.desc-wrapper {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
img.kf25 {
|
||||
width: 310px;
|
||||
}
|
||||
|
5
static/css/bootstrap-5.3.0.opt.css
vendored
Normal file
5
static/css/bootstrap-5.3.0.opt.css
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -1,32 +0,0 @@
|
||||
(function () {
|
||||
|
||||
var swRegistration;
|
||||
var newWorker;
|
||||
var isRefreshing = false;
|
||||
var pathname = window.location.pathname;
|
||||
var deferredPrompt;
|
||||
|
||||
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);
|
||||
});
|
||||
});
|
||||
}
|
||||
})();
|
2
static/js/jquery-3.7.0.min.js
vendored
2
static/js/jquery-3.7.0.min.js
vendored
File diff suppressed because one or more lines are too long
2
static/js/jquery-3.7.0.slim.min.js
vendored
2
static/js/jquery-3.7.0.slim.min.js
vendored
File diff suppressed because one or more lines are too long
40
static/sw.js
40
static/sw.js
@ -1,40 +0,0 @@
|
||||
var CACHE_NAME = 'ml-03';
|
||||
var urlsToCache = [
|
||||
'/css/bootstrap-5.3.0.min.css',
|
||||
'/css/styles.css',
|
||||
'/js/jquery-3.7.0.slim.min.js',
|
||||
'/js/jquery-3.7.0.min.js',
|
||||
'/js/bootstrap-5.3.0.min.js',
|
||||
'/js/react.production.min.js',
|
||||
'/js/react-dom.production.min.js',
|
||||
'/js/prop-types.min.js',
|
||||
'/js/react-beautiful-dnd.min.js',
|
||||
'/js/uuid_v4@latest.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);
|
||||
}
|
||||
});
|
@ -43,7 +43,7 @@
|
||||
<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-5.3.0.min.css', cachebust=true) }}">
|
||||
<link rel="stylesheet" href="{{ get_url(path='css/bootstrap-5.3.0.opt.css', cachebust=true) }}">
|
||||
<link rel="stylesheet" href="{{ get_url(path='css/styles.css', cachebust=true) }}">
|
||||
{% block styles %}{% endblock %}
|
||||
</head>
|
||||
@ -85,7 +85,7 @@
|
||||
</a>
|
||||
<div class="dropdown-menu shadow-none shadow-lg text-end text-lg-start" aria-labelledby="navbarDropdown">
|
||||
{% for page in subsection.pages %}
|
||||
<a class="dropdown-item pt-2 pb-2 pt-sm-3 pb-sm-3" href="{{ page.permalink }}">{{ page.title }}</a>
|
||||
<a class="dropdown-item pt-2 pb-2 pt-sm-3 pb-sm-3" href="{{ page.permalink | safe }}">{{ page.title }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</li>
|
||||
@ -93,7 +93,7 @@
|
||||
{% elif subsection.title != 'Other' %}
|
||||
|
||||
<li class="nav-item ms-0 ms-md-4">
|
||||
<a class="nav-link" href="{{ subsection.permalink }}">{{ subsection.title }}</a>
|
||||
<a class="nav-link" href="{{ subsection.permalink | safe }}">{{ subsection.title }}</a>
|
||||
</li>
|
||||
|
||||
{% endif %}
|
||||
@ -155,7 +155,6 @@
|
||||
|
||||
<!-- ./FOOTER -->
|
||||
|
||||
<script src="{{ get_url(path='js/jquery-3.7.0.slim.min.js', cachebust=true) }}"></script>
|
||||
<script src="{{ get_url(path='js/bootstrap-5.3.0.bundle.min.js', cachebust=true) }}"></script>
|
||||
|
||||
<script>
|
||||
|
@ -17,8 +17,8 @@
|
||||
<meta property="og:description" content="{% block og_description%}{{ config.description }}{% endblock %}">
|
||||
{% endblock %}
|
||||
<meta property="og:site_name" content="{{ config.extra.author }}">
|
||||
<meta property="og:url" content="{{ config.base_url }}">
|
||||
<meta property="og:image" content={{ get_url(path='images/logo@2x.png', cachebust=true) }}>
|
||||
<meta property="og:url" content="{{ config.base_url | safe }}">
|
||||
<meta property="og:image" content="{{ get_url(path='images/logo@2x.png', cachebust=true) }}">
|
||||
{% block meta %}{% endblock meta %}
|
||||
|
||||
<meta name="theme-color" content="#715ec7">
|
||||
@ -42,11 +42,21 @@
|
||||
<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">
|
||||
|
||||
{% block styles %}{% endblock %}
|
||||
<link href="https://m-labs.hk{{ current_path | safe }}" rel="canonical" >
|
||||
<link href="https://m-labs.hk{{ current_path | safe }}" rel="alternate" hreflang="x-default" >
|
||||
<link href="https://m-labs.ph{{ current_path | safe }}" rel="alternate" hreflang="en-ph" >
|
||||
<link href="https://m-labs-intl.com{{ current_path | safe }}" rel="alternate" hreflang="en-us" >
|
||||
|
||||
{% block links %}{% endblock %}
|
||||
|
||||
{% block styles %}
|
||||
<link rel="stylesheet" href="{{ get_url(path='css/bootstrap-5.3.0.opt.css', cachebust=true) }}">
|
||||
<link rel="stylesheet" href="{{ get_url(path='css/styles.css', cachebust=true) }}">
|
||||
{% endblock %}
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<body itemscope itemtype="https://schema.org/WebPage">
|
||||
|
||||
<!-- HEADER -->
|
||||
|
||||
@ -54,7 +64,7 @@
|
||||
|
||||
<header class="container">
|
||||
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-th-1 justify-content-center justify-content-between pt-md-3 pb-md-3" role="navigation">
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-th-1 justify-content-center justify-content-between pt-md-3 pb-md-3" role="navigation" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
|
||||
<a class="navbar-brand logo me-0" href="/">
|
||||
<img src="{{ get_url(path='images/logo@2x.png') }}" height="40" alt="logo">
|
||||
@ -84,11 +94,11 @@
|
||||
<div class="dropdown-menu shadow-none shadow-lg text-start text-lg-start" aria-labelledby="navbarDropdown">
|
||||
{% for tmp_page in subsection.pages %}
|
||||
{% if tmp_page.extra.menu_item and tmp_page.extra.menu_item == "th1" %}
|
||||
<a class="dropdown-item pt-2 pb-2 mx-4 mt-2 mb-2 mt-sm-3 mb-sm-3 w-auto btn btn-primary btn-inversed {% if current_path == tmp_page.path %}active{% endif %} rounded-1" href="{{ tmp_page.permalink }}">
|
||||
<a class="dropdown-item pt-2 pb-2 mx-4 mt-2 mb-2 mt-sm-3 mb-sm-3 w-auto btn btn-primary btn-inversed {% if current_path == tmp_page.path %}active{% endif %} rounded-1" href="{{ tmp_page.permalink | safe }}" itemprop="url">
|
||||
<center>{{ tmp_page.title }}</center>
|
||||
</a>
|
||||
{% else %}
|
||||
<a class="dropdown-item pt-2 pb-2 {% if current_path == tmp_page.path %}active{% endif %}" href="{{ tmp_page.permalink }}">{{ tmp_page.title }}</a>
|
||||
<a class="dropdown-item pt-2 pb-2 {% if current_path == tmp_page.path %}active{% endif %}" href="{{ tmp_page.permalink | safe }}" itemprop="url">{{ tmp_page.title }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
@ -97,7 +107,7 @@
|
||||
{% elif subsection.title != 'Other' %}
|
||||
|
||||
<li class="nav-item ms-0 ms-md-4 {% if current_path == subsection.path %}active{% endif %}">
|
||||
<a class="nav-link" href="{{ subsection.permalink }}">{{ subsection.title }}</a>
|
||||
<a class="nav-link" href="{{ subsection.permalink | safe }}">{{ subsection.title }}</a>
|
||||
</li>
|
||||
|
||||
{% endif %}
|
||||
@ -126,25 +136,6 @@
|
||||
{% endblock %}
|
||||
<!-- ./MAIN CONTENT -->
|
||||
|
||||
<noscript id="deferred-main-styles">
|
||||
<link rel="stylesheet" href="{{ get_url(path='css/bootstrap-5.3.0.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 -->
|
||||
|
||||
{% block footer %}
|
||||
@ -156,8 +147,8 @@
|
||||
|
||||
{% endblock %}
|
||||
|
||||
<p class="pt-4 pb-2 text-center">
|
||||
<small>Copyright © <span id="copyright_year"></span>, M-Labs. All rights reserved. ARTIQ, the ARTIQ logo, Migen and nMigen are registered or unregistered trademarks.</small>
|
||||
<p class="pt-4 pb-2 text-center" itemprop="copyrightNotice">
|
||||
<small>Copyright © <span id="copyright_year" itemprop="copyrightYear">{{ now() | date(format="%Y") }}</span>, <span itemprop="copyrightHolder">M-Labs</span>. All rights reserved. ARTIQ, the ARTIQ logo, Migen and nMigen are registered or unregistered trademarks.</small>
|
||||
</p>
|
||||
|
||||
{% block fcopyright %}
|
||||
@ -182,11 +173,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <script src="{{ get_url(path='js/as.js', cachebust=true) }}"></script> -->
|
||||
|
||||
<script src="{{ get_url(path='js/jquery-3.7.0.min.js', cachebust=true) }}"></script>
|
||||
<script src="{{ get_url(path='js/bootstrap-5.3.0.bundle.min.js', cachebust=true) }}"></script>
|
||||
<script src="{{ get_url(path='js/bootstrap-5.3.0.bundle.min.js', cachebust=true) }}" defer></script>
|
||||
|
||||
<script>
|
||||
|
||||
@ -200,16 +187,20 @@
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#modalEnlarged').on('hidden.bs.modal', function (e) {
|
||||
$('#enlarged').attr('src', '');
|
||||
});
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const modal = document.getElementById('modalEnlarged');
|
||||
const enlargedImg = document.getElementById('enlarged');
|
||||
|
||||
$('[data-popup]').click(function (evt) {
|
||||
var _self = $(this);
|
||||
var _img_enlarged = _self.data('nsrc');
|
||||
$('#enlarged').attr('src', _img_enlarged);
|
||||
$('#modalEnlarged').modal('show');
|
||||
modal.addEventListener('hidden.bs.modal', function() {
|
||||
enlargedImg.src = '';
|
||||
});
|
||||
document.querySelectorAll('[data-popup]').forEach(function(element) {
|
||||
element.addEventListener('click', function() {
|
||||
const imgSrc = this.dataset.nsrc;
|
||||
enlargedImg.src = imgSrc;
|
||||
const bsModal = new bootstrap.Modal(modal);
|
||||
bsModal.show();
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
@ -1,28 +1,32 @@
|
||||
<div class="row pt-5 pb-5">
|
||||
|
||||
<div class="col-12 col-md-6 pb-5 pb-md-0">
|
||||
<div class="col-12 col-md-6 pb-5 pb-md-0" itemscope itemtype="https://schema.org/ContactPoint">
|
||||
|
||||
<h5 class="pb-3">Sales inquiries</h5>
|
||||
<h5 class="pb-3" itemprop="contactType">Sales inquiries</h5>
|
||||
|
||||
<p>
|
||||
To purchase ARTIQ Sinara hardware, software and gateware development services, or to enter a technical support agreement, write to <a href="mailto:sales@{{get_env(name="DOMAINNAME", default="m-labs.hk")}}">sales@{{get_env(name="DOMAINNAME", default="m-labs.hk")}}</a>.
|
||||
<p itemprop="description">
|
||||
To purchase ARTIQ Sinara hardware, software and gateware development services, or to enter a technical support agreement, write to <a href="mailto:sales@{{get_env(name="DOMAINNAME", default="m-labs.hk")}}" itemprop="email">sales@{{get_env(name="DOMAINNAME", default="m-labs.hk")}}</a>.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-md-6 pb-5 pb-md-0">
|
||||
|
||||
<h5 class="pb-3">Commercial technical support</h5>
|
||||
<div class="pb-3" itemscope itemtype="https://schema.org/ContactPoint">
|
||||
<h5 class="pb-3" itemprop="contactType">Commercial technical support</h5>
|
||||
|
||||
<p>
|
||||
If you need help setting up ARTIQ hardware purchased from us, or if you have a commercial technical support agreement with us, email us anytime at <a href="mailto:helpdesk@{{get_env(name="DOMAINNAME", default="m-labs.hk")}}">helpdesk@{{get_env(name="DOMAINNAME", default="m-labs.hk")}}</a>.
|
||||
If you need help setting up ARTIQ hardware purchased from us, or if you have a commercial technical support agreement with us, email us anytime at <a href="mailto:helpdesk@{{get_env(name="DOMAINNAME", default="m-labs.hk")}}" itemprop="email">helpdesk@{{get_env(name="DOMAINNAME", default="m-labs.hk")}}</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h5 class="pb-3">Community support</h5>
|
||||
<div class="mt-3" itemscope itemtype="https://schema.org/ContactPoint">
|
||||
<h5 class="pb-3" itemprop="contactType">Community support</h5>
|
||||
|
||||
<p>
|
||||
Our open source projects such as ARTIQ have an active user community. Get and offer help on the <a href="https://chat.m-labs.hk/" target="_blank" rel="noopener noreferrer">Mattermost chat</a>, on IRC #m-labs on OFTC, or on <a href="https://forum.m-labs.hk/" rel="noopener noreferrer" target="_blank">the forum</a>.
|
||||
<p itemprop="description">
|
||||
Our open source projects such as ARTIQ have an active user community. Get and offer help on the <a href="https://chat.m-labs.hk/" target="_blank" rel="noopener noreferrer" itemprop="url">Mattermost chat</a>, on IRC #m-labs on OFTC, or on <a href="https://forum.m-labs.hk/" rel="noopener noreferrer" target="_blank" itemprop="url">the forum</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
{% extends '_base.html' %}
|
||||
|
||||
{% block links %}
|
||||
<link rel="preload" href="images/hero@2x.png" as="image" >
|
||||
{% endblock %}
|
||||
|
||||
{% block hero %}
|
||||
|
||||
@ -11,7 +14,7 @@
|
||||
|
||||
<div class="col-12 text-center">
|
||||
|
||||
<h1>Open tools for open physics.</h1>
|
||||
<h1 itemprop="headline">Open tools for open physics.</h1>
|
||||
|
||||
<img src="{{ get_url(path='images/ion@2x.png', cachebust=true) }}" height="12" alt="ion">
|
||||
|
||||
@ -34,14 +37,15 @@
|
||||
|
||||
<div class="col-12">
|
||||
|
||||
<div class="card shadow mt-3 mb-3">
|
||||
<div class="card shadow mt-3 mb-3" itemscope itemtype="https://schema.org/Poster">
|
||||
|
||||
<div class="card-body p-3 p-md-5 card-artiq">
|
||||
|
||||
<div class="col-12 col-md-6 ps-0 pe-0">
|
||||
|
||||
<h5 class="card-title">ARTIQ</h5>
|
||||
<h5 class="card-title" itemprop="headline">ARTIQ</h5>
|
||||
|
||||
<div class="desc-wrapper" itemprop="description">
|
||||
<p class="card-text pt-3">
|
||||
ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a leading-edge control system for quantum information experiments, developed in partnership with a growing number of research institutions worldwide.
|
||||
</p>
|
||||
@ -49,11 +53,12 @@
|
||||
<p class="card-text pt-3 pb-3">
|
||||
The system features a high-level programming language that helps describe complex experiments, which is compiled and executed on dedicated hardware with nanosecond timing resolution and sub-microsecond latency.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<a href="{{ get_url(path='@/experiment-control/place-order.md') }}" class="btn btn-primary btn-inversed btn-lg">Order hardware</a>
|
||||
<a href="https://m-labs.hk/artiq/manual/" class="btn btn-primary btn-lg">Manual</a>
|
||||
<a href="https://forum.m-labs.hk" class="btn btn-primary btn-lg">Forum</a>
|
||||
<a href="{{ get_url(path='@/experiment-control/artiq.md') }}" class="btn btn-primary btn-lg">More...</a>
|
||||
<a href="{{ get_url(path='@/experiment-control/place-order.md') }}" class="btn btn-primary btn-inversed btn-lg" itemprop="url">Order hardware</a>
|
||||
<a href="https://m-labs.hk/artiq/manual/" class="btn btn-primary btn-lg" itemprop="url">Manual</a>
|
||||
<a href="https://forum.m-labs.hk" class="btn btn-primary btn-lg" itemprop="url">Forum</a>
|
||||
<a href="{{ get_url(path='@/experiment-control/artiq.md') }}" class="btn btn-primary btn-lg" itemprop="url">More...</a>
|
||||
<div class="btn-group download-selector" >
|
||||
<a class="btn btn-primary btn-lg d-inline-flex" href="https://nixbld.m-labs.hk/job/artiq/extra/msys2-offline-installer/latest/download/1">
|
||||
<img src="/images/icons/icon-windows.svg" class="d-inline-block align-self-center mx-1" style="height: 1rem" alt="windows">
|
||||
@ -64,15 +69,25 @@
|
||||
<span>stable</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu shadow dropdown-menu-end">
|
||||
<li>
|
||||
<a class="dropdown-item" href="https://nixbld.m-labs.hk/job/artiq/extra/msys2-offline-installer/latest/download/1">
|
||||
ARTIQ-8 (stable) for Windows
|
||||
<li itemscope itemtype="https://schema.org/SoftwareApplication">
|
||||
<a class="dropdown-item" href="https://nixbld.m-labs.hk/job/artiq/extra/msys2-offline-installer/latest/download/1" itemprop="downloadUrl">
|
||||
<span itemprop="softwareVersion"><span itemprop="name">ARTIQ</span>-8 (stable) for <span itemprop="operatingSystem">Windows</span></span>
|
||||
</a>
|
||||
<div hidden itemprop="offers" itemtype="https://schema.org/Offer" itemscope>
|
||||
<div itemprop="price">
|
||||
0
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item" href="https://nixbld.m-labs.hk/job/artiq/extra-beta/msys2-offline-installer/latest/download/1">
|
||||
ARTIQ-9 (beta) for Windows
|
||||
<li itemscope itemtype="https://schema.org/SoftwareApplication">
|
||||
<a class="dropdown-item" href="https://nixbld.m-labs.hk/job/artiq/extra-beta/msys2-offline-installer/latest/download/1" itemprop="downloadUrl">
|
||||
<span itemprop="softwareVersion"><span itemprop="name">ARTIQ</span>-9 (beta) for <span itemprop="operatingSystem">Windows</span></span>
|
||||
</a>
|
||||
<div hidden itemprop="offers" itemtype="https://schema.org/Offer" itemscope>
|
||||
<div itemprop="price">
|
||||
0
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -90,22 +105,24 @@
|
||||
|
||||
<div class="col-12">
|
||||
|
||||
<div class="card shadow mt-3 mb-3">
|
||||
<div class="card shadow mt-3 mb-3" itemscope itemtype="https://schema.org/Poster">
|
||||
|
||||
<div class="card-body p-3 p-md-5 card-jobs">
|
||||
|
||||
<div class="col-12 col-md-6 ps-0 pe-0">
|
||||
|
||||
<h5 class="card-title">Jobs</h5>
|
||||
<h5 class="card-title" itemprop="headline">Jobs</h5>
|
||||
|
||||
<div class="desc-wrapper" itemprop="description">
|
||||
<p class="card-text pt-3">
|
||||
We are always looking for talented people to join our team and help us deliver the systems that enable the experimental quantum research of tomorrow.
|
||||
</p>
|
||||
<p class="card-text pt-3">
|
||||
If you are good at software, electronics or photonics, and physics makes you tick, then you should get in touch. Locations in Hong Kong and Manila available.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<a href="{{ get_url(path='@/about-us/jobs.md') }}" class="btn btn-primary btn-lg">Find out more...</a>
|
||||
<a href="{{ get_url(path='@/about-us/jobs.md') }}" class="btn btn-primary btn-lg" itemprop="url">Find out more...</a>
|
||||
|
||||
</div>
|
||||
|
||||
@ -121,14 +138,15 @@
|
||||
|
||||
<div class="col-12">
|
||||
|
||||
<div class="card shadow mt-3 mb-3">
|
||||
<div class="card shadow mt-3 mb-3" itemscope itemtype="https://schema.org/Poster">
|
||||
|
||||
<div class="card-body p-3 p-md-5 card-gateware">
|
||||
|
||||
<div class="col-12 col-md-6 ps-0 pe-0">
|
||||
|
||||
<h5 class="card-title">Gateware and system-on-chip design</h5>
|
||||
<h5 class="card-title" itemprop="headline">Gateware and system-on-chip design</h5>
|
||||
|
||||
<div class="desc-wrapper" itemprop="description">
|
||||
<p class="card-text pt-3">
|
||||
Traditional gateware design with Verilog and VHDL is well known to be tedious and inefficient. M-Labs have developed Migen, a Python-based HDL and toolbox that addresses many of their issues and makes gateware design more productive.
|
||||
</p>
|
||||
@ -136,8 +154,9 @@
|
||||
<p class="card-text pt-3 pb-3">
|
||||
Built on Migen, MiSoC provides a high performance, flexible and lightweight solution to build system-on-chips for various applications.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<a href="{{ get_url(path='@/gateware/migen.md') }}" class="btn btn-primary btn-lg">Read more...</a>
|
||||
<a href="{{ get_url(path='@/gateware/migen.md') }}" class="btn btn-primary btn-lg" itemprop="url">Read more...</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
{% extends 'section.html' %}
|
||||
|
||||
|
||||
{% block deferred_styles %}
|
||||
{{ super() }}
|
||||
{% block styles %}
|
||||
<link rel="stylesheet" href="{{ get_url(path='css/bootstrap-5.3.0.min.css', cachebust=true) }}">
|
||||
<link rel="stylesheet" href="{{ get_url(path='css/styles.css', cachebust=true) }}">
|
||||
<link rel="stylesheet" href="{{ get_url(path='css/order-hardware.css', cachebust=true) }}">
|
||||
{% endblock %}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
{% extends 'section.html' %}
|
||||
|
||||
{% block styles %}
|
||||
{{ super() }}
|
||||
<style>
|
||||
h5 {
|
||||
margin-bottom: 2rem!important;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
{% block main %}
|
||||
|
||||
<main class="container {% block maincss %}{% endblock %}">
|
||||
<main class="container {% block maincss %}{% endblock %}" xmlns="http://www.w3.org/1999/html">
|
||||
|
||||
<div class="row">
|
||||
{% block main_content %}
|
||||
@ -14,26 +14,28 @@
|
||||
{% set publications = load_data(path=page.extra.data, format="yaml") -%}
|
||||
{% for publication in publications %}
|
||||
<div class="col">
|
||||
<div class="card shadow h-100" >
|
||||
<div class="card shadow h-100" itemscope itemtype="https://schema.org/ScholarlyArticle">
|
||||
<div class="card-body">
|
||||
<strong class="card-title">{{ publication.title | safe }}</strong>
|
||||
<strong class="card-title" itemprop="headline">{{ publication.title | safe }}</strong>
|
||||
{% if publication.authors.short or publication.authors.full %}
|
||||
<p class="card-text">
|
||||
<span itemprop="author">
|
||||
{{ publication.authors.short | safe }}
|
||||
<span class="collapse" id="viewdetails{{ publication.title | slugify | truncate(length=20, end="")}}">
|
||||
{{ publication.authors.full }}
|
||||
</span>
|
||||
</span>
|
||||
<a data-bs-toggle="collapse" class="hide-expanded" data-bs-target="#viewdetails{{ publication.title | slugify | truncate(length=20, end="") }}"> ...more</a>
|
||||
<a data-bs-toggle="collapse" class="show-expanded" data-bs-target="#viewdetails{{ publication.title | slugify | truncate(length=20, end="") }}"><br>less</a>
|
||||
</p>
|
||||
{% else %}
|
||||
<p class="card-text">{{ publication.authors }}</p>
|
||||
<p class="card-text" itemprop="author">{{ publication.authors }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-footer border-light-subtle">
|
||||
{% for link in publication.links %}
|
||||
{% if link.path %}
|
||||
<a href="{{link.path}}" class="card-link">{{link.name}}</a>
|
||||
<a href="{{link.path | safe}}" class="card-link" itemprop="archivedAt">{{link.name}}</a>
|
||||
{% else %}
|
||||
<div class="card-link d-inline">{{link.name}}</div>
|
||||
{% endif %}
|
||||
|
@ -1,23 +1,23 @@
|
||||
<div class="{% if css %}{{ css }}{% else %}col-12 col-md-4{% endif %} mb-4">
|
||||
|
||||
<div class="{% if not rmcard %}card shadow{% endif %} h-100">
|
||||
<div class="{% if not rmcard %}card shadow{% endif %} h-100" itemscope itemtype="https://schema.org/Thing">
|
||||
|
||||
{% if not imgbottom %}
|
||||
|
||||
{% if src %}
|
||||
<div class="px-auto pt-4">
|
||||
<img src="{{ get_url(path=src, cachebust=true) }}" width="40px">
|
||||
<img src="{{ get_url(path=src, cachebust=true) }}" width="40px" itemprop="image">
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="card-body">
|
||||
{% if title %}
|
||||
<div class="card-title">
|
||||
<div class="card-title" itemprop="name">
|
||||
<h5 class="mb-0">{{ title }}</h5>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div {% if sameheight %}style="min-height: {{ sameheight }}px"{% endif%}>
|
||||
<div {% if sameheight %}style="min-height: {{ sameheight }}px"{% endif%} itemprop="description">
|
||||
{{ body | markdown | safe }}
|
||||
</div>
|
||||
|
||||
@ -27,18 +27,18 @@
|
||||
|
||||
<div class="card-body">
|
||||
{% if title %}
|
||||
<div class="card-title">
|
||||
<div class="card-title" itemprop="name">
|
||||
<h5 class="mb-0">{{ title }}</h5>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{{ body | markdown | safe }}
|
||||
<span itemprop="description">{{ body | markdown | safe }}</span>
|
||||
|
||||
</div>
|
||||
|
||||
{% if src %}
|
||||
<div class="">
|
||||
<img src="{{ get_url(path=src, cachebust=true) }}" class="card-img img-fluid">
|
||||
<img src="{{ get_url(path=src, cachebust=true) }}" class="card-img img-fluid" itemprop="image">
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
@ -1,24 +1,24 @@
|
||||
{% if position == "left" %}
|
||||
|
||||
<div class="card mb-3 shadow" style="max-width: 80%;margin-right: 20%;">
|
||||
<div class="card mb-3 shadow" style="max-width: 80%;margin-right: 20%;" itemscope itemtype="https://schema.org/Grant">
|
||||
<div class="row g-0">
|
||||
<div class="col-md-4 funding-logo-start d-flex p-1 justify-content-center">
|
||||
{% if logo %}
|
||||
{% if logo_link %}<a href="{{ logo_link }}" class="align-self-center">{% endif %}
|
||||
<img src="{{ logo }}" class="img-fluid rounded" alt="{{ logo_alt }}"/>
|
||||
{% if logo_link %}<a href="{{ logo_link | safe }}" class="align-self-center" itemprop="url">{% endif %}
|
||||
<img src="{{ logo | safe }}" class="img-fluid rounded" alt="{{ logo_alt }}" itemprop="image"/>
|
||||
{% if logo_link %}</a>{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="card-body">
|
||||
{% if title %}<h5 class="card-title">{{ title | markdown | safe }}</h5>{% endif %}
|
||||
{% if title %}<h5 class="card-title" itemprop="sponsor">{{ title | markdown | safe }}</h5>{% endif %}
|
||||
{% if icon %}
|
||||
<span class="badge bg-transparent position-absolute top-0 start-100 translate-middle-x">
|
||||
<img src="{{ icon }}" alt="{{ icon }}" class="rounded"
|
||||
<img src="{{ icon | safe }}" alt="{{ icon }}" class="rounded"
|
||||
style="height: 2rem;"/>
|
||||
</span>
|
||||
{% endif %}
|
||||
<p class="card-text">{{ body | markdown | safe }}</p>
|
||||
<div class="card-text" itemprop="description">{{ body | markdown | safe }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -26,24 +26,24 @@
|
||||
|
||||
{% elif position == "right" %}
|
||||
|
||||
<div class="card mb-3 shadow" style="max-width: 80%;margin-left: 20%;">
|
||||
<div class="card mb-3 shadow" style="max-width: 80%;margin-left: 20%;" itemscope itemtype="https://schema.org/Grant">
|
||||
<div class="row g-0">
|
||||
<div class="col-md-8">
|
||||
<div class="card-body">
|
||||
{% if title %}<h5 class="card-title text-end">{{ title | markdown | safe }}</h5>{% endif %}
|
||||
{% if title %}<h5 class="card-title text-end" itemprop="sponsor">{{ title | markdown | safe }}</h5>{% endif %}
|
||||
{% if icon %}
|
||||
<span class="badge bg-transparent position-absolute top-0 start-0 translate-middle-x">
|
||||
<img src="{{ icon }}" alt="{{ icon }}" class="rounded"
|
||||
<img src="{{ icon | safe }}" alt="{{ icon }}" class="rounded"
|
||||
style="height: 2rem;"/>
|
||||
</span>
|
||||
{% endif %}
|
||||
<p class="card-text">{{ body | markdown | safe }}</p>
|
||||
<div class="card-text" itemprop="description">{{ body | markdown | safe }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 funding-logo-end d-flex p-1 justify-content-center">
|
||||
{% if logo %}
|
||||
{% if logo_link %}<a href="{{ logo_link }}" class="align-self-center">{% endif %}
|
||||
<img src="{{ logo }}" class="img-fluid rounded" alt="{{ logo_alt }}"/>
|
||||
{% if logo_link %}<a href="{{ logo_link | safe }}" class="align-self-center" itemprop="url">{% endif %}
|
||||
<img src="{{ logo | safe }}" class="img-fluid rounded" alt="{{ logo_alt }}" itemprop="image" />
|
||||
{% if logo_link %}</a>{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
@ -52,12 +52,12 @@
|
||||
|
||||
{% else %}
|
||||
|
||||
<div class="card mb-3 shadow-sm" style="max-width: 100%;">
|
||||
<div class="card mb-3 shadow-sm" style="max-width: 100%;" itemscope itemtype="https://schema.org/Poster">
|
||||
<div class="row g-0">
|
||||
<div class="col-md-12">
|
||||
<div class="card-body">
|
||||
{% if title %}<h4 class="card-title text-center">{{ title | markdown | safe }}</h4>{% endif %}
|
||||
<p class="card-text">{{ body | markdown | safe }}</p>
|
||||
{% if title %}<h4 class="card-title text-center" itemprop="headline">{{ title | markdown | safe }}</h4>{% endif %}
|
||||
<div class="card-text" itemprop="description">{{ body | markdown | safe }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user
What happens on intl and .ph?
The
-u
option in zola build/serve overrides it, so I updated nix-scripts to build a website for .ph as well (intl already has it)