Skip to content

Instantly share code, notes, and snippets.

View daformat's full-sized avatar

Mathieu Jouhet daformat

View GitHub Profile
@daformat
daformat / wikipedia-extract-img2md.js
Last active August 29, 2015 14:01
Extract images from current wikipedia page to markdown.
(function(){
var $t = $('.thumbcaption'),
$i =$('.image img'),
r="", md, i;
for(i=0; i < $t.length; i++){
r+=("![" + $($t[i]).text().replace(/(\r\n|\n|\r)/gm,"")+"]("+$($i[i]).attr('src').replace(/(\/thumb\/)/gm, "/").replace(/\.(png|svg|jpg|jpeg|bmp|gif)\/.*$/gm, ".$1")+")\n" )
}
md = r+'\nImages from ["'+$('#firstHeading').text()+'" on wikipedia]'+'('+document.location.href+')\n';
@daformat
daformat / extract-urls.sh
Last active January 3, 2017 10:54
Extract any url found in input URL (the shell-noob way)
#!/bin/zsh
echo "Url to extract values from:";
read TMPCURLURL;
RESULT=`curl -L $TMPCURLURL`;
# Extract urls within double quotes
echo $RESULT | grep -oE "\"http://.*\"" | cut -d " " -f1 | cut -d '"' -f2;
# Extract urls within single quotes
echo $RESULT | grep -oE "'http://.*'" | cut -d " " -f1 | cut -d "'" -f2
@daformat
daformat / extract-LegifranceToc-Json.js
Last active January 10, 2017 04:09
[data.gouv.fr] - Extract JSON formatted table of content for any given french legal code (Légifrance's Codes en vigueur)
// Extract JSON table of content from any given french Legal code
// ==============================================================
// author: @daformat <mat.jouhet[at][google's mail service].com>
// lastmod: 2017/01/10
//
// Usage:
// ------
// Execute in javascript console while browsing the toc you're interested in
// see comments if you need to tweak anything.
//
@daformat
daformat / basic-transliterate.js
Last active February 14, 2017 18:12
A basic transliteration function
/* Basic transliteration helper */
function transliterate(str) {
return str.replace(/[ÀÁÂÃÄÅ]/g, 'A')
.replace(/[Æ]/g, 'AE')
.replace(/[Ç]/g, 'C')
.replace(/[ÈÉÊË]/g, 'E')
.replace(/[ÌÍÎÏ]/g, 'I')
.replace(/[Ñ]/g, 'N')
.replace(/[ÒÓÔÕÖ]/g, 'O')
.replace(/[Œ]/g, 'OE')
@daformat
daformat / ga-realtime-visitorcount-beeper.js
Last active June 9, 2017 10:31
Beep according to the realtime visitor count on Google Analytics
/*
This is more a simple and naive proof of concept than anything
it's based on [this answer](https://stackoverflow.com/a/41077092/1358317)
on stackoverflow.
*/
(function() {
// Create the audio context
var audioCtx = new(window.AudioContext || window.webkitAudioContext)();
@daformat
daformat / utf-spaces-test.js
Last active March 6, 2018 04:01
Testing which utf spaces matches against which regular expression
// Spaces information was found on http://jkorpela.fi/chars/spaces.html
// and https://en.wikipedia.org/wiki/Tab_key#Unicode
{
// Display booleans or ✅ ❌ emojis
const useEmojiForBooleans = true;
// Spaces are to be tested against the following regular expressions
const testRegexps = [
/\s/, // White-space charcater class
@daformat
daformat / RootFontSizeSlider.js
Last active July 12, 2022 12:05
Create a html input slider to set the current html document root font-size
{
// Create a html input slider to set the current html document root font-size
// @returns the ref to the inserted DOM element
const createRootFontSizeSlider = (min = 8, max = 18) => {
const i = document.createElement("input")
i.type = "range"
i.min = `${min}`
i.max = `${max}`
i.step = "0.01"
i.style = "position: fixed; bottom: 24px; right: 24px; z-index: 2147483647"
@daformat
daformat / use-typed-translation.ts
Last active August 28, 2022 10:55
Foundation for a TS typed translation helper with autocomplete, intellisense, and type-checking
// -----------------------------------------------------
// This is the foundation for a typed translation helper
// with autocomplete, intellisense, and type-checking
// -----------------------------------------------------
// TS playground link:
// https://www.typescriptlang.org/play?#code/PTAEFpK6dv4fAUCUAVAFgSwM6l6AC4YCmoAZgPYCuAdgCYCGhWltFlATqI0QJ4AHEvSKdGtHABtmrdqUlDOKMAHcsxHtUKUAxpQC2AySUIkANPlqnJk3CQnmeDfkPA7SOgNZZaAc2UQiEHBIbBIAQBCjDjCoGxE2HgA2vQmjFjGIuI4KiScALoAFBiEhAI4AFwgOISMXpQAbnnkkpQqAHR6+sCMwACsABwAzAAMAwBMAOwAnMAAjEODQ3OTAJQB8RhtRJQuZO4kXqLi0iybJAp5OOGoUMcSp7J7eOIirb5YOoHgAaF-YSgAFSApCgQGgKIxe5SGTxQiCRy5ADknDIKi43j8oDUGhqnB8vjwXDiACMAFaHQh4HEYUB4gnXMHAJDwoSgADKhHxfgA8pxOdzfDzyZTQABeOlcgmgAA+oAA3qAkgAPCqSwX5NUCgl87W8kU6QigAC+N2BoPBAEFaHxQA1GLYRAJmLSqNxeB8muxKAajTzQAJOJRFCwSDgLD4dJJqPRpbQw6YnUGQ1gwxbmayyMKKYaAAougA8PIAfOLQP6SMrTAw8AAlQ5cegF+l+Cx6oX8qX6nOEYug0AAfgV-dAo6VAGlLKBPCQ+JRyOX8uABxUR2PR3KAAYAEnlk4AZOqCcbN2v11vdwBhNg6ZhoSj54gFg9H1vl32PjBFpLj-LF4snmuxpJDOc4Ljy+T9mqABE0FmiCYIQtQGROi6r6+HE
@daformat
daformat / dom-node-highlighter.js
Last active December 4, 2022 22:03
Highlight hovered DOM node à la DevTools
(function () {
/*
This code is mostly a quick and somewhat dirty demo to explore the concept of selecting DOM nodes visually
It's far from being bulletproof and the code could definitely be cleaner.
Copy paste it into your browser javascript console then click back inside the document or hide
the devtools so you can use the keyboard shorctus to update selection, otherwise the keystrokes
will be captured by the console.
The support for text selection is still quite basic but it's included for demonstration purposes.
/**
* Helper to get the flag emoji for a given country code
* @param {string} countryCode
* @returns {string}
*/
const getFlagEmoji = (countryCode) => {
const codePoints = countryCode
.toUpperCase()
.split('')
.map(char => 0x1f1a5 + char.charCodeAt(0));