function onNode( node, idx, parent ) {
			var comments;
			var comment;
			var offset;
			var prev;
			var code;

			if ( node.lang === 'javascript' || node.lang === 'js' ) {
				// Check for the first code block in the "Usage" section, as this, by convention, should contain a single `require` statement documenting how to import a package...
				if ( !FIRST ) {
					prev = parent.children[ idx-1 ];
					if (
						prev &&
						prev.type === 'heading' &&
						prev.children &&
						prev.children[ 0 ] &&
						prev.children[ 0 ].value === 'Usage'
					) {
						// Cache the node's value, as this will be prepended to subsequent code blocks and allow evaluation of code blocks for doctesting:
						FIRST = node.value;
					} else {
						// Keep visiting node's until the find the first code block containing the `require` statement:
						return;
					}
				}
				// Look for HTML comments immediately preceding a code block which may contain ESLint configuration...
				idx -= 1;
				prev = parent.children[ idx ];
				comments = [];
				while ( prev && prev.type === 'html' ) {
					comment = transformHTML( prev.value );
					if ( !comment ) {
						break;
					}
					if ( comment === '/* eslint-skip */' ) {
						return;
					}
					comments.unshift( comment );
					idx -= 1;
					prev = parent.children[ idx ];
				}
				offset = comments.length;

				// Prepend main require for subsequent code blocks:
				if ( !contains( node.value, FIRST ) ) {
					comments.push( '/* eslint-disable stdlib/require-order */' );
					comments.push( FIRST+'\n' );
				}
				comments.push( node.value );
				code = comments.join( '\n' );

				// Lint the code block...
				awaitSync( eslint.lintText( code ).then( onLint ) );
			}

			/**
			* Callback invoked upon linting a code block.
			*
			* @private
			* @param {ObjectArray} results - lint results
			*/
			function onLint( results ) {
				var result;
				var msg;
				var str;
				var i;
				var j;
				for ( i = 0; i < results.length; i++ ) {
					result = results[ i ];
					result.filePath = file.path || result.filePath;
					for ( j = 0; j < result.messages.length; j++ ) {
						msg = result.messages[ j ];
						str = '';
						str += (msg.line-offset) + ':' + msg.column;
						str += '   ';
						if ( msg.severity === 2 ) {
							str += 'error';
						} else {
							str += 'warning';
						}
						str += '   ';
						str += msg.message;
						str += '   ';
						str += msg.ruleId;
						file.message( str, node );
					}
				}
			}
		}
Callback invoked upon encountering a code block.

@private
@param {Node} node - AST node
@param {number} idx - position of node in parent
@param {Node} parent - parent AST node
@returns {void}