Skip to content

Instantly share code, notes, and snippets.

mocheng / Change in macrolib.xml
Created Jul 22, 2011
Customize YUIBuilder to integrate mustache
View Change in macrolib.xml
<copy file="${builddir}/files/moduletemplate.txt" tofile="@{file}" overwrite="true">
<filter token="CODE" value="${@{module}-@{file}-code}" />
<filter token="YUIVAR" value="${yui.variable}" />
<filter token="MODULE" value="@{module}" />
<filter token="DETAILS" value="${@{module}-details}" />
<filter token="VERSION" value="${component.version}" />
<filter token="MUSTACHE_TEMPLATE" value="${component.mustache.template}" />
mocheng / override
Created Jun 22, 2011
override object method and recover it.
View override
var foo =; = function() {
// do something = foo;;
mocheng / index.html
Created Jun 9, 2011
Simple MVC demo in Node.js
View index.html
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>MVC Demo</title>
{{name}} is {{title}}.
mocheng / escapeHTML.1.js
Created May 10, 2011
Different Implementation of escapeHTML
View escapeHTML.1.js
function escapeHTML(s) {
return s.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g,'&lt;').replace(/"/g, '&quot').replace(/'/g,'&#x27;').replace(/\//g,'&#x2F;');
mocheng / demoMouseOut.html
Created Feb 28, 2011
In YUI pre-2.8.0, there is no "mouseleave" event. So, it is pretty awkward to detect whether mouse is moving out of a element with nested children nodes.
View demoMouseOut.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="/yui/assets/yui.css?v=3" >
<script src=""</script>
<!-- Browser History Manager source file -->
<style type="text/css" media="screen">
View algorithm.php
$arr = array(
'Color' => array('Red', 'Blue'),
'Size' => array('Regular', 'Large'),
'Material' => array('Metalic', 'Nylon')
function magic_algorithm($arr){
function cartesian_product($arrays) {
mocheng / template.js
Created Feb 14, 2011
Simple template function to replace pattern in string with object properties or function returned value.
View template.js
* Simple template function.
* For each pattern in argument template, it is replaced with actual property from argument data.
* t('{greeting} world', {greeting: 'hello'}) === 'hello world'
* Sequence of property in argument data doesn't matter:
* t('{g} {x}', {g: '{o}', o: 'x'})) === '{o} {x}'
* t('{g} {x}', {o: 'x', g: '{o}'})) === '{o} {x}'
mocheng / getHost.js
Created Feb 13, 2011
With the help of regular expression, host name can be extracted from URL string in two lines.
View getHost.js
* extract host name from URL string.
function getHost(url) {
var m = url.match(/^https?:\/\/([^\/:\d]+)/);
return m && m[1];