This is the sequence of steps to follow to create a root gh-pages
branch. It is based on a question at [SO]
cd /path/to/repo-name
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
echo "My GitHub Page" > index.html
/** | |
reference - | |
https://developers.google.com/accounts/docs/OAuth2WebServer | |
https://code.google.com/apis/console/ | |
https://developers.google.com/+/api/latest/ | |
**/ | |
////handle all requests here | |
function doGet(e) { |
function spreadsheetToPDF(key) { | |
var oauthConfig = UrlFetchApp.addOAuthService("spreadsheets"); | |
var scope = "https://spreadsheets.google.com/feeds" | |
oauthConfig.setConsumerKey("anonymous"); | |
oauthConfig.setConsumerSecret("anonymous"); | |
oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope); | |
oauthConfig.setAuthorizationUrl("https://accounts.google.com/OAuthAuthorizeToken"); | |
oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken"); |
// console.lol by @RonnyOrbach, idea by Erez Avny | |
if (typeof console != 'undefined') console.lol = function(){ | |
var args = [].slice.call(arguments, 0); | |
args.unshift("LOL"); | |
args.push("LOLOLOL!") | |
console.log.apply(console, args); | |
}; |
function uploadXls(file) { | |
authorize(); | |
var key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // <-- developer key | |
var metadata = { title: file.getName() } | |
var params = {method:"post", | |
oAuthServiceName: "drive", | |
oAuthUseToken: "always", | |
contentType: "application/vnd.ms-excel", | |
contentLength: file.getBytes().length, | |
payload: file.getBytes() |
/** | |
* Function to convert a given Google Spreadsheet [Sheet] into a PDF. | |
* | |
* @param {string} key This is the Id of the Sheet to be converted bothe the DocsList.getId() and the SpreadsheetApp.getId() versions work | |
* @param {string} name [Optional] Intended Filename. If omitted, uses the Sheet filename. | |
* @param {object} options Settings object for the crafting of the PDF. Defaults to A4, no gridline print etc. <pre> | |
* { | |
* format:Enum, | |
* size:Enum, | |
* headers: Bool, |
function myFunction() { | |
var option = googleOAuth_(); | |
option.method = "post"; | |
option.contentType = 'application/json'; | |
option.payload = JSON.stringify({ | |
"query": | |
{ | |
"kinds": | |
[ |
You don't really need a framework or fancy cutting-edge JavaScript features to do two-way data binding. Let's start basic - first and foremost, you need a way to tell when data changes. Traditionally, this is done via an Observer pattern, but a full-blown implementation of that is a little clunky for nice, lightweight JavaScript. So, if native getters/setters are out, the only mechanism we have are accessors:
var n = 5;
function getN() { return n; }
function setN(newN) { n = newN; }
console.log(getN()); // 5
setN(10);
function exportSpreadsheet() { | |
//All requests must include id in the path and a format parameter | |
//https://docs.google.com/spreadsheets/d/{SpreadsheetId}/export | |
//FORMATS WITH NO ADDITIONAL OPTIONS | |
//format=xlsx //excel | |
//format=ods //Open Document Spreadsheet | |
//format=zip //html zipped | |