├── .gitignore ├── website ├── .gitignore ├── _layouts │ ├── 404.html │ ├── page.html │ ├── default.html │ ├── Talks.html │ ├── post.html │ ├── home.html │ └── compress.html ├── _sass │ ├── partials │ │ ├── _fonts.scss │ │ ├── _mixins.scss │ │ ├── _variables.scss │ │ ├── _typography.scss │ │ ├── _utilities.scss │ │ ├── _app.scss │ │ └── _normalize.scss │ └── main.scss ├── assets │ ├── NR.png │ ├── dev.png │ ├── forem.png │ ├── github.png │ ├── img │ │ ├── Joel_h.png │ │ ├── logo.png │ │ ├── matz.jpg │ │ ├── planet.png │ │ ├── bdougie.png │ │ ├── favicon.png │ │ ├── background.jpg │ │ ├── dan_moore.png │ │ ├── feb21social.jpg │ │ ├── megan_tiu.jpg │ │ ├── Kirk_headshot.png │ │ ├── twitter-card.jpg │ │ ├── Danny_headshot.png │ │ ├── Jonan_headshot.jpg │ │ ├── Rachael_headshot.jpg │ │ ├── ramon_huidobro.jpg │ │ ├── Jonan_final_cropped.png │ │ ├── Jonan_headshot cropped.jpg │ │ ├── uploads │ │ │ ├── screenshot-editor.jpg │ │ │ └── screen_shot_2021-01-14_at_8.51.58_pm.png │ │ └── twitter-brands.svg │ └── main.scss ├── _includes │ ├── footer.html │ ├── page-intro.html │ ├── header.html │ ├── host_header.html │ ├── analytics.html │ ├── navigation.html │ ├── event.html │ └── head.html ├── _data │ ├── navigation.yml │ ├── guests.yml │ ├── hosts.yml │ └── events.yml ├── pages │ ├── index.md │ ├── talks.md │ └── about.md ├── 404.md ├── docker-compose.yml ├── .jekyll-cache │ └── Jekyll │ │ └── Cache │ │ └── Jekyll--Converters--Markdown │ │ ├── 21 │ │ └── e15d07fcaaea9325386a70c9b351684f6aff80764948c66259b60b79004c44 │ │ └── ca │ │ └── b8b278c7e75237af7ad8243b9c3bcb930892a05977cdc36c8f5e36f4599f7b ├── admin │ ├── preview-templates │ │ ├── page.js │ │ ├── index.js │ │ └── post.js │ ├── index.html │ └── config.yml ├── Gemfile ├── LICENSE ├── netlify.toml ├── _site │ ├── 404.html │ └── index.html ├── Gemfile.lock ├── _config.yml └── README.md ├── .jekyll-cache └── Jekyll │ └── Cache │ ├── Jekyll--Converters--Markdown │ ├── 27 │ │ └── 7f2bf9da303c681b8a44f3ad24de729ce7a1458dc93dbeb3d20ad4e2cf314e │ ├── 63 │ │ └── 7e252fa8460c2278df772e6dfbf4934329e2f03a9174070b70d0883886b435 │ ├── e3 │ │ └── b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 │ └── b7 │ │ └── 6a0ab045469be72aa3b68d1d924fa35e6d0b5e75ce9973524987b78bd43ab4 │ └── Jekyll--Cache │ └── b7 │ └── 9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 ├── pull_request_template.md ├── abstract_template.md ├── v0.1 ├── README.md ├── playing_a_hand_with_ruby_pattern_matching_brandon_weaver.md ├── git_rebase.md ├── okuramasafumi_kaigi_on_rails.md ├── debugging_your_brain.md └── kindness_matters_stella_bonnie.md ├── v0.2 └── README.md ├── abstract_template_example.md ├── README.md └── code_of_conduct.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | website/.DS_Store 4 | -------------------------------------------------------------------------------- /website/.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | .sass-cache 3 | .jekyll-metadata 4 | .users.yml 5 | -------------------------------------------------------------------------------- /website/_layouts/404.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /website/_sass/partials/_fonts.scss: -------------------------------------------------------------------------------- 1 | // add font-face or font import declarations here 2 | -------------------------------------------------------------------------------- /website/assets/NR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/NR.png -------------------------------------------------------------------------------- /website/assets/dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/dev.png -------------------------------------------------------------------------------- /website/assets/forem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/forem.png -------------------------------------------------------------------------------- /website/assets/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/github.png -------------------------------------------------------------------------------- /website/assets/img/Joel_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/Joel_h.png -------------------------------------------------------------------------------- /website/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/logo.png -------------------------------------------------------------------------------- /website/assets/img/matz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/matz.jpg -------------------------------------------------------------------------------- /website/assets/img/planet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/planet.png -------------------------------------------------------------------------------- /website/assets/img/bdougie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/bdougie.png -------------------------------------------------------------------------------- /website/assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/favicon.png -------------------------------------------------------------------------------- /website/assets/img/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/background.jpg -------------------------------------------------------------------------------- /website/assets/img/dan_moore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/dan_moore.png -------------------------------------------------------------------------------- /website/assets/img/feb21social.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/feb21social.jpg -------------------------------------------------------------------------------- /website/assets/img/megan_tiu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/megan_tiu.jpg -------------------------------------------------------------------------------- /website/assets/main.scss: -------------------------------------------------------------------------------- 1 | --- 2 | # Only the main Sass file needs front matter (the dashes are enough) 3 | --- 4 | 5 | @import "main"; -------------------------------------------------------------------------------- /.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855: -------------------------------------------------------------------------------- 1 | I" 2 | :ET -------------------------------------------------------------------------------- /website/assets/img/Kirk_headshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/Kirk_headshot.png -------------------------------------------------------------------------------- /website/assets/img/twitter-card.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/twitter-card.jpg -------------------------------------------------------------------------------- /website/assets/img/Danny_headshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/Danny_headshot.png -------------------------------------------------------------------------------- /website/assets/img/Jonan_headshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/Jonan_headshot.jpg -------------------------------------------------------------------------------- /website/assets/img/Rachael_headshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/Rachael_headshot.jpg -------------------------------------------------------------------------------- /website/assets/img/ramon_huidobro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/ramon_huidobro.jpg -------------------------------------------------------------------------------- /pull_request_template.md: -------------------------------------------------------------------------------- 1 | * **Name:** 2 | * **Title:** 3 | * **Twitter (Optional):** 4 | * **Email (Optional):** 5 | * **Company (Optional):** 6 | -------------------------------------------------------------------------------- /website/assets/img/Jonan_final_cropped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/Jonan_final_cropped.png -------------------------------------------------------------------------------- /website/_includes/footer.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /website/assets/img/Jonan_headshot cropped.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/Jonan_headshot cropped.jpg -------------------------------------------------------------------------------- /website/assets/img/uploads/screenshot-editor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/uploads/screenshot-editor.jpg -------------------------------------------------------------------------------- /website/_data/navigation.yml: -------------------------------------------------------------------------------- 1 | # specify main menu items here 2 | 3 | - text: Home 4 | url: / 5 | - text: About 6 | url: /about 7 | - text: Talks 8 | url: /Talks 9 | -------------------------------------------------------------------------------- /website/_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |

{{ page.title }}

6 | 7 | {% include page-intro.html %} 8 | 9 | {{ content }} 10 | -------------------------------------------------------------------------------- /website/assets/img/uploads/screen_shot_2021-01-14_at_8.51.58_pm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/assets/img/uploads/screen_shot_2021-01-14_at_8.51.58_pm.png -------------------------------------------------------------------------------- /abstract_template.md: -------------------------------------------------------------------------------- 1 | * **Name:** 2 | * **Title:** 3 | * **Twitter (Optional):** 4 | * **Email (Optional):** 5 | * **Company (Optional):** 6 | 7 | --- 8 | 9 | #### Talk Title: 10 | 11 | Talk Synopisis (< 250 words): 12 | -------------------------------------------------------------------------------- /website/_includes/page-intro.html: -------------------------------------------------------------------------------- 1 | {% if page.intro_paragraph and page.intro_paragraph != '' %} 2 |

3 | {{ page.intro_paragraph | markdownify | remove: '

' | remove: '

' }} 4 |

5 | {% endif %} 6 | -------------------------------------------------------------------------------- /website/pages/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: home 3 | title: "Ruby Galaxy " 4 | permalink: / 5 | section: home 6 | intro_paragraph: An online meetup for Ruby enthusiasts from around the world, 7 | and if we're lucky - the galaxy. 8 | --- 9 | -------------------------------------------------------------------------------- /website/404.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: 404 3 | title: Page not found 4 | permalink: /404.html 5 | section: 404 6 | --- 7 | 8 | ## 404 9 | 10 | Sorry, the requested page could not be found. 11 | 12 | Please visit the [Home Page](/) instead. 13 | -------------------------------------------------------------------------------- /website/_sass/main.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | @import 4 | "partials/fonts", 5 | "partials/variables", 6 | "partials/mixins", 7 | "partials/normalize", 8 | "partials/utilities", 9 | "partials/typography", 10 | "partials/app" 11 | ; 12 | -------------------------------------------------------------------------------- /website/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.3' 2 | 3 | services: 4 | jekyll: 5 | image: jekyll/jekyll:latest 6 | command: jekyll serve --watch --force_polling --verbose 7 | ports: 8 | - 4000:4000 9 | volumes: 10 | - .:/srv/jekyll 11 | -------------------------------------------------------------------------------- /website/_includes/header.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 7 | 8 |
9 | -------------------------------------------------------------------------------- /website/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/21/e15d07fcaaea9325386a70c9b351684f6aff80764948c66259b60b79004c44: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/21/e15d07fcaaea9325386a70c9b351684f6aff80764948c66259b60b79004c44 -------------------------------------------------------------------------------- /website/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ca/b8b278c7e75237af7ad8243b9c3bcb930892a05977cdc36c8f5e36f4599f7b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openrubyfoundation/rubygalaxy/HEAD/website/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ca/b8b278c7e75237af7ad8243b9c3bcb930892a05977cdc36c8f5e36f4599f7b -------------------------------------------------------------------------------- /website/pages/talks.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: Talks 3 | title: The Talks 4 | permalink: /Talks 5 | section: Talks 6 | intro_paragraph: > 7 | This is where all of our talks live after they have been premiered for each release party. [Submit your talk](https://www.papercall.io/ruby-galaxy) for a chance to be included in the next release of RubyGalaxy. 8 | --- 9 | -------------------------------------------------------------------------------- /website/_includes/host_header.html: -------------------------------------------------------------------------------- 1 |
2 | {% if include.hosts %} 3 | Hosted by{% for host_key in include.hosts %} 4 | {% if host_key == include.hosts.last %}and {% endif %} 5 | {% assign host = site.data.hosts[host_key] %} 6 | {{host.name}} 7 | {% unless host_key == include.hosts.last %}, {% endunless %} 8 | {% endfor %} 9 | {% endif %} 10 |
-------------------------------------------------------------------------------- /website/_includes/analytics.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /website/admin/preview-templates/page.js: -------------------------------------------------------------------------------- 1 | import htm from "https://unpkg.com/htm?module"; 2 | 3 | const html = htm.bind(h); 4 | 5 | // Preview component for a Page 6 | const Page = createClass({ 7 | render() { 8 | const entry = this.props.entry; 9 | 10 | return html` 11 |
12 |

${entry.getIn(["data", "title"], null)}

13 | 14 | ${this.props.widgetFor("body")} 15 |
16 | `; 17 | } 18 | }); 19 | 20 | export default Page; 21 | -------------------------------------------------------------------------------- /website/_layouts/default.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: compress 3 | --- 4 | 5 | 6 | 7 | 8 | {% include head.html %} 9 | 10 | 11 | 12 | {% include header.html %} 13 | 14 |
15 | 16 | {{ content }} 17 | 18 |
19 | Fancy planet w/ crescent 20 | 21 | {% include footer.html %} 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /website/admin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Content Manager 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /website/_includes/navigation.html: -------------------------------------------------------------------------------- 1 | {% assign navurl = page.url | remove: 'index.html' %} 2 | 13 | -------------------------------------------------------------------------------- /.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b7/6a0ab045469be72aa3b68d1d924fa35e6d0b5e75ce9973524987b78bd43ab4: -------------------------------------------------------------------------------- 1 | I"u 14 | 15 |
16 |

404

17 | 18 |

Page not found :(

19 |

The requested page could not be found.

20 |
21 | :ET -------------------------------------------------------------------------------- /website/_sass/partials/_mixins.scss: -------------------------------------------------------------------------------- 1 | // List your mixins in here to keep things tidy 2 | 3 | // A basic button 4 | @mixin button($btn-bg, $btn-text) { 5 | font-weight: $bold-font-weight; 6 | padding: 0.8rem; 7 | border-radius: 3px; 8 | line-height: $base-line-height; 9 | color: $btn-text; 10 | background-color: $btn-bg; 11 | border: 3px solid $btn-bg; 12 | } 13 | 14 | // Disable text selection 15 | @mixin user-select($argument: none){ 16 | -webkit-user-select: $argument; 17 | -moz-user-select: $argument; 18 | -ms-user-select: $argument; 19 | user-select: $argument; 20 | } 21 | -------------------------------------------------------------------------------- /v0.1/README.md: -------------------------------------------------------------------------------- 1 | #### Welcome to the first release, v0.1, of RubyGalaxy 👽🖖 2 | 3 | - **Release Party**: Jan 28th, 2020 12pm PST on **RubyGalaxy Twitch** 4 | - **Release URL**: rubygalaxy.io/0.1 5 | 6 | To submit a talk, please open a pull request into this repository with 7 | - A markdown file with your talk title (ex. MyJourneyWithJekyll_DannyRamos) 8 | - Information about you in the description 9 | - Name: Danny Ramos 10 | - Title: Associate Developer Relations Engineer 11 | - Twitter (Optional): @muydanny 12 | - Email (Optional): dramos@newrelic.com 13 | - Company(Optional): New Relic 14 | 15 | -------------------------------------------------------------------------------- /v0.2/README.md: -------------------------------------------------------------------------------- 1 | #### Welcome to the first release, v0.2 of RubyGalaxy 👽🖖 2 | 3 | - **Release Party**: Feb 28th, 2020 12pm PST on [RubyGalaxy Twitch](https://twitch.tv/therubygalaxy) 4 | - **Release URL**: rubygalaxy.io/0.2 5 | 6 | To submit a talk, please open a pull request into this repository with 7 | - A markdown file with your talk title (ex. MyJourneyWithJekyll_DannyRamos) 8 | - Information about you in the description 9 | - Name: Danny Ramos 10 | - Title: Associate Developer Relations Engineer 11 | - Twitter (Optional): @muydanny 12 | - Email (Optional): dramos@newrelic.com 13 | - Company(Optional): New Relic 14 | -------------------------------------------------------------------------------- /v0.1/playing_a_hand_with_ruby_pattern_matching_brandon_weaver.md: -------------------------------------------------------------------------------- 1 | * Name: Brandon Weaver 2 | * Title: Playing a Hand with Ruby Pattern Matching 3 | * Twitter (Optional): @keystonelemur 4 | * Email (Optional): keystonelemur@gmail.com 5 | * Company (Optional): Square 6 | --- 7 | Talk Title: Playing a Hand with Ruby Pattern Matching 8 | Talk Synopsis (< 250 words): 9 | Ruby 2.7 introduced Pattern Matching, but what can you use it for? How about we play 10 | a few hands of poker to find out. 11 | 12 | This talk explores Pattern Matching patterns through scoring poker hands. If you've 13 | been waiting for some practical examples of Pattern Matching this is your talk/ -------------------------------------------------------------------------------- /.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/63/7e252fa8460c2278df772e6dfbf4934329e2f03a9174070b70d0883886b435: -------------------------------------------------------------------------------- 1 | I" 

This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at jekyllrb.com

2 | 3 |

You can find the source code for Minima at GitHub: 4 | jekyll / 5 | minima

6 | 7 |

You can find the source code for Jekyll at GitHub: 8 | jekyll / 9 | jekyll

10 | 11 | :ET -------------------------------------------------------------------------------- /v0.1/git_rebase.md: -------------------------------------------------------------------------------- 1 | - Name: Brooke Kuhlmann 2 | - Title: Git Rebase 3 | - [Web](https://www.alchemists.io) 4 | 5 | **Synopsis** 6 | 7 | Git is the dominant tool for version management. Misunderstanding and misusing Git can cost 8 | development teams time, energy, and money. Few better examples exist than Git's default merge 9 | workflow which creates repositories that are hard to read, debug, and maintain. In this talk, I'll 10 | show how to use the Rebase Workflow instead, which puts Git to work for you to produce quality code 11 | that's easy to handle and kicks your team into high gear. We'll also get a chance to look at [Git 12 | Lint](https://www.alchemists.io/projects/git-lint) which is a linter for your Git commits written in 13 | Ruby! 14 | -------------------------------------------------------------------------------- /website/pages/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: About 4 | meta_description: This sets the meta description in the head of the page. You 5 | can watch the output in the browser or in the generated file _site/about.html. 6 | permalink: /about 7 | section: about 8 | intro_paragraph: Create an inclusive and intentional space for Ruby enthusiasts 9 | to share their experiences from all around the world. 10 | --- 11 | ### What makes our galaxy special 12 | 13 | We are a monthly virtual meetup that allows Ruby developers of all skillsets to share their experience with the language. First time speakers are encouraged to come talk at our meetup! 14 | 15 | Catch us every last Thursday of the month at 19:00 UTC on our [Twitch](https://www.twitch.tv/therubygalaxy) channel 🌌 16 | -------------------------------------------------------------------------------- /abstract_template_example.md: -------------------------------------------------------------------------------- 1 | * **Name**: Danny Ramos 2 | * **Title**: Associate Developer Relations Engineer 3 | * **Twitter (Optional)**: @muydanny 4 | * **Email (Optional)**: dramos@newrelic.com 5 | * **Company (Optional)**: New Relic 6 | 7 | --- 8 | * **Talk Title**: Trapped in the Jekyll-Space Continuum 9 | * **Talk Synopsis (< 250 words)**: 10 | Building lightweight sites is part of the daily routine of any junior software developer. This talk explores the trials and tribulations of trying to build a simple website for Ruby Galaxy first in Ruby on Rails, and then stumbling upon Jekyll, a static site generator powered by Ruby. Most importantly, the talk will include the problems encountered along the way, and why Jekyll was the perfect fit to build Ruby Galaxy's homepage. 11 | -------------------------------------------------------------------------------- /website/_layouts/Talks.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |

{{ page.title }}

5 | {% include page-intro.html %} 6 | 7 | {{ content }} 8 | {% for event in site.data.events %} 9 | {% unless event.upcoming %} 10 | {% include event.html event=event %} 11 | {% endunless %} 12 | {% endfor %} 13 | 14 | 32 | -------------------------------------------------------------------------------- /website/admin/preview-templates/index.js: -------------------------------------------------------------------------------- 1 | import Post from "/admin/preview-templates/post.js"; 2 | import Page from "/admin/preview-templates/page.js"; 3 | 4 | // Register the Post component as the preview for entries in the Talks collection 5 | CMS.registerPreviewTemplate("Talks", Post); 6 | CMS.registerPreviewTemplate("pages", Page); 7 | 8 | CMS.registerPreviewStyle("/assets/main.css"); 9 | // Register any CSS file on the home page as a preview style 10 | fetch("/") 11 | .then(response => response.text()) 12 | .then(html => { 13 | const f = document.createElement("html"); 14 | f.innerHTML = html; 15 | Array.from(f.getElementsByTagName("link")).forEach(tag => { 16 | if (tag.rel == "stylesheet" && !tag.media) { 17 | CMS.registerPreviewStyle(tag.href); 18 | } 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /website/_sass/partials/_variables.scss: -------------------------------------------------------------------------------- 1 | // site colours 2 | $text-color: white; 3 | $text-color-negative: white; 4 | $brand-color: rgb(29,37,00); 5 | $link-color: rgb(249, 52, 52); 6 | $link-hover-color: rgb(255, 26, 26); 7 | $grey-bg-color: rgb(243,243,243); 8 | $hairline-color: rgb(160, 148, 148); 9 | $selection-bg-color: rgba(255,255,100,0.5); 10 | 11 | // typographic defaults 12 | $base-font: system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue; 13 | $code-font: Courier, monospace; 14 | $base-font-size: 62.5%; 15 | $base-font-weight: 300; 16 | $bold-font-weight: 600; 17 | $base-line-height: 1.5; 18 | 19 | // viewport breakpoints 20 | $screen-xs-min: 480px; 21 | $screen-sm-min: 768px; 22 | $screen-md-min: 992px; 23 | $screen-lg-min: 1240px; 24 | $screen-xl-min: 1920px; 25 | -------------------------------------------------------------------------------- /website/_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |

{{ page.title }}

5 | 6 | by {{ page.author }} 7 | 8 | 9 | 10 | 11 | {% include page-intro.html %} 12 | 13 | {{ content }} 14 | 15 | 29 | -------------------------------------------------------------------------------- /v0.1/okuramasafumi_kaigi_on_rails.md: -------------------------------------------------------------------------------- 1 | * Name: OKURA Masafumi 2 | * Title: Kaigi on Rails - creating a tech conference in the era of online 3 | * Twitter (Optional): @okuramasafumi 4 | * Email (Optional): masafumi.o1988@gmail.com 5 | 6 | --- 7 | Talk Title: Kaigi on Rails - creating a tech conference in the era of online 8 | Talk Synopsis (< 250 words): 9 | I'm the chief organizer of [Kaigi on Rails](https://kaigionrails.org), a new tech conference from Japan. 10 | It launched last year and started its history as an online conference, apart from its original idea. 11 | I'm planning to improve it to be a better online conference this year to empower more people, 12 | from newbies to experienced devs. 13 | Kaigi on Rails is currently a domestic conference, but will hopefully be an international from next year. 14 | In this talk, I'm going to talk briefly about Kaigi on Rails and some ideas around it, 15 | and propose the audience to be part of it. 16 | -------------------------------------------------------------------------------- /website/_includes/event.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{include.event.name}} Launched on {{include.event.date}} - {{include.event.event_text }}

4 | {% include host_header.html hosts=include.event.hosts %} 5 |
6 |
7 |
8 | {% for talk in include.event.talks %} 9 |
10 |
11 | {% if talk.recording %} 12 | {% youtube talk.recording %} 13 | {% else %} 14 |

Video is currently being edited, subscribe to RubyGalaxy for more galactic content!

15 | {% endif %} 16 | 17 |

{{talk.name}}

18 |
19 | 20 | {{talk.author}} 21 | 22 |
23 |
24 |
25 | {% endfor %} 26 | -------------------------------------------------------------------------------- /website/assets/img/twitter-brands.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /website/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | # Hello! This is where you manage which Jekyll version is used to run. 4 | # When you want to use a different version, change it below, save the 5 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so: 6 | # 7 | # bundle exec jekyll serve 8 | # 9 | # This will help ensure the proper Jekyll version is running. 10 | # Happy Jekylling! 11 | gem "jekyll", "~> 3.8" 12 | 13 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and 14 | # uncomment the line below. To upgrade, run `bundle update github-pages`. 15 | # gem "github-pages", group: :jekyll_plugins 16 | 17 | # If you have any plugins, put them here! 18 | group :jekyll_plugins do 19 | gem 'jekyll-seo-tag' 20 | gem 'jekyll-youtube', '~> 1.0' 21 | end 22 | 23 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem 24 | gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] 25 | 26 | # Performance-booster for watching directories on Windows 27 | gem "wdm", "~> 0.1.0" if Gem.win_platform? 28 | -------------------------------------------------------------------------------- /v0.1/debugging_your_brain.md: -------------------------------------------------------------------------------- 1 | * Name: Casey Watts 2 | * Title: Debugging Your Brain Workshop 3 | * Twitter (Optional): @kyloma 4 | * Email (Optional): casey.s.watts@gmail.com 5 | 6 | --- 7 | Talk Title: Debugging Your Brain Workshop 8 | Talk Synopsis (< 250 words): 9 | The human brain is buggy. Sometimes your mind distorts reality, gets frustrated with shortcomings, and spirals out of control. With practice, you can debug your brain. Catch those distortions of reality, transform those frustrations into insight, and short-circuit those downward spirals. 10 | 11 | In this workshop you will get a chance to practice each core idea from Casey’s book [Debugging Your Brain](https://www.debuggingyourbrain.com): Modeling The Brain, Cognitive Behavioral Therapy, Introspection, Identifying Inputs, Experience Processing, Experience Validation, and Cognitive Restructuring. 12 | 13 | Debugging Your Brain is a clear applied psychology book and a concise self-help book, available in all three formats: printed book, eBook and audiobook: [debuggingyourbrain.com](https://www.debuggingyourbrain.com) 14 | -------------------------------------------------------------------------------- /website/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Dan Urbanowicz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, 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, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /website/admin/preview-templates/post.js: -------------------------------------------------------------------------------- 1 | import htm from "https://unpkg.com/htm?module"; 2 | import format from "https://unpkg.com/date-fns@2.7.0/esm/format/index.js?module"; 3 | 4 | const html = htm.bind(h); 5 | 6 | // Preview component for a Post 7 | const Post = createClass({ 8 | render() { 9 | const entry = this.props.entry; 10 | 11 | return html` 12 |
13 |
14 |

${entry.getIn(["data", "title"], null)}

15 |

16 | 17 | 25 | ${" by Author"} 26 | 27 |

28 | 29 |

${entry.getIn(["data", "summary"], "")}

30 | 31 | ${this.props.widgetFor("body")} 32 |

33 | ${ 34 | entry.getIn(["data", "tags"], []).map( 35 | tag => 36 | html` 37 | 38 | ` 39 | ) 40 | } 41 |

42 |
43 |
44 | `; 45 | } 46 | }); 47 | 48 | export default Post; 49 | -------------------------------------------------------------------------------- /v0.1/kindness_matters_stella_bonnie.md: -------------------------------------------------------------------------------- 1 | * **Name: Stella Bonnie** 2 | * **Title: Junior Engineer and Technical Writer/MA Religious Studies** 3 | * **Twitter (Optional):@Stellllllllaaaa** 4 | * **Email (Optional): stella@hey.com** 5 | * **Company (Optional):Blinker** 6 | 7 | --- 8 | * **Talk Title**: Kindness Matters: The Case for Ruby as a Superior Programming Language 9 | * **Talk Synopsis (< 250 words)**: 10 | Language is about communication and connection, and programming languages are more about communicating with other developers than they are about communicating with machines. People dismiss Ruby as a "great first language" but in this talk I will make the case for Ruby as the supreme programming language because it is the kindest programming language when it comes to human communication. 11 | 12 | Writing unreadable code for the sake of brevity is a form of gate keeping. It is a feature of engineering culture that preserves homogeny and creates unnecessary barriers to entry for marginalized groups who may be newer to the field, and may think and communicate differently. Software engineering as a discipline has been dominated by white cis-gendered males as long as it has been a practice. As the field becomes more diverse, the languages will necessarily need to evolve to accommodate new perspectives and experiences. In a time such as this, Ruby is the premier language because it is was designed with kindness in mind. 13 | -------------------------------------------------------------------------------- /website/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "jekyll build" 3 | publish = "_site" 4 | 5 | [build.environment] 6 | JEKYLL_ENV = "production" 7 | 8 | # REDIRECT and HEADERS examples. 9 | # Uncomment to use. Directives in this file will ALWAYS override any identical 10 | # directives present in either _redirects and _headers files, and also any 11 | # settings added in Netlify's admin interface. 12 | 13 | # Redirects and headers are GLOBAL for all builds – they do not get scoped to 14 | # contexts no matter where you define them in the file. 15 | # For context-specific rules, use _headers or _redirects files, which are 16 | # applied PER-DEPLOY. 17 | 18 | # For more information see:- https://www.netlify.com/docs/netlify-toml-reference/ 19 | 20 | # Redirect rule example 21 | 22 | #[[redirects]] 23 | # from = "/*" 24 | # to = "/Talks/:splat" 25 | 26 | # The default HTTP status code is always 301, but you can define a different 27 | # one e.g. status = 302 28 | 29 | # Headers rule example 30 | # For more information see:- https://www.netlify.com/docs/netlify-toml-reference/ 31 | 32 | #[[headers]] 33 | # Define which paths this specific [[headers]] block will cover. 34 | # for = "/*" 35 | 36 | #[headers.values] 37 | # X-Frame-Options = "DENY" 38 | # X-XSS-Protection = "1; mode=block" 39 | # Content-Security-Policy = "frame-ancestors https://www.facebook.com" 40 | 41 | # For more information see:- https://www.netlify.com/docs/netlify-toml-reference/ 42 | -------------------------------------------------------------------------------- /website/_data/guests.yml: -------------------------------------------------------------------------------- 1 | # Guest List 2 | 3 | megan_tiu: 4 | name: Megan Tiu 5 | twitter: https://twitter.com/megantiu 6 | 7 | ramon_huidobro: 8 | name: Ramón Huidobro 9 | twitter: https://twitter.com/hola_soy_milk 10 | 11 | aaron_patterson: 12 | name: Aaron Patterson 13 | description: Ruby on Rails author 14 | twitter: https://twitter.com/tenderlove 15 | 16 | amir_rajan: 17 | name: Amir Rajan 18 | twitter: http://twitter.com/amirrajan 19 | 20 | brian_douglas: 21 | name: Brian Douglas 22 | headshot: /assets/img/bdougie.png 23 | twitter: http://twitter.com/bdougieYO 24 | 25 | brooke_kuhlmann: 26 | name: Brooke Kuhlmann 27 | twitter: https://twitter.com/bkuhlmann 28 | 29 | casey_watts: 30 | name: Casey Watts 31 | twitter: https://twitter.com/heycaseywattsup 32 | 33 | christina_gorton: 34 | name: Christina Gorton 35 | twitter: https://twitter.com/coffeecraftcode 36 | description: Open Source Community Manager at Forem 37 | 38 | corey_haines: 39 | name: Corey Haines 40 | twitter: http://twitter.com/coreyhaines 41 | 42 | dan_moore: 43 | name: Dan Moore 44 | headshot: /assets/img/dan_moore.png 45 | twitter: https://twitter.com/mooreds 46 | 47 | joel_hawksley: 48 | name: joel_hawksley 49 | headshot: /assets/img/joel_h.png 50 | twitter: https://hawksley.org/ 51 | 52 | matz: 53 | name: Yukihiro "Matz" Matsumoto 54 | headshot: /assets/img/matz.jpg 55 | twitter: https://twitter.com/yukihiro_matz 56 | 57 | mike_perham: 58 | name: Mike Perham 59 | twitter: https://twitter.com/getajobmike 60 | description: Author of Sidekiq and Faktory 61 | 62 | okura_masafumi: 63 | name: Okura Masafumi 64 | twitter: https://twitter.com/okuramasafumi 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910: -------------------------------------------------------------------------------- 1 | I"{"source"=>"/Users/dannyramos/devrel/rubygalaxy", "destination"=>"/Users/dannyramos/devrel/rubygalaxy/_site", "collections_dir"=>"", "cache_dir"=>".jekyll-cache", "plugins_dir"=>"_plugins", "layouts_dir"=>"_layouts", "data_dir"=>"_data", "includes_dir"=>"_includes", "collections"=>{"posts"=>{"output"=>true, "permalink"=>"/:categories/:year/:month/:day/:title:output_ext"}}, "safe"=>false, "include"=>[".htaccess"], "exclude"=>[".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files"=>[".git", ".svn"], "encoding"=>"utf-8", "markdown_ext"=>"markdown,mkdown,mkdn,mkd,md", "strict_front_matter"=>false, "show_drafts"=>nil, "limit_posts"=>0, "future"=>false, "unpublished"=>false, "whitelist"=>[], "plugins"=>[], "markdown"=>"kramdown", "highlighter"=>"rouge", "lsi"=>false, "excerpt_separator"=>"\n\n", "incremental"=>false, "detach"=>false, "port"=>"4000", "host"=>"127.0.0.1", "baseurl"=>nil, "show_dir_listing"=>false, "permalink"=>"date", "paginate_path"=>"/page:num", "timezone"=>nil, "quiet"=>false, "verbose"=>false, "defaults"=>[], "liquid"=>{"error_mode"=>"warn", "strict_filters"=>false, "strict_variables"=>false}, "kramdown"=>{"auto_ids"=>true, "toc_levels"=>[1, 2, 3, 4, 5, 6], "entity_output"=>"as_char", "smart_quotes"=>"lsquo,rsquo,ldquo,rdquo", "input"=>"GFM", "hard_wrap"=>false, "guess_lang"=>true, "footnote_nr"=>1, "show_warnings"=>false, "syntax_highlighter"=>"rouge", "syntax_highlighter_opts"=>{:default_lang=>"plaintext", :guess_lang=>true}, "coderay"=>{}}, "livereload_port"=>35729, "serving"=>true, "watch"=>true, "url"=>nil}:ET -------------------------------------------------------------------------------- /website/_site/404.html: -------------------------------------------------------------------------------- 1 | Page not found

404

Sorry, the requested page could not be found.

Please visit the Home Page instead.

Fancy planet w/ crescent 2 | -------------------------------------------------------------------------------- /website/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.5.2) 5 | public_suffix (>= 2.0.2, < 4.0) 6 | colorator (1.1.0) 7 | concurrent-ruby (1.1.4) 8 | em-websocket (0.5.1) 9 | eventmachine (>= 0.12.9) 10 | http_parser.rb (~> 0.6.0) 11 | eventmachine (1.2.7) 12 | ffi (1.9.25) 13 | forwardable-extended (2.6.0) 14 | http_parser.rb (0.6.0) 15 | i18n (0.9.5) 16 | concurrent-ruby (~> 1.0) 17 | jekyll (3.8.5) 18 | addressable (~> 2.4) 19 | colorator (~> 1.0) 20 | em-websocket (~> 0.5) 21 | i18n (~> 0.7) 22 | jekyll-sass-converter (~> 1.0) 23 | jekyll-watch (~> 2.0) 24 | kramdown (~> 1.14) 25 | liquid (~> 4.0) 26 | mercenary (~> 0.3.3) 27 | pathutil (~> 0.9) 28 | rouge (>= 1.7, < 4) 29 | safe_yaml (~> 1.0) 30 | jekyll-sass-converter (1.5.2) 31 | sass (~> 3.4) 32 | jekyll-seo-tag (2.7.1) 33 | jekyll (>= 3.8, < 5.0) 34 | jekyll-watch (2.1.2) 35 | listen (~> 3.0) 36 | jekyll-youtube (1.0.0) 37 | jekyll 38 | kramdown (1.17.0) 39 | liquid (4.0.1) 40 | listen (3.1.5) 41 | rb-fsevent (~> 0.9, >= 0.9.4) 42 | rb-inotify (~> 0.9, >= 0.9.7) 43 | ruby_dep (~> 1.2) 44 | mercenary (0.3.6) 45 | pathutil (0.16.2) 46 | forwardable-extended (~> 2.6) 47 | public_suffix (3.0.3) 48 | rb-fsevent (0.10.3) 49 | rb-inotify (0.10.0) 50 | ffi (~> 1.0) 51 | rouge (3.3.0) 52 | ruby_dep (1.5.0) 53 | safe_yaml (1.0.4) 54 | sass (3.7.2) 55 | sass-listen (~> 4.0.0) 56 | sass-listen (4.0.0) 57 | rb-fsevent (~> 0.9, >= 0.9.4) 58 | rb-inotify (~> 0.9, >= 0.9.7) 59 | 60 | PLATFORMS 61 | ruby 62 | 63 | DEPENDENCIES 64 | jekyll (~> 3.8) 65 | jekyll-seo-tag 66 | jekyll-youtube (~> 1.0) 67 | tzinfo-data 68 | 69 | BUNDLED WITH 70 | 1.17.2 71 | -------------------------------------------------------------------------------- /.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/27/7f2bf9da303c681b8a44f3ad24de729ce7a1458dc93dbeb3d20ad4e2cf314e: -------------------------------------------------------------------------------- 1 | I"1 30 | :ET -------------------------------------------------------------------------------- /website/_includes/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% if page.section == "home" %} 5 | {{ site.title }} 6 | 7 | 8 | 9 | 10 | 11 | {% else %} 12 | {{ page.title }} 13 | 14 | 15 | {% if page.meta_description %} 16 | 17 | 18 | {% else %} 19 | 20 | 21 | {% endif %} 22 | {% endif %} 23 | 24 | {% if jekyll.environment == 'production' and site.analytics %} 25 | {% include analytics.html %} 26 | {% endif %} 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | -------------------------------------------------------------------------------- /website/_sass/partials/_typography.scss: -------------------------------------------------------------------------------- 1 | // Basic Typographic Defaults 2 | 3 | // set font sizes in percent on the root element 4 | 5 | html { 6 | font-size: $base-font-size; 7 | @media screen and (min-width: $screen-xs-min) { 8 | font-size: $base-font-size * 1.2; 9 | } 10 | @media screen and (min-width: $screen-md-min) { 11 | font-size: $base-font-size * 1.4; 12 | } 13 | } 14 | 15 | // now we can specify a single font size in rem for each of our elements 16 | // the root breakpoints above will then scale all elements together 17 | 18 | body { 19 | color: $text-color; 20 | font-family: $base-font; 21 | line-height: $base-line-height; 22 | font-weight: $base-font-weight; 23 | font-style: normal; 24 | font-variant: normal; 25 | font-size: 1.6rem; // this is equivalent to 16px 26 | } 27 | 28 | h1,h2,h3,h4,h5,h6,p,figure,time { 29 | padding-top: 0.5rem; 30 | padding-bottom: 0.5rem; 31 | } 32 | 33 | h1,h2,h3,h4,h5,h6,figure { 34 | p + &, 35 | figure + & { 36 | padding-top: 2rem; 37 | } 38 | } 39 | 40 | 41 | p.intro { 42 | font-size: 2.4rem; 43 | color: lighten($text-color, 40%); 44 | padding-bottom: 4rem; 45 | @media screen and (min-width: $screen-sm-min) { 46 | padding-bottom: 4rem; 47 | } 48 | } 49 | 50 | h1,h2,h3,h4,h5,h6 { 51 | font-weight: $bold-font-weight; 52 | line-height: $base-line-height / 1.3; 53 | } 54 | 55 | h2 { 56 | font-size: 3.2rem; 57 | padding-bottom: 4rem; 58 | } 59 | 60 | h3 { 61 | font-size: 2rem; 62 | } 63 | 64 | h4 { 65 | font-size: 1.5rem; 66 | font-weight: $bold-font-weight; 67 | } 68 | 69 | h5 { 70 | font-size: 0.9rem; 71 | font-weight: $bold-font-weight; 72 | } 73 | 74 | code { 75 | font-family: $code-font; 76 | font-size: 1.2rem; 77 | color: $text-color; 78 | } 79 | 80 | strong { 81 | font-weight: $bold-font-weight; 82 | } 83 | 84 | small { 85 | font-size: 1.2rem; 86 | } 87 | 88 | a, 89 | a:visited { 90 | text-decoration: none; 91 | color: $link-color; 92 | } 93 | 94 | a:hover, 95 | a:active { 96 | text-decoration: none; 97 | border: 0; 98 | color: $link-hover-color; 99 | } 100 | 101 | header > h1 { 102 | line-height: $base-line-height; 103 | font-weight: $base-font-weight; 104 | @media screen and (min-width: $screen-sm-min) { 105 | text-align: left; 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ruby Galaxy 2 | #### Release v.05 3 | - **Release Party**: May 27th, 2021 19:00 UTC on **[TheRubyGalaxy](https://www.twitch.tv/therubygalaxy) Twitch channel** 4 | - Hosted by Rachael Wright-Munn ([@ChaelCodes](https://www.twitch.tv/chaelcodes)) and Danny Ramos ([@muydanny](https://www.twitch.tv/muydanny)) 🎉🎉 5 | - **Release URL**: [Ruby Galaxy](https://rubygalaxy.io/) 6 | 7 | Announcing RubyGalaxy, an online meetup for Rubyists around the world, and if we're lucky - the galaxy. Our meetup revolves around 4 overarching themes - Ruby for Beginners, Building Inclusive Communities, Weird Ruby, and Veterans of Ruby. 8 | 9 | ### How to Submit a Talk 10 | 11 | Please review our submission process on [Paper Call](https://www.papercall.io/ruby-galaxy) ✨ 12 | 13 | ***We invite all talks! These tracks are more suggestions or ideas :)*** 14 | 15 | ### Tracks 16 | #### Building Inclusive Communities 17 | 18 | What makes the Ruby community so special is the diversity and uniqueness of all of our contributors. As a community that shapes the future of technology, it is important to create an empowering, inclusive, and productive space where all members can come together to collaborate. Talks in this track should center around the various challenges and solutions to building a more inclusive, welcoming, and intentional space for developers, and how we can apply those learnings to the Ruby community. 19 | 20 | #### Ruby as a Start 21 | 22 | Through innovative educational programs, there are more and more developers from nontraditional, non-STEM backgrounds. This track is meant for junior developers and bootcamp grads to share their experience with Ruby, advice on breaking into tech, and give advice to more senior engineers to help integrate developers from nontraditional backgrounds into their teams. 23 | 24 | #### Weird Ruby 25 | 26 | Ruby is a versatile language that has been used to implement the most whimsical of projects. We want to highlight the weirdest, wackiest, most obscure Ruby projects created by the community. Wow us with your out-of-this-world creativity, we can't wait. 27 | 28 | #### Looking Back 29 | 30 | It wouldnt be software development if there weren't mistakes or stories to tell. This track are the stories of Ruby. We want to hear about your experience with mistakes and lessons learned. 31 | 32 | ##### Pull Request Sample 33 | 34 | [Sample](https://github.com/openrubyfoundation/rubygalaxy/pull/2) 35 | -------------------------------------------------------------------------------- /website/admin/config.yml: -------------------------------------------------------------------------------- 1 | # Everything you need to know about configuring the CMS can be found here:- 2 | # https://www.netlifycms.org/docs/configuration-options/ 3 | 4 | backend: 5 | name: git-gateway # Netlify’s Git Gateway connects to Git provider’s API 6 | branch: master # Branch to update (master by default) 7 | 8 | media_folder: "assets/img/uploads" # Folder where user uploaded files should go 9 | 10 | publish_mode: editorial_workflow # Enable drafts 11 | 12 | collections: # A list of collections the CMS should be able to edit 13 | # POSTS 14 | - name: "post" # Used in routes, ie.: /admin/collections/:slug/edit 15 | label: "Post" # Used in the UI, ie.: "New Post" 16 | folder: "_posts" # The path to the folder where the documents are stored 17 | sort: "date:desc" # Default is title:asc 18 | create: true # Allow users to create new documents in this collection 19 | slug: "{{year}}-{{month}}-{{day}}-{{slug}}" 20 | fields: # The fields each document in this collection have 21 | - {label: "Layout", name: "layout", widget: "hidden", default: "post"} 22 | - {label: "Title", name: "title", widget: "string", tagname: "h1"} 23 | - {label: "Meta Description", name: "meta_description", widget: "string", required: false} 24 | - label: "Author" 25 | name: "author" 26 | widget: "select" 27 | options: 28 | - { label: "Dan Urbanowicz", value: "dan_urbanowicz" } 29 | - { label: "John Doe", value: "john_doe" } 30 | - {label: "Publish Date", name: "date", widget: "datetime", format: "YYYY-MM-DD HH:mm:ss"} 31 | - {label: "Intro Paragraph", name: "intro_paragraph", widget: "markdown", required: false} 32 | - {label: "Body", name: "body", widget: "markdown", required: false} 33 | - {label: "Categories", name: "categories", widget: "string", required: false} 34 | # PAGES 35 | - name: "page" 36 | label: "Page" 37 | folder: "pages" 38 | sort: "title:asc" 39 | create: false 40 | slug: "{{slug}}" 41 | fields: 42 | - {label: "Layout", name: "layout", widget: "hidden", default: "page"} 43 | - {label: "Title", name: "title", widget: "string", tagname: "h1"} 44 | - {label: "Meta Description", name: "meta_description", widget: "string", required: false} 45 | - {label: "Permalink", name: "permalink", widget: "hidden"} 46 | - {label: "Section", name: "section", widget: "hidden", default: "{{name}}"} 47 | - {label: "Intro Paragraph", name: "intro_paragraph", widget: "markdown", required: false} 48 | - {label: "Body", name: "body", widget: "markdown", required: false} 49 | -------------------------------------------------------------------------------- /website/_data/hosts.yml: -------------------------------------------------------------------------------- 1 | # All the Ruby Galaxy Hosts 2 | 3 | daniel_kim: 4 | name: Daniel Kim 5 | twitter: http://twitter.com/learnwdaniel 6 | 7 | danny_ramos: 8 | name: Danny Ramos 9 | email: dramos@newrelic.com 10 | headshot: /assets/img/Danny_headshot.png 11 | linkedin: https://www.linkedin.com/in/danny-ramos-j/ 12 | twitch: https://twitch.tv/muydanny 13 | twitter: http://twitter.com/muydanny 14 | github: https://github.com/muydanny 15 | bio: Danny Ramos is a Developer Relations Engineer at New Relic. Having spent the majority of his life in the creative arts, Danny highly values connecting and sharing experiences with other people. From grinding as a janitor to putting in 70-hour weeks as a software development student, he’s no stranger to getting his hands dirty in the pursuit of his goals. 16 | 17 | jonan_scheffler: 18 | name: Jonan Scheffler 19 | email: johndoe@email.com 20 | headshot: /assets/img/Jonan_headshot.jpg 21 | twitch: https://twitch.tv/thejonanshow 22 | twitter: http://twitter.com/thejonanshow 23 | github: https://github.com/thejonanshow 24 | bio: Jonan is the Director of Developer Relations at New Relic and an aspiring astronaut. He believes in you and your potential and wants to help you build beautiful things. 25 | 26 | mayra_navarro: 27 | name: Mayra Navarro 28 | twitter: https://twitter.com/mayralunavarro/media 29 | 30 | rachael_wright_munn: 31 | name: Rachael Wright-Munn 32 | email: chaelcodes@gmail.com 33 | headshot: /assets/img/Rachael_headshot.jpg 34 | linkedin: https://www.linkedin.com/in/rachael-wright-chaelcodes/ 35 | twitch: https://twitch.tv/ChaelCodes 36 | twitter: http://twitter.com/chaelcodes 37 | github: https://github.com/chaelcodes 38 | web: https://www.chael.codes 39 | bio: Rachael wants to share the joy and beauty of programming through programming games and regular open-source streams on Twitch. She's been a professional dev since 2012, 3x Team Lead, and manages an open-source repo for playing games of Monster of the Week. Currently, she works as a Developer Relations Engineer for New Relic. 40 | 41 | kirk_haines: 42 | name: Kirk Haines 43 | email: wyhaines@gmail.com 44 | headshot: /assets/img/Kirk_headshot.png 45 | linkedin: https://www.linkedin.com/in/wyhaines/ 46 | twitch: https://twitch.tv/wyhaines 47 | twitter: https://twitter.com/wyhaines 48 | github: https://github.com/wyhaines 49 | web: https://wyhaines.com 50 | bio: Kirk likes to build things, and has been building things with Ruby for 2+ decades. He loves helping others to learn and grow in his role as a Developer Relations Engineer for New Relic. -------------------------------------------------------------------------------- /website/_config.yml: -------------------------------------------------------------------------------- 1 | # Welcome to Jekyll! 2 | # 3 | # This config file is meant for settings that affect your whole Talks, values 4 | # which you are expected to set up once and rarely edit after that. If you find 5 | # yourself editing this file very often, consider using Jekyll's data files 6 | # feature for the data you need to update frequently. 7 | # 8 | # For technical reasons, this file is *NOT* reloaded automatically when you use 9 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process. 10 | 11 | # Site settings 12 | # These are used to personalize your new site. If you look in the HTML files, 13 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. 14 | # You can create any custom variable you would like, and they will be accessible 15 | # in the templates via {{ site.myvariable }}. 16 | title: Ruby Galaxy 17 | email: your-email@example.com 18 | description: >- # this means to ignore newlines until "baseurl:" 19 | An online meetup for Ruby enthusiasts from around the world, and if we’re lucky - the galaxy. 20 | baseurl: "" # the subpath of your site if applicable, e.g. /Talks 21 | url: "https://rubygalaxy.io" # the base hostname & protocol for your site, e.g. https://example.com 22 | 23 | # Permalink format (/Talks/ is ignored for pages) 24 | permalink: /Talks/:title 25 | plugins: 26 | - jekyll-seo-tag 27 | 28 | # Enable section IDs in frontmatter, useful for identifying current page 29 | # (used as a hook for styling etc) 30 | section: true 31 | 32 | # set to 'true' to enable Netlify CMS (/admin) in production builds 33 | netlifycms: true 34 | 35 | # set to 'true' to enable Google Analytics tracking code in production builds 36 | analytics: false 37 | 38 | # Compress CSS 39 | sass: 40 | style: compressed 41 | sass_dir: _sass 42 | 43 | # Compress HTML (in liquid via layouts/compress.html) 44 | compress_html: 45 | clippings: all 46 | 47 | # set some common post defaults 48 | defaults: 49 | - 50 | scope: 51 | path: "" # an empty string here means all files in the project 52 | type: "posts" # previously `post` in Jekyll 2.2. 53 | values: 54 | layout: "post" # set the correct default template for a post 55 | section: "post" # set the root section name 56 | 57 | # Build settings 58 | markdown: kramdown 59 | 60 | # Kramdown options 61 | kramdown: 62 | # Prevent IDs from being added to h1-h6 tags 63 | auto_ids: false 64 | 65 | # Include in processing (e.g. Netlify directives) 66 | # Uncomment before use 67 | 68 | #include: 69 | # - _redirects 70 | # - _headers 71 | 72 | # Exclude from processing. 73 | # The following items will not be processed. 74 | exclude: 75 | - README.md 76 | - LICENSE.txt 77 | - netlify.toml 78 | - feed.xml 79 | - Gemfile 80 | - Gemfile.lock 81 | - docker-compose.yml 82 | - node_modules 83 | - vendor/bundle/ 84 | - vendor/cache/ 85 | - vendor/gems/ 86 | - vendor/ruby/ 87 | -------------------------------------------------------------------------------- /website/_sass/partials/_utilities.scss: -------------------------------------------------------------------------------- 1 | // utilities for modifying some default browser behaviour 2 | 3 | html, body, div, span, applet, object, iframe, 4 | h1, h2, h3, h4, h5, h6, p, blockquote, button, pre, 5 | a, abbr, acronym, address, big, cite, code, 6 | del, dfn, em, img, ins, kbd, q, s, samp, 7 | small, strike, strong, sub, sup, tt, var, 8 | b, u, i, center, 9 | dl, dt, dd, ol, ul, li, 10 | fieldset, form, label, legend, 11 | table, caption, tbody, tfoot, thead, tr, th, td, 12 | article, aside, canvas, details, embed, 13 | figure, figcaption, footer, header, hgroup, 14 | menu, nav, output, ruby, section, summary, 15 | time, mark, audio, video { 16 | margin: 0; 17 | padding: 0; 18 | border: 0; 19 | font-size: 100%; 20 | font: inherit; 21 | vertical-align: baseline; 22 | align-items: center; 23 | } 24 | 25 | * { 26 | -webkit-box-sizing: border-box; 27 | box-sizing: border-box 28 | } 29 | 30 | * :before, * :after { 31 | -webkit-box-sizing: border-box; 32 | box-sizing: border-box 33 | } 34 | 35 | input, 36 | textarea, 37 | button, 38 | select, 39 | label, 40 | a { 41 | -webkit-tap-highlight-color: rgba(0,0,0,0); 42 | outline: none; 43 | } 44 | 45 | ul, 46 | ol, 47 | dl { 48 | list-style: none; 49 | } 50 | 51 | em { 52 | font-style: italic; 53 | } 54 | 55 | body { 56 | -webkit-font-smoothing: antialiased; 57 | -moz-osx-font-smoothing: grayscale; 58 | } 59 | 60 | img { 61 | display: block; 62 | width: 100%; 63 | max-width: 100%; 64 | height: auto; 65 | } 66 | 67 | pre { 68 | background-color: $grey-bg-color; 69 | border-radius: 0.3rem; 70 | padding: 1rem; 71 | } 72 | 73 | code { 74 | background-color: $grey-bg-color; 75 | padding: 0.2rem 0.4rem; 76 | } 77 | 78 | ::selection { 79 | background-color: $selection-bg-color; 80 | } 81 | 82 | input, 83 | textarea { 84 | width:70%; 85 | padding: 0.8em; 86 | border-radius: 3px; 87 | color: #000; 88 | // border: 0.05em solid $hairline-color; 89 | &:focus { 90 | border: 0.05em solid $text-color; 91 | } 92 | } 93 | 94 | textarea { 95 | vertical-align: top; 96 | resize: vertical; 97 | max-width: 100%; 98 | } 99 | 100 | button { 101 | @include button(#e0115f, $text-color-negative); 102 | } 103 | 104 | .container { 105 | display: flex; 106 | flex-direction: column; 107 | width: 100%; 108 | } 109 | 110 | .container-flex { 111 | display: flex; 112 | flex-direction: row; 113 | width: 100%; 114 | } 115 | 116 | .row { 117 | display: flex; 118 | width: 100%; 119 | flex-direction: row; 120 | 121 | & > * { 122 | margin: 1em; 123 | } 124 | } 125 | 126 | .column { 127 | background-color: rgba(255,255,255,0.05); 128 | padding: 20px; 129 | border-radius: 12px; 130 | margin-bottom: 1.5rem; 131 | box-shadow: 1px 1px 1px #000; 132 | width: 100%; 133 | height: 100%; 134 | } 135 | 136 | .card:last-child { 137 | margin-left: 1rem; 138 | } 139 | 140 | @media screen and (min-width: 900px) { 141 | .container { 142 | flex-direction: column; 143 | } 144 | } 145 | 146 | .sponsors { 147 | display:flex; 148 | justify-content: space-between; 149 | } 150 | .sponsorlogo { 151 | width:100px; 152 | } 153 | 154 | .sponsorlogo:hover { 155 | opacity: 0.5; 156 | transform: scale(1.05); 157 | transition: all .3s ease-in-out; 158 | } -------------------------------------------------------------------------------- /website/_layouts/home.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | RubyGalaxy logo 5 | {% include page-intro.html %} 6 | 7 | {{ content }} 8 | 9 |

Join our mailing list for event updates!

10 |
11 | 12 | 13 |
14 | 15 |
16 |
17 |
18 | {% assign event = site.data.events.last %} 19 |

🎉 Launching {{ event.name }} on {{ event.date }}

20 |

Watch it live on the Ruby Galaxy Twitch channel

21 | {% include host_header.html hosts=event.hosts %} 22 |
{{ event.description }}
23 |
24 | 25 | {% assign event = site.data.events.last %} 26 | {% if event.talks != nil %} 27 |
28 | {% assign event = site.data.events.last %} 29 |

Talks for {{ event.event_text }}

30 | {% for talk in event.talks %} 31 |
32 |

{{ talk.name }}

33 |

{{ talk.abstract }}


34 | {{ talk.author }}
35 | {{ talk.author_bio }}
36 |
37 | {% endfor %} 38 |
39 | {% endif %} 40 |
41 |
42 | 43 |

Interested in talking? Take a look at our CFP!

44 |

We are always interested in talks of all sorts, whether you are an experienced presenter, or are looking for a great place to give your first talk ever.

45 | 46 | 47 | 56 |
57 |
58 |

Brought to you by

59 |
60 |
61 | 64 | 67 | 70 | 73 |
74 |
75 | -------------------------------------------------------------------------------- /website/_layouts/compress.html: -------------------------------------------------------------------------------- 1 | --- 2 | # Jekyll layout that compresses HTML 3 | # v3.0.4 4 | # http://jch.penibelst.de/ 5 | # © 2014–2015 Anatol Broder 6 | # MIT License 7 | --- 8 | 9 | {% capture _LINE_FEED %} 10 | {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "" %}{% endif %}{% unless _pre_before contains "" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " ;; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %}
Step Bytes
raw {{ content | size }}{% if _profile_endings %}
endings {{ _profile_endings }}{% endif %}{% if _profile_startings %}
startings {{ _profile_startings }}{% endif %}{% if _profile_comments %}
comments {{ _profile_comments }}{% endif %}{% if _profile_collapse %}
collapse {{ _profile_collapse }}{% endif %}{% if _profile_clippings %}
clippings {{ _profile_clippings }}{% endif %}
{% endif %}{% endif %} 11 | -------------------------------------------------------------------------------- /website/README.md: -------------------------------------------------------------------------------- 1 | # Jekyll Netlify Boilerplate 2 | 3 | *Note: Check out my [Eleventy Netlify Boilerplate](https://github.com/danurbanowicz/eleventy-netlify-boilerplate). It does pretty much the same as this project but uses the [Eleventy](https://www.11ty.io/) static site generator. It's fast, flexible and doesn't require Ruby.* 4 | 5 | **A really simple Jekyll template for creating a fast, static website on Netlify with 6 | a continuous deployment workflow.** 7 | 8 | 🔥 **This project is featured on Netlify's official [template showcase](http://templates.netlify.com/template/jekyll-with-netlify-cms-boilerplate/) and Talks: [The top 10 Static Site Generators to watch in 2018](http://templates.netlify.com/template/jekyll-with-netlify-cms-boilerplate/)** 🔥 9 | 10 | * Minimal styling, ready to make your own 11 | * Example Talks posts, pages and contact form 12 | * Responsive CSS Grid layout with fallbacks for older browsers 13 | * Continuous Deployment workflow via Netlify and Github 14 | * Netlify CMS for managing content 15 | * Netlify Identity for authenticating users 16 | * Netlify Forms for processing your static HTML forms with reCAPTCHA 17 | * Optional Netlify `_redirects` and `_headers` files ready to use 18 | * Jekyll SASS pipeline 19 | * Minified HTML and CSS 20 | 21 | Based on Netlify's [Jekyll + Netlify CMS](https://github.com/netlify-templates/jekyll-netlify-cms) starter template, head over there for more details on deployment and build settings or to get help with setting up Netlify. 22 | 23 | For help with templates, local development and other Jekyll related stuff, check out the excellent [Jekyll Docs](https://jekyllrb.com/docs/home/). 24 | 25 | ## [View Demo](https://jekyll-netlify-boilerplate.netlify.com/) 26 | 27 | ## Performance 28 | 29 | You can test the demo site's TTFB (Time To First Byte) at [testmysite.io](https://testmysite.io/5b50abe51f12b74b81dd5442/jekyll-netlify-boilerplate.netlify.com) 30 | 31 | ## Getting started 32 | 33 | Simply click the deploy button to get your own copy of the repository deployed to Netlify: 34 | 35 | [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/danurbanowicz/jekyll-netlify-boilerplate&stack=cms) 36 | 37 | This will setup everything needed for running the CMS: 38 | 39 | * A new repository in your GitHub account with the code 40 | * Full Continuous Deployment to Netlify's global CDN network 41 | * Control users and access with Netlify Identity 42 | * Manage content with Netlify CMS 43 | 44 | ### Setup authentication 45 | 46 | After deploying this project, Netlify Identity will add you as a CMS user and 47 | will email you an invite. It is not necessary to accept this invite if you wish 48 | to use an 49 | [OAuth provider](https://www.netlify.com/docs/identity/#external-provider-login) 50 | (e.g. Github) to manage authentication for your CMS. 51 | It is recommended to use this method of authentication as it removes the need 52 | for an email & password to log in to the CMS and is generally more secure. You 53 | will need to add an OAuth provider in your Netlify app settings under 54 | "Settings" > "Identity" > "External providers". 55 | 56 | Next, navigate to `/admin` on your site, choose your OAuth provider from the 57 | login box and you should then be logged into your CMS. 58 | 59 | Now you're all set, and you can start editing content! 60 | 61 | **Note:** if you switch the repo that was created to private, you'll need to regenerate your token, 62 | as the token generated using the deploy to Netlify button can only access public repositories. To 63 | regenerate your token, head to "Settings" in your Netlify site dashboard, go to the "Identity" 64 | section, then scroll to "Services" where you'll see an "Edit settings" button. Click that and you'll 65 | see a text link to "Generate access token in GitHub". 66 | 67 | ## Local Development 68 | 69 | Clone this repository and run: 70 | 71 | ```bash 72 | bundle install 73 | bundle exec jekyll server --watch 74 | ``` 75 | 76 | In case you don't want to install ruby-bundler you can use docker: 77 | 78 | ```bash 79 | docker-compose up 80 | ``` 81 | 82 | Jekyll will watch your project folder for changes. 83 | 84 | Now navigate to [localhost:4000](http://localhost:4000/) to preview the site, and 85 | [localhost:4000/admin](http://localhost:4000/admin) to log into the CMS. 86 | 87 | ## Bug reports, feature requests, etc 88 | 89 | This is an ongoing project and I welcome contributions. Feel free to submit a PR. 90 | 91 | If you need any help with setting up Netlify CMS, you can reach out to the Netlify team in the [Netlify CMS Gitter](https://gitter.im/netlify/netlifycms). 92 | -------------------------------------------------------------------------------- /website/_sass/partials/_app.scss: -------------------------------------------------------------------------------- 1 | // Main Styles 2 | 3 | // See the other SASS partials for typography, variables etc. 4 | // CSS Grid is used for the layout with fallbacks for less capable browsers 5 | // declared beforehand, and a @supports feature query to reset fallbacks when 6 | // necessary. https://rachelandrew.co.uk/css/cheatsheets/grid-fallbacks 7 | 8 | // the body element is our primary layout grid 9 | 10 | body { 11 | height: 100vh; 12 | display: grid; 13 | grid-template-rows: auto 1fr auto; 14 | grid-template-columns: 15 | [full-start] minmax(1rem, 1fr) 16 | [main-start] minmax(0, 52rem) [main-end] 17 | minmax(1rem, 1fr) [full-end]; 18 | background: #0a101d; 19 | // background: rgb(14,23,42) original background; 20 | } 21 | 22 | // by default, make any new children of body to span the full track 23 | body > * { 24 | grid-column: full; 25 | } 26 | 27 | // header, the first grid row 28 | // it is also a grid for the logo and nav 29 | header { 30 | grid-column: full; 31 | display: grid; 32 | background-color: #0a101d; 33 | padding: 2rem; 34 | @media screen and (min-width: $screen-sm-min) { 35 | grid-template-columns: 1fr auto; 36 | grid-column-gap: 1rem; 37 | } 38 | } 39 | 40 | // logo, is a grid item 41 | header > h1 { 42 | display: inline-block; 43 | padding-bottom: 1rem; 44 | @media screen and (min-width: $screen-sm-min) { 45 | padding-bottom: 0; 46 | } 47 | a, 48 | a:visited { 49 | text-decoration: none; 50 | border: 0; 51 | color: white; 52 | @media screen and (min-width: $screen-sm-min) { 53 | padding: 1rem; 54 | } 55 | } 56 | a:hover { 57 | color: white; 58 | } 59 | } 60 | 61 | // main menu, is a grid item 62 | header > nav { 63 | @media screen and (min-width: $screen-sm-min) { 64 | float: right; 65 | } 66 | ul { 67 | // flexbox is better than grid for distributing an unknown qty of children 68 | display: flex; 69 | li { 70 | margin-right: 2rem; 71 | display: inline-block; 72 | @media screen and (min-width: $screen-sm-min) { 73 | margin-right: 0; 74 | } 75 | a, 76 | a:visited { 77 | color: white; 78 | text-decoration: none; 79 | border: 0; 80 | @media screen and (min-width: $screen-sm-min) { 81 | padding: 1rem; 82 | } 83 | &[data-current="current page"] { 84 | // you can add an active nav item style here 85 | } 86 | } 87 | a:hover { 88 | color: white; 89 | } 90 | } 91 | } 92 | } 93 | 94 | // our main content wrapper, the width scales with font size 95 | main { 96 | width: 100%; 97 | max-width: 52rem; 98 | margin-right: auto; 99 | margin-left: auto; 100 | grid-column: main; 101 | display: grid; 102 | padding-top: 8rem; 103 | padding-bottom: 8rem; 104 | @media screen and (min-width: $screen-md-min) { 105 | align-content: start; 106 | } 107 | } 108 | 109 | #header-logo { 110 | max-height: 40px; 111 | width: auto; 112 | } 113 | 114 | #logo { 115 | height: 60px; 116 | width: auto; 117 | margin-bottom: 20px; 118 | } 119 | 120 | // reset breaking fallbacks (e.g. widths) if CSS Grid is supported 121 | // float, inline-block, table properties are already ignored by CSS Grid 122 | @supports (display: grid) { 123 | main { 124 | width: auto; 125 | max-width: none; 126 | } 127 | } 128 | 129 | // Talks posts list 130 | html[data-current="Talks"] main > section { 131 | ul { 132 | display: grid; 133 | grid-template-columns: 1fr 1fr; 134 | grid-gap: 25px; 135 | // border-bottom: 0.05em solid $hairline-color; 136 | p { 137 | padding-bottom: 0; 138 | } 139 | 140 | } 141 | li { 142 | color: #fff !important; 143 | padding: 2rem; 144 | width: 100%; 145 | background-color:rgba(255, 255, 255, 0.05); 146 | border-radius: 5px; 147 | transition: 0.3s; 148 | } 149 | 150 | li:hover { 151 | background-color:rgba(255, 255, 255, 0.1); 152 | } 153 | } 154 | 155 | // adjacent Talks posts links 156 | nav[aria-label="Adjacent Posts"] { 157 | padding: 4rem 0; 158 | ul { 159 | display: flex; 160 | li { 161 | flex: 0 0 50%; 162 | width: auto; 163 | &:nth-child(2) { 164 | text-align: right; 165 | } 166 | } 167 | } 168 | } 169 | 170 | // contact form 171 | html[data-current="contact"] main > form { 172 | display: grid; 173 | label { 174 | display: none; 175 | } 176 | input, 177 | textarea { 178 | width: 100%; 179 | padding: 1rem; 180 | margin-bottom: 2rem; 181 | } 182 | button { 183 | width: 100%; 184 | } 185 | } 186 | 187 | // reset CSS Grid fallbacks when they aren't required 188 | @supports (display: grid) { 189 | html[data-current="contact"] main > form { 190 | input, 191 | textarea, 192 | button { 193 | width: auto; 194 | max-width: none; 195 | } 196 | } 197 | } 198 | 199 | footer { 200 | text-align: center; 201 | background-color: #000; 202 | } 203 | 204 | ul.twocolumns { 205 | display: inline-block; 206 | } 207 | 208 | ul.twocolumns li { 209 | padding-top: 20px; 210 | float: left; 211 | list-style: outside none none; 212 | width: 50%; 213 | } 214 | -------------------------------------------------------------------------------- /code_of_conduct.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | [INSERT CONTACT METHOD]. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. 120 | 121 | Community Impact Guidelines were inspired by 122 | [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 | 124 | For answers to common questions about this code of conduct, see the FAQ at 125 | [https://www.contributor-covenant.org/faq][FAQ]. Translations are available 126 | at [https://www.contributor-covenant.org/translations][translations]. 127 | 128 | [homepage]: https://www.contributor-covenant.org 129 | [v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html 130 | [Mozilla CoC]: https://github.com/mozilla/diversity 131 | [FAQ]: https://www.contributor-covenant.org/faq 132 | [translations]: https://www.contributor-covenant.org/translations 133 | -------------------------------------------------------------------------------- /website/_site/index.html: -------------------------------------------------------------------------------- 1 | Ruby Galaxy
RubyGalaxy logo

An online meetup for Ruby enthusiasts from around the world, and if we’re lucky - the galaxy.

Join our mailing list for event updates!

🎉 Launching v0.7 on June 24th, 2021 19:00 UTC

Watch it live on the Ruby Galaxy Twitch channel

Hosted by Rachael Wright-Munn , and Kirk Haines
RubyCentral, RailsGirls, and mentorship.

Talks for Ruby Galaxy July 🌌

Ruby Central, Apprenticeships, and Ruby

Megan Tiu talks about RubyCentral, Apprenticeships, Ruby, and her work with RailsGirls


Megan Tiu

Conversation with Rails Girls Mentors

Megan Tiu and Ramón Huidobro talk about RailsGirls and their mentorship experiences.


Megan Tiu and Ramón Huidobro

New Dev, Old Codebase: A Series of Mentorship Stories

Ramón Huidobro talks about his experiences with mentorship.


Ramón Huidobro

Interested in talking? Take a look at our CFP!

We are always interested in talks of all sorts, whether you are an experienced presenter, or are looking for a great place to give your first talk ever.


Brought to you by


Fancy planet w/ crescent 2 | -------------------------------------------------------------------------------- /website/_data/events.yml: -------------------------------------------------------------------------------- 1 | - dot_one: 2 | date: Jan 28th, 2021 3 | hosts: 4 | - daniel_kim 5 | - danny_ramos 6 | - mayra_navarro 7 | name: 🎂 v0.1 8 | event_text: The first Ruby Galaxy 9 | talks: 10 | - name: Beyond Ruby3 11 | author: Yukihiro "Matz" Matsumoto 12 | author_twitter: https://twitter.com/yukihiro_matz 13 | recording: https://www.youtube.com/watch?v=buhig8jr-Mo 14 | - name: Debugging Your Brain 15 | author: Casey Watts 16 | author_twitter: https://twitter.com/heycaseywattsup 17 | recording: https://www.youtube.com/watch?v=4OWxVtfM1U4 18 | - name: Git Rebase 19 | author: Brooke Kuhlmann 20 | author_twitter: https://twitter.com/bkuhlmann 21 | recording: https://www.youtube.com/watch?v=6NbtaML8GAg 22 | - name: Kaigi on Rails 23 | author: Okura Masafumi 24 | author_twitter: https://twitter.com/okuramasafumi 25 | recording: https://www.youtube.com/watch?v=QpuaX8N19no 26 | - name: Playing a Hand with Ruby Pattern Matching 27 | author: Brandon Weaver 28 | author_twitter: https://twitter.com/keystonelemur 29 | recording: https://www.youtube.com/watch?v=bO1bKuKclJs 30 | - dot_two: 31 | date: Feb 25th, 2021 32 | event_text: Interviews with OSS Maintainers 33 | hosts: 34 | - jonan_scheffler 35 | - rachael_wright_munn 36 | image: /assets/img/feb21social.jpg 37 | name: ✨ v0.2 38 | recording: https://www.twitch.tv/videos/928356075 39 | talks: 40 | - name: Open-Source Contributing 41 | author: Aaron Patterson 42 | author_twitter: https://twitter.com/tenderlove 43 | recording: https://www.youtube.com/watch?v=58N38JgpivQ 44 | - name: Sidekiq and Faktory 45 | author: Mike Perham 46 | author_twitter: https://twitter.com/getajobmike 47 | recording: https://www.youtube.com/watch?v=N5isXYght4Q 48 | - name: Being an Open Source Community Manager 49 | author: Christina Gorton 50 | author_twitter: https://twitter.com/coffeecraftcode 51 | recording: https://www.youtube.com/watch?v=xtJsvR_Lk98 52 | - dot_three: 53 | date: March 25th, 2021 54 | event_text: Ruby off the Rails 55 | description: This version will be all about "Ruby off the Rails"! 56 | hosts: 57 | - danny_ramos 58 | - rachael_wright_munn 59 | guests: 60 | - corey_haines 61 | - amir_rajan 62 | name: 🛸 v0.3 63 | talks: 64 | - name: Automate with Ruby 65 | author: Corey Haines 66 | author_twitter: https://twitter.com/coreyhaines 67 | recording: https://www.youtube.com/watch?v=bj-Wtk40gE8 68 | - name: DragonRuby Game Engine 69 | author: Amir Rajan 70 | author_twitter: https://twitter.com/amirrajan 71 | recording: https://www.youtube.com/watch?v=4_dqKoRUtDw 72 | - dot_four: 73 | name: v0.4 74 | date: April 29th, 2021 19:00 UTC 75 | description: CFP is closed. 76 | event_text: Ruby Galaxy April 🌌 77 | hosts: 78 | - danny_ramos 79 | - rachael_wright_munn 80 | guests: 81 | - joel_hawksley 82 | - brian_douglas 83 | - dan_moore 84 | talks: 85 | - name: ViewComponents in the Real World 86 | abstract: Rails 6.1 added support for rendering objects such as ViewComponents. In this talk, we’ll share what we’ve learned scaling to hundreds of ViewComponents in the GitHub application, open sourcing a library of ViewComponents, and nurturing a community around the project. 87 | author: Joel Hawksley 88 | author_bio: Joel is a software engineer at GitHub and the creator of ViewComponent. 89 | author_headshot: /assets/img/joel_h.png 90 | author_twitter: https://hawksley.org/ 91 | - name: Setup Ruby for GitHub Actions and MySpace 92 | abstract: DevOps goals have stayed the same over the year, but our tools, infrastructure, and operating models have changed. To support modern software delivery, organizations must establish and share proven developer workflows. This talk will focus on building an automated README with GitHub Actions. Plan to leave this talk with ideas on how you can automate new portions of your software development workflows, outside of CI/CD. 93 | author: Brian Douglas 94 | author_bio: Brian Douglas is a Developer Advocate at GitHub where he works on increasing use of the GitHub’s platform specific features (Ask him about GitHub Actions!) through technical content distributed on the internet. In addition to that, Brian has a passion open source and loves mentoring new contributors. 95 | author_headshot: /assets/img/bdougie.png 96 | author_twitter: https://twitter.com/bdougieYO 97 | - name: JSON Web Tokens and Decentralized Identity - What Ruby Developers Need To Know 98 | abstract: JSON Web Tokens (JWTs) provide verifiable identity in distributed systems and are usually generated by centralized identity providers. I’ll walk though how JWTs solve the decentralized identity problem for Ruby devs. Learn about JWT structure, how to use them and mistakes to avoid. 99 | author: Dan Moore 100 | author_bio: Dan is a developer of nearly 20 years. He's supported business critical applications as a team member, a contractor and a manager across a number of domains including real estate, horse racing and oil and gas. He's participated on five startups as a co-founder, employee or contractor (Homesphones, Formatdynamics, Vu, Katasi, The Food Corridor). He's helped organize Boulder Ruby since 2019. He's been an authorized Amazon Web Services instructor. He's worked with very small startups and companies like Oracle and Level 3. 101 | author_headshot: /assets/img/dan_moore.png 102 | author_twitter: https://twitter.com/mooreds 103 | - dot_five: 104 | name: v0.5 105 | date: May 27th, 2021 19:00 UTC 106 | description: CFP is open! 107 | event_text: Ruby Galaxy May 🌌 108 | hosts: 109 | - danny_ramos 110 | - rachael_wright_munn 111 | guests: 112 | talks: 113 | - dot_six: 114 | name: v0.6 115 | date: June 24th, 2021 19:00 UTC 116 | description: RubyCentral, RailsGirls, and mentorship. 117 | event_text: Ruby Galaxy July 🌌 118 | hosts: 119 | - rachael_wright_munn 120 | - kirk_haines 121 | guests: 122 | - megan_tiu 123 | - ramon_huidobro 124 | talks: 125 | - name: Ruby Central, Apprenticeships, and Ruby 126 | abstract: Megan Tiu talks about RubyCentral, Apprenticeships, Ruby, and their work with RailsGirls 127 | author: Megan Tiu 128 | author_headshot: /assets/img/megan_tiu.jpg 129 | author_twitter: https://twitter.com/megantiu 130 | - name: Conversation with Rails Girls Mentors 131 | abstract: Megan Tiu and Ramón Huidobro talk about RailsGirls and their mentorship experiences. 132 | author: Megan Tiu and Ramón Huidobro 133 | - name: "New Dev, Old Codebase: A Series of Mentorship Stories" 134 | abstract: Ramón Huidobro talks about his experiences with mentorship. 135 | author: Ramón Huidobro 136 | author_headshot: /assets/img/ramon_huidobro.jpg 137 | author_twitter: https://twitter.com/hola_soy_milk 138 | upcoming: true 139 | -------------------------------------------------------------------------------- /website/_sass/partials/_normalize.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 1. Set default font family to sans-serif. 3 | * 2. Prevent iOS and IE text size adjust after device orientation change, 4 | * without disabling user zoom. 5 | */ 6 | 7 | html { 8 | font-family: sans-serif; /* 1 */ 9 | -ms-text-size-adjust: 100%; /* 2 */ 10 | -webkit-text-size-adjust: 100%; /* 2 */ 11 | } 12 | 13 | /** 14 | * Remove default margin. 15 | */ 16 | 17 | body { 18 | margin: 0; 19 | } 20 | 21 | /* HTML5 display definitions 22 | ========================================================================== */ 23 | 24 | /** 25 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 26 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 27 | * and Firefox. 28 | * Correct `block` display not defined for `main` in IE 11. 29 | */ 30 | 31 | article, 32 | aside, 33 | details, 34 | figcaption, 35 | figure, 36 | footer, 37 | header, 38 | hgroup, 39 | main, 40 | menu, 41 | nav, 42 | picture, 43 | section, 44 | summary { 45 | display: block; 46 | } 47 | 48 | /** 49 | * 1. Correct `inline-block` display not defined in IE 8/9. 50 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 51 | */ 52 | 53 | audio, 54 | canvas, 55 | progress, 56 | video { 57 | display: inline-block; /* 1 */ 58 | vertical-align: baseline; /* 2 */ 59 | } 60 | 61 | /** 62 | * Prevent modern browsers from displaying `audio` without controls. 63 | * Remove excess height in iOS 5 devices. 64 | */ 65 | 66 | audio:not([controls]) { 67 | display: none; 68 | height: 0; 69 | } 70 | 71 | /** 72 | * Address `[hidden]` styling not present in IE 8/9/10. 73 | * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. 74 | */ 75 | 76 | [hidden], 77 | template { 78 | display: none; 79 | } 80 | 81 | /* Links 82 | ========================================================================== */ 83 | 84 | /** 85 | * Remove the gray background color from active links in IE 10. 86 | */ 87 | 88 | a { 89 | background-color: transparent; 90 | } 91 | 92 | /** 93 | * Improve readability of focused elements when they are also in an 94 | * active/hover state. 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 | -webkit-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 | border-radius: 5px; 261 | } 262 | 263 | /** 264 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 265 | */ 266 | 267 | button { 268 | overflow: visible; 269 | } 270 | 271 | /** 272 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 273 | * All other form control elements do not inherit `text-transform` values. 274 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 275 | * Correct `select` style inheritance in Firefox. 276 | */ 277 | 278 | button, 279 | select { 280 | text-transform: none; 281 | } 282 | 283 | /** 284 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 285 | * and `video` controls. 286 | * 2. Correct inability to style clickable `input` types in iOS. 287 | * 3. Improve usability and consistency of cursor style between image-type 288 | * `input` and others. 289 | */ 290 | 291 | button, 292 | html input[type="button"], /* 1 */ 293 | input[type="reset"], 294 | input[type="submit"] { 295 | -webkit-appearance: button; /* 2 */ 296 | cursor: pointer; /* 3 */ 297 | } 298 | 299 | /** 300 | * Re-set default cursor for disabled elements. 301 | */ 302 | 303 | button[disabled], 304 | html input[disabled] { 305 | cursor: default; 306 | } 307 | 308 | /** 309 | * Remove inner padding and border in Firefox 4+. 310 | */ 311 | 312 | button::-moz-focus-inner, 313 | input::-moz-focus-inner { 314 | border: 0; 315 | padding: 0; 316 | } 317 | 318 | /** 319 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 320 | * the UA stylesheet. 321 | */ 322 | 323 | input { 324 | line-height: normal; 325 | } 326 | 327 | /** 328 | * It's recommended that you don't attempt to style these elements. 329 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 330 | * 331 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 332 | * 2. Remove excess padding in IE 8/9/10. 333 | */ 334 | 335 | input[type="checkbox"], 336 | input[type="radio"] { 337 | -webkit-box-sizing: border-box; 338 | box-sizing: border-box; /* 1 */ 339 | padding: 0; /* 2 */ 340 | } 341 | 342 | /** 343 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 344 | * `font-size` values of the `input`, it causes the cursor style of the 345 | * decrement button to change from `default` to `text`. 346 | */ 347 | 348 | input[type="number"]::-webkit-inner-adjust-hue-button, 349 | input[type="number"]::-webkit-outer-adjust-hue-button { 350 | height: auto; 351 | } 352 | 353 | /** 354 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 355 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. 356 | */ 357 | 358 | input[type="search"] { 359 | -webkit-appearance: textfield; /* 1 */ 360 | -webkit-box-sizing: content-box; 361 | box-sizing: content-box; /* 2 */ 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 | } 428 | --------------------------------------------------------------------------------