Skip to content

Instantly share code, notes, and snippets.

View cedeber's full-sized avatar
🦀
Rustacean

Cédric Eberhardt cedeber

🦀
Rustacean
View GitHub Profile
@cedeber
cedeber / loaded.js
Created April 3, 2018 16:41
Page loaded
function pageLoaded() {
return new Promise(resolve => {
if (document.readyState === "complete") {
resolve();
} else {
window.addEventListener("load", () => {
resolve();
});
}
});
@cedeber
cedeber / ext.js
Created April 3, 2018 13:20
URL extension
const ext = url.slice(((url.lastIndexOf(".") - 1) >>> 0) + 2);
@cedeber
cedeber / tagged-selector.js
Created March 31, 2018 19:12
Tagged Selector
export default function $(strings, ...expressions) {
let selector = [strings[0]];
expressions.forEach((expr, i) => selector.push(expr, strings[i + 1]));
return document.querySelector(selector.join(""));
}
@cedeber
cedeber / lol-browser.js
Last active April 24, 2018 09:30
Detects IE/Edge < 17
const IEdgeMatches = /(Edge|Trident)\/(\d.)/i.exec(navigator.userAgent);
export default IEdgeMatches && parseInt(IEdgeMatches[2], 10) < 17;
@cedeber
cedeber / .editorconfig
Created March 16, 2018 08:27
Projects Configurations files
# Cross-editor coding style settings.
# See http://editorconfig.org/ for details.
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
@cedeber
cedeber / freemarker_implicit.ftl
Created February 22, 2018 10:08 — forked from jdiepeveen/freemarker_implicit.ftl
Magnolia CMS Freemarker implicit.
[#ftl]
[#-- @implicitly included --]
[#-- @ftlvariable name="content" type="info.magnolia.jcr.util.ContentMap" --]
[#-- @ftlvariable name="ctx" type="info.magnolia.context.MgnlContext" --]
[#-- @ftlvariable name="def" type="info.magnolia.rendering.template.configured.ConfiguredTemplateDefinition" --]
[#-- @ftlvariable name="state" type="info.magnolia.cms.core.AggregationState" --]
[#-- @ftlvariable name="i18n" type="info.magnolia.freemarker.MessagesWrapper" --]
[#-- @ftlvariable name="i18nAuthoring" type="info.magnolia.freemarker.MessagesWrapper" --]
[#-- @ftlvariable name="cms" type="info.magnolia.templating.freemarker.Directives" --]
@cedeber
cedeber / locale.js
Created February 21, 2018 15:34
Set locale from browser
const def = ["en", "fr", "de"];
let locale = navigator.language.indexOf("-") === -1
? navigator.language
: navigator.language.split("-")[0];
locale = def.indexOf(locale) === -1 ? def[0] : locale;
document.documentElement.lang = locale;
@cedeber
cedeber / ffmpeg.sh
Last active January 10, 2019 18:17
FFmpeg useful commands
# remove sound
ffmpeg -i input.mp4 -c copy -an output.mp4
# export first frame
ffmpeg -i input.mp4 -ss 0 -vframes 1 poster.png
# Resize
ffmpeg -i input.mp4 -filter:v scale=-1:720 -c:a copy output.mp4
ffmpeg -i input.mp4 -filter:v scale=-1:720 -c:a copy output.mp4
@cedeber
cedeber / image-hero.js
Created June 27, 2017 13:17
Image as Hero
(function() {
var image = document.getElementById("image-${content.@id}");
var imageTop = (function() {
var element = image, top = element.offsetTop;
while ((element = element.offsetParent) !== null && element !== document.body) { top += element.offsetTop; }
return top;
}());
image.style.height = (window.innerHeight - imageTop) + "px";
}());
@cedeber
cedeber / ckeditor.config.rich-text.js
Created May 1, 2017 22:00
CKEditor Configurations
/**
* External plugins added through the server-side FieldFactory are automatically registered.
* Other external plugins (e.g. client-only) may still be registered here (and subsequently added via config.extraPlugins).
*
* e.g. if your plugin resides in src/main/resources/VAADIN/js:
* CKEDITOR.plugins.addExternal("abbr", CKEDITOR.vaadinDirUrl + "js/abbr/");
*/
CKEDITOR.editorConfig = function ( config ) {
// MIRROR info.magnolia.ui.form.field.definition.RichTextFieldDefinition