diff --git a/_includes/footer.html b/_includes/footer.html
index 47b5081..7de088e 100644
--- a/_includes/footer.html
+++ b/_includes/footer.html
@@ -3,6 +3,7 @@
+ Buscar charlas
-
diff --git a/_includes/head.html b/_includes/head.html
index fb81b84..ee9c1c5 100644
--- a/_includes/head.html
+++ b/_includes/head.html
@@ -16,4 +16,5 @@
+
diff --git a/_includes/meetups.html b/_includes/meetups.html
index 19e3446..f41888e 100644
--- a/_includes/meetups.html
+++ b/_includes/meetups.html
@@ -2,6 +2,10 @@
{% assign meetups_sorted = site.meetups | sort: "date" | reverse %}
diff --git a/_layouts/meetup.html b/_layouts/meetup.html
index 487db2e..b0c8d5e 100644
--- a/_layouts/meetup.html
+++ b/_layouts/meetup.html
@@ -6,7 +6,7 @@
{% include nav.html %}
-
+
Host
{{ site.data.companies[page.host].name }}
diff --git a/_layouts/talks.html b/_layouts/talks.html
new file mode 100644
index 0000000..e109af4
--- /dev/null
+++ b/_layouts/talks.html
@@ -0,0 +1,64 @@
+
+
+ {% include head.html %}
+
+
+ {% include nav.html %}
+
+
+
+
+
+
+ {% assign meetups_sorted = site.meetups | sort: "date" | reverse %}
+ {% assign meetups_grouped = meetups_sorted | group_by_exp: "m", "m.date | date: '%Y'" %}
+
+ {% for year in meetups_grouped %}
+ {% assign year_count = 0 %}
+ {% for meetup in year.items %}
+ {% assign year_count = year_count | plus: meetup.talks.size %}
+ {% endfor %}
+
+ {{ year.name }} ({{ year_count }})
+
+ {% for meetup in year.items %}
+ {% for talk in meetup.talks %}
+ {% assign speakers = "" | split: ',' %}
+ {% for speaker in talk.speakers %}
+ {% assign speakers = speakers | push: site.data.people[speaker].name %}
+ {% endfor %}
+
+ {% capture search_text %}{{ talk.title }} {{ meetup.title }} {{ speakers | join: ' ' }} {{ talk.description }}{% endcapture %}
+
+
+
+
+ {% for speaker in talk.speakers %}
+ {% assign person = site.data.people[speaker] %}
+ {% if person.github %}
+
+ {% endif %}
+ {{ person.name }}{% unless forloop.last %}, {% endunless %}
+ {% endfor %}
+
+
+
{{ talk.description }}
+
+ {% endfor %}
+ {% endfor %}
+ {% endfor %}
+
+
+
+
+ {% include footer.html %}
+
+
diff --git a/_sass/meetups.scss b/_sass/meetups.scss
index 349b8f8..8fe3147 100644
--- a/_sass/meetups.scss
+++ b/_sass/meetups.scss
@@ -11,8 +11,8 @@
@media (max-width: 425px) {
padding: 2rem 1.5rem;
display: flex;
- justify-content: center;
- align-items: center;
+ flex-direction: column;
+ align-items: flex-start;
}
h1 {
@@ -32,6 +32,23 @@
display: none;
}
}
+
+ .meetup-event__search-link {
+ align-items: center;
+ display: inline-flex;
+ font-weight: bold;
+ margin-top: 1rem;
+
+ &, &:active, &:visited, &:focus, &:hover {
+ color: #FFC24D;
+ text-decoration: none;
+ }
+
+ img {
+ margin-left: 0.5rem;
+ filter: brightness(0) saturate(100%) invert(85%) sepia(35%) saturate(831%) hue-rotate(338deg) brightness(102%) contrast(101%);
+ }
+ }
}
.meetup-event__date_year {
diff --git a/_sass/talks.scss b/_sass/talks.scss
new file mode 100644
index 0000000..def3f52
--- /dev/null
+++ b/_sass/talks.scss
@@ -0,0 +1,35 @@
+#view-talks {
+ .talks-year {
+ border-bottom: 2px solid #3967D1;
+ color: #3967D1;
+ font-size: 2rem;
+ font-weight: bold;
+ margin: 2rem 0 1.5rem;
+ padding-bottom: 0.5rem;
+ }
+
+ .talks-search {
+ background-color: #F6EEEC;
+ border: 3px solid #2E2E2E;
+ box-shadow: 6px 6px 0 #3967D1;
+ color: #3967D1;
+ font: 700 1rem 'Syncopate', sans-serif;
+ letter-spacing: 0.05em;
+ padding: 1rem 1.25rem;
+ text-transform: uppercase;
+ transition: box-shadow 0.15s ease, transform 0.15s ease;
+ width: 100%;
+
+ &::placeholder {
+ color: #3967D1;
+ opacity: 0.5;
+ }
+
+ &:focus {
+ box-shadow: 6px 6px 0 #FFC24D;
+ outline: none;
+ transform: translate(-2px, -2px);
+ }
+ }
+
+}
diff --git a/_sass/view_meetup.scss b/_sass/view.scss
similarity index 98%
rename from _sass/view_meetup.scss
rename to _sass/view.scss
index 9f5868a..0250385 100644
--- a/_sass/view_meetup.scss
+++ b/_sass/view.scss
@@ -1,4 +1,4 @@
-#view-meetup {
+.view {
margin: 0 auto;
width: 85%;
diff --git a/assets/css/styles.scss b/assets/css/styles.scss
index 282b388..719fcfc 100644
--- a/assets/css/styles.scss
+++ b/assets/css/styles.scss
@@ -1,3 +1,3 @@
---
---
-@import 'reset', 'application', 'header', 'nav', 'next_meetup', 'view_meetup', 'meetups', 'sponsors', 'footer';
+@import 'reset', 'application', 'header', 'nav', 'next_meetup', 'view', 'meetups', 'sponsors', 'footer', 'talks';
diff --git a/assets/js/talks.js b/assets/js/talks.js
new file mode 100644
index 0000000..e7fe1d6
--- /dev/null
+++ b/assets/js/talks.js
@@ -0,0 +1,15 @@
+document.addEventListener("DOMContentLoaded", () => {
+ const input = document.querySelector("#talks-search");
+ if (!input) return;
+
+ const talks = document.querySelectorAll(".talk");
+
+ input.addEventListener("input", () => {
+ const query = input.value.trim().toLowerCase();
+
+ talks.forEach((talk) => {
+ const haystack = talk.dataset.search || "";
+ talk.hidden = query && !haystack.includes(query);
+ });
+ });
+});
diff --git a/talks.html b/talks.html
new file mode 100644
index 0000000..d342baa
--- /dev/null
+++ b/talks.html
@@ -0,0 +1,4 @@
+---
+layout: talks
+permalink: /charlas/
+---