Building a command-line AMP Validator
Purpose
This documents how to build the official AMP-HTML command-line AMP Validator on Mac OS X. Once built in this fashion it can then be executed from a OS X terminal session to validate candidate HTML files over the local file system or the web as follows:No HTML file passed to the program:
Valid HTML file passed to the program:$ node validate usage: validate <file.html or url>
$ node validate testdata/feature_tests/minimum_valid_amp.html PASS
Invalid HTML file passed to the program:
$ node validate testdata/feature_tests/empty.html FAIL empty.html:1:0 The mandatory tag 'html ⚡ for top-level html' is missing or incorrect.
(see [https://github.com/ampproject/amphtml/blob/master/spec/amp-html-format.md#ampd])References
- Development on AMP HTML
- AMP HTML  Validator Validator
- Validating outside the browser - command line tool #937 
 
 Dependencies and configurationHomebrewInstalling HomebrewSee: http://brew.sh/ 
 $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"Maintaining your Homebrew environmentSee GitHub Gist: pietergreyling/mybrew.sh 
 #!/bin/bash #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #-- desc: To clean up and verify your Homebrew setup. #-- exec: In a terminal session run: $ ./mybrew.sh clear echo "-- Updating your Homebrew installation at: " && brew --prefix sudo chown -R $(whoami):admin /usr/local brew update && brew upgrade echo "-- \$HOMEBREW_INSTALL: $HOMEBREW_INSTALL" brew prune brew doctor #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Node JS$ brew install nodeEdit /etc/hostsNot strictly initially necessary for the validator, but good not to forget: 
 127.0.0.1 ads.localhost iframe.localhostGoogle Protocol Buffers$ brew tap homebrew/versions $ brew install protobuf --c++11 $ brew link protobuf $ protoc --version libprotoc 2.6.1 $ python Python 2.7.11 (default, Dec 5 2015, 14:44:53) >> import google.protobuf . . . exit if import worked . . .Getting a local working copy of the AMP repository source$ cd my_amp_repo_work_directory $ git clone [https://github.com/ampproject/amphtml.git](https://github.com/ampproject/amphtml.git) $ cd amphtml $ npm installUpdating an existing AMP repository source copy$ cd my_amp_repo_work_directory/amphtml $ git pull origin master $ npm installBuilding the validator$ cd validator $ npm install $ sudo python ./build.py [[build.py getNodeJsCmd]] - entering ... [[build.py getNodeJsCmd]] - ... done [[build.py CheckPrereqs]] - entering ... [[build.py CheckPrereqs]] - ... done [[build.py InstallNodeDependencies]] - entering ... amp_validator@0.1.0 .../amphtml/validator ├── google-closure-compiler@20151015.0.0 ├── google-closure-library@20151015.0.0 └─┬ jasmine@2.3.2 ├── exit@0.1.2 ├─┬ glob@3.2.11 │ ├── inherits@2.0.1 │ └─┬ minimatch@0.3.0 │ ├── lru-cache@2.7.3 │ └── sigmund@1.0.1 └── jasmine-core@2.3.4 [[build.py InstallNodeDependencies]] - ... done [[build.py SetupOutDir]] - entering ... [[build.py SetupOutDir]] - ... done [[build.py GenValidatorPb2Py]] - entering ... [[build.py GenValidatorPb2Py]] - ... done [[build.py GenValidatorGeneratedJs]] - entering ... [[build.py GenValidatorGeneratedJs]] - ... done [[build.py CompileValidatorMinified]] - entering ... [[build.py CompileValidatorMinified]] - ... done [[build.py GenerateValidateBin]] - entering ... [[build.py GenerateValidateBin]] - ... done [[build.py RunSmokeTest]] - entering ... [[build.py RunSmokeTest]] - ... done [[build.py CompileValidatorTestMinified]] - entering ... [[build.py CompileValidatorTestMinified]] - ... success [[build.py CompileHtmlparserTestMinified]] - entering ... [[build.py CompileHtmlparserTestMinified]] - ... success [[build.py CompileParseCssTestMinified]] - entering ... [[build.py CompileParseCssTestMinified]] - ... success [[build.py GenerateTestRunner]] - entering ... [[build.py GenerateTestRunner]] - ... success [[build.py RunTests]] - entering ... Started ................................................................................... 83 specs, 0 failures Finished in 0.394 seconds [[build.py RunTests]] - ... successRunning the validator (dist/validate)
$ ls -alG dist/validate -rwxr-x--- 1 245040 Jan 21 14:47 dist/validate $ node dist/validate usage: validate <file.html or url>; $ node dist/validate testdata/feature_tests/minimum_valid_amp.html PASS $ node dist/validate testdata/feature_tests/empty.html FAIL empty.html:1:0 The mandatory tag 'html ⚡ for top-level html' is missing or incorrect. (see [https://github.com/ampproject/amphtml/blob/master/spec/amp-html-format.md#ampd]) . . .
Source -  https://github.com/ampproject/amphtml/blob/master/validator/docs/building_a_command_line_amp_validator_for_mac_os_x.md
 

ReplyDeleteHello,
we provide affordable and result-oriented SEO services, please give a chance to serve you.
Thanks
Admin: E07.net