Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Hi! I cleaned up your code for you! #35

Open
wants to merge 1 commit into from

1 participant

@GunioRobot

Hi there!

This is WhitespaceBot. I'm an open-source robot that removes trailing white space in your code, and gives you a gitignore file if you didn't have one!

Why whitespace? Whitespace is an eyesore for developers who use text editors with dark themes. It's not a huge deal, but it's a bit annoying if you use Vim in a terminal. Really, I'm just a proof of concept - GitHub's V3 API allows robots to automatically improve open source projects, and that's really cool. Hopefully, somebody, maybe you!, will fork me and make me even more useful. My owner is funding a bounty to anybody who can add security fixing features to me.

I've only cleaned your most popular project, and I've added you to a list of users not to contact again, so you won't get any more pull requests from me unless you ask. If I'm misbehaving, please email my owner and tell him to turn me off! If this is pull request is of no use to you, please just ignore it.

Thanks!
WhiteSpacebot from Gun.io.

@spadgos

I for one welcome our new robot overlords.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Oct 28, 2011
  1. Remove whitespace [Gun.io WhitespaceBot]

    Gun.io Whitespace Robot authored
This page is out of date. Refresh to see the latest.
View
20 .gitignore
@@ -0,0 +1,20 @@
+# Compiled source #
+###################
+*.com
+*.class
+*.dll
+*.exe
+*.o
+*.so
+*.pyc
+
+# Logs and databases #
+######################
+*.log
+
+# OS generated files #
+######################
+.DS_Store*
+ehthumbs.db
+Icon?
+Thumbs.db
View
4 lib/wheat/data.js
@@ -80,7 +80,7 @@ function sandbox(snippet) {
stdout.on('data', function(data) {
snippet.output += data.toString();
});
-
+
var env = {
clear: function () { snippet.output = ""; },
require: fakeRequire,
@@ -229,7 +229,7 @@ var Data = module.exports = {
props.author = author;
if(props.categories != undefined){
- props.categories = props.categories.split(',').map(function(element){
+ props.categories = props.categories.split(',').map(function(element){
return QueryString.escape(element.trim());
});
}
View
78 lib/wheat/markdown.js
@@ -178,7 +178,7 @@ var _StripLinkDefinitions = function(text) {
} else if (m4) {
g_titles[m1] = m4.replace(/"/g,""");
}
-
+
// Completely remove the definition from the text
return "";
}
@@ -251,7 +251,7 @@ var _HashHTMLBlocks = function(text) {
text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm,hashElement);
// Special case just for <hr />. It was easier to make a special case than
- // to make the other regex more complicated.
+ // to make the other regex more complicated.
/*
text = text.replace(/
@@ -260,7 +260,7 @@ var _HashHTMLBlocks = function(text) {
[ ]{0,3}
(<(hr) // start tag = $2
\b // word break
- ([^<>])*? //
+ ([^<>])*? //
\/?>) // the matching end tag
[ \t]*
(?=\n{2,}) // followed by a blank line
@@ -318,13 +318,13 @@ var hashElement = function(wholeMatch,m1) {
// Undo double lines
blockText = blockText.replace(/\n\n/g,"\n");
blockText = blockText.replace(/^\n/,"");
-
+
// strip trailing blank lines
blockText = blockText.replace(/\n+$/g,"");
-
+
// Replace the element text with a marker ("~KxK" where x is its key)
blockText = "\n\n~K" + (g_html_blocks.push(blockText)-1) + "K\n\n";
-
+
return blockText;
};
@@ -390,7 +390,7 @@ var _EscapeSpecialCharsWithinTagAttributes = function(text) {
// don't conflict with their use in Markdown for code, italics and strong.
//
- // Build a regex to find HTML tags and comments. See Friedl's
+ // Build a regex to find HTML tags and comments. See Friedl's
// "Mastering Regular Expressions", 2nd Ed., pp. 200-201.
var regex = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--.*?--\s*)+>)/gi;
@@ -495,14 +495,14 @@ var writeAnchorTag = function(wholeMatch,m1,m2,m3,m4,m5,m6,m7) {
var link_id = m3.toLowerCase();
var url = m4;
var title = m7;
-
+
if (url == "") {
if (link_id == "") {
// lower-case and turn embedded newlines into spaces
link_id = link_text.toLowerCase().replace(/ ?\n/g," ");
}
url = "#"+link_id;
-
+
if (g_urls[link_id] != undefined) {
url = g_urls[link_id];
if (g_titles[link_id] != undefined) {
@@ -517,19 +517,19 @@ var writeAnchorTag = function(wholeMatch,m1,m2,m3,m4,m5,m6,m7) {
return whole_match;
}
}
- }
-
+ }
+
url = escapeCharacters(url,"*_");
var result = "<a href=\"" + url + "\"";
-
+
if (title != "") {
title = title.replace(/"/g,"&quot;");
title = escapeCharacters(title,"*_");
result += " title=\"" + title + "\"";
}
-
+
result += ">" + link_text + "</a>";
-
+
return result;
}
@@ -600,14 +600,14 @@ var writeImageTag = function(wholeMatch,m1,m2,m3,m4,m5,m6,m7) {
var title = m7;
if (!title) title = "";
-
+
if (url == "") {
if (link_id == "") {
// lower-case and turn embedded newlines into spaces
link_id = alt_text.toLowerCase().replace(/ ?\n/g," ");
}
url = "#"+link_id;
-
+
if (g_urls[link_id] != undefined) {
url = g_urls[link_id];
if (g_titles[link_id] != undefined) {
@@ -617,8 +617,8 @@ var writeImageTag = function(wholeMatch,m1,m2,m3,m4,m5,m6,m7) {
else {
return whole_match;
}
- }
-
+ }
+
alt_text = alt_text.replace(/"/g,"&quot;");
url = escapeCharacters(url,"*_");
var result = "<img src=\"" + url + "\" alt=\"" + alt_text + "\"";
@@ -631,9 +631,9 @@ var writeImageTag = function(wholeMatch,m1,m2,m3,m4,m5,m6,m7) {
title = escapeCharacters(title,"*_");
result += " title=\"" + title + "\"";
//}
-
+
result += " />";
-
+
return result;
}
@@ -643,7 +643,7 @@ var _DoHeaders = function(text) {
// Setext-style headers:
// Header 1
// ========
- //
+ //
// Header 2
// --------
//
@@ -727,7 +727,7 @@ var _DoLists = function(text) {
// paragraph for the last item in a list, if necessary:
list = list.replace(/\n{2,}/g,"\n\n\n");;
var result = _ProcessListItems(list);
-
+
// Trim any trailing whitespace, to put the closing `</$list_type>`
// up on the preceding line, to get it past the current stupid
// HTML block parser. This is a hack to work around the terrible
@@ -747,7 +747,7 @@ var _DoLists = function(text) {
// paragraph for the last item in a list, if necessary:
var list = list.replace(/\n{2,}/g,"\n\n\n");;
var result = _ProcessListItems(list);
- result = runup + "<"+list_type+">\n" + result + "</"+list_type+">\n";
+ result = runup + "<"+list_type+">\n" + result + "</"+list_type+">\n";
return result;
});
}
@@ -833,7 +833,7 @@ _ProcessListItems = function(list_str) {
var _DoCodeBlocks = function(text) {
//
// Process Markdown `<pre><code>` blocks.
-//
+//
/*
text = text.replace(text,
@@ -850,12 +850,12 @@ var _DoCodeBlocks = function(text) {
// attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
text += "~0";
-
+
text = text.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,
function(wholeMatch,m1,m2) {
var codeblock = m1;
var nextChar = m2;
-
+
codeblock = _EncodeCode( _Outdent(codeblock));
codeblock = _Detab(codeblock);
codeblock = codeblock.replace(/^\n+/g,""); // trim leading newlines
@@ -882,26 +882,26 @@ var hashBlock = function(text) {
var _DoCodeSpans = function(text) {
//
// * Backtick quotes are used for <code></code> spans.
-//
+//
// * You can use multiple backticks as the delimiters if you want to
// include literal backticks in the code span. So, this input:
-//
+//
// Just type ``foo `bar` baz`` at the prompt.
-//
+//
// Will translate to:
-//
+//
// <p>Just type <code>foo `bar` baz</code> at the prompt.</p>
-//
+//
// There's no arbitrary limit to the number of backticks you
// can use as delimters. If you need three consecutive backticks
// in your code, use four for delimiters, etc.
//
// * You can use spaces to get literal backticks at the edges:
-//
+//
// ... type `` `bar` `` ...
-//
+//
// Turns to:
-//
+//
// ... type <code>`bar`</code> ...
//
@@ -1004,7 +1004,7 @@ var _DoBlockQuotes = function(text) {
bq = bq.replace(/^[ \t]+$/gm,""); // trim whitespace-only lines
bq = _RunBlockGamut(bq); // recurse
-
+
bq = bq.replace(/(^|\n)/g,"$1 ");
// These leading spaces screw with <pre> content, so we need to fix that:
bq = bq.replace(
@@ -1016,7 +1016,7 @@ var _DoBlockQuotes = function(text) {
pre = pre.replace(/~0/g,"");
return pre;
});
-
+
return hashBlock("<blockquote>\n" + bq + "\n</blockquote>");
});
return text;
@@ -1075,14 +1075,14 @@ var _FormParagraphs = function(text) {
var _EncodeAmpsAndAngles = function(text) {
// Smart processing for ampersands and angle brackets that need to be encoded.
-
+
// Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:
// http://bumppo.net/projects/amputator/
text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;");
-
+
// Encode naked <'s
text = text.replace(/<(?![a-z\/?\$!])/gi,"&lt;");
-
+
return text;
}
View
4 lib/wheat/renderers.js
@@ -209,11 +209,11 @@ var Renderers = module.exports = {
},
function applyTemplate(err, articles, description, categories) {
if (err) { callback(err); return; }
-
+
var articlesForCategory = articles.reduce(function (start, element){
return element.categories && element.categories.indexOf(category) >= 0 ? start.concat(element) : start;
}, []);
-
+
Tools.render("index", {
articles: articlesForCategory,
description: description,
Something went wrong with that request. Please try again.