Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.DS_Store
.jekyll-metadata
_site/
.bundle
.DS_Store
.jekyll-metadata
bin
node_modules
vendor
3 changes: 3 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ baseurl: "/open-source-handbook"

exclude:
- bin
- CONTRIBUTING.md
- docs
- Gemfile*
- node_modules
- package.json
- Rakefile
- README.md
- script
Expand Down
25 changes: 25 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "open-source-handbook",
"private": true,
"scripts": {
"test": "script/test"
},
"devDependencies": {
"async": "^1.5.2",
"glob": "^7.0.5",
"ignore": "^3.1.3",
"js-yaml": "^3.6.1",
"remark-lint": "^4.0.1",
"remark-parse": "^1.0.0",
"remark-retext": "^2.0.0",
"remark-stringify": "^1.0.0",
"retext": "^3.0.0",
"retext-english": "^2.0.0",
"retext-equality": "^2.3.2",
"retext-readability": "^2.0.0",
"retext-simplify": "^2.0.0",
"to-vfile": "^1.0.0",
"unified": "^4.1.2",
"vfile-reporter": "^2.0.0"
}
}
3 changes: 3 additions & 0 deletions script/bootstrap
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ echo "==> Installing gem dependencies…"
bundle check --path vendor/gems 2>&1 > /dev/null || {
time bundle install --binstubs bin --path vendor/gems
}

echo "==> Installing node dependencies…"
npm install
3 changes: 2 additions & 1 deletion script/cibuild
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

set -e

export PATH="/usr/share/rbenv/shims:$PATH"
export PATH="/usr/share/rbenv/shims:/usr/local/share/nodenv/shims:$PATH"
export RBENV_VERSION="2.1.7-github"
export NODENV_VERSION="v0.10.21"
# clean out the ruby environment
export RUBYLIB=
export RUBYOPT=
Expand Down
1 change: 1 addition & 0 deletions script/test
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ set -e
script/build --config _config.yml,test/_config.yml
bundle exec rake
script/html-proofer
script/test-prose
61 changes: 61 additions & 0 deletions script/test-prose
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/usr/bin/env node

// Retext stuff
var unified = require('unified');

// Remark stuff
var parse = require('remark-parse');
var lint = require('remark-lint');
var remark2retext = require('remark-retext');
var stringify = require('remark-stringify');

// Util stuff
var report = require('vfile-reporter');
var glob = require('glob');
var fs = require('fs');
var async = require('async');
var yaml = require('js-yaml');
var jekyllConfig = yaml.safeLoad(fs.readFileSync('_config.yml', 'utf8'));
var ignore = require('ignore')().add(jekyllConfig["exclude"])

var options = {
// https://github.com/wooorm/remark-lint/blob/master/doc/rules.md
"lint": {
"list-item-indent": "space", // As the gods intended.
"maximum-line-length": false, // turn off line length linting
"no-html": false, // Sadly, need HTML for video embeds
"no-heading-punctuation": false,
"list-item-spacing": false,
},
"readability": {
"age": 18
},
"simplify": {
ignore: [
"modify",
"contribute",
"previous"
]
}
};

async.map(ignore.filter(glob.sync("**/*.md")), function(file, callback) {
fs.readFile(file, function(err, contents) {
unified()
.use(parse)
.use(lint, options["lint"])
// .use(remark2retext, unified()
// .use(require('retext-english'))
// .use(require('retext-simplify'), options["simplify"])
// .use(require('retext-equality'))
// .use(require('retext-readability'), options["readability"])
// )
.use(stringify)
.process(contents.toString(), function (err, result) {
result.filename = file;
callback(err, result);
});
});
}, function (err, results) {
console.log(report(results));
});