├── .gitignore ├── .jshintignore ├── .jshintrc ├── README.md ├── blog ├── data.js ├── index.js ├── posts │ ├── .gitignore │ ├── 2009-the-year-of-the-cow-whats-coming-with-mootools.md │ ├── a-better-way-to-use-elements.md │ ├── a-magical-journey-into-the-base-fx-class.md │ ├── a-new-name-for-mootools.md │ ├── a-week-of-forging-an-overview.md │ ├── and-finally-the-blog-arrived.md │ ├── announcing-mootools-more-1-3.md │ ├── anyone-using-corebrowser-js.md │ ├── book-review-decouvrez-mootools-un-framework-javascript-pour-des-sites-dynamiques-et-interactifs.md │ ├── calling-all-plugins.md │ ├── contributing-to-mootools.md │ ├── dojo-and-mootools.md │ ├── enhanced-mootools-search-launched.md │ ├── events-with-mootools-element-class-delegation-and-pseudos.md │ ├── faces-of-mootools.md │ ├── get-friendly-with-the-natives.md │ ├── help-i-dont-know-javascript.md │ ├── help-us-help-you.md │ ├── javascript-challenge-1-review.md │ ├── javascript-challenge-1.md │ ├── javascript-challenge-2-review.md │ ├── javascript-challenge-2.md │ ├── javascript-challenge-3-review.md │ ├── javascript-challenge-3.md │ ├── javascript-challenge-4.md │ ├── javascript-challenge-5.md │ ├── july-12th-dev-hour-recapsummary.md │ ├── july-2009-roundup.md │ ├── july-5th-irc-office-hour-recapsummary.md │ ├── june-21st-office-hour-recapsummary.md │ ├── june-28th-irc-office-hour-recapsummary.md │ ├── jxlib-an-introduction.md │ ├── london-hackathon-2009.md │ ├── moobile-0-1-released.md │ ├── moobile-0-2-released.md │ ├── mootools-1-1-upgrade-layer-beta.md │ ├── mootools-1-2-4.md │ ├── mootools-1-2-6-released.md │ ├── mootools-1-3-beta-1.md │ ├── mootools-1-4-0.md │ ├── mootools-1-4-2-released.md │ ├── mootools-1-4-3-released.md │ ├── mootools-1-4-4-released.md │ ├── mootools-1-4-5-released.md │ ├── mootools-1-5-1-release.md │ ├── mootools-1-5-2-release.md │ ├── mootools-1-5-is-here.md │ ├── mootools-1-6-0-release.md │ ├── mootools-12-beta-1.md │ ├── mootools-12-beta-2.md │ ├── mootools-12-its-official.md │ ├── mootools-121-released.md │ ├── mootools-122-and-the-new-mootools-more.md │ ├── mootools-123-released.md │ ├── mootools-124-released.md │ ├── mootools-air-love.md │ ├── mootools-at-fosdem-video.md │ ├── mootools-behavior.md │ ├── mootools-classes-how-to-use-them.md │ ├── mootools-conference.md │ ├── mootools-core-1-2-5.md │ ├── mootools-core-1-3-2-and-more-1-3-2-1.md │ ├── mootools-core-1-3-beta-2.md │ ├── mootools-core-1-3-stable-and-mootools-more-1-3rc.md │ ├── mootools-core-1-4-1.md │ ├── mootools-core-more-1-3-1.md │ ├── mootools-depender-a-build-tool-for-mootools-javascript-libraries.md │ ├── mootools-forge-and-github-are-friends-again.md │ ├── mootools-forge-now-with-comments.md │ ├── mootools-foundations-natives-and-elements.md │ ├── mootools-gets-a-little-closer-to-home.md │ ├── mootools-in-real-life.md │ ├── mootools-merchandise-available.md │ ├── mootools-more-1-2-4-2.md │ ├── mootools-more-1-2-4-3.md │ ├── mootools-more-1222.md │ ├── mootools-on-bountysource.md │ ├── mootools-roundup-august-2009.md │ ├── mootools-roundup-december-2009.md │ ├── mootools-roundup-february-2010.md │ ├── mootools-roundup-january-2010.md │ ├── mootools-roundup-october-2009.md │ ├── mootools-roundup-september-2009.md │ ├── mootools-survey.md │ ├── mootools-version-111-released.md │ ├── more-than-meets-the-eye-form-validator.md │ ├── more-than-meets-the-eye.md │ ├── more-to-love.md │ ├── moving-to-github-issues.md │ ├── new-demos.md │ ├── object-oriented-jquery-with-mootools-jquery-conference.md │ ├── open-irc-office-hours.md │ ├── optimizing-mootools-builds-sans-internet-explorer.md │ ├── reminder-next-office-hour-is-tomorrow-june-21st.md │ ├── roundup-1.md │ ├── selectors-on-fire-a-tale-of-pseudoselectors.md │ ├── setting-up-elements.md │ ├── sizzle.md │ ├── snippely.md │ ├── survey-results.md │ ├── the-dollar-safe-mode.md │ ├── the-journey-toward-more-1-3.md │ ├── the-official-mootools-plugins-repository-is-here.md │ ├── undefined.md │ ├── upgrade-mootools.md │ ├── whats-going-on-with-mootools.md │ ├── whats-new-in-12-behaviour-driven-developmentyou-know-weve-been-telling-you-that-mootools-is-reliable-but-how-can-you-can-be-sure-that-it-will-work-for-your-project-without-just-taking-our-word.md │ ├── whats-new-in-12-element-storage.md │ ├── whats-new-in-12-swiff.md │ ├── whats-new-in-12-the-best-fx-now-even-better.md │ └── whats-new-in-12-the-hash.md └── searchIndexing.js ├── books ├── books.js └── index.js ├── build ├── all.js ├── api_keys.js ├── archived-blog.js ├── archived-blog.json ├── blog.js ├── docs.js ├── fontello.js ├── guides.js ├── release.js └── repositories.js ├── builder ├── dependencies.js ├── index.js └── modules │ └── .gitignore ├── cache └── .gitignore ├── config ├── api_keys.sample.json ├── databases.sample.json ├── init.d │ └── mootools-website ├── log.sample.json ├── logrotate.d │ └── mootools-website └── nginx │ ├── mootools.net │ └── staging.mootools.net ├── core ├── guides │ ├── .gitignore │ └── class.md └── index.js ├── design ├── assets │ ├── README.md │ ├── fonts │ │ ├── README.md │ │ ├── entypo-social.json │ │ ├── entypo.json │ │ ├── entypo │ │ │ ├── glyph-guide.rtf │ │ │ ├── license.txt │ │ │ ├── otf │ │ │ │ ├── Entypo-Social.otf │ │ │ │ └── Entypo.otf │ │ │ ├── vectors │ │ │ │ └── entypo.eps │ │ │ └── webfont │ │ │ │ ├── entypo-social.eot │ │ │ │ ├── entypo-social.svg │ │ │ │ ├── entypo-social.ttf │ │ │ │ ├── entypo-social.woff │ │ │ │ ├── entypo.eot │ │ │ │ ├── entypo.svg │ │ │ │ ├── entypo.ttf │ │ │ │ └── entypo.woff │ │ ├── mission-script │ │ │ └── otf │ │ │ │ ├── Mission-Script.otf │ │ │ │ └── license.txt │ │ ├── source-code-pro │ │ │ ├── otf │ │ │ │ ├── SourceCodePro-Black.otf │ │ │ │ ├── SourceCodePro-Bold.otf │ │ │ │ ├── SourceCodePro-ExtraLight.otf │ │ │ │ ├── SourceCodePro-Light.otf │ │ │ │ ├── SourceCodePro-Regular.otf │ │ │ │ ├── SourceCodePro-Semibold.otf │ │ │ │ └── license.txt │ │ │ └── webfont │ │ │ │ ├── SourceCodePro-Black-webfont.eot │ │ │ │ ├── SourceCodePro-Black-webfont.svg │ │ │ │ ├── SourceCodePro-Black-webfont.ttf │ │ │ │ ├── SourceCodePro-Black-webfont.woff │ │ │ │ ├── SourceCodePro-Bold-webfont.eot │ │ │ │ ├── SourceCodePro-Bold-webfont.svg │ │ │ │ ├── SourceCodePro-Bold-webfont.ttf │ │ │ │ ├── SourceCodePro-Bold-webfont.woff │ │ │ │ ├── SourceCodePro-ExtraLight-webfont.eot │ │ │ │ ├── SourceCodePro-ExtraLight-webfont.svg │ │ │ │ ├── SourceCodePro-ExtraLight-webfont.ttf │ │ │ │ ├── SourceCodePro-ExtraLight-webfont.woff │ │ │ │ ├── SourceCodePro-Light-webfont.eot │ │ │ │ ├── SourceCodePro-Light-webfont.svg │ │ │ │ ├── SourceCodePro-Light-webfont.ttf │ │ │ │ ├── SourceCodePro-Light-webfont.woff │ │ │ │ ├── SourceCodePro-Regular-webfont.eot │ │ │ │ ├── SourceCodePro-Regular-webfont.svg │ │ │ │ ├── SourceCodePro-Regular-webfont.ttf │ │ │ │ ├── SourceCodePro-Regular-webfont.woff │ │ │ │ ├── SourceCodePro-Semibold-webfont.eot │ │ │ │ ├── SourceCodePro-Semibold-webfont.svg │ │ │ │ ├── SourceCodePro-Semibold-webfont.ttf │ │ │ │ ├── SourceCodePro-Semibold-webfont.woff │ │ │ │ └── license.txt │ │ └── source-sans-pro │ │ │ ├── otf │ │ │ ├── SourceSansPro-Black.otf │ │ │ ├── SourceSansPro-BlackIt.otf │ │ │ ├── SourceSansPro-Bold.otf │ │ │ ├── SourceSansPro-BoldIt.otf │ │ │ ├── SourceSansPro-ExtraLight.otf │ │ │ ├── SourceSansPro-ExtraLightIt.otf │ │ │ ├── SourceSansPro-It.otf │ │ │ ├── SourceSansPro-Light.otf │ │ │ ├── SourceSansPro-LightIt.otf │ │ │ ├── SourceSansPro-Regular.otf │ │ │ ├── SourceSansPro-Semibold.otf │ │ │ ├── SourceSansPro-SemiboldIt.otf │ │ │ └── license.txt │ │ │ └── webfont │ │ │ ├── SourceSansPro-Black-webfont.eot │ │ │ ├── SourceSansPro-Black-webfont.svg │ │ │ ├── SourceSansPro-Black-webfont.ttf │ │ │ ├── SourceSansPro-Black-webfont.woff │ │ │ ├── SourceSansPro-BlackIt-webfont.eot │ │ │ ├── SourceSansPro-BlackIt-webfont.svg │ │ │ ├── SourceSansPro-BlackIt-webfont.ttf │ │ │ ├── SourceSansPro-BlackIt-webfont.woff │ │ │ ├── SourceSansPro-Bold-webfont.eot │ │ │ ├── SourceSansPro-Bold-webfont.svg │ │ │ ├── SourceSansPro-Bold-webfont.ttf │ │ │ ├── SourceSansPro-Bold-webfont.woff │ │ │ ├── SourceSansPro-BoldIt-webfont.eot │ │ │ ├── SourceSansPro-BoldIt-webfont.svg │ │ │ ├── SourceSansPro-BoldIt-webfont.ttf │ │ │ ├── SourceSansPro-BoldIt-webfont.woff │ │ │ ├── SourceSansPro-ExtraLight-webfont.eot │ │ │ ├── SourceSansPro-ExtraLight-webfont.svg │ │ │ ├── SourceSansPro-ExtraLight-webfont.ttf │ │ │ ├── SourceSansPro-ExtraLight-webfont.woff │ │ │ ├── SourceSansPro-ExtraLightIt-webfont.eot │ │ │ ├── SourceSansPro-ExtraLightIt-webfont.svg │ │ │ ├── SourceSansPro-ExtraLightIt-webfont.ttf │ │ │ ├── SourceSansPro-ExtraLightIt-webfont.woff │ │ │ ├── SourceSansPro-It-webfont.eot │ │ │ ├── SourceSansPro-It-webfont.svg │ │ │ ├── SourceSansPro-It-webfont.ttf │ │ │ ├── SourceSansPro-It-webfont.woff │ │ │ ├── SourceSansPro-Light-webfont.eot │ │ │ ├── SourceSansPro-Light-webfont.svg │ │ │ ├── SourceSansPro-Light-webfont.ttf │ │ │ ├── SourceSansPro-Light-webfont.woff │ │ │ ├── SourceSansPro-LightIt-webfont.eot │ │ │ ├── SourceSansPro-LightIt-webfont.svg │ │ │ ├── SourceSansPro-LightIt-webfont.ttf │ │ │ ├── SourceSansPro-LightIt-webfont.woff │ │ │ ├── SourceSansPro-Regular-webfont.eot │ │ │ ├── SourceSansPro-Regular-webfont.svg │ │ │ ├── SourceSansPro-Regular-webfont.ttf │ │ │ ├── SourceSansPro-Regular-webfont.woff │ │ │ ├── SourceSansPro-Semibold-webfont.eot │ │ │ ├── SourceSansPro-Semibold-webfont.svg │ │ │ ├── SourceSansPro-Semibold-webfont.ttf │ │ │ ├── SourceSansPro-Semibold-webfont.woff │ │ │ ├── SourceSansPro-SemiboldIt-webfont.eot │ │ │ ├── SourceSansPro-SemiboldIt-webfont.svg │ │ │ ├── SourceSansPro-SemiboldIt-webfont.ttf │ │ │ ├── SourceSansPro-SemiboldIt-webfont.woff │ │ │ └── license.txt │ └── logos │ │ ├── README.md │ │ ├── agent │ │ ├── agent-brand.ai │ │ ├── agent-brand.png │ │ ├── agent-icon.ai │ │ ├── agent-icon.png │ │ ├── agent-logotype.ai │ │ └── agent-logotype.png │ │ ├── core │ │ ├── core-brand-negative.ai │ │ ├── core-brand-negative.png │ │ ├── core-brand.ai │ │ ├── core-brand.png │ │ ├── core-icon.ai │ │ └── core-icon.png │ │ ├── elements │ │ ├── elements-brand.ai │ │ ├── elements-brand.png │ │ ├── elements-icon.ai │ │ ├── elements-icon.png │ │ ├── elements-logotype.ai │ │ └── elements-logotype.png │ │ ├── moofx │ │ ├── moofx-brand.ai │ │ ├── moofx-brand.png │ │ ├── moofx-icon.ai │ │ ├── moofx-icon.png │ │ ├── moofx-logotype.ai │ │ └── moofx-logotype.png │ │ ├── mootools │ │ ├── mootools-icon.ai │ │ ├── mootools-icon.png │ │ ├── mootools-logo-version-2.0.0.eps │ │ ├── mootools-logo-version-2.0.0.psd │ │ ├── mootools-logotype.ai │ │ ├── mootools-logotype.png │ │ ├── mootools-payoff.ai │ │ └── mootools-payoff.png │ │ ├── more │ │ ├── more-brand-negative.ai │ │ ├── more-brand-negative.png │ │ ├── more-brand.ai │ │ ├── more-brand.png │ │ ├── more-icon.ai │ │ └── more-icon.png │ │ ├── old-files │ │ ├── mootools_icon.ai │ │ └── mootools_logotype.ai │ │ ├── open-files │ │ ├── agent-logotype.ai │ │ ├── core-more-logotype.ai │ │ ├── elements-icon.ai │ │ ├── elements-logotype.ai │ │ ├── moofx-icon.ai │ │ ├── moofx-logotype.ai │ │ ├── mootools-favicon.psd │ │ ├── mootools-logotype.ai │ │ ├── mootools-payoff.ai │ │ ├── prime-icon.ai │ │ ├── prime-logotype.ai │ │ ├── slick-icon.ai │ │ ├── slick-logotype.ai │ │ └── wrapup-logotype.ai │ │ ├── prime │ │ ├── prime-brand.ai │ │ ├── prime-brand.png │ │ ├── prime-icon.ai │ │ ├── prime-icon.png │ │ ├── prime-logotype.ai │ │ └── prime-logotype.png │ │ ├── slick │ │ ├── slick-brand.ai │ │ ├── slick-brand.png │ │ ├── slick-icon.ai │ │ ├── slick-icon.png │ │ ├── slick-logotype.ai │ │ └── slick-logotype.png │ │ └── wrapup │ │ ├── wrapup-logotype.ai │ │ └── wrapup-logotype.png ├── demo │ ├── assets │ │ ├── css │ │ │ └── global.css │ │ ├── fonts │ │ │ ├── entypo-social.eot │ │ │ ├── entypo-social.svg │ │ │ ├── entypo-social.ttf │ │ │ ├── entypo-social.woff │ │ │ ├── entypo.eot │ │ │ ├── entypo.svg │ │ │ ├── entypo.ttf │ │ │ └── entypo.woff │ │ └── images │ │ │ ├── agent.png │ │ │ ├── elements.png │ │ │ ├── favicon.ico │ │ │ ├── favicon.png │ │ │ ├── moofx.png │ │ │ ├── mootools-logo.png │ │ │ ├── prime-icon.png │ │ │ └── prime.png │ └── prime-homepage.html ├── drafts │ ├── mootools_homepage.ai │ ├── mootools_homepage.pdf │ ├── prime_homepage.ai │ └── prime_homepage.pdf └── guidelines │ └── README.md ├── developers ├── developers.json └── index.js ├── index.js ├── lib ├── BuilderHash.js ├── associate.js ├── compareSEMVER.js ├── compile-md.js ├── debounce.js ├── getFiles.js ├── jade-highlight.js ├── loadJSON.js ├── log.js ├── projectPath.js └── waitForIt.js ├── middleware ├── build-static.js ├── buildHash.js ├── docs.js ├── githubEvents.js ├── guides.js └── twitter.js ├── more ├── guides │ ├── .gitignore │ └── drag.move.md └── index.js ├── package.json ├── public ├── css │ └── .gitignore ├── fonts │ ├── entypo-social.eot │ ├── entypo-social.svg │ ├── entypo-social.ttf │ ├── entypo-social.woff │ ├── entypo.eot │ ├── entypo.svg │ ├── entypo.ttf │ ├── entypo.woff │ └── font ├── googlea106970571919746.html ├── images │ ├── avatars │ │ ├── Valerio.png │ │ ├── aaron.png │ │ ├── arian.png │ │ ├── chris.png │ │ ├── christoph.png │ │ ├── cristian.jpg │ │ ├── david.png │ │ ├── djamil.png │ │ ├── fabio.jpg │ │ ├── fakedarren.png │ │ ├── guillermo.png │ │ ├── harald.jpg │ │ ├── jacob.png │ │ ├── jan.png │ │ ├── keeto.png │ │ ├── michelle.png │ │ ├── olmo.png │ │ ├── pietrogregorini.jpg │ │ ├── scott_kyle.png │ │ ├── sebastian.png │ │ ├── sergio.png │ │ ├── thomas.png │ │ ├── tim.png │ │ ├── tom.png │ │ └── yaroslaff.png │ ├── books │ │ ├── mootools_1point2.jpg │ │ ├── mootools_essentials.jpg │ │ └── pro_javascript_with_mootools.jpg │ ├── credits │ │ └── mediatemple.png │ ├── favicon │ │ ├── mootools.ico │ │ └── mootools.png │ ├── icon │ │ ├── core.png │ │ └── more.png │ └── logo │ │ ├── core-negative.png │ │ ├── core.png │ │ ├── mootools-payoff.png │ │ ├── mootools.png │ │ ├── more-negative.png │ │ └── more.png └── js │ └── .gitignore ├── service.js ├── tests ├── database │ ├── core.db │ ├── more.db │ ├── newDatabase.js │ └── sampleData.json ├── lib │ └── waitForIt.js └── run.js └── views ├── blog ├── feed.jade ├── index.jade ├── partials │ └── postedUnder.jade └── post.jade ├── books └── index.jade ├── builder └── index.jade ├── core ├── docs.jade ├── guide.jade ├── guides.jade ├── index.jade ├── page.jade └── partials │ ├── big-icon.jade │ ├── features.jade │ ├── overview.jade │ └── summary.jade ├── css ├── builder.styl ├── colorscheme.styl ├── developers.styl ├── docs.styl ├── entypo-social.styl ├── entypo.styl ├── footer.styl ├── global.styl ├── guides.styl ├── header.styl ├── media.styl ├── mootools.styl ├── reset.styl └── style.styl ├── developers └── index.jade ├── errors ├── 404.jade └── 500.jade ├── index.jade ├── js └── main.js ├── layouts ├── home.jade └── main.jade ├── more ├── docs.jade ├── guide.jade ├── guides.jade ├── index.jade ├── page.jade └── partials │ ├── big-icon.jade │ ├── features.jade │ ├── overview.jade │ └── summary.jade ├── partials ├── GitHubEvents.jade ├── disqus_count.jade ├── disqus_thread.jade ├── docs.jade ├── docs │ ├── blockcode.jade │ ├── heading.jade │ ├── link.jade │ └── toc.jade ├── footer-navigation.jade ├── guide.jade ├── header.jade ├── header │ ├── header-logo.jade │ ├── header-menu.jade │ └── header.jade ├── older-version-select.jade └── projects.jade └── search.jade /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.DS_Store 3 | *.tern-port 4 | config/api_keys.json 5 | config/databases.json 6 | config/log.json 7 | -------------------------------------------------------------------------------- /.jshintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | core/docs 3 | more/docs 4 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "eqnull": true, 5 | "boss": true, 6 | "predef": [ 7 | "describe", 8 | "it" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /blog/data.js: -------------------------------------------------------------------------------- 1 | 2 | var fs = require('fs'); 3 | var path = require('path'); 4 | var async = require('async'); 5 | var waitForIt = require('../lib/waitForIt'); 6 | var debounce = require('../lib/debounce'); 7 | var loadJSON = require('../lib/loadJSON'); 8 | var pkg = require('../package.json'); 9 | 10 | var dir = path.join(__dirname, '../', pkg._buildOutput, 'blog/posts'); 11 | 12 | var loadJSONPosts = async.apply(loadJSON, dir + '/posts.json'); 13 | 14 | function loadPost(post, callback){ 15 | fs.readFile(dir + '/' + post.htmlFile, function(err, str){ 16 | if (err) return callback(err); 17 | post.content = str; 18 | callback(null, post); 19 | }); 20 | } 21 | 22 | function loadContent(posts, callback){ 23 | async.map(posts, loadPost, callback); 24 | } 25 | 26 | function index(posts, callback){ 27 | 28 | var total = { 29 | posts: posts, 30 | urls: {}, 31 | tags: {} 32 | }; 33 | 34 | posts.forEach(function(post, i){ 35 | post.date = new Date(post.date); 36 | total.urls[post.permalink] = i; 37 | if (post.tags && Array.isArray(post.tags)) post.tags.forEach(function(tag){ 38 | tag = tag.toLowerCase(); 39 | (total.tags[tag] || (total.tags[tag] = [])).push(i); 40 | }); 41 | }); 42 | 43 | callback(null, total); 44 | 45 | } 46 | 47 | var load = async.compose(index, loadContent, loadJSONPosts); 48 | 49 | module.exports = waitForIt(load); 50 | 51 | fs.watch(dir, debounce(function(){ 52 | console.log('reloading blog data'); 53 | module.exports.reset(); 54 | })); 55 | -------------------------------------------------------------------------------- /blog/posts/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | *.json 3 | -------------------------------------------------------------------------------- /blog/posts/a-new-name-for-mootools.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "A New Name for MooTools" 3 | date: "Wed, 01 Apr 2009 05:00:57 +0000" 4 | author: "Valerio Proietti" 5 | tags: "news" 6 | permalink: "2009/04/01/a-new-name-for-mootools/" 7 | 8 | --- 9 | **UPDATE**: Sincere thanks to all of you who actually believed this was real news! April Fools' wouldn't be as much fun without you. 10 | 11 | The MooTools project has been around for quite some time now. We've seen a few releases, some great, some less great (1.0). We've coded tons of plug-ins, scripts, websites, applications and desktop applications using our beloved MooTools. However, the community is really starting to get tired, tired of this project name. I mean, seriously, we're really fed up with cows. We even tried to "sell" it as My Object Oriented Tools, but we all know that's a stretch, and a pretty bad one. 12 | 13 | 14 | 15 | 21 | 22 | Therefore, I officially announce to the world that from now on MooTools will be known as *jTools*. This is the totally logical choice for our new name, since you know, the j stands for JavaScript, and well, MooTools is written in JavaScript. It's so obvious I can't really understand why everyone doesn't just prepend j into their JavaScript project name. Anyways, I hope you'll like it, as this new name is very likely to stick around pretty much forever! On another note, we are also renaming MooTools More to *jMore*, MooTools Core to *jCore* and Aaron is renaming Clientcide to *jCide*. 23 | 24 | Also, we're going to remove internet explorer 6 support from in next minor version of *jTools*. I wish I could tell you more about this decision, but it's far less important than the groundbreaking name change, so I'll leave it for another day. 25 | 26 | Cheers! -------------------------------------------------------------------------------- /blog/posts/a-week-of-forging-an-overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "A Week of Forging: An Overview" 3 | date: "Thu, 17 Dec 2009 18:30:24 +0000" 4 | author: "Guillermo Rauch" 5 | tags: "forge,news" 6 | permalink: "2009/12/17/a-week-of-forging-an-overview/" 7 | published: false 8 | --- 9 |

The MooTools Forge, our plugins repository, is officially 7 days old. What have we accomplished in this short period of time?

10 | 11 |

The Forge in Numbers

12 | 13 |

In this first week:

14 | 15 | 23 | 24 |

Other Milestones

25 | 26 | 31 | 32 |

I personally want to thank everyone who has joined and shared their efforts, and encourage everyone else to do the same.

33 | 34 |

Happy Mooing!

35 | -------------------------------------------------------------------------------- /blog/posts/and-finally-the-blog-arrived.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "And finally, the blog arrived" 3 | date: "Tue, 29 May 2007 01:22:44 +0000" 4 | author: "Valerio Proietti" 5 | tags: "all" 6 | permalink: "2007/05/29/and-finally-the-blog-arrived/" 7 | 8 | --- 9 | After more than a year of continuous and dedicated development, [we](/developers) decided it was time to launch a blog to keep you in the loop. 10 | 11 | Here we're gonna post about the latest moo trends, the latest breaking changes, the latest plugins that see the light everyday. 12 | 13 | Hoping its enough for an introductory post, I'll leave you at better things, for now. 14 | 15 | Cheers 16 | 17 | Valerio -------------------------------------------------------------------------------- /blog/posts/anyone-using-corebrowser-js.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Anyone using Core/Browser.js?" 3 | date: "Thu, 06 Feb 2014 23:12:10 +0000" 4 | author: "Olmo Maldonado" 5 | tags: "all" 6 | permalink: "2014/02/06/anyone-using-corebrowser-js/" 7 | 8 | --- 9 | On our road to Version 1.5, we're trying to eliminate some bad practices from our code. One of the things we've just gotten rid of, is that a few last pieces of our libraries still depended on Browser UA detection. This has all been eliminated in favour of feature detection. To help us reach a decision on where to go with the `Browser` module, here's a quick survey. Reply via [@mootools](https://twitter.com/mootools) or leave a comment here. 10 | 11 | 12 | 13 | Are you using the [Browser module](https://github.com/mootools/mootools-core/blob/master/Source/Browser/Browser.js)? If so, what are you using it for? 14 | 15 | Cheers! -------------------------------------------------------------------------------- /blog/posts/calling-all-plugins.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Calling All Plugins" 3 | date: "Mon, 23 Jun 2008 23:23:46 +0000" 4 | author: "Michelle Steigerwalt" 5 | tags: "all,news" 6 | permalink: "2008/06/24/calling-all-plugins/" 7 | 8 | --- 9 | One of the main things missing since the forums have gone into read only mode is the Your Scripts section. We realize this and are working to complete our own plugin directory. 10 | 11 | We're trying to assemble a comprehensive list of all our plugins. As part of this effort, we're asking all plugin creators to send an email to plugins@mootools.net with the following information: 12 | 13 | * Plugin Name 14 | * Plugin URL 15 | * Plugin Description (one line) 16 | * Plugin author name and link (if applicable) 17 | 18 | At this time, we're only interested in collecting data on plugins which are compatible with the 1.2 release. 19 | 20 | This is a temporary measure until we get a more interactive system in place. -------------------------------------------------------------------------------- /blog/posts/enhanced-mootools-search-launched.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Enhanced MooTools Search Launched" 3 | date: "Mon, 12 Oct 2009 12:28:01 +0000" 4 | author: "David Walsh" 5 | tags: "all" 6 | permalink: "2009/10/12/enhanced-mootools-search-launched/" 7 | 8 | --- 9 |

The MooTools team would like to announce the launch of an enhanced MooTools web search:

10 | 11 |

MooTools Search Beta: /search

12 | 13 |

14 | This enhanced search has been integrated with the MooTools documentation and will help you easily navigate and identify information in the documentation better than the previous documentation search. The new search system also searches multiple domains -- this will allow you to find MooTools demos, forum posts, tutorials, screencasts, and anything MooTools-related. Initial supporting domains include MooTools.net, Clientcide, The MooTorial, David Walsh Blog, etc. We will also pay attention to most-searched terms and aim to ensure the search feature is providing sufficient, quality results. 15 |

16 | 17 |

This enhanced search release is considered beta. We will soon be adding further enhancements based on team goals (including full site search, etc.) and feedback provided by our most valued asset: the MooTools community.

18 | 19 |

Special thanks to Darren Waddell (fakedarren) for all of his hard work in implementing and maintaining the new search system!

-------------------------------------------------------------------------------- /blog/posts/faces-of-mootools.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Faces of Moo: Represent Your Framework!" 3 | date: "Fri, 29 May 2009 14:05:06 +0000" 4 | author: "David Walsh" 5 | tags: "news" 6 | permalink: "2009/05/29/faces-of-mootools/" 7 | 8 | --- 9 | Christoph Pojer 10 | 11 | Last week we announced that MooTools merchandise was available for purchase. We've seen a great response to the announcement and we've received a solid amount of orders. Thank you for your continued support! Now it's time for us to show you our appreciation. 12 | 13 | The MooTools team would like to announce Faces of Moo. Faces of Moo is where we post photos of you and fellow community members wearing your MooTools shirts, hats, and hoodies. What better way to strengthen the MooTools community than by showing its talented members wearing their Moo colors? 14 | 15 |

What do you need from me?

16 | 17 | Please provide the following items: 18 | 24 | Easy enough, right? 25 | 26 |

Where do I send my information?

27 | 28 | Please send the information above to mootoolspeople@gmail.com. We'll get you up on the site as soon as we can. 29 | 30 |

Thank you!

31 | 32 | Again -- thank you, thank you, thank you for all of your support and look forward to bigger and better things from the MooTools team! -------------------------------------------------------------------------------- /blog/posts/javascript-challenge-2.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "JavaScript Challenge #2 (Whac-A-Moo)" 3 | date: "Wed, 01 Aug 2012 09:49:18 +0000" 4 | author: "Christopher Pitt" 5 | tags: "all,challenges" 6 | permalink: "2012/08/01/javascript-challenge-2/" 7 | 8 | --- 9 | Hopefully the first challenge got you excited for JavaScript development in a competitive environment... 10 | 11 | One of the most common requirements of web applications is to be able to respond to user input, and in particular clicks (or touches). Continuing with our theme of element generation (and in some cases animation); this week’s challenge will be to create a basic whac-a-mole game. 12 | 13 | 14 | 15 | The point of the game will be to click on highlighted elements to increase score. This can be as basic or as intricate as you wish it to be, but it should resemble the following diagram... 16 | 17 |
18 | 19 | The green block represents the block a player must click in order to gain points. This means you will need logic to randomly select one of the possible blocks and highlight it. You also need to register user clicks and update the score “label”. 20 | 21 | Hint: at times when you need to add many of the same kind of event to a variable amount of elements (in this case blocks); it is helpful and even efficient to use event delegation. You will need to use the setInterval() function or the setTimeout() function to create a predictable amount of time between each click or highlight. 22 | 23 | As before; post your solutions in the form of links to jsfiddle, tinker or jsbin (in the comment section) and we’ll update this post with a link to a review post detailing solutions that we think tackle the problem in ways worthy of mention. 24 | 25 | EDIT [2012/08/08]: We are closing comments and reviewing submissions. We will follow this post up with a review of our favourites and what they teach us about the task and JavaScript development in general. 26 | 27 | EDIT [2012/08/22]: We have posted the review post to for these submissions. -------------------------------------------------------------------------------- /blog/posts/javascript-challenge-3-review.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "JavaScript Challenge #3: Review" 3 | date: "Wed, 22 Aug 2012 10:54:02 +0000" 4 | author: "Christopher Pitt" 5 | tags: "all,challenges" 6 | permalink: "2012/08/22/javascript-challenge-3-review/" 7 | 8 | --- 9 | The third JavaScript challenge showed us what it would be like to draw with canvas. The challenge was open ended, in so far as there were no restrictions as to what drawing technology could have been used, but everyone just went straight for canvas. 10 | 11 | 12 | 13 | Arian Stolwijk - https://tinker.io/9d871/1 14 | 15 | Arian impresses once again with some beautiful code. It’s also a good example of how to use requestAnimationFrame and how to calculate FPS. 16 | 17 | Mickele Moriconi - http://jsfiddle.net/czsEe/ 18 | 19 | Mickele’s example showcases a disembodied arrow to indicate the direction in which the cursor is pointed as well as keyboard navigation and event delegation. 20 | 21 | Pete - http://jsfiddle.net/NHhqA/, http://jsfiddle.net/DRgNd/, http://jsfiddle.net/2T8v4/, http://jsfiddle.net/u922h/ 22 | 23 | Pete really shines in this challenge; presenting many concepts and explaining the differences and benefits of various approaches to efficient design of his examples. If nothing else, read through his explanation of the coding approach he has taken in his third and fourth examples. 24 | 25 | Corto - http://jsfiddle.net/corto/qrPav/7/ 26 | 27 | Corto used CoffeeScript and jQuery to build his example. Once you get over all the @ symbols, it’s really quite concise. :) 28 | 29 | The purpose of this was to explore different means of input-based drawing with SVG, DOM and canvas. While we would have like to see more DOM and SVG implementations, there were many good examples of canvas usage! 30 | 31 | We would like to thank everyone that participated - it was fun to see so much conversation and collaboration around a fun JavaScript challenge. Be sure to check out the Challenges category of blog posts for new challenges every week! -------------------------------------------------------------------------------- /blog/posts/javascript-challenge-3.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "JavaScript Challenge #3 (Cows all the way down)" 3 | date: "Wed, 08 Aug 2012 07:51:02 +0000" 4 | author: "Christopher Pitt" 5 | tags: "all,challenges" 6 | permalink: "2012/08/08/javascript-challenge-3/" 7 | 8 | --- 9 | This week we get graphical! Many people are exposed to some form of turtle drawing program when they first learn programming (or just basic computer usage and analytical thinking). It’s also a good way to develop the parts of your brain that deal with forward planning. 10 | 11 | 12 | 13 | The challenge for this week is to design a turtle drawing program that accepts any form of user input in order to move, rotate and style a “pen” across a canvas. It should resemble the functionality demonstrated in the following diagram... 14 | 15 |
16 | 17 |
18 | 19 | The important things we are looking for are the ability to change direction and then to move forward in a straight line. You can do this with HTML elements (and some interesting CSS) but we encourage the use of SVG or canvas in your solutions as they are more suited to the task. 20 | 21 | Hint: you don’t have to have the labels on the left and you can use text fields (or even keyboard navigation) instead of links. What is important is how you maintain and modify direction and position of the “pen” (the point at the “front” of the line). 22 | 23 | You can make your solutions as intricate or as basic as you wish! 24 | 25 | As before; post your solutions in the form of links to jsfiddle, tinker or jsbin (in the comment section) and we’ll update this post with a link to a review post detailing solutions that we think tackle the problem in ways worthy of mention. 26 | 27 | Good luck! 28 | 29 | EDIT [2012/08/15]: We are closing comments and reviewing submissions. We will follow this post up with a review of our favourites and what they teach us about the task and JavaScript development in general. 30 | 31 | EDIT [2012/08/22]: We have posted the review post to for these submissions. -------------------------------------------------------------------------------- /blog/posts/javascript-challenge-4.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "JavaScript Challenge #4 (Space, the final grassy gnoll)" 3 | date: "Wed, 15 Aug 2012 11:01:18 +0000" 4 | author: "Christopher Pitt" 5 | tags: "all,challenges" 6 | permalink: "2012/08/15/javascript-challenge-4/" 7 | 8 | --- 9 | Back in the old days, there was an operating system named after transparent, glass-filled wall apertures numbering in mid-90’s. This operating system was designed to run on computers with CRT screens, which actually needed software to upset the patterns of light they generated, called screensavers. 10 | 11 | This operating system had just such software, in a number of different variations. One of these created the “illusion” that the observer was travelling through space, passing stars. This is the subject of this week’s challenge. 12 | 13 | 14 | 15 | Refer to the following diagram... 16 | 17 |
18 | 19 | ...not very helpful. 20 | 21 | The idea is that “stars” appear in the center and move to the bounds of the viewport. However you choose to create this effect is up to you. 22 | 23 | Hint: you can achieve the effect using elements, canvas or SVG but so long as they move outward you are on the right track. What we’re interested in is how efficiently this can be coded and how little yours leaks! Try spicing things up by adding interactivity or variation of any description. 24 | 25 | You can make your solutions as intricate or as basic as you wish! 26 | 27 | As before; post your solutions in the form of links to jsfiddle, tinker or jsbin (in the comment section) and we’ll update this post with a link to a review post detailing solutions that we think tackle the problem in ways worthy of mention. 28 | 29 | Good luck! 30 | 31 | EDIT [2012/08/22]: We are closing comments and reviewing submissions. We will follow this post up with a review of our favourites and what they teach us about the task and JavaScript development in general. -------------------------------------------------------------------------------- /blog/posts/javascript-challenge-5.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "JavaScript Challenge #5 (Cows never forget)" 3 | date: "Wed, 22 Aug 2012 10:52:06 +0000" 4 | author: "Christopher Pitt" 5 | tags: "all,challenges" 6 | permalink: "2012/08/22/javascript-challenge-5/" 7 | 8 | --- 9 | The other day I was playing Fez when I was reminded of an old memory game I used to play where a sequence of colours are shown and the player has to repeat the sequence correctly to proceed. Players are shown increasingly long sequences or colours, stretching their memory to its limits! 10 | 11 | 12 | 13 | This week’s challenge will be to create a memory game using shapes, colours, numbers or anything really, so long as it involves memory. Refer to the following diagram... 14 | 15 |
16 | 17 | The basic idea is that your game should present a series of colours, shapes, numbers, etc. for the user to then repeat. If they get the sequence right, the next level starts, which increases in difficulty. 18 | 19 | Hint: you should store the order of the sequence so that it can be reused when checking the user’s input. Make things interesting by allowing keyboard navigation, or varying the elements used from level to level. 20 | 21 | You can make your solutions as intricate or as basic as you wish! 22 | 23 | As before; post your solutions in the form of links to jsfiddle, tinker or jsbin (in the comment section) and we’ll update this post with the solutions that we think tackle the problem in ways worthy of mention. 24 | 25 | Happy coding! 26 | 27 | EDIT [2012/08/29]: We are closing comments and reviewing submissions. We will follow this post up with a review of our favourites and what they teach us about the task and JavaScript development in general. -------------------------------------------------------------------------------- /blog/posts/mootools-1-2-6-released.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools 1.2.6 Released" 3 | date: "Tue, 19 Feb 2013 17:12:28 +0000" 4 | author: "Cristian Carlesso" 5 | tags: "all" 6 | permalink: "2013/02/19/mootools-1-2-6-released/" 7 | 8 | --- 9 | This is a new maintenance release for the old 1.2 series. The new ECMAScript 6 specification has a proposal for [String.prototype.contains](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/contains) that unfortunately [conflicts](https://github.com/mootools/mootools-core/issues/2402) with the [MooTools implementation of contains](/docs/core/Types/String#String:contains). 10 | 11 | Firefox 18 already ships this new version of contains. This is not a problem for MooTools 1.3.x and onward, but this breaks MooTools 1.2.5, especially the code inside the MooTools framework that utilized this method, like selectors. 12 | 13 | This new 1.2.6 release solves these issues by overwriting the native version with the MooTools version of `String.prototype.contains`. 14 | 15 | For the next MooTools version, 1.5, we will use the standard ES6 version. If you rely on the old behavior (which is only when you use the second argument), it will be possible to use the old version through the compatibility layer. 16 | 17 | - [Download 1.2.6](/download/version/1.2.6) 18 | - [Or upgrade to 1.4.5](/download) 19 | - [See changes on GitHub](https://github.com/mootools/mootools-core/compare/1.2.5...1.2.6) -------------------------------------------------------------------------------- /blog/posts/mootools-1-4-5-released.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools 1.4.5 Released" 3 | date: "Mon, 27 Feb 2012 02:00:45 +0000" 4 | author: "Arian Stolwijk" 5 | tags: "all,releases" 6 | permalink: "2012/02/26/mootools-1-4-5-released/" 7 | 8 | --- 9 | __MooTools Core 1.4.5__ is a maintenance release for the 1.4 branch. 10 | 11 | 1.4.5 brings a critical bugfix for `Fx.CSS` which caused many troubles for tweening and morphing your element styles. The bug was caused by a fix in 1.4.4 which should improve animating other length units like `%` or `em` (see [#2160](https://github.com/mootools/mootools-core/issues/2160). Many of you noticed the bug and filled bugreports and also helped us testing this new release. 12 | 13 | We have improved our tests and are planning to freeze the code for a new release for a longer period so we can gather more feedback to prevent potential regressions. If you're interested in testing a new release in your application, you can ping us on IRC (#mootools on freenode.net), Twitter ([@mootools](http://twitter.com/mootools) / [@astolwijk](http://twitter.com/astolwijk)) or in the [MooTools User Group](https://groups.google.com/forum/#!forum/mootools-users). 14 | 15 | 16 | 17 | ### Fixes 18 | 19 | - [#2280](https://github.com/mootools/mootools-core/issues/2280) - Fx.CSS breaks `Fx.Morph` and `Fx.Tween` 20 | - [#2289](https://github.com/mootools/mootools-core/issues/2289) - `.setProperty()` should trigger `.toString()` 21 | 22 | ### Contribute 23 | 24 | Send us issues (tickets) or feature requests to the [MooTools Core Issues](https://github.com/mootools/mootools-core/issues) or report your problems in the [MooTools User Group](https://groups.google.com/forum/#!forum/mootools-users). 25 | 26 | ### Get it! 27 | 28 | * [Download MooTools Core 1.4.5](/download); [Build MooTools Core 1.4.5](/core/) 29 | * Fork / clone [MooTools 1.4.5 from GitHub](http://github.com/mootools/mootools-core/tree/1.4.5), and build it yourself with [Packager](http://github.com/kamicane/packager). 30 | * [Google CDN][cdn] (which should be updated soon) 31 | * [Browse the Documentation](/docs) 32 | 33 | [cdn]: http://code.google.com/apis/ajaxlibs/documentation/index.html#mootools -------------------------------------------------------------------------------- /blog/posts/mootools-121-released.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools 1.2.1 Released" 3 | date: "Thu, 16 Oct 2008 21:02:50 +0000" 4 | author: "Tom Occhino" 5 | tags: "all,releases" 6 | permalink: "2008/10/16/mootools-121-released/" 7 | 8 | --- 9 | In keeping with our new pledge to release more often, we've been working hard lately to get 1.2.1 ready for release, and we're finally happy with it. This release brings a ton of bug fixes, and is a drop in replacement for 1.2.0. (That's right, no breaking changes!) 10 | 11 | 12 | 13 | ####What's new? 14 | 15 | Element.Properties.html (element.set('html', html);) now works even with select and table elements in Internet Explorer. Element:clone is also now faster than ever, and retains the values of form elements being cloned. A lot of work has also been done to fix some bugs in Class.js, and Safari 2 support is now back. With the help of Daniel Steigerwald, we've also cleaned up quite a few memory leaks in IE related to events and Element storage, and destroyed elements are now more effectively destroyed. 16 | 17 | For a complete list of changes, see the changelog on GitHub... 18 | 19 | #### Links: 20 | 21 | - [Changelog](http://github.com/mootools/mootools-core/tree/1.2.1/CHANGELOG) 22 | - [MooTools 1.2.1 Download](/download) 23 | - [MooTools 1.2.1 Builder](/core) 24 | 25 | #### What's next? 26 | 27 | We are going to keep going through all the tickets, and try to start fixing the bugs that have cropped up with some of the plugins. 1.2.2 might also see a few new features as we start preparing for some exciting changes and additions we have planned for 1.3. 28 | 29 | MooTools 1.2 will be the last version of MooTools to support Safari 2 and Opera 9.5. These browsers have been advancing at a tremendous pace, and have a user base which updates regularly, so we don't think this will be much of an issue when the time comes. Note that you don't need to worry about this for quite some time yet because 1.3 is a long way off, but we just thought this was a good place to let everyone know. -------------------------------------------------------------------------------- /blog/posts/mootools-air-love.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools + AIR = Love" 3 | date: "Fri, 26 Oct 2007 18:14:55 +0000" 4 | author: "Valerio Proietti" 5 | tags: "all" 6 | permalink: "2007/10/26/mootools-air-love/" 7 | 8 | --- 9 | Today I found a nice article on [coderseye.com](http://coderseye.com/2007/mootools-beats-jquery-and-ext-for-air.html): 10 | 11 | >I spent a half hour tinkering around in Aptana, downloading MooTools 1.1, and setting up a few tests. The result is extremely pleasing. Not only is MooTools way better and easier to use than I remember, but it works out of the box with AIR. 12 | 13 | That's **Very** nice to know! 14 | 15 | I personally haven't yet tried MooTools in AIR extensively (i only did a few basic tests) but I'm definitely looking forward to creating something in the very near future. Maybe a downloader app? We'll see! -------------------------------------------------------------------------------- /blog/posts/mootools-at-fosdem-video.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools at FOSDEM: Video" 3 | date: "Mon, 15 Feb 2010 15:59:28 +0000" 4 | author: "Christoph Pojer" 5 | tags: "all,news" 6 | permalink: "2010/02/15/mootools-at-fosdem-video/" 7 | 8 | --- 9 | Hello everyone, 10 | 11 | I'm really excited and pleased to announce that my presentation "MooTools as a General Purpose Application Framework" which I delivered at the FOSDEM is now available on YouTube. 12 | 13 | 14 | 15 | 16 | 17 | If you are not able to watch the HD-Version you can download the slides here. 18 | 19 | Thanks again to the FOSDEM team for inviting me and for giving us such a big platform to present the MooTools project. If I could name one thing that I miss already about Brussels I would certainly say the waffles... 20 | 21 | If you enjoyed this presentation and you want me or another developer from the MooTools Core Team to present at your conference feel free to contact us. 22 |
-------------------------------------------------------------------------------- /blog/posts/mootools-conference.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools Conference" 3 | date: "Thu, 18 Apr 2013 19:28:33 +0000" 4 | author: "Garrick Cheung" 5 | tags: "all" 6 | permalink: "2013/04/18/mootools-conference/" 7 | 8 | --- 9 | This year we're thinking about getting everyone in the MooTools community together, in one place, for a weekend to meet up, chat, discuss, and have an all-around good time. That's right, we're trying to plan a MooTools Conference! 10 | 11 | But before we can do that, we need your help. We've set up a [form](https://docs.google.com/forms/d/1idslnn9d1_F4GvXowzA9m2fPrupXzTbCOvn7N-5r-y0/viewform) so we can gauge interest in a MooTools Conference. All you need to do is take a minute and answer the questions. 12 | 13 | We'll keep the form up until next week, but make sure you answer quickly so we can start planning this awesome Official MooTools Gathering (or OMG--which might or might not be the name of the conference). -------------------------------------------------------------------------------- /blog/posts/mootools-core-1-2-5.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools Core 1.2.5" 3 | date: "Wed, 15 Sep 2010 23:17:15 +0000" 4 | author: "Djamil Legato" 5 | tags: "all,releases" 6 | permalink: "2010/09/15/mootools-core-1-2-5/" 7 | 8 | --- 9 | Today we're releasing MooTools Core 1.2.5, which can be considered the last version of the 1.2 series. 1.2.5 is a maintenance release, and contains fixes for the latest beta browsers, such as [Firefox 4 beta](http://www.mozilla.com/en-US/firefox/beta/), [Chrome 6](http://www.google.com/chrome) and IE9 beta. Below, a quick changelog: 10 | 11 | * Fix for [fireEvent](/docs/core/Element/Element.Event#Element:fireEvent) under IE9 beta. 12 | * Forcing MooTools [bind](/docs/core/Native/Function#Function:bind) implementation to work with the latest gecko / webkit beta browsers. 13 | * Fixes HTML Elements creation in IE9 beta. 14 | * Fixed Elements garbage collection in IE. 15 | 16 | Or, if you prefer, you can have a look at the actual [code diff](http://github.com/mootools/mootools-core/compare/631d0674...1.2.5). 17 | 18 | [Documentation](/docs/core) has been updated accordingly and many new [Specs](http://github.com/mootools/mootools-core-specs/tree/master/1.2/) have been added. 19 | 20 | As usual, you can [quickly download it](/download) or [build your own version](/core). 21 | 22 | Keep an eye out for the 1.3 release in the following days! -------------------------------------------------------------------------------- /blog/posts/mootools-core-1-4-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools Core 1.4.1" 3 | date: "Thu, 06 Oct 2011 19:01:19 +0000" 4 | author: "Christoph Pojer" 5 | tags: "all" 6 | permalink: "2011/10/06/mootools-core-1-4-1/" 7 | 8 | --- 9 | Today we release MooTools Core 1.4.1 which is a small maintenance release and as such only fixes bugs that were introduced in previous releases. We have fixed the `mousewheel` event in Firefox, `Element.fade` sets the `visibility` CSS-property again, Event.Delegation now behaves properly if you use `fireEvent` and we have fixed a couple of issues with `Element.setProperty` and `Element.removeProperty`. 10 | 11 | Upgrading from 1.4.0 should not cause any backward incompatibilities. We recommend all users to update to 1.4.1 as soon as possible. 12 | 13 | ### Get it! 14 | 15 | * [Download MooTools Core 1.4.1](/download); [Build MooTools Core 1.4.1](/core/) 16 | * Fork / clone [MooTools Core 1.4.1 from GitHub](http://github.com/mootools/mootools-core/tree/1.4.1), and build it yourself with [Packager](http://github.com/kamicane/packager). 17 | * [Google CDN](http://code.google.com/apis/ajaxlibs/documentation/index.html#mootools) (will be updated soon) 18 | * [Browse the Documentation for Core & More.](/docs) 19 | -------------------------------------------------------------------------------- /blog/posts/mootools-forge-and-github-are-friends-again.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools Forge and GitHub are friends again" 3 | date: "Sun, 24 Jun 2012 19:14:55 +0000" 4 | author: "Tim Wienk" 5 | tags: "all" 6 | permalink: "2012/06/24/mootools-forge-and-github-are-friends-again/" 7 | 8 | --- 9 | Many of you have noticed that the Forge was having trouble updating and adding new plugins. GitHub updated their API to a new (v3) version quite a while ago, but we hadn't been able to make the time to update the Forge to use it yet. On June 12, GitHub disabled the v2 API completely, and updating and adding to the Forge stopped working. 10 | 11 | 12 | 13 | A great deal of thanks goes to Mient-jan, who started working on a fix right away, which was finished a few days ago. Another big thanks goes to Darren for creating an easy to install clone of our Forge, actually making it possible for people to help and collaborate. 14 | 15 | We used this weekend to do some testing, and earlier today we activated the changes on the live server: GitHub and the Forge are friends again! We hope the problems haven't caused too much inconvenience, and we hope that you'll enjoy using the Forge again. -------------------------------------------------------------------------------- /blog/posts/mootools-forge-now-with-comments.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools Forge - Now with comments" 3 | date: "Tue, 18 Oct 2011 22:55:47 +0000" 4 | author: "Darren Waddell" 5 | tags: "all" 6 | permalink: "2011/10/18/mootools-forge-now-with-comments/" 7 | 8 | --- 9 | Just a quick update to let you know we've added comments through Disqus to all Forge plugins. 10 | 11 | If you're a plugin owner, you can subscribe by going to your plugin page and clicking 'subscribe by email' at the bottom. 12 | 13 | Remember, if you find a bug in a plugin, you should always report it in that repository's Github Issues. 14 | 15 | As it stands, all comments will need to be moderated before they appear, just to make sure we don't get trolled / spammed and we're really looking forward to adding the ability to comment to the other parts of the website - particularly in documentation. 16 | 17 | Thanks to Aaron for making this happen! -------------------------------------------------------------------------------- /blog/posts/mootools-in-real-life.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Announcing: MooTools in Real Life" 3 | date: "Wed, 05 May 2010 17:52:49 +0000" 4 | author: "Michelle Steigerwalt" 5 | tags: "all,news" 6 | permalink: "2010/05/05/mootools-in-real-life/" 7 | 8 | --- 9 | If you've been paying attention for the past few years, you've probably noticed the growth of MooTools, both as a project and as a thriving community. Unfortunately, it has come to light that many so called "members" of the JavaScript community may, in fact, be automata. 10 | 11 | To protect ourselves and the MooTools community, we've started two physical screening programs (or "meetups"), one in London and the other in the heart of Silicon Valley. 12 | 13 | In a surprising turn of events, both groups have had very informative meetings in which *actual people* have shown up, allowing us to conclusively state that at least some of the members of the MooTools community are, in fact, human. Insightful discussions were had by all, new users and advanced developers alike. 14 | 15 | If you're in the Bay Area or London, it is imperative that you attend at least one of our screening sessions, to verify yourself as human. To be notified about future meetups, as well as voice your opinion on when/where they should be, you can join the Meetup.com group for your area: 16 | 17 | * [MooTools London](http://www.meetup.com/MooToolsLondon/) 18 | * [MooTools Bay Area](http://www.meetup.com/MooToolsBayArea/) 19 | 20 |

Anything Interesting to Share?

21 | 22 | If you have something insightful and MooTools-related to share, and think you can spin it into a fifteen minute presentation, please let us know. 23 | 24 | Right now, we don't have any formal communication set up, but it shouldn't be to hard to get in touch with either Darren (London) or myself (Bay Area). Contact information can be found on [the developers page](/developers). 25 | 26 | Thanks for using MooTools, and we hope to see you there! -------------------------------------------------------------------------------- /blog/posts/mootools-merchandise-available.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools Merchandise Available!" 3 | date: "Wed, 20 May 2009 20:08:16 +0000" 4 | author: "David Walsh" 5 | tags: "news" 6 | permalink: "2009/05/20/mootools-merchandise-available/" 7 | 8 | --- 9 | Due to popular demand, we've made available a bounty of new MooTools merchandise available for purchase in the United States and Europe. New items include: 10 | 16 | 17 | You can purchase these stylish items at: /merch 18 | 19 |

Feedback wanted!

20 | 21 | Can you think of merchandise you'd like to see in the MooTools store? Be sure to let us know in the comments below! 22 | 23 |

What are you waiting for?

24 | 25 | Grab your MooTools merchandise and represent your framework! 26 | 27 | Note: The above link will attempt to send you to the correct store based upon your location. If the above link fails, please visit http://mad4milk.spreadshirt.com/ if you are in the US and http://mad4milk.spreadshirt.net/ if you are in Europe. -------------------------------------------------------------------------------- /blog/posts/mootools-more-1-2-4-2.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools More 1.2.4.2" 3 | date: "Tue, 27 Oct 2009 19:50:23 +0000" 4 | author: "Aaron Newton" 5 | tags: "all" 6 | permalink: "2009/10/27/mootools-more-1-2-4-2/" 7 | 8 | --- 9 | There's nothing like releasing code to uncover glitches. Since last week's release of MooTools Core 1.2.4 and MooTools More 1.2.4.1, there have been a few bugs reported and we wanted to get the fixes out to you as quickly as possible. Most of these are minor. We have unit tests for all the classes we release, but writing a test for every possible configuration is tough, and it's the real world that sees these features used in ways we can't imagine. 10 | 11 | Today's release offers no new features, a lot of very minor fixes (to docs and the like), and the restoration of a few changes to the API that weren't intended (Tips and Fx.Slide, in particular). 12 | 13 | 14 | 15 | Here's what's in 1.2.4.2: 16 | 17 | * [roughly a dozen issues fixed or closed (in lighthouse)](https://mootools.lighthouseapp.com/projects/24057-mootoolsmore/tickets?q=milestone%3A1.2.4.1) 18 | * Numerous documentation updates 19 | * Spinner: Adding a getSpinner method to Request in Spinner's refactoring of that Class 20 | * Spinner: Fixing default styles 21 | * Form.Validator, Date: Added Ukrainian translations 22 | * Date: Added new Date parser (parses "Thu Oct 22 08:11:23 +0000 2009") 23 | * Fx.Accordion: handling the alwaysHide option so you can still have returnHeightToAuto set to true (see [this discussion](http://groups.google.com/group/mootools-users/browse_thread/thread/27004d2d0dc227c2u)) 24 | * Tips: Restoring arguments to the show/hide events; tip no longer defaults to display:none (this restores the previous behavior) 25 | * Fx.Reveal: stores cssText whenever it starts a transition and restores it when it finishes or is canceled, leaving the element without a bunch of inline styles, as if you'd just done setStyle('display', 'block'/'none') 26 | * Fx.SmoothScroll: adding a "scrolledTo" event 27 | * Drag: added new 'stopPropagation' option 28 | * HtmlTable.Select: ensuring that instances only delegates to immediate children (for nested tables) 29 | * HtmlTable.Sort.js: detects and sorts date columns more accurately, handles negative integers and floats 30 | * Reorganized scripts json so Depender can implement Log 31 | 32 | As always, if you find any issues, [file tickets](https://mootools.lighthouseapp.com/projects/24057-mootoolsmore) and we'll get on it. -------------------------------------------------------------------------------- /blog/posts/mootools-more-1222.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools More 1.2.2.2" 3 | date: "Tue, 05 May 2009 22:51:48 +0000" 4 | author: "Aaron Newton" 5 | tags: "releases" 6 | permalink: "2009/05/05/mootools-more-1222/" 7 | 8 | --- 9 | Today we're releasing a small update to MooTools More that address a few bugs and minor feature requests that cropped up after the initial launch. Briefly, these are the things changed since 1.2.2.1: 10 | 19 | None of these changes should affect your usage of the class, except, possibly, the change to OverText, as the element it previously created for the labels was a div. If you styled these with css and referenced the tag name, you'll either need to update your css reference or pass in element: "div" as an option when you invoke the class. -------------------------------------------------------------------------------- /blog/posts/mootools-on-bountysource.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools on Bountysource" 3 | date: "Thu, 30 May 2013 19:11:38 +0000" 4 | author: "Arian Stolwijk" 5 | tags: "all" 6 | permalink: "2013/05/30/mootools-on-bountysource/" 7 | 8 | --- 9 | Today we enabled Bountysource for [MooTools Core](https://www.bountysource.com/#trackers/22067-mootools-mootools-core) and [MooTools More](https://www.bountysource.com/#trackers/22069-mootools-mootools-more). Bountysource is a funding platform for Open Source projects like MooTools. 10 | 11 | It works as follows: there is an issue on GitHub. You, or anyone else, can create a bounty to back the issue. Then some developer (either a MooTools Team Member or some other contributor) fixes the issue. Once it gets merged and he or she can collect the bounty! 12 | 13 | We think this could help to prioritize issues and to increase community contributions. After all, who doesn't like to get some pocket money to buy a beer or [MooTools t-shirt](/merch)! -------------------------------------------------------------------------------- /blog/posts/mootools-survey.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools Survey" 3 | date: "Sun, 05 Dec 2010 22:50:10 +0000" 4 | author: "Arian Stolwijk" 5 | tags: "all" 6 | permalink: "2010/12/05/mootools-survey/" 7 | 8 | --- 9 | MooTools Shirt 10 | 11 | The community and the MooTools users are very important for MooTools and its development. Therefore we would love to hear who you are and how you are using MooTools. You could do this by this [survey][survey link]. It will take about five minutes and none of the questions are required. 12 | 13 | The purpose of this survey is to help us prioritize what the development team spends its time on. We want to make MooTools as useful for you as we can. Some questions are more explicit than others, relating to where we put things or what features we should focus on more or less. Armed with this information we can dedicate our resources to the things that matter most to you. 14 | 15 | Because we think your opinion is valuable, we'll be giving something in return. You can win a **MooTools™ Shirt**. Maybe you will look just as awesome as Tim soon! 16 | 17 | The survey will be open for two or three weeks. After that time we will compile some sort of conclusion from the results and share it with you. 18 | 19 | So head over to the [survey][survey link] and let your opinion count! 20 | 21 | [survey link]: https://spreadsheets.google.com/viewform?formkey=dENzVXRhYUZtMFlNVUxYUVV4U09pSkE6MQ 22 | 23 | **Update:** I've just closed the survey. A huge thank you for the awesome responses! -------------------------------------------------------------------------------- /blog/posts/mootools-version-111-released.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MooTools version 1.11 released" 3 | date: "Mon, 04 Jun 2007 09:30:14 +0000" 4 | author: "Valerio Proietti" 5 | tags: "all,news,releases" 6 | permalink: "2007/06/04/mootools-version-111-released/" 7 | 8 | --- 9 | Today we released MooTools version 1.11. 10 | 11 | In this release we fixed a bunch of memory leaks issues, as well as some minor bugs around. 12 | 13 | Other than some maintenance, we added the getText and setText Element methods, to help filling HTML Elements, Style tags and Script tags with text, and we added more details to [the documentation](http://docs.mootools.net/). 14 | 15 | This is a recommended update for all of you using MooTools 1.1. 16 | 17 | If you want to, you can see [the changelog in details](http://dev.mootools.net/wiki/changelog). 18 | 19 | So, go ahead and [give it a try](/download)! -------------------------------------------------------------------------------- /blog/posts/moving-to-github-issues.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Moving to GitHub Issues" 3 | date: "Tue, 02 Aug 2011 00:14:38 +0000" 4 | author: "Arian Stolwijk" 5 | tags: "all" 6 | permalink: "2011/08/01/moving-to-github-issues/" 7 | 8 | --- 9 | We at the MooTools headquarters love GitHub for all its features which makes contributing and managing our code much easier than say, five years ago. GitHub is the place to be for all cool JavaScript projects which makes following your projects of interest a lot easier. When we moved to GitHub a long time ago, the ticket system was too basic to be a real solution. Fortunately this has [since](https://github.com/blog/831-issues-2-0-the-next-generation) improved. 10 | 11 | Especially the additions for milestones and assignees were important for us. With this in place GitHub issues can finally replace Lighthouse. 12 | 13 | 14 | 15 | The main advantages are: 16 | 17 | * Everything at one place, one login 18 | * Easier to follow MooTools 19 | * Similar to pull requests 20 | 21 | A disadvantage is that most of the current issues are in [Lighthouse](https://mootools.lighthouseapp.com/projects/2706-mootools/tickets). Darren did an awesome job going through a lot of them but there are still some open or not fixed. A proposed option was to move all tickets to GithHub, but we decided to try to address as many as we can and just move on to GitHub. 22 | 23 | Now every [MooTools project](https://github.com/mootools) has its issues on GitHub: 24 | 25 | - [MooTools Core](https://github.com/mootools/mootools-core/issues) 26 | - [MooTools More](https://github.com/mootools/mootools-more/issues) 27 | - [Slick](https://github.com/mootools/slick/issues) 28 | - [Demos](https://github.com/mootools/mootools-demos/issues) 29 | 30 | So if you know anything about any of the issues at GitHub or some old Tickets at Lighthouse, comments and fixes are highly appreciated! -------------------------------------------------------------------------------- /blog/posts/new-demos.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "New Demos!" 3 | date: "Tue, 04 Jan 2011 13:25:47 +0000" 4 | author: "Darren Waddell" 5 | tags: "all" 6 | permalink: "2011/01/04/new-demos/" 7 | 8 | --- 9 | We've been beavering away here in MooTools Towers looking though our recent survey results (more feedback coming soon) and one of the things that was obvious you guys and gals wanted was new demos. 10 | 11 | So! Check out our new demos. We hope you like them! 12 | 13 | We're also delighted to be able to include full jsFiddle support, so you can easily view, edit and generally play with our new demos easily! 14 | 15 | The entire demo runner is also available on our GitHub repository; so if you can run PHP it should be super-simple for you to get them up and running. 16 | 17 | Do you have any demos you think we should add? Let us know in the comments! Or, fork it, and send us a pull request :) 18 | 19 | We love our new demos and hope you do too! 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /blog/posts/undefined.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "JavaScript challenges: Thanks!" 3 | date: "Wed, 30 Nov -0001 00:00:00 +0000" 4 | author: "Christopher Pitt" 5 | tags: "all,challenges" 6 | permalink: "?p=1792" 7 | published: false 8 | --- 9 | So we've been running the challenges for a month now and are excited by the conversation and participation we've seen surrounding them. We just wanted to take this opportunity to say thanks! :)etter, have fixed an issue and want to help us by providing a fix. 10 | 11 | ### How to get help 12 | 13 | Your first ports of call, should you want help, should be either our [Google Group](http://groups.google.com/group/mootools-users) or our [IRC Channel](irc://irc.freenode.net/#mootools). 14 | 15 | (got distracted - will finish soon) a bit easier to use.

16 |

http://www.queridodesign.net/blog/passshark

17 | 18 | 19 | 20 |

MGFX.Tabs 1.1

21 |

22 | Sean McArthur has recently updated his popular Tabs class by making it more efficient and more flexible. Tabs has also been added to GitHub so you may pull code, push bug fixes, and post issues. 23 |

24 |

http://mcarthurgfx.com/blog/article/mgfx-tabs-1-1-on-github

25 | 26 |

MooPix

27 |

MooPix is not only a MooTools slideshow function but a method for accessing your public Flickr photos. Though no server side scripting is required, MooPix remains very small.

28 |

http://www.moopix.org/

29 | 30 | 31 |

Keep Up the Good Work!

32 |

These are just a few of the great MooTools plugins floating around the MooTools community recently. Keep up the good work and we look forward to featuring your plugins in future posts!

-------------------------------------------------------------------------------- /blog/searchIndexing.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var request = require('request'); 4 | var async = require('async'); 5 | var slug = require('slugify'); 6 | var data = require('./data'); 7 | 8 | function insertBlog(posts, callback){ 9 | 10 | var commands = []; 11 | 12 | posts.posts.forEach(function(post){ 13 | 14 | commands.push( 15 | JSON.stringify({ 16 | index : { 17 | _index: 'page', 18 | _type: 'blogging', 19 | _id: post.permalink 20 | } 21 | }), 22 | JSON.stringify({ 23 | title: post.title, 24 | date: post.date, 25 | author: post.author, 26 | tags: post.tags.slice(), 27 | url: "/blog/" + post.permalink, 28 | content: post.content.toString() 29 | }) 30 | ); 31 | 32 | }); 33 | 34 | var _commands = commands.join("\n") + "\n"; 35 | 36 | request.post("http://localhost:9200/_bulk/", { 37 | body: _commands 38 | }, function(err, res, body){ 39 | callback(err, body); 40 | }); 41 | } 42 | 43 | module.exports = async.compose(insertBlog, data.get); 44 | -------------------------------------------------------------------------------- /books/books.js: -------------------------------------------------------------------------------- 1 | var books = [ 2 | { 3 | "title": "Pro JavaScript with MooTools", 4 | "description": "Ready to take your MooTools knowledge to a new level? Then grab a copy of Pro JavaScript with MooTools by Mark Obcena, with a Foreword by MooTools Founder and Lead Developer Valerio Proietti.

Geared towards intermediate and advanced users, \"Pro JavaScript with MooTools\" explores advanced features of the JavaScript language as well as the internals of MooTools 1.3.", 5 | "cover": "/images/books/pro_javascript_with_mootools.jpg", 6 | "alt_tag": "Pro JavaScript with MooTools by Mark Obcena", 7 | "buy_link": "http://www.amazon.com/Pro-JavaScript-MooTools-Mark-Obcena/dp/1430230541/" 8 | }, { 9 | "title": "MooTools Essentials", 10 | "description": "The Official MooTools Reference for JavaScript and Ajax Development. Combined real-world examples with nuanced explanations of everything you need to know to make your site fun and engaging.
You’ll be adding effects and Ajax in no time.", 11 | "cover": "/images/books/mootools_essentials.jpg", 12 | "alt_tag": "MooTools Essentials by Aaron Newton", 13 | "buy_link": "http://www.amazon.com/MooTools-Essentials-JavaScript-Development-Firstpress/dp/1430209836" 14 | }, { 15 | "title": "MooTools 1.2 Beginner's Guide", 16 | "description": "Learn how to create dynamic, interactive, and responsive cross-browser web applications using this popular JavaScript framework.
This book is perfect for MooTools newcomers. You do not require any familiarity with MooTools whatsoever, only a willingness to learn.", 17 | "cover": "/images/books/mootools_1point2.jpg", 18 | "alt_tag": "MooTools 1.2 Beginner's Guide by Jacob Gube and Garrick Cheung", 19 | "buy_link": "https://www.packtpub.com/web-development/mootools-12-beginners-guide" 20 | } 21 | ]; 22 | module.exports = books; 23 | -------------------------------------------------------------------------------- /books/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var books = require('./books.js'); 4 | 5 | module.exports = function(app){ 6 | 7 | app.get('/books', function(req, res){ 8 | res.render('books/index', { 9 | site: "books", 10 | title: "MooTools Books", 11 | books: books 12 | }); 13 | }); 14 | }; 15 | -------------------------------------------------------------------------------- /build/all.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var async = require('async'); 4 | var spawn = require('child_process').spawn; 5 | var getKeys = require('./api_keys'); 6 | var options = process.argv.splice(2); 7 | 8 | function checkKeys(){ 9 | if (options.indexOf('--add-keys') != -1){ 10 | getKeys(); 11 | } 12 | } 13 | 14 | var cmds = [ 15 | ["build/docs", "core"], 16 | ["build/docs", "more"], 17 | ["build/guides", "core"], 18 | ["build/guides", "more"], 19 | ["build/blog"] 20 | ]; 21 | 22 | function spawnCmd(cmd, callback){ 23 | spawn("node", cmd, { 24 | stdio: 'inherit', 25 | cwd: __dirname + '/..' 26 | }) 27 | .on('close', callback) 28 | .on('error', function(err){ 29 | throw err; 30 | }); 31 | } 32 | 33 | async.series([ 34 | async.apply(spawnCmd, ["build/repositories"]), 35 | async.apply(async.each, cmds, spawnCmd) 36 | ], checkKeys); 37 | -------------------------------------------------------------------------------- /build/api_keys.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var fs = require('fs-extra'); 4 | var APIkeys = require('./../config/api_keys.json'); 5 | var readline = require('readline'); 6 | var rli; 7 | 8 | function checkKeys(site, done){ 9 | var keys = Object.keys(APIkeys[site]); 10 | (function question(){ 11 | var key = keys.shift(); 12 | if (!key) return done(); 13 | rli.question('Please insert ' + site + '\'s ' + key + ': ', function(answer){ 14 | if (answer) APIkeys[site][key] = answer; 15 | question(); 16 | }); 17 | })(); 18 | } 19 | 20 | function question(site, next){ 21 | rli.question('Do you want to add or change keys for ' + site + '? (y/n): ', 22 | function(answer){ 23 | if (answer.toLowerCase() == 'y') checkKeys(site, next); 24 | else next(); 25 | }); 26 | } 27 | module.exports = function(){ 28 | var services = Object.keys(APIkeys); 29 | rli = readline.createInterface({ 30 | input: process.stdin, 31 | output: process.stdout 32 | }); 33 | (function iterator(){ 34 | var service = services.shift(); 35 | if (service) return question(service, iterator); 36 | rli.close(); 37 | fs.writeFileSync(APIpath, JSON.stringify(APIkeys, null, 4)); 38 | })(); 39 | } 40 | -------------------------------------------------------------------------------- /build/archived-blog.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var fs = require('fs'); 4 | var async = require('async'); 5 | 6 | function getName(nickname, authors){ 7 | var author = authors.filter(function(writer){ 8 | return writer.author_display_name.__cdata.toLowerCase() == nickname; 9 | })[0]; 10 | if (!author) console.log('Blog author not found with nickname: ' + nickname); 11 | return author.author_first_name.__cdata + ' ' + author.author_last_name.__cdata; 12 | } 13 | 14 | function rebuildPost(post, authors, callback){ 15 | 16 | var renderLink = post.link.replace('http://mootools.net/blog/', ''); 17 | var content = post.encoded[0].__cdata; 18 | 19 | if (!content){ 20 | if (post.status.__text == 'publish'){ 21 | console.error(post); 22 | return callback(new Error('Post has no content')); 23 | } 24 | return callback(); 25 | } 26 | 27 | if (!post.category.length) post.category = [post.category]; 28 | var tags = post.category.map(function(cat){ 29 | return cat._nicename; 30 | }); 31 | 32 | var md = [ 33 | '---', 34 | 'title: "' + post.title + '"', 35 | 'date: "' + post.pubDate + '"', 36 | 'author: "' + getName(post.creator.__cdata.toLowerCase(), authors) + '"', 37 | 'tags: "' + tags + '"', 38 | 'permalink: "' + renderLink + '"', 39 | post.status.__text != 'publish' ? 'published: false' : '', 40 | '---', 41 | content 42 | ].join('\n'); 43 | 44 | var filename = 'blog/posts/' + renderLink.split('/')[3] + '.md'; 45 | fs.writeFile(filename, md, 'utf8', callback); 46 | } 47 | 48 | function readArchive(file, callback){ 49 | fs.readFile(file, 'utf-8', function(err, data){ 50 | if (err) return callback(err); 51 | data = JSON.parse(data); 52 | callback(err, { 53 | posts: data.channel.item, 54 | authors: data.channel.author 55 | }); 56 | }); 57 | } 58 | 59 | var importPosts = async.compose(function(data, callback){ 60 | async.map(data.posts, function(post, cb){ 61 | rebuildPost(post, data.authors, cb); 62 | }, callback); 63 | }, readArchive); 64 | 65 | importPosts('build/archived-blog.json', function(err){ 66 | if (err) console.error(err); 67 | else console.log('imported the old posts'); 68 | }); 69 | 70 | -------------------------------------------------------------------------------- /build/fontello.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var pkg = require('../package'); 4 | var fs = require('fs'); 5 | var path = require('path'); 6 | var async = require('async'); 7 | var needle = require('needle'); 8 | var unzip = require('unzip'); 9 | var es = require('event-stream'); 10 | 11 | var url = 'http://fontello.com'; 12 | var config = __dirname + '/../design/assets/fonts'; 13 | var dest = __dirname + '/../public/fonts'; 14 | var stylDest = __dirname + '/../views/css/'; 15 | 16 | var readConfig = async.apply(fs.readFile, config); 17 | 18 | function getSessionID(font, callback){ 19 | needle.post(url, { 20 | config: { 21 | file: config + '/' + font + '.json', 22 | content_type: 'application/json'} 23 | }, 24 | {multipart: true}, 25 | function(err, response, body){ 26 | if (response.statusCode == 200) callback(err, { 27 | id: body, 28 | font: font 29 | }); 30 | else callback(err || new Error(response.body)); 31 | }); 32 | } 33 | 34 | var stylFunctionify = es.map(function(data, cb){ 35 | var re = /(\.icon\-[\w-]+)(\:before)(\s?)/g; 36 | data = String(data).replace(re, function($0, $1){ 37 | return $1.slice(1) + '() '; 38 | }); 39 | cb(null, data); 40 | }); 41 | 42 | function download(data, callback){ 43 | var r = needle.get(url + '/' + data.id + '/get', function(err, res, body){ 44 | if (err) callback(err); 45 | }); 46 | r.pipe(unzip.Parse()) 47 | .on('entry', function(entry){ 48 | var filename = entry.path; 49 | var type = entry.type; 50 | var match = /\/css\/.*\-codes\.css$/; 51 | var file; 52 | 53 | if (filename.indexOf('/font/') != -1){ 54 | file = path.basename(filename); 55 | entry.pipe(fs.createWriteStream(dest + '/' + file)); 56 | } else if (filename.match(match) && !filename.match(/ie7/)){ 57 | entry 58 | .pipe(stylFunctionify) 59 | .pipe(fs.createWriteStream(stylDest + '/' + data.font + '.styl')); 60 | } else { 61 | entry.autodrain(); 62 | } 63 | }) 64 | .on('finish', function(){ 65 | callback(); 66 | }); 67 | } 68 | 69 | var downloadZip = async.compose(download, getSessionID); 70 | 71 | if (!process.argv[2]){ 72 | console.error('please specificy a font type'); 73 | process.exit(1); 74 | } 75 | 76 | downloadZip(process.argv[2], function(err){ 77 | if (err) console.err(err); 78 | else console.log('written font files'); 79 | }); 80 | -------------------------------------------------------------------------------- /build/guides.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var fs = require('fs-extra'); 4 | var async = require('async'); 5 | var path = require('path'); 6 | var slug = require ('slugify'); 7 | var compile = require('../lib/compile-md'); 8 | var fm = require('front-matter'); 9 | var pkg = require('../package.json'); 10 | 11 | var args = process.argv; 12 | 13 | if (args.length < 3){ 14 | console.log('usage: node guides.js [project]'); 15 | process.exit(1); 16 | } 17 | 18 | var project = args[2]; 19 | 20 | var srcdir = path.join(__dirname, "../", project, "guides"); 21 | var destdir = path.join(__dirname, "../", pkg._buildOutput, project, "guides"); 22 | 23 | build(project, srcdir, destdir); 24 | 25 | function build(project, srcdir, destdir){ 26 | 27 | async.auto({ 28 | 29 | mkdir: async.apply(fs.mkdirs, destdir), 30 | 31 | readdir: function(callback){ 32 | fs.readdir(srcdir, function(err, files){ 33 | if (err) return callback(err); 34 | callback(null, files.filter(function(file){ 35 | return (/\.md$/).test(file); 36 | })); 37 | }); 38 | }, 39 | 40 | readfiles: ['readdir', function(callback, res){ 41 | async.map(res.readdir, function(file, cb){ 42 | fs.readFile(srcdir + '/' + file, "utf-8", function(err, data){ 43 | if (err) return cb(err); 44 | cb(null, {file: file, md: data}); 45 | }); 46 | }, callback); 47 | }], 48 | 49 | compile: ['readfiles', function(callback, res){ 50 | async.map(res.readfiles, function(file, cb){ 51 | var parts = fm(file.md); 52 | var data = parts.attributes; 53 | data.slug = slug(data.title); 54 | data.file = file.file; 55 | data.htmlFile = file.file.replace(/\.md$/, '.html'); 56 | var html = compile(parts.body, data.htmlFile); 57 | cb(null, [data, html]); 58 | }, callback); 59 | }], 60 | 61 | saveHTML: ['compile', function(callback, res){ 62 | async.map(res.compile.map(function(file, i){ 63 | return { 64 | html: file[1], 65 | file: destdir + '/' + file[0].htmlFile 66 | }; 67 | }), function(file, cb){ 68 | fs.writeFile(file.file, file.html.content, cb); 69 | }, callback); 70 | }], 71 | 72 | saveJSON: ['compile', function(callback, res){ 73 | var guides = {}; 74 | res.compile.forEach(function(file){ 75 | guides[file[0].slug] = file[0]; 76 | }); 77 | fs.writeFile(destdir + '/guides.json', JSON.stringify(guides, null, 2), callback); 78 | }] 79 | 80 | }, function(err, res){ 81 | if (err) console.error(err); 82 | console.log("done building guides html files for " + project); 83 | }); 84 | 85 | } 86 | -------------------------------------------------------------------------------- /build/release.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var async = require('async'); 4 | var path = require('path'); 5 | var fs = require('fs'); 6 | var semver = require('semver'); 7 | 8 | var args = process.argv; 9 | 10 | if (args.length != 4){ 11 | console.error("Usage: " + args[0] + " " + path.relative(process.cwd(), args[1]) + " [project] [version]"); 12 | process.exit(1); 13 | } 14 | 15 | var project = args[2]; 16 | var version = args[3]; 17 | 18 | if (!semver.valid(version)){ 19 | console.error("invalid semver version format (use vx.x.x)"); 20 | process.exit(1); 21 | } 22 | 23 | var pkgFile = __dirname + '/../package.json'; 24 | 25 | var pkg = require(pkgFile); 26 | var projects = pkg._projects; 27 | var builder = pkg._wrapupWebbuilderConfig; 28 | 29 | if (!projects[project]){ 30 | console.error("project does not exist"); 31 | process.exit(1); 32 | } 33 | 34 | var versions = projects[project].versions; 35 | var builderv = builder.modules[project]; 36 | 37 | if (versions.indexOf(version) == -1) versions.push(version); 38 | if (builderv.indexOf(version) == -1) builderv.push(version); 39 | 40 | fs.writeFile(pkgFile, JSON.stringify(pkg, null, 2), function(err){ 41 | if (err) throw err; 42 | console.log("saved package.json with the new " + project + " version"); 43 | console.log("now you might want to run build/repositories and build/all"); 44 | }); 45 | -------------------------------------------------------------------------------- /builder/dependencies.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var YAML = require('js-yaml'); 4 | var path = require('path'); 5 | var fs = require("fs"); 6 | var getFiles = require('../lib/getFiles'); 7 | var projectPath = require('../lib/projectPath'); 8 | var packager = require('mootools-packager'); 9 | var DESC_REGEXP = /\/\*\s*^---([\s\S]+?)^(?:\.\.\.|---)\s*\*\//mg; 10 | 11 | function makeString(type){ 12 | if (!type) return ''; 13 | return typeof type == 'string' ? type : type.join(', '); 14 | } 15 | function capitalise(name){ 16 | return name.charAt(0).toUpperCase() + name.slice(1); 17 | } 18 | 19 | 20 | module.exports = function(project, version){ 21 | 22 | var isCore = project == 'core'; 23 | var sourcePath = { 24 | Core: projectPath('core', version) 25 | }; 26 | if (!isCore) sourcePath[capitalise(project)] = projectPath(project, version); 27 | 28 | var packagerOptions = { 29 | name: sourcePath, 30 | noOutput: true, 31 | removeCoreDependencies: !isCore, 32 | callback: function(src){ 33 | var headers = src.match(DESC_REGEXP); 34 | headers.forEach(function(header){ 35 | var yamlHeader = YAML.load(header.slice(2, -2)); 36 | filesInfo[yamlHeader.name] = { 37 | req: makeString(yamlHeader.requires), 38 | prov: makeString(yamlHeader.provides), 39 | desc: yamlHeader.description 40 | }; 41 | }); 42 | } 43 | }; 44 | 45 | var sourceFiles = Object.keys(sourcePath).map(function(proj){ 46 | return sourcePath[proj]; 47 | }).reduce(function(files, folder){ 48 | var folderPath = path.join(__dirname, '/../', folder); 49 | return getFiles(folderPath, files, '.js'); 50 | }, []); 51 | 52 | var filesInfo = {}; 53 | packager(sourceFiles, packagerOptions); 54 | return filesInfo; 55 | }; 56 | -------------------------------------------------------------------------------- /builder/modules/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /config/api_keys.sample.json: -------------------------------------------------------------------------------- 1 | { 2 | "twitter": { 3 | "consumer_key": "", 4 | "consumer_secret": "", 5 | "access_token_key": "", 6 | "access_token_secret": "" 7 | }, 8 | "github": { 9 | "consumer_key": "", 10 | "consumer_secret": "", 11 | "access_token_key": "", 12 | "access_token_secret": "" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /config/databases.sample.json: -------------------------------------------------------------------------------- 1 | { 2 | "core": "tests/database/core.db", 3 | "more": "tests/database/more.db" 4 | } 5 | -------------------------------------------------------------------------------- /config/log.sample.json: -------------------------------------------------------------------------------- 1 | { 2 | "outFile": "tests/out.log", 3 | "errFile": "tests/err.log" 4 | } 5 | -------------------------------------------------------------------------------- /config/logrotate.d/mootools-website: -------------------------------------------------------------------------------- 1 | /var/opt/mootools/log/mootools-website.*.log { 2 | weekly 3 | missingok 4 | rotate 52 5 | compress 6 | delaycompress 7 | notifempty 8 | create 0640 www-data adm 9 | sharedscripts 10 | postrotate 11 | service mootools-website reload-logs 12 | endscript 13 | } 14 | -------------------------------------------------------------------------------- /config/nginx/staging.mootools.net: -------------------------------------------------------------------------------- 1 | 2 | upstream staging.mootools.net { 3 | server 127.0.0.1:3000; 4 | } 5 | 6 | server { 7 | 8 | listen 80; ## listen for ipv4 9 | listen [::]:80; ## listen for ipv6 10 | 11 | server_name staging.mootools.net; 12 | 13 | access_log /var/log/nginx/staging.mootools.net.access.log; 14 | 15 | location / { 16 | proxy_redirect off; 17 | proxy_set_header Host $http_host; 18 | proxy_set_header X-Real-IP $remote_addr; 19 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 20 | proxy_pass http://staging.mootools.net; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /core/guides/.gitignore: -------------------------------------------------------------------------------- 1 | *.json 2 | *.html 3 | -------------------------------------------------------------------------------- /design/assets/README.md: -------------------------------------------------------------------------------- 1 | # Assets 2 | 3 | This folder contains all the MooTools assets used in the website and other brand communications. 4 | 5 | * * * 6 | 7 | Fonts 8 | ------------- 9 | 10 | The complete library of fonts used in the brand identity, from logotypes to website fonts. They are provided in both OTF (for publishing) and webfonts (EOT, WOFF, TTF and SVG). License files are included for each font. 11 | 12 | Logos 13 | ------------- 14 | 15 | Contains the official MooTools brand logo, projects icons and logotypes, provided in both AI and PNG files. Open files for future improvements are included. -------------------------------------------------------------------------------- /design/assets/fonts/README.md: -------------------------------------------------------------------------------- 1 | # Fonts 2 | 3 | * * * 4 | 5 | Overview 6 | ------------- 7 | 8 | ###### Entypo / Entypo Social 9 | 10 | Entypo is a set of icons and pictograms which is used in the website instead of icon images, saving loading requests and bandwidth. Moreover, in this way, icons will result crispy even when zoomed in high resolution screens. 11 | 12 | ###### Mission Script 13 | 14 | Mission Script is the font used for product logotypes. It is included here just for future revision of logotypes and to modify open Illustrator files. This font will never appear as webfont inside the website, since logotypes are shown only as images. 15 | 16 | ###### Source Sans Pro 17 | 18 | Source Sans Pro is the main font used for all texts inside the website. Here is provided in all the possible weights, anyway just 200, 300 and 400 weights are actually used in the website. 19 | 20 | ###### Source Code Pro 21 | 22 | Source Code Pro is the font used for code snippets in the website. Here is provided in all the possible weights, anyway just 400 or bolder weights are actually used in the website. 23 | 24 | Webfonts 25 | ------------- 26 | 27 | The main fonts used in the website can be provided directly through Google Fonts CDN service. Below are listed the links to the Google Fonts. 28 | 29 | ###### Source Sans Pro 30 | 31 | http://www.google.com/fonts/specimen/Source+Sans+Pro 32 | 33 | ###### Source Code Pro 34 | 35 | http://www.google.com/fonts/specimen/Source+Code+Pro 36 | 37 | ###### Entypo / Entypo Social 38 | 39 | Entypo and Entypo Social fonts are not currently provided by any webfont service, so they must be loaded in MooTools server. 40 | 41 | Usage 42 | ------------- 43 | 44 | In the website, fonts could be loaded asynchronously through Google WebFont JavaScript loader. 45 | 46 | https://developers.google.com/fonts/docs/webfont_loader 47 | 48 | Licenses 49 | ------------- 50 | 51 | Relative license files are included inside each directory, both for OTF and webfont versions. -------------------------------------------------------------------------------- /design/assets/fonts/entypo-social.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "entypo-social", 3 | "css_prefix_text": "", 4 | "css_use_suffix": false, 5 | "hinting": true, 6 | "units_per_em": 1000, 7 | "ascent": 850, 8 | "glyphs": [ 9 | { 10 | "uid": "d94334f23acba022bfd68e49d76b31bb", 11 | "css": "github", 12 | "code": 59395, 13 | "src": "entypo" 14 | }, 15 | { 16 | "uid": "d090355c31f497b61d676416c1fd39fb", 17 | "css": "twitter", 18 | "code": 59394, 19 | "src": "entypo" 20 | }, 21 | { 22 | "uid": "47bd87a650e95b97f947d275ed968efe", 23 | "css": "facebook-squared", 24 | "code": 59392, 25 | "src": "entypo" 26 | }, 27 | { 28 | "uid": "b945f4ac2439565661e8e4878e35d379", 29 | "css": "gplus", 30 | "code": 59393, 31 | "src": "entypo" 32 | } 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /design/assets/fonts/entypo/otf/Entypo-Social.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/entypo/otf/Entypo-Social.otf -------------------------------------------------------------------------------- /design/assets/fonts/entypo/otf/Entypo.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/entypo/otf/Entypo.otf -------------------------------------------------------------------------------- /design/assets/fonts/entypo/vectors/entypo.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/entypo/vectors/entypo.eps -------------------------------------------------------------------------------- /design/assets/fonts/entypo/webfont/entypo-social.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/entypo/webfont/entypo-social.eot -------------------------------------------------------------------------------- /design/assets/fonts/entypo/webfont/entypo-social.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /design/assets/fonts/entypo/webfont/entypo-social.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/entypo/webfont/entypo-social.ttf -------------------------------------------------------------------------------- /design/assets/fonts/entypo/webfont/entypo-social.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/entypo/webfont/entypo-social.woff -------------------------------------------------------------------------------- /design/assets/fonts/entypo/webfont/entypo.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/entypo/webfont/entypo.eot -------------------------------------------------------------------------------- /design/assets/fonts/entypo/webfont/entypo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /design/assets/fonts/entypo/webfont/entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/entypo/webfont/entypo.ttf -------------------------------------------------------------------------------- /design/assets/fonts/entypo/webfont/entypo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/entypo/webfont/entypo.woff -------------------------------------------------------------------------------- /design/assets/fonts/mission-script/otf/Mission-Script.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/mission-script/otf/Mission-Script.otf -------------------------------------------------------------------------------- /design/assets/fonts/mission-script/otf/license.txt: -------------------------------------------------------------------------------- 1 | THE LOST TYPE CO-OP 2 | www.losttype.com 3 | 4 | LICENSING AGREEMENT 5 | 6 | YOU MAY: 7 | 8 | 1) USE THIS FONT IN PERSONAL DESIGN. 9 | 10 | YOU MAY NOT: 11 | 12 | 1) USE THIS FONT IN COMMERCIAL DESIGN WITHOUT CONTACTING JTE@JAMESTEDMONDSON.COM. 13 | 14 | 2) RE-DISTRIBUTE THIS FONT BY ANY MEANS, FOR FREE, OR FOR A FEE. 15 | 16 | 3) ALTER THIS FONT FOR RE-DISTRIBUTION. 17 | 18 | FOR ALL OTHER MATTERS, EMAIL AT: 19 | 20 | jte@jamestedmondson.com -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/otf/SourceCodePro-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/otf/SourceCodePro-Black.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/otf/SourceCodePro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/otf/SourceCodePro-Bold.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/otf/SourceCodePro-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/otf/SourceCodePro-ExtraLight.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/otf/SourceCodePro-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/otf/SourceCodePro-Light.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/otf/SourceCodePro-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/otf/SourceCodePro-Regular.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/otf/SourceCodePro-Semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/otf/SourceCodePro-Semibold.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Black-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Black-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Black-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Black-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Black-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Black-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Bold-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Bold-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Bold-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-ExtraLight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-ExtraLight-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-ExtraLight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-ExtraLight-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-ExtraLight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-ExtraLight-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Light-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Light-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Light-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Regular-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Regular-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Regular-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Semibold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Semibold-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Semibold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Semibold-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-code-pro/webfont/SourceCodePro-Semibold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-code-pro/webfont/SourceCodePro-Semibold-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-Black.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-BlackIt.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-BlackIt.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-Bold.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-BoldIt.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-BoldIt.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-ExtraLight.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-ExtraLightIt.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-ExtraLightIt.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-It.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-It.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-Light.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-LightIt.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-LightIt.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-Regular.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-Semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-Semibold.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/otf/SourceSansPro-SemiboldIt.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/otf/SourceSansPro-SemiboldIt.otf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Black-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Black-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Black-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Black-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Black-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Black-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BlackIt-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BlackIt-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BlackIt-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BlackIt-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BlackIt-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BlackIt-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Bold-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Bold-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Bold-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BoldIt-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BoldIt-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BoldIt-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BoldIt-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BoldIt-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-BoldIt-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLight-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLight-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLight-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLightIt-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLightIt-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLightIt-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLightIt-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLightIt-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-ExtraLightIt-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-It-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-It-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-It-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-It-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-It-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-It-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Light-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Light-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Light-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-LightIt-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-LightIt-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-LightIt-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-LightIt-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-LightIt-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-LightIt-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Regular-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Regular-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Regular-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Semibold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Semibold-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Semibold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Semibold-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Semibold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-Semibold-webfont.woff -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-SemiboldIt-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-SemiboldIt-webfont.eot -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-SemiboldIt-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-SemiboldIt-webfont.ttf -------------------------------------------------------------------------------- /design/assets/fonts/source-sans-pro/webfont/SourceSansPro-SemiboldIt-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/fonts/source-sans-pro/webfont/SourceSansPro-SemiboldIt-webfont.woff -------------------------------------------------------------------------------- /design/assets/logos/README.md: -------------------------------------------------------------------------------- 1 | # Logos 2 | 3 | * * * 4 | 5 | Overview 6 | ------------- 7 | 8 | ###### MooTools 9 | 10 | The official MooTools logo, slightly restyled. 11 | 12 | ###### Prime 13 | 14 | Prime icon and logotype, provided in AI and PNG files, ready to use. 15 | 16 | ###### Elements 17 | 18 | Prime icon and logotype, provided in AI and PNG files, ready to use. 19 | 20 | ###### MooFx 21 | 22 | MooFx icon and logotype, provided in AI and PNG files, ready to use. 23 | 24 | ###### Agent 25 | 26 | Agent icon and logotype, provided in AI and PNG files, ready to use. 27 | 28 | Bonus Materials 29 | ------------- 30 | 31 | ###### Open Files 32 | 33 | In this folder are stored all the original AI files, without outlines for text boxes and strokes and with unmerged shapes. They can be used for future improvements or retouching. 34 | 35 | ###### Old Files 36 | 37 | In this folder are stored the old MooTools logos, before restyling. -------------------------------------------------------------------------------- /design/assets/logos/agent/agent-brand.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/agent/agent-brand.ai -------------------------------------------------------------------------------- /design/assets/logos/agent/agent-brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/agent/agent-brand.png -------------------------------------------------------------------------------- /design/assets/logos/agent/agent-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/agent/agent-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/agent/agent-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/agent/agent-icon.png -------------------------------------------------------------------------------- /design/assets/logos/agent/agent-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/agent/agent-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/agent/agent-logotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/agent/agent-logotype.png -------------------------------------------------------------------------------- /design/assets/logos/core/core-brand-negative.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/core/core-brand-negative.ai -------------------------------------------------------------------------------- /design/assets/logos/core/core-brand-negative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/core/core-brand-negative.png -------------------------------------------------------------------------------- /design/assets/logos/core/core-brand.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/core/core-brand.ai -------------------------------------------------------------------------------- /design/assets/logos/core/core-brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/core/core-brand.png -------------------------------------------------------------------------------- /design/assets/logos/core/core-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/core/core-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/core/core-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/core/core-icon.png -------------------------------------------------------------------------------- /design/assets/logos/elements/elements-brand.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/elements/elements-brand.ai -------------------------------------------------------------------------------- /design/assets/logos/elements/elements-brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/elements/elements-brand.png -------------------------------------------------------------------------------- /design/assets/logos/elements/elements-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/elements/elements-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/elements/elements-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/elements/elements-icon.png -------------------------------------------------------------------------------- /design/assets/logos/elements/elements-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/elements/elements-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/elements/elements-logotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/elements/elements-logotype.png -------------------------------------------------------------------------------- /design/assets/logos/moofx/moofx-brand.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/moofx/moofx-brand.ai -------------------------------------------------------------------------------- /design/assets/logos/moofx/moofx-brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/moofx/moofx-brand.png -------------------------------------------------------------------------------- /design/assets/logos/moofx/moofx-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/moofx/moofx-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/moofx/moofx-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/moofx/moofx-icon.png -------------------------------------------------------------------------------- /design/assets/logos/moofx/moofx-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/moofx/moofx-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/moofx/moofx-logotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/moofx/moofx-logotype.png -------------------------------------------------------------------------------- /design/assets/logos/mootools/mootools-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/mootools/mootools-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/mootools/mootools-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/mootools/mootools-icon.png -------------------------------------------------------------------------------- /design/assets/logos/mootools/mootools-logo-version-2.0.0.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/mootools/mootools-logo-version-2.0.0.psd -------------------------------------------------------------------------------- /design/assets/logos/mootools/mootools-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/mootools/mootools-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/mootools/mootools-logotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/mootools/mootools-logotype.png -------------------------------------------------------------------------------- /design/assets/logos/mootools/mootools-payoff.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/mootools/mootools-payoff.ai -------------------------------------------------------------------------------- /design/assets/logos/mootools/mootools-payoff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/mootools/mootools-payoff.png -------------------------------------------------------------------------------- /design/assets/logos/more/more-brand-negative.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/more/more-brand-negative.ai -------------------------------------------------------------------------------- /design/assets/logos/more/more-brand-negative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/more/more-brand-negative.png -------------------------------------------------------------------------------- /design/assets/logos/more/more-brand.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/more/more-brand.ai -------------------------------------------------------------------------------- /design/assets/logos/more/more-brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/more/more-brand.png -------------------------------------------------------------------------------- /design/assets/logos/more/more-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/more/more-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/more/more-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/more/more-icon.png -------------------------------------------------------------------------------- /design/assets/logos/old-files/mootools_icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/old-files/mootools_icon.ai -------------------------------------------------------------------------------- /design/assets/logos/old-files/mootools_logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/old-files/mootools_logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/agent-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/agent-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/core-more-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/core-more-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/elements-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/elements-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/elements-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/elements-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/moofx-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/moofx-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/moofx-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/moofx-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/mootools-favicon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/mootools-favicon.psd -------------------------------------------------------------------------------- /design/assets/logos/open-files/mootools-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/mootools-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/mootools-payoff.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/mootools-payoff.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/prime-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/prime-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/prime-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/prime-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/slick-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/slick-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/slick-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/slick-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/open-files/wrapup-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/open-files/wrapup-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/prime/prime-brand.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/prime/prime-brand.ai -------------------------------------------------------------------------------- /design/assets/logos/prime/prime-brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/prime/prime-brand.png -------------------------------------------------------------------------------- /design/assets/logos/prime/prime-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/prime/prime-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/prime/prime-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/prime/prime-icon.png -------------------------------------------------------------------------------- /design/assets/logos/prime/prime-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/prime/prime-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/prime/prime-logotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/prime/prime-logotype.png -------------------------------------------------------------------------------- /design/assets/logos/slick/slick-brand.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/slick/slick-brand.ai -------------------------------------------------------------------------------- /design/assets/logos/slick/slick-brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/slick/slick-brand.png -------------------------------------------------------------------------------- /design/assets/logos/slick/slick-icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/slick/slick-icon.ai -------------------------------------------------------------------------------- /design/assets/logos/slick/slick-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/slick/slick-icon.png -------------------------------------------------------------------------------- /design/assets/logos/slick/slick-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/slick/slick-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/slick/slick-logotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/slick/slick-logotype.png -------------------------------------------------------------------------------- /design/assets/logos/wrapup/wrapup-logotype.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/wrapup/wrapup-logotype.ai -------------------------------------------------------------------------------- /design/assets/logos/wrapup/wrapup-logotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/assets/logos/wrapup/wrapup-logotype.png -------------------------------------------------------------------------------- /design/demo/assets/fonts/entypo-social.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/fonts/entypo-social.eot -------------------------------------------------------------------------------- /design/demo/assets/fonts/entypo-social.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /design/demo/assets/fonts/entypo-social.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/fonts/entypo-social.ttf -------------------------------------------------------------------------------- /design/demo/assets/fonts/entypo-social.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/fonts/entypo-social.woff -------------------------------------------------------------------------------- /design/demo/assets/fonts/entypo.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/fonts/entypo.eot -------------------------------------------------------------------------------- /design/demo/assets/fonts/entypo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /design/demo/assets/fonts/entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/fonts/entypo.ttf -------------------------------------------------------------------------------- /design/demo/assets/fonts/entypo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/fonts/entypo.woff -------------------------------------------------------------------------------- /design/demo/assets/images/agent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/images/agent.png -------------------------------------------------------------------------------- /design/demo/assets/images/elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/images/elements.png -------------------------------------------------------------------------------- /design/demo/assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/images/favicon.ico -------------------------------------------------------------------------------- /design/demo/assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/images/favicon.png -------------------------------------------------------------------------------- /design/demo/assets/images/moofx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/images/moofx.png -------------------------------------------------------------------------------- /design/demo/assets/images/mootools-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/images/mootools-logo.png -------------------------------------------------------------------------------- /design/demo/assets/images/prime-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/images/prime-icon.png -------------------------------------------------------------------------------- /design/demo/assets/images/prime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/demo/assets/images/prime.png -------------------------------------------------------------------------------- /design/drafts/mootools_homepage.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/drafts/mootools_homepage.ai -------------------------------------------------------------------------------- /design/drafts/mootools_homepage.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/drafts/mootools_homepage.pdf -------------------------------------------------------------------------------- /design/drafts/prime_homepage.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/drafts/prime_homepage.ai -------------------------------------------------------------------------------- /design/drafts/prime_homepage.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/design/drafts/prime_homepage.pdf -------------------------------------------------------------------------------- /design/guidelines/README.md: -------------------------------------------------------------------------------- 1 | MooTools Website Guidelines 2 | ============== 3 | 4 | Table of Contents 5 | 6 | * [Colors](#colors) 7 | 8 | 9 | * * * 10 | 11 | Colors 12 | ------------- 13 | 14 | ### Backgrounds 15 | 16 | ###### White 17 | 18 | White is the foundamental color for background. 19 | Large amount of white spaces are recommended for pages and margins in every application of the brand. 20 | 21 | R `255` G `255` B `255` 22 | HTML `#FFFFFF` 23 | 24 | ###### Dirty White 25 | 26 | A slightly darker shade of white is used as background for code blocks, search field and less relevant buttons. 27 | 28 | R `244` G `241` B `237` 29 | HTML `#F4F1ED` 30 | 31 | ### Global Colours 32 | 33 | ###### Dark Gray 34 | 35 | Instead of black, this color is used for main and common texts on the whole website and to identify unselected links in main navigation sections. 36 | 37 | R `119` G `117` B `113` 38 | HTML `#777571` 39 | 40 | ###### Mid Gray 41 | 42 | This color is used for MooTools logo, sub-headlines and less relevant or small texts. 43 | 44 | R `172` G `170` B `167` 45 | HTML `#ACAAA7` 46 | 47 | ###### Light Gray 48 | 49 | This color is used for horizontal rules and other less relevant applications. 50 | 51 | R `229` G `227` B `223` 52 | HTML `#E5E3DF1` 53 | 54 | ### Project Colours 55 | 56 | ###### Prime 57 | 58 | Prime main color is orange. 59 | 60 | R `235` G `111` B `20` 61 | HTML `#eb6f14` 62 | 63 | ###### Elements 64 | 65 | Elements main color is red. 66 | 67 | R `187` G `25` B `29` 68 | HTML `#bb191d` 69 | 70 | ###### MooFx 71 | 72 | MooFx main color is reddish purple. 73 | 74 | R `141` G `46` B `133` 75 | HTML `#8d2e85` 76 | 77 | ###### Agent 78 | 79 | Agent main color is bluish purple. 80 | 81 | R `71` G `56` B `138` 82 | HTML `#47388a` 83 | -------------------------------------------------------------------------------- /developers/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = function(app){ 4 | 5 | var developersData = require('./developers'); 6 | var randomSort = function(){ 7 | return 0.5 - Math.random(); 8 | }; 9 | 10 | app.get('/developers', function(req, res){ 11 | 12 | Object.keys(developersData).forEach(function(section){ 13 | developersData[section] = developersData[section].sort(randomSort); 14 | }); 15 | res.render('developers/index', { 16 | site: "developers", 17 | title: "MooTools Developers", 18 | developersData: developersData 19 | }); 20 | }); 21 | 22 | }; 23 | 24 | -------------------------------------------------------------------------------- /lib/associate.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | function associate(keys, values){ 4 | var length = Math.min(keys.length, values.length); 5 | var associated = {}; 6 | for (var i = 0; i < length; i++){ 7 | associated[keys[i]] = values[i]; 8 | } 9 | return associated; 10 | } 11 | 12 | module.exports = associate; 13 | -------------------------------------------------------------------------------- /lib/compareSEMVER.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | function splitVersion(ver){ 4 | return ver.split('.').map(function(part){ 5 | return parseInt(part, 10); 6 | }); 7 | } 8 | 9 | // from http://stackoverflow.com/a/6832706/2256325 10 | module.exports = function(a, b){ 11 | 12 | if (a === b) return 0; 13 | 14 | var aComponents = splitVersion(a); 15 | var bComponents = splitVersion(b); 16 | var len = Math.min(aComponents.length, bComponents.length); 17 | 18 | // loop while the components are equal 19 | for (var i = 0; i < len; i++){ 20 | if (aComponents[i] > bComponents[i]) return 1; 21 | if (aComponents[i] < bComponents[i]) return -1; 22 | } 23 | 24 | // If one's a prefix of the other, the longer one is greater. 25 | if (aComponents.length > bComponents.length) return 1; 26 | if (aComponents.length < bComponents.length) return -1; 27 | 28 | // Otherwise they are the same. 29 | return 0; 30 | } 31 | -------------------------------------------------------------------------------- /lib/debounce.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | function debounce(fn){ 4 | var timer; 5 | return function(){ 6 | var self = this, args = Array.prototype.slice.call(arguments); 7 | clearTimeout(timer); 8 | timer = setTimeout(function(){ 9 | fn.apply(self, args); 10 | }, 200); 11 | }; 12 | } 13 | 14 | module.exports = debounce; 15 | -------------------------------------------------------------------------------- /lib/getFiles.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var path = require('path'); 4 | var fs = require('fs'); 5 | 6 | // dir: string - path to directory from script path 7 | // files_: array - files array to add to, optional 8 | // fileType: string - filter fileextension, defaults to no filter 9 | 10 | function getFiles(dir, files_, fileType){ 11 | 12 | var regex = fileType ? new RegExp('\\' + fileType + '$') : ''; 13 | 14 | return fs.readdirSync(dir).reduce(function(allFiles, file){ 15 | var name = path.join(dir, file); 16 | if (fs.statSync(name).isDirectory()){ 17 | getFiles(name, allFiles, fileType); 18 | } else if (file.match(regex)){ 19 | allFiles.push(name); 20 | } 21 | return allFiles; 22 | }, files_ || []); 23 | 24 | } 25 | 26 | module.exports = getFiles; 27 | -------------------------------------------------------------------------------- /lib/jade-highlight.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var hljs = require('highlight.js'); 4 | 5 | module.exports = function(code, options){ 6 | var lang = options.lang; 7 | var indent = parseInt(options.indent, 10) || 4; 8 | 9 | var tab = new Array(indent + 1).join(' '); 10 | 11 | // fix indentation, code comes in with only one space 12 | code = code.split('\n').map(function(line){ 13 | var indentations = line.match(/^\s+/g); 14 | if (!indentations) return line; 15 | var length = indentations[0].length; 16 | return new Array(length + 1).join(tab) + line.slice(length); 17 | }).join('\n'); 18 | 19 | if (!lang) code = '

' + code + '
\n'; 20 | else { 21 | if (lang == 'js') lang = 'javascript'; 22 | else if (lang == 'html') lang = 'xml'; 23 | else if (lang == 'shell') lang = 'bash'; 24 | code = hljs.highlight(lang, code).value.trim(); 25 | code = '
' + code + '
\n'; 26 | } 27 | return code.replace(/'/g,'''); 28 | }; 29 | 30 | 31 | -------------------------------------------------------------------------------- /lib/loadJSON.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var fs = require('fs'); 4 | 5 | function loadJSON(file, callback){ 6 | 7 | fs.readFile(file, function(err, json){ 8 | if (err) return callback(err); 9 | try { 10 | callback(null, JSON.parse(json)); 11 | } catch (e){ 12 | callback(e); 13 | } 14 | }); 15 | 16 | } 17 | 18 | module.exports = loadJSON; 19 | -------------------------------------------------------------------------------- /lib/log.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var fs = require('fs'); 4 | 5 | var silent = false, 6 | monitors = [], 7 | files = {}, 8 | streams = {}; 9 | 10 | function close(type){ 11 | if (streams[type]){ 12 | streams[type].end(); 13 | streams[type] = null; 14 | } 15 | } 16 | 17 | function open(type, file){ 18 | if (file){ 19 | files[type] = file; 20 | } else { 21 | file = files[type]; 22 | } 23 | 24 | close(type); 25 | 26 | if (file){ 27 | var stream = fs.createWriteStream(file, { 28 | flags: 'a+', 29 | defaultEncoding: 'utf8', 30 | mode: parseInt('640', 8) 31 | }); 32 | stream.addListener('error', function(error){ 33 | stream.end(); 34 | streams[type] = null; 35 | if (monitors.length){ 36 | for (var i = 0, l = monitors.length; i < l; ++i){ 37 | monitors[i].emit('error', error); 38 | } 39 | } else { 40 | throw error; 41 | } 42 | }); 43 | streams[type] = stream; 44 | } 45 | } 46 | 47 | function write(type, data){ 48 | var stream = streams[type]; 49 | if (stream){ 50 | stream.write('[' + (new Date()).toISOString() + '] ' + data); 51 | } 52 | } 53 | 54 | function configure(configuration){ 55 | if (configuration.silent != null) silent = configuration.silent; 56 | if (configuration.outFile) open('out', configuration.outFile); 57 | if (configuration.errFile) open('err', configuration.errFile); 58 | } 59 | 60 | function reload(){ 61 | var types = Object.keys(files); 62 | for (var i = 0, l = types.length; i < l; ++i){ 63 | open(types[i]); 64 | } 65 | } 66 | 67 | function attach(monitor){ 68 | if (monitors.indexOf(monitor) == -1) monitors.push(monitor); 69 | monitor.addListener('stdout', log); 70 | monitor.addListener('stderr', logError); 71 | } 72 | 73 | function detach(monitor){ 74 | var index = monitors.indexOf(monitor); 75 | if (index > -1) monitors.splice(index, 1); 76 | monitor.removeListener('stdout', log); 77 | monitor.removeListener('stderr', logError); 78 | } 79 | 80 | function log(data){ 81 | write('out', data); 82 | if (!silent) process.stdout.write(data); 83 | } 84 | 85 | function logError(data){ 86 | write('err', data); 87 | if (!silent) process.stderr.write(data); 88 | } 89 | 90 | exports.configure = configure; 91 | exports.reload = reload; 92 | exports.attach = attach; 93 | exports.detach = detach; 94 | 95 | exports.write = function(data){ return log(data + '\n'); }; 96 | exports.error = function(data){ return logError(data + '\n'); }; 97 | -------------------------------------------------------------------------------- /lib/projectPath.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var allVersions = require('../package.json'); 4 | 5 | function projectPath(project_, version_){ 6 | var versions = allVersions._projects[project_].versions; 7 | if (versions.indexOf(version_) == -1) version_ = versions.filter(function(ver){ 8 | return ver.slice(0, -2) <= version_.slice(0, -2); 9 | })[0]; 10 | return 'cache/' + project_.toLowerCase() + '/docs/' + project_.toLowerCase() + '-' + version_ + '/Source/'; 11 | } 12 | 13 | module.exports = projectPath; 14 | -------------------------------------------------------------------------------- /lib/waitForIt.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var slice = Array.prototype.slice; 4 | 5 | module.exports = function(fn){ 6 | 7 | var args; 8 | var isRunning = false; 9 | var callbacks = []; 10 | 11 | var done = function(callbacks, args){ 12 | var cbs = callbacks.slice(), cb; 13 | while (cb = cbs.shift()) cb.apply(null, args); 14 | }; 15 | 16 | return { 17 | 18 | get: function(callback){ 19 | 20 | if (args){ 21 | callback.apply(null, args); 22 | return; 23 | } 24 | 25 | callbacks.push(callback); 26 | 27 | if (isRunning){ 28 | return; 29 | } 30 | 31 | isRunning = true; 32 | 33 | fn(function(){ 34 | args = slice.call(arguments); 35 | isRunning = false; 36 | done(callbacks, args); 37 | }); 38 | 39 | return this; 40 | }, 41 | 42 | reset: function(){ 43 | args = null; 44 | callbacks = []; 45 | return this; 46 | } 47 | 48 | }; 49 | 50 | }; 51 | -------------------------------------------------------------------------------- /middleware/build-static.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var stylus = require('stylus'); 4 | var nib = require('nib'); 5 | var fs = require('fs'); 6 | 7 | var compileCSS = function(str, path){ 8 | return stylus(str) 9 | .set('filename', path) 10 | .use(nib()); 11 | }; 12 | 13 | module.exports = function(app, options){ 14 | 15 | if (!options) options = {}; 16 | if (!options.path) options.path = '/'; 17 | 18 | // development only 19 | if ('development' == app.get('env')){ 20 | 21 | // wrapup middleware 22 | var wrapup = require('wrapup-middleware'); 23 | app.get((options.path == '/' ? '' : options.path) + '/js/*.js', wrapup({ 24 | src: options.dirname + '/views', 25 | dest: options.dirname + '/public' 26 | })); 27 | 28 | // stylus middleware 29 | app.use(options.path, stylus.middleware({ 30 | src: options.dirname + '/views', 31 | dest: options.dirname + '/public', 32 | compile: function(str, path){ 33 | return compileCSS(str, path) 34 | .set('linenos', true); 35 | } 36 | })); 37 | 38 | } else { 39 | 40 | // compile js 41 | var wrup = require('wrapup')(); 42 | wrup.require(options.dirname + '/views/js/main.js') 43 | .options({ 44 | output: options.dirname + '/public/js/main.js', 45 | compress: true 46 | }) 47 | .up(function(err){ 48 | if (err) console.error(err); 49 | else console.log("built public/js/main.js"); 50 | }); 51 | 52 | // compile css 53 | var stylFile = options.dirname + '/views/css/style.styl'; 54 | var str = fs.readFileSync(stylFile, 'utf8'); 55 | 56 | compileCSS(str, stylFile) 57 | .set('compress', true) 58 | .render(function(err, css){ 59 | if (err) console.error(err); 60 | else { 61 | fs.writeFile(options.dirname + '/public/css/style.css', css); 62 | console.log("built public/css/style.js"); 63 | } 64 | } 65 | ); 66 | } 67 | 68 | }; 69 | -------------------------------------------------------------------------------- /middleware/buildHash.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var builderHash = require('../lib/BuilderHash')(require('../config/databases.json')); 4 | 5 | module.exports = function(project){ 6 | 7 | return function(req, res, next){ 8 | var hash = req.params.hash; 9 | if (hash){ 10 | builderHash.load(project, hash, function(err, data) { 11 | if (data){ 12 | res.locals.hash = data.packages; 13 | } 14 | next(err); 15 | }); 16 | } else { 17 | return next(); 18 | } 19 | }; 20 | }; 21 | -------------------------------------------------------------------------------- /middleware/githubEvents.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var GitHub = require('github'); 4 | 5 | module.exports = function(options){ 6 | 7 | if (!options){ 8 | throw new Error("you need to set options, with either an 'user' or 'org' property"); 9 | } 10 | 11 | // interval updating the data happens 12 | if (!options.interval) options.interval = 1000 * 60 * 30; // each 30 minutes 13 | // if this number of request fail after each other, then just stop 14 | if (!options.maxFailingRequests) options.maxFailingRequests = 3; 15 | // the variable name the result ends up in your templates 16 | if (!options.variable) options.variable = 'githubEvents'; 17 | 18 | var client = new GitHub({ 19 | version: "3.0.0" 20 | }); 21 | 22 | var request; 23 | 24 | // separate client options from the options used in this file 25 | var clientOptions = {}; 26 | for (var k in options){ 27 | if (!({interval: 1, maxFailingRequests: 1, variable: 1}[k])){ 28 | clientOptions[k] = options[k]; 29 | } 30 | } 31 | 32 | // using the data from an org or from an user 33 | if (options.org){ 34 | request = function(callback){ 35 | client.events.getFromOrg(clientOptions, callback); 36 | }; 37 | } else if (options.user){ 38 | request = function(callback){ 39 | client.events.getFromUser(clientOptions, callback); 40 | }; 41 | } 42 | 43 | if (!request){ 44 | throw new Error("You either need to set a user or an organisation"); 45 | } 46 | 47 | var errors = 0; 48 | var events; 49 | var timer; 50 | 51 | // periodically fetching the GitHub API. 52 | var poller = function(){ 53 | request(function(err, data){ 54 | if (err){ 55 | console.error(err); 56 | // too many errors after each other, stop polling GitHub 57 | if (++errors < options.maxFailingRequests){ 58 | clearInterval(timer); 59 | } 60 | } else { 61 | console.log('recieved GitHub events data'); 62 | errors = 0; 63 | events = data; 64 | } 65 | }); 66 | return poller; 67 | }; 68 | 69 | timer = setInterval(poller(), options.interval); 70 | 71 | return function(req, res, next){ 72 | res.locals[options.variable] = events; 73 | if (next) next(); 74 | }; 75 | 76 | }; 77 | -------------------------------------------------------------------------------- /middleware/twitter.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var keys = require('./../config/api_keys.json').twitter; 4 | var twitter = require('twitter'); 5 | var twit = new twitter(keys); 6 | 7 | module.exports = function(interval){ 8 | 9 | var tweets; 10 | 11 | // periodically fetching the Twiter API. 12 | var poller = function(){ 13 | twit.get('/statuses/user_timeline.json', { 14 | include_entities: true, 15 | screen_name: 'mootools' 16 | }, function(err, data, res){ 17 | if (err) console.log(err); 18 | if (res && res.statusCode == 200){ 19 | tweets = data.slice(0, 3); 20 | console.log('recieved Twitter events data'); 21 | } 22 | }); 23 | return poller; 24 | }; 25 | 26 | setInterval(poller(), (interval == null) ? 1000 * 60 * 30 : interval); 27 | 28 | return function(req, res, next){ 29 | res.locals.twitter = tweets; 30 | if (next) next(); 31 | }; 32 | }; 33 | -------------------------------------------------------------------------------- /more/guides/.gitignore: -------------------------------------------------------------------------------- 1 | *.json 2 | *.html 3 | -------------------------------------------------------------------------------- /more/guides/drag.move.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Drag.Move 3 | date: 2014-10-08 4 | author: Aaron Newton 5 | --- 6 | 7 | *Drag.Move* extends *Drag* to support moving an element around the page. 8 | 9 | The usage is pretty straight forward: 10 | 11 | ```js 12 | new Drag.Move($('fxTarget')); 13 | ``` 14 | 15 | It takes all the options that *Drag* takes and adds two new ones: 16 | 17 | 18 | ### Element.makeDraggable() 19 | 20 | *Element* has a shortcut that's really about the same number of characters (actually, it's one more), so it's not much of a shortcut. Still, it's easy enough to use: 21 | 22 | 23 | ```js 24 | $('fxTarget').makeDraggable(); 25 | ``` 26 | 27 | 28 | That's it. You're done. 29 | 30 | Now, if you want to do things like capture the location of the object when the user drops it (and then maybe send that info back to the server via ajax so you can remember its location for another visit), you can specify a bunch of additional options. 31 | 32 | ```js 33 | $('fxTarget').makeDraggable({ 34 | onStart: function(){ 35 | console.log("start left: %s, top: %s", this.getLeft(), this.getTop()); 36 | }.bind($('fxTarget')), 37 | onDrag: function(){ 38 | console.log("drag start left: %s, top: %s", this.getLeft(), this.getTop()); 39 | }.bind($('fxTarget')) 40 | }); 41 | ``` 42 | 43 | There's more stuff you can add here like snapping, and container so that you can drag an element only within the confines of another. Snap let's you require the user to drag the element a certain distance before it starts to follow the mouse (the default is 6px). 44 | 45 | 46 | ```js 47 | $('dragExample').makeDraggable({ 48 | snap: 25, 49 | container: 'snapContainer' 50 | }); 51 | ``` 52 | 53 | 54 | If you want to keep a handle on the instance of the *Drag.Move* class so you can interact with it (for instance, to disable dragging at a later point), you can do so with either syntax: 55 | 56 | 57 | ```js 58 | var myDraggable = new Drag.Move($(element), { 59 | options... 60 | }); 61 | var myDraggable = $(element).makeDraggable({ 62 | options... 63 | }); 64 | ``` 65 | 66 | Here is the [documentation for Drag.Move.js](/docs/more/Drag/Drag.Move). 67 | -------------------------------------------------------------------------------- /more/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var project = 'more'; 4 | 5 | var docs = require('../middleware/docs')(project, { 6 | title: "MooTools More Documentation" 7 | }); 8 | 9 | var guides = require('../middleware/guides')(project, { 10 | title: "MooTools More Guides" 11 | }); 12 | 13 | var hash = require('../middleware/buildHash')(project); 14 | 15 | var pkgProject = require('../package.json')._projects[project]; 16 | var lastVersion = pkgProject.versions[0]; 17 | 18 | module.exports = function(app){ 19 | 20 | var more = function(req, res, next){ 21 | res.locals.site = 'more'; 22 | next(); 23 | }; 24 | 25 | app.get('/more', more, function(req, res){ 26 | res.render('more/index', { 27 | navigation: 'more', 28 | project: 'More', 29 | version: lastVersion, 30 | title: "MooTools More" 31 | }); 32 | }); 33 | 34 | app.get('/more/builder/:hash?', hash, more, function(req, res){ 35 | res.render('builder/index', { 36 | title: 'MooTools More Builder', 37 | navigation: 'builder', 38 | project: 'More', 39 | hashDependencies: res.locals.hash || [], 40 | version: lastVersion, 41 | dependencies: require('../builder/dependencies.js')(project, lastVersion) 42 | }); 43 | }); 44 | 45 | app.get('/more/docs', more, docs); 46 | app.get('/more/docs/:version', more, docs); 47 | app.all('/more/docs/:version/*', more, docs); 48 | 49 | app.get('/more/guides', more, guides.index); 50 | app.get('/more/guides/:guide', more, guides.article); 51 | 52 | // hash build redirect 53 | app.get('/more/:hash', function(req, res){ 54 | res.redirect('/more/builder/' + req.params.hash); 55 | }); 56 | 57 | }; 58 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mootools-website", 3 | "version": "0.2.1", 4 | "description": "Website for MooTools", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "node tests/run.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/mootools/website.git" 12 | }, 13 | "keywords": [ 14 | "mootools", 15 | "mootools-core", 16 | "mootools-more" 17 | ], 18 | "author": "Arian Stolwijk", 19 | "license": "MIT", 20 | "readmeFilename": "README.md", 21 | "dependencies": { 22 | "async": "0.2", 23 | "body-parser": "~1.9.0", 24 | "colors": "0.6", 25 | "dateable": "0.3", 26 | "errorhandler": "~1.2.0", 27 | "event-stream": "~3.0.16", 28 | "express": "4.9", 29 | "forever-monitor": "~1.6", 30 | "front-matter": "~0.1.3", 31 | "fs-extra": "^0.22.1", 32 | "github": "0.1", 33 | "highlight.js": "7.3", 34 | "jade": "0.31", 35 | "js-yaml": "^3.2.2", 36 | "marked": "~0.3.9", 37 | "md5": "^1.0.0", 38 | "mootools-packager": "~0.0.2", 39 | "morgan": "~1.9.1", 40 | "needle": "~0.6.3", 41 | "nib": "0.9", 42 | "prime": "0.1", 43 | "request": "2.88", 44 | "semver": "*", 45 | "serve-favicon": "^2.1.5", 46 | "slugify": "0.1", 47 | "sqlite3": "^3.0.2", 48 | "stylus": "0.32", 49 | "twitter": "^1.2.5", 50 | "uglify-js": "^2.4.15", 51 | "unzip": "~0.1.9", 52 | "wrapup": "0.12", 53 | "wrapup-middleware": "0.0.x" 54 | }, 55 | "devDependencies": { 56 | "mocha": "1.11", 57 | "expect.js": "0.3.x" 58 | }, 59 | "_buildOutput": "cache", 60 | "_projects": { 61 | "core": { 62 | "repository": "https://github.com/mootools/mootools-core", 63 | "docsIntro": "Docs/Intro.md", 64 | "versions": [ 65 | "1.6.0", 66 | "1.5.2", 67 | "1.5.1", 68 | "1.4.5", 69 | "1.3.2", 70 | "1.2.6" 71 | ] 72 | }, 73 | "more": { 74 | "repository": "https://github.com/mootools/mootools-more", 75 | "docsIntro": "Docs/More/More.md", 76 | "versions": [ 77 | "1.6.0", 78 | "1.5.2", 79 | "1.5.1", 80 | "1.5.0", 81 | "1.4.0.1", 82 | "1.3.2.1", 83 | "1.2.5.1", 84 | "1.0.2" 85 | ] 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /public/css/.gitignore: -------------------------------------------------------------------------------- 1 | style.css 2 | -------------------------------------------------------------------------------- /public/fonts/entypo-social.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/fonts/entypo-social.eot -------------------------------------------------------------------------------- /public/fonts/entypo-social.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Copyright (C) 2013 by original authors @ fontello.com 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /public/fonts/entypo-social.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/fonts/entypo-social.ttf -------------------------------------------------------------------------------- /public/fonts/entypo-social.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/fonts/entypo-social.woff -------------------------------------------------------------------------------- /public/fonts/entypo.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/fonts/entypo.eot -------------------------------------------------------------------------------- /public/fonts/entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/fonts/entypo.ttf -------------------------------------------------------------------------------- /public/fonts/entypo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/fonts/entypo.woff -------------------------------------------------------------------------------- /public/fonts/font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/fonts/font -------------------------------------------------------------------------------- /public/googlea106970571919746.html: -------------------------------------------------------------------------------- 1 | google-site-verification: googlea106970571919746.html -------------------------------------------------------------------------------- /public/images/avatars/Valerio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/Valerio.png -------------------------------------------------------------------------------- /public/images/avatars/aaron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/aaron.png -------------------------------------------------------------------------------- /public/images/avatars/arian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/arian.png -------------------------------------------------------------------------------- /public/images/avatars/chris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/chris.png -------------------------------------------------------------------------------- /public/images/avatars/christoph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/christoph.png -------------------------------------------------------------------------------- /public/images/avatars/cristian.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/cristian.jpg -------------------------------------------------------------------------------- /public/images/avatars/david.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/david.png -------------------------------------------------------------------------------- /public/images/avatars/djamil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/djamil.png -------------------------------------------------------------------------------- /public/images/avatars/fabio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/fabio.jpg -------------------------------------------------------------------------------- /public/images/avatars/fakedarren.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/fakedarren.png -------------------------------------------------------------------------------- /public/images/avatars/guillermo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/guillermo.png -------------------------------------------------------------------------------- /public/images/avatars/harald.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/harald.jpg -------------------------------------------------------------------------------- /public/images/avatars/jacob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/jacob.png -------------------------------------------------------------------------------- /public/images/avatars/jan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/jan.png -------------------------------------------------------------------------------- /public/images/avatars/keeto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/keeto.png -------------------------------------------------------------------------------- /public/images/avatars/michelle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/michelle.png -------------------------------------------------------------------------------- /public/images/avatars/olmo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/olmo.png -------------------------------------------------------------------------------- /public/images/avatars/pietrogregorini.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/pietrogregorini.jpg -------------------------------------------------------------------------------- /public/images/avatars/scott_kyle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/scott_kyle.png -------------------------------------------------------------------------------- /public/images/avatars/sebastian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/sebastian.png -------------------------------------------------------------------------------- /public/images/avatars/sergio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/sergio.png -------------------------------------------------------------------------------- /public/images/avatars/thomas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/thomas.png -------------------------------------------------------------------------------- /public/images/avatars/tim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/tim.png -------------------------------------------------------------------------------- /public/images/avatars/tom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/tom.png -------------------------------------------------------------------------------- /public/images/avatars/yaroslaff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/avatars/yaroslaff.png -------------------------------------------------------------------------------- /public/images/books/mootools_1point2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/books/mootools_1point2.jpg -------------------------------------------------------------------------------- /public/images/books/mootools_essentials.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/books/mootools_essentials.jpg -------------------------------------------------------------------------------- /public/images/books/pro_javascript_with_mootools.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/books/pro_javascript_with_mootools.jpg -------------------------------------------------------------------------------- /public/images/credits/mediatemple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/credits/mediatemple.png -------------------------------------------------------------------------------- /public/images/favicon/mootools.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/favicon/mootools.ico -------------------------------------------------------------------------------- /public/images/favicon/mootools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/favicon/mootools.png -------------------------------------------------------------------------------- /public/images/icon/core.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/icon/core.png -------------------------------------------------------------------------------- /public/images/icon/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/icon/more.png -------------------------------------------------------------------------------- /public/images/logo/core-negative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/logo/core-negative.png -------------------------------------------------------------------------------- /public/images/logo/core.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/logo/core.png -------------------------------------------------------------------------------- /public/images/logo/mootools-payoff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/logo/mootools-payoff.png -------------------------------------------------------------------------------- /public/images/logo/mootools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/logo/mootools.png -------------------------------------------------------------------------------- /public/images/logo/more-negative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/logo/more-negative.png -------------------------------------------------------------------------------- /public/images/logo/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/public/images/logo/more.png -------------------------------------------------------------------------------- /public/js/.gitignore: -------------------------------------------------------------------------------- 1 | main.js 2 | -------------------------------------------------------------------------------- /service.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var app = 'index', 4 | name = 'mootools-website'; 5 | 6 | var Monitor = require('forever-monitor').Monitor, 7 | log = require('./lib/log.js'); 8 | 9 | var monitor = new Monitor(__dirname + '/' + app + '.js', { 10 | silent: true, 11 | minUptime: 2000, 12 | args: process.argv.splice(2) 13 | }); 14 | 15 | log.attach(monitor); 16 | try { 17 | log.configure(require('./config/log.json')); 18 | } catch (error){ 19 | } 20 | 21 | function stop(){ 22 | log.error('** Requested stop of ' + name); 23 | monitor.stop(); 24 | } 25 | 26 | function reload(){ 27 | log.error('** Requested reload of ' + name); 28 | log.reload(); 29 | monitor.restart(); 30 | } 31 | 32 | function reloadLogs(){ 33 | log.error('** Requested log reload of ' + name); 34 | log.reload(); 35 | } 36 | 37 | process.addListener('SIGINT', stop); 38 | process.addListener('SIGTERM', stop); 39 | process.addListener('SIGHUP', reload); 40 | process.addListener('SIGUSR2', reloadLogs); 41 | 42 | monitor.addListener('start', function(){ 43 | log.error('** Starting ' + name + ' monitor'); 44 | }); 45 | 46 | monitor.addListener('stop', function(){ 47 | log.error('** Stopping ' + name + ' monitor'); 48 | }); 49 | 50 | monitor.addListener('exit:code', function(code){ 51 | if (code == null) code = 0; 52 | log.error('** Detected ' + name + ' process exited (exit code ' + code + ')'); 53 | }); 54 | 55 | monitor.addListener('restart', function(){ 56 | log.error('** Restarting ' + name + ' process (#' + monitor.times + ')'); 57 | }); 58 | 59 | monitor.addListener('error', function(error){ 60 | if (error.stack){ 61 | log.error('** ' + error.stack); 62 | } else if (error.message) { 63 | log.error('** Error: ' + error.message); 64 | } else { 65 | log.error('** Error: ' + error); 66 | } 67 | }); 68 | 69 | monitor.start(); 70 | -------------------------------------------------------------------------------- /tests/database/core.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/tests/database/core.db -------------------------------------------------------------------------------- /tests/database/more.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mootools/website/0a9bedcbe86ef196d78fd18b32ab4ee225ef8e89/tests/database/more.db -------------------------------------------------------------------------------- /tests/database/newDatabase.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var path = require('path'); 3 | var file = path.join(__dirname, 'more.db'); 4 | var exists = fs.existsSync(file); 5 | var sqlite3 = require('sqlite3').verbose(); 6 | var sampleData = require('./sampleData.json'); 7 | 8 | if (!exists){ 9 | console.log('Creating DB file.'); 10 | fs.openSync(file, 'w'); 11 | } 12 | 13 | var db = new sqlite3.Database(file); 14 | db.serialize(function(){ 15 | 16 | if (!exists) db.run("CREATE TABLE hashes (md5, packages, date)"); 17 | 18 | if (!exists) sampleData.forEach(function (sample) { 19 | var values = sample; 20 | db.run('INSERT INTO hashes (md5, packages, date) VALUES (?, ?, ?)', values, function(error){ 21 | if (error) throw error; 22 | }); 23 | }); 24 | 25 | db.each("SELECT md5, packages, date FROM hashes", function(err, row){ 26 | console.log(row.md5); 27 | console.log(row.packages); 28 | console.log(row.date); 29 | console.log('.....................'); 30 | }); 31 | }); 32 | 33 | db.close(); 34 | -------------------------------------------------------------------------------- /tests/database/sampleData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "1": "e8f3003df2d0919c1091b11854a53e9b", 4 | "2": "Core/Core;Core/String;Core/Event;Core/Browser;Core/Class;Core/Element.Style;Core/Element.Event;Core/Element.Delegation;Core/Element.Dimensions;Core/Fx;Core/Fx.CSS;Core/Fx.Tween;Core/Fx.Morph;Core/Fx.Transitions;Core/Request.HTML;Core/Request.JSON;Core/Cookie;Core/DOMReady", 5 | "3": "1415017941" 6 | }, 7 | { 8 | "1": "2aa60ee2887f132a617b2a49754ef7fd", 9 | "2": "Core/Core;Core/Array;Core/String;Core/Number;Core/Function;Core/Object;Core/Event;Core/Browser;Core/Request;Core/Request.HTML;Core/Request.JSON;Core/Cookie;Core/JSON", 10 | "3": "1415017221" 11 | }, 12 | { 13 | "1": "d1d2b98d3cae0d77aa29422996e67802", 14 | "2": "Core/Core;Core/Event;Core/Element;Core/Element.Style;Core/Element.Delegation;Core/Element.Dimensions;Core/Fx;Core/Fx.Tween;Core/Fx.Morph;Core/JSON;Core/DOMReady", 15 | "3": "1414767773" 16 | }, 17 | { 18 | "1": "73a246bd9f16ce89e3ab685ff1e08599", 19 | "2": "Core/Array;Core/Function;Core/Event;Core/Class;Core/Element;Core/Element.Event;Core/Fx", 20 | "3": "1414689276" 21 | }, 22 | { 23 | "1": "22af847e17dad82b2f32682e0f617e3e", 24 | "2": "Core/Core;Core/Array;Core/String;Core/Number;Core/Function;Core/Object;Core/Event;Core/Browser;Core/Class;Core/Class.Extras;Core/Slick.Parser;Core/Slick.Finder;Core/Element;Core/Element.Style;Core/Element.Event;Core/Element.Dimensions;Core/Fx;Core/Fx.CSS;Core/Fx.Tween;Core/Fx.Morph;Core/Fx.Transitions;Core/Request;Core/Request.HTML;Core/Request.JSON;Core/Cookie;Core/JSON;Core/DOMReady", 25 | "3": "1414636765" 26 | } 27 | ] 28 | -------------------------------------------------------------------------------- /tests/lib/waitForIt.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var expect = require('expect.js'); 4 | var waitForIt = require('../../lib/waitForIt'); 5 | 6 | describe('waitForIt', function(){ 7 | 8 | it('should call all callbacks when the result becomes available', function(done){ 9 | var _a = 0, _b = 0, _c = 0; 10 | var a = function(e, x){ _a = x; }; 11 | var b = function(e, x){ _b = x; }; 12 | var c = function(e, x){ _c = x; }; 13 | 14 | var fn = waitForIt(function(cb){ 15 | setTimeout(function(){ 16 | cb(null, 4); 17 | }, 10); 18 | }).get(a); 19 | 20 | fn.get(b); 21 | 22 | setTimeout(function(){ 23 | expect(_a).to.be(4); 24 | expect(_b).to.be(4); 25 | 26 | fn.get(c); 27 | 28 | expect(_c).to.be(4); 29 | done(); 30 | }, 20); 31 | 32 | }); 33 | 34 | }); 35 | -------------------------------------------------------------------------------- /tests/run.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var spawn = require('child_process').spawn; 4 | 5 | spawn('../node_modules/.bin/mocha', [ 6 | './lib/*' 7 | ], { 8 | cwd: __dirname, 9 | stdio: 'inherit' 10 | }).on('close', function(code){ 11 | process.exit(code); 12 | }); 13 | -------------------------------------------------------------------------------- /views/blog/feed.jade: -------------------------------------------------------------------------------- 1 | doctype xml 2 | rss(version="2.0", xmlns:atom="http://www.w3.org/2005/Atom", xmlns:dc="http://purl.org/dc/elements/1.1/") 3 | channel 4 | title= title 5 | link= blogURL 6 | atom:link(href= feedURL, rel="self", type="application/rss+xml") 7 | description= description 8 | language= language 9 | if posts.length 10 | lastBuildDate= new Date(posts[0].date).toUTCString() 11 | each post in posts 12 | - var permalink = [blogURL, post.permalink].join('/'); 13 | item 14 | title= post.title 15 | link= permalink 16 | dc:creator 17 | | 20 | each tag in post.tags 21 | category 22 | | 25 | description 26 | | 29 | pubDate= new Date(post.date).toUTCString() 30 | guid(isPermaLink='true')= permalink 31 | -------------------------------------------------------------------------------- /views/blog/index.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/home 2 | include ./partials/postedUnder 3 | 4 | block main 5 | .overview.clearfix.wrapper.blog 6 | 7 | each post in posts 8 | a(href="/blog/#{post.permalink}") 9 | h2 #{post.title} 10 | 11 | small 12 | space = "" 13 | | Written by #{post.author} on #{dateable(post.date, "D MMMM YYYY")} 14 | mixin postedUnder(post.tags) 15 | a(href="/blog/#{post.permalink}/#disqus_thread", data-disqus-identifier).comments 16 | | Comments 17 | 18 | .post.short 19 | | !{post.summary} 20 | 21 | hr 22 | 23 | div.pagination.clearfix 24 | if nextPage 25 | if tag 26 | a.older(href="/blog/category/#{tag}/page/#{nextPage}") 27 | span.icon.previous 28 | | Older Entries 29 | else 30 | a.older(href="/blog/page/#{nextPage}") 31 | span.icon.previous 32 | |Older Entries 33 | 34 | if previousPage 35 | if tag 36 | a.newer(href="/blog/category/#{tag}/page/#{previousPage}") 37 | span.icon.next 38 | | Newer Entries 39 | else 40 | a.newer(href="/blog/page/#{previousPage}") 41 | span.icon.next 42 | | Newer Entries 43 | 44 | include ../partials/disqus_count 45 | -------------------------------------------------------------------------------- /views/blog/partials/postedUnder.jade: -------------------------------------------------------------------------------- 1 | mixin postedUnder(tags) 2 | space = "" 3 | if tags.length > 0 4 | | – Posted under #{space} 5 | each tag, i in tags 6 | a(href="/blog/category/#{tag.toLowerCase()}") 7 | | #{tag} 8 | if i != tags.length - 1 9 | | , #{space} 10 | 11 | -------------------------------------------------------------------------------- /views/blog/post.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/main 2 | 3 | include ./partials/postedUnder 4 | 5 | block main 6 | .clearfix.wrapper.blog 7 | h2 8 | | #{post.title} 9 | 10 | small 11 | space = "" 12 | | Written by #{post.author} on #{dateable(post.date, "D MMMM YYYY")} 13 | mixin postedUnder(post.tags) 14 | 15 | .post 16 | | !{content} 17 | 18 | include ../partials/disqus_thread 19 | -------------------------------------------------------------------------------- /views/books/index.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/home 2 | 3 | block about 4 | .overview.books 5 | 6 | each book in books 7 | .about 8 | div.clearfix.wrapper 9 | div.introduction 10 | h2 11 | | #{book.title} 12 | p 13 | | !{book.description} 14 | 15 | div.cover 16 | img(src="#{book.cover}") 17 | p 18 | a(href='#{book.buy_link}', target='_blank', alt='#{book.alt_tag}') Grab a copy here 19 | 20 | block main 21 | 22 | block about 23 | 24 | hr 25 | 26 | block updates 27 | -------------------------------------------------------------------------------- /views/core/docs.jade: -------------------------------------------------------------------------------- 1 | extends page 2 | 3 | block main 4 | include ../partials/docs 5 | mixin docs(content, versions, "/core/docs/") 6 | -------------------------------------------------------------------------------- /views/core/guide.jade: -------------------------------------------------------------------------------- 1 | extends page 2 | 3 | block main 4 | include ../partials/guide 5 | -------------------------------------------------------------------------------- /views/core/guides.jade: -------------------------------------------------------------------------------- 1 | extends page 2 | 3 | block main 4 | .guides.overview.clearfix.wrapper 5 | each guide in guides 6 | .guide 7 | h3 8 | a(href="/core/guides/" + guide.slug)= guide.title 9 | | !{guide.author} 10 | -------------------------------------------------------------------------------- /views/core/index.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/home 2 | 3 | block header-logo 4 | include ../partials/header/header-logo 5 | 6 | block header-menu 7 | include ../partials/header/header-menu 8 | 9 | block summary 10 | include partials/summary 11 | 12 | block overview 13 | include partials/overview 14 | 15 | block features 16 | include partials/features 17 | -------------------------------------------------------------------------------- /views/core/page.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/home 2 | 3 | block header-logo 4 | include ../partials/header/header-logo 5 | 6 | block header-menu 7 | include ../partials/header/header-menu 8 | -------------------------------------------------------------------------------- /views/core/partials/big-icon.jade: -------------------------------------------------------------------------------- 1 | .big-icon 2 | img(src='/images/icon/core.png', alt='') -------------------------------------------------------------------------------- /views/core/partials/features.jade: -------------------------------------------------------------------------------- 1 | section 2 | a(href='/core/docs') 3 | h2 Learn 4 | p.darker Check out the complete documentation and start using Core today. 5 | p.color 6 | | Documentation 7 | span.arrow(aria-hidden='true') 8 | 9 | // 10 | section 11 | a(href='/core/guides') 12 | h2 Try 13 | p.darker Want to know how to use it? See core in action and discover how powerful it is. 14 | p.color 15 | | Tutorials 16 | span.arrow(aria-hidden='true') 17 | 18 | section 19 | a(href='https://github.com/mootools/mootools-core') 20 | h2 Contribute 21 | p.darker Report bugs issues or help us to extend our documentation. 22 | p.color 23 | | GitHub Repository 24 | span.arrow(aria-hidden='true') 25 | 26 | -------------------------------------------------------------------------------- /views/core/partials/overview.jade: -------------------------------------------------------------------------------- 1 | h2 Modules Overview 2 | div 3 | h3 4 | span.command MooTools Class 5 | p 6 | | A simple MooTools Class example. 7 | :highlight(lang=js) 8 | var Animal = new Class({ 9 | initialize: function(age){ 10 | this.age = age; 11 | } 12 | }); 13 | var Cat = new Class({ 14 | Extends: Animal, 15 | initialize: function(name, age){ 16 | this.parent(age); // calls initalize method of Animal class 17 | this.name = name; 18 | } 19 | }); 20 | var myCat = new Cat('Micia', 20); 21 | alert(myCat.name); // alerts 'Micia'. 22 | alert(myCat.age); // alerts 20. 23 | 24 | div 25 | h3 26 | span.command Implement 27 | p This method implements a new method to the Array type's prototype. 28 | :highlight(lang=js) 29 | Array.implement('limitTop', function(top){ 30 | for (var i = 0, l = this.length; i < l; i++){ 31 | if (this[i] > top) this[i] = top; 32 | } 33 | return this; 34 | }); 35 | 36 | [1, 2, 3, 4, 5, 6].limitTop(4); // returns [1, 2, 3, 4, 4, 4] 37 | 38 | p.docs 39 | a(href='/core/docs') 40 | span.arrow Full Documentation 41 | -------------------------------------------------------------------------------- /views/core/partials/summary.jade: -------------------------------------------------------------------------------- 1 | include ../../partials/older-version-select 2 | 3 | p.summary 4 | | MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer. 5 | br 6 | | It allows you to write powerful, flexible, and cross-browser code with its elegant, well documented, and coherent API. 7 | 8 | p.description.lighter MooTools is about enhancing JavaScript. 9 | 10 | .use 11 | 12 | ul.clearfix 13 | li 14 | form(method="post", action="../builder") 15 | input(hidden, name="project", value="#{project}") 16 | input(hidden, name="version", value="#{version}") 17 | a.button.highlighted.getFile(href='#', download) 18 | span 19 | | Download 20 | span.version Ver. #{version} 21 | span.icon.download(aria-hidden='true') 22 | li 23 | a.button.git(href='http://github.com/mootools/mootools-core') 24 | span 25 | | GitHub 26 | br 27 | | Repository 28 | span.icon.github(aria-hidden='true') 29 | 30 | mixin older-version-select(versions) 31 | 32 | p.license 33 | | To choose which modules to use visit the 34 | a(href='#{site}/builder') builder page. 35 | 36 | 37 | include big-icon 38 | -------------------------------------------------------------------------------- /views/css/builder.styl: -------------------------------------------------------------------------------- 1 | 2 | .builder 3 | 4 | margin-top 2em 5 | margin-bottom 2em 6 | 7 | .header 8 | h1 9 | float left 10 | margin 1.5em 0em 0.5em 11 | width 100% 12 | 13 | .save 14 | float left 15 | clear none 16 | margin-right 1em 17 | 18 | .save 19 | clear both 20 | 21 | label 22 | display block 23 | margin-top 1em 24 | position relative 25 | 26 | label.select:after 27 | top 7px 28 | select 29 | width 100% 30 | 31 | input[type="checkbox"] 32 | margin-right 0.5em 33 | vertical-align bottom 34 | 35 | input[type="submit"] 36 | margin-top 0.5em 37 | padding 0.5em 38 | width 100% 39 | text-align left 40 | 41 | .icon.download 42 | position absolute 43 | right 0.25em 44 | top 0 45 | line-height 1em 46 | 47 | form 48 | margin-top 1em 49 | 50 | .step 51 | clear both 52 | font-weight 400 53 | margin-top 1em 54 | 55 | 56 | @media only screen and (min-width: 48em) /* More or equal to 768 pixels */ 57 | 58 | .builder 59 | .save 60 | width 35% 61 | 62 | table 63 | width 100% 64 | 65 | tr 66 | border-bottom 1px solid #acaaa7 67 | td 68 | padding .3em 69 | 70 | &:first-child 71 | width 5% 72 | & + td 73 | width 15% 74 | & + td + td 75 | width 20% 76 | & + td + td +td 77 | width 60% 78 | -------------------------------------------------------------------------------- /views/css/colorscheme.styl: -------------------------------------------------------------------------------- 1 | color_scheme(str, color) 2 | &.{str} 3 | color color 4 | 5 | pre span 6 | color_scheme('keyword', #b05098) 7 | color_scheme('number', #429bc1) 8 | color_scheme('string', #83a440) 9 | color_scheme('comment', #9c9ea0) 10 | -------------------------------------------------------------------------------- /views/css/developers.styl: -------------------------------------------------------------------------------- 1 | /* DEVELOPERS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 | 3 | div.developers 4 | width 100% 5 | 6 | h1 7 | font-size 2em 8 | color #7d8aa5 9 | 10 | section 11 | padding 0em 0em 1em 12 | color #777571 13 | float left 14 | width 100% 15 | clear both 16 | 17 | img 18 | float left 19 | height 65px 20 | margin 0.4em 1em 21 | 22 | h3, p.inline 23 | display inline 24 | 25 | p.small 26 | font-size 0.9em 27 | a 28 | color #7d8aa5 29 | -------------------------------------------------------------------------------- /views/css/entypo-social.styl: -------------------------------------------------------------------------------- 1 | 2 | icon-github() { content '\e803' } /* '' */ 3 | icon-twitter() { content '\e802' } /* '' */ 4 | icon-facebook-squared() { content '\e800' } /* '' */ 5 | icon-gplus() { content '\e801' } /* '' */ 6 | -------------------------------------------------------------------------------- /views/css/entypo.styl: -------------------------------------------------------------------------------- 1 | 2 | icon-check() { content '\e801' } /* '' */ 3 | icon-up-open-big() { content '\e813' } /* '' */ 4 | icon-minus-squared() { content '\e807' } /* '' */ 5 | icon-arrow-combo() { content '\e800' } /* '' */ 6 | icon-down-circled() { content '\e802' } /* '' */ 7 | icon-left-circled() { content '\e803' } /* '' */ 8 | icon-right-circled() { content '\e804' } /* '' */ 9 | icon-up-circled() { content '\e805' } /* '' */ 10 | icon-down-open() { content '\e808' } /* '' */ 11 | icon-left-open() { content '\e811' } /* '' */ 12 | icon-plus-squared() { content '\e806' } /* '' */ 13 | icon-up-open() { content '\e80b' } /* '' */ 14 | icon-down-open-mini() { content '\e809' } /* '' */ 15 | icon-left-open-mini() { content '\e80d' } /* '' */ 16 | icon-right-open-mini() { content '\e80c' } /* '' */ 17 | icon-up-open-mini() { content '\e80a' } /* '' */ 18 | icon-down-open-big() { content '\e810' } /* '' */ 19 | icon-left-open-big() { content '\e80e' } /* '' */ 20 | icon-right-open-big() { content '\e80f' } /* '' */ 21 | icon-right-open() { content '\e812' } /* '' */ 22 | -------------------------------------------------------------------------------- /views/css/footer.styl: -------------------------------------------------------------------------------- 1 | /* F O O T E R * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 | 3 | #menu 4 | box-shadow #9c9ea0 0px 0px 30px 5 | padding 0 0 1em 6 | a 7 | border-radius 5px 8 | border solid #e5e3df 1px 9 | display block 10 | padding 0.6em 0 0.4em 11 | text-align center 12 | &:active, 13 | &:focus 14 | border-color #e5e3df 15 | 16 | img 17 | height 1.6em 18 | 19 | #sitemap 20 | font-size 0.8em 21 | h3 22 | color #cbd0db 23 | font-weight 400 24 | 25 | ul li a 26 | padding 0em 0.5em 27 | margin-left -0.5em 28 | display block 29 | span.icon 30 | margin-right 0.5em 31 | font-size 100% 32 | 33 | #credits 34 | font-size 0.8em 35 | p 36 | margin 0 0 1em 37 | 38 | img.mootools 39 | width 150px 40 | padding 0.5em 41 | margin-left -0.5em 42 | p.mediatemple a 43 | background url("/images/credits/mediatemple.png") no-repeat left top 44 | background-size auto 16px 45 | color #dedfdf 46 | font-size 0.85em 47 | font-weight 300 48 | padding-left 46px 49 | &:active, 50 | &:focus 51 | color #dedfdf !important 52 | -------------------------------------------------------------------------------- /views/css/guides.styl: -------------------------------------------------------------------------------- 1 | /* G U I D E S * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 | 3 | .guides 4 | padding-bottom 2em 5 | 6 | .content:first-child h1 7 | border 0 8 | margin 0 9 | padding 0 10 | 11 | .content 12 | margin 0 0 2em 13 | 14 | h1 15 | border-top solid 1px #e5e3df 16 | margin 2em 0 0 17 | padding 1.5em 0 0 18 | 19 | h2 20 | background #777571 21 | border-radius 5px 22 | margin 2em 0 0.5em 23 | padding 0.15em 0.5em 0.25em 24 | a 25 | color #ffffff !important 26 | 27 | h3 28 | border-radius 5px 29 | border solid #e5e3df 1px 30 | font-weight 400 31 | margin 1.5em 0 0 32 | padding 0.5em 33 | 34 | h4 35 | border-radius 5px 36 | border solid #f4f1ed 1px 37 | color #acaaa7 38 | font-size 1.125em 39 | font-weight 400 40 | margin 1.5em 0 0.5em 41 | padding 0.15em 0.5em 0.25em 42 | 43 | h5 44 | color #acaaa7 45 | font-size 1em 46 | font-weight 400 47 | margin 1.5em 0 0 48 | 49 | p 50 | margin 0.5em 0 51 | padding 0.4em 52 | 53 | ol 54 | counter-reset li /* Initiate a counter */ 55 | list-style none /* Remove default numbering */ 56 | *list-style decimal /* Keep using default numbering for IE6/7 */ 57 | position relative 58 | li 59 | margin-top 0.5em 60 | padding-left 1.5em 61 | &:before 62 | background #f4f1ed 63 | border-radius 3px 64 | content counter(li) 65 | counter-increment li 66 | font-size 0.75em 67 | font-weight 600 68 | left 0 69 | padding 0.15em 0.5em 70 | position absolute 71 | 72 | ul li 73 | margin 0.5em 0 0 74 | &:after 75 | icon-right-open-mini() 76 | float left 77 | font-family "Entypo" 78 | font-size 100% 79 | margin 0.2em 0.5em 0 0 80 | 81 | pre 82 | margin 0.5em 0 0 83 | 84 | code 85 | padding 0.25em 0.5em 86 | -------------------------------------------------------------------------------- /views/css/header.styl: -------------------------------------------------------------------------------- 1 | /* H E A D E R * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 | 3 | background() 4 | background arguments 5 | border-color arguments 6 | color #ffffff 7 | 8 | #global-bar 9 | box-shadow rgba(0,0,0,0.1) 0px 0px 30px 10 | padding-bottom 1em 11 | padding-top 1em 12 | position fixed 13 | width 100% 14 | background-color white 15 | z-index 100 16 | 17 | div.wrapper 18 | position relative 19 | div.right 20 | bottom 4px 21 | position absolute 22 | right 4% 23 | ul > li > a 24 | &:active, 25 | &:focus 26 | background(#9c9ea0) 27 | ul 28 | float left 29 | li 30 | float left 31 | margin-right 0.5em 32 | position relative 33 | a 34 | border-radius 3px 35 | color #414347 36 | font-size 1em 37 | padding 0.3em 0.5em 0.3em 0.5em 38 | cursor pointer 39 | ul 40 | li.selected > a 41 | background(#414347) 42 | &:active, 43 | &:focus 44 | background(#9c9ea0) 45 | 46 | 47 | body.mootools #global-bar 48 | padding-bottom 2em 49 | padding-top 2em 50 | position relative 51 | h1 52 | padding 0 53 | 54 | #logo 55 | float left 56 | h1 img 57 | height 70px !important 58 | p img 59 | width 150px 60 | padding 0.5em 61 | img:focus, img:active 62 | background-color #ffffff 63 | 64 | #search 65 | float left 66 | margin-left 0.5em 67 | label 68 | display block 69 | position relative 70 | 71 | input 72 | background transparent 73 | border-color #dedfdf 74 | display block 75 | font-size 0.85em 76 | font-weight 400 77 | padding 0.4em 0.5em 78 | width 12em 79 | &:focus 80 | border-color #acaaa7 81 | #search-field 82 | color #777571 83 | 84 | #header 85 | border-color #7d8aa5 86 | nav ul li.selected a 87 | color #7d8aa5 88 | &:after 89 | border-color #7d8aa5 #7d8aa5 transparent transparent 90 | div.wrapper div.right 91 | bottom 0px 92 | 93 | h1 img 94 | height 60px 95 | width auto 96 | margin-top 1em 97 | 98 | a 99 | color #b1b9c8 100 | font-size 1.125em 101 | &:active, 102 | &:focus 103 | background transparent 104 | span 105 | background #777571 106 | border-radius 3px 107 | 108 | .core, .more 109 | > #header 110 | border-bottom solid #7d8aa5 1px 111 | margin-top 3em 112 | -------------------------------------------------------------------------------- /views/css/mootools.styl: -------------------------------------------------------------------------------- 1 | .mootools #header 2 | border-bottom 1px solid #ffffff 3 | 4 | .previous-version 5 | margin-top 1.0em 6 | 7 | label.select 8 | position relative 9 | 10 | @media screen and (-webkit-min-device-pixel-ratio: 0) /* Chrome and Safari only */ 11 | label.select:after 12 | content '<>' 13 | font 11px "Consolas", monospace 14 | padding 3px 15 | -webkit-transform rotate(90deg) 16 | -moz-transform rotate(90deg) 17 | -ms-transform rotate(90deg) 18 | transform rotate(90deg) 19 | right 8px 20 | top 3px 21 | position absolute 22 | pointer-events none 23 | 24 | #googleLink 25 | margin-left 2em 26 | opacity 0 27 | transition opacity .4s 28 | 29 | #googleLink.visible 30 | opacity 1 31 | -------------------------------------------------------------------------------- /views/css/style.styl: -------------------------------------------------------------------------------- 1 | @import reset 2 | @import entypo 3 | @import entypo-social 4 | @import global 5 | @import docs 6 | @import guides 7 | @import header 8 | @import footer 9 | @import media 10 | @import colorscheme 11 | @import mootools 12 | @import builder 13 | @import developers 14 | 15 | 16 | // temp until guides are up 17 | .features 18 | text-align left 19 | 20 | section 21 | width 50% 22 | -------------------------------------------------------------------------------- /views/developers/index.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/home 2 | 3 | mixin linkExist(result, type) 4 | if result[type] !== undefined 5 | | , follow on #{type}: #{result[type].split("https://")[1]} 6 | 7 | mixin content(result) 8 | section 9 | h3 !{result.Name} 10 | p.inline #{result.Nick} 11 | 12 | img(src=result.img) 13 | 14 | p.small Location: #{result.Location} 15 | 16 | p.small 17 | if result.Web !== undefined 18 | | Web: 19 | for webResult in result.Web 20 | a(href=webResult,target='_blank') #{webResult.replace(/^https?:\/\//, '')} 21 | else 22 | | No website defined 23 | 24 | mixin linkExist(result, 'Twitter') 25 | mixin linkExist(result, 'GitHub') 26 | 27 | 28 | block main 29 | 30 | .overview.clearfix.wrapper 31 | 32 | for section, key in developersData 33 | div.developers 34 | 35 | section 36 | h1 #{key} 37 | 38 | for person in section 39 | +content(person) 40 | -------------------------------------------------------------------------------- /views/errors/404.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/main 2 | 3 | block main 4 | 5 | .overview.wrapper.clearfix.blog 6 | h1 Oops, this is not the page you're looking for... 7 | 8 | space = "" 9 | 10 | p 11 | | Try going back to the #{space} 12 | a(href='/') homepage 13 | | . 14 | -------------------------------------------------------------------------------- /views/errors/500.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/main 2 | 3 | block main 4 | 5 | .overview.wrapper.clearfix.blog 6 | h1 Yikes! Mea culpa. Try, try, try again. 7 | 8 | space = "" 9 | 10 | p 11 | a(href='javascript:location.reload()') Try again 12 | |. 13 | -------------------------------------------------------------------------------- /views/layouts/home.jade: -------------------------------------------------------------------------------- 1 | extends main 2 | 3 | block main 4 | 5 | .overview.clearfix.wrapper 6 | block summary 7 | 8 | hr 9 | 10 | .modules.clearfix.wrapper 11 | section 12 | block overview 13 | hr 14 | 15 | .features.clearfix.wrapper 16 | block features 17 | 18 | -------------------------------------------------------------------------------- /views/more/docs.jade: -------------------------------------------------------------------------------- 1 | extends page 2 | 3 | block main 4 | include ../partials/docs 5 | mixin docs(content, versions, "/more/docs/") 6 | -------------------------------------------------------------------------------- /views/more/guide.jade: -------------------------------------------------------------------------------- 1 | extends page 2 | 3 | block main 4 | include ../partials/guide 5 | -------------------------------------------------------------------------------- /views/more/guides.jade: -------------------------------------------------------------------------------- 1 | extends page 2 | 3 | block main 4 | .guides.overview.clearfix.wrapper 5 | each guide in guides 6 | .guide 7 | h3 8 | a(href="/more/guides/" + guide.slug)= guide.title 9 | | !{guide.author} 10 | -------------------------------------------------------------------------------- /views/more/index.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/home 2 | 3 | block header-logo 4 | include ../partials/header/header-logo 5 | 6 | block header-menu 7 | include ../partials/header/header-menu 8 | 9 | block summary 10 | include partials/summary 11 | 12 | block overview 13 | include partials/overview 14 | 15 | block features 16 | include partials/features 17 | -------------------------------------------------------------------------------- /views/more/page.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/main 2 | 3 | block header-logo 4 | include ../partials/header/header-logo 5 | 6 | block header-menu 7 | include ../partials/header/header-menu 8 | -------------------------------------------------------------------------------- /views/more/partials/big-icon.jade: -------------------------------------------------------------------------------- 1 | .big-icon 2 | img(src='/images/icon/more.png', alt='') -------------------------------------------------------------------------------- /views/more/partials/features.jade: -------------------------------------------------------------------------------- 1 | section 2 | a(href='/more/docs') 3 | h2 Learn 4 | p.darker Check out the complete documentation and start using More today. 5 | p.color 6 | | Documentation 7 | span.arrow(aria-hidden='true') 8 | 9 | // 10 | section 11 | a(href='/more/guides') 12 | h2 Try 13 | p.darker Want to know how to use it? See more in action and discover how powerful it is. 14 | p.color 15 | | Tutorials 16 | span.arrow(aria-hidden='true') 17 | 18 | section 19 | a(href='https://github.com/mootools/mootools-more') 20 | h2 Contribute 21 | p.darker Report bugs issues or help us to extend our documentation. 22 | p.color 23 | | GitHub Repository 24 | span.arrow(aria-hidden='true') 25 | 26 | -------------------------------------------------------------------------------- /views/more/partials/overview.jade: -------------------------------------------------------------------------------- 1 | h2 Modules Overview 2 | 3 | div 4 | h3 5 | span.command Request.JSONP 6 | p 7 | | Creates a JSON request using script tag injection and handles the callbacks. 8 | :highlight(lang=js) 9 | var myJSONP = new Request.JSONP({ 10 | url: 'http://goo.gl/cCLshl?format=json', 11 | callbackKey: 'jsoncallback', 12 | data: { 13 | viewType: 'json', 14 | }, 15 | onRequest: function (url) { 16 | // a script tag is created with a 17 | // src attribute equal to url 18 | }, 19 | onComplete: function (data) { 20 | // the request was completed 21 | // and data received the server answer. 22 | console.log(data); // answer object with data 23 | } 24 | }).send(); 25 | 26 | div 27 | h3 28 | span.command HTML table constructor 29 | p 30 | | Builds table elements with methods to add rows quickly. 31 | :highlight(lang=js) 32 | var myTable = new HtmlTable({ 33 | properties: { 34 | border: 5, 35 | cellpadding: 5 36 | }, 37 | headers: ['fruits', 'colors'], 38 | rows: [ 39 | ['apple', 'red'], 40 | ['lemon', 'yellow'] 41 | ] 42 | }); 43 | 44 | myTable.inject($(document.body)); 45 | 46 | // and to push more data into it: 47 | myTable.push(['lime', 'green']); 48 | 49 | p.docs 50 | a(href='/more/docs') 51 | span.arrow Full Documentation 52 | -------------------------------------------------------------------------------- /views/more/partials/summary.jade: -------------------------------------------------------------------------------- 1 | p.summary 2 | | Welcome to MooTools More, 3 | br 4 | | the official plugin repository for the MooTools JavaScript Framework. 5 | br 6 | | More includes extra features to Core classes and UI. 7 | 8 | p.description.lighter MooTools More makes MooTools even More awesome. 9 | 10 | .use 11 | 12 | ul.clearfix 13 | li 14 | a.button.highlighted(href='/more/builder') 15 | span 16 | | Build 17 | span.version Ver. #{version} 18 | span.icon.download(aria-hidden='true') 19 | li 20 | a.button.git(href='http://github.com/mootools/mootools-more') 21 | span 22 | | GitHub 23 | br 24 | | Repository 25 | span.icon.github(aria-hidden='true') 26 | p.license 27 | 28 | include big-icon 29 | 30 | -------------------------------------------------------------------------------- /views/partials/GitHubEvents.jade: -------------------------------------------------------------------------------- 1 | mixin GitHubEvents(events, max) 2 | 3 | space = "" 4 | 5 | mixin PushEvent(event) 6 | a(href="https://github.com/#{event.actor.login}") #{event.actor.login}: 7 | | pushed #{space} 8 | if event.payload.size == 1 9 | a(href="https://github.com/#{event.repo.name}/commit/#{event.payload.head}") 10 | | #{event.payload.size} commit 11 | else 12 | a(href="https://github.com/#{event.repo.name}/compare/#{event.payload.before}...#{event.payload.head}") 13 | | #{event.payload.size} commits 14 | | to #{space} 15 | a(href="https://github.com/#{event.repo.name}") #{event.repo_name} 16 | 17 | mixin CommitCommentEvent(event) 18 | a(href="https://github.com/#{event.actor.login}") #{event.actor.login}: 19 | | commented on #{space} 20 | a(href="#{event.payload.comment.html_url}") #{event.repo_name}@#{event.payload.comment.commit_id.slice(0, 6)} 21 | 22 | mixin IssuesEvent(event) 23 | a(href="https://github.com/#{event.actor.login}") #{event.actor.login}: 24 | | #{event.payload.action} issue #{space} 25 | a(href="#{event.payload.issue.html_url}") #{event.repo_name}##{event.payload.issue.number} 26 | 27 | mixin PullRequestEvent(event) 28 | a(href="https://github.com/#{event.actor.login}") #{event.actor.login}: 29 | | #{event.payload.action} pull request #{space} 30 | a(href="#{event.payload.pull_request.html_url}") #{event.repo_name}##{event.payload.pull_request.number} 31 | 32 | if !events || events.length == 0 33 | p No recent activity 34 | 35 | else 36 | 37 | count = 0 38 | 39 | each event in events 40 | 41 | #{event.repo_name = event.repo.name.split('/')[1]} 42 | 43 | if event.type == 'PushEvent' && count++ < max 44 | p: mixin PushEvent(event) 45 | else if event.type == 'CommitCommentEvent' && count++ < max 46 | p: mixin CommitCommentEvent(event) 47 | else if event.type == 'IssuesEvent' && count++ < max 48 | p: mixin IssuesEvent(event) 49 | else if event.type == 'PullRequestEvent' && count++ < max 50 | p: mixin PullRequestEvent(event) 51 | -------------------------------------------------------------------------------- /views/partials/disqus_count.jade: -------------------------------------------------------------------------------- 1 | script. 2 | var disqus_shortname = 'mootools-net'; 3 | (function (){ 4 | var s = document.createElement('script'); s.async = true; 5 | s.type = 'text/javascript'; 6 | s.src = '//' + disqus_shortname + '.disqus.com/count.js'; 7 | (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); 8 | }()); 9 | -------------------------------------------------------------------------------- /views/partials/disqus_thread.jade: -------------------------------------------------------------------------------- 1 | #disqus_thread 2 | script. 3 | var disqus_shortname = 'mootools-net'; 4 | var disqus_url = '/blog/#{post.permalink}/'; 5 | 6 | (function(){ 7 | var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; 8 | dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js'; 9 | if (dsq.setAttribute) dsq.setAttribute('data-timestamp', +new Date()); 10 | (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); 11 | })(); 12 | 13 | noscript 14 | | Please enable JavaScript to view the 15 | a(href="https://disqus.com/?ref_noscript") comments powered by Disqus. 16 | 17 | a.dsq-brlink(href="https://disqus.com") 18 | | comments powered by 19 | span.logo-disqus Disqus 20 | -------------------------------------------------------------------------------- /views/partials/docs.jade: -------------------------------------------------------------------------------- 1 | mixin doc-versions(versions, path) 2 | div.versions.clearfix 3 | h3 4 | | Versions 5 | ul 6 | each ver in versions 7 | li 8 | if version == ver 9 | a(href="#{path}#{ver}#{file ? '/' + file : ''}", class='selected') 10 | | #{ver} 11 | else 12 | a(href="#{path}#{ver}#{file ? '/' + file : ''}") 13 | | #{ver} 14 | 15 | mixin docs(content, versions, path) 16 | .docs.overview.clearfix.wrapper 17 | 18 | mixin doc-versions(versions, path) 19 | 20 | .toc 21 | include ./docs/toc 22 | 23 | .content 24 | | !{content} 25 | 26 | -------------------------------------------------------------------------------- /views/partials/docs/blockcode.jade: -------------------------------------------------------------------------------- 1 | pre 2 | code(class=lang) !{code} 3 | -------------------------------------------------------------------------------- /views/partials/docs/heading.jade: -------------------------------------------------------------------------------- 1 | mixin anchor(link, text) 2 | if link 3 | a(href="#" + link, name=link) !{text} 4 | else 5 | !{text} 6 | 7 | div.heading.clearfix 8 | htag = "h" + level 9 | #{htag}: +anchor(link, text) 10 | 11 | if level < 3 12 | a(href="#top").back-to-top 13 | | Back to Top 14 | -------------------------------------------------------------------------------- /views/partials/docs/link.jade: -------------------------------------------------------------------------------- 1 | a(href=link, alt=text) !{text} 2 | -------------------------------------------------------------------------------- /views/partials/docs/toc.jade: -------------------------------------------------------------------------------- 1 | each section in toc 2 | if section.optional == false 3 | 4 | visibility = section.path == file ? '' : 'small'; 5 | 6 | ul.section 7 | li(class="#{visibility}") 8 | if section.link 9 | a.top(href= section.link) #{section.text} 10 | 11 | if section.links && section.links.length 12 | ul 13 | each link in section.links 14 | li 15 | if link.subTitle 16 | h3 17 | a(href=link.link) #{link.text} 18 | else 19 | a(href=link.link) #{link.text} 20 | -------------------------------------------------------------------------------- /views/partials/footer-navigation.jade: -------------------------------------------------------------------------------- 1 | div 2 | h3 3 | | About 4 | span.slider(aria-hidden='true') 5 | ul 6 | li 7 | a(href='/blog') Blog 8 | li 9 | a(href='/books') Books 10 | li 11 | a(href='/developers') Developers 12 | li 13 | a(href='http://mad4milk.spreadshirt.net/', target='_blank') Merchandising 14 | div 15 | h3 16 | | Support 17 | span.slider(aria-hidden='true') 18 | ul 19 | li 20 | a(href='http://groups.google.com/group/mootools-users', target='_blank') User Group 21 | li 22 | a(href='http://mootorial.com', target='_blank') The MooTorial 23 | li 24 | a(href='http://stackoverflow.com/questions/tagged/mootools', target='_blank') Stack Overflow 25 | 26 | div 27 | h3 28 | | Connect with us 29 | span.slider(aria-hidden='true') 30 | ul 31 | li 32 | a(href='http://github.com/mootools', target='_blank') 33 | span.icon.github(aria-hidden='true') 34 | | GitHub 35 | li 36 | a(href='http://twitter.com/mootools', target='_blank') 37 | span.icon.twitter(aria-hidden='true') 38 | | Twitter 39 | li 40 | a(href='https://www.facebook.com/mootools', target='_blank') 41 | span.icon.facebook(aria-hidden='true') 42 | | Facebook 43 | li 44 | a(href='https://plus.google.com/u/0/117731876964599459921/posts', target='_blank') 45 | span.icon.googleplus(aria-hidden='true') 46 | | Google+ 47 | 48 | div 49 | h3 50 | | Documentation 51 | span.slider(aria-hidden='true') 52 | 53 | ul 54 | li 55 | a(href='/core/docs') MooTools Core 56 | li 57 | a(href='/more/docs') MooTools More 58 | 59 | script. 60 | // analytics 61 | if (document.domain && typeof document.domain == 'string' && document.domain.indexOf('mootools.net') > -1){ 62 | ga('create', 'UA-112611-7', 'auto'); 63 | ga('send', 'pageview'); 64 | } 65 | -------------------------------------------------------------------------------- /views/partials/guide.jade: -------------------------------------------------------------------------------- 1 | block main 2 | .guides.overview.clearfix.wrapper 3 | .content 4 | h1= guide.title 5 | p 6 | space = " " 7 | strong= "Author: " 8 | | #{guide.author} #{space} 9 | strong= "Date: " 10 | | #{dateable(new Date(guide.date), "D MMMM YYYY")} 11 | hr 12 | 13 | .content 14 | !{guide.content} 15 | -------------------------------------------------------------------------------- /views/partials/header.jade: -------------------------------------------------------------------------------- 1 | #global-bar.clearfix 2 | div.clearfix.wrapper 3 | #logo 4 | if site == 'mootools' 5 | h1 6 | a(href='/') 7 | img(src='/images/logo/mootools-payoff.png', alt='MooTools') 8 | 9 | p.visually-hidden 10 | | Your resources for every-day JavaScripting 11 | else 12 | p 13 | a(href='/') 14 | img(src='/images/logo/mootools.png', alt='MooTools Home') 15 | 16 | #main-header.right.clearfix 17 | 18 | mixin menu-item(link, text, selected, reallySelected) 19 | if reallySelected == undefined 20 | reallySelected = selected 21 | 22 | mixin link 23 | a(href=link) #{text} 24 | if selected 25 | if reallySelected 26 | li.selected: mixin link 27 | else 28 | li.selected.not-really: mixin link 29 | else 30 | li: mixin link 31 | 32 | ul 33 | li(class=(site == 'core' ? 'selected' : '')) 34 | a(href='/core/') Core 35 | 36 | li(class=(site == 'more' ? 'selected' : '')) 37 | a(href='/more/') More 38 | 39 | mixin menu-item('/blog', 'Blog', site == 'blog') 40 | mixin menu-item('/forge', 'Forge', site == 'forge') 41 | mixin menu-item("http://github.com/mootools/mootools-core#contribute", 'Contribute') 42 | 43 | form#search(role='search', method='get', action='/search') 44 | label(for='search-field') 45 | span.icon.search(aria-hidden='true') 46 | input#search-field(name='q', type='search', placeholder='Search in the site') 47 | -------------------------------------------------------------------------------- /views/partials/header/header-logo.jade: -------------------------------------------------------------------------------- 1 | a(href='/core') 2 | include header 3 | -------------------------------------------------------------------------------- /views/partials/header/header-menu.jade: -------------------------------------------------------------------------------- 1 | menu_core = {text: "Overview", subpage: site, url: "/" + site} 2 | menu_docs = {text: "Documentation", subpage: 'docs', url: "/" + site + "/docs"} 3 | menu_download = {text: "Builder", subpage: 'builder', url: "/" + site + "/builder"} 4 | 5 | mixin menu([menu_core, menu_docs, menu_download], navigation) 6 | 7 | // 8 | menu_guides = {text: "Guides", subpage: 'builder', url: "/" + site + "/guides"} 9 | mixin menu([menu_core, menu_docs, menu_guides, menu_download], navigation) 10 | -------------------------------------------------------------------------------- /views/partials/header/header.jade: -------------------------------------------------------------------------------- 1 | img(src='/images/logo/' + site + '.png', alt='Core') 2 | -------------------------------------------------------------------------------- /views/partials/older-version-select.jade: -------------------------------------------------------------------------------- 1 | 2 | mixin older-version-select(versions) 3 | p.previous-version 4 | label.select: select(onchange='selectVersion(this)') 5 | option(disabled='disabled', selected='selected') Choose a previous version 6 | for set in versions 7 | optgroup(label=set.version) 8 | for file in set.files 9 | option(value=file.link)= file.label 10 | span#googleLink 11 | -------------------------------------------------------------------------------- /views/partials/projects.jade: -------------------------------------------------------------------------------- 1 | h2.visually-hidden Projects 2 | 3 | mixin project-link(project, alt) 4 | li(class=project) 5 | if project == site 6 | a.selected(href="/#{project}") 7 | img(src="/images/logo/#{project}-negative.png", alt=alt) 8 | else 9 | a(href="/#{project}") 10 | img(src="/images/logo/#{project}.png", alt=alt) 11 | 12 | ul 13 | mixin project-link('core', 'Core') 14 | mixin project-link('more', 'More') 15 | -------------------------------------------------------------------------------- /views/search.jade: -------------------------------------------------------------------------------- 1 | 2 | extends layouts/main 3 | 4 | block main 5 | .clearfix.wrapper.blog 6 | 7 | script(type='text/javascript') 8 | (function() { 9 | var cx = '010060716948516680719:r5u1rkeinvk'; 10 | var gcse = document.createElement('script'); 11 | gcse.type = 'text/javascript'; 12 | gcse.async = true; 13 | gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + 14 | '//www.google.com/cse/cse.js?cx=' + cx; 15 | var s = document.getElementsByTagName('script')[0]; 16 | s.parentNode.insertBefore(gcse, s); 17 | })(); 18 | 19 | gcse:searchresults-only(refinementStyle='link') 20 | --------------------------------------------------------------------------------