Skip to content

Instantly share code, notes, and snippets.

View Jeffen's full-sized avatar

Jeffen Chen Jeffen

  • Vancouver
View GitHub Profile
@Jeffen
Jeffen / cloud-formation-cfn-init.yaml
Created April 27, 2020 07:47
AWS Cloud formation cfn-init example
AWSTemplateFormatVersion: '2010-09-09'
Description: AWS CloudFormation Sample Template for CFN Init
Parameters:
KeyName:
Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
Type: AWS::EC2::KeyPair::KeyName
ConstraintDescription: must be the name of an existing EC2 KeyPair.
SSHLocation:
Description: The IP address range that can be used to SSH to the EC2 instances
Type: String
@Jeffen
Jeffen / mat-mask-input.component.html
Created October 16, 2018 20:10
A mask input component for Angular material. Define your input mask with regex such as telephone number, email postal code etc.
<input type="text" [formControl]="_control" (keypress)="onKeyPress($event)" (blur)="onInputBlur($event)" (keydown)="onKeyDown($event)"
(input)="handleInputChange($event)" (paste)="handleInputChange($event)" (focus)="onInputFocus($event)" [readonly]="readonly"
[attr.required]="required" [attr.placeholder]="placeholder" />
@Jeffen
Jeffen / radio-button.html
Created October 16, 2018 20:07
Make input radio button looks like a pressable button. HTML syntax is using Angular framework.
<form class="form" [formGroup]="filterForm">
<fieldset class="form__options">
<legend class="form__question">Channel</legend>
<p class="form__answer" *ngFor="let item of options; let i=index;">
<input type="radio" id="ct{{item.key}}" value="{{item.key}}" formControlName="channel" hidden>
<label for="" tappable (click)="onChecked('channel', item.key)">
<title>{{item.name}}</title>
{{item.name}}
</label>
</p>
@Jeffen
Jeffen / nginx-angular-i18n.conf
Last active April 28, 2022 15:00
Angular Web App i18n Nginx Conf
map $http_accept_language $lang {
default en;
~*^fr fr;
~*^zh cn;
}
server {
# Other Configurations...
root /usr/share/nginx/i18n;
index index.html;
@Jeffen
Jeffen / detectmobilebrowser.conf
Created May 22, 2018 13:30
Detect Mobile Browser Nginx Conf
set $mobile_rewrite do_not_perform;
if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino") {
set $mobile_rewrite perform;
}
if ($http_user_agent ~* "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea