Noizio helps you to focus with a little ambient sound, whether it’s raindrops falling, the buzz of a coffee shop, or something else.
Noizio brings those sounds to the desktop in the form of a menubar app for your Mac or an iOS Mobile App.
The App allows you to mash up different sounds and adjust each with a slider.
okayNav aims to progressively collapse navigation links into an off-screen navigation, instead of doing it for all the links at the same time.
graylog allows you to centralize and aggregate all your log files for 100% visibility. Use their powerful query language to search through terabytes of log data to discover and analyze important information.
Perfect match, when you are maintaining multiple servers and what a team to have real-time access to collected data.
jQuery-Notebook is a simple, clean and elegant WYSIWYG rich text editor.
Available commands:
Chocolat.js enables you to display one or several images on the same page. You can group images via a link or use thumbnails.
The viewer can display images in full-page or in a block mode. The setup is responsive and only 10kb small in minified form.
1 2 3 4 5 6 7 8 9 |
.no-selection { -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Chrome/Safari/Opera */ -khtml-user-select: none; /* Konqueror */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /* IE/Edge */ user-select: none; /* non-prefixed version, currently not supported by any browser */ } |
Had to use this for one of my latest Syntax Highlighting tweaks, so that I can use an ordered list, line numbers and still be able to copy & paste the code :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
ol.amp_code { list-style:none; } ol.amp_code li { counter-increment:lineNumber; } ol.code li:before { position: absolute; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; color: #ccc; font-size: 0.8em; line-height:0.8em; content:counter(lineNumber); margin-left: -2.0em; } |
validate_file
issue.)target
and video
/audio
attributes.Again another Google AMP article, this time dealing with Syntax Highlighting. If you have a code centric website, this is important.
In one of my last articles I talked about a Generic Syntax Highlighter. This time I want to show you, how to add Syntax Highlighting with GeSHi to a custom template in AMP-WP.
Please read up on documentation, as I am not diving into every detail.
1 2 3 4 5 6 7 8 |
add_filter( 'amp_post_template_file', 'xyz_amp_set_custom_template', 10, 3 ); function xyz_amp_set_custom_template( $file, $type, $post ) { if ( 'single' === $type ) { $file = dirname( __FILE__ ) . '/templates/my-amp-template.php'; } return $file; } |
1 2 |
add_action( 'pre_amp_render_post', 'xyz_amp_add_custom_actions' ); add_action( 'amp_post_template_css', 'xyz_amp_my_additional_css_styles' ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
// Load phpQuery require ('my-libs/phpQuery/phpQuery.php'); // Load GesSHi require ('my-libs/geshi/geshi.php'); // Get AMP content and add it to phpQuery $doc = phpQuery::newDocumentHTML($this->get('post_amp_content')); $highlight = array(); // Loop through the code snippets (pre tags) foreach(pq('pre') as $snippet) { // Get classes of tag $class = pq($snippet)->attr("class"); // Check for Crayon Syntax Highlighter Class if (strpos($class, "lang:") !== false && strpos($class, "lang:default") === false) { preg_match("/lang:(?P<lang>\w+)/", $class, $catch); } else { // Fallback, if no language is detected $catch['lang'] = "php"; } // New Syntax Highlighter for each code snippet, with the correct language set // Storing for later stylesheet output. This makes also sure that stylesheets are only loaded once. $highlight[$catch['lang']] = new GeSHi(pq($snippet)->text() , $catch['lang']); // Uses Classes and no inlien styles $highlight[$catch['lang']]->enable_classes(); // Update code snippet $html = pq($snippet)->html($highlight[$catch['lang']]->parse_code()); } |
1 2 3 4 5 6 7 8 9 10 11 12 |
<style amp-custom> <?php $this->load_parts( array( 'style' ) ); ?><?php do_action( 'amp_post_template_css', $this ); // Load Stylesheets for highlighted languages foreach($highlight as $store){ echo $store->get_stylesheet(); } ?> </style> |
1 2 3 4 5 6 7 |
<div class="amp-wp-content"> <h1 class="amp-wp-title"><?php echo wp_kses_data( $this->get( 'post_title' ) ); ?></h1> <ul class="amp-wp-meta"> <?php $this->load_parts( apply_filters( 'amp_post_template_meta_parts', array( 'meta-author', 'meta-time', 'meta-taxonomy' ) ) ); ?> </ul> <?php echo $doc->html(); // amphtml content; no kses ?> </div> |
Really liking this, as it detaches the wireless connection from the lamp, that might fail at some point.
Light bulbs up to 40W are supported and will even be certified for outdoor usage.
emberlight provides Bluetooth, Wifi connectivity and a proximity sensor, all integrating into IFTTT and accessible through a REST Api.