Recently, GitHub introduced the change in how atx headers are parsed in Markdown files.
##Wrong
While this change follows the spec, it breaks many existing repositories. I took the README dataset which we created at source{d} and ran a simple
| #!/bin/sh | |
| # ARE YOU A VIMPLETON? DONT YOU WISH YOU HAD A RAD VIM SETUP. WELL LOOK NO FURTHER. INTRODUCTING, THE ULTIMATE VIM CONFIG. | |
| # FULLY ASYNCRHONOUS, NON BLOCKING VIM!!!! | |
| # Tested on Amazon Linux 2017 (and by extension RHEL and Fedora machines). | |
| # First install neovim | |
| wget https://gist.githubusercontent.com/Khalian/ebd345b418b6f42a0359b4c89961af4c/raw/a69a496caf247d40535bc194fa2f08923c63d072/install_neovim_to_amazonlinux.sh | |
| sh install_neovim_to_amazonlinux.sh |
| #!/bin/bash | |
| echo "\n\n--- Killing Stupid Adobe Auto Load Crap ---\n\n" | |
| launchctl unload -w /Library/LaunchAgents/com.adobe.AdobeCreativeCloud.plist | |
| launchctl unload -w /Library/LaunchAgents/com.adobe.AAM.Updater-1.0.plist | |
| echo "\n\n--- Done! ---\n\n" |
Recently, GitHub introduced the change in how atx headers are parsed in Markdown files.
##Wrong
While this change follows the spec, it breaks many existing repositories. I took the README dataset which we created at source{d} and ran a simple
| Originall From: Posted 2015-05-29 http://ubwg.net/b/full-list-of-ffmpeg-flags-and-options | |
| This is the complete list that’s outputted by ffmpeg when running ffmpeg -h full. | |
| usage: ffmpeg [options] [[infile options] -i infile]… {[outfile options] outfile}… | |
| Getting help: | |
| -h — print basic options | |
| -h long — print more options | |
| -h full — print all options (including all format and codec specific options, very long) |
| 'use strict'; | |
| const {readFileSync} = require('fs'); | |
| const {createServer} = require('http'); | |
| const {EventEmitter} = require('events'); | |
| let bufferIndex = -1; | |
| const buffers = [ | |
| readFileSync('1.jpg'), | |
| readFileSync('2.jpg'), | |
| readFileSync('3.jpg'), |
| var distribution = new Array(500); | |
| function setup() { | |
| createCanvas(500, 500); | |
| for (var i = 0; i < distribution.length; i++) { | |
| distribution[i] = floor(randomGaussian(random(height/4),random(width*2))); | |
| } | |
| } | |
| function draw() { |
| function setup() { | |
| //Canvas-Settings | |
| createCanvas(390, 390); | |
| background(0); | |
| //Variablen setzen | |
| rect_x = 10 | |
| rect_y = 10 | |
First, take a look at the ESLint rule documentation. Just skim it for now. It's very long and boring. You can come back to it later.
ESLint rules works on the AST (Abstract Syntax Tree) representation of the code. In short, this is a tree structure that describes the code in a very verbose form. ESLint walks this tree and rules can subscribe to be notified when it hits a specific node type, like a Literal type, which could be the "hello" part of const welcome = "hello";.
Go ahead and play around with some code in AST Explorer (Make sure the parser is espree). It's a great tool!
Here are some good articles on the subject (ignore the scaffolding parts):
Smooth transitioning US tour in the same vein as this example. Steps:
Some possible improvements:
| man() { | |
| env \ | |
| LESS_TERMCAP_mb=$(printf "\e[1;31m") \ | |
| LESS_TERMCAP_md=$(printf "\e[1;31m") \ | |
| LESS_TERMCAP_me=$(printf "\e[0m") \ | |
| LESS_TERMCAP_se=$(printf "\e[0m") \ | |
| LESS_TERMCAP_so=$(printf "\e[1;44;33m") \ | |
| LESS_TERMCAP_ue=$(printf "\e[0m") \ | |
| LESS_TERMCAP_us=$(printf "\e[1;32m") \ | |
| man "$@" |