Skip to content

Instantly share code, notes, and snippets.

JOHN YUAN john-yuan

Block or report user

Report or block john-yuan

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View sss.sh
#!/bin/sh
readonly SERVER_PORT="8388"
readonly SERVER_PASS="your_password"
sudo yum install git
sudo yum install python-setuptools && easy_install pip
sudo pip install git+https://github.com/shadowsocks/shadowsocks.git@master
firewall-cmd --permanent --zone=public --add-port=${SERVER_PORT}/tcp
@john-yuan
john-yuan / parseObjectPath.js
Created Jul 13, 2019
A function to parse object path in JSON.
View parseObjectPath.js
/**
* Parse the property path string.
*
* @param {string} path The property path.
* @returns {string[]} Returns the array of path.
*/
function parseObjectPath(path) {
var i = 0;
var l = path.length;
var ch;
View formatPrice.js
/**
* 格式化价格数字
*
* @example
* // 123,456.00
* formatPrice(123456);
*
* @param {number} price 价格数字
* @param {string} [separator] 可选的分隔符号,默认为英文逗号 `,`
* @returns {string} 返回格式化后的价格字符串。
View buildCalendarView.js
/**
* 获取指定月份日历视图中的 42 个日期对象。
*
* @param {number} year 完整的年份数字,如 `2019` 即代表 2019 年。
* @param {number} month 月份数字,如 `11` 即代表 11 月。
* @param {number} [startWeekDay=0] 可选的参数,默认为 `0`(星期日),表示日历中的第一列为星期几(一般为星期日或者星期一)。其中 `0` 表
* 示星期日,`1` 表示星期一,后面以此类推。
* @returns {Date[]} 返回一个数组,包含 42 个 `Date` 对象。
*/
function getCalendarDateList(year, month, startWeekDay) {
View domClassUtils.js
/**
* 将值转换为字符串并移除首尾空白字符
*
* @param {any} value 需要转换的值
* @returns {string}
*/
function toTrimedString(value) {
if (typeof value !== 'string') {
if (value === null || value === undefined) {
value = '';
@john-yuan
john-yuan / getCalendarDateList.js
Last active Jun 15, 2019
获取指定月份日历视图中的 42 个日期对象。
View getCalendarDateList.js
/**
* 获取指定月份日历视图中的 42 个日期对象。
*
* @param {number} year 完整的年份数字,如 `2019` 即代表 2019 年。
* @param {number} month 月份数字,如 `11` 即代表 11 月。
* @param {number} [startWeekDay=0] 可选的参数,默认为 `0`(星期日),表示日历中的第一列为星期几(一般为星期日或者星期一)。其中 `0` 表
* 示星期日,`1` 表示星期一,后面以此类推。
* @returns {Date[]} 返回一个数组,包含 42 个 `Date` 对象。
*/
function getCalendarDateList(year, month, startWeekDay) {
View colorConverter.js
/**
* Convert rgb formatted color string to hash formatted color string
*
* @example
* // @returns #ff00ff
* rgb2hash('rgb(255, 0, 255)');
*
* @param {string} rgbColorStr The rgb formatted color string
View filterCopy.js
/**
* 复制数据结构定义(definition)中指定的内容
*
* @param {Object.<string, *>} definition 数据结构定义
* @param {Object.<string, *>} dataSource 数据源
* @param {Object.<string, *>} [options] (可选)附加选项
* @param {any} [options.defaultObject=null] (可选)当数据源中没有定义中的对象时使用的默认值
* @param {any} [options.defaultArray=[]] (可选)当数据源中没有定义中的数组时使用的默认值
* @returns {Object.<string, *>} 返回过滤后的数据
*/
View MainDomainCrossTabNotification.js
/**
* 主域名跨标签轻量级事件通知机制
*
* 主要用于具有相同主域名的多个浏览器标签之间的事件通知。比如现在浏览器中有两个标签,
* 第一个标签的域名为: site1.example.com;第二个标签的域名为:site2.example.com。
* 两个标签中都可以进行登录操作,但在登录之后需要通知另一个标签。此时便可以使用这个类。
*
* 注意:
*
* 1. 这个类使用 cookie 作为通信媒介
View onceTransitionEnd.js
var onceTransitionEnd = function (node, time, callback) {
var finished = false;
var timer = setTimeout(listener, time + 50);
var listener = function () {
if (finished === false) {
removeListener();
node = null;
time = null;
listener = null;
removeListener = null;
You can’t perform that action at this time.