This list without any logic in its order has been made after a lightning talk I gave at Creative Front-end Belgium.
- Service Workies (free)
- Codelabs PWA training (free)
This list without any logic in its order has been made after a lightning talk I gave at Creative Front-end Belgium.
ffmpeg -i smb-bump.wav -c:a flac -compression_level 8 -map_metadata -1 smb-bump.flac-c:a flac for FLAC.-compression_level 8: 0 is low compression (faster to decode), 12 is highest, but following this thread, you should never go above 8.| <!-- « un neu concepteurice », says Voice Over --> | |
| <p>Test 1 : nous recherchons un•e concepteur•rice & rédacteur•rice francophone.</p> | |
| <!-- « une concepteurice », says Voice Over `(content: '•'` is ignored) --> | |
| <p>Test 2 : nous recherchons un<span class="content-middot"></span>e concepteur<span class="content-middot"></span>rice & rédacteur<span class="content-middot"></span>rice francophone.</p> | |
| <!-- `alt is ignored by macOS Voice Over --> | |
| <p>Test 3 : nous recherchons <span alt="un concepteur et rédacteur, ou une conceptrice et rédactrice">un•e concepteur•rice & rédacteur•rice</span> francophone.</p> | |
| <!-- `aria-label` or `aria-labelledby` is ignored by macOS Voice Over --> |
Spatie’s Media Library requires FFmpeg in order to create video poster images.
sudo apt update;sudo apt install ffmpeg;ffmpeg -version should output FFmpeg version.| { | |
| "label": "Français", | |
| "keys": { | |
| "answer_no": "Non", | |
| "answer_region_no": "Je ne me suis rendu dans aucune des régions mentionnées ci-dessus", | |
| "answer_unknown": "Je ne sais pas", | |
| "answer_yes": "Oui", | |
| "answers_table_headline": "Vos réponses", | |
| "answers_table_hide_answers": "Cacher les réponses", | |
| "answers_table_print": "Imprimer", |
| if('serviceWorker' in navigator) { | |
| navigator.serviceWorker.getRegistrations().then(function(registrations) { | |
| for(let registration of registrations) { | |
| registration.unregister() | |
| } | |
| }) | |
| } |
| const MILLISECONDS_PER_MINUTES = 1000 * 60; | |
| const state = { | |
| now: (new Date()), | |
| intervalTimer: null, | |
| }; | |
| const mutations = { | |
| now(state) { | |
| state.now = new Date(); |
| // Embedded in https://twitter.com/meduzen/status/1369679118992871428 | |
| // OMG, lot of duplicated entries! | |
| const stepsNames = [ | |
| "step-basic", | |
| "step-basic", | |
| "step-basic", | |
| "step-specification", | |
| "step-specification", | |
| "step-specification", |
Array
.from(document.querySelectorAll('.js-file'))
.filter(el => !('fileUserViewed' in el.dataset) && el.dataset.fileDeleted == 'false')
.map(el => el.querySelector('.file-header').dataset.path)