diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f5974b0..6d71644 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -34,7 +34,7 @@ jobs: - name: Install ruby dependencies run: bundle install - name: Build site - run: bundle exec middleman build + run: bundle exec nanoc - name: Setup Pages id: pages uses: actions/configure-pages@v4 diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index dfb9355..0000000 --- a/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM ruby:3.3 -WORKDIR /app - -COPY Gemfile Gemfile.lock /app -RUN bundle install -RUN apt-get update && apt-get install -y nodejs - -COPY . /app -RUN bundle exec middleman build diff --git a/Gemfile b/Gemfile index 4149eff..1360250 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,12 @@ -source 'https://rubygems.org' +# frozen_string_literal: true -gem 'middleman', '~> 4.4' -# gem 'middleman-livereload', '~> 3.1.0', group: 'development' +source "https://rubygems.org" + +gem "nanoc", "~> 4.12" +gem "adsf", "~> 1.4" +gem "haml", "~> 6.3" +gem "sass", "~> 3.7" + +group :development do + gem "webrick", "~> 1.8" +end diff --git a/Gemfile.lock b/Gemfile.lock index eda9bba..d00d44d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,107 +1,105 @@ GEM remote: https://rubygems.org/ specs: - activesupport (7.0.8) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) - backports (3.24.1) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.12.2) + adsf (1.5.0) + rack (>= 1.0.0, < 4.0.0) + rackup (~> 2.1) + colored (1.2) concurrent-ruby (1.2.3) - contracts (0.17) - dotenv (2.8.1) - erubis (2.7.0) - execjs (2.9.1) - fast_blank (1.0.1) - fastimage (2.3.0) + cri (2.15.11) + ddmetrics (1.1.0) + ddplugin (1.0.3) + diff-lcs (1.5.1) ffi (1.16.3) haml (6.3.0) temple (>= 0.8.2) thor tilt - hamster (3.0.0) - concurrent-ruby (~> 1.0) - hashie (3.6.0) - i18n (1.6.0) - concurrent-ruby (~> 1.0) - kramdown (2.4.0) - rexml - listen (3.8.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - memoist (0.16.2) - middleman (4.5.0) - coffee-script (~> 2.2) - haml (>= 4.0.5) - kramdown (>= 2.3.0) - middleman-cli (= 4.5.0) - middleman-core (= 4.5.0) - middleman-cli (4.5.0) - thor (>= 0.17.0, < 2.0) - middleman-core (4.5.0) - activesupport (>= 6.1, < 7.1) - addressable (~> 2.4) - backports (~> 3.6) - bundler (~> 2.0) - contracts (~> 0.13) - dotenv - erubis - execjs (~> 2.0) - fast_blank - fastimage (~> 2.0) - hamster (~> 3.0) - hashie (~> 3.4) - i18n (~> 1.6.0) - listen (~> 3.0) - memoist (~> 0.14) - padrino-helpers (~> 0.15.0) - parallel - rack (>= 1.4.5, < 3) - sassc (~> 2.0) - servolux - tilt (~> 2.0.9) - toml - uglifier (~> 3.0) - webrick - minitest (5.21.2) - padrino-helpers (0.15.3) - i18n (>= 0.6.7, < 2) - padrino-support (= 0.15.3) - tilt (>= 1.4.1, < 3) - padrino-support (0.15.3) + immutable-ruby (0.1.0) + concurrent-ruby (~> 1.1) + sorted_set (~> 1.0) + json_schema (0.21.0) + memo_wise (1.8.0) + nanoc (4.12.19) + addressable (~> 2.5) + colored (~> 1.2) + nanoc-checking (~> 1.0, >= 1.0.2) + nanoc-cli (= 4.12.19) + nanoc-core (= 4.12.19) + nanoc-deploying (~> 1.0) + parallel (~> 1.12) + tty-command (~> 0.8) + tty-which (~> 0.4) + nanoc-checking (1.0.2) + nanoc-cli (~> 4.12, >= 4.12.4) + nanoc-core (~> 4.12, >= 4.12.4) + nanoc-cli (4.12.19) + cri (~> 2.15) + diff-lcs (~> 1.3) + nanoc-core (= 4.12.19) + zeitwerk (~> 2.1) + nanoc-core (4.12.19) + concurrent-ruby (~> 1.1) + ddmetrics (~> 1.0) + ddplugin (~> 1.0) + immutable-ruby (~> 0.1) + json_schema (~> 0.19) + memo_wise (~> 1.5) + psych (>= 4.0, < 6.0) + slow_enumerator_tools (~> 1.0) + tty-platform (~> 0.2) + zeitwerk (~> 2.1) + nanoc-deploying (1.0.2) + nanoc-checking (~> 1.0) + nanoc-cli (~> 4.11, >= 4.11.15) + nanoc-core (~> 4.11, >= 4.11.15) parallel (1.24.0) - parslet (2.0.0) + pastel (0.8.0) + tty-color (~> 0.5) + psych (5.1.2) + stringio public_suffix (5.0.4) - rack (2.2.8) + rack (3.0.9.1) + rackup (2.1.0) + rack (>= 3) + webrick (~> 1.8) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rexml (3.2.6) - sassc (2.4.0) - ffi (~> 1.9) - servolux (0.13.0) + rbtree (0.4.6) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + set (1.1.0) + slow_enumerator_tools (1.1.0) + sorted_set (1.0.3) + rbtree + set (~> 1.0) + stringio (3.1.0) temple (0.10.3) - thor (1.3.0) - tilt (2.0.11) - toml (0.3.0) - parslet (>= 1.8.0, < 3.0.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - uglifier (3.2.0) - execjs (>= 0.3.0, < 3) + thor (1.3.1) + tilt (2.3.0) + tty-color (0.6.0) + tty-command (0.10.1) + pastel (~> 0.8) + tty-platform (0.3.0) + tty-which (0.5.0) webrick (1.8.1) + zeitwerk (2.6.13) PLATFORMS - ruby + x86_64-linux DEPENDENCIES - middleman (~> 4.4) + adsf (~> 1.4) + haml (~> 6.3) + nanoc (~> 4.12) + sass (~> 3.7) + webrick (~> 1.8) BUNDLED WITH 2.3.24 diff --git a/Procfile b/Procfile deleted file mode 100644 index 7a259b8..0000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: bundle exec puma -p $PORT -e $RACK_ENV \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 6f1320c..0000000 --- a/README.md +++ /dev/null @@ -1,20 +0,0 @@ -### ValenciaDevops Middleman - -#### Website of the meetup ValenciaDevops made with Middleman - -Resources: -- Middleman https://middlemanapp.com/ -- Normalize http://necolas.github.io/normalize.css/ - -Authors: -- Jose Luis Salas -- Omar Lopez -- Tony Camaiani http://tony.camaiani.me/ - -Contributors: -- Salva Ferrando -- Cesar Saez - -#### Developing - -`NO_CONTRACTS=true bundle exec middleman serve` diff --git a/Rules b/Rules new file mode 100644 index 0000000..d9cd5e0 --- /dev/null +++ b/Rules @@ -0,0 +1,43 @@ +#!/usr/bin/env ruby + +# compile '/**/*.html' do +# layout '/default.*' +# +# if item.identifier =~ '**/index.*' +# write item.identifier.to_s +# else +# write item.identifier.without_ext + '/index.html' +# end +# end + +# This is an example rule that matches Markdown (.md) files, and filters them +# using the :kramdown filter. It is commented out by default, because kramdown +# is not bundled with Nanoc or Ruby. +# +# compile '/**/*.md' do +# filter :kramdown +# layout '/default.*' +# +# if item.identifier =~ '**/index.*' +# write item.identifier.without_ext + '.html' +# else +# write item.identifier.without_ext + '/index.html' +# end +# end + +compile '/**/*.haml' do + filter :haml + layout '/default.*' + write item.identifier.without_ext + '.html' +end + +compile '/**/stylesheets/*.scss' do + next if item.identifier.to_s.split("/").last =~ /^_/ # pass partials nested in folders + + filter :sass, syntax: :scss + write item.identifier.without_ext +end + +passthrough '/**/*' + +layout '/**/*', :haml, format: :html5 diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index 7c6246f..0000000 --- a/Vagrantfile +++ /dev/null @@ -1,87 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : -#Olopez -# This file builds middleman environment in ubuntu. - -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for -# backwards compatibility). Please don't change it unless you know what -# you're doing. -Vagrant.configure(2) do |config| - # The most common configuration options are documented and commented below. - # For a complete reference, please see the online documentation at - # https://docs.vagrantup.com. - - # Every Vagrant development environment requires a box. You can search for - # boxes at https://atlas.hashicorp.com/search. - config.vm.box = "ubuntu/trusty64" - - # Disable automatic box update checking. If you disable this, then - # boxes will only be checked for updates when the user runs - # `vagrant box outdated`. This is not recommended. - # config.vm.box_check_update = false - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine. In the example below, - # accessing "localhost:8080" will access port 80 on the guest machine. - config.vm.network "forwarded_port", guest: 4567, host: 8181 - - # Create a private network, which allows host-only access to the machine - # using a specific IP. - # config.vm.network "private_network", ip: "192.168.33.10" - - # Create a public network, which generally matched to bridged network. - # Bridged networks make the machine appear as another physical device on - # your network. - # config.vm.network "public_network" - - # Share an additional folder to the guest VM. The first argument is - # the path on the host to the actual folder. The second argument is - # the path on the guest to mount the folder. And the optional third - # argument is a set of non-required options. - # config.vm.synced_folder "../data", "/vagrant_data" - - # Provider-specific configuration so you can fine-tune various - # backing providers for Vagrant. These expose provider-specific options. - # Example for VirtualBox: - # - # config.vm.provider "virtualbox" do |vb| - # # Display the VirtualBox GUI when booting the machine - # vb.gui = true - # - # # Customize the amount of memory on the VM: - # vb.memory = "1024" - # end - # - # View the documentation for the provider you are using for more - # information on available options. - - # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies - # such as FTP and Heroku are also available. See the documentation at - # https://docs.vagrantup.com/v2/push/atlas.html for more information. - # config.push.define "atlas" do |push| - # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" - # end - - # Enable provisioning with a shell script. Additional provisioners such as - # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the - # documentation for more information about their specific syntax and use. - config.vm.provision "shell", inline: <<-SHELL - sudo apt-get -y update - sudo apt-get -y install git ruby libgdbm-dev libncurses5-dev automake libtool bison libffi-dev - nodejs - #Install ruby environment - curl -sSL https://rvm.io/mpapis.asc | gpg --import - - curl -L https://get.rvm.io | bash -s stable - sudo "source ~/.rvm/scripts/rvm" - echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc - sudo /usr/local/rvm/bin/rvm install 2.1.5 - rvm 2.1.5 --default - sudo chown -R vagrant:vagrant /usr/local/rvm/gems/ - gem install middleman - git clone https://github.com/valenciadevops/valenciadevops-middleman.git - cd ~/valenciadevops-middleman - bundle install - middleman build - SHELL -end diff --git a/config.rb b/config.rb deleted file mode 100644 index 7f43bfb..0000000 --- a/config.rb +++ /dev/null @@ -1,86 +0,0 @@ -### -# Compass -### - -# Change Compass configuration -# compass_config do |config| -# config.output_style = :compact -# end - -### -# Page options, layouts, aliases and proxies -### - -# Per-page layout changes: -# -# With no layout -# page "/path/to/file.html", :layout => false -# -# With alternative layout -# page "/path/to/file.html", :layout => :otherlayout -# -# A path which all have the same layout -# with_layout :admin do -# page "/admin/*" -# end - -# Proxy pages (http://middlemanapp.com/basics/dynamic-pages/) -# proxy "/this-page-has-no-template.html", "/template-file.html", :locals => { -# :which_fake_page => "Rendering a fake page with a local variable" } - -### -# Helpers -### - -# Automatic image dimensions on image_tag helper -# activate :automatic_image_sizes - -# Reload the browser automatically whenever files change -# activate :livereload - -# Methods defined in the helpers block are available in templates -helpers do - def is_page_selected(page) - current_page.url == page ? "selected" : '' - end - - def twitter_url(username) - "@#{username}" - end - -# def some_helper -# "Helping" -# end -end - -set :css_dir, 'stylesheets' - -set :js_dir, 'javascripts' - -set :images_dir, 'images' - -set :haml, format: :html5 - -activate :directory_indexes - -# Build-specific configuration -configure :build do - # For example, change the Compass output style for deployment - activate :minify_css - - # Minify Javascript on build - activate :minify_javascript - - # Enable cache buster - activate :asset_hash - - # Use relative URLs - activate :relative_assets - - # Or use a different image path - # set :http_prefix, "/Content/images/" - - # Use custom assets host to point to CDN or S3 - activate :asset_host, host: "//#{ENV['ASSET_HOST']}" if ENV['ASSET_HOST'] - activate :gzip -end diff --git a/content/event.haml b/content/event.haml new file mode 100755 index 0000000..68a88b1 --- /dev/null +++ b/content/event.haml @@ -0,0 +1,20 @@ +--- +title: ¿Que es? +--- + +%main{:role => "main"} + %section + %h2.title= data.static[:event_title] + %p + %b= data.static[:event_def_text_1] + = data.static[:event_def_text_2] + %cite + %a{href: data.static[:event_def_source_url], target: "_blank"} #{data.static[:event_def_source_text]} + + %p!= data.static[:event_text_1] + %p!= data.static[:event_text_2] + %p!= data.static[:event_text_3] + + %p + = data.static[:event_text_4] + %a{href: "mailto:#{data.static[:participate_email]}"} #{data.static[:participate_email]} diff --git a/source/favicon.ico b/content/favicon.ico similarity index 100% rename from source/favicon.ico rename to content/favicon.ico diff --git a/source/fonts/rambla-v4-latin-regular.woff b/content/fonts/rambla-v4-latin-regular.woff similarity index 100% rename from source/fonts/rambla-v4-latin-regular.woff rename to content/fonts/rambla-v4-latin-regular.woff diff --git a/source/fonts/rambla-v4-latin-regular.woff2 b/content/fonts/rambla-v4-latin-regular.woff2 similarity index 100% rename from source/fonts/rambla-v4-latin-regular.woff2 rename to content/fonts/rambla-v4-latin-regular.woff2 diff --git a/source/humans.txt b/content/humans.txt similarity index 100% rename from source/humans.txt rename to content/humans.txt diff --git a/source/images/ico_hangout.png b/content/images/ico_hangout.png similarity index 100% rename from source/images/ico_hangout.png rename to content/images/ico_hangout.png diff --git a/source/images/logo.png b/content/images/logo.png similarity index 100% rename from source/images/logo.png rename to content/images/logo.png diff --git a/source/images/logo_small.png b/content/images/logo_small.png similarity index 100% rename from source/images/logo_small.png rename to content/images/logo_small.png diff --git a/source/images/partners/.gitignore b/content/images/partners/.gitignore similarity index 100% rename from source/images/partners/.gitignore rename to content/images/partners/.gitignore diff --git a/source/images/partners/logo_fw.png b/content/images/partners/logo_fw.png similarity index 100% rename from source/images/partners/logo_fw.png rename to content/images/partners/logo_fw.png diff --git a/source/index.html.haml b/content/index.haml similarity index 53% rename from source/index.html.haml rename to content/index.haml index 9c8a398..28d6e57 100644 --- a/source/index.html.haml +++ b/content/index.haml @@ -4,18 +4,18 @@ title: A meetup for the new wave of Developers and Sysadmins - active = data.static[:ready] - if active - - homepage = data.new.meetup + - homepage = data.new[:meetup] - else - - homepage = data.default.meetup + - homepage = data.default[:meetup] -- type = homepage.type +- type = homepage[:type] %main{:role => "main"} %p.main_paragraph = data.static[:main_paragraph_text_1] - = link_to data.static[:partner_name], data.static[:partner_url], :title => data.static[:partner_url_title], :target => "_blank" + %a{href: data.static[:partner_url], :title => data.static[:partner_url_title], :target => "_blank"} #{data.static[:partner_name]} = data.static[:main_paragraph_text_2] - = link_to data.static[:main_paragraph_link_text], "event.html" + %a{href: "event.html" } #{data.static[:main_paragraph_link_text]} %h2.title - if active @@ -27,28 +27,28 @@ title: A meetup for the new wave of Developers and Sysadmins = data.static[:day_hour] - else = 'Únete a nuestra comunidad en ' - = link_to 'meetup', data.static[:meetup_url], target: '_blank' + %a{href: data.static[:meetup_url], target: '_blank' } meetup %section{:class => "#{type}"} - - homepage.talks.each do |f| + - homepage[:talks].each do |f| %article %h3= f[:title] - - f.text.each do |t| + - f[:text].each do |t| %p!= t - if active - - f.author.each do |t| + - f[:author].each do |t| %p = t[:name] = twitter_url(t[:twitter]) = t[:bio] - - if homepage.sponsor + - if homepage[:sponsor] %div %h3= data.static[:sponsor] - = link_to image_tag("sponsors/"+homepage.sponsor[:image]), homepage.sponsor[:url], :title => homepage.sponsor[:name], :target => "_blank" + %a{href: homepage.sponsor[:url], title: homepage.sponsor[:name], target: "_blank"} image_tag("sponsors/"+homepage.sponsor[:image]) - if active .call_to_action - = link_to data.static[:attend_text], homepage[:eventbrite], :class => "button", :target => "_blank" + %a{href: homepage[:eventbrite], class: "button", target: "_blank"} data.static[:attend_text] %small.caption= data.static[:attend_subtext] diff --git a/content/past.haml b/content/past.haml new file mode 100755 index 0000000..2099712 --- /dev/null +++ b/content/past.haml @@ -0,0 +1,40 @@ +--- +title: Los eventos anteriores +--- + +%main{:role => "main"} + %h2.title + %a{href: "https://www.youtube.com/@valenciadevops", target: "_blank"} Eventos anteriores en youtube + + %h2= data.static[:past_title] + + - data.archive[:meetups].each do |m| + %h2.section_title + + = m[:date] + + - if m[:hangout_url] + %a{href: m[:hangout_url], class: "ico hangout", target: "_blank"} #{m[:hangout_url]} + + %section{:class => "#{m[:type]}"} + - m[:talks].each do |f| + %article + %h3= f[:title] + - f[:author].each do |t| + %p + = t[:name] + - twitter_handle = t[:twitter] ? "@#{t[:twitter]}" : "" + %a{href: "https://twitter.com/#{t[:twitter]}", target: "_blank"} #{twitter_handle} + + - f[:text].each do |t| + %p= t + + - if f[:links] + - f[:links].each do |t| + %p.links + %a{href: t[:url], target: "_blank"} #{t[:label]} + + - if m[:sponsor] + %div + %h3= data.static[:sponsor] + %a{href: m[:sponsor][:url], title: n[:sponsor][:name], target: "_blank"} image_tag("sponsors/"+m[:sponsor][:image]) diff --git a/source/robots.txt b/content/robots.txt similarity index 100% rename from source/robots.txt rename to content/robots.txt diff --git a/source/stylesheets/_mixins.scss b/content/stylesheets/_mixins.scss similarity index 100% rename from source/stylesheets/_mixins.scss rename to content/stylesheets/_mixins.scss diff --git a/source/stylesheets/_normalize.scss b/content/stylesheets/_normalize.scss similarity index 100% rename from source/stylesheets/_normalize.scss rename to content/stylesheets/_normalize.scss diff --git a/source/stylesheets/_rambla.scss b/content/stylesheets/_rambla.scss similarity index 100% rename from source/stylesheets/_rambla.scss rename to content/stylesheets/_rambla.scss diff --git a/source/stylesheets/_variables.scss b/content/stylesheets/_variables.scss similarity index 100% rename from source/stylesheets/_variables.scss rename to content/stylesheets/_variables.scss diff --git a/source/stylesheets/all.css.scss b/content/stylesheets/all.css.scss similarity index 96% rename from source/stylesheets/all.css.scss rename to content/stylesheets/all.css.scss index 3daf4fc..187042c 100644 --- a/source/stylesheets/all.css.scss +++ b/content/stylesheets/all.css.scss @@ -7,10 +7,10 @@ //// General styles body { - font-family: $font_family; - background: $background_color_body; - font-size: 1em; - line-height: 1.4; + font-family: $font_family; + background: $background_color_body; + font-size: 1em; + line-height: 1.4; } html { overflow-y: scroll; } @@ -41,12 +41,12 @@ header { hgroup { @include clearfix;} h1 { - width: 300px; - line-height: 46px; - color: $text_header_color; - margin: 10px auto 5px; - background: url(/images/logo_small.png) top center no-repeat; - padding: 56px 0 0; + width: 300px; + line-height: 46px; + color: $text_header_color; + margin: 10px auto 5px; + background: url(/images/logo_small.png) top center no-repeat; + padding: 56px 0 0; a, a:hover, a:visited { color: $text_header_color; text-decoration: none; } span { @@ -58,7 +58,7 @@ header { margin: 0 0 0 170px; display: block; } - } // h1 + } // h1 h2 { font-weight: 400; diff --git a/data/new.yml b/data/new.yml deleted file mode 100644 index 732095c..0000000 --- a/data/new.yml +++ /dev/null @@ -1,14 +0,0 @@ -meetup: - date: "16 de Mayo de 2019" - type: "simple" - eventbrite: "http://meetu.ps/e/GFHhL/t4kZZ/f" - talks: - - title: "Running containers in the cloud without Kubernetes" - text: - - "Why running containers in the cloud without Kubernetes? Kubernetes as any distributed system is complex and it has an operational costs. Can we save that complexity and operational cost with smaller or managed alternatives? Can cloud providers manage that complexity for us? Omar will talk about Fargate and Cloud Run as alternatives to Kubernetes to handle container workload in production." - - "Session will be in Spanish" - - author: - - name: "Omar Lopez" - twitter: "olopez" - bio: "SRE at Flywire" diff --git a/source/layouts/layout.haml b/layouts/default.haml similarity index 86% rename from source/layouts/layout.haml rename to layouts/default.haml index 55c94be..31379a3 100644 --- a/source/layouts/layout.haml +++ b/layouts/default.haml @@ -4,7 +4,7 @@ %meta{:charset => "utf-8"}/ %meta{:content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible"}/ %title - \DevOps Valencia: #{current_page.data.title} + \DevOps Valencia: #{@item[:title]} %meta{:content => "DevOps Valencia es una reunión mensual centrada en temas de operaciones, automatizacion y desarrollo", :name => "description"}/ %meta{:content => "Devops Valencia crew", :name => "author"}/ %meta{:content => "width=device-width", :name => "viewport"}/ @@ -14,7 +14,7 @@ %meta{:content => "DevOps Valencia es una reunión mensual centrada en temas de operaciones, automatizacion y desarrollo", :property => "og:description"}/ %link{rel: "preload", as: "font", href: "/fonts/rambla-v4-latin-regular.woff", type: "font/woff", crossorigin: true} %link{rel: "preload", as: "font", href: "/fonts/rambla-v4-latin-regular.woff2", type: "font/woff2", crossorigin: true} - = stylesheet_link_tag "all" + %link{:rel=>"stylesheet", :type => "text/css", :href => "/stylesheets/all.css", :media => "screen"} %script{ "type": "text/javascript", "async": true, @@ -27,6 +27,6 @@ gtag('config', 'G-C02YHY1S14'); %body - = partial 'partials/header' - = yield - = partial 'partials/footer' + != render '/partials/_header.*' + != yield + != render '/partials/_footer.*' diff --git a/layouts/partials/_footer.haml b/layouts/partials/_footer.haml new file mode 100644 index 0000000..fb58b51 --- /dev/null +++ b/layouts/partials/_footer.haml @@ -0,0 +1,23 @@ +%footer + .fgroup + .first + %h3= data.static[:participate] + %p + =data.static[:participate_how] + %a{href: "mailto:#{data.static[:participate_email]}"} #{data.static[:participate_email]} + + .middle + %h3= data.static[:follow] + %p + %a{href: data.static[:twitter_url], title: "#{data.static[:twitter_account]} on Twitter", target: "_blank"} #{data.static[:twitter_account]} + %p + %a{href: "https://twitter.com/search?q=%23#{data.static[:twitter_hashtag]}", title: "Hashtag ##{data.static[:twitter_hashtag]}", target: "_blank"} ##{data.static[:twitter_hashtag]} + %p + %a{href: "https://www.youtube.com/@#{data.static[:twitter_account]}", title: "Youtube channel", target: "_blank"} #{data.static[:twitter_hashtag]} youtube + %p + %a{href: "https://www.meetup.com/valencia-devops", title: "Meetup group", target: "_blank"} valencia-devops meetup + + .last + %h3= data.static[:partner] + %p + %a{href: data.static[:partner_url], title: data.static[:partner_url_title], class: "partner ir", target: "_blank"} data.static[:partner_name] diff --git a/layouts/partials/_header.haml b/layouts/partials/_header.haml new file mode 100644 index 0000000..b3b5b12 --- /dev/null +++ b/layouts/partials/_header.haml @@ -0,0 +1,18 @@ +%header + %hgroup + %h1 + %a{href: "/", title: data.static[:h1_title]} #{data.static[:h1_logo_text]} + %span= data.static[:h1_logo_subtext] + + %h2 + = data.static[:h2_scream_line_1] + %span= data.static[:h2_scream_line_2] + %span= data.static[:h2_scream_line_3] + + %nav + %ul + %li + %a{href: "/event.html", title: data.static[:nav_page_1_title], class: is_page_selected("/event")} #{data.static[:nav_page_1]} + %li + %a{href: "/past.html", title: data.static[:nav_page_2_title], class: is_page_selected("/past")} #{data.static[:nav_page_2]} + diff --git a/lib/helpers.rb b/lib/helpers.rb new file mode 100644 index 0000000..526455a --- /dev/null +++ b/lib/helpers.rb @@ -0,0 +1,22 @@ +require "yaml" + +use_helper Nanoc::Helpers::Rendering + +def is_page_selected(page) + @item.identifier.without_ext == page ? "selected" : "" +end + +class Data + def method_missing(method_name, *arguments, &block) + YAML.safe_load_file(File.join(File.expand_path("..", __dir__), "data", "#{method_name}.yml"), symbolize_names: true) + end + + def respond_to_missing?(method_name, include_private = false) + File.exist?(File.join(File.expand_path("..", __dir__), "data", "#{method_name}.yml")) || super + true + end +end + +def data + Data.new +end diff --git a/nanoc.yaml b/nanoc.yaml new file mode 100644 index 0000000..3c6e54e --- /dev/null +++ b/nanoc.yaml @@ -0,0 +1,11 @@ +# A list of file extensions that Nanoc will consider to be textual rather than +# binary. If an item with an extension not in this list is found, the file +# will be considered as binary. +text_extensions: [ 'adoc', 'asciidoc', 'atom', 'coffee', 'css', 'erb', 'haml', 'handlebars', 'hb', 'htm', 'html', 'js', 'less', 'markdown', 'md', 'ms', 'mustache', 'php', 'rb', 'rdoc', 'sass', 'scss', 'slim', 'tex', 'txt', 'xhtml', 'xml' ] + +prune: + auto_prune: true + +data_sources: + - type: filesystem + encoding: utf-8 diff --git a/output/event.html b/output/event.html new file mode 100644 index 0000000..6457319 --- /dev/null +++ b/output/event.html @@ -0,0 +1,107 @@ + + + + + + +DevOps Valencia: ¿Que es? + + + + + + + + + + + + + + + +
+
+

+DevOps +Valencia +

+

+A meetup for +the new wave of +Developers and Sysadmins +

+ +
+
+ +
+
+

¿Qué es DevOps Valencia?

+

+“DevOps” +is a software development method that stresses communication, collaboration, and integration between software developers and Information Technology (IT) professionals + +Wikipedia + +

+

Esta definición resume en muy pocas palabras lo que entendemos por DevOps, una filosofía de trabajo entre los departamentos de desarollo, sistemas y operaciones.

+

En DevOps Valencia trataremos temas relacionados con herramientas y flujos de desarollo, desde el comienzo hasta la puesta en producción de la aplicación.

+

En cada reunión comenzaremos con una charla temática de aproximadamente cuarenta y cinco minutos, y los demás asistentes podrán intervenir aportando sus experiecias o preguntas. El objetivo es que las charlas sean lo más dinámicas e interactivas posible.

+

+Por eso, pedimos a todos los interesados que propongan nuevas charlas y participen activamente en los próximos meetups. Si eres desarollador, administrador de sistemas o te dedicas a las operaciones y quieres colaborar con nosotros, escríbenos a +valenciadevops@gmail.com +

+
+
+ + + + + diff --git a/output/fonts/rambla-v4-latin-regular.woff b/output/fonts/rambla-v4-latin-regular.woff new file mode 100644 index 0000000..a7b4b0a Binary files /dev/null and b/output/fonts/rambla-v4-latin-regular.woff differ diff --git a/output/fonts/rambla-v4-latin-regular.woff2 b/output/fonts/rambla-v4-latin-regular.woff2 new file mode 100644 index 0000000..4861791 Binary files /dev/null and b/output/fonts/rambla-v4-latin-regular.woff2 differ diff --git a/output/images/ico_hangout.png b/output/images/ico_hangout.png new file mode 100644 index 0000000..64fcd42 Binary files /dev/null and b/output/images/ico_hangout.png differ diff --git a/output/images/logo.png b/output/images/logo.png new file mode 100644 index 0000000..44f2db8 Binary files /dev/null and b/output/images/logo.png differ diff --git a/output/images/logo_small.png b/output/images/logo_small.png new file mode 100644 index 0000000..03cb030 Binary files /dev/null and b/output/images/logo_small.png differ diff --git a/output/images/partners/logo_fw.png b/output/images/partners/logo_fw.png new file mode 100644 index 0000000..0f25d1e Binary files /dev/null and b/output/images/partners/logo_fw.png differ diff --git a/output/index.html b/output/index.html new file mode 100644 index 0000000..9c5bf55 --- /dev/null +++ b/output/index.html @@ -0,0 +1,107 @@ + + + + + + +DevOps Valencia: A meetup for the new wave of Developers and Sysadmins + + + + + + + + + + + + + + + +
+
+

+DevOps +Valencia +

+

+A meetup for +the new wave of +Developers and Sysadmins +

+ +
+
+ +
+

+En DevOps Valencia nos reunimos cada mes para compartir conocimientos y novedades relacionados con temas de herramientas y flujos para el desarrollo y con despliegue de aplicaciones. Nos encontramos aproximadamente una vez al mes en la zona de Bar en +Flywire +, situado en Calle del Grabador Esteve, 14 bajo izquierda (Valencia). +¿Quieres saber más? +

+

+Únete a nuestra comunidad en +meetup +

+
+
+

Espacio libre

+

¿Tienes algo interesante que contar sobre temas de operaciones, desarrollo, infraestrucutura y administración de sistemas y te gustaría compartirlo con nosotros?

+

Envíanos un correo a valenciadevops@gmail.com o contáctanos por twitter

+
+
+
+ + + + + diff --git a/output/past.html b/output/past.html new file mode 100644 index 0000000..e4338cd --- /dev/null +++ b/output/past.html @@ -0,0 +1,377 @@ + + + + + + +DevOps Valencia: Los eventos anteriores + + + + + + + + + + + + + + + +
+
+

+DevOps +Valencia +

+

+A meetup for +the new wave of +Developers and Sysadmins +

+ +
+
+ +
+

+Eventos anteriores en youtube +

+

Meetups anteriores

+

+ +20 de Febrero de 2019 +https://youtu.be/9PA5AvL7bBo +

+
+
+

DevOps, una visión amplia

+

+Jacobo García López de Araujo +@quantum_flexor +

+

En esta ocasión contaremos con Jacobo García, fundador de la primera comunidad DevOps en España, cuenta con 12 años de experiencia trabajando en departamentos de operaciones en empresas como Cabify, BeBanjo o DNSimple.

+

En esta charla nos explicara su vision personal del concepto DevOPS.

+

Jacobo ha creado un curso donde en 16 semanas detalla que es DevOPS. Flywire concederá una beca para este curso entre los miembros de la comunidad.

+
+
+

+ +20 de Marzo de 2018 +http://youtu.be/hh7_RZtqrrU +

+
+
+

2gether - A modern architecture to replace the traditional banking system

+

+Rafael Ríos Moya +@ganchix +

+

+Víctor Dertiano + +

+

2gether es una plataforma basada en Big Data, Inteligencia Artificial, Machine Learning y Blockchain que pretende reemplazar la estructura bancaria tradicional. Permite a los usuarios y empresas administrar automáticamente su economía personal utilizando una interfaz de usuario única y acceder a un mercado de productos y servicios financieros proporcionados por Fintech y bancos de todo el mundo.

+

Tecnologías como Ethereum, Docker, Kubernetes, Spring Cloud, Spark y un largo etc.. han sido usadas para construirlo.

+

En este Meetup explicaremos como hemos usados estas herramientas y qué decisiones hemos debido tomar para crear una plataforma tan ambiciosa como es 2gether.

+
+
+

+ +12 de Septiembre de 2017 +https://youtu.be/p9rdVKJd85w +

+
+
+

Desarrollo de aplicaciones con Openshift

+

+Sergio Garcia +@Soukron +

+

La charla pretende mostrar el uso de la plataforma como servicio (PaaS) Openshift Origin desde el punto de vista de un desarrollador.

+

Se mostrará cómo realizar la instalación de un entorno local de desarrollo bajo Openshift, en el que se partirá de una aplicación existente a la que se le harán modificaciones y se desplegará en contendores.

+

Además, se mostrará como desplegar esa aplicación en otro cluster diferente, donde se realizará la promoción automática (o no) entre entornos hasta su despliegue final en producción. Este despliegue se mostrará usando distintos métodos: A/B, Blue-Green y Canary.

+
+
+

+ +13 de Junio de 2017 +https://youtu.be/p0mQuWtJkBE +

+
+
+

Prometheus is good for your small startup

+

+Nacho Pérez Carretero +@carretops +

+

ShuttleCloud is a small startup specialized in email and contacts migrations. We developed a reliable migration platform in high availability used by clients like Gmail, GContacts and Comcast. For example, Gmail alone has imported data for 3 million users with our API and we process hundreds of terabytes every month.

+

In this talk we’ll explain our journey from having near-zero monitoring to having all of our infrastructure monitored with the necessary metrics and alerts. We will share with the audience some of the mistakes we did and what lessons we have learned. We currently have around 200 instances monitored with a comfortable cost-effective in-house monitoring stack based on Prometheus.

+

We want to demonstrate that you don’t need to have a big fleet to embrace Prometheus and that it is a non-expensive solution for monitoring.

+
+
+

+ +19 de Abril de 2017 +https://youtu.be/069LkKL93U4 +

+
+
+

Kubernetes Immersion

+

+Juan Larriba +@compilemymind +

+

Kubernetes seems to be the biggest buzz word currently in the DevOps world. The Google designed container orchestrator based in their 10+ years of experience running production applications using containers seems to have positioned as the market leader. Open source, available in both Google Cloud and Azure container platforms or as a custom installation, it is ready to receive production loads. During this talk we will discover how does Kubernetes works, its architecture, what components compose a Kubernetes cluster. We will also learn what objects can a developer use to deploy its applications on a Kubernetes cluster. We will see a live demo where we will deploy an application and then introduce changes to it without any downtime.

+
+
+

+ +14 de Diciembre de 2016 +https://youtu.be/kzW-PnrKPCA +

+
+
+

The state of the (cloud native application) industry and what VMware is doing in the space

+

+Massimo Re Ferre +@mreferre +

+

We will start talking about the state of the cloud native applications industry (vendors, projects, frictions etc) and we will then dive a little bit deeper into what projects Vmware is working on to solve problems in that space. Most if not all of the projects presented are open source and already available for people to play with. The projects we will cover (with various degrees of details) are: vSphere Integrated Containers, Harbor and Admiral, Photon Platform.

+
+
+

+ +16 de Junio de 2016 +

+
+
+

Desplegando con <a href='https://saltstack.com/' target='_blank'>Saltstack</a>

+

+David Bolufer & José Vicente Blasco +@onestic +

+

Esta edición del evento la celebremos en las oficinas de Onestic. Más información en la página del meetup

+

Contaremos nuestra experiencia creando un cloud público totalmente automatizado para Cofares, donde ellos gestionan el ciclo completo de vida de los servidores. Desde la creación, despliegue de código y cargas de datos, pasando por el mantenimiento y finalizando con la destrucción. Todo ello orquestado usando Saltstack y salt cloud.

+
+
+

+ +18 de Mayo de 2016 +https://www.youtube.com/watch?v=-fpB6NjSjyU +

+
+
+

Simple CI/CD with Strider

+

+David Lluna +@llunatweets +

+

Strider-CD is a CD/CI platform based on node.js and MongoDB and we are going to walk trough all it's functionalities by doing an installation from scratch. As use example, we will build and test some Opensource projects

+
+
+

+ +19 de Abril de 2016 +https://www.youtube.com/watch?v=fucVZVeqx3U +

+
+
+

Consul, introduccion al descubrimiento de servicios

+

+Omar Lopez +@olopez +

+

En esta charla/workshop, daremos un breve repaso al descurbirmiento de servicios en un sistema distribuido, mediante el software de Hashicorp Consul. Posteriormente intentaremos plasmar lo aprendido, para ello, lo mejor es que traigas tu PC y una cuenta de Digital Ocean con saldo suficiente para arrancar una instancia de Docker por un par de horas

+ +
+
+

+ +30 de Noviembre de 2015 +https://youtu.be/xkipgsvlb68 +

+
+
+

SSL/TLS and digital certificates

+

+Cesar Saez +@krizio +

+

Repaso a conceptos básicos de una PKI y conceptos relacionados con certificados digitales y usos prácticos.

+ +
+
+

+ +14 de octubre de 2015 +https://www.youtube.com/watch?v=Ge53xxcjmgE +

+
+
+

Monitoring 101

+

+Omar Lopez +@olopez +

+

Introduction to monitoring principles

+
+
+

+ +17 de Junio de 2015 +https://www.youtube.com/watch?v=vuQUGsVhvpU +

+
+
+

Foreman

+

+Javier Vela +@jvdiago +

+

Introduction to Foreman, an application to manage the servers lifecycle, from provisioning to configuration and in the end, decommission.

+
+
+

+ +26 de mayo de 2015 +https://www.youtube.com/watch?v=Gs8YP7r81zM +

+
+
+

HangOps: Monitorización

+

+Jose Luis Salas +@josacar +

+

+Omar Lopez +@olopez +

+

+Vicente Dominguez +@vicendominguez +

+

+Francisco Lozano +@flozano +

+

+Javier Vela +@jvdiago +

+

+Pedro Raja +@liric_o +

+

+Jose Vicente Martinez +@drowcito +

+

+Cesar Saez +@krizio +

+

HangOps es una forma de hacer mesas redondas via Google Hangouts.

+

Los HangOps facilitan la participación, la grabación y la publicación de la mesa redonda.

+

En el HangOps discutiremos sobre los sistemas actuales de monitorización y cómo los aplicamos en nuestro entorno

+
+
+

+ +15 de Abril de 2015 +https://www.youtube.com/watch?v=Quzky823bvE +

+
+
+

ChatOps: Operations meet chat

+

+Jose Luis Salas +@josacar +

+

ChatOps es una forma de hacer operaciones en la cultura DevOps via cualquier herramienta de chat.

+ +
+
+

+ +18 de Febrero de 2014 +https://www.youtube.com/watch?v=OBgCBkP8QWA +

+
+
+

Empezando con Docker

+

+Omar López Limonta +@olopez +

+

Introducción a Docker con un breve repaso de las tecnologías de contenedores anteriores a Docker

+

Se realizo una demo en la que se desplego un contenedor NGINX

+ + +
+
+
+ + + + + diff --git a/output/stylesheets/_mixins.scss b/output/stylesheets/_mixins.scss new file mode 100644 index 0000000..1adb59e --- /dev/null +++ b/output/stylesheets/_mixins.scss @@ -0,0 +1,63 @@ +@mixin rounded($radius: 15px) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + border-radius: $radius; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; +} + +@mixin rounded_part($side, $radius: 15px) { + border-#{$side}-radius: $radius; + -moz-border-radius-#{$side}: $radius; + -webkit-border-#{$side}-radius: $radius; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; +} + +@mixin box-shadow($top, $left, $blur, $color, $inset:"") { + -webkit-box-shadow:$top $left $blur $color #{$inset}; + -moz-box-shadow:$top $left $blur $color #{$inset}; + box-shadow:$top $left $blur $color #{$inset}; +} + +@mixin text_shadow($px, $color) { + text-shadow: $px $color; +} + +@mixin opacity($num:100) { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=$num)"; + filter:alpha(opacity=$num); + -moz-opacity:$num/100; + -khtml-opacity:$num/100; + opacity:$num/100; +} + +@mixin box-sizing { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@mixin vertical-align { + position: relative; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} + +@mixin clearfix { + zoom:1; + &:before, &:after { + content: "\0020"; + display: block; + height: 0; + overflow: hidden; + } + &:after { + clear: both; + } +} + diff --git a/output/stylesheets/_normalize.scss b/output/stylesheets/_normalize.scss new file mode 100644 index 0000000..458eea1 --- /dev/null +++ b/output/stylesheets/_normalize.scss @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/output/stylesheets/_rambla.scss b/output/stylesheets/_rambla.scss new file mode 100644 index 0000000..3cb6d6c --- /dev/null +++ b/output/stylesheets/_rambla.scss @@ -0,0 +1,10 @@ +/* rambla-regular - latin */ +@font-face { + font-family: 'Rambla'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local('Rambla'), local('Rambla-Regular'), + url('../fonts/rambla-v4-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/rambla-v4-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} diff --git a/output/stylesheets/_variables.scss b/output/stylesheets/_variables.scss new file mode 100644 index 0000000..a14d824 --- /dev/null +++ b/output/stylesheets/_variables.scss @@ -0,0 +1,51 @@ +// _varables.scss + +//// Basic Colors + + $white: #fff; + + $gray: #53585e; /* text */ + $gray_light: #f5f5f5; /* background */ + $gray_lighter: rgba(161, 161, 161, 0.5); + + $orange: rgb(230, 126, 34); + $orange_light: rgb(243, 156, 18); + $orange_dark: rgba(211, 84, 0, 0.5); + $orange_darker: rgb(220, 105, 17); + + $blue: #1ea0ce; + $blue_light: #339ACC; + $blue_dark:#1985ab; + //// Background Colors + + $background_color_body: $gray_light; + $background_color_header: $blue; + $background_color_button: $blue_light; + $background_color_button_hover: $blue_dark; + + $shadow_color_header: $gray_lighter; + $shadow_color_article: $gray_lighter; + + $border_color_article: $white; + + + //// Text Colors + + $text_body_color: $gray; + $text_header_color: $white; + $text_heading_color: $blue; + $text_link_color: $blue_light; + $text_link_hover_color: $blue_light; + $text_selection_color: $white; + $text_selection_background: $blue; + + $text_button_color: $white; + $text_button_background: $blue; + $text_button_hover_background: $orange_darker; + +/// General Variables + +$font_family: 'Rambla', sans-serif; + + + diff --git a/output/stylesheets/all.css b/output/stylesheets/all.css new file mode 100644 index 0000000..b082eab --- /dev/null +++ b/output/stylesheets/all.css @@ -0,0 +1,737 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ } + +/** + * Remove default margin. + */ +body { + margin: 0; } + +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; } + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ } + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; } + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; } + +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; } + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ +a:active, +a:hover { + outline: 0; } + +/* Text-level semantics + ========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; } + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, +strong { + font-weight: bold; } + +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; } + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; } + +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; } + +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; } + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; } + +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; } + +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; } + +/** + * Address differences between Firefox and other browsers. + */ +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; } + +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; } + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; } + +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, +input, +optgroup, +select, +textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0; + /* 3 */ } + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; } + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, +select { + text-transform: none; } + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ } + +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; } + +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; } + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; } + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; } + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ +input[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + /* 2 */ + box-sizing: content-box; } + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; } + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; } + +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + +/* text */ +/* background */ +/* rambla-regular - latin */ +@font-face { + font-family: 'Rambla'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local("Rambla"), local("Rambla-Regular"), url("../fonts/rambla-v4-latin-regular.woff2") format("woff2"), url("../fonts/rambla-v4-latin-regular.woff") format("woff"); + /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ } +body { + font-family: "Rambla", sans-serif; + background: #f5f5f5; + font-size: 1em; + line-height: 1.4; } + +html { + overflow-y: scroll; } + +html, body, button, input, select, textarea { + color: #53585e; } + +::-moz-selection { + background: #1ea0ce; + color: #fff; + text-shadow: none; } + +::selection { + background: #1ea0ce; + color: #fff; + text-shadow: none; } + +a { + color: #339ACC; + text-decoration: none; } + +a:visited { + color: #339ACC; } + +a:hover { + color: #339ACC; + text-decoration: underline; } + +h1 { + font-size: 46px; } + +h2 { + font-size: 24px; } + +h3 { + font-size: 22px; + font-weight: 400; } + +img { + vertical-align: middle; } + +main, .fgroup, hgroup { + padding: 10px 20px; } + +header { + background: #1ea0ce; + padding-bottom: 5px; + -webkit-box-shadow: 0px 2px 10px rgba(161, 161, 161, 0.5) ; + -moz-box-shadow: 0px 2px 10px rgba(161, 161, 161, 0.5) ; + box-shadow: 0px 2px 10px rgba(161, 161, 161, 0.5) ; } + header hgroup { + zoom: 1; } + header hgroup:before, header hgroup:after { + content: "\0020"; + display: block; + height: 0; + overflow: hidden; } + header hgroup:after { + clear: both; } + header h1 { + width: 300px; + line-height: 46px; + color: #fff; + margin: 10px auto 5px; + background: url(/images/logo_small.png) top center no-repeat; + padding: 56px 0 0; } + header h1 a, header h1 a:hover, header h1 a:visited { + color: #fff; + text-decoration: none; } + header h1 span { + font-size: 20px; + line-height: 20px; + color: #fff; + text-transform: uppercase; + font-weight: 400; + margin: 0 0 0 170px; + display: block; } + header h2 { + font-weight: 400; + line-height: 26px; + color: #fff; + text-align: center; + margin: 30px 0 30px; } + header h2 span { + display: block; } + header nav { + text-align: center; } + header nav ul { + margin: 0 0 10px 0; + padding: 0; } + header nav ul li { + display: inline-block; + margin: 0 5px; } + header nav ul li a, + header nav ul li a:visited { + color: #fff; + background-color: #339ACC; + font-size: 18px; + letter-spacing: 1px; + line-height: 26px; + padding: 5px 12px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; } + header nav ul li a:hover, header nav ul li a.selected, + header nav ul li a:visited:hover, + header nav ul li a:visited.selected { + color: #fff; + background-color: #1985ab; + text-decoration: none; } + +main { + margin-top: 25px; } + main h2 { + text-align: center; } + main .title { + font-size: 26px; + color: #1ea0ce; } + main .title time { + display: block; } + main .section_title { + font-size: 24px; + color: #1ea0ce; } + main .main_paragraph { + font-size: 18px; } + main .main_paragraph b { + display: block; } + main .main_paragraph cite { + font-size: 16px; + display: block; } + main section { + margin-bottom: 60px; } + main article { + padding: 10px 15px; + border: 2px solid #fff; + margin: 0 auto 30px; + -webkit-box-shadow: 0px 0px 3px rgba(161, 161, 161, 0.5) ; + -moz-box-shadow: 0px 0px 3px rgba(161, 161, 161, 0.5) ; + box-shadow: 0px 0px 3px rgba(161, 161, 161, 0.5) ; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border-radius: 10px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; } + main article h3 { + margin-top: 0; } + main article p { + font-size: 16px; } + main article p.links { + margin: 0; } + main div { + text-align: center; + font-size: 15px; + padding: 0 15px 15px; } + main div h3 { + margin: 0 0 15px; } + main div.call_to_action { + margin-top: 40px; } + main a.button, + main a.button:visited { + font-size: 18px; + color: #fff; + height: 26px; + line-height: 26px; + padding: 5px 12px; + letter-spacing: 1px; + display: inline-block; + letter-spacing: 1px; + background-color: #1ea0ce; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; } + main a.button:hover, + main a.button:visited:hover { + color: #fff; + background-color: #1ea0ce; + text-decoration: none; } + main .caption { + display: block; + line-height: 14px; + margin-top: 5px; } + +footer { + border-top: 2px solid #fff; } + footer .fgroup { + padding: 25px; + font-size: 16px; } + footer .fgroup div { + margin: 0 0 40px; + text-align: center; } + footer .fgroup div p { + margin: 5px 0; } + footer .fgroup div.last { + margin: 0; } + footer .fgroup div h3 { + font-weight: 600; + margin: 0 0 8px 0; } + +a.partner { + background: url(/images/partners/logo_fw.png) no-repeat top left; + width: 61px; + height: 80px; + display: block; + margin: 0 auto; } + +.hangout { + background: url(/images/ico_hangout.png) no-repeat top left; + width: 30px; + height: 30px; + display: inline-block; + margin-left: 5px; + vertical-align: text-top; } + +.ico, .ir { + border: 0; + font: 0/0 a; + text-shadow: none; + color: transparent; } + +@media only screen and (min-width: 768px) { + header h1 { + width: 460px; + font-size: 72px; + line-height: 72px; + background: url(/images/logo.png) top center no-repeat; + padding: 90px 0 0; } + header h1 span { + font-size: 30px; + line-height: 30px; + text-align: right; + margin: 0 68px 0 0; } + header h2 { + font-size: 28px; + line-height: 30px; } + header h2 span { + display: inline; } + header nav ul li a, + header nav ul li a:visited { + font-size: 22px; + line-height: 28px; + padding: 5px 15px; } + + h2 { + text-align: center; } + + .title { + font-size: 26px; + color: #1ea0ce; } + .title time { + display: block; } + + main .title { + font-size: 35px; } + main .title time { + display: inline-block; } + main .section_title { + font-size: 28px; } + main p { + font-size: 20px; } + main p b, main p cite { + display: inline; } + + footer .fgroup { + display: flex; + justify-content: center; } + footer .fgroup div { + margin: 0; + flex-grow: 1; + flex-basis: 0; } + footer .fgroup div.first { + text-align: left; } + footer .fgroup div.last { + text-align: right; } + + a.partner { + margin: 0; + float: right; } } +@media only screen and (min-width: 896px) { + main section article { + margin: 0 2% 30px; } + main section article p { + font-size: 18px; } + main section.double { + display: flex; + flex-flow: row wrap; + justify-content: center; } + main section.double article { + flex-grow: 1; + flex-basis: 0; } + main section.double div { + flex: 1 100%; } } +@media only screen and (min-width: 1024px) { + main, .fgroup, hgroup { + width: 1000px; + margin: 0 auto; } + + header h1 { + margin: 10px 0 5px; + float: left; } + header h2 { + width: 325px; + text-align: right; + font-size: 30px; + line-height: 34px; + margin: 15px 0 52px; + float: right; } + header h2 span { + display: block; } + header nav ul { + float: right; } + + main p { + font-size: 20px; } + main .main_paragraph { + font-size: 22px; } } +/* ===== print styles ========================================================== */ +@media print { + * { + background: transparent !important; + color: black !important; + text-shadow: none !important; + filter: none !important; + -ms-filter: none !important; } + + a, a:visited { + text-decoration: underline; } + + a[href]:after { + content: " (" attr(href) ")"; } + + abbr[title]:after { + content: " (" attr(title) ")"; } + + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { + content: ""; } + + pre, blockquote { + border: 1px solid #999; + page-break-inside: avoid; } + + thead { + display: table-header-group; } + + tr, img { + page-break-inside: avoid; } + + img { + max-width: 100% !important; } + + @page { + margin: 0.5cm; } + p, h2, h3 { + orphans: 3; + widows: 3; } + + h2, h3 { + page-break-after: avoid; } } diff --git a/source/404.html.haml b/source/404.html.haml deleted file mode 100644 index 49ef7e8..0000000 --- a/source/404.html.haml +++ /dev/null @@ -1,2 +0,0 @@ -%body - %p The content you were looking for cannot be found. diff --git a/source/_headers b/source/_headers deleted file mode 100644 index 5382088..0000000 --- a/source/_headers +++ /dev/null @@ -1,6 +0,0 @@ -/javascripts/* - Cache-Control: public, must-revalidate -/images/* - Cache-Control: public, must-revalidate -/stylesheets/* - Cache-Control: public, must-revalidate diff --git a/source/event.html.haml b/source/event.html.haml deleted file mode 100755 index 09193ac..0000000 --- a/source/event.html.haml +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: ¿Que es? Frontenders ---- - -%main{:role => "main"} - %section - %h2.title= data.static[:event_title] - %p - %b= data.static[:event_def_text_1] - = data.static[:event_def_text_2] - %cite - =link_to data.static[:event_def_source_text], data.static[:event_def_source_url], :target => "_blank" - - %p= data.static[:event_text_1] - %p= data.static[:event_text_2] - %p= data.static[:event_text_3] - - %p - = data.static[:event_text_4] - =mail_to data.static[:participate_email], data.static[:participate_email] diff --git a/source/javascripts/all.js b/source/javascripts/all.js deleted file mode 100644 index 2becd76..0000000 --- a/source/javascripts/all.js +++ /dev/null @@ -1 +0,0 @@ -//= require_tree . \ No newline at end of file diff --git a/source/partials/_footer.haml b/source/partials/_footer.haml deleted file mode 100644 index 5f68946..0000000 --- a/source/partials/_footer.haml +++ /dev/null @@ -1,23 +0,0 @@ -%footer - .fgroup - .first - %h3= data.static[:participate] - %p - =data.static[:participate_how] - =mail_to data.static[:participate_email], data.static[:participate_email] - - .middle - %h3= data.static[:follow] - %p - = link_to data.static[:twitter_account], data.static[:twitter_url], :title => data.static[:twitter_account] + " on Twitter", :target => "_blank" - %p - = link_to "#" + data.static[:twitter_hashtag], "https://twitter.com/search?q=%23" + data.static[:twitter_hashtag], :title => "Hashtag #" + data.static[:twitter_hashtag], :target => "_blank" - %p - = link_to data.static[:twitter_hashtag] + " youtube", "https://www.youtube.com/@" + data.static[:twitter_account], :title => "Youtube channel", :target => "_blank" - %p - = link_to "valencia-devops meetup", "https://www.meetup.com/valencia-devops", :title => "Meetup group", :target => "_blank" - - .last - %h3= data.static[:partner] - %p - = link_to data.static[:partner_name], data.static[:partner_url], :title => data.static[:partner_url_title], :class => "partner ir", :target => "_blank" diff --git a/source/partials/_header.haml b/source/partials/_header.haml deleted file mode 100644 index 2faaad5..0000000 --- a/source/partials/_header.haml +++ /dev/null @@ -1,18 +0,0 @@ -%header - %hgroup - %h1 - = link_to data.static[:h1_logo_text], "/", :title => data.static[:h1_title] - %span= data.static[:h1_logo_subtext] - - %h2 - = data.static[:h2_scream_line_1] - %span= data.static[:h2_scream_line_2] - %span= data.static[:h2_scream_line_3] - - %nav - %ul - %li - = link_to data.static[:nav_page_1], "/event.html", :title => data.static[:nav_page_1_title], :class => is_page_selected("/event/") - %li - = link_to data.static[:nav_page_2], "/past.html", :title => data.static[:nav_page_2_title], :class => is_page_selected("/past/") - diff --git a/source/past.html.haml b/source/past.html.haml deleted file mode 100755 index 745e07c..0000000 --- a/source/past.html.haml +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Los eventos anteriores ---- - -%main{:role => "main"} - %h2.title - = link_to "Eventos anteriores en youtube", "https://www.youtube.com/@valenciadevops", :target => "_blank" - - %h2= data.static[:past_title] - - - data.archive.meetups.each do |m| - %h2.section_title - - = m[:date] - - - if m[:hangout_url] - = link_to m[:hangout_url], m[:hangout_url], :class=> "ico hangout", :target=> "_blank" - - %section{:class => "#{m.type}"} - - m.talks.each do |f| - %article - %h3= f[:title] - - f.author.each do |t| - = t[:name] - = twitter_url(t[:twitter]) - - - f.text.each do |t| - %p= t - - - if f.links - - f.links.each do |t| - %p.links - = link_to t[:label], t[:url], :target=> "_blank" - - - if m.sponsor - %div - %h3= data.static[:sponsor] - = link_to image_tag("sponsors/"+m.sponsor[:image]), m.sponsor[:url], :title => m.sponsor[:name], :target=> "_blank" diff --git a/source/sponsors/.keep b/source/sponsors/.keep deleted file mode 100644 index e69de29..0000000