Giter Club home page Giter Club logo

docpad-plugin-ghpages's Introduction

DocPad. Streamlined web development.

Travis CI Build Status NPM version NPM downloads Dependency Status Dev Dependency Status
GitHub Sponsors donate button Patreon donate button Flattr donate button Liberapay donate button Buy Me A Coffee donate button Open Collective donate button crypto donate button PayPal donate button Wishlist browse button

Hi! I'm DocPad, I streamline the web development process and help close the gap between experts and beginners. I've been used in production by big and small companies for over a year and a half now to create plenty of amazing and powerful web sites and applications quicker than ever before. What makes me different is instead of being a box to cram yourself into and hold you back, I'm a freeway to what you want to accomplish, just getting out of your way and allowing you to create stuff quicker than ever before without limits. Leave the redundant stuff up to me, so you can focus on the awesome stuff.

Discover my features below, or skip ahead to the installation instructions to get started with a fully functional pre-made website in a few minutes from reading this.

Watch the Screencast!

Features

Out of the box

  • Completely file based, meaning there are no pesky databases that need to be installed, and for version control you get to use systems like Git and SVN, which you're already used to (You can still hook in remote data sources if you want, DocPad doesn't impose any limits on you, ever)
  • Choose from plenty of community maintained pre-made websites to use for your next project instead of starting from scratch every time
  • Write your documents in any language, markup, templating engine, or pre-processor you wish (we're truly agnostic thanks to your plugin system). You can even mix and match them when needed by combining their extensions in a rails-like fashion (e.g. coffee-with-some-eco.js.coffee.eco)
  • Changes to your website are automatically recompiled through our built-in watch system
  • Add metadata to the top of your files to be used by templating engines to display non-standard information such as titles and descriptions for your documents
  • Display custom listings of content with our powerful Query Engine available to your templating engines
  • Abstract out generic headers and footers into layouts using our nested layout system
  • For simple static websites easily deploy your generated website to any web server like apache or github pages. For dynamic projects deploy them to servers like heroku to take advantage of custom routing with express.js. Deploy guide here
  • Built-in server to save you from having to startup your own, for dynamic deployments this even supports things like clean urls, custom routes and server-side logic
  • Robust architecture and powerful plugin system means that you are never boxed in. Unlike traditional CMS systems, you can always extend DocPad to do whatever you need it to do, and you can even write to bundle common custom functionality and distribute them through the amazing node package manager npm
  • Built-in support for dynamic documents (e.g. search pages, signup forms, etc), so you can code pages that change on each request by just adding dynamic: true to your document's meta data (exposes the express.js req and res objects to your templating engine)
  • You can use it standalone, or even easily include it within your existing systems with our API

With our amazing community maintained plugins

  • Use the Live Reload plugin to automatically refresh your web browser whenever a change is made, this is amazing
  • Pull in remote RSS/Atom/JSON feeds into your templating engines allowing you to display your latest twitter updates or github projects easily and effortlessly using the Feedr Plugin
  • Support for every templating engine and pre-processor under the sun, including (but not limited to) CoffeeScript, CoffeeKup, ECO, HAML, Handlebars, Jade, Less, Markdown, PHP, Ruby, SASS and Stylus - the full listing is here
  • Use the Partials Plugin to abstract common pieces of code into their own individual file that can be included as much as you want
  • Syntax highlight code blocks automatically with either our Highlight.js Plugin or Pygments Plugin
  • Get SEO friendly clean URLs with our Clean URLs Plugin (dynamic deployments only)
  • Lint your code automatically with our Ling Plugins: jshint and coffeelint
  • Concatenate and minify your JavaScript and CSS assets making page loads faster for your users with our Minify Plugins: htmlmin and grunt
  • Install common javascript libraries like jQuery, Backbone and Underscore directly from the command line - (under construction, coming soon)
  • Automatically translate your entire website into other languages with our Translation Plugin - under construction, coming soon
  • Add an admin interface to your website allowing you to edit, save and preview your changes on live websites then push them back to your source repository with the Admin Plugins
  • Pretty much if DocPad doesn't already do something, it is trivial to write a plugin to do it. DocPad can accomplish anything; it never holds you back, and there are no limits.
  • Many other plugins not listed here that are still definitely worth checking out! :)

People love DocPad

All sorts of people love DocPad, from first time web developers to even industry leaders and experts. In fact, people even migrate to DocPad from other systems as they love it so much. Here are some our favourite tweets of what people are saying about DocPad :)

Some favourite tweets about DocPad

Install

Click here for our latest Install Instructions.

Quick Start

Click here to skip ahead to our latest Quick Start Guide.

What next?

Here are some quick links to help you get started:

History

Discover the release history by heading on over to the HISTORY.md file.

Contribute

Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

Backers

Maintainers

These amazing people are maintaining this project:

Sponsors

These amazing people have contributed finances to this project:

Become a sponsor!

GitHub Sponsors donate button Patreon donate button Flattr donate button Liberapay donate button Buy Me A Coffee donate button Open Collective donate button crypto donate button PayPal donate button Wishlist browse button

Contributors

These amazing people have contributed code to this project:

Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

Participants

Also thanks to all the countless others who have continued to raise DocPad even higher by submitting plugins, issues reports, discussion topics, IRC chat messages, and praise on twitter. We love you.

License

Unless stated otherwise all works are:

and licensed under:

docpad-plugin-ghpages's People

Contributors

aglezabad avatar balupton avatar deitch avatar kyleamathews avatar robloach avatar vsopvsop avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docpad-plugin-ghpages's Issues

Not in NPM registry

The module does not seem to be listed on npm, therefore npm install --save docpad-plugin-ghpages fails. Is there a reason that it is not in the registry?

page build fail error [[email protected]]

Github sends a email with the following:

"The page build failed with the following error:

page build failed

For information on troubleshooting Jekyll see:

https://help.github.com/articles/using-jekyll-with-pages#troubleshooting

If you have any questions please contact us at https://github.com/contact."

After running the docpad deploy-ghpages --env static command on DocPad 6.54.1, Node 0.10.21

This maybe a error that's specific to the project in question but my local version of the DocPad project is starting right up locally. The repo for the specific project:
https://github.com/MassDistributionMedia/arkivum.docpad

Losing git lock file

doing a simple docpad deploy-ghpages produces the error:

fatal: No path specified. See 'man git-pull' for valid url syntax
error: Something went wrong with the action
error: An error occured: 
Error: fatal: No path specified. See 'man git-pull' for valid url syntax

docpad v6.30.4, node .10.4 ubuntu 12.04 LTS.

full log here:

info: Welcome to DocPad v6.30.4
info: Plugins: coffeescript, eco, ghpages, highlightjs, livereload, marked, paged, partials, related, sitemap, stylus, text, uglify
info: Environment: static
info: Deployment to GitHub Pages starting...
info: Generating...
info: Skipped ignored file: posts/amazon.html.md
info: Skipped ignored file: posts/efficiency-curves-for-acquisition-and-retention.md
warning: 
  Rendering the extension "eco" to "html" on "blog.html.eco" didn't do anything.
  Explanation here: http://docpad.org/extension-not-rendering
warning: 
  Rendering the extension "eco" to "html" on "index.html.eco" didn't do anything.
  Explanation here: http://docpad.org/extension-not-rendering
warning: 
  Rendering the extension "eco" to "html" on "problems-and-solutions.html.eco" didn't do anything.
  Explanation here: http://docpad.org/extension-not-rendering
warning: 
  Rendering the extension "eco" to "html" on "why-you-should-work-with-me.html.eco" didn't do anything.
  Explanation here: http://docpad.org/extension-not-rendering
warning: 
  Rendering the extension "eco" to "html" on "blog.html.eco" didn't do anything.
  Explanation here: http://docpad.org/extension-not-rendering
warning: 
  Rendering the extension "eco" to "html" on "index.html.eco" didn't do anything.
  Explanation here: http://docpad.org/extension-not-rendering
warning: 
  Rendering the extension "eco" to "html" on "problems-and-solutions.html.eco" didn't do anything.
  Explanation here: http://docpad.org/extension-not-rendering
warning: 
  Rendering the extension "eco" to "html" on "why-you-should-work-with-me.html.eco" didn't do anything.
  Explanation here: http://docpad.org/extension-not-rendering
info: Generated all 80 files in 1.7 seconds
Initialized empty Git repository in /home/quesada/Copy/sites/josequesada.docpad/out/.git/
[master (root-commit) a499e4f] e68cc25 added note on my docpad experience
 72 files changed, 17949 insertions(+)
 create mode 100755 CNAME
 create mode 100755 README.txt
 create mode 100755 README.txt~
 create mode 100755 atom.xml
 create mode 100644 blog.html
 create mode 100755 crossdomain.xml
 create mode 100755 fonts/Rokkitt/Rokkitt-Regular.ttf
 create mode 100755 fonts/font-awesome/fontawesome-webfont.eot
 create mode 100755 fonts/font-awesome/fontawesome-webfont.svg
 create mode 100755 fonts/font-awesome/fontawesome-webfont.ttf
 create mode 100755 fonts/font-awesome/fontawesome-webfont.woff
 create mode 100755 humans.txt
 create mode 100755 images/body-bg.jpg
 create mode 100755 images/brain.png
 create mode 100755 images/facebook.png
 create mode 100755 images/favicon.ico
 create mode 100755 images/favicon.png
 create mode 100755 images/frank.png
 create mode 100755 images/graphic.png
 create mode 100755 images/header-bg.jpg
 create mode 100755 images/josequesada-logo-white.png
 create mode 100755 images/josequesada.jpg
 create mode 100755 images/linkedin.jpg
 create mode 100755 images/logo-consulting-jq.png
 create mode 100755 images/logo-consulting-jq.svg
 create mode 100755 images/logo-jq.png
 create mode 100755 images/logo-jq.svg
 create mode 100755 images/me.jpg
 create mode 100755 images/noise.jpg
 create mode 100755 images/optimal-post-length.jpg
 create mode 100755 images/pagination.png
 create mode 100755 images/prev-next.png
 create mode 100755 images/project-1.jpg
 create mode 100755 images/project-2.jpg
 create mode 100755 images/project-3.jpg
 create mode 100755 images/quote.png
 create mode 100755 images/rss.png
 create mode 100755 images/shadow.png
 create mode 100755 images/slide-1.jpg
 create mode 100755 images/triangle-top.png
 create mode 100755 images/twitter.png
 create mode 100755 images/ui-bg_diagonals-small_0_aaaaaa_40x40.png
 create mode 100755 images/ui-bg_diagonals-thick_15_444444_40x40.png
 create mode 100755 images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png
 create mode 100755 images/ui-bg_glass_55_fbf5d0_1x400.png
 create mode 100755 images/ui-bg_highlight-hard_30_285c00_1x100.png
 create mode 100755 images/ui-bg_highlight-soft_33_3a8104_1x100.png
 create mode 100755 images/ui-bg_highlight-soft_50_4eb305_1x100.png
 create mode 100755 images/ui-bg_highlight-soft_60_4ca20b_1x100.png
 create mode 100755 images/ui-bg_inset-soft_10_285c00_1x100.png
 create mode 100755 images/ui-icons_4eb305_256x240.png
 create mode 100755 images/ui-icons_72b42d_256x240.png
 create mode 100755 images/ui-icons_cd0a0a_256x240.png
 create mode 100755 images/ui-icons_ffffff_256x240.png
 create mode 100755 index.html
 create mode 100755 posts/How-to-blog-data-driven-to-maximize-impact-using-competitors-social-data-and-special-google-searches.html
 create mode 100755 posts/content-marketing.html
 create mode 100755 posts/htm5-means-business-for-ecommerce.html
 create mode 100755 posts/technical-reasons-not-to-pic-google-website-optimizer.html
 create mode 100755 problems-and-solutions.html
 create mode 100755 robots.txt
 create mode 100755 sitemap.xml
 create mode 100755 styles/accordion.css
 create mode 100755 styles/base.css
 create mode 100755 styles/font-awesome-ie7.css
 create mode 100755 styles/font-awesome.css
 create mode 100755 styles/github.css
 create mode 100644 styles/layout.css
 create mode 100755 styles/skeleton.css
 create mode 100755 vendor/jquery.js
 create mode 100755 vendor/log.js
 create mode 100755 vendor/modernizr.js
 create mode 100755 why-you-should-work-with-me.html
fatal: No path specified. See 'man git-pull' for valid url syntax
error: Something went wrong with the action
error: An error occured: 
Error: fatal: No path specified. See 'man git-pull' for valid url syntax

    at ChildProcess.<anonymous> (/home/quesada/Copy/sites/josequesada.docpad/node_modules/docpad-plugin-ghpages/node_modules/bal-util/out/lib/modules.js:114:17)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at Process.ChildProcess._handle.onexit (child_process.js:784:12)

Deploy pushes osx hidden files

The gh-pages deploy will push files like .DS_Store to the repository. This file is in my source .gitignore but I suspect because of the different remote target somehow that is not being parsed.

Skipped the unsupported plugin.

I receive the following output when running docpad deploy-ghpages --env static in [email protected]:

Michael@MIKEUMUSSURFACE ~/Desktop/MDM/Client Projects/Arkivum.com/Development/St
aging (master)
$ docpad deploy-ghpages --env static
warning: Skipped the unsupported plugin: cleanurls due to version-docpad
warning: Skipped the unsupported plugin: coffeescript due to version-docpad
warning: Skipped the unsupported plugin: eco due to version-docpad
warning: Skipped the unsupported plugin: ghpages due to version-docpad
warning: Skipped the unsupported plugin: less due to version-docpad
warning: Skipped the unsupported plugin: livereload due to version-docpad
warning: Skipped the unsupported plugin: partials due to version-docpad
warning: Skipped the unsupported plugin: marked due to version-docpad
warning: Skipped the unsupported plugin: related due to version-docpad
warning: Skipped the unsupported plugin: text due to version-docpad
warning: Skipped the unsupported plugin: linkeffects due to version-docpad
info: Welcome to DocPad v6.53.3 (local installation)
info: Contribute: http://docpad.org/docs/contribute
info: Plugins: cleanurls, coffeescript, eco, ghpages, less, linkeffects, liverel
oad, marked, partials, related, text
info: Environment: static

  Usage: docpad [options] [command]

  Commands:

    action <actions>       does everything: skeleton, generate, watch, server
    init                   initialize your directory with an empty docpad projec
t
    run                    does everything: skeleton, generate, watch, server
    server                 creates a server for your generated project
    skeleton [options]     will create a new project in your cwd based off an ex
isting skeleton
    render [path]          render the file at <path> and output its results to s
tdout
    generate               (re)generates your project
    watch                  watches your project for changes, and (re)generates w
henever a change is made
    update                 update your local DocPad and plugin installations to
their latest compatible version
    upgrade                upgrade your global DocPad and NPM installations to t
he latest
    install [pluginName]   install plugins
    uninstall <pluginName> uninstall a plugin
    clean                  ensure everything is cleaned correctly (will remove y
our out directory)
    info                   display the information about your docpad instance
    help                   output the help
    *                      anything else ouputs the help

  Options:

    -h, --help                 output usage information
    -V, --version              output the version number
    -o, --out <outPath>        where to output the rendered files (to a director
y) or file (to an output file)
    -c, --config <configPath>  a custom configuration file to load in
    -e, --env <environment>    the environment name to use for this instance, mu
ltiple names can be separated with a comma
    -d, --debug [logLevel]     the level of debug messages you would like to dis
play, if specified defaults to 7, otherwise 6
    -g, --global               whether or not we should just fire the global ins
tallation of docpad
    -f, --force                force a re-install of all modules
    -p, --port <port>          a custom port to use for the server <port>
    -s, --skeleton <skeleton>
    --profile                  enable profiling
    --offline                  don't do any remote requests


info: The action completed successfully
info: Shutting down... cya next time!

skipUnsupportedPlugins is set to false in the config and docpad deploy-ghpages produces the same output. I've also specified ghpages' deployRemote and deployBranch in the config.

Deploy to username.github.io

Hey,

I might be doing something completely wrong but am not sure how to deploy to username.github.io. I know docpad works on a repo with a gh-pages branch but I don't think you are allowed to create a gh-pages branch on repo's of the form mentioned above.

I believe it was mentioned that a gh-pages branch is needed because otherwise it pollutes the root path. However as more and more repo's are leveraging the username.github.io form it seems like something that should be natively supported.

Any clarification would be greatly appreciated. Additionally am really impressed with docpad, keep up the great work!

@patcon

error on deploy

air$ docpad deploy-ghpages
info: Welcome to DocPad v6.39.0
info: Plugins: cleanurls, coffeescript, eco, ghpages, jade, less, livereload, marked, partials, related, stylus, text
info: Environment: static
info: Deployment to GitHub Pages starting...
info: Generating...
info: Generated all 40 files in 4.298 seconds
error: Something went wrong with the action
error: An error occured:
Error: exited with a non-zero status code
at ChildProcess. (/apiconsultores/node_modules/docpad-plugin-ghpages/node_modules/bal-util/out/lib/modules.js:117:17)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at Process.ChildProcess._handle.onexit (child_process.js:789:12)
air$

Deployment doesn't use "static" environment?

After some testing, it seems like docpad deploy-ghpages -e static is using the production environment, even though it's reporting static.

Using docpad generate -e static will build on the static environment, but deployment seems to use production. Not quite sure what is wrong. Have you guys run into something similar? Might be the clean URLs?

Not respecting ghpages config.

I have the following configuration in docpad.coffee.

plugins:
  ghpages:
    deployRemote: 'target'
    deployBranch: 'master'

Running

docpad deploy-ghpages --env static

Pushes to the remote origin and branch gh-pages

docpad version 6.64.0
ghpages version 2.4.3

Error: exited with a non-zero status code

When I run "docpad deploy-ghpages" I get this error:

info: Welcome to DocPad v6.31.6
info: Plugins: cleanurls, ghpages, jade, livereload, stylus, uglify
info: Environment: static
info: Deployment to GitHub Pages starting...
info: Generating...
info: Generated all 50 files in 1.073 seconds
error: Something went wrong with the action
error: An error occured:
Error: exited with a non-zero status code
at ChildProcess. (/Users/will/Dropbox/web/signshop2.0/plugins/docpad-plugin-ghpages/node_modules/bal-util/out/lib/modules.js:114:17)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at Process.ChildProcess._handle.onexit (child_process.js:784:12)

Please help me!!!

Incremental deployments

I want to suggest incremental deployments, i.e., to only transfer differences to the server.

Problem:
In the current implementation, every deployment destroys the remote branche's history and wastes bandwith by uploading the entire site (instead of just uploading the differences). Technically, the ghpages deployment initializes a new git repo, packs the entire generated output into one commit, and force-pushes the branch to the remote. See the file src/ghpages.plugin.coffee.

Suggested improvement:
The ghpages plugin should not destroy history in the remote branch and should push a small, differential commit that contains changes only. I have set up a corresponding deployment shell script as follows.

#!/usr/bin/env bash

# change into the script's directory
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
pushd $DIR > /dev/null

# configuration
OUT=out

# setup a clean git repo in ./out
git fetch --all
git fetch --tags
rm -rf $OUT
mkdir $OUT
cp -r .git $OUT/.git
pushd out > /dev/null
git checkout --track origin/master
git reset --hard origin/master
popd > /dev/null

# deploy to out folder
docpad generate --env static

# commit the out folder's contents
pushd $OUT > /dev/null
git add -A --force
git commit -m "`date`"
git push -f
popd > /dev/null


# change back into the original working directory
popd > /dev/null

Future improvements upon the above script:

  • Some implicit assumptions contained in the above script are that: The website's source and output are managed in the same repository. The source is maintained in a branch src, the output is maintained in branch master.
  • Instead of bash / shellscript, a proper implementation as docpad plugin would be beneficial. But the shell script has proven sufficient for my goals.

Missing compiled JS file in installed npm module

Did something go wrong with the npm publishing? I can't use freshly installed v2.1.0:

warning: Failed to load the plugin: docpad-plugin-ghpages at /.../node_modules/docpad-plugin-ghpages
The error follows:
warning: An error occured: 
Error: Cannot find module '/.../node_modules/docpad-plugin-ghpages/out/ghpages.plugin.js'
...

Advanced thanks.

Submodules in gh-pages removed

I have submodules in my gh-pages directory which link to other repos I'd like to host on gh-pages

how can I use this plugin to deploy both my submodules and the out dir?

Question: Is there a way to both deploy to a username.github.io repo and also push changes to a src repo at the same time?

It seems that a common workflow for me is to make some changes, say for instance if you have a blog running off of your username.github.io, making a new post.

Then I will run docpad deploy-ghpages --env static to push the changes up to username.github.io. But then, say I forget to push those changes to the src repo for the site.

Is there a way to bundle this all together into one command?

I'm basically trying to streamline the blogging process with DocPad the best I can and looking at ways to do so.

@jh3y

Discussion: Better profile/organisation support somehow???

When you deploy a gh-pages site to github under an organization, instead of it being just blahblah.github.io it ends up being blahblah.github.io/somemore and therefore the assets are not mapped correctly in the html files. Would be nice to have a configuration option for this.

Feature request: option for git push --quiet

I followed https://gist.github.com/bewest/6100033 to make Travis CI automatically deploy my website to github pages every time I push to my master branch on GitHub. It works really well, except that I noticed it's showing my private token in the log output when it tells the URL it pushed to - effectively giving anyone in the world full access to my github account.

Would it be possible to add an option to make the git push quiet?

ghpRootFolder

Project pages get served in a subdirectory on Github pages . Being able to choose what folder inside of the out folder should be the git hub pages root would be valuable so that i dont need to alter internal urls between local and deployed versions.

A suggested solution is to add a ghpRoot attribute to the docpad config so if i have
outPath: 'out'
ghpRoot: 'projname'

if ghpRoot is set The plugin would then deploy files with 'out/projname/' as root for the github pages instead of using 'out' as root for deployment.

Feature request: only deploy changed files

I have a bunch of enormous STL / Collada files in my website that never change. However, each time I use deploy-ghpages it re-uploads them. I have an idea for how this could be fixed; can you explain if it would work?

Have the plugin do:

  • see if /out exists
    • if not, mkdir out; cd out
    • if so, cd out
  • see if .git exists
  • do docpad generate --env static
  • do git add -A
  • do git push

This way rather than repushing the whole website, you only update the changes to the website. Also would come in handy in case you needed to look back at an old version of the website. But mostly would save a ton of time and bandwidth by only uploading changes.

uses an invalid naming convention

Once ghpages installed:

Error: The plugin .2.4.4@docpad-plugin-ghpages uses an invalid naming convention. We only allow alphanumeric characters (no symbols). Perhaps change it to 2.4.4@docpad-plugin-ghpages
....
Error: The plugin .2.4.4@docpad-plugin-ghpages is using a different name (ghpages) for its prototype name. This can cause issues.

node version: 6.9.1
docpad version: v6.79.0
npm version: 3.10

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.