├── .dockerignore ├── .gitignore ├── Dockerfile ├── Makefile ├── README.md ├── config.toml ├── content ├── contributing │ ├── code.md │ ├── community.md │ ├── docs.md │ ├── graphics.md │ ├── mentorship.md │ ├── organization.md │ ├── screencasts.md │ ├── tests.md │ └── tutorials.md ├── events.md ├── getting-started.md ├── home.md └── online.md ├── layouts ├── _default │ └── single.html ├── index.html ├── partials │ ├── container-footer.html │ └── navbar.html └── shortcodes │ ├── contributingguide.html │ └── help.html ├── original ├── Dockerfile ├── Makefile ├── README.md ├── css │ ├── custom.css │ ├── normalize.css │ └── skeleton.css ├── images │ ├── 2-years.png │ └── favicon.ico ├── index.html ├── js │ └── site.js └── release.sh ├── presentation.pdf ├── release.sh ├── static ├── css │ ├── bootstrap.min.css │ ├── custom.css │ ├── hugo-bootswatch.css │ ├── normalize.css │ └── skeleton.css ├── images │ ├── 2-years.png │ ├── bonus.png │ ├── docker-friends.png │ ├── favicon.ico │ ├── presentation.pdf │ ├── sponsors.png │ ├── triage-label.png │ └── tutorials.png └── js │ └── site.js └── themes └── hugo-bootswatch ├── LICENSE.md ├── README.md ├── archetypes └── default.md ├── images ├── screenshot.png └── tn.png ├── layouts ├── 404.html ├── _default │ ├── list.html │ └── single.html ├── index.html └── partials │ ├── container-footer.html │ ├── footer.html │ ├── header.html │ └── navbar.html ├── static ├── css │ ├── bootstrap-theme.css │ ├── bootstrap-theme.css.map │ ├── bootstrap-theme.min.css │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ └── hugo-bootswatch.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 └── js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── bootswatch.js │ └── npm.js └── theme.toml /.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | .git 3 | .gitignore 4 | Makefile 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Docker project generated files to ignore 2 | # if you want to ignore files created by your editor/tools, 3 | # please consider a global .gitignore https://help.github.com/articles/ignoring-files 4 | .vagrant* 5 | bin 6 | docker/docker 7 | *.exe 8 | .*.swp 9 | a.out 10 | *.orig 11 | build_src 12 | .flymake* 13 | .idea 14 | .DS_Store 15 | docs/_build 16 | docs/_static 17 | docs/_templates 18 | .gopath/ 19 | .dotcloud 20 | *.test 21 | bundles/ 22 | .hg/ 23 | .git/ 24 | vendor/pkg/ 25 | pyenv 26 | Vagrantfile 27 | docs/AWS_S3_BUCKET 28 | docs/GIT_BRANCH 29 | docs/VERSION 30 | docs/GITCOMMIT 31 | docs/changed-files 32 | public/ -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:jessie 2 | MAINTAINER Jessie Frazelle 3 | 4 | RUN apt-get update && apt-get install -y \ 5 | ca-certificates \ 6 | curl \ 7 | s3cmd \ 8 | --no-install-recommends 9 | 10 | ENV HUGO_VERSION 0.13 11 | RUN curl -sSL https://github.com/spf13/hugo/releases/download/v0.13/hugo_${HUGO_VERSION}_linux_amd64.tar.gz | tar -v -C /usr/local/bin -xz --strip-components 1 && \ 12 | mv /usr/local/bin/hugo_${HUGO_VERSION}_linux_amd64 /usr/local/bin/hugo 13 | 14 | # Setup s3cmd config 15 | RUN { \ 16 | echo '[default]'; \ 17 | echo 'access_key=$AWS_ACCESS_KEY'; \ 18 | echo 'secret_key=$AWS_SECRET_KEY'; \ 19 | } > ~/.s3cfg 20 | 21 | WORKDIR /usr/src/birthdaysite/ 22 | 23 | # add files 24 | COPY . /usr/src/birthdaysite/ 25 | 26 | ENTRYPOINT [ "./release.sh" ] 27 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all build default release 2 | 3 | default: release 4 | 5 | all: build 6 | 7 | build: 8 | docker build --rm --force-rm -t docker:birthday . 9 | 10 | release: build 11 | docker run --rm -it -e AWS_S3_BUCKET -e AWS_ACCESS_KEY -e AWS_SECRET_KEY docker:birthday 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker's Birthday Site 2 | 3 | We are happy to accept contributions to our Birthday party site. Read this page 4 | if you want to contribute or to [publish the site](#publish-the-site). 5 | 6 | 7 | ## Quickstart Contributors 8 | 9 | * [Get set up](#get-set-up) 10 | * [Set your signature and an upstream remote](#set-your-signature-and-an-upstream-remote) 11 | * [Make changes on a feature branch](#make-changes-on-a-feature-branch) 12 | * [Rebase your branch](#rebase-your-branch) 13 | * [Create a pull request](#create-a-pull-request) 14 | 15 | ### Get set up 16 | 17 | Before you begin, [install Hugo](http://goo.gl/QDR7zf); this allows you to test 18 | your changes locally. Then: 19 | 20 | 1. Fork this repository. 21 | 22 | Use the **Fork** button this page. 23 | 24 | 2. Copy your fork's clone URL from GitHub. 25 | 26 | GitHub allows you to use HTTPS or SSH protocols for clones. You can use the 27 | `git` command line or clients like Subversion to clone a repository. These 28 | instructions assume you are using the HTTPS protocol and the `git` command 29 | line. 30 | 31 | 3. Clone the fork to your local machine. 32 | 33 | git clone https://github.com/moxiegirl/birthdaysite.git 34 | 35 | 36 | ### Set your signature and an upstream remote 37 | 38 | When you contribute to Docker, you must certify you agree with the 39 | Developer Certificate of Origin. 40 | You indicate your agreement by signing your `git` commits like this: 41 | 42 | Signed-off-by: Pat Smith 43 | 44 | To create a signature, you configure your username and email address in Git. 45 | You can set these globally or locally on just your `birthdaysite` repository. 46 | You must sign with your real name. We don't accept anonymous contributions or 47 | contributions through pseudonyms. 48 | 49 | As you change code in your fork, you'll want to keep it in sync with the changes 50 | others make in the `docker/birthdaysite` repository. To make syncing easier, you'll 51 | also add a _remote_ called `upstream` that points to `docker/birthdaysite`. A remote 52 | is just another a project version hosted on the internet or network. 53 | 54 | To configure your username, email, and add a remote: 55 | 56 | 1. Change to the root of your `birthdaysite` repository. 57 | 58 | $ cd birthdaysite 59 | 60 | 2. Set your `user.name` for the repository. 61 | 62 | $ git config --local user.name "FirstName LastName" 63 | 64 | 3. Set your `user.email` for the repository. 65 | 66 | $ git config --local user.email "emailname@mycompany.com" 67 | 68 | 4. Set your local repo to track changes upstream, on the `docker` repository. 69 | 70 | $ git remote add upstream https://github.com/docker/birthdaysite.git 71 | 72 | 5. Check the result in your `git` configuration. 73 | 74 | $ git config --local -l 75 | 76 | To list just the remotes use: 77 | 78 | $ git remote -v 79 | 80 | ## Make changes on a feature branch 81 | 82 | 1. Change to the root of your local fork. 83 | 84 | 2. Create a feature branch. 85 | 86 | $ git checkout -b my-keen-feature 87 | 88 | 3. Start Hugo so you can see your changes as you work. 89 | 90 | To do this, you run Hugo locally. From the root of your local repo: 91 | 92 | $ hugo server -w 93 | 94 | 4. Begin making changes in your feature branch. 95 | 96 | 5. When you are done, check the status of your branch. 97 | 98 | $ git status 99 | 100 | 6. Add your changes file with `git add` command. 101 | 102 | 7. Sign and commit your change. 103 | 104 | $ git commit -s -m "Adding some super changes." 105 | 106 | Commit messages should have a short summary sentence of no more than 50 107 | characters. Optionally, you can also include a more detailed explanation after 108 | the summary. Separate the summary from any explanation with an empty line. 109 | 110 | 8. Push your changes to GitHub. 111 | 112 | $ git push --set-upstream origin my-keen-feature 113 | Username for 'https://github.com': moxiegirl 114 | Password for 'https://moxiegirl@github.com': 115 | 116 | Git prompts you for your GitHub username and password. Then, the command 117 | returns a result. 118 | 119 | 9. Open your browser to Github. 120 | 121 | 10. Navigate to your `birthdaysite` fork. 122 | 123 | 11. Make sure the `my-keen-feature` branch exists, that it has your commit, and the 124 | commit is signed. 125 | 126 | 127 | ## Rebase your branch 128 | 129 | Always rebase and squash your commits before making a pull request. 130 | 131 | 1. Fetch any of the last minute changes from `docker/birthdaysite`. 132 | 133 | $ git fetch upstream master 134 | 135 | 3. Start an interactive rebase. 136 | 137 | $ git rebase -i upstream/master 138 | 139 | 4. Rebase opens an editor with a list of commits. 140 | 141 | pick 1a79f55 Tweak some of images 142 | pick 3ce07bb Add a new line 143 | 144 | If you run into trouble, `git --rebase abort` removes any changes and gets you 145 | back to where you started. 146 | 147 | 4. Squash the `pick` keyword with `squash` on all but the first commit. 148 | 149 | pick 1a79f55 Tweak some of images 150 | squash 3ce07bb Add a new line 151 | 152 | After closing the file, `git` opens your editor again to edit the commit 153 | message. 154 | 155 | 5. Edit and save your commit message. 156 | 157 | `git commit -s` 158 | 159 | Make sure your message includes your signature. 160 | 161 | 8. Push any changes to your fork on GitHub. 162 | 163 | $ git push origin my-keen-feature 164 | 165 | ## Create a pull request 166 | 167 | 1. Open your browser to your fork on GitHub. 168 | 169 | You should see the latest activity from your branch. 170 | 171 | 2. Click "Compare & pull request." 172 | 173 | The system displays the pull request dialog. The pull request compares your 174 | changes to the `master` branch on the `docker/birthdaysite` repository. 175 | 176 | 3. Edit the dialog's description and add a reference to the issue you are fixing. 177 | 178 | GitHub helps you out by searching for the issue as you type. 179 | 180 | 4. Scroll down and verify the PR contains the commits and changes you expect. 181 | 182 | For example, is the file count correct? Are the changes in the files what 183 | you expect. 184 | 185 | 5. Press "Create pull request". 186 | 187 | The system creates the request and opens it for you in the `docker/birthdaysite` 188 | repository. 189 | 190 | 6. Participate in the PR review. 191 | 192 | 193 | ## Publish the site 194 | 195 | This is for site owners: 196 | 197 | 1. Get the keys from @spf13 or @moxiegirl or Jess. 198 | 199 | 2. Make and push master. 200 | 201 | ```console 202 | $ AWS_S3_BUCKET=docker.party AWS_ACCESS_KEY="AKI....7Q5A" AWS_SECRET_KEY="w1Gq...LHb67..Xy3Mi" make 203 | ``` 204 | -------------------------------------------------------------------------------- /config.toml: -------------------------------------------------------------------------------- 1 | baseurl = "http://docker.party/" 2 | languageCode = "en-us" 3 | title = "Docker's Birthday Party" 4 | theme = "hugo-bootswatch" 5 | -------------------------------------------------------------------------------- /content/contributing/code.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-10T21:23:17-04:00" 3 | title = "Code" 4 | linktitle = "Code" 5 | 6 | +++ 7 | 8 | If you'd like to improve the code of any of Docker's projects, we would love to 9 | have your contributions. All of our projects' code repositories are on GitHub: 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
docker/dockerDocker the open-source application container engine
docker/machineSoftware for the easy and quick creation of Docker hosts on your computer, on cloud providers, and inside your own data center.
kitematic/kitematicKitematic is a simple application for managing Docker containers on Mac OS X.
docker/swarmNative clustering for Docker; manage several Docker hosts as a single, virtual host.
docker/composeDefine and run complex applications using one or many interlinked containers.
37 | 38 | See the complete list of 39 | Docker repositories on GitHub. 40 | 41 | If you want to contribute to the `docker/docker` repository you should be 42 | familiar with or a invested in learning Go or the Markdown language. If you 43 | know other languages, investigate our 44 | other repositories—not all of them run on Go. 45 | 46 | # Code contribution workflow 47 | 48 | Below is the general workflow for contributing Docker code or documentation. 49 | If you are an experienced open source contributor you may be familiar with this 50 | workflow. If you are new or just need reminders, the steps below link to more 51 | detailed documentation in Docker's project contributors guide. 52 | 53 | 1. Get the software you need. 55 | 56 | This explains how to install a couple of tools used in our development 57 | environment. What you need (or don't need) might surprise you. 58 | 59 | 2. Configure Git and fork the repo. 61 | 62 | Your Git configuration can make it easier for you to contribute. 63 | Configuration is especially key if are new to contributing or to Docker. 64 | 65 | 3. Learn to work with the Docker development container. 67 | 68 | Docker developers run `docker` in `docker`. If you are a geek, 69 | this is a pretty cool experience. 70 | 4. Claim an issue to work on. 72 | 73 | We created a filter listing all open 74 | and unclaimed issues for Docker. 75 | 76 | 5. Work on the 78 | issue. 79 | 80 | If you change or add code or docs to a project, you should test your changes 81 | as you work. This page explains how to 83 | test in our development environment. 84 | 85 | Also, remember to always **sign your commits** as you work! To sign your 86 | commits, include the `-s` flag in your commit like this: 87 | 88 | $ git commit -s -m "Add commit with signature example" 89 | 90 | If you don't sign Gordon will get you! 92 | 93 | 6. Create a 94 | pull request. 95 | 96 | If you make a change to fix an issue, add reference to the issue in the pull 97 | request. Here is an example of a perfect pull request with a good description, 98 | issue reference, and signature in the commit: 99 | 100 | ![Sign commits and issues](/images/bonus.png) 101 | 102 | We have also have checklist that describes [what each pull request 103 | needs](#what-is-the-pre-pull-request-checklist). 104 | 105 | 106 | 7. Participate in the pull request review till a successful 108 | merge. 109 | 110 | 111 | ## FAQ and troubleshooting tips for coders 112 | 113 | This section contains some frequently asked questions and tips for 114 | troubleshooting problems in your code contribution. 115 | 116 | - [How do I set my signature?](#how-do-i-set-my-signature:cb7f612e17aad7eb26c06709ef92a867) 117 | - [How do I track changes from the docker repo upstream?](#how-do-i-track-changes-from-the-docker-repo-upstream:cb7f612e17aad7eb26c06709ef92a867) 118 | - [How do I format my Go code?](#how-do-i-format-my-go-code:cb7f612e17aad7eb26c06709ef92a867) 119 | - [What is the pre-pull request checklist?](#what-is-the-pre-pull-request-checklist:cb7f612e17aad7eb26c06709ef92a867) 120 | - [How should I comment my code?](#how-should-i-comment-my-code:cb7f612e17aad7eb26c06709ef92a867) 121 | - [How do I rebase my feature branch?](#how-do-i-rebase-my-feature-branch:cb7f612e17aad7eb26c06709ef92a867) 122 | 123 | ### How do I set my signature {#how-do-i-set-my-signature} 124 | 125 | 1. Change to the root of your `docker-fork` repository. 126 | 127 | $ cd docker-fork 128 | 129 | 2. Set your `user.name` for the repository. 130 | 131 | $ git config --local user.name "FirstName LastName" 132 | 133 | 3. Set your `user.email` for the repository. 134 | 135 | $ git config --local user.email "emailname@mycompany.com" 136 | 137 | ### How do I track changes from the docker repo upstream 138 | 139 | Set your local repo to track changes upstream, on the `docker` repository. 140 | 141 | 1. Change to the root of your Docker repository. 142 | 143 | $ cd docker-fork 144 | 145 | 2. Add a remote called `upstream` that points to `docker/docker` 146 | 147 | $ git remote add upstream https://github.com/docker/docker.git 148 | 149 | 150 | 151 | ### How do I format my Go code 152 | 153 | Run `gofmt -s -w filename.go` on each changed file before committing your changes. 154 | Most editors have plug-ins that do the formatting automatically. 155 | 156 | ### What is the pre-pull request checklist 157 | 158 | * Sync and cleanly rebase on top of Docker's `master`; do not mix multiple branches 159 | in the pull request. 160 | 161 | * Squash your commits into logical units of work using 162 | `git rebase -i` and `git push -f`. 163 | 164 | * If your code requires a change to tests or documentation, include code,test, 165 | and documentation changes in the same commit as your code; this ensures a 166 | revert would remove all traces of the feature or fix. 167 | 168 | * Reference each issue in your pull request description (`#XXXX`). 169 | 170 | ### How should I comment my code? 171 | 172 | The Go blog wrote about code comments, it is a single page explanation. A summary follows: 174 | 175 | - Comments begin with two forward `//` slashes. 176 | - To document a type, variable, constant, function, or even a package, write a 177 | regular comment directly preceding the elements declaration, with no intervening blank 178 | line. 179 | - Comments on package declarations should provide general package documentation. 180 | - For packages that need large amounts of introductory documentation: the 181 | package comment is placed in its own file. 182 | - Subsequent lines of text are considered part of the same paragraph; you must 183 | leave a blank line to separate paragraphs. 184 | - Indent pre-formatted text relative to the surrounding comment text (see gob's doc.go for an example). 185 | - URLs are converted to HTML links; no special markup is necessary. 186 | 187 | ### How do I rebase my feature branch? 188 | 189 | Always rebase and squash your commits before making a pull request. 190 | 191 | 1. Fetch any of the last minute changes from `docker/docker`. 192 | 193 | $ git fetch upstream master 194 | 195 | 3. Start an interactive rebase. 196 | 197 | $ git rebase -i upstream/master 198 | 199 | 4. Rebase opens an editor with a list of commits. 200 | 201 | pick 1a79f55 Tweak some of images 202 | pick 3ce07bb Add a new line 203 | 204 | If you run into trouble, `git --rebase abort` removes any changes and gets you 205 | back to where you started. 206 | 207 | 4. Squash the `pick` keyword with `squash` on all but the first commit. 208 | 209 | pick 1a79f55 Tweak some of images 210 | squash 3ce07bb Add a new line 211 | 212 | After closing the file, `git` opens your editor again to edit the commit 213 | message. 214 | 215 | 5. Edit and save your commit message. 216 | 217 | $ git commit -s 218 | 219 | Make sure your message includes your signature. 220 | 221 | 8. Push any changes to your fork on GitHub. 222 | 223 | $ git push origin my-keen-feature 224 | 225 | {{< help >}} 226 | -------------------------------------------------------------------------------- /content/contributing/community.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-10T21:23:17-04:00" 3 | title = "Contributing to the Community" 4 | linktitle = "Community" 5 | 6 | +++ 7 | 8 | **In a sense, each method of contributing to Docker is also contributing to the 9 | community**. A community comes from being with and talking to people either 10 | in person or electronically through email, IM, or other means. Contributing to 11 | community is helping to make any aspect of using Docker projects better for 12 | *other* people. 13 | 14 | 15 | # Attend Conferences and Meetups 16 | 17 | Sign up for the DockerCon 18 | 2015 conference. You can attend or even present a paper! 19 | 20 | 21 | # Docker Meetups 22 | 23 | Wherever you are there is probably a Docker meetup near you. Come by and meet 24 | other Dockerphiles! No meetup near you? Contact us and we will help you start 25 | one. 26 | 27 | 29 | 30 | Email us at or ping us on twitter. 31 | 32 | # Help people in person 33 | 34 | You are at an event right now...anyone look like they need help? Approach this person and say: 35 | 36 | *"You look puzzled, need any help?"* 37 | 38 | Uncomfortable talking to a stranger? Think about this. Just the one quick question can help you both. 41 | 42 | You can also find the users asking for help with issues or docs in our project. 45 | 46 | {{< help >}} 47 | -------------------------------------------------------------------------------- /content/contributing/docs.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-10T21:22:56-04:00" 3 | title = "Contributing Documentation" 4 | linktitle = "Documentation" 5 | 6 | 7 | +++ 8 | 9 | Documentation is an integral part of any open source project. It supplies the 10 | common thread that unifies all users, from helping new users get up to speed to 11 | offering detailed explanations of features for seasoned developers. 12 | 13 | Contibute to documentation if you like to analyze how something works and then 14 | explain it to others. 15 | 16 | # What can you contribute to documentation? 17 | 18 | If you don't want to write, you can make other kinds of documentation 19 | contributions: 20 | 21 | * Report an issue or request new documentation. 22 | * Test the existing documentation. 24 | * Write new 26 | or update existing documentation. 27 | 28 | 29 | # Report a documentation issue 30 | 31 | Before you try this task, make sure you have a Github account. 33 | 34 | 1. Encounter an issue in our documentation. 35 | 36 | Your issue could be a poor explanation, a missing step in a procedure, or a 37 | feature you want — a new tutorial for example. 38 | 39 | 2. Go to the appropriate repo. 40 | 41 | You can report issues with any Docker project: 42 | 43 | * Docker 44 | * Machine 45 | * Kitematic 46 | * Swarm 47 | * Compose 48 | 49 | See the complete list of 50 | Docker repositories on GitHub. 51 | 52 | 3. Click the **New issue** button. 53 | 54 | 4. Give your issue a **Title**. 55 | 56 | 5. Leave a comment describing your issue. 57 | 58 | If you found the problem in existing documentation, add the page's URL to your 59 | description. 60 | 61 | 62 | # Write new or update existing documentation 63 | 64 | Writing documentation requires you to fork the Docker repo and write source 65 | using Markdown code. We have a guide 66 | that walks you through the entire process. 67 | 68 | You can check our list of open writing issues for ideas of what to write. 70 | 71 | {{< help >}} 72 | -------------------------------------------------------------------------------- /content/contributing/graphics.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-16T12:36:47-04:00" 3 | title = "Contributing Graphics" 4 | linktitle = "Graphics" 5 | 6 | +++ 7 | 8 | Open source projects traditionally lack visual and graphical expertise. Browse 9 | GitHub, you'll see many projects suffering from lame logos, iffy illustrations, 10 | and sad CSS. If you have graphical talents, open source needs them and so do we! 11 | 12 | **Fact**: Docker's own Moby Dock logo was contributed by a member of our 13 | community. 14 | 15 | 16 | # What kind of graphic? 17 | 18 | A graphic can be anything from a mascot for the project or a diagram to make the 19 | a concept more clear. Here’s a list of suggested visual/graphical things you can 20 | tackle: 21 | 22 | * Use Illustrator, Photoshop, or similar to suggest a redesign of a Docker UI. 23 | * Suggest a better typeface for the Docker Blog. 25 | * Create a Gordon logo in the 26 | style of the Docker logo or your own style. 27 | * Search the documentation for existing but poorly executed graphics and improve them. 32 | * Design alternative themes for sites. 33 | 34 | # How to contribute graphics 35 | 36 | 1. Choose from a list of our 37 | existing graphic issues or create one of your own. 38 | 39 | 2. Create the graphic or other artwork. 40 | 41 | You can create an illustration in any application. The source file for the 42 | artwork could be a PSD, an AI, or a SVG file. Of course, you also might just 43 | submit a CSS file if it fits the task you took on. 44 | 45 | 3. License the output to Docker. 46 | 47 | 4. Optionally, write a `README.txt` file to explain your work. 48 | 49 | For example, if the image should go into a specific point in the 50 | documentation, explain where. Also, include the document's URL in your 51 | README. 52 | 53 | 5. Submit the source file(s), `README.txt`, and completed license on our Discourse share. 55 | 56 | {{< help >}} 57 | 58 | -------------------------------------------------------------------------------- /content/contributing/mentorship.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-16T12:34:27-04:00" 3 | linktitle = "Mentorship" 4 | title = "Mentoring Contributors & Users" 5 | 6 | +++ 7 | 8 | With millions of Docker users all over the world, there's always someone who 9 | needs a helping hand. Like many open source projects, the Docker project relies 10 | on community support channels like forums, IRC, and StackOverflow. You should 11 | contribute mentoring if you have good knowledge of: 12 | 13 | * how open source projects run 14 | * using Docker in some particular domain (for example, testing or deployment) 15 | * using Git, Go, GitHub, IRC, or other common tools 16 | 17 | Also, choose mentoring if you like to be happy. Studies show that helping others is a great way to 19 | boost your own well being. 20 | 21 | 22 | # Where to help 23 | 24 | If you are reading this at a Docker birthday event, look around you. Is there 25 | someone who looks puzzled or frustrated? Smile at this person and say *"Hey, can 26 | I help you with something?"* The next few sections list some other places to help. 27 | 28 | ## Docker users 29 | 30 | Docker users are people using Docker in their daily work. For example, a user 31 | might be deploying a Postgres database in a container. To help Docker users, visit: 32 | 33 | * the Docker-user Google group 35 | * the `#docker` channel on Freenode IRC 36 | * StackOverflow 38 | 39 | You can also check the list of 40 | open user questions on the Docker project. 41 | 42 | 43 | ## Docker contributors 44 | 45 | Docker contributors are people like you contributing to Docker open source. 46 | Contributors may need help with IRC, Go programming, Markdown, or with other 47 | aspects of contributing. To help Docker contributors: 48 | 49 | * the Docker Gitter IM 50 | room 51 | * the docker-dev Google group 53 | * the dev.dockerproject.com on Discourse 55 | * the `#docker-dev` channel on Freenode IRC 56 | 57 | 58 | {{< help >}} 59 | 60 | -------------------------------------------------------------------------------- /content/contributing/organization.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-16T12:40:41-04:00" 3 | title = "Organize our issues" 4 | linktitle = "Organize our issues" 5 | 6 | +++ 7 | 8 | The Docker projects use GitHub issues to record issues and feature requests that 9 | come in from contributors. Help us organize our work by triaging. Triage is the 10 | process of reviewing incoming issue tickets, gathering more information about 11 | the issue, and verifying whether or not the issue is valid. 12 | 13 | You should triage if you want to discover which Docker features other contributors 14 | think are important. Triage is a great choice if you have an interest 15 | or experience in software product management or project management. 16 | 17 | 18 | # What kind of issues can I triage? 19 | 20 | Docker users and contributors create new issues if they want to: 21 | 22 | * report a problem they had with Docker software 23 | * request a new feature 24 | * ask a question 25 | 26 | # How do I triage? 27 | 28 | Follow these steps: 29 | 30 | 1. Sign up for a Github account. 31 | 32 | 2. Visit a Docker repository and press the **Watch** button. 33 | 34 | This tells GitHub to notify you of new issues. Depending on your settings, 35 | notification go to your GitHub or email inbox. Some of repositories you can watch are: 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
docker/dockerDocker the open-source application container engine
docker/machineSoftware for the easy and quick creation of Docker hosts on your computer, on cloud providers, and inside your own data center.
kitematic/kitematicKitematic is a simple application for managing Docker containers on Mac OS X.
docker/swarmNative clustering for Docker; manage several Docker hosts as a single, virtual host.
docker/composeDefine and run complex applications using one or many interlinked containers.
62 | 63 | 64 | See the complete list of 65 | Docker repositories on GitHub. 66 | 67 | 3. Choose an issue from the list of untriaged issues. 73 | 74 | 4. Follow the the triage process to triage the issue. 77 | 78 | The triage process asks you to add both a `kind/` and a `exp/` label to each 79 | issue. Because you are not a Docker maintainer, you add these through comments. 80 | Simply add a `+label` keyword to an issue comment: 81 | 82 | ![Example](/images/triage-label.png) 83 | 84 | For example, the `+exp/beginner` and `+kind/writing` labels would triage an issue as 85 | beginner writing task. For descriptions of valid labels, see the the triage process 87 | 88 | 5. Triage another issue. 89 | 90 | 91 | 92 | {{< help >}} 93 | 94 | -------------------------------------------------------------------------------- /content/contributing/screencasts.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-16T12:36:58-04:00" 3 | title = "Screencasts or Video" 4 | linktitle = "Screencasts or Video" 5 | 6 | +++ 7 | 8 | Many people are visual learners. These people learn best from pictures, maps, 9 | and other visual media—like video. If that sounds like you, you might 10 | also like to contribute visually by submitting a screencast. (Not sure what kind of learner you are, take a quiz!) 13 | 14 | **FACT**: ~65% of the population are visual learners. 15 | 16 | 17 | # What kind screencast? 18 | 19 | * Create a screencast demonstrating a basic Docker task. 21 | * You can help by video taping another person's presentation. (Get 23 | permission!) 24 | * Convert a Docker presentation/talk you've created into a screencast. 25 | 26 | # How to contribute screencast 27 | 28 | 1. Decide what you want to portray. 29 | 30 | You might want to search in Youtube or Vimeo for Docker and see what other people have already 32 | done. Then, choose something different or update something outdated. You 33 | could also choose to do a screencast that depicts an upcoming enhancement. 35 | 36 | 2. If you don't have any, get some screencast software. 37 | 38 | There are several free 39 | screencasting tools available. 40 | 41 | 3. Create your screencast. 42 | 43 | 4. License the output to Docker. 44 | 45 | 5. Optionally, write a `README.txt` file to explain your work. 46 | 47 | For example, if the cast should go into a specific point in the 48 | documentation, explain where. Also, include the document's URL in your 49 | README. 50 | 51 | 6. Submit the source file(s), `README.txt`, and completed license on our Discourse share. 53 | 54 | {{< help >}} -------------------------------------------------------------------------------- /content/contributing/tests.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-16T12:40:36-04:00" 3 | title = "Contributing Testing" 4 | linktitle = "Testing" 5 | 6 | +++ 7 | 8 | 9 | Testing is about software quality, performance, reliability, or product usability. We develop and test Docker software before we release but we are human. So, we make mistakes, we get forgetful, or we just don't have enough time to do everything. 10 | 11 | Choose to contribute testing if you want to improve Docker software and processes. Testing is a good choice for contributors that have experience software testing, usability testing, or who are otherwise great at spotting problems. 12 | 13 | # What can you contribute to testing? 14 | 15 | * Write a blog about how your company uses Docker its test infrastructure. 16 | * Take an online usability test or create a usability test about Docker. 17 | * Test one of Docker's official images 18 | * Test the Docker documentation 19 | 20 | 21 | # Test the Docker documentation 22 | 23 | Testing documentation is relatively easy: 24 | 25 | 1. Find a page in Docker's documentation that contains a procedure or example you want to test. 26 | 27 | You should choose something that _should work_ on your machine. For example, 28 | creating 29 | a base image is something anyone with Docker can do. While changing 31 | volume directories in Kitematic requires a Mac and Docker's Kitematic 32 | installed. 33 | 34 | 2. Try and follow the procedure or recreate the example. 35 | 36 | What to look for: 37 | 38 | * Are the steps clearly laid out and identifiable? 39 | * Are the steps in the right order? 40 | * Did you get the results the procedure or example said you would? 41 | 42 | 4. If you couldn't complete the procedure or example, file an issue in the Docker repo. 43 | 44 | # Test code in the Docker 45 | 46 | If you are interested in writing or fixing test code for the Docker project, learn about our test infrastructure. 47 | 48 | View our open test issues in Docker for something to work on. Or, create one of your own. 49 | 50 | {{< help >}} 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /content/contributing/tutorials.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-16T12:36:52-04:00" 3 | title = "Contributing Tutorials" 4 | linktitle = "Tutorials" 5 | +++ 6 | 7 | A tutorial is a step-by-step guide for accomplishing some Docker task. For 8 | example, Digital Ocean produces a lot of high quality tutorials for development and sysadmin tasks. 10 | 11 | Contribute a tutorial if you accomplished a difficult or interesting Docker 12 | task—document it for yourself and others! Choose this task if you don't 13 | want to learn Git or GitHub. You can write a tutorial in your own 14 | blog space or in your favorite documentation editor. 15 | 16 | 17 | # What is a tutorial? 18 | 19 | * Walks a user through a real-world example. 20 | * Requires a user to complete one or more procedures. 21 | * A procedure has one or more ordered steps (1, 2, 3...). 22 | * Most every step has an expected "result"; so readers can check their work. 23 | 24 | ![Example](/images/tutorials.png) 25 | 26 | 27 | # How to contribute a tutorial 28 | 29 | 1. Pick a tutorial area. 30 | 31 | Rather than picking the `docker/docker` project maybe try writing a tutorial 32 | for one of our other projects: 33 | 34 | * Machine 35 | * Kitematic 36 | * Swarm 37 | * Compose 38 | 39 | 2. Pick a tutorial topic. 40 | 41 | Can't come up with something? Leverage your knowledge of one product to try 42 | something new on another. Using Docker Swarm you should be able to take a task 43 | you can do one Docker host and do it across several hosts all at once. You can 44 | also check our list of open 45 | writing issues for ideas. 46 | 47 | 3. Write up your tutorial. 48 | 49 | You can do this on a blog, in Markdown, or even in your favorite Document editor. 50 | 51 | 4. Submit the URL to us on ping us on twitter or if you wrote in a file, drop the file off 53 | on our Discourse 54 | share. 55 | 56 | 57 | {{< help >}} 58 | -------------------------------------------------------------------------------- /content/events.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-10T15:14:19-04:00" 3 | title = "Events" 4 | 5 | +++ 6 | 7 | # ![Docker Party](/images/2-years.png) 8 | 9 | The Docker Project, the open platform for distributed applications, is 10 | organizing an open-source-a-thon, where Docker core team members will teach and 11 | mentor people on how to contribute to open source. Contributions include code, 12 | documentation, tutorials, videos, and mentoring. Each contribution to the 13 | Docker Project will also support the [Oceanic Society](http://www.oceanicsociety.org) and its mission to 14 | conserve oceans. 15 | 16 | If you are interested in mentoring then please RSVP on the meetup page and sign up to be a mentor at http://goo.gl/forms/TAFVpnh3K8 17 | 18 | # Events 19 | 20 | ## March 23rd 21 | 22 | * [**Atlanta** @ Centergy](http://www.meetup.com/Docker-Atlanta/events/220936392/) 23 | * [**Austin** @ Rackspace](http://www.meetup.com/Docker-Austin/) 24 | * [**London** @ Skillsmatter](http://www.meetup.com/Docker-London/events/220933336/) 25 | * [**Mountain View** @ Box](http://www.meetup.com/Docker-Mountain-View/events/220936150) 26 | * [**Portland** @ New Relic](http://www.meetup.com/Docker-Portland-OR/events/220936451) 27 | * [**Tel Aviv** @ CA office](http://www.meetup.com/Docker-Tel-Aviv/events/221108613/) \* 28 | 29 | ## March 24th 30 | 31 | * [**Berlin** @ SoundCloud](http://www.meetup.com/Docker-Berlin/events/220945833/) 32 | * [**Seattle** @ Surf Incubator](http://www.meetup.com/Docker-Seattle/events/220937481/) 33 | 34 | ## March 25th 35 | 36 | * [**Boston** @ Akamai](http://www.meetup.com/Docker-Boston/events/220936081) 37 | * [**Denver** @ SendGrid](http://www.meetup.com/Docker-Denver/) 38 | * [**San Francisco** @ Docker](http://www.meetup.com/Docker-meetups/events/220935945/) 39 | * [**Sydney** @ Optiver](http://www.meetup.com/Sydney-Docker-User-Group/events/221082378/) 40 | 41 | ## March 26th 42 | 43 | * [**Brisbane** @ RedHat](http://www.meetup.com/Docker-Brisbane-Australia/events/220941621/) 44 | * [**Chicago** @ Groupon](http://www.meetup.com/Docker-Chicago/events/220936626/) 45 | * [**Los Angeles** @ Ticketmaster](http://www.meetup.com/Docker-Los-Angeles/events/220936374) 46 | * [**New York** @ Microsoft](http://www.meetup.com/Docker-NewYorkCity/events/220936011/) 47 | * [**Paris** @ 42](http://www.meetup.com/Docker-Paris/events/220947812/) 48 | * [**Vancouver** @ Hootsuite](http://www.meetup.com/Docker-vancouver/events/220937956) 49 | 50 | ## March 31st 51 | 52 | * [**Miami** @ Choose Digital](http://www.meetup.com/Docker-Miami/events/221200897/) 53 | 54 | ## April 11th 55 | 56 | * [**Singapore** @ Viki](http://www.meetup.com/Docker-Singapore/events/221412973/) 57 | * [**Libson**](http://www.meetup.com/DockerLisbon/events/221675292/) 58 | 59 | ## April 13th 60 | 61 | * [**Shanghai** @ Daocloud](http://www.meetup.com/Docker-Shanghai/events/221434008/) 62 | 63 | ## April 14th 64 | 65 | * [**Quezon City**](http://bluepoint.foundation/20150314113008/docker-s-2nd-birthday-celebration) 66 | 67 | ## April 23rd 68 | 69 | * [**Washington DC** @ Vizuri](http://www.meetup.com/Docker-DC/events/221701412/) 70 | 71 | 72 | # Suggested Agenda 73 | 74 | * **5:45** - Doors Open 75 | * **6:00** to **6:30** - Introduction & Presentation on contributing to the Docker Open Source project 76 | * **6:30** to **8:30** - Break out into groups: 77 | 1. Non code contributions 78 | 2. Beginner Code contributions (either new to Go or Docker) 79 | 3. Advanced Code contributions (advanced users are encouraged to mentor) 80 | * **8:30** to **9:00** Celebration with Cake 81 | 82 | 83 | ## Additional open-source-a-thon’s 84 | 85 | Thanks to overwhelming response and support, the event series is expanding to 86 | both online and community events! 87 | 88 | Many community organizers reached out to us to see if they could host local 89 | events themselves in cities that, due to logistic and resource constraints, we 90 | simply couldn’t staff ourselves. These community events will use the same 91 | material as the other events and will provide mentorship from expert developers 92 | from the broader open source community. 93 | 94 | Like the official events, any contributions made to the Docker Project at these 95 | events and in the weeks following will count toward Docker’s donation to the 96 | Oceanic Society. 97 | 98 | If you are interested in hosting a local event, or want more information, 99 | please email party@docker.com so we can provide you with the right materials 100 | and list it on our website. 101 | 102 | We will list these events here once the dates are finalized. 103 | 104 | # Charity 105 | 106 | The program is timed to coincide with the project’s 2nd birthday and is focused 107 | on a cause – ocean and marine life health – that is important to its millions 108 | of users. Docker’s logo, Moby Dock, is a blue whale that was contributed and 109 | selected by its community. The charitable program starts on March 23 and will 110 | span a total of five weeks; part of the proceeds will go towards the adoption 111 | and naming of a female blue whale soon to be known as “Molly Dock.” 112 | 113 | Contributions from the “opening week” of the program and follow-on 114 | contributions over the subsequent four weeks will be calculated and the final 115 | donation will be made. One contribution equates to a $50 donation, and an 116 | additional $50 will be added to the “Molly Dock fund” for those that wish to 117 | continue to contribute. 118 | 119 | -------------------------------------------------------------------------------- /content/getting-started.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-10T21:23:17-04:00" 3 | title = "Getting Started Contributing" 4 | linktitle = "Getting Started" 5 | aliases = [ "overview" ] 6 | weight = "5" 7 | 8 | +++ 9 | 10 | 11 | # ![Docker Party](/images/docker-friends.png) 12 | 13 | Contributing to the Docker project or to any open source project can be a 14 | rewarding experience. You help yourself and you help the projects you work on. 15 | You also help the countless number of other project participants. 16 | 17 | Open source projects depend on a lot more than just code to be successful. 18 | Proper documentation, testing, training, publicity, support and organization are 19 | all critical. 20 | 21 | # New to Docker? Before you arrive at an event... 22 | 23 | If you have time, here are some things you can do get a head start before an event: 24 | 25 | * Learn a little about what Docker is. 26 | * [Video review of Docker 27 | fundamentals](https://www.youtube.com/watch?v=zRLyovWi1gs) (9 minutes) 28 | * [Other good Docker resources](http://www.nkode.io/2014/08/24/valuable-docker-links.html) 29 | * Test your knowledge. 30 | * [Basic Dockerfile test](https://docs.docker.com/userguide/level1/) 31 | * [Advanced Dockerfile test](https://docs.docker.com/userguide/level2/) 32 | * [Install Docker](http://docs.docker.com/introduction/#installation) on your machine. 33 | * Get a free [GitHub account](https://github.com). 34 | * Sure you want to contribute code or docs? Work through the [project 35 | contributors guide](http://docs.docker.com/project/who-written-for/). 36 | 37 | 38 | # Contributing Guides 39 | 40 | When you are ready to start contributing, choose from the list below or the menu 41 | in the upper right corner. 42 | 43 | {{% contributingguide %}} 44 | 45 | 46 | # Filters for experienced contributors 47 | 48 | If you are an experienced Docker contributor, we have pre-filtered for open 49 | issues in the `docker/docker` repository. 50 | 51 | * [Graphics](https://github.com/docker/docker/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Fgraphics+-label%3Astatus%2Fclaimed+-label%3Astatus%2Fassigned+no%3Aassignee) 52 | * [Test](https://github.com/docker/docker/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Ftest+-label%3Astatus%2Fclaimed+-label%3Astatus%2Fassigned+no%3Aassignee) 53 | * [Documentation](https://github.com/docker/docker/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Fwriting+-label%3Astatus%2Fclaimed+-label%3Astatus%2Fassigned+no%3Aassignee) 54 | * [Questions](https://github.com/docker/docker/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Fquestion+-label%3Astatus%2Fclaimed+-label%3Astatus%2Fassigned+no%3Aassignee) 55 | * [Bugs](https://github.com/docker/docker/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Fbug+-label%3Astatus%2Fclaimed+-label%3Astatus%2Fassigned+no%3Aassignee) 56 | * [Features](https://github.com/docker/docker/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Ffeature+-label%3Astatus%2Fclaimed+-label%3Astatus%2Fassigned+no%3Aassignee) 57 | * [Enhancements](https://github.com/docker/docker/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Fenhancement+-label%3Astatus%2Fclaimed+-label%3Astatus%2Fassigned+no%3Aassignee) 58 | 59 | You might also want to check for open issues in our other Docker repositories: 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 |
docker/machineSoftware for the easy and quick creation of Docker hosts on your computer, on cloud providers, and inside your own data center.
docker/distributionRegistry implementation for storing and distributing 70 | docker images. Provides a secure tool chain for distributing content.
docker-library/official-imagesThis repository contains the images for our official repository.
docker/distributionRegistry implementation for storing and distributing 79 | docker images. Provides a secure tool chain for distributing content.
docker/swarmNative clustering for Docker; manage several Docker hosts as a single, virtual host.
docker/composeDefine and run complex applications using one or many interlinked containers.
90 | 91 | 92 | # General resources and acknowledgements 93 | 94 | In addition to this guide, we’ve found [GitHub's guide on contributing 95 | to open source](https://guides.github.com/overviews/os-contributing/) to 96 | be a helpful guide to contributing in general. 97 | 98 | This document was inspired by the [jQuery contributor 99 | guide](http://contribute.jquery.org/open-source/). 100 | -------------------------------------------------------------------------------- /content/home.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-10T13:16:52-04:00" 3 | title = "Home" 4 | +++ 5 | 6 | 7 | During the week of March 23rd, the Docker community will be hosting [over a 8 | dozen open-source-a-thon parties](/events) around the world. At these parties 9 | the Docker core team and expert developers from the broader open source 10 | community will teach and guide participants on how to contribute to open 11 | source. 12 | 13 |
14 |
15 | Presentation Source File - Keynote 16 |
17 | 18 | 19 | # Charity 20 | 21 | Contributions to the project at these events and in the weeks following will 22 | count toward our donation to the [Oceanic Society](http://www.oceanicsociety.org) and its mission to conserve 23 | the habitat of Moby Dock and blue whales across the planet. 24 | 25 | # Who 26 | 27 | We invite everyone with even the smallest desire to be a part open source or 28 | people who just want to help out with a great cause to attend regardless of 29 | technical experience. We will have Docker core team members at each event as 30 | well as experts from both the Docker and Go communities to mentor and teach 31 | people how to write Go (the language Docker is written in) and contribute to 32 | Docker. 33 | 34 | Participants will: 35 | 36 | * Learn how to contribute to open source 37 | * Learn about the Docker Project 38 | * Learn Go 39 | * Contribute regardless of their technical experience 40 | * Help marine wildlife (a donation will be made for every contribution) 41 | * Enjoy food and drinks 42 | 43 | Mentors will: 44 | 45 | * Teach people how to contribute to open source 46 | * Introduce participants to Go 47 | * Help with Git 48 | * Mentor code contributors 49 | * Help marine wildlife (a donation will be made for every mentor) 50 | * (Also) enjoy food and drinks 51 | 52 | If you are interested in mentoring then please RSVP on the meetup page and sign up to be a mentor at http://goo.gl/forms/TAFVpnh3K8 53 | 54 | # What 55 | 56 | While we hope to get many contributions in the form of code, we expect many 57 | more contributions from participants in other forms including documentation, 58 | tutorials, videos, artwork, organization, answering questions and mentoring at 59 | the events themselves. Regardless of your experience, you can contribute and 60 | make a difference. 61 | 62 | In addition to the [in person events](/events) we will also be hosting an [online 63 | open-source-a-thon](/online). 64 | 65 | # Thanks 66 | 67 | This event is thanks to the many wonderful people throughout the world who 68 | contribute their time and talents to open source. This includes our awesome 69 | meetup organizers, without whose efforts this would not be possible. 70 | 71 | # Sponsors 72 | 73 | ![Sponsors](/images/sponsors.png) 74 | -------------------------------------------------------------------------------- /content/online.md: -------------------------------------------------------------------------------- 1 | +++ 2 | date = "2015-03-10T13:10:38-04:00" 3 | title = "Online" 4 | +++ 5 | 6 | # ![Docker Party](/images/2-years.png) 7 | 8 | From March 23rd through April 23rd, any contributions made to the Docker Project will count toward Docker’s donation ($50 per contribution) to the Oceanic Society and its mission to conserve the habitat of Moby Dock and blue whales across the planet. 9 | 10 | ## How to participate 11 | 12 | There is no specific date or time for the online event - all you need is a computer and a desire to get involved in open source! To learn more, check out [our presentation created for the birthday events](/images/presentation.pdf). 13 | 14 | We also have almost all you'll need to start contributing right here! Just go to the [Getting Started](/getting-started) on this site. 15 | 16 | As with the in-person events, the Docker Project team members and expert developers from the broader open source community will be in our online help channels to guide you through contributing. 17 | 18 | ## Mentor online 19 | 20 | If you are interested in volunteering to guide online participants, please [sign up to be a mentor](http://goo.gl/forms/TAFVpnh3K8). 21 | 22 | 23 | 24 | 25 | {{< help >}} -------------------------------------------------------------------------------- /layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | {{ partial "navbar.html" . }} 3 | 4 |
5 |

{{ .Title }}

6 |
7 | {{ .Content }} 8 |
9 | 10 | {{ partial "container-footer.html" . }} 11 | 12 |
13 | 14 | {{ partial "footer.html" . }} 15 | -------------------------------------------------------------------------------- /layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | {{ partial "navbar.html" . }} 3 | 4 |
5 | 6 | {{ range where .Data.Pages "Title" "Home" }} 7 |

{{ .Content }}

8 | {{ end }} 9 | 10 | {{ partial "container-footer.html" . }} 11 | 12 |
13 | 14 | {{ partial "footer.html" . }} 15 | -------------------------------------------------------------------------------- /layouts/partials/container-footer.html: -------------------------------------------------------------------------------- 1 |
2 | 15 | 16 | 26 |
27 | -------------------------------------------------------------------------------- /layouts/partials/navbar.html: -------------------------------------------------------------------------------- 1 | 31 | -------------------------------------------------------------------------------- /layouts/shortcodes/contributingguide.html: -------------------------------------------------------------------------------- 1 |
    2 | {{ range (where .Page.Site.Pages "Section" "contributing") }} 3 |
  • {{ .LinkTitle }}
  • 4 | {{ end }} 5 |
6 | -------------------------------------------------------------------------------- /layouts/shortcodes/help.html: -------------------------------------------------------------------------------- 1 |
2 |

Getting Help

3 |

If you have any questions about getting things set up or if you’re not 4 | sure about how to address a problem with the code or documentation, 5 | we’re here to help:

6 |
    7 |
  • For people newer to open source, the gitter 8 | chatroom is easily accessible through 9 | a web browser and authenticates with Github.
  • 10 |
  • If you are working on a project issue, ask for help by commenting containing 11 | +status/help-wanted or +status/docs-help on the issue. 12 | Commenting like this creates a label others can filter on. 13 |
  • The best place to get help is on the Docker contributor forum. Here the 15 | entire community collaborates and supports each other. There’s even a section 16 | for people new to open source.
  • 17 |
  • For people familiar with IRC, please join the #docker or 18 | #docker-dev channel on Freenode.
  • 19 |
20 | 21 | -------------------------------------------------------------------------------- /original/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:jessie 2 | 3 | RUN apt-get update && apt-get install -y \ 4 | s3cmd \ 5 | --no-install-recommends 6 | 7 | # Setup s3cmd config 8 | RUN { \ 9 | echo '[default]'; \ 10 | echo 'access_key=$AWS_ACCESS_KEY'; \ 11 | echo 'secret_key=$AWS_SECRET_KEY'; \ 12 | } > ~/.s3cfg 13 | 14 | WORKDIR /usr/src/birthdaysite/ 15 | 16 | # add files 17 | COPY . /usr/src/birthdaysite/ 18 | 19 | ENTRYPOINT [ "./release.sh" ] 20 | -------------------------------------------------------------------------------- /original/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all build default release 2 | 3 | default: release 4 | 5 | all: build 6 | 7 | build: 8 | docker build --rm --force-rm -t docker:birthday . 9 | 10 | release: build 11 | docker run --rm -it -e AWS_S3_BUCKET -e AWS_ACCESS_KEY -e AWS_SECRET_KEY docker:birthday 12 | -------------------------------------------------------------------------------- /original/README.md: -------------------------------------------------------------------------------- 1 | ## Docker's Birthday Site 2 | 3 | **To release run:** 4 | 5 | ```console 6 | $ make release 7 | ``` 8 | -------------------------------------------------------------------------------- /original/css/custom.css: -------------------------------------------------------------------------------- 1 | .container { 2 | max-width: 800px; 3 | } 4 | 5 | html { 6 | background-image: radial-gradient(50% 97%, #51CEF0 16%, #51CEF0 16%, #31B9E9 52%, #2E8AE7 98%); 7 | } 8 | 9 | body { 10 | font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; 11 | color: white; 12 | font-size: 18pt; 13 | } 14 | 15 | .headline { 16 | color: #EEFF12; 17 | font-weight: bold; 18 | } 19 | 20 | .dates { 21 | color: white; 22 | font-weight: bold; 23 | } 24 | 25 | .navbar { 26 | display: none; } 27 | 28 | /* NAVBAR */ 29 | 30 | /* Larger than tablet */ 31 | @media (min-width: 750px) { 32 | /* Navbar */ 33 | .navbar + .docs-section { 34 | border-top-width: 0; } 35 | .navbar, 36 | .navbar-spacer { 37 | display: block; 38 | width: 100%; 39 | height: 6.5rem; 40 | background: #fff; 41 | z-index: 99; 42 | border-top: 1px solid #eee; 43 | border-bottom: 1px solid #eee; } 44 | .navbar-spacer { 45 | display: none; } 46 | .navbar > .container { 47 | width: 100%; } 48 | .navbar-list { 49 | list-style: none; 50 | margin-bottom: 0; } 51 | .navbar-item { 52 | position: relative; 53 | float: left; 54 | margin-bottom: 0; } 55 | .navbar-link { 56 | text-transform: uppercase; 57 | font-size: 11px; 58 | font-weight: 600; 59 | letter-spacing: .2rem; 60 | margin-right: 35px; 61 | text-decoration: none; 62 | line-height: 6.5rem; 63 | color: #222; } 64 | .navbar-link.active { 65 | color: #33C3F0; } 66 | .has-docked-nav .navbar { 67 | position: fixed; 68 | top: 0; 69 | left: 0; } 70 | .has-docked-nav .navbar-spacer { 71 | display: block; } 72 | /* Re-overiding the width 100% declaration to match size of % based container */ 73 | .has-docked-nav .navbar > .container { 74 | width: 80%; } 75 | -------------------------------------------------------------------------------- /original/css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS text size adjust after orientation change, without disabling 6 | * user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 29 | * and Firefox. 30 | * Correct `block` display not defined for `main` in IE 11. 31 | */ 32 | 33 | article, 34 | aside, 35 | details, 36 | figcaption, 37 | figure, 38 | footer, 39 | header, 40 | hgroup, 41 | main, 42 | menu, 43 | nav, 44 | section, 45 | summary { 46 | display: block; 47 | } 48 | 49 | /** 50 | * 1. Correct `inline-block` display not defined in IE 8/9. 51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 52 | */ 53 | 54 | audio, 55 | canvas, 56 | progress, 57 | video { 58 | display: inline-block; /* 1 */ 59 | vertical-align: baseline; /* 2 */ 60 | } 61 | 62 | /** 63 | * Prevent modern browsers from displaying `audio` without controls. 64 | * Remove excess height in iOS 5 devices. 65 | */ 66 | 67 | audio:not([controls]) { 68 | display: none; 69 | height: 0; 70 | } 71 | 72 | /** 73 | * Address `[hidden]` styling not present in IE 8/9/10. 74 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 75 | */ 76 | 77 | [hidden], 78 | template { 79 | display: none; 80 | } 81 | 82 | /* Links 83 | ========================================================================== */ 84 | 85 | /** 86 | * Remove the gray background color from active links in IE 10. 87 | */ 88 | 89 | a { 90 | background-color: transparent; 91 | } 92 | 93 | /** 94 | * Improve readability when focused and also mouse hovered in all browsers. 95 | */ 96 | 97 | a:active, 98 | a:hover { 99 | outline: 0; 100 | } 101 | 102 | /* Text-level semantics 103 | ========================================================================== */ 104 | 105 | /** 106 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 107 | */ 108 | 109 | abbr[title] { 110 | border-bottom: 1px dotted; 111 | } 112 | 113 | /** 114 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 115 | */ 116 | 117 | b, 118 | strong { 119 | font-weight: bold; 120 | } 121 | 122 | /** 123 | * Address styling not present in Safari and Chrome. 124 | */ 125 | 126 | dfn { 127 | font-style: italic; 128 | } 129 | 130 | /** 131 | * Address variable `h1` font-size and margin within `section` and `article` 132 | * contexts in Firefox 4+, Safari, and Chrome. 133 | */ 134 | 135 | h1 { 136 | font-size: 2em; 137 | margin: 0.67em 0; 138 | } 139 | 140 | /** 141 | * Address styling not present in IE 8/9. 142 | */ 143 | 144 | mark { 145 | background: #ff0; 146 | color: #000; 147 | } 148 | 149 | /** 150 | * Address inconsistent and variable font size in all browsers. 151 | */ 152 | 153 | small { 154 | font-size: 80%; 155 | } 156 | 157 | /** 158 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 159 | */ 160 | 161 | sub, 162 | sup { 163 | font-size: 75%; 164 | line-height: 0; 165 | position: relative; 166 | vertical-align: baseline; 167 | } 168 | 169 | sup { 170 | top: -0.5em; 171 | } 172 | 173 | sub { 174 | bottom: -0.25em; 175 | } 176 | 177 | /* Embedded content 178 | ========================================================================== */ 179 | 180 | /** 181 | * Remove border when inside `a` element in IE 8/9/10. 182 | */ 183 | 184 | img { 185 | border: 0; 186 | } 187 | 188 | /** 189 | * Correct overflow not hidden in IE 9/10/11. 190 | */ 191 | 192 | svg:not(:root) { 193 | overflow: hidden; 194 | } 195 | 196 | /* Grouping content 197 | ========================================================================== */ 198 | 199 | /** 200 | * Address margin not present in IE 8/9 and Safari. 201 | */ 202 | 203 | figure { 204 | margin: 1em 40px; 205 | } 206 | 207 | /** 208 | * Address differences between Firefox and other browsers. 209 | */ 210 | 211 | hr { 212 | -moz-box-sizing: content-box; 213 | box-sizing: content-box; 214 | height: 0; 215 | } 216 | 217 | /** 218 | * Contain overflow in all browsers. 219 | */ 220 | 221 | pre { 222 | overflow: auto; 223 | } 224 | 225 | /** 226 | * Address odd `em`-unit font size rendering in all browsers. 227 | */ 228 | 229 | code, 230 | kbd, 231 | pre, 232 | samp { 233 | font-family: monospace, monospace; 234 | font-size: 1em; 235 | } 236 | 237 | /* Forms 238 | ========================================================================== */ 239 | 240 | /** 241 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 242 | * styling of `select`, unless a `border` property is set. 243 | */ 244 | 245 | /** 246 | * 1. Correct color not being inherited. 247 | * Known issue: affects color of disabled elements. 248 | * 2. Correct font properties not being inherited. 249 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 250 | */ 251 | 252 | button, 253 | input, 254 | optgroup, 255 | select, 256 | textarea { 257 | color: inherit; /* 1 */ 258 | font: inherit; /* 2 */ 259 | margin: 0; /* 3 */ 260 | } 261 | 262 | /** 263 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 264 | */ 265 | 266 | button { 267 | overflow: visible; 268 | } 269 | 270 | /** 271 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 272 | * All other form control elements do not inherit `text-transform` values. 273 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 274 | * Correct `select` style inheritance in Firefox. 275 | */ 276 | 277 | button, 278 | select { 279 | text-transform: none; 280 | } 281 | 282 | /** 283 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 284 | * and `video` controls. 285 | * 2. Correct inability to style clickable `input` types in iOS. 286 | * 3. Improve usability and consistency of cursor style between image-type 287 | * `input` and others. 288 | */ 289 | 290 | button, 291 | html input[type="button"], /* 1 */ 292 | input[type="reset"], 293 | input[type="submit"] { 294 | -webkit-appearance: button; /* 2 */ 295 | cursor: pointer; /* 3 */ 296 | } 297 | 298 | /** 299 | * Re-set default cursor for disabled elements. 300 | */ 301 | 302 | button[disabled], 303 | html input[disabled] { 304 | cursor: default; 305 | } 306 | 307 | /** 308 | * Remove inner padding and border in Firefox 4+. 309 | */ 310 | 311 | button::-moz-focus-inner, 312 | input::-moz-focus-inner { 313 | border: 0; 314 | padding: 0; 315 | } 316 | 317 | /** 318 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 319 | * the UA stylesheet. 320 | */ 321 | 322 | input { 323 | line-height: normal; 324 | } 325 | 326 | /** 327 | * It's recommended that you don't attempt to style these elements. 328 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 329 | * 330 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 331 | * 2. Remove excess padding in IE 8/9/10. 332 | */ 333 | 334 | input[type="checkbox"], 335 | input[type="radio"] { 336 | box-sizing: border-box; /* 1 */ 337 | padding: 0; /* 2 */ 338 | } 339 | 340 | /** 341 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 342 | * `font-size` values of the `input`, it causes the cursor style of the 343 | * decrement button to change from `default` to `text`. 344 | */ 345 | 346 | input[type="number"]::-webkit-inner-spin-button, 347 | input[type="number"]::-webkit-outer-spin-button { 348 | height: auto; 349 | } 350 | 351 | /** 352 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 353 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome 354 | * (include `-moz` to future-proof). 355 | */ 356 | 357 | input[type="search"] { 358 | -webkit-appearance: textfield; /* 1 */ 359 | -moz-box-sizing: content-box; 360 | -webkit-box-sizing: content-box; /* 2 */ 361 | box-sizing: content-box; 362 | } 363 | 364 | /** 365 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 366 | * Safari (but not Chrome) clips the cancel button when the search input has 367 | * padding (and `textfield` appearance). 368 | */ 369 | 370 | input[type="search"]::-webkit-search-cancel-button, 371 | input[type="search"]::-webkit-search-decoration { 372 | -webkit-appearance: none; 373 | } 374 | 375 | /** 376 | * Define consistent border, margin, and padding. 377 | */ 378 | 379 | fieldset { 380 | border: 1px solid #c0c0c0; 381 | margin: 0 2px; 382 | padding: 0.35em 0.625em 0.75em; 383 | } 384 | 385 | /** 386 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 387 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 388 | */ 389 | 390 | legend { 391 | border: 0; /* 1 */ 392 | padding: 0; /* 2 */ 393 | } 394 | 395 | /** 396 | * Remove default vertical scrollbar in IE 8/9/10/11. 397 | */ 398 | 399 | textarea { 400 | overflow: auto; 401 | } 402 | 403 | /** 404 | * Don't inherit the `font-weight` (applied by a rule above). 405 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 406 | */ 407 | 408 | optgroup { 409 | font-weight: bold; 410 | } 411 | 412 | /* Tables 413 | ========================================================================== */ 414 | 415 | /** 416 | * Remove most spacing between table cells. 417 | */ 418 | 419 | table { 420 | border-collapse: collapse; 421 | border-spacing: 0; 422 | } 423 | 424 | td, 425 | th { 426 | padding: 0; 427 | } -------------------------------------------------------------------------------- /original/css/skeleton.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skeleton V2.0.4 3 | * Copyright 2014, Dave Gamache 4 | * www.getskeleton.com 5 | * Free to use under the MIT license. 6 | * http://www.opensource.org/licenses/mit-license.php 7 | * 12/29/2014 8 | */ 9 | 10 | 11 | /* Table of contents 12 | –––––––––––––––––––––––––––––––––––––––––––––––––– 13 | - Grid 14 | - Base Styles 15 | - Typography 16 | - Links 17 | - Buttons 18 | - Forms 19 | - Lists 20 | - Code 21 | - Tables 22 | - Spacing 23 | - Utilities 24 | - Clearing 25 | - Media Queries 26 | */ 27 | 28 | 29 | /* Grid 30 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 31 | .container { 32 | position: relative; 33 | width: 100%; 34 | max-width: 960px; 35 | margin: 0 auto; 36 | padding: 0 20px; 37 | box-sizing: border-box; } 38 | .column, 39 | .columns { 40 | width: 100%; 41 | float: left; 42 | box-sizing: border-box; } 43 | 44 | /* For devices larger than 400px */ 45 | @media (min-width: 400px) { 46 | .container { 47 | width: 85%; 48 | padding: 0; } 49 | } 50 | 51 | /* For devices larger than 550px */ 52 | @media (min-width: 550px) { 53 | .container { 54 | width: 80%; } 55 | .column, 56 | .columns { 57 | margin-left: 4%; } 58 | .column:first-child, 59 | .columns:first-child { 60 | margin-left: 0; } 61 | 62 | .one.column, 63 | .one.columns { width: 4.66666666667%; } 64 | .two.columns { width: 13.3333333333%; } 65 | .three.columns { width: 22%; } 66 | .four.columns { width: 30.6666666667%; } 67 | .five.columns { width: 39.3333333333%; } 68 | .six.columns { width: 48%; } 69 | .seven.columns { width: 56.6666666667%; } 70 | .eight.columns { width: 65.3333333333%; } 71 | .nine.columns { width: 74.0%; } 72 | .ten.columns { width: 82.6666666667%; } 73 | .eleven.columns { width: 91.3333333333%; } 74 | .twelve.columns { width: 100%; margin-left: 0; } 75 | 76 | .one-third.column { width: 30.6666666667%; } 77 | .two-thirds.column { width: 65.3333333333%; } 78 | 79 | .one-half.column { width: 48%; } 80 | 81 | /* Offsets */ 82 | .offset-by-one.column, 83 | .offset-by-one.columns { margin-left: 8.66666666667%; } 84 | .offset-by-two.column, 85 | .offset-by-two.columns { margin-left: 17.3333333333%; } 86 | .offset-by-three.column, 87 | .offset-by-three.columns { margin-left: 26%; } 88 | .offset-by-four.column, 89 | .offset-by-four.columns { margin-left: 34.6666666667%; } 90 | .offset-by-five.column, 91 | .offset-by-five.columns { margin-left: 43.3333333333%; } 92 | .offset-by-six.column, 93 | .offset-by-six.columns { margin-left: 52%; } 94 | .offset-by-seven.column, 95 | .offset-by-seven.columns { margin-left: 60.6666666667%; } 96 | .offset-by-eight.column, 97 | .offset-by-eight.columns { margin-left: 69.3333333333%; } 98 | .offset-by-nine.column, 99 | .offset-by-nine.columns { margin-left: 78.0%; } 100 | .offset-by-ten.column, 101 | .offset-by-ten.columns { margin-left: 86.6666666667%; } 102 | .offset-by-eleven.column, 103 | .offset-by-eleven.columns { margin-left: 95.3333333333%; } 104 | 105 | .offset-by-one-third.column, 106 | .offset-by-one-third.columns { margin-left: 34.6666666667%; } 107 | .offset-by-two-thirds.column, 108 | .offset-by-two-thirds.columns { margin-left: 69.3333333333%; } 109 | 110 | .offset-by-one-half.column, 111 | .offset-by-one-half.columns { margin-left: 52%; } 112 | 113 | } 114 | 115 | 116 | /* Base Styles 117 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 118 | /* NOTE 119 | html is set to 62.5% so that all the REM measurements throughout Skeleton 120 | are based on 10px sizing. So basically 1.5rem = 15px :) */ 121 | html { 122 | font-size: 62.5%; } 123 | body { 124 | font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */ 125 | line-height: 1.6; 126 | font-weight: 400; 127 | font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; 128 | color: #222; } 129 | 130 | 131 | /* Typography 132 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 133 | h1, h2, h3, h4, h5, h6 { 134 | margin-top: 0; 135 | margin-bottom: 2rem; 136 | font-weight: 300; } 137 | h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;} 138 | h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; } 139 | h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; } 140 | h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; } 141 | h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; } 142 | h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; } 143 | 144 | /* Larger than phablet */ 145 | @media (min-width: 550px) { 146 | h1 { font-size: 5.0rem; } 147 | h2 { font-size: 4.2rem; } 148 | h3 { font-size: 3.6rem; } 149 | h4 { font-size: 3.0rem; } 150 | h5 { font-size: 2.4rem; } 151 | h6 { font-size: 1.5rem; } 152 | } 153 | 154 | p { 155 | margin-top: 0; } 156 | 157 | 158 | /* Links 159 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 160 | a { 161 | color: #1EAEDB; } 162 | a:hover { 163 | color: #0FA0CE; } 164 | 165 | 166 | /* Buttons 167 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 168 | .button, 169 | button, 170 | input[type="submit"], 171 | input[type="reset"], 172 | input[type="button"] { 173 | display: inline-block; 174 | height: 38px; 175 | padding: 0 30px; 176 | color: #555; 177 | text-align: center; 178 | font-size: 11px; 179 | font-weight: 600; 180 | line-height: 38px; 181 | letter-spacing: .1rem; 182 | text-transform: uppercase; 183 | text-decoration: none; 184 | white-space: nowrap; 185 | background-color: transparent; 186 | border-radius: 4px; 187 | border: 1px solid #bbb; 188 | cursor: pointer; 189 | box-sizing: border-box; } 190 | .button:hover, 191 | button:hover, 192 | input[type="submit"]:hover, 193 | input[type="reset"]:hover, 194 | input[type="button"]:hover, 195 | .button:focus, 196 | button:focus, 197 | input[type="submit"]:focus, 198 | input[type="reset"]:focus, 199 | input[type="button"]:focus { 200 | color: #333; 201 | border-color: #888; 202 | outline: 0; } 203 | .button.button-primary, 204 | button.button-primary, 205 | input[type="submit"].button-primary, 206 | input[type="reset"].button-primary, 207 | input[type="button"].button-primary { 208 | color: #FFF; 209 | background-color: #33C3F0; 210 | border-color: #33C3F0; } 211 | .button.button-primary:hover, 212 | button.button-primary:hover, 213 | input[type="submit"].button-primary:hover, 214 | input[type="reset"].button-primary:hover, 215 | input[type="button"].button-primary:hover, 216 | .button.button-primary:focus, 217 | button.button-primary:focus, 218 | input[type="submit"].button-primary:focus, 219 | input[type="reset"].button-primary:focus, 220 | input[type="button"].button-primary:focus { 221 | color: #FFF; 222 | background-color: #1EAEDB; 223 | border-color: #1EAEDB; } 224 | 225 | 226 | /* Forms 227 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 228 | input[type="email"], 229 | input[type="number"], 230 | input[type="search"], 231 | input[type="text"], 232 | input[type="tel"], 233 | input[type="url"], 234 | input[type="password"], 235 | textarea, 236 | select { 237 | height: 38px; 238 | padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ 239 | background-color: #fff; 240 | border: 1px solid #D1D1D1; 241 | border-radius: 4px; 242 | box-shadow: none; 243 | box-sizing: border-box; } 244 | /* Removes awkward default styles on some inputs for iOS */ 245 | input[type="email"], 246 | input[type="number"], 247 | input[type="search"], 248 | input[type="text"], 249 | input[type="tel"], 250 | input[type="url"], 251 | input[type="password"], 252 | textarea { 253 | -webkit-appearance: none; 254 | -moz-appearance: none; 255 | appearance: none; } 256 | textarea { 257 | min-height: 65px; 258 | padding-top: 6px; 259 | padding-bottom: 6px; } 260 | input[type="email"]:focus, 261 | input[type="number"]:focus, 262 | input[type="search"]:focus, 263 | input[type="text"]:focus, 264 | input[type="tel"]:focus, 265 | input[type="url"]:focus, 266 | input[type="password"]:focus, 267 | textarea:focus, 268 | select:focus { 269 | border: 1px solid #33C3F0; 270 | outline: 0; } 271 | label, 272 | legend { 273 | display: block; 274 | margin-bottom: .5rem; 275 | font-weight: 600; } 276 | fieldset { 277 | padding: 0; 278 | border-width: 0; } 279 | input[type="checkbox"], 280 | input[type="radio"] { 281 | display: inline; } 282 | label > .label-body { 283 | display: inline-block; 284 | margin-left: .5rem; 285 | font-weight: normal; } 286 | 287 | 288 | /* Lists 289 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 290 | ul { 291 | list-style: circle inside; } 292 | ol { 293 | list-style: decimal inside; } 294 | ol, ul { 295 | padding-left: 0; 296 | margin-top: 0; } 297 | ul ul, 298 | ul ol, 299 | ol ol, 300 | ol ul { 301 | margin: 1.5rem 0 1.5rem 3rem; 302 | font-size: 90%; } 303 | li { 304 | margin-bottom: 1rem; } 305 | 306 | 307 | /* Code 308 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 309 | code { 310 | padding: .2rem .5rem; 311 | margin: 0 .2rem; 312 | font-size: 90%; 313 | white-space: nowrap; 314 | background: #F1F1F1; 315 | border: 1px solid #E1E1E1; 316 | border-radius: 4px; } 317 | pre > code { 318 | display: block; 319 | padding: 1rem 1.5rem; 320 | white-space: pre; } 321 | 322 | 323 | /* Tables 324 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 325 | th, 326 | td { 327 | padding: 12px 15px; 328 | text-align: left; 329 | border-bottom: 1px solid #E1E1E1; } 330 | th:first-child, 331 | td:first-child { 332 | padding-left: 0; } 333 | th:last-child, 334 | td:last-child { 335 | padding-right: 0; } 336 | 337 | 338 | /* Spacing 339 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 340 | button, 341 | .button { 342 | margin-bottom: 1rem; } 343 | input, 344 | textarea, 345 | select, 346 | fieldset { 347 | margin-bottom: 1.5rem; } 348 | pre, 349 | blockquote, 350 | dl, 351 | figure, 352 | table, 353 | p, 354 | ul, 355 | ol, 356 | form { 357 | margin-bottom: 2.5rem; } 358 | 359 | 360 | /* Utilities 361 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 362 | .u-full-width { 363 | width: 100%; 364 | box-sizing: border-box; } 365 | .u-max-full-width { 366 | max-width: 100%; 367 | box-sizing: border-box; } 368 | .u-pull-right { 369 | float: right; } 370 | .u-pull-left { 371 | float: left; } 372 | 373 | 374 | /* Misc 375 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 376 | hr { 377 | margin-top: 3rem; 378 | margin-bottom: 3.5rem; 379 | border-width: 0; 380 | border-top: 1px solid #E1E1E1; } 381 | 382 | 383 | /* Clearing 384 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 385 | 386 | /* Self Clearing Goodness */ 387 | .container:after, 388 | .row:after, 389 | .u-cf { 390 | content: ""; 391 | display: table; 392 | clear: both; } 393 | 394 | 395 | /* Media Queries 396 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 397 | /* 398 | Note: The best way to structure the use of media queries is to create the queries 399 | near the relevant code. For example, if you wanted to change the styles for buttons 400 | on small devices, paste the mobile query code up in the buttons section and style it 401 | there. 402 | */ 403 | 404 | 405 | /* Larger than mobile */ 406 | @media (min-width: 400px) {} 407 | 408 | /* Larger than phablet (also point when grid becomes active) */ 409 | @media (min-width: 550px) {} 410 | 411 | /* Larger than tablet */ 412 | @media (min-width: 750px) {} 413 | 414 | /* Larger than desktop */ 415 | @media (min-width: 1000px) {} 416 | 417 | /* Larger than Desktop HD */ 418 | @media (min-width: 1200px) {} 419 | -------------------------------------------------------------------------------- /original/images/2-years.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/original/images/2-years.png -------------------------------------------------------------------------------- /original/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/original/images/favicon.ico -------------------------------------------------------------------------------- /original/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | We're having a Docker Party :) 7 | 8 | 9 | 11 | 12 | 13 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 35 |
36 |
37 | 38 |
39 |
40 |
41 |   42 |
43 |
44 |

March 18th - 27th

45 |

Celebrate Docker's Second Birthday!

46 |
47 |
48 | 49 | 50 | 59 | 60 |
61 |

62 | 63 | During the week of March 23rd, the docker community will be hosting over a 64 | dozen open-source-a-thon parties around the world. At these parties the Docker 65 | core team and expert developers from the broader open source community will 66 | teach and guide participants on how to contribute to open source. 67 | 68 |

69 | 70 | Contributions to the project at these events and in the weeks following will 71 | count toward our donation to the Oceanic Society and its mission to conserve 72 | the habitat of Moby Dock and blue whales across the planet. 73 | 74 |

75 | 76 | We invite everyone with even the smallest desire to be a part open source or 77 | people who just want to help out with a great cause to attend regardless of 78 | technical experience. We will have Docker core team members at each event as 79 | well as experts from both the Docker and Go communities to mentor and teach 80 | people how to write Go (the language Docker is written in) and contribute to 81 | Docker. 82 | 83 |

84 | 85 | While we hope to get many contributions in the form of code, we expect many 86 | more contributions from participants in other forms including documentation, 87 | tutorials, videos, artwork, organization, answering questions and mentoring at 88 | the events themselves. Regardless of your experience, you can contribute and 89 | make a difference. 90 | 91 |

92 | 93 | In addition to the in person events we will also be hosting an online 94 | open-source-a-thon the following week (details to come). 95 | 96 |

97 | 98 | This event is thanks to the many wonderful people throughout the world who 99 | contribute their time and talents to open source. This includes our awesome 100 | meetup organizers who, without their efforts this would not be possible. 101 | 102 |

103 | 104 |

105 | Sign up to stay informed as we unveil more information about this worldwide celebration. 106 |

107 |
108 |
109 |
110 |   111 |
112 |
113 |
114 |
115 |
116 |
 
117 |
118 | 119 |
120 |
121 |
122 | 123 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /original/js/site.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | // Variables 4 | var $codeSnippets = $('.code-example-body'), 5 | $nav = $('.navbar'), 6 | $body = $('body'), 7 | $window = $(window), 8 | $popoverLink = $('[data-popover]'), 9 | navOffsetTop = $nav.offset().top, 10 | $document = $(document), 11 | entityMap = { 12 | "&": "&", 13 | "<": "<", 14 | ">": ">", 15 | '"': '"', 16 | "'": ''', 17 | "/": '/' 18 | } 19 | 20 | function init() { 21 | $window.on('scroll', onScroll) 22 | $window.on('resize', resize) 23 | $popoverLink.on('click', openPopover) 24 | $document.on('click', closePopover) 25 | $('a[href^="#"]').on('click', smoothScroll) 26 | buildSnippets(); 27 | } 28 | 29 | function smoothScroll(e) { 30 | e.preventDefault(); 31 | $(document).off("scroll"); 32 | var target = this.hash, 33 | menu = target; 34 | $target = $(target); 35 | $('html, body').stop().animate({ 36 | 'scrollTop': $target.offset().top-40 37 | }, 0, 'swing', function () { 38 | window.location.hash = target; 39 | $(document).on("scroll", onScroll); 40 | }); 41 | } 42 | 43 | function openPopover(e) { 44 | e.preventDefault() 45 | closePopover(); 46 | var popover = $($(this).data('popover')); 47 | popover.toggleClass('open') 48 | e.stopImmediatePropagation(); 49 | } 50 | 51 | function closePopover(e) { 52 | if($('.popover.open').length > 0) { 53 | $('.popover').removeClass('open') 54 | } 55 | } 56 | 57 | $("#button").click(function() { 58 | $('html, body').animate({ 59 | scrollTop: $("#elementtoScrollToID").offset().top 60 | }, 2000); 61 | }); 62 | 63 | function resize() { 64 | $body.removeClass('has-docked-nav') 65 | navOffsetTop = $nav.offset().top 66 | onScroll() 67 | } 68 | 69 | function onScroll() { 70 | if(navOffsetTop < $window.scrollTop() && !$body.hasClass('has-docked-nav')) { 71 | $body.addClass('has-docked-nav') 72 | } 73 | if(navOffsetTop > $window.scrollTop() && $body.hasClass('has-docked-nav')) { 74 | $body.removeClass('has-docked-nav') 75 | } 76 | } 77 | 78 | function escapeHtml(string) { 79 | return String(string).replace(/[&<>"'\/]/g, function (s) { 80 | return entityMap[s]; 81 | }); 82 | } 83 | 84 | function buildSnippets() { 85 | $codeSnippets.each(function() { 86 | var newContent = escapeHtml($(this).html()) 87 | $(this).html(newContent) 88 | }) 89 | } 90 | 91 | 92 | init(); 93 | 94 | }); 95 | -------------------------------------------------------------------------------- /original/release.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | set -o pipefail 4 | 5 | # Print a usage message and exit. 6 | usage() { 7 | cat >&2 <<'EOF' 8 | To run, I need: 9 | - to be in a container generated by the Dockerfile at the top of the Docker 10 | repository; 11 | - to be provided with the name of an S3 bucket, in environment variable 12 | AWS_S3_BUCKET; 13 | - to be provided with AWS credentials for this S3 bucket, in environment 14 | variables AWS_ACCESS_KEY and AWS_SECRET_KEY; 15 | - a generous amount of good will and nice manners. 16 | The canonical way to run me is to run the image produced by the Dockerfile: e.g.:" 17 | docker run -e AWS_S3_BUCKET=docker.party \ 18 | -e AWS_ACCESS_KEY=... \ 19 | -e AWS_SECRET_KEY=... \ 20 | -it \ 21 | docker:birthday ./release.sh 22 | EOF 23 | exit 1 24 | } 25 | 26 | [ "$AWS_S3_BUCKET" ] || usage 27 | [ "$AWS_ACCESS_KEY" ] || usage 28 | [ "$AWS_SECRET_KEY" ] || usage 29 | 30 | # upload the files to s3 31 | s3cmd sync -P . s3://$AWS_S3_BUCKET/ 32 | -------------------------------------------------------------------------------- /presentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/presentation.pdf -------------------------------------------------------------------------------- /release.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | set -o pipefail 4 | 5 | # Print a usage message and exit. 6 | usage() { 7 | cat >&2 <<'EOF' 8 | To run, I need: 9 | - to be in a container generated by the Dockerfile at the top of the Docker 10 | repository; 11 | - to be provided with the name of an S3 bucket, in environment variable 12 | AWS_S3_BUCKET; 13 | - to be provided with AWS credentials for this S3 bucket, in environment 14 | variables AWS_ACCESS_KEY and AWS_SECRET_KEY; 15 | - a generous amount of good will and nice manners. 16 | The canonical way to run me is to run the image produced by the Dockerfile: e.g.:" 17 | docker run -e AWS_S3_BUCKET=docker.party \ 18 | -e AWS_ACCESS_KEY=... \ 19 | -e AWS_SECRET_KEY=... \ 20 | -it \ 21 | docker:birthday ./release.sh 22 | EOF 23 | exit 1 24 | } 25 | 26 | 27 | echo "Building site with hugo" 28 | hugo 29 | 30 | if [[ ! -d public ]]; then 31 | echo "something went wrong we should have a public folder." 32 | fi 33 | 34 | [ "$AWS_S3_BUCKET" ] || usage 35 | [ "$AWS_ACCESS_KEY" ] || usage 36 | [ "$AWS_SECRET_KEY" ] || usage 37 | 38 | # move presentation to public 39 | mv presentation.pdf public/ 40 | 41 | # enter public 42 | cd public 43 | 44 | # upload the files to s3 45 | s3cmd sync -P . s3://$AWS_S3_BUCKET/ 46 | -------------------------------------------------------------------------------- /static/css/custom.css: -------------------------------------------------------------------------------- 1 | .container { 2 | max-width: 800px; 3 | } 4 | 5 | html { 6 | background-image: radial-gradient(50% 97%, #51CEF0 16%, #51CEF0 16%, #31B9E9 52%, #2E8AE7 98%); 7 | } 8 | 9 | body { 10 | font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; 11 | color: white; 12 | font-size: 18pt; 13 | } 14 | 15 | .headline { 16 | color: #EEFF12; 17 | font-weight: bold; 18 | } 19 | 20 | .dates { 21 | color: white; 22 | font-weight: bold; 23 | } 24 | 25 | .navbar { 26 | display: none; } 27 | 28 | /* NAVBAR */ 29 | 30 | /* Larger than tablet */ 31 | @media (min-width: 750px) { 32 | /* Navbar */ 33 | .navbar + .docs-section { 34 | border-top-width: 0; } 35 | .navbar, 36 | .navbar-spacer { 37 | display: block; 38 | width: 100%; 39 | height: 6.5rem; 40 | background: #fff; 41 | z-index: 99; 42 | border-top: 1px solid #eee; 43 | border-bottom: 1px solid #eee; } 44 | .navbar-spacer { 45 | display: none; } 46 | .navbar > .container { 47 | width: 100%; } 48 | .navbar-list { 49 | list-style: none; 50 | margin-bottom: 0; } 51 | .navbar-item { 52 | position: relative; 53 | float: left; 54 | margin-bottom: 0; } 55 | .navbar-link { 56 | text-transform: uppercase; 57 | font-size: 11px; 58 | font-weight: 600; 59 | letter-spacing: .2rem; 60 | margin-right: 35px; 61 | text-decoration: none; 62 | line-height: 6.5rem; 63 | color: #222; } 64 | .navbar-link.active { 65 | color: #33C3F0; } 66 | .has-docked-nav .navbar { 67 | position: fixed; 68 | top: 0; 69 | left: 0; } 70 | .has-docked-nav .navbar-spacer { 71 | display: block; } 72 | /* Re-overiding the width 100% declaration to match size of % based container */ 73 | .has-docked-nav .navbar > .container { 74 | width: 80%; } 75 | -------------------------------------------------------------------------------- /static/css/hugo-bootswatch.css: -------------------------------------------------------------------------------- 1 | body{ 2 | padding-top:50px; 3 | background-color: rgba(0,0,0,0) !important; 4 | font-size: 18pt; 5 | line-height: 1.5em; 6 | font-family: "helvetica neue"; 7 | font-weight: 100; 8 | } 9 | footer{ 10 | padding-top:50px; 11 | } 12 | 13 | table { 14 | border-collapse: separate; 15 | border-spacing: 10px; 16 | } 17 | 18 | 19 | 20 | h1 { 21 | padding-top: 35px; 22 | } 23 | 24 | html { 25 | background-image: radial-gradient(50% 97%, #315780 52%, #1e354e 98%); 26 | } 27 | 28 | img { 29 | max-width: 100%; 30 | max-height: 50vh; 31 | margin: auto; 32 | display: block; 33 | } 34 | 35 | p, a, h1, h2, h3, h4, h5, h6, ul,ol, li { 36 | text-shadow: 1px 1px 1px #111 !important; 37 | color: white; 38 | } 39 | 40 | p,ul { 41 | padding-bottom: .5em; 42 | line-height: 1.25; 43 | } 44 | 45 | .dropdown-menu > li > a{ 46 | text-shadow: 0px 0px 0px #111 !important; 47 | } 48 | 49 | a { 50 | color: #FF76A5; 51 | } 52 | 53 | a:hover { 54 | color: #ff4088; 55 | } 56 | 57 | .navbar-default { 58 | background-color: rgba(27, 48, 71, .8) !important ; 59 | } 60 | -------------------------------------------------------------------------------- /static/css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS text size adjust after orientation change, without disabling 6 | * user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 29 | * and Firefox. 30 | * Correct `block` display not defined for `main` in IE 11. 31 | */ 32 | 33 | article, 34 | aside, 35 | details, 36 | figcaption, 37 | figure, 38 | footer, 39 | header, 40 | hgroup, 41 | main, 42 | menu, 43 | nav, 44 | section, 45 | summary { 46 | display: block; 47 | } 48 | 49 | /** 50 | * 1. Correct `inline-block` display not defined in IE 8/9. 51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 52 | */ 53 | 54 | audio, 55 | canvas, 56 | progress, 57 | video { 58 | display: inline-block; /* 1 */ 59 | vertical-align: baseline; /* 2 */ 60 | } 61 | 62 | /** 63 | * Prevent modern browsers from displaying `audio` without controls. 64 | * Remove excess height in iOS 5 devices. 65 | */ 66 | 67 | audio:not([controls]) { 68 | display: none; 69 | height: 0; 70 | } 71 | 72 | /** 73 | * Address `[hidden]` styling not present in IE 8/9/10. 74 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 75 | */ 76 | 77 | [hidden], 78 | template { 79 | display: none; 80 | } 81 | 82 | /* Links 83 | ========================================================================== */ 84 | 85 | /** 86 | * Remove the gray background color from active links in IE 10. 87 | */ 88 | 89 | a { 90 | background-color: transparent; 91 | } 92 | 93 | /** 94 | * Improve readability when focused and also mouse hovered in all browsers. 95 | */ 96 | 97 | a:active, 98 | a:hover { 99 | outline: 0; 100 | } 101 | 102 | /* Text-level semantics 103 | ========================================================================== */ 104 | 105 | /** 106 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 107 | */ 108 | 109 | abbr[title] { 110 | border-bottom: 1px dotted; 111 | } 112 | 113 | /** 114 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 115 | */ 116 | 117 | b, 118 | strong { 119 | font-weight: bold; 120 | } 121 | 122 | /** 123 | * Address styling not present in Safari and Chrome. 124 | */ 125 | 126 | dfn { 127 | font-style: italic; 128 | } 129 | 130 | /** 131 | * Address variable `h1` font-size and margin within `section` and `article` 132 | * contexts in Firefox 4+, Safari, and Chrome. 133 | */ 134 | 135 | h1 { 136 | font-size: 2em; 137 | margin: 0.67em 0; 138 | } 139 | 140 | /** 141 | * Address styling not present in IE 8/9. 142 | */ 143 | 144 | mark { 145 | background: #ff0; 146 | color: #000; 147 | } 148 | 149 | /** 150 | * Address inconsistent and variable font size in all browsers. 151 | */ 152 | 153 | small { 154 | font-size: 80%; 155 | } 156 | 157 | /** 158 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 159 | */ 160 | 161 | sub, 162 | sup { 163 | font-size: 75%; 164 | line-height: 0; 165 | position: relative; 166 | vertical-align: baseline; 167 | } 168 | 169 | sup { 170 | top: -0.5em; 171 | } 172 | 173 | sub { 174 | bottom: -0.25em; 175 | } 176 | 177 | /* Embedded content 178 | ========================================================================== */ 179 | 180 | /** 181 | * Remove border when inside `a` element in IE 8/9/10. 182 | */ 183 | 184 | img { 185 | border: 0; 186 | } 187 | 188 | /** 189 | * Correct overflow not hidden in IE 9/10/11. 190 | */ 191 | 192 | svg:not(:root) { 193 | overflow: hidden; 194 | } 195 | 196 | /* Grouping content 197 | ========================================================================== */ 198 | 199 | /** 200 | * Address margin not present in IE 8/9 and Safari. 201 | */ 202 | 203 | figure { 204 | margin: 1em 40px; 205 | } 206 | 207 | /** 208 | * Address differences between Firefox and other browsers. 209 | */ 210 | 211 | hr { 212 | -moz-box-sizing: content-box; 213 | box-sizing: content-box; 214 | height: 0; 215 | } 216 | 217 | /** 218 | * Contain overflow in all browsers. 219 | */ 220 | 221 | pre { 222 | overflow: auto; 223 | } 224 | 225 | /** 226 | * Address odd `em`-unit font size rendering in all browsers. 227 | */ 228 | 229 | code, 230 | kbd, 231 | pre, 232 | samp { 233 | font-family: monospace, monospace; 234 | font-size: 1em; 235 | } 236 | 237 | /* Forms 238 | ========================================================================== */ 239 | 240 | /** 241 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 242 | * styling of `select`, unless a `border` property is set. 243 | */ 244 | 245 | /** 246 | * 1. Correct color not being inherited. 247 | * Known issue: affects color of disabled elements. 248 | * 2. Correct font properties not being inherited. 249 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 250 | */ 251 | 252 | button, 253 | input, 254 | optgroup, 255 | select, 256 | textarea { 257 | color: inherit; /* 1 */ 258 | font: inherit; /* 2 */ 259 | margin: 0; /* 3 */ 260 | } 261 | 262 | /** 263 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 264 | */ 265 | 266 | button { 267 | overflow: visible; 268 | } 269 | 270 | /** 271 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 272 | * All other form control elements do not inherit `text-transform` values. 273 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 274 | * Correct `select` style inheritance in Firefox. 275 | */ 276 | 277 | button, 278 | select { 279 | text-transform: none; 280 | } 281 | 282 | /** 283 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 284 | * and `video` controls. 285 | * 2. Correct inability to style clickable `input` types in iOS. 286 | * 3. Improve usability and consistency of cursor style between image-type 287 | * `input` and others. 288 | */ 289 | 290 | button, 291 | html input[type="button"], /* 1 */ 292 | input[type="reset"], 293 | input[type="submit"] { 294 | -webkit-appearance: button; /* 2 */ 295 | cursor: pointer; /* 3 */ 296 | } 297 | 298 | /** 299 | * Re-set default cursor for disabled elements. 300 | */ 301 | 302 | button[disabled], 303 | html input[disabled] { 304 | cursor: default; 305 | } 306 | 307 | /** 308 | * Remove inner padding and border in Firefox 4+. 309 | */ 310 | 311 | button::-moz-focus-inner, 312 | input::-moz-focus-inner { 313 | border: 0; 314 | padding: 0; 315 | } 316 | 317 | /** 318 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 319 | * the UA stylesheet. 320 | */ 321 | 322 | input { 323 | line-height: normal; 324 | } 325 | 326 | /** 327 | * It's recommended that you don't attempt to style these elements. 328 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 329 | * 330 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 331 | * 2. Remove excess padding in IE 8/9/10. 332 | */ 333 | 334 | input[type="checkbox"], 335 | input[type="radio"] { 336 | box-sizing: border-box; /* 1 */ 337 | padding: 0; /* 2 */ 338 | } 339 | 340 | /** 341 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 342 | * `font-size` values of the `input`, it causes the cursor style of the 343 | * decrement button to change from `default` to `text`. 344 | */ 345 | 346 | input[type="number"]::-webkit-inner-spin-button, 347 | input[type="number"]::-webkit-outer-spin-button { 348 | height: auto; 349 | } 350 | 351 | /** 352 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 353 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome 354 | * (include `-moz` to future-proof). 355 | */ 356 | 357 | input[type="search"] { 358 | -webkit-appearance: textfield; /* 1 */ 359 | -moz-box-sizing: content-box; 360 | -webkit-box-sizing: content-box; /* 2 */ 361 | box-sizing: content-box; 362 | } 363 | 364 | /** 365 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 366 | * Safari (but not Chrome) clips the cancel button when the search input has 367 | * padding (and `textfield` appearance). 368 | */ 369 | 370 | input[type="search"]::-webkit-search-cancel-button, 371 | input[type="search"]::-webkit-search-decoration { 372 | -webkit-appearance: none; 373 | } 374 | 375 | /** 376 | * Define consistent border, margin, and padding. 377 | */ 378 | 379 | fieldset { 380 | border: 1px solid #c0c0c0; 381 | margin: 0 2px; 382 | padding: 0.35em 0.625em 0.75em; 383 | } 384 | 385 | /** 386 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 387 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 388 | */ 389 | 390 | legend { 391 | border: 0; /* 1 */ 392 | padding: 0; /* 2 */ 393 | } 394 | 395 | /** 396 | * Remove default vertical scrollbar in IE 8/9/10/11. 397 | */ 398 | 399 | textarea { 400 | overflow: auto; 401 | } 402 | 403 | /** 404 | * Don't inherit the `font-weight` (applied by a rule above). 405 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 406 | */ 407 | 408 | optgroup { 409 | font-weight: bold; 410 | } 411 | 412 | /* Tables 413 | ========================================================================== */ 414 | 415 | /** 416 | * Remove most spacing between table cells. 417 | */ 418 | 419 | table { 420 | border-collapse: collapse; 421 | border-spacing: 0; 422 | } 423 | 424 | td, 425 | th { 426 | padding: 0; 427 | } -------------------------------------------------------------------------------- /static/css/skeleton.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skeleton V2.0.4 3 | * Copyright 2014, Dave Gamache 4 | * www.getskeleton.com 5 | * Free to use under the MIT license. 6 | * http://www.opensource.org/licenses/mit-license.php 7 | * 12/29/2014 8 | */ 9 | 10 | 11 | /* Table of contents 12 | –––––––––––––––––––––––––––––––––––––––––––––––––– 13 | - Grid 14 | - Base Styles 15 | - Typography 16 | - Links 17 | - Buttons 18 | - Forms 19 | - Lists 20 | - Code 21 | - Tables 22 | - Spacing 23 | - Utilities 24 | - Clearing 25 | - Media Queries 26 | */ 27 | 28 | 29 | /* Grid 30 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 31 | .container { 32 | position: relative; 33 | width: 100%; 34 | max-width: 960px; 35 | margin: 0 auto; 36 | padding: 0 20px; 37 | box-sizing: border-box; } 38 | .column, 39 | .columns { 40 | width: 100%; 41 | float: left; 42 | box-sizing: border-box; } 43 | 44 | /* For devices larger than 400px */ 45 | @media (min-width: 400px) { 46 | .container { 47 | width: 85%; 48 | padding: 0; } 49 | } 50 | 51 | /* For devices larger than 550px */ 52 | @media (min-width: 550px) { 53 | .container { 54 | width: 80%; } 55 | .column, 56 | .columns { 57 | margin-left: 4%; } 58 | .column:first-child, 59 | .columns:first-child { 60 | margin-left: 0; } 61 | 62 | .one.column, 63 | .one.columns { width: 4.66666666667%; } 64 | .two.columns { width: 13.3333333333%; } 65 | .three.columns { width: 22%; } 66 | .four.columns { width: 30.6666666667%; } 67 | .five.columns { width: 39.3333333333%; } 68 | .six.columns { width: 48%; } 69 | .seven.columns { width: 56.6666666667%; } 70 | .eight.columns { width: 65.3333333333%; } 71 | .nine.columns { width: 74.0%; } 72 | .ten.columns { width: 82.6666666667%; } 73 | .eleven.columns { width: 91.3333333333%; } 74 | .twelve.columns { width: 100%; margin-left: 0; } 75 | 76 | .one-third.column { width: 30.6666666667%; } 77 | .two-thirds.column { width: 65.3333333333%; } 78 | 79 | .one-half.column { width: 48%; } 80 | 81 | /* Offsets */ 82 | .offset-by-one.column, 83 | .offset-by-one.columns { margin-left: 8.66666666667%; } 84 | .offset-by-two.column, 85 | .offset-by-two.columns { margin-left: 17.3333333333%; } 86 | .offset-by-three.column, 87 | .offset-by-three.columns { margin-left: 26%; } 88 | .offset-by-four.column, 89 | .offset-by-four.columns { margin-left: 34.6666666667%; } 90 | .offset-by-five.column, 91 | .offset-by-five.columns { margin-left: 43.3333333333%; } 92 | .offset-by-six.column, 93 | .offset-by-six.columns { margin-left: 52%; } 94 | .offset-by-seven.column, 95 | .offset-by-seven.columns { margin-left: 60.6666666667%; } 96 | .offset-by-eight.column, 97 | .offset-by-eight.columns { margin-left: 69.3333333333%; } 98 | .offset-by-nine.column, 99 | .offset-by-nine.columns { margin-left: 78.0%; } 100 | .offset-by-ten.column, 101 | .offset-by-ten.columns { margin-left: 86.6666666667%; } 102 | .offset-by-eleven.column, 103 | .offset-by-eleven.columns { margin-left: 95.3333333333%; } 104 | 105 | .offset-by-one-third.column, 106 | .offset-by-one-third.columns { margin-left: 34.6666666667%; } 107 | .offset-by-two-thirds.column, 108 | .offset-by-two-thirds.columns { margin-left: 69.3333333333%; } 109 | 110 | .offset-by-one-half.column, 111 | .offset-by-one-half.columns { margin-left: 52%; } 112 | 113 | } 114 | 115 | 116 | /* Base Styles 117 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 118 | /* NOTE 119 | html is set to 62.5% so that all the REM measurements throughout Skeleton 120 | are based on 10px sizing. So basically 1.5rem = 15px :) */ 121 | html { 122 | font-size: 62.5%; } 123 | body { 124 | font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */ 125 | line-height: 1.6; 126 | font-weight: 400; 127 | font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; 128 | color: #222; } 129 | 130 | 131 | /* Typography 132 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 133 | h1, h2, h3, h4, h5, h6 { 134 | margin-top: 0; 135 | margin-bottom: 2rem; 136 | font-weight: 300; } 137 | h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;} 138 | h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; } 139 | h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; } 140 | h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; } 141 | h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; } 142 | h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; } 143 | 144 | /* Larger than phablet */ 145 | @media (min-width: 550px) { 146 | h1 { font-size: 5.0rem; } 147 | h2 { font-size: 4.2rem; } 148 | h3 { font-size: 3.6rem; } 149 | h4 { font-size: 3.0rem; } 150 | h5 { font-size: 2.4rem; } 151 | h6 { font-size: 1.5rem; } 152 | } 153 | 154 | p { 155 | margin-top: 0; } 156 | 157 | 158 | /* Links 159 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 160 | a { 161 | color: #1EAEDB; } 162 | a:hover { 163 | color: #0FA0CE; } 164 | 165 | 166 | /* Buttons 167 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 168 | .button, 169 | button, 170 | input[type="submit"], 171 | input[type="reset"], 172 | input[type="button"] { 173 | display: inline-block; 174 | height: 38px; 175 | padding: 0 30px; 176 | color: #555; 177 | text-align: center; 178 | font-size: 11px; 179 | font-weight: 600; 180 | line-height: 38px; 181 | letter-spacing: .1rem; 182 | text-transform: uppercase; 183 | text-decoration: none; 184 | white-space: nowrap; 185 | background-color: transparent; 186 | border-radius: 4px; 187 | border: 1px solid #bbb; 188 | cursor: pointer; 189 | box-sizing: border-box; } 190 | .button:hover, 191 | button:hover, 192 | input[type="submit"]:hover, 193 | input[type="reset"]:hover, 194 | input[type="button"]:hover, 195 | .button:focus, 196 | button:focus, 197 | input[type="submit"]:focus, 198 | input[type="reset"]:focus, 199 | input[type="button"]:focus { 200 | color: #333; 201 | border-color: #888; 202 | outline: 0; } 203 | .button.button-primary, 204 | button.button-primary, 205 | input[type="submit"].button-primary, 206 | input[type="reset"].button-primary, 207 | input[type="button"].button-primary { 208 | color: #FFF; 209 | background-color: #33C3F0; 210 | border-color: #33C3F0; } 211 | .button.button-primary:hover, 212 | button.button-primary:hover, 213 | input[type="submit"].button-primary:hover, 214 | input[type="reset"].button-primary:hover, 215 | input[type="button"].button-primary:hover, 216 | .button.button-primary:focus, 217 | button.button-primary:focus, 218 | input[type="submit"].button-primary:focus, 219 | input[type="reset"].button-primary:focus, 220 | input[type="button"].button-primary:focus { 221 | color: #FFF; 222 | background-color: #1EAEDB; 223 | border-color: #1EAEDB; } 224 | 225 | 226 | /* Forms 227 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 228 | input[type="email"], 229 | input[type="number"], 230 | input[type="search"], 231 | input[type="text"], 232 | input[type="tel"], 233 | input[type="url"], 234 | input[type="password"], 235 | textarea, 236 | select { 237 | height: 38px; 238 | padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ 239 | background-color: #fff; 240 | border: 1px solid #D1D1D1; 241 | border-radius: 4px; 242 | box-shadow: none; 243 | box-sizing: border-box; } 244 | /* Removes awkward default styles on some inputs for iOS */ 245 | input[type="email"], 246 | input[type="number"], 247 | input[type="search"], 248 | input[type="text"], 249 | input[type="tel"], 250 | input[type="url"], 251 | input[type="password"], 252 | textarea { 253 | -webkit-appearance: none; 254 | -moz-appearance: none; 255 | appearance: none; } 256 | textarea { 257 | min-height: 65px; 258 | padding-top: 6px; 259 | padding-bottom: 6px; } 260 | input[type="email"]:focus, 261 | input[type="number"]:focus, 262 | input[type="search"]:focus, 263 | input[type="text"]:focus, 264 | input[type="tel"]:focus, 265 | input[type="url"]:focus, 266 | input[type="password"]:focus, 267 | textarea:focus, 268 | select:focus { 269 | border: 1px solid #33C3F0; 270 | outline: 0; } 271 | label, 272 | legend { 273 | display: block; 274 | margin-bottom: .5rem; 275 | font-weight: 600; } 276 | fieldset { 277 | padding: 0; 278 | border-width: 0; } 279 | input[type="checkbox"], 280 | input[type="radio"] { 281 | display: inline; } 282 | label > .label-body { 283 | display: inline-block; 284 | margin-left: .5rem; 285 | font-weight: normal; } 286 | 287 | 288 | /* Lists 289 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 290 | ul { 291 | list-style: circle inside; } 292 | ol { 293 | list-style: decimal inside; } 294 | ol, ul { 295 | padding-left: 0; 296 | margin-top: 0; } 297 | ul ul, 298 | ul ol, 299 | ol ol, 300 | ol ul { 301 | margin: 1.5rem 0 1.5rem 3rem; 302 | font-size: 90%; } 303 | li { 304 | margin-bottom: 1rem; } 305 | 306 | 307 | /* Code 308 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 309 | code { 310 | padding: .2rem .5rem; 311 | margin: 0 .2rem; 312 | font-size: 90%; 313 | white-space: nowrap; 314 | background: #F1F1F1; 315 | border: 1px solid #E1E1E1; 316 | border-radius: 4px; } 317 | pre > code { 318 | display: block; 319 | padding: 1rem 1.5rem; 320 | white-space: pre; } 321 | 322 | 323 | /* Tables 324 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 325 | th, 326 | td { 327 | padding: 12px 15px; 328 | text-align: left; 329 | border-bottom: 1px solid #E1E1E1; } 330 | th:first-child, 331 | td:first-child { 332 | padding-left: 0; } 333 | th:last-child, 334 | td:last-child { 335 | padding-right: 0; } 336 | 337 | 338 | /* Spacing 339 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 340 | button, 341 | .button { 342 | margin-bottom: 1rem; } 343 | input, 344 | textarea, 345 | select, 346 | fieldset { 347 | margin-bottom: 1.5rem; } 348 | pre, 349 | blockquote, 350 | dl, 351 | figure, 352 | table, 353 | p, 354 | ul, 355 | ol, 356 | form { 357 | margin-bottom: 2.5rem; } 358 | 359 | 360 | /* Utilities 361 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 362 | .u-full-width { 363 | width: 100%; 364 | box-sizing: border-box; } 365 | .u-max-full-width { 366 | max-width: 100%; 367 | box-sizing: border-box; } 368 | .u-pull-right { 369 | float: right; } 370 | .u-pull-left { 371 | float: left; } 372 | 373 | 374 | /* Misc 375 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 376 | hr { 377 | margin-top: 3rem; 378 | margin-bottom: 3.5rem; 379 | border-width: 0; 380 | border-top: 1px solid #E1E1E1; } 381 | 382 | 383 | /* Clearing 384 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 385 | 386 | /* Self Clearing Goodness */ 387 | .container:after, 388 | .row:after, 389 | .u-cf { 390 | content: ""; 391 | display: table; 392 | clear: both; } 393 | 394 | 395 | /* Media Queries 396 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 397 | /* 398 | Note: The best way to structure the use of media queries is to create the queries 399 | near the relevant code. For example, if you wanted to change the styles for buttons 400 | on small devices, paste the mobile query code up in the buttons section and style it 401 | there. 402 | */ 403 | 404 | 405 | /* Larger than mobile */ 406 | @media (min-width: 400px) {} 407 | 408 | /* Larger than phablet (also point when grid becomes active) */ 409 | @media (min-width: 550px) {} 410 | 411 | /* Larger than tablet */ 412 | @media (min-width: 750px) {} 413 | 414 | /* Larger than desktop */ 415 | @media (min-width: 1000px) {} 416 | 417 | /* Larger than Desktop HD */ 418 | @media (min-width: 1200px) {} 419 | -------------------------------------------------------------------------------- /static/images/2-years.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/static/images/2-years.png -------------------------------------------------------------------------------- /static/images/bonus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/static/images/bonus.png -------------------------------------------------------------------------------- /static/images/docker-friends.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/static/images/docker-friends.png -------------------------------------------------------------------------------- /static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/static/images/favicon.ico -------------------------------------------------------------------------------- /static/images/presentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/static/images/presentation.pdf -------------------------------------------------------------------------------- /static/images/sponsors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/static/images/sponsors.png -------------------------------------------------------------------------------- /static/images/triage-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/static/images/triage-label.png -------------------------------------------------------------------------------- /static/images/tutorials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/static/images/tutorials.png -------------------------------------------------------------------------------- /static/js/site.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | // Variables 4 | var $codeSnippets = $('.code-example-body'), 5 | $nav = $('.navbar'), 6 | $body = $('body'), 7 | $window = $(window), 8 | $popoverLink = $('[data-popover]'), 9 | navOffsetTop = $nav.offset().top, 10 | $document = $(document), 11 | entityMap = { 12 | "&": "&", 13 | "<": "<", 14 | ">": ">", 15 | '"': '"', 16 | "'": ''', 17 | "/": '/' 18 | } 19 | 20 | function init() { 21 | $window.on('scroll', onScroll) 22 | $window.on('resize', resize) 23 | $popoverLink.on('click', openPopover) 24 | $document.on('click', closePopover) 25 | $('a[href^="#"]').on('click', smoothScroll) 26 | buildSnippets(); 27 | } 28 | 29 | function smoothScroll(e) { 30 | e.preventDefault(); 31 | $(document).off("scroll"); 32 | var target = this.hash, 33 | menu = target; 34 | $target = $(target); 35 | $('html, body').stop().animate({ 36 | 'scrollTop': $target.offset().top-40 37 | }, 0, 'swing', function () { 38 | window.location.hash = target; 39 | $(document).on("scroll", onScroll); 40 | }); 41 | } 42 | 43 | function openPopover(e) { 44 | e.preventDefault() 45 | closePopover(); 46 | var popover = $($(this).data('popover')); 47 | popover.toggleClass('open') 48 | e.stopImmediatePropagation(); 49 | } 50 | 51 | function closePopover(e) { 52 | if($('.popover.open').length > 0) { 53 | $('.popover').removeClass('open') 54 | } 55 | } 56 | 57 | $("#button").click(function() { 58 | $('html, body').animate({ 59 | scrollTop: $("#elementtoScrollToID").offset().top 60 | }, 2000); 61 | }); 62 | 63 | function resize() { 64 | $body.removeClass('has-docked-nav') 65 | navOffsetTop = $nav.offset().top 66 | onScroll() 67 | } 68 | 69 | function onScroll() { 70 | if(navOffsetTop < $window.scrollTop() && !$body.hasClass('has-docked-nav')) { 71 | $body.addClass('has-docked-nav') 72 | } 73 | if(navOffsetTop > $window.scrollTop() && $body.hasClass('has-docked-nav')) { 74 | $body.removeClass('has-docked-nav') 75 | } 76 | } 77 | 78 | function escapeHtml(string) { 79 | return String(string).replace(/[&<>"'\/]/g, function (s) { 80 | return entityMap[s]; 81 | }); 82 | } 83 | 84 | function buildSnippets() { 85 | $codeSnippets.each(function() { 86 | var newContent = escapeHtml($(this).html()) 87 | $(this).html(newContent) 88 | }) 89 | } 90 | 91 | 92 | init(); 93 | 94 | }); 95 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 YOUR_NAME_HERE 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/README.md: -------------------------------------------------------------------------------- 1 | # Hugo-bootswatch 2 | 3 | Hugo-bootswatch is a [Hugo](http://gohugo.io) theme based on [Bootswatch](http://bootswatch.com/), which themes [Bootstrap 3](http://getbootstrap.com/). As such, Hugo-bootswatch will work as a Bootstrap theme, and also allows simple updating to support any Bootswatch customizations. Hugo-bootswatch comes with Bootstrap 3.3.2 and the bootswatch.js is already included. Customizing the Bootswatch theme is as easy as downloading the Bootswatch-customized bootstrap.min.css file (details below). 4 | 5 | Hugo-bootswatch expects [section organization](http://gohugo.io/content/sections/), which are loaded as navbar links in the header, and placed in a "Sections" dropdown. 6 | 7 | Hugo-bootswatch was originally built for documentation, so it is missing a lot of blog-type support (most notably the concept of authors). A 'post' archetype may make sense to accommodate this if there is interest. 8 | 9 | ## Customization 10 | 11 | Hugo-bootswatch is made for customization, and it is easiest to customize by using your own `static/css/hugo-bootswatch.css` and `static/css/bootstrap.min.css` files. Note that these files are not empty, so the overriding file will need to accommodate any existing content by inclusion or replacement. 12 | 13 | ### Bootswatch 14 | 15 | Visit [Bootswatch](http://bootswatch.com/) and choose the theme you like. Download the available `bootstrap.min.css` replacement and place it in `static/css/bootstrap.min.css` to override the default (Bootstrap 3.3.2) file. 16 | 17 | ### Hugo-bootswatch 18 | 19 | Make any changes that are particular to your site in `static/css/hugo-bootswatch.css`. This will automatically apply your customizations to the site. 20 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/archetypes/default.md: -------------------------------------------------------------------------------- 1 | +++ 2 | +++ 3 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/themes/hugo-bootswatch/images/screenshot.png -------------------------------------------------------------------------------- /themes/hugo-bootswatch/images/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/themes/hugo-bootswatch/images/tn.png -------------------------------------------------------------------------------- /themes/hugo-bootswatch/layouts/404.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | {{ partial "navbar.html" . }} 3 | 4 |
5 | 6 |

404 Error

7 |

Maybe you want one of these?

8 | 9 | {{ range .Data.Pages }} 10 |
    11 |
  • {{ .Title }}({{ .Date.Format "Mon, Jan 2, 2006" }})
  • 12 |
13 | {{ end }} 14 | 15 | {{ partial "container-footer.html" . }} 16 | 17 |
18 | 19 | {{ partial "footer.html" . }} 20 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | {{ partial "navbar.html" . }} 3 | 4 |
5 | {{ range .Data.Pages }} 6 |
7 |

{{ .Title }}

8 | {{ .Date.Format "Mon, Jan 2, 2006" }} 9 |

{{ .Summary }}

10 |
11 | {{ end }} 12 | 13 | {{ partial "container-footer.html" . }} 14 | 15 |
16 | 17 | {{ partial "footer.html" . }} 18 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | {{ partial "navbar.html" . }} 3 | 4 |
5 |

{{ .Title }}

6 | {{ .Date.Format "Mon, Jan 2, 2006" }} 7 |
8 | {{ .Content }} 9 |
10 | 11 | {{ partial "container-footer.html" . }} 12 | 13 |
14 | 15 | {{ partial "footer.html" . }} 16 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | {{ partial "navbar.html" . }} 3 | 4 |
5 | 6 | {{ range .Data.Pages }} 7 |
8 |

{{ .Title }}

9 | {{ .Date.Format "Mon, Jan 2, 2006" }} 10 |

{{ .Summary }}

11 |
12 | {{ end }} 13 | 14 | {{ partial "container-footer.html" . }} 15 | 16 |
17 | 18 | {{ partial "footer.html" . }} 19 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/layouts/partials/container-footer.html: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/layouts/partials/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ .Site.Title }} 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/layouts/partials/navbar.html: -------------------------------------------------------------------------------- 1 | 25 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/static/css/bootstrap-theme.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.2 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | 7 | .btn-default, 8 | .btn-primary, 9 | .btn-success, 10 | .btn-info, 11 | .btn-warning, 12 | .btn-danger { 13 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); 14 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); 15 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); 16 | } 17 | .btn-default:active, 18 | .btn-primary:active, 19 | .btn-success:active, 20 | .btn-info:active, 21 | .btn-warning:active, 22 | .btn-danger:active, 23 | .btn-default.active, 24 | .btn-primary.active, 25 | .btn-success.active, 26 | .btn-info.active, 27 | .btn-warning.active, 28 | .btn-danger.active { 29 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 30 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 31 | } 32 | .btn-default .badge, 33 | .btn-primary .badge, 34 | .btn-success .badge, 35 | .btn-info .badge, 36 | .btn-warning .badge, 37 | .btn-danger .badge { 38 | text-shadow: none; 39 | } 40 | .btn:active, 41 | .btn.active { 42 | background-image: none; 43 | } 44 | .btn-default { 45 | text-shadow: 0 1px 0 #fff; 46 | background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); 47 | background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); 48 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); 49 | background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); 50 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); 51 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 52 | background-repeat: repeat-x; 53 | border-color: #dbdbdb; 54 | border-color: #ccc; 55 | } 56 | .btn-default:hover, 57 | .btn-default:focus { 58 | background-color: #e0e0e0; 59 | background-position: 0 -15px; 60 | } 61 | .btn-default:active, 62 | .btn-default.active { 63 | background-color: #e0e0e0; 64 | border-color: #dbdbdb; 65 | } 66 | .btn-default.disabled, 67 | .btn-default:disabled, 68 | .btn-default[disabled] { 69 | background-color: #e0e0e0; 70 | background-image: none; 71 | } 72 | .btn-primary { 73 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); 74 | background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); 75 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); 76 | background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); 77 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); 78 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 79 | background-repeat: repeat-x; 80 | border-color: #245580; 81 | } 82 | .btn-primary:hover, 83 | .btn-primary:focus { 84 | background-color: #265a88; 85 | background-position: 0 -15px; 86 | } 87 | .btn-primary:active, 88 | .btn-primary.active { 89 | background-color: #265a88; 90 | border-color: #245580; 91 | } 92 | .btn-primary.disabled, 93 | .btn-primary:disabled, 94 | .btn-primary[disabled] { 95 | background-color: #265a88; 96 | background-image: none; 97 | } 98 | .btn-success { 99 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); 100 | background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); 101 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); 102 | background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); 103 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); 104 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 105 | background-repeat: repeat-x; 106 | border-color: #3e8f3e; 107 | } 108 | .btn-success:hover, 109 | .btn-success:focus { 110 | background-color: #419641; 111 | background-position: 0 -15px; 112 | } 113 | .btn-success:active, 114 | .btn-success.active { 115 | background-color: #419641; 116 | border-color: #3e8f3e; 117 | } 118 | .btn-success.disabled, 119 | .btn-success:disabled, 120 | .btn-success[disabled] { 121 | background-color: #419641; 122 | background-image: none; 123 | } 124 | .btn-info { 125 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); 126 | background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); 127 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); 128 | background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); 129 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); 130 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 131 | background-repeat: repeat-x; 132 | border-color: #28a4c9; 133 | } 134 | .btn-info:hover, 135 | .btn-info:focus { 136 | background-color: #2aabd2; 137 | background-position: 0 -15px; 138 | } 139 | .btn-info:active, 140 | .btn-info.active { 141 | background-color: #2aabd2; 142 | border-color: #28a4c9; 143 | } 144 | .btn-info.disabled, 145 | .btn-info:disabled, 146 | .btn-info[disabled] { 147 | background-color: #2aabd2; 148 | background-image: none; 149 | } 150 | .btn-warning { 151 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); 152 | background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); 153 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); 154 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); 155 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); 156 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 157 | background-repeat: repeat-x; 158 | border-color: #e38d13; 159 | } 160 | .btn-warning:hover, 161 | .btn-warning:focus { 162 | background-color: #eb9316; 163 | background-position: 0 -15px; 164 | } 165 | .btn-warning:active, 166 | .btn-warning.active { 167 | background-color: #eb9316; 168 | border-color: #e38d13; 169 | } 170 | .btn-warning.disabled, 171 | .btn-warning:disabled, 172 | .btn-warning[disabled] { 173 | background-color: #eb9316; 174 | background-image: none; 175 | } 176 | .btn-danger { 177 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); 178 | background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); 179 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); 180 | background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); 181 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); 182 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 183 | background-repeat: repeat-x; 184 | border-color: #b92c28; 185 | } 186 | .btn-danger:hover, 187 | .btn-danger:focus { 188 | background-color: #c12e2a; 189 | background-position: 0 -15px; 190 | } 191 | .btn-danger:active, 192 | .btn-danger.active { 193 | background-color: #c12e2a; 194 | border-color: #b92c28; 195 | } 196 | .btn-danger.disabled, 197 | .btn-danger:disabled, 198 | .btn-danger[disabled] { 199 | background-color: #c12e2a; 200 | background-image: none; 201 | } 202 | .thumbnail, 203 | .img-thumbnail { 204 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 205 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 206 | } 207 | .dropdown-menu > li > a:hover, 208 | .dropdown-menu > li > a:focus { 209 | background-color: #e8e8e8; 210 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 211 | background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 212 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); 213 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); 214 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); 215 | background-repeat: repeat-x; 216 | } 217 | .dropdown-menu > .active > a, 218 | .dropdown-menu > .active > a:hover, 219 | .dropdown-menu > .active > a:focus { 220 | background-color: #2e6da4; 221 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 222 | background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 223 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); 224 | background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); 225 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); 226 | background-repeat: repeat-x; 227 | } 228 | .navbar-default { 229 | background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); 230 | background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); 231 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); 232 | background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); 233 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); 234 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 235 | background-repeat: repeat-x; 236 | border-radius: 4px; 237 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); 238 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); 239 | } 240 | .navbar-default .navbar-nav > .open > a, 241 | .navbar-default .navbar-nav > .active > a { 242 | background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); 243 | background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); 244 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); 245 | background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); 246 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); 247 | background-repeat: repeat-x; 248 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); 249 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); 250 | } 251 | .navbar-brand, 252 | .navbar-nav > li > a { 253 | text-shadow: 0 1px 0 rgba(255, 255, 255, .25); 254 | } 255 | .navbar-inverse { 256 | background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); 257 | background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); 258 | background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); 259 | background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); 260 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); 261 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 262 | background-repeat: repeat-x; 263 | } 264 | .navbar-inverse .navbar-nav > .open > a, 265 | .navbar-inverse .navbar-nav > .active > a { 266 | background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); 267 | background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); 268 | background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); 269 | background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); 270 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); 271 | background-repeat: repeat-x; 272 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); 273 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); 274 | } 275 | .navbar-inverse .navbar-brand, 276 | .navbar-inverse .navbar-nav > li > a { 277 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); 278 | } 279 | .navbar-static-top, 280 | .navbar-fixed-top, 281 | .navbar-fixed-bottom { 282 | border-radius: 0; 283 | } 284 | @media (max-width: 767px) { 285 | .navbar .navbar-nav .open .dropdown-menu > .active > a, 286 | .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, 287 | .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { 288 | color: #fff; 289 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 290 | background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 291 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); 292 | background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); 293 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); 294 | background-repeat: repeat-x; 295 | } 296 | } 297 | .alert { 298 | text-shadow: 0 1px 0 rgba(255, 255, 255, .2); 299 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); 300 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); 301 | } 302 | .alert-success { 303 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); 304 | background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); 305 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); 306 | background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); 307 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); 308 | background-repeat: repeat-x; 309 | border-color: #b2dba1; 310 | } 311 | .alert-info { 312 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); 313 | background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); 314 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); 315 | background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); 316 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); 317 | background-repeat: repeat-x; 318 | border-color: #9acfea; 319 | } 320 | .alert-warning { 321 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); 322 | background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); 323 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); 324 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); 325 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); 326 | background-repeat: repeat-x; 327 | border-color: #f5e79e; 328 | } 329 | .alert-danger { 330 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); 331 | background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); 332 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); 333 | background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); 334 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); 335 | background-repeat: repeat-x; 336 | border-color: #dca7a7; 337 | } 338 | .progress { 339 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); 340 | background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); 341 | background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); 342 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); 343 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); 344 | background-repeat: repeat-x; 345 | } 346 | .progress-bar { 347 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); 348 | background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); 349 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); 350 | background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); 351 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); 352 | background-repeat: repeat-x; 353 | } 354 | .progress-bar-success { 355 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); 356 | background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); 357 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); 358 | background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); 359 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); 360 | background-repeat: repeat-x; 361 | } 362 | .progress-bar-info { 363 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); 364 | background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); 365 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); 366 | background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); 367 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); 368 | background-repeat: repeat-x; 369 | } 370 | .progress-bar-warning { 371 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); 372 | background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); 373 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); 374 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); 375 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); 376 | background-repeat: repeat-x; 377 | } 378 | .progress-bar-danger { 379 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); 380 | background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); 381 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); 382 | background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); 383 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); 384 | background-repeat: repeat-x; 385 | } 386 | .progress-bar-striped { 387 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 388 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 389 | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 390 | } 391 | .list-group { 392 | border-radius: 4px; 393 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 394 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 395 | } 396 | .list-group-item.active, 397 | .list-group-item.active:hover, 398 | .list-group-item.active:focus { 399 | text-shadow: 0 -1px 0 #286090; 400 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); 401 | background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); 402 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); 403 | background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); 404 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); 405 | background-repeat: repeat-x; 406 | border-color: #2b669a; 407 | } 408 | .list-group-item.active .badge, 409 | .list-group-item.active:hover .badge, 410 | .list-group-item.active:focus .badge { 411 | text-shadow: none; 412 | } 413 | .panel { 414 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); 415 | box-shadow: 0 1px 2px rgba(0, 0, 0, .05); 416 | } 417 | .panel-default > .panel-heading { 418 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 419 | background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 420 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); 421 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); 422 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); 423 | background-repeat: repeat-x; 424 | } 425 | .panel-primary > .panel-heading { 426 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 427 | background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 428 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); 429 | background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); 430 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); 431 | background-repeat: repeat-x; 432 | } 433 | .panel-success > .panel-heading { 434 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); 435 | background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); 436 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); 437 | background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); 438 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); 439 | background-repeat: repeat-x; 440 | } 441 | .panel-info > .panel-heading { 442 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); 443 | background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); 444 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); 445 | background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); 446 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); 447 | background-repeat: repeat-x; 448 | } 449 | .panel-warning > .panel-heading { 450 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); 451 | background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); 452 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); 453 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); 454 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); 455 | background-repeat: repeat-x; 456 | } 457 | .panel-danger > .panel-heading { 458 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); 459 | background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); 460 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); 461 | background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); 462 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); 463 | background-repeat: repeat-x; 464 | } 465 | .well { 466 | background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); 467 | background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); 468 | background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); 469 | background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); 470 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); 471 | background-repeat: repeat-x; 472 | border-color: #dcdcdc; 473 | -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); 474 | box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); 475 | } 476 | /*# sourceMappingURL=bootstrap-theme.css.map */ 477 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/static/css/bootstrap-theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.2 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary:disabled,.btn-primary[disabled]{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} -------------------------------------------------------------------------------- /themes/hugo-bootswatch/static/css/hugo-bootswatch.css: -------------------------------------------------------------------------------- 1 | body{ 2 | padding-top:50px; 3 | } 4 | footer{ 5 | padding-top:50px; 6 | } 7 | -------------------------------------------------------------------------------- /themes/hugo-bootswatch/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/themes/hugo-bootswatch/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /themes/hugo-bootswatch/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/themes/hugo-bootswatch/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /themes/hugo-bootswatch/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/themes/hugo-bootswatch/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /themes/hugo-bootswatch/static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docker-archive/birthdaysite/000430f1180791430371b2d62f0135b2ec930a92/themes/hugo-bootswatch/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /themes/hugo-bootswatch/static/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.2 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.2",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.2",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.2",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.2",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('