diff --git a/.markdownlintrc b/.markdownlintrc
deleted file mode 100644
index 94585fe5..00000000
--- a/.markdownlintrc
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "line_length": {"code_blocks": false},
- "commands-show-output": false
-}
diff --git a/.remarkrc.js b/.remarkrc.js
new file mode 100644
index 00000000..495e6933
--- /dev/null
+++ b/.remarkrc.js
@@ -0,0 +1,12 @@
+exports.settings = {
+ listItemIndent: 1,
+ emphasis: '_',
+ strong: '_',
+ bullet: '*',
+ incrementListMarker: false
+};
+
+exports.plugins = [
+ 'remark-frontmatter',
+ '@dsmjs/remark-preset-lint'
+];
diff --git a/content/speakers/aaron-eischeid/index.md b/content/speakers/aaron-eischeid/index.md
index 33328976..ab524f9e 100644
--- a/content/speakers/aaron-eischeid/index.md
+++ b/content/speakers/aaron-eischeid/index.md
@@ -1,4 +1,4 @@
---
name: Aaron Eischeid
twitter: aeischeid
----
\ No newline at end of file
+---
diff --git a/content/speakers/brad-dwyer/index.md b/content/speakers/brad-dwyer/index.md
index 4ac18a4f..88db1bb4 100644
--- a/content/speakers/brad-dwyer/index.md
+++ b/content/speakers/brad-dwyer/index.md
@@ -1,4 +1,4 @@
---
name: Brad Dwyer
twitter: braddwyer
----
\ No newline at end of file
+---
diff --git a/content/speakers/brandon-williams/index.md b/content/speakers/brandon-williams/index.md
index 75273a33..eb9bf7c7 100644
--- a/content/speakers/brandon-williams/index.md
+++ b/content/speakers/brandon-williams/index.md
@@ -1,4 +1,4 @@
---
name: Brandon Williams
twitter: williamsbdev
----
\ No newline at end of file
+---
diff --git a/content/speakers/carl-olson/index.md b/content/speakers/carl-olson/index.md
index 4fe18100..ad3e3034 100644
--- a/content/speakers/carl-olson/index.md
+++ b/content/speakers/carl-olson/index.md
@@ -1,3 +1,3 @@
---
name: Carl Olson
----
\ No newline at end of file
+---
diff --git a/content/speakers/chad-thompson/index.md b/content/speakers/chad-thompson/index.md
index de311e8e..af97eb93 100644
--- a/content/speakers/chad-thompson/index.md
+++ b/content/speakers/chad-thompson/index.md
@@ -1,4 +1,4 @@
---
name: Chad Thompson
twitter: chadothompson
----
\ No newline at end of file
+---
diff --git a/content/speakers/chuck-rolek/index.md b/content/speakers/chuck-rolek/index.md
index 3e34d5bd..064f92e7 100644
--- a/content/speakers/chuck-rolek/index.md
+++ b/content/speakers/chuck-rolek/index.md
@@ -1,4 +1,4 @@
---
name: Chuck Rolek
twitter: crolek
----
\ No newline at end of file
+---
diff --git a/content/speakers/david-moritz/index.md b/content/speakers/david-moritz/index.md
index 57b8b8fa..fb1a2f83 100644
--- a/content/speakers/david-moritz/index.md
+++ b/content/speakers/david-moritz/index.md
@@ -1,4 +1,4 @@
---
name: David Moritz
twitter: daveymoritz
----
\ No newline at end of file
+---
diff --git a/content/speakers/david-w-body/index.md b/content/speakers/david-w-body/index.md
index 3ba2c6d2..b4c7fbf3 100644
--- a/content/speakers/david-w-body/index.md
+++ b/content/speakers/david-w-body/index.md
@@ -1,4 +1,4 @@
---
name: David W. Body
twitter: david_body
----
\ No newline at end of file
+---
diff --git a/content/speakers/dustin-schau/index.md b/content/speakers/dustin-schau/index.md
index 0671195d..bc1900bf 100644
--- a/content/speakers/dustin-schau/index.md
+++ b/content/speakers/dustin-schau/index.md
@@ -1,4 +1,4 @@
---
name: Dustin Schau
twitter: SchauDustin
----
\ No newline at end of file
+---
diff --git a/content/speakers/eric-ponto/index.md b/content/speakers/eric-ponto/index.md
index f4ee1992..2b6e2f5c 100644
--- a/content/speakers/eric-ponto/index.md
+++ b/content/speakers/eric-ponto/index.md
@@ -1,4 +1,4 @@
---
name: Eric Ponto
twitter: ericponto
----
\ No newline at end of file
+---
diff --git a/content/speakers/fred-galoso/index.md b/content/speakers/fred-galoso/index.md
index d9d8ead6..153fb34b 100644
--- a/content/speakers/fred-galoso/index.md
+++ b/content/speakers/fred-galoso/index.md
@@ -1,4 +1,4 @@
---
name: Fred Galoso
twitter: wayoutmind
----
\ No newline at end of file
+---
diff --git a/content/speakers/jack-viers/index.md b/content/speakers/jack-viers/index.md
index ee01d2df..de9493c2 100644
--- a/content/speakers/jack-viers/index.md
+++ b/content/speakers/jack-viers/index.md
@@ -1,4 +1,4 @@
---
name: Jack Viers
twitter: jackviers
----
\ No newline at end of file
+---
diff --git a/content/speakers/jaime-niswonger/index.md b/content/speakers/jaime-niswonger/index.md
index 8eff1311..15e31942 100644
--- a/content/speakers/jaime-niswonger/index.md
+++ b/content/speakers/jaime-niswonger/index.md
@@ -1,3 +1,3 @@
---
name: Jaime Niswonger
----
\ No newline at end of file
+---
diff --git a/content/speakers/jarrod-taylor/index.md b/content/speakers/jarrod-taylor/index.md
index 4694e896..6df84f4c 100644
--- a/content/speakers/jarrod-taylor/index.md
+++ b/content/speakers/jarrod-taylor/index.md
@@ -1,3 +1,3 @@
---
name: Jarrod Taylor
----
\ No newline at end of file
+---
diff --git a/content/speakers/jason-bradley/index.md b/content/speakers/jason-bradley/index.md
index 822459c7..8e8569c8 100644
--- a/content/speakers/jason-bradley/index.md
+++ b/content/speakers/jason-bradley/index.md
@@ -1,4 +1,4 @@
---
name: Jason Bradley
twitter: jason_bradley
----
\ No newline at end of file
+---
diff --git a/content/speakers/jeff-donovan/index.md b/content/speakers/jeff-donovan/index.md
index 2af1c2dc..e9d326eb 100644
--- a/content/speakers/jeff-donovan/index.md
+++ b/content/speakers/jeff-donovan/index.md
@@ -1,4 +1,4 @@
---
name: Jeff Donovan
twitter: _Jeff_D_
----
\ No newline at end of file
+---
diff --git a/content/speakers/jeff-shinrock/index.md b/content/speakers/jeff-shinrock/index.md
index 22c4558e..5ce73afa 100644
--- a/content/speakers/jeff-shinrock/index.md
+++ b/content/speakers/jeff-shinrock/index.md
@@ -1,4 +1,4 @@
---
name: Jeff Shinrock
twitter: JShinbot
----
\ No newline at end of file
+---
diff --git a/content/speakers/jessa-sparks/index.md b/content/speakers/jessa-sparks/index.md
index 47f832a8..3c39f19a 100644
--- a/content/speakers/jessa-sparks/index.md
+++ b/content/speakers/jessa-sparks/index.md
@@ -1,4 +1,4 @@
---
name: Jessa Sparks
twitter: jessasparks
----
\ No newline at end of file
+---
diff --git a/content/speakers/joel-taddei/index.md b/content/speakers/joel-taddei/index.md
index 8bb0460d..c05787d1 100644
--- a/content/speakers/joel-taddei/index.md
+++ b/content/speakers/joel-taddei/index.md
@@ -1,4 +1,4 @@
---
name: Joel Taddei
twitter: taddeimania
----
\ No newline at end of file
+---
diff --git a/content/speakers/jon-von-willern/index.md b/content/speakers/jon-von-willern/index.md
index 5e34797f..f950d164 100644
--- a/content/speakers/jon-von-willern/index.md
+++ b/content/speakers/jon-von-willern/index.md
@@ -1,4 +1,4 @@
---
name: Jon von Willern
twitter: vongillern
----
\ No newline at end of file
+---
diff --git a/content/speakers/justin-musgrove/index.md b/content/speakers/justin-musgrove/index.md
index 381ee41e..126ed8fe 100644
--- a/content/speakers/justin-musgrove/index.md
+++ b/content/speakers/justin-musgrove/index.md
@@ -1,4 +1,4 @@
---
name: Justin Musgrove
twitter: jstnm
----
\ No newline at end of file
+---
diff --git a/content/speakers/korina-borowycz/index.md b/content/speakers/korina-borowycz/index.md
index 038e5801..769eef75 100644
--- a/content/speakers/korina-borowycz/index.md
+++ b/content/speakers/korina-borowycz/index.md
@@ -1,3 +1,3 @@
---
name: Korina Borowycz
----
\ No newline at end of file
+---
diff --git a/content/speakers/lee-brandt/index.md b/content/speakers/lee-brandt/index.md
index 48613445..1118adac 100644
--- a/content/speakers/lee-brandt/index.md
+++ b/content/speakers/lee-brandt/index.md
@@ -1,3 +1,3 @@
---
name: Lee Brandt
----
\ No newline at end of file
+---
diff --git a/content/speakers/logan-keenan/index.md b/content/speakers/logan-keenan/index.md
index 0f85d899..a109c622 100644
--- a/content/speakers/logan-keenan/index.md
+++ b/content/speakers/logan-keenan/index.md
@@ -1,4 +1,4 @@
---
name: Logan Keenan
twitter: dlogankeenan
----
\ No newline at end of file
+---
diff --git a/content/speakers/matt-busche/index.md b/content/speakers/matt-busche/index.md
index f1c747b3..c12e780d 100644
--- a/content/speakers/matt-busche/index.md
+++ b/content/speakers/matt-busche/index.md
@@ -1,4 +1,4 @@
---
name: Matt Busche
twitter: mrbusche
----
\ No newline at end of file
+---
diff --git a/content/speakers/matt-travi/index.md b/content/speakers/matt-travi/index.md
index faaf8d9b..2c4962b6 100644
--- a/content/speakers/matt-travi/index.md
+++ b/content/speakers/matt-travi/index.md
@@ -1,4 +1,4 @@
---
name: Matt Travi
twitter: mtravi
----
\ No newline at end of file
+---
diff --git a/content/speakers/matthew-j-morrison/index.md b/content/speakers/matthew-j-morrison/index.md
index 5519b5ab..281bbc48 100644
--- a/content/speakers/matthew-j-morrison/index.md
+++ b/content/speakers/matthew-j-morrison/index.md
@@ -1,4 +1,4 @@
---
name: Matthew J. Morrison
twitter: mattjmorrison
----
\ No newline at end of file
+---
diff --git a/content/speakers/matthew-nuzum/index.md b/content/speakers/matthew-nuzum/index.md
index 068a30dc..4152880e 100644
--- a/content/speakers/matthew-nuzum/index.md
+++ b/content/speakers/matthew-nuzum/index.md
@@ -1,4 +1,4 @@
---
name: Matthew Nuzum
twitter: newz2000
----
\ No newline at end of file
+---
diff --git a/content/speakers/michael-bosworth/index.md b/content/speakers/michael-bosworth/index.md
index 0914d478..7b34fd52 100644
--- a/content/speakers/michael-bosworth/index.md
+++ b/content/speakers/michael-bosworth/index.md
@@ -1,4 +1,4 @@
---
name: Michael Bosworth
twitter: bozzltron
----
\ No newline at end of file
+---
diff --git a/content/speakers/michael-clark/index.md b/content/speakers/michael-clark/index.md
index 3aefc25a..e51ee598 100644
--- a/content/speakers/michael-clark/index.md
+++ b/content/speakers/michael-clark/index.md
@@ -1,4 +1,4 @@
---
name: Michael Clark
twitter: MichaelW_Clark
----
\ No newline at end of file
+---
diff --git a/content/speakers/michael-parker/index.md b/content/speakers/michael-parker/index.md
index 573c3874..497a78b6 100644
--- a/content/speakers/michael-parker/index.md
+++ b/content/speakers/michael-parker/index.md
@@ -1,3 +1,3 @@
---
name: Michael Parker
----
\ No newline at end of file
+---
diff --git a/content/speakers/michael-w-clark/index.md b/content/speakers/michael-w-clark/index.md
index d9b723b3..cce11c68 100644
--- a/content/speakers/michael-w-clark/index.md
+++ b/content/speakers/michael-w-clark/index.md
@@ -1,3 +1,3 @@
---
name: Michael W. Clark
----
\ No newline at end of file
+---
diff --git a/content/speakers/nicholas-starke/index.md b/content/speakers/nicholas-starke/index.md
index 355dab1c..afa60763 100644
--- a/content/speakers/nicholas-starke/index.md
+++ b/content/speakers/nicholas-starke/index.md
@@ -1,3 +1,3 @@
---
name: Nicholas Starke
----
\ No newline at end of file
+---
diff --git a/content/speakers/nick-starke/index.md b/content/speakers/nick-starke/index.md
index 68fd5bc6..1265de7d 100644
--- a/content/speakers/nick-starke/index.md
+++ b/content/speakers/nick-starke/index.md
@@ -1,4 +1,4 @@
---
name: Nick Starke
twitter: nstarke
----
\ No newline at end of file
+---
diff --git a/content/speakers/paul-rowe/index.md b/content/speakers/paul-rowe/index.md
index afe52be3..85a6a9ac 100644
--- a/content/speakers/paul-rowe/index.md
+++ b/content/speakers/paul-rowe/index.md
@@ -1,3 +1,3 @@
---
name: Paul Rowe
----
\ No newline at end of file
+---
diff --git a/content/speakers/paul-searcy/index.md b/content/speakers/paul-searcy/index.md
index c773069d..4cb20ad8 100644
--- a/content/speakers/paul-searcy/index.md
+++ b/content/speakers/paul-searcy/index.md
@@ -1,4 +1,4 @@
---
name: Paul Searcy
twitter: paulsearcy5
----
\ No newline at end of file
+---
diff --git a/content/speakers/shawn-sparks/index.md b/content/speakers/shawn-sparks/index.md
index cd78678d..93313690 100644
--- a/content/speakers/shawn-sparks/index.md
+++ b/content/speakers/shawn-sparks/index.md
@@ -1,4 +1,4 @@
---
name: Shawn Sparks
twitter: marshmellow1328
----
\ No newline at end of file
+---
diff --git a/content/speakers/tae-kim/index.md b/content/speakers/tae-kim/index.md
index f0dd1f44..52422a17 100644
--- a/content/speakers/tae-kim/index.md
+++ b/content/speakers/tae-kim/index.md
@@ -1,3 +1,3 @@
---
name: Tae Kim
----
\ No newline at end of file
+---
diff --git a/content/speakers/thomas-lindner/index.md b/content/speakers/thomas-lindner/index.md
index c52fa76b..c0cd18cb 100644
--- a/content/speakers/thomas-lindner/index.md
+++ b/content/speakers/thomas-lindner/index.md
@@ -1,3 +1,3 @@
---
name: Thomas Lindner
----
\ No newline at end of file
+---
diff --git a/content/speakers/tim-mc-call/index.md b/content/speakers/tim-mc-call/index.md
index 2fce13fc..d0b6d9b6 100644
--- a/content/speakers/tim-mc-call/index.md
+++ b/content/speakers/tim-mc-call/index.md
@@ -1,3 +1,3 @@
---
name: Tim McCall
----
\ No newline at end of file
+---
diff --git a/content/speakers/toran-billups/index.md b/content/speakers/toran-billups/index.md
index d1094c4c..3fb3d113 100644
--- a/content/speakers/toran-billups/index.md
+++ b/content/speakers/toran-billups/index.md
@@ -1,4 +1,4 @@
---
name: Toran Billups
twitter: toranb
----
\ No newline at end of file
+---
diff --git a/content/speakers/torey-maerz/index.md b/content/speakers/torey-maerz/index.md
index 196e20bc..37b2fbc1 100644
--- a/content/speakers/torey-maerz/index.md
+++ b/content/speakers/torey-maerz/index.md
@@ -1,4 +1,4 @@
---
name: Torey Maerz
twitter: toreym
----
\ No newline at end of file
+---
diff --git a/content/speakers/trevor-richardson/index.md b/content/speakers/trevor-richardson/index.md
index 7b876517..b4e78d90 100644
--- a/content/speakers/trevor-richardson/index.md
+++ b/content/speakers/trevor-richardson/index.md
@@ -1,4 +1,4 @@
---
name: Trevor Richardson
twitter: IntelXDesign
----
\ No newline at end of file
+---
diff --git a/content/talks/a-gentle-introduction-to-ember-js.md b/content/talks/a-gentle-introduction-to-ember-js.md
index f4f09df3..9af26ee1 100644
--- a/content/talks/a-gentle-introduction-to-ember-js.md
+++ b/content/talks/a-gentle-introduction-to-ember-js.md
@@ -6,6 +6,8 @@ speaker: Toran Billups
code: 'https://github.com/dsmjs/2013-08-20-ember-example'
---
-As the ember.js javascript framework matures to 1.0 what does the "hello world" experience look like today? What does each component in the framework do and what are the naming conventions required to wire them up? What is the story behind the new router api and how do you work with nested routes/controllers? What is the persistence story?
-
-
+As the ember.js javascript framework matures to 1.0 what does the "hello world"
+experience look like today? What does each component in the framework do and
+what are the naming conventions required to wire them up? What is the story
+behind the new router api and how do you work with nested routes/controllers?
+What is the persistence story?
diff --git a/content/talks/an-interactive-demo-with-node-js-and-aws-lambda.md b/content/talks/an-interactive-demo-with-node-js-and-aws-lambda.md
index c5b40b28..144486a5 100644
--- a/content/talks/an-interactive-demo-with-node-js-and-aws-lambda.md
+++ b/content/talks/an-interactive-demo-with-node-js-and-aws-lambda.md
@@ -12,15 +12,16 @@ deploy and test a NodeJS Lambda solution in the Amazon Web Services cloud.
From scratch, Todd will demonstrate how to code and unit test a basic Lambda
function. He will also show how to deploy a Lambda to the AWS cloud using
continuous delivery through Jenkins. If time allows, Todd will also demonstrate
-how to configure a RESTful web service interface for a Lambda using API Gateway.
-So, bring your questions and curiosity and learn how to build a serverless
-backend system for your next UI project!
+how to configure a RESTful web service interface for a Lambda using API
+Gateway. So, bring your questions and curiosity and learn how to build a
+serverless backend system for your next UI project!
Todd Brunia is a Senior Software Engineer at Source Allies in Des Moines, IA.
Todd also stays busy with his start up, Xilution, Inc., which markets Software
as a Service solutions built upon serverless cloud technologies. Todd has over
20 years of experience working in the IT industry. Over the last few years,
-Todd has been focused on projects leveraging Amazon Web Services cloud technologies.
-He is experienced applying serverless, continuous delivery and automated testing
-solutions in the cloud. Todd sees great opportunity in the cloud for a wide variety
-of industries and is excited to share his knowledge with the tech community in Iowa.
+Todd has been focused on projects leveraging Amazon Web Services cloud
+technologies. He is experienced applying serverless, continuous delivery and
+automated testing solutions in the cloud. Todd sees great opportunity in the
+cloud for a wide variety of industries and is excited to share his knowledge
+with the tech community in Iowa.
diff --git a/content/talks/an-introduction-to-transducers.md b/content/talks/an-introduction-to-transducers.md
index b5357733..3fc68cf9 100644
--- a/content/talks/an-introduction-to-transducers.md
+++ b/content/talks/an-introduction-to-transducers.md
@@ -6,19 +6,24 @@ speaker: Eric Ponto
slides: 'http://slides.ericponto.com/dsmjs-intro-to-transducers/'
---
-"Transducer" sounds like just another jargony functional programming term and, yeah, it kind of is...
+"Transducer" sounds like just another jargony functional programming term and,
+yeah, it kind of is...
Consider this example (a classic intro to FP in JS example):
-```
-[1, 2, 3, 4, 5]
- .map(x => x * x)
- .filter(x => x % 2)
-```
+ [1, 2, 3, 4, 5]
+ .map(x => x * x)
+ .filter(x => x % 2)
-Performance-minded people might point out that we are looping through the array 2 times. And while that isn't going to cause any problems with an array of this size and with these simple operations, it can become an issue when the scale is different.
+Performance-minded people might point out that we are looping through the array
+2 times. And while that isn't going to cause any problems with an array of this
+size and with these simple operations, it can become an issue when the scale is
+different.
-Here's where transducers come in. (More FP jargon coming...) Transducers let us compose our transformation functions (the map and filter) into a single reducer, which we can use to perform the same functionality on the array, but we'll only loop over it 1 time.
-
-This talk will go over the basics of map, filter, reduce and function composition. Then build up gradually to transducers.
+Here's where transducers come in. (More FP jargon coming...) Transducers let us
+compose our transformation functions (the map and filter) into a single
+reducer, which we can use to perform the same functionality on the array, but
+we'll only loop over it 1 time.
+This talk will go over the basics of map, filter, reduce and function
+composition. Then build up gradually to transducers.
diff --git a/content/talks/angular-2-first-look.md b/content/talks/angular-2-first-look.md
index a0598017..230a323f 100644
--- a/content/talks/angular-2-first-look.md
+++ b/content/talks/angular-2-first-look.md
@@ -5,12 +5,14 @@ tags: Angular
speaker: Lee Brandt
---
-
-
-Haven’t had a chance to dig into Angular2 yet? Waiting until it “stabilizes” before spending your time to learn it? Tried out some of the “Quick Starts” only to find out they weren’t so quick? You’re not alone.
-
-In this session, I will show you the basics of the newest version of AngularJS, the differences from Angular 1.x, and even show you the Angular-CLI which makes it drop-dead simple to get (and keep) an organized Angular2 project underway. I will even show you where Angular2 doesn’t shine so bright. You will leave with a better understanding of Angular2 and the knowledge to get started on the right path with the newest version of AngularJS!
-
-
-
-
+Haven’t had a chance to dig into Angular2 yet? Waiting until it “stabilizes”
+before spending your time to learn it? Tried out some of the “Quick Starts”
+only to find out they weren’t so quick? You’re not alone.
+
+In this session, I will show you the basics of the newest version of
+AngularJS, the differences from Angular 1.x, and even show you the
+Angular-CLI which makes it drop-dead simple to get (and keep) an organized
+Angular2 project underway. I will even show you where Angular2 doesn’t shine
+so bright. You will leave with a better understanding of Angular2 and the
+knowledge to get started on the right path with the newest version of
+AngularJS!
diff --git a/content/talks/angular-fire.md b/content/talks/angular-fire.md
index 4629cbe0..10777c01 100644
--- a/content/talks/angular-fire.md
+++ b/content/talks/angular-fire.md
@@ -7,9 +7,10 @@ tags:
speaker: David Moritz
---
-
-
-AngularFire is a lightweight resource the blends the two worlds of Angular and Firebase together. Extending the simplistic 2-way data-binding of Angular to be connected to a RESTful API allows for the coveted “3-way data-binding!” I will be showing examples of this 3-way data-binding and, more importantly, how easy it is to set up and bring your site to the next level. You can also set up authentication very easily using built-in plugins for Facebook, Twitter, and Google Plus sign-on.
-
-
-
+AngularFire is a lightweight resource the blends the two worlds of Angular and
+Firebase together. Extending the simplistic 2-way data-binding of Angular to be
+connected to a RESTful API allows for the coveted “3-way data-binding!” I will
+be showing examples of this 3-way data-binding and, more importantly, how easy
+it is to set up and bring your site to the next level. You can also set up
+authentication very easily using built-in plugins for Facebook, Twitter, and
+Google Plus sign-on.
diff --git a/content/talks/async-await-a-solution-to-callback-hell-weve-been-awaiting-for.md b/content/talks/async-await-a-solution-to-callback-hell-weve-been-awaiting-for.md
index e21737d2..3759571a 100644
--- a/content/talks/async-await-a-solution-to-callback-hell-weve-been-awaiting-for.md
+++ b/content/talks/async-await-a-solution-to-callback-hell-weve-been-awaiting-for.md
@@ -4,10 +4,21 @@ date: 'September 12, 2017'
tags: Async/Await
speaker: Paul Searcy
---
-In web development we've all felt the pain of creating a 'pyramid of doom'. To handle what we thought was a 'simple' singular request to an external endpoint. JQuery, circa late 2000s, made it seem so easy until the community decided we didn't really need a full library to just do requests. Then we were thrust into the glorious world of event loops, closures, and too many AJAX libraries to count.
-
-Join me and have fun! While I talk about how I've used these two keywords in some back-end tooling I use daily at work. And how scrapping webpages recursively, for testing security of course, became so much easier.
-
-Paul Searcy is a Software Developer at Stelter. Where he enjoys writing in C#, JS, and Bash while trying desperately to integrate legacy systems into Docker containers on AWS. He can be found on Github under two accounts: StelterPaulSearcy, tridon777 because why not? Lastly he loves talking about anything related to the future of web development and discussing of the benefits / overhead of types.
+In web development we've all felt the pain of creating a 'pyramid of doom'. To
+handle what we thought was a 'simple' singular request to an external endpoint.
+JQuery, circa late 2000s, made it seem so easy until the community decided we
+didn't really need a full library to just do requests. Then we were thrust
+into the glorious world of event loops, closures, and too many AJAX libraries
+to count.
+Join me and have fun! While I talk about how I've used these two keywords in
+some back-end tooling I use daily at work. And how scrapping webpages
+recursively, for testing security of course, became so much easier.
+
+Paul Searcy is a Software Developer at Stelter. Where he enjoys writing in C#,
+JS, and Bash while trying desperately to integrate legacy systems into Docker
+containers on AWS. He can be found on Github under two accounts:
+StelterPaulSearcy, tridon777 because why not? Lastly he loves talking about
+anything related to the future of web development and discussing of the
+benefits / overhead of types.
diff --git a/content/talks/aurelia-rediscover-your-choice-in-front-end-frameworks.md b/content/talks/aurelia-rediscover-your-choice-in-front-end-frameworks.md
index fca99a47..6fb0d7b9 100644
--- a/content/talks/aurelia-rediscover-your-choice-in-front-end-frameworks.md
+++ b/content/talks/aurelia-rediscover-your-choice-in-front-end-frameworks.md
@@ -5,5 +5,9 @@ tags: Aurelia
speaker: Jeff Shinrock
---
-It's 2017 and the choice of front-end frameworks seems endless, and yet somehow not a choice at all. React and Angular dominate every conversation surrounding mature, robust, and accessible frameworks. But I went searching for something that values standards over configuration, flexibility over opinion, and accessibility over memorization. My search ended with Aurelia and I'd like to introduce you to it.
-
+It's 2017 and the choice of front-end frameworks seems endless, and yet somehow
+not a choice at all. React and Angular dominate every conversation surrounding
+mature, robust, and accessible frameworks. But I went searching for something
+that values standards over configuration, flexibility over opinion, and
+accessibility over memorization. My search ended with Aurelia and I'd like to
+introduce you to it.
diff --git a/content/talks/avoiding-the-monorepo.md b/content/talks/avoiding-the-monorepo.md
index c90fb91c..85c73a8b 100644
--- a/content/talks/avoiding-the-monorepo.md
+++ b/content/talks/avoiding-the-monorepo.md
@@ -15,4 +15,3 @@ modules as separate packages can be handled as separate repositories, but the
complexity involved has led to increased popularity of monorepos. This talk
will briefly cover steps I've taken to reduce the overhead involved with
individual repositories so the monorepos aren't the only reasonable option.
-
diff --git a/content/talks/browserify-basics.md b/content/talks/browserify-basics.md
index ed2ac1ad..6e9d679e 100644
--- a/content/talks/browserify-basics.md
+++ b/content/talks/browserify-basics.md
@@ -5,9 +5,7 @@ tags: Browserify
speaker: Toran Billups
---
-
-
-Are you looking for an easy way to bundle your javascript apps while allowing your team to leverage all of npm at the same time? Are you a fan of CJS style modules in javascript? Join me for a live coding session where I discuss my love/hate relationship with browserify!
-
-
-
+Are you looking for an easy way to bundle your javascript apps while allowing
+your team to leverage all of npm at the same time? Are you a fan of CJS style
+modules in javascript? Join me for a live coding session where I discuss my
+love/hate relationship with browserify!
diff --git a/content/talks/building-static-sites-with-jekyll.md b/content/talks/building-static-sites-with-jekyll.md
index 715c69f6..0fadde82 100644
--- a/content/talks/building-static-sites-with-jekyll.md
+++ b/content/talks/building-static-sites-with-jekyll.md
@@ -5,10 +5,8 @@ tags: Jekyll
speaker: Justin Musgrove
---
-
-Learn how to build a site using the static site generator Jekyll. This talk will walk through the basics of Jekyll as well as hosting the site using Github Pages.
+Learn how to build a site using the static site generator Jekyll. This talk
+will walk through the basics of Jekyll as well as hosting the site using
+Github Pages.
(Bonus! This site, dsmjs.com, is built with Jekyll and hosted on Github pages.)
-
-
-
diff --git a/content/talks/building-your-own-command-line-interface-with-node-and-npm.md b/content/talks/building-your-own-command-line-interface-with-node-and-npm.md
index 5bf662c5..4b35b584 100644
--- a/content/talks/building-your-own-command-line-interface-with-node-and-npm.md
+++ b/content/talks/building-your-own-command-line-interface-with-node-and-npm.md
@@ -8,9 +8,10 @@ tags:
speaker: Eric Ponto
---
+Command Line Interfaces (CLIs) have been working their way into the front-end
+tooling space for a little while. Grunt and Gulp came out quite a few years ago
+and really changed the landscape. Now we are seeing specific CLIs build right
+into frameworks like Ember, Sails, or Express.
-
-Command Line Interfaces (CLIs) have been working their way into the front-end tooling space for a little while. Grunt and Gulp came out quite a few years ago and really changed the landscape. Now we are seeing specific CLIs build right into frameworks like Ember, Sails, or Express.
-
-In this talk, we'll dive into creating our own CLI using JavaScript and how to publish it to npm so anyone can use it.
-
+In this talk, we'll dive into creating our own CLI using JavaScript and how to
+publish it to npm so anyone can use it.
diff --git a/content/talks/building-your-web-apps-with-gulp.md b/content/talks/building-your-web-apps-with-gulp.md
index 6168dfe2..5f2f9a8a 100644
--- a/content/talks/building-your-web-apps-with-gulp.md
+++ b/content/talks/building-your-web-apps-with-gulp.md
@@ -5,5 +5,7 @@ tags: Gulp
speaker: Toran Billups
---
-Does your web app require a build step of some kind? Is the declarative style used by grunt not your thing? Looking for a build tool made for the javascript developer? Join me for a live coding session where I create a simple gulp build that includes a JSX transform / ES6 transpile and even a simple concat step!
-
+Does your web app require a build step of some kind? Is the declarative style
+used by grunt not your thing? Looking for a build tool made for the javascript
+developer? Join me for a live coding session where I create a simple gulp build
+that includes a JSX transform / ES6 transpile and even a simple concat step!
diff --git a/content/talks/chrome-app-and-extension-crash-course.md b/content/talks/chrome-app-and-extension-crash-course.md
index 206f3da6..ec0ea2a5 100644
--- a/content/talks/chrome-app-and-extension-crash-course.md
+++ b/content/talks/chrome-app-and-extension-crash-course.md
@@ -5,7 +5,10 @@ tags: Chrome
speaker: Chuck Rolek
---
-
-
-Browser Apps/Extensions can be super helpful for day to day use. Making a Chrome App or Extension actually isn't as hard as it might seem. However, there are some differences between a Chrome App and Extension that might make a difference between which one you go with. I’ll go over creating a basic one, some of the standard API items, and some of the tips/tricks I learned while making one of each. Hopefully by the end of this you could go home and create your own App/Extension.
-
+Browser Apps/Extensions can be super helpful for day to day use. Making a
+Chrome App or Extension actually isn't as hard as it might seem. However, there
+are some differences between a Chrome App and Extension that might make a
+difference between which one you go with. I’ll go over creating a basic one,
+some of the standard API items, and some of the tips/tricks I learned while
+making one of each. Hopefully by the end of this you could go home and create
+your own App/Extension.
diff --git a/content/talks/chrome-dev-tools-tips-and-tricks.md b/content/talks/chrome-dev-tools-tips-and-tricks.md
index cefdb6c6..e1e941ba 100644
--- a/content/talks/chrome-dev-tools-tips-and-tricks.md
+++ b/content/talks/chrome-dev-tools-tips-and-tricks.md
@@ -5,14 +5,9 @@ tags: Chrome
speaker: Torey Maerz
---
-
-
[Torey Maerz](https://twitter.com/toreym) will start off the meeting
with a quick 30 minute tips and tricks overview for developing and
debugging in chrome dev tools. He'll cover some helpful development
workflow tips to help you work more efficiently, show you how you
can use the profiler and network tabs to find inefficiencies in your
code, and even some newer items just added to dev tools.
-
-
-
diff --git a/content/talks/code-review-and-other-tips.md b/content/talks/code-review-and-other-tips.md
index 4cab5f03..68d80d46 100644
--- a/content/talks/code-review-and-other-tips.md
+++ b/content/talks/code-review-and-other-tips.md
@@ -4,13 +4,14 @@ date: 'Feb 13, 2018'
speaker: Aaron Eischeid
---
-Working on teams can be tricky. Tips and tricks I have learned with a growing dev team
+Working on teams can be tricky. Tips and tricks I have learned with a growing
+dev team
-Githubs pull requests UI is pretty good for doing code review, but even so things can bog down quickly. Well discuss a number of ways to really make things flow.
+Githubs pull requests UI is pretty good for doing code review, but even so
+things can bog down quickly. Well discuss a number of ways to really make
+things flow.
-Pair programming and remote developers - what has sort of worked. no perfect solutions here.
+Pair programming and remote developers - what has sort of worked. no perfect
+solutions here.
Team culture.
-
-
-
diff --git a/content/talks/collaborating-through-a-shared-component-library.md b/content/talks/collaborating-through-a-shared-component-library.md
index 21fb5f24..74c9bba4 100644
--- a/content/talks/collaborating-through-a-shared-component-library.md
+++ b/content/talks/collaborating-through-a-shared-component-library.md
@@ -6,19 +6,15 @@ speaker: Matt Travi
slides: 'https://presentations.travi.org/component-library-dsmjs-july-2016/'
---
-
-
A style guide or component-library has the potential to be huge help in keeping
your engineering teams up to date on the latest intended design details. Over
-time however, it ultimately severely diverges from the production implementation
-and ends up resulting in finger-pointing between the design and engineering
-organizations.
+time however, it ultimately severely diverges from the production
+implementation and ends up resulting in finger-pointing between the design and
+engineering organizations.
Sharing the implementation of the front-end components between the production
-application and the component-library demo and prototype(s) prevents the inevitable
-divergence and keeps all parties aware of the impacts of desired changes. This talk
-will highlight component-library tools and collaboration techniques, with an emphasis
-on leveraging npm to share the component implementation.
-
-
-
+application and the component-library demo and prototype(s) prevents the
+inevitable divergence and keeps all parties aware of the impacts of desired
+changes. This talk will highlight component-library tools and collaboration
+techniques, with an emphasis on leveraging npm to share the component
+implementation.
diff --git a/content/talks/continuous-deployment-of-npm-packages.md b/content/talks/continuous-deployment-of-npm-packages.md
index 3515cc50..64f66994 100644
--- a/content/talks/continuous-deployment-of-npm-packages.md
+++ b/content/talks/continuous-deployment-of-npm-packages.md
@@ -11,17 +11,19 @@ slides: 'https://presentations.travi.org/continuous-deployment-dsmjs-june-2017'
---
# Location Change
-We are going to be at the NEW Gravitate location at: 317 6th Avenue, Suite 102 Des Moines. As of now, parking is on the street.
-Keeping up with the fast-paced releases of node packages can be overwhelming. A
-project is often left with the choice of wasting many hours simply bumping package
-versions or letting their long list of dependencies get further and futher out of
-date. With so much talk of JS fatigue, it can be hard to believe that the same
-community has also produced many tools that can actually make your life easier in
-ways that are unmatched in other tech stacks.
+We are going to be at the NEW Gravitate location at:
+[317 6th Avenue, Suite 102 Des Moines](https://www.google.com/maps/place/317+6th+Ave+%23102,+Des+Moines,+IA+50309/@41.586651,-93.6266667,17z/data=!3m1!4b1!4m5!3m4!1s0x87ee99010087166f:0xa5ac4756076468ed!8m2!3d41.586651!4d-93.624478).
+As of now, parking is on the street.
-This talk will focus on the use of a combination of available OSS tools that can
-help to automate away some of the most tedious tasks of maintaining a JavaScript
-project. Continuous deployment is a lofty goal for applications, but we will even
-discuss continuous-deployment for internal packages.
+Keeping up with the fast-paced releases of node packages can be overwhelming. A
+project is often left with the choice of wasting many hours simply bumping
+package versions or letting their long list of dependencies get further and
+further out of date. With so much talk of JS fatigue, it can be hard to believe
+that the same community has also produced many tools that can actually make
+your life easier in ways that are unmatched in other tech stacks.
+This talk will focus on the use of a combination of available OSS tools that
+can help to automate away some of the most tedious tasks of maintaining a
+JavaScript project. Continuous deployment is a lofty goal for applications,
+but we will even discuss continuous-deployment for internal packages.
diff --git a/content/talks/creating-a-realtime-auction.md b/content/talks/creating-a-realtime-auction.md
index c2792ab4..cea9d918 100644
--- a/content/talks/creating-a-realtime-auction.md
+++ b/content/talks/creating-a-realtime-auction.md
@@ -5,7 +5,6 @@ tags: Firebase
speaker: Brad Dwyer
---
-
-Going in depth on a real world project we will build an auction system from scratch using Firebase and Node.js. Topics covered will include Firebase security rules and design, and the "server as a privileged client" model.
-
-
+Going in depth on a real world project we will build an auction system from
+scratch using Firebase and Node.js. Topics covered will include Firebase
+security rules and design, and the "server as a privileged client" model.
diff --git a/content/talks/demystifying-the-ember-object-model.md b/content/talks/demystifying-the-ember-object-model.md
index 3fd55d3a..9a461154 100644
--- a/content/talks/demystifying-the-ember-object-model.md
+++ b/content/talks/demystifying-the-ember-object-model.md
@@ -6,7 +6,7 @@ speaker: Toran Billups
code: 'https://github.com/dsmjs/2014-03-ember-object-intro'
---
-
-
-Are you curious what this Ember.Object thing is all about? How similar is it to a traditional javascript object anyway? During this 15 minute talk I'll show how the basic ember object is put together and how to take advantage of its more classicial inheritance paradigm. All this and tests!
-
+Are you curious what this Ember.Object thing is all about? How similar is it to
+a traditional javascript object anyway? During this 15 minute talk I'll show
+how the basic ember object is put together and how to take advantage of its
+more classicial inheritance paradigm. All this and tests!
diff --git a/content/talks/dos-and-donts-of-high-performance-java-script-how-web-filings-new-open-source-project-improves-the-mobile-experience.md b/content/talks/dos-and-donts-of-high-performance-java-script-how-web-filings-new-open-source-project-improves-the-mobile-experience.md
index f3962910..10010870 100644
--- a/content/talks/dos-and-donts-of-high-performance-java-script-how-web-filings-new-open-source-project-improves-the-mobile-experience.md
+++ b/content/talks/dos-and-donts-of-high-performance-java-script-how-web-filings-new-open-source-project-improves-the-mobile-experience.md
@@ -7,11 +7,15 @@ tags: Performance
speaker: Tim McCall
---
+HTML5 is progressing fast, and so is the performance of mobile devices. However
+it is still a challenge to build ‘native’ like UI with HTML and JavaScript on
+mobile.
+The topic of discussion will be around using a brand new virtualized scrolling
+component as a case study. This ScrollList component is intended to provide
+near-native performance for huge amounts of content in an application built
+entirely on HTML5 and JavaScript.
-HTML5 is progressing fast, and so is the performance of mobile devices. However it is still a challenge to build ‘native’ like UI with HTML and JavaScript on mobile.
-
-The topic of discussion will be around using a brand new virtualized scrolling component as a case study. This ScrollList component is intended to provide near-native performance for huge amounts of content in an application built entirely on HTML5 and JavaScript.
-
-This ScrollList component is the first component to be released as part of Web UIComponents - a library developed internally at WebFilings, but now being released as an Open Source project.
-
+This ScrollList component is the first component to be released as part of Web
+UIComponents - a library developed internally at WebFilings, but now being
+released as an Open Source project.
diff --git a/content/talks/elm.md b/content/talks/elm.md
index 9626d872..379539e2 100644
--- a/content/talks/elm.md
+++ b/content/talks/elm.md
@@ -5,4 +5,6 @@ tags: Elm
speaker: Carl Olson
---
-Elm is a function language that is transpiled into Javascript. Elm has helpful error messages, no runtime exceptions, and is fast. In this talk I will give an overview of Elm and show its advantages over other frameworks and languages.
+Elm is a function language that is transpiled into Javascript. Elm has helpful
+error messages, no runtime exceptions, and is fast. In this talk I will give an
+overview of Elm and show its advantages over other frameworks and languages.
diff --git a/content/talks/exploring-evolutionary-computing-in-java-script.md b/content/talks/exploring-evolutionary-computing-in-java-script.md
index abcfa5f9..bab5af65 100644
--- a/content/talks/exploring-evolutionary-computing-in-java-script.md
+++ b/content/talks/exploring-evolutionary-computing-in-java-script.md
@@ -6,15 +6,14 @@ code: 'https://github.com/bozzltron/ec-toolkit'
slides: 'https://slides.com/bozzltron/evolutionary-computing'
---
-As a web developer, you find a rhythm of building backend and front-end services
-to accomplish a goal. You can get lost in the trees of frameworks, methodologies,
-and patterns centric to the web and miss the forest of computer science. This
-was my realization when I first learned about Evolutionary Computing, the idea
-that computers could produce meaningful results by mimicking biology was a
-fascinating paradigm shift.
+As a web developer, you find a rhythm of building backend and front-end
+services to accomplish a goal. You can get lost in the trees of frameworks,
+methodologies, and patterns centric to the web and miss the forest of computer
+science. This was my realization when I first learned about Evolutionary
+Computing, the idea that computers could produce meaningful results by
+mimicking biology was a fascinating paradigm shift.
-This talk is the story of my journey in understanding EC through JavaScript. I
+This talk is the story of my journey in understanding EC through JavaScript. I
am no expert on the topic, but I can demonstrate EC's basic mechanics. Coding
for a new paradigm as reinvigorated my passion for code and I hope it has the
same effect for those in attendance.
-
diff --git a/content/talks/firebase.md b/content/talks/firebase.md
index 3ef0c4e9..60700e55 100644
--- a/content/talks/firebase.md
+++ b/content/talks/firebase.md
@@ -5,10 +5,9 @@ tags: Firebase
speaker: Brad Dwyer
---
+Ever tried to make a realtime web application? Servers, scaling, cross browser
+compatibility issues, syncing, security... what a pain!
-
-Ever tried to make a realtime web application? Servers, scaling, cross browser compatibility issues, syncing, security... what a pain!
-
-Luckily, Firebase is here to save the day. We'll learn how to make a realtime web application with no servers and no fuss! Topics covered include: a brief overview, reading & writing data, authentication, and deployment.
-
-
+Luckily, Firebase is here to save the day. We'll learn how to make a realtime
+web application with no servers and no fuss! Topics covered include: a brief
+overview, reading & writing data, authentication, and deployment.
diff --git a/content/talks/from-angular-1-to-angular-2.md b/content/talks/from-angular-1-to-angular-2.md
index a37a847c..7b85df20 100644
--- a/content/talks/from-angular-1-to-angular-2.md
+++ b/content/talks/from-angular-1-to-angular-2.md
@@ -5,14 +5,18 @@ tags: Angular
speaker: Jaime Niswonger
---
+AngularJS is one of the most popular JavaScript frameworks available for
+creating web applications. The switch from Angular 1 and adoption of Angular 2
+has been a source of anxiety for members of the enterprise. That concern is
+what we seek to alleviate in this talk.
+Keyhole Principal Consultant Jaime Niswonger will present a live demonstration
+of Angular 2 in action.
-AngularJS is one of the most popular JavaScript frameworks available for creating web applications. The switch from Angular 1 and adoption of Angular 2 has been a source of anxiety for members of the enterprise. That concern is what we seek to alleviate in this talk.
-
-Keyhole Principal Consultant Jaime Niswonger will present a live demonstration of Angular 2 in action.
-
-Jaime will build an example Angular 2 application applicable to enterprise use. He will point out unique features and approaches the Angular 2 framework introduces, with an eye for potential pitfalls. The presentation will show how it contrasts from Angular 1 and other comparable JavaScript frameworks, in addition to a contrast from existing development patterns and techniques.
+Jaime will build an example Angular 2 application applicable to enterprise use.
+He will point out unique features and approaches the Angular 2 framework
+introduces, with an eye for potential pitfalls. The presentation will show how
+it contrasts from Angular 1 and other comparable JavaScript frameworks, in
+addition to a contrast from existing development patterns and techniques.
The presentation will be followed with a Q&A session.
-
-
diff --git a/content/talks/from-rx-to-redux-and-back.md b/content/talks/from-rx-to-redux-and-back.md
index 2b300b4e..5a1316c1 100644
--- a/content/talks/from-rx-to-redux-and-back.md
+++ b/content/talks/from-rx-to-redux-and-back.md
@@ -8,11 +8,15 @@ speaker: Eric Ponto
slides: 'http://slides.ericponto.com/dsmjs-rx-to-redux-and-back/'
---
+Change management is hard. When my model changes, how do I reflect that in my
+view? Hundreds of JavaScript libraries and frameworks have been built trying to
+solve that seemingly simple questions. This talk will seek to answer that
+question by follow my own journey of adopting the unidirectional data flow
+pattern that React has popularized.
-
-Change management is hard. When my model changes, how do I reflect that in my view? Hundreds of JavaScript libraries and frameworks have been built trying to solve that seemingly simple questions. This talk will seek to answer that question by follow my own journey of adopting the unidirectional data flow pattern that React has popularized.
-
-First we will dig in to the basic of Reactive Programming using RxJS and learn about using Observables to deal with asynchronous streams. Next we will explorer how Redux makes state management easier taking cues from the Elm Architecture which clearly separates the concerns of Models, Views, and Actions. And finally, we'll take lessons learned from Redux and apply them back to RxJS.
-
-
-
+First we will dig in to the basic of Reactive Programming using RxJS and learn
+about using Observables to deal with asynchronous streams. Next we will
+explorer how Redux makes state management easier taking cues from the Elm
+Architecture which clearly separates the concerns of Models, Views, and
+Actions. And finally, we'll take lessons learned from Redux and apply them back
+to RxJS.
diff --git a/content/talks/functional-programming-in-ember-the-ember-redux-origin-story.md b/content/talks/functional-programming-in-ember-the-ember-redux-origin-story.md
index 6d08d1fe..ae6c5f5a 100644
--- a/content/talks/functional-programming-in-ember-the-ember-redux-origin-story.md
+++ b/content/talks/functional-programming-in-ember-the-ember-redux-origin-story.md
@@ -9,8 +9,9 @@ speaker: Toran Billups
video: 'https://vimeo.com/166199795'
---
-
-
-I've become more interested in functional programming this year but didn't know how exactly I could bring that experience to ember. After a few hours cargo culting the react-redux api it was clear I had something that would forever change the way I wrote ember web applications. Join me for a live coding demo where I bring the mythical "functional core, imperative shell" concept to reality!
-
-
+I've become more interested in functional programming this year but didn't know
+how exactly I could bring that experience to ember. After a few hours cargo
+culting the react-redux api it was clear I had something that would forever
+change the way I wrote ember web applications. Join me for a live coding demo
+where I bring the mythical "functional core, imperative shell" concept to
+reality!
diff --git a/content/talks/functional-reactive-programming-in-java-script-with-rx-js.md b/content/talks/functional-reactive-programming-in-java-script-with-rx-js.md
index 1faa0673..3ef08886 100644
--- a/content/talks/functional-reactive-programming-in-java-script-with-rx-js.md
+++ b/content/talks/functional-reactive-programming-in-java-script-with-rx-js.md
@@ -7,10 +7,10 @@ tags:
speaker: Eric Ponto
---
+What is functional programming? What is reactive programming? How do those
+things come together to make application with JavaScript?
-
-What is functional programming? What is reactive programming? How do those things come together to make application with JavaScript?
-
-RxJS is a library that helps you manage asynchronous programming using observable streams. Observable steam? It's like a collection of events over time or like a series of promises. It is a powerful tool for managing data, events, concurrency, etc...
-
-
+RxJS is a library that helps you manage asynchronous programming using
+observable streams. Observable steam? It's like a collection of events over
+time or like a series of promises. It is a powerful tool for managing data,
+events, concurrency, etc...
diff --git a/content/talks/future-proof-your-javascript-with-babel.md b/content/talks/future-proof-your-javascript-with-babel.md
index 5866ac91..4b339d20 100644
--- a/content/talks/future-proof-your-javascript-with-babel.md
+++ b/content/talks/future-proof-your-javascript-with-babel.md
@@ -9,6 +9,7 @@ speaker: Joel Taddei
(formerly 6to5)
-Do you love reading about all of the cool features of ECMAScript 6 and want to start using them in production today? You might just be a build step away! We'll explore the cool things you could be writing right NOW with Babel. We'll also chat about Grunt integration.
-
-
+Do you love reading about all of the cool features of ECMAScript 6 and want to
+start using them in production today? You might just be a build step away!
+We'll explore the cool things you could be writing right NOW with Babel. We'll
+also chat about Grunt integration.
diff --git a/content/talks/gatsby-static-site-generation-with-react.md b/content/talks/gatsby-static-site-generation-with-react.md
index ab6648cb..0a703dcf 100644
--- a/content/talks/gatsby-static-site-generation-with-react.md
+++ b/content/talks/gatsby-static-site-generation-with-react.md
@@ -5,5 +5,10 @@ speaker: Dustin Schau
slides: 'https://gatsby.dustinschau.com'
---
-From the React docs to Formidable’s home page to seemingly everything in between, the “ludicrously fast” static site generator Gatsby is the engine powering a growing percentage of statically generated sites. This talk goes into the details of what Gatsby is, what static site generation really is, and how each of us armed with this combo can make performant, dynamic, and truly great static sites and performant web applications with the incredibly powerful combination of Gatsby, React, and static site generation.
-
+From the React docs to Formidable’s home page to seemingly everything in
+between, the “ludicrously fast” static site generator Gatsby is the engine
+powering a growing percentage of statically generated sites. This talk goes
+into the details of what Gatsby is, what static site generation really is, and
+how each of us armed with this combo can make performant, dynamic, and truly
+great static sites and performant web applications with the incredibly powerful
+combination of Gatsby, React, and static site generation.
diff --git a/content/talks/github-and-the-open-source-ecosphere.md b/content/talks/github-and-the-open-source-ecosphere.md
index ffb946c4..e3a36434 100644
--- a/content/talks/github-and-the-open-source-ecosphere.md
+++ b/content/talks/github-and-the-open-source-ecosphere.md
@@ -5,8 +5,10 @@ tags: Git
speaker: Chad Thompson
---
-
-
-If you've been attending user group meetings, or just had someone forward you a GitHub URL - you've seen some of the things that developers have been doing in the Open Source community. In this session, I'll talk about open source development, the GitHub ecosphere and how you can get involved. Along the way, we'll share some success stories (and not so successful stories) about getting involved in the community, how you can make positive contributions and what to expect when you start your own open source project.
-
-
+If you've been attending user group meetings, or just had someone forward you a
+GitHub URL - you've seen some of the things that developers have been doing in
+the Open Source community. In this session, I'll talk about open source
+development, the GitHub ecosphere and how you can get involved. Along the way,
+we'll share some success stories (and not so successful stories) about getting
+involved in the community, how you can make positive contributions and what to
+expect when you start your own open source project.
diff --git a/content/talks/going-async-with-promises-and-generators.md b/content/talks/going-async-with-promises-and-generators.md
index 41f53375..2ca4e29e 100644
--- a/content/talks/going-async-with-promises-and-generators.md
+++ b/content/talks/going-async-with-promises-and-generators.md
@@ -6,7 +6,4 @@ speaker: Eric Ponto
code: 'https://github.com/dsmjs/02-10-2015-promise-generators'
---
-
Writing asynchronous code can be tough and you can quickly find yourself in callback inception. But with ES6 ES2015's promises and generators, going async is now a little easier. Learn how promises help manage your callbacks and how generators give you finer control on when thing execute.
-
-
diff --git a/content/talks/hacking-a-facebook-instant-messenger-game.md b/content/talks/hacking-a-facebook-instant-messenger-game.md
index 31680221..1a94c853 100644
--- a/content/talks/hacking-a-facebook-instant-messenger-game.md
+++ b/content/talks/hacking-a-facebook-instant-messenger-game.md
@@ -10,7 +10,12 @@ tags:
speaker: Michael W. Clark
---
-Facebook's Instant Messenger Games are fun HTML5/Javascript games that anyone on messenger can play and build. They are quickly gaining popularity, but many of the developers are missing the mark when it comes to securing their game system. I have discovered a way to 'hack' the stats of many free games due to poor architecture and security considerations from one developer. I'll take you through a few hacks on one of my favorite time killers, Everwing. Free Gems, Trophies, Dragons and more are possible once you understand how the user state is built and transmitted in this game. I hope this demonstration will shed light on potential security pitfalls your javascript applications may have.
-
-
-
+Facebook's Instant Messenger Games are fun HTML5/Javascript games that anyone
+on messenger can play and build. They are quickly gaining popularity, but many
+of the developers are missing the mark when it comes to securing their game
+system. I have discovered a way to 'hack' the stats of many free games due to
+poor architecture and security considerations from one developer. I'll take you
+through a few hacks on one of my favorite time killers, Everwing. Free Gems,
+Trophies, Dragons and more are possible once you understand how the user state
+is built and transmitted in this game. I hope this demonstration will shed
+light on potential security pitfalls your javascript applications may have.
diff --git a/content/talks/handlebars-js-minimal-templating-on-steroids.md b/content/talks/handlebars-js-minimal-templating-on-steroids.md
index 6639edca..6b113999 100644
--- a/content/talks/handlebars-js-minimal-templating-on-steroids.md
+++ b/content/talks/handlebars-js-minimal-templating-on-steroids.md
@@ -5,8 +5,4 @@ tags: Templating
speaker: Thomas Lindner
---
-
-
Handlebars lets you build semantic client side templates quickly and easily.
-
-
diff --git a/content/talks/indexed-db-fundamentals.md b/content/talks/indexed-db-fundamentals.md
index 4a76b37f..3f55bdf0 100644
--- a/content/talks/indexed-db-fundamentals.md
+++ b/content/talks/indexed-db-fundamentals.md
@@ -5,8 +5,10 @@ tags: IndexDB
speaker: Nicholas Starke
---
-
-
-For this presentation, we will focus primarily on client-side usage of IndexedDB; specifically, a brief technical overview, then lots of “live coding” to show the syntax for CRUD operations on the client side as well as demonstrate the transactional system that is fundamental to IndexedDB. We’ll look at the tools available in Chrome to help debug / analyze / manipulate data, and then finish up by a brief discussion of real-world use cases, as well as limitations of IndexedDB.
-
-
+For this presentation, we will focus primarily on client-side usage of
+IndexedDB; specifically, a brief technical overview, then lots of “live coding”
+to show the syntax for CRUD operations on the client side as well as
+demonstrate the transactional system that is fundamental to IndexedDB. We’ll
+look at the tools available in Chrome to help debug / analyze / manipulate
+data, and then finish up by a brief discussion of real-world use cases, as well
+as limitations of IndexedDB.
diff --git a/content/talks/installing-and-setting-up-node-js-and-npm-a-beginner-friendly-guide.md b/content/talks/installing-and-setting-up-node-js-and-npm-a-beginner-friendly-guide.md
index b7696074..7c1c341d 100644
--- a/content/talks/installing-and-setting-up-node-js-and-npm-a-beginner-friendly-guide.md
+++ b/content/talks/installing-and-setting-up-node-js-and-npm-a-beginner-friendly-guide.md
@@ -7,8 +7,9 @@ tags:
speaker: Jeff Donovan
---
-
-
-Node.js has rapidly become one of the most popular web frameworks. Its package manager, npm, has become the largest software module epository in the world with over 200,000 packages. With so many packages, the quality and compatibility issues can vary widely. Also, with so many new and better packages coming out, the most widely used packages may not necessarily be the best.
-
-
+Node.js has rapidly become one of the most popular web frameworks. Its package
+manager, npm, has become the largest software module epository in the world
+with over 200,000 packages. With so many packages, the quality and
+compatibility issues can vary widely. Also, with so many new and better
+packages coming out, the most widely used packages may not necessarily be the
+best.
diff --git a/content/talks/intermediate-debugging.md b/content/talks/intermediate-debugging.md
index 466f500a..248ac63c 100644
--- a/content/talks/intermediate-debugging.md
+++ b/content/talks/intermediate-debugging.md
@@ -7,11 +7,12 @@ speaker: Toran Billups
code: 'https://github.com/toranb/intermediate-debugging'
---
-The Chrome developer tools are essential for problem solving but often the intermediate/ advanced features aren't widely known. Over the last 18 months I've run into 3 situations that I'd like to share with the community.
+The Chrome developer tools are essential for problem solving but often the
+intermediate/ advanced features aren't widely known. Over the last 18 months
+I've run into 3 situations that I'd like to share with the community.
1. Finding Swallowed exceptions
1. Attaching local devtools to remote headless chrome
1. Using devtools to debug nodeJS
Join me for a session of hands-on and practical javascript debugging!
-
diff --git a/content/talks/intro-to-absurd-js.md b/content/talks/intro-to-absurd-js.md
index 2ea62a2a..1e2d2cad 100644
--- a/content/talks/intro-to-absurd-js.md
+++ b/content/talks/intro-to-absurd-js.md
@@ -6,10 +6,8 @@ speaker: Eric Ponto
code: 'https://github.com/dsmjs/intro-to-absurd'
---
+Absurd.js started out as a JavaScript based CSS preprocessor. It has now grown
+into a framework with HTML preprocessing, dependency injection, and components.
-
-Absurd.js started out as a JavaScript based CSS preprocessor. It has now grown into a framework with HTML preprocessing, dependency injection, and components.
-
-In this talk we will go through the basic of building an application using Absurd.js.
-
-
+In this talk we will go through the basic of building an application using
+Absurd.js.
diff --git a/content/talks/intro-to-angular-js.md b/content/talks/intro-to-angular-js.md
index ea4e6794..a9afc6d4 100644
--- a/content/talks/intro-to-angular-js.md
+++ b/content/talks/intro-to-angular-js.md
@@ -5,7 +5,6 @@ tags: Angular
speaker: Jessa Sparks
---
-
-Tired of hearing about Ember? We finally have a talk about Angular at DSMJS! Learn the basics of Angular and how it can help you quickly develop JavaScript apps.
-
-
+Tired of hearing about Ember? We finally have a talk about Angular at DSMJS!
+Learn the basics of Angular and how it can help you quickly develop JavaScript
+apps.
diff --git a/content/talks/intro-to-es-6.md b/content/talks/intro-to-es-6.md
index e18a5a3d..5e8a4786 100644
--- a/content/talks/intro-to-es-6.md
+++ b/content/talks/intro-to-es-6.md
@@ -6,9 +6,11 @@ speaker: Eric Ponto
code: 'https://github.com/dsmjs/11-12-14-intro-to-es6'
---
+Sometimes with JavaScript you have to write some funky code and we all just
+accept it, because that's the way it is. Want to loop over the `arguments`
+passed into a function? Better use `Array.protototype.slice` on that bad boy
+first. Trying to do inheritance? Good luck.
-Sometimes with JavaScript you have to write some funky code and we all just accept it, because that's the way it is. Want to loop over the `arguments` passed into a function? Better use `Array.protototype.slice` on that bad boy first. Trying to do inheritance? Good luck.
-
-With the next generation of the language, some of these common problems become very easy. In this talk, we'll go over some of the new features of JavaScript and how to start using them today.
-
-
+With the next generation of the language, some of these common problems become
+very easy. In this talk, we'll go over some of the new features of JavaScript
+and how to start using them today.
diff --git a/content/talks/intro-to-grunt-stop-doing-things-manually.md b/content/talks/intro-to-grunt-stop-doing-things-manually.md
index 77a48364..f1f8a589 100644
--- a/content/talks/intro-to-grunt-stop-doing-things-manually.md
+++ b/content/talks/intro-to-grunt-stop-doing-things-manually.md
@@ -6,7 +6,8 @@ speaker: Chuck Rolek
code: 'https://github.com/dsmjs/grunt_intro_example'
---
-
-
-Grunt is a Javascript Task Runner. If you've never heard of Grunt then this presentation is for you. Grunt can help you automatically compile Less/Coffeescript, compile templates, aggregate/minify files, and much more . Don't worry though, you don't have to run Grunt every time you want it to do something. I'll show you the Grunt Watch feature, so you can code faster.
-
+Grunt is a Javascript Task Runner. If you've never heard of Grunt then this
+presentation is for you. Grunt can help you automatically compile
+Less/Coffeescript, compile templates, aggregate/minify files, and much more.
+Don't worry though, you don't have to run Grunt every time you want it to do
+something. I'll show you the Grunt Watch feature, so you can code faster.
diff --git a/content/talks/intro-to-gulp.md b/content/talks/intro-to-gulp.md
index cb717369..9c33b8e1 100644
--- a/content/talks/intro-to-gulp.md
+++ b/content/talks/intro-to-gulp.md
@@ -6,8 +6,6 @@ speaker: Brandon Williams
code: 'https://github.com/dsmjs/2014-03-ember-gulp-example'
---
-
-
-Here is a gentle introduction to Gulp and a brief comparison of Gulp and Grunt. A brief explanation of why all web developers should be using at least one of these two tools for all their projects.
-
-
+Here is a gentle introduction to Gulp and a brief comparison of Gulp and Grunt.
+A brief explanation of why all web developers should be using at least one of
+these two tools for all their projects.
diff --git a/content/talks/intro-to-web-components.md b/content/talks/intro-to-web-components.md
index 5ae75373..c870b597 100644
--- a/content/talks/intro-to-web-components.md
+++ b/content/talks/intro-to-web-components.md
@@ -5,8 +5,7 @@ tags: null
speaker: Eric Ponto
---
-
-
-Web Components might not be ready for use yet, but they are ramping up to take over the world of front end development. In this talk, I'll go over the 5 building blocks that make up web components and try to tie them back to the technologies you are probably using today.
-
-
+Web Components might not be ready for use yet, but they are ramping up to take
+over the world of front end development. In this talk, I'll go over the 5
+building blocks that make up web components and try to tie them back to the
+technologies you are probably using today.
diff --git a/content/talks/introduction-to-clojure-script.md b/content/talks/introduction-to-clojure-script.md
index 3f305dbb..1458e1d7 100644
--- a/content/talks/introduction-to-clojure-script.md
+++ b/content/talks/introduction-to-clojure-script.md
@@ -5,13 +5,19 @@ tags: null
speaker: David W. Body
---
+ClojureScript compiles [Clojure](http://clojure.org/) to optimized JavaScript.
+Specifically, the compiler emits JavaScript compatible with the advanced
+compilation mode of [Google Closure](http://code.google.com/closure/).
+We'll start with an introduction to [Clojure](http://clojure.org/), assuming no
+prior knowledge of the language. Clojure is a dynamic, general purpose
+programming language (actually a Lisp dialect) that features a rich set of
+immutable data structures, lazy sequences, first-class functions, macros, and
+other features.
-ClojureScript compiles [Clojure](http://clojure.org/) to optimized JavaScript. Specifically, the compiler emits JavaScript compatible with the advanced compilation mode of [Google Closure](http://code.google.com/closure/).
-
-We'll start with an introduction to [Clojure](http://clojure.org/), assuming no prior knowledge of the language. Clojure is a dynamic, general purpose programming language (actually a Lisp dialect) that features a rich set of immutable data structures, lazy sequences, first-class functions, macros, and other features.
-
-Then we'll look at ClojureScript, which compiles Clojure code to optimized JavaScript that can be used on a web page or run in another JavaScript environment such as [Node.js](http://nodejs.org/).
+Then we'll look at ClojureScript, which compiles Clojure code to optimized
+JavaScript that can be used on a web page or run in another JavaScript
+environment such as [Node.js](http://nodejs.org/).
We'll cover
@@ -19,7 +25,5 @@ We'll cover
* ClojureScript build process, including compilation modes
* JavaScript Interop
-If time permits, we'll look at the new [core.async](https://github.com/clojure/core.async) library that provides a solution to "callback hell."
-
-
-
+If time permits, we'll look at the new [core.async](https://github.com/clojure/core.async)
+library that provides a solution to "callback hell."
diff --git a/content/talks/is-your-grunt-file-maintainable.md b/content/talks/is-your-grunt-file-maintainable.md
index 02e3c054..a59c9dde 100644
--- a/content/talks/is-your-grunt-file-maintainable.md
+++ b/content/talks/is-your-grunt-file-maintainable.md
@@ -5,8 +5,7 @@ tags: Grunt
speaker: Brandon Williams
---
-
-
-This lightning talk will present the way that Grunt files used to be written and show a couple of Node modules (load-grunt-config and load-grunt-tasks) that allow your Gruntfile to be minimal. This is the JavaScript (or CoffeeScript) of the future.
-
-
+This lightning talk will present the way that Grunt files used to be written
+and show a couple of Node modules (load-grunt-config and load-grunt-tasks) that
+allow your Gruntfile to be minimal. This is the JavaScript (or CoffeeScript) of
+the future.
diff --git a/content/talks/it-hurts-so-good.md b/content/talks/it-hurts-so-good.md
index 385ca545..6ac74abc 100644
--- a/content/talks/it-hurts-so-good.md
+++ b/content/talks/it-hurts-so-good.md
@@ -7,9 +7,10 @@ speaker: Caleb Boyd & Dusty Greif
)
-While the bleeding-edge can be painful, there is an incredible amount of power to be found
-in future versions of javascript. We will be showing off some of the techniques and tools
-that TelePharm has been using to increase our productivity (We'd be going much faster if it wasn't for the new guy.) and code clarity as we build the next version of our application. Specifically, we will be
-demonstrating some useful patterns that have been previously unavailable in the javascript ecosystem.
-
-
+While the bleeding-edge can be painful, there is an incredible amount of power
+to be found in future versions of javascript. We will be showing off some of
+the techniques and tools that TelePharm has been using to increase our
+productivity (We'd be going much faster if it wasn't for the new guy.) and code
+clarity as we build the next version of our application. Specifically, we will
+be demonstrating some useful patterns that have been previously unavailable in
+the javascript ecosystem.
diff --git a/content/talks/java-script-game-development.md b/content/talks/java-script-game-development.md
index 88538ae9..72d656fb 100644
--- a/content/talks/java-script-game-development.md
+++ b/content/talks/java-script-game-development.md
@@ -10,14 +10,14 @@ code: 'https://github.com/dsmjs/2013-05-advanced-topic'
Joel will be giving a Part II version of his [DSM Webgeeks lunch presentation](http://www.dsmwebgeeks.com/2013/04/javascript-game-development-%E2%80%93-lunch-meeting-wed-april-17th/)
(April 17th) on Javascript Game Development and will build on some of the basic
-concepts he demonstrated. He will be modeling much of the talk after the Introducing
-HTML5 Game Development book by Jesse Freeman and will introduce concepts such as:
-
-- Gravity / Friction
-- Collision Objects
-- Player vs. Enemy entities
-
-If there is time and interest he will also demonstrate how to package an ImpactJS
-game to run native on an iOS device - while not writing ANY Objective-C.
+concepts he demonstrated. He will be modeling much of the talk after the
+Introducing HTML5 Game Development book by Jesse Freeman and will introduce
+concepts such as:
+* Gravity / Friction
+* Collision Objects
+* Player vs. Enemy entities
+If there is time and interest he will also demonstrate how to package an
+ImpactJS game to run native on an iOS device - while not writing ANY
+Objective-C.
diff --git a/content/talks/java-script-prototypes.md b/content/talks/java-script-prototypes.md
index 5b4ff760..e952bdd1 100644
--- a/content/talks/java-script-prototypes.md
+++ b/content/talks/java-script-prototypes.md
@@ -5,8 +5,8 @@ tags: Prototype
speaker: Matthew J. Morrison
---
-
-
-Have you ever come across JavaScript source that contained some weird thing called prototype? Did you think "Oh crap, I'm in too deep!" and just move onto something else? Prototypes in JavaScript are quite a bit different than most other popular languages. I will talk about what it is and demonstrate how to use it.
-
-
+Have you ever come across JavaScript source that contained some weird thing
+called prototype? Did you think "Oh crap, I'm in too deep!" and just move onto
+something else? Prototypes in JavaScript are quite a bit different than most
+other popular languages. I will talk about what it is and demonstrate how to
+use it.
diff --git a/content/talks/javascript-cryptography.md b/content/talks/javascript-cryptography.md
index e3301bba..4c69fdd4 100644
--- a/content/talks/javascript-cryptography.md
+++ b/content/talks/javascript-cryptography.md
@@ -5,11 +5,11 @@ tags: Cryotograpy
speaker: Nick Starke
---
-
-Advances in JavaScript cryptography have resulted in several libraries made available that can perform client side encryption. We’ll look at two of the most common, SJCL and CryptoJS, along with the WebCrypto API that the W3C is currently drafting. Finally, we’ll look at the practical applications and pitfalls of using client side encryption and discuss real world use cases.
-
-[Nick Starke](https://twitter.com/nstarke) is an information security developer with an interest in all things crypto.
-
-
-
-
+Advances in JavaScript cryptography have resulted in several libraries made
+available that can perform client side encryption. We’ll look at two of the
+most common, SJCL and CryptoJS, along with the WebCrypto API that the W3C is
+currently drafting. Finally, we’ll look at the practical applications and
+pitfalls of using client side encryption and discuss real world use cases.
+
+[Nick Starke](https://twitter.com/nstarke) is an information security developer
+with an interest in all things crypto.
diff --git a/content/talks/knockout-js.md b/content/talks/knockout-js.md
index b2afa91f..c9ed575a 100644
--- a/content/talks/knockout-js.md
+++ b/content/talks/knockout-js.md
@@ -5,8 +5,7 @@ tags: Knockout
speaker: Jon von Willern
---
-
-
-Love MVVM? Hate storing state in the DOM and complex DOM manipulation? Don't want to deal with Angular's routes, modules and service factory factories? Want excellent browser compatibility? Knockout JS just may be what you're looking for. Swing by this session and let Knockout knock your socks off.
-
-
+Love MVVM? Hate storing state in the DOM and complex DOM manipulation? Don't
+want to deal with Angular's routes, modules and service factory factories? Want
+excellent browser compatibility? Knockout JS just may be what you're looking
+for. Swing by this session and let Knockout knock your socks off.
diff --git a/content/talks/learn-react-in-isolation.md b/content/talks/learn-react-in-isolation.md
index ff2e105a..8942bfb4 100644
--- a/content/talks/learn-react-in-isolation.md
+++ b/content/talks/learn-react-in-isolation.md
@@ -16,4 +16,3 @@ uses React, there are lots of other tools that need to be pieced together
in addition to React itself. I'll highlight some ways to focus initial
learning on React and minimize the distraction from the tools that are not
important at the beginning.
-
diff --git a/content/talks/lets-talk-about-real-time-web-applications.md b/content/talks/lets-talk-about-real-time-web-applications.md
index b3552975..c9e5679f 100644
--- a/content/talks/lets-talk-about-real-time-web-applications.md
+++ b/content/talks/lets-talk-about-real-time-web-applications.md
@@ -6,12 +6,14 @@ speaker: Joel Taddei
code: 'https://github.com/dsmjs/2014-03-real-time-web'
---
+In this 25 minute run down we will delve into the socket.io library and how you
+can get up and running with it in minutes. The server / client relationship
+will be demystified, we will squash the optimistic rendering paradigm, and
+chances are you will be ready to implement your own chat room protocol that's
+on par with IRC.
-
-In this 25 minute run down we will delve into the socket.io library and how you can get up and running with it in minutes. The server / client relationship will be demystified, we will squash the optimistic rendering paradigm, and chances are you will be ready to implement your own chat room protocol that's on par with IRC.
-
-Okay so maybe that may be a bit ambitious, but i've been playing with socket.io a lot lately and i'd like to share my experiences with my favorite community in Des Moines!
+Okay so maybe that may be a bit ambitious, but i've been playing with socket.io
+a lot lately and i'd like to share my experiences with my favorite community in
+Des Moines!
Who knows, you may even get some JS related stickers just for showing up!
-
-
diff --git a/content/talks/make-money-freelancing.md b/content/talks/make-money-freelancing.md
index ae029242..24ec2e40 100644
--- a/content/talks/make-money-freelancing.md
+++ b/content/talks/make-money-freelancing.md
@@ -5,6 +5,8 @@ tags: Freelancing
speaker: Matthew Nuzum
---
-
-Over the last 15 years I've taken on several freelance projects. Some of these worked great and some were disasters. I'll share the tips for finding interesting challenges and ensuring that projects have a high chance of success. I'll cover how to charge, how much to charge, and ensuring that expectations are clear and met.
-
+Over the last 15 years I've taken on several freelance projects. Some of these
+worked great and some were disasters. I'll share the tips for finding
+interesting challenges and ensuring that projects have a high chance of
+success. I'll cover how to charge, how much to charge, and ensuring that
+expectations are clear and met.
diff --git a/content/talks/marble-testing-with-rx-js.md b/content/talks/marble-testing-with-rx-js.md
index 8088756d..b8308080 100644
--- a/content/talks/marble-testing-with-rx-js.md
+++ b/content/talks/marble-testing-with-rx-js.md
@@ -7,5 +7,5 @@ tags:
speaker: Eric Ponto
---
-Marble diagrams have been a useful tool in learning RxJS, but with RxJS 5 they are now a useful tool in writing unit tests for applications as well.
-
+Marble diagrams have been a useful tool in learning RxJS, but with RxJS 5 they
+are now a useful tool in writing unit tests for applications as well.
diff --git a/content/talks/no-meeting-in-april.md b/content/talks/no-meeting-in-april.md
index 24cf94c8..0c70095c 100644
--- a/content/talks/no-meeting-in-april.md
+++ b/content/talks/no-meeting-in-april.md
@@ -11,4 +11,3 @@ See you next month.
If you'd like to give a talk at an upcoming meeting, please
[propose your topic](https://github.com/dsmjs/talk-proposals/issues/new)
so we can get you on our list.
-
diff --git a/content/talks/no-meeting-in-december.md b/content/talks/no-meeting-in-december.md
index 0c4f585a..b31d4b7a 100644
--- a/content/talks/no-meeting-in-december.md
+++ b/content/talks/no-meeting-in-december.md
@@ -5,4 +5,5 @@ speaker: None
---
# No meeting in December 2017.
+
See you in January
diff --git a/content/talks/outside-in-test-driven-development.md b/content/talks/outside-in-test-driven-development.md
index a6cfe734..c43733fe 100644
--- a/content/talks/outside-in-test-driven-development.md
+++ b/content/talks/outside-in-test-driven-development.md
@@ -5,8 +5,7 @@ tags: TDD
speaker: Toran Billups
---
-
-
-Modern day single page apps incorporate acceptance tests, integration tests, and unit tests but when do write them and how do you choose what type to write and why? Join me for a 45 minute live coding session where I show a technique that's helped me build javascript applications sustainably from the outside in.
-
-
+Modern day single page apps incorporate acceptance tests, integration tests,
+and unit tests but when do write them and how do you choose what type to write
+and why? Join me for a 45 minute live coding session where I show a technique
+that's helped me build javascript applications sustainably from the outside in.
diff --git a/content/talks/over-mocking-under-delivering.md b/content/talks/over-mocking-under-delivering.md
index 3cdfbbea..5af1d8d2 100644
--- a/content/talks/over-mocking-under-delivering.md
+++ b/content/talks/over-mocking-under-delivering.md
@@ -7,7 +7,13 @@ speaker: Toran Billups
code: 'https://github.com/toranb/overmockin'
---
-The JavaScript community has a strong testing culture, but advanced topics like the intersection of integration and isolation testing can be as confusing as they are controversial. To make matters worse we are often tricked into believing that a mock library has the answer to all of our problems, making it difficult to evaluate when to use mocks (or even avoid them).
-
-This talk will give you a fresh perspective on the use and abuse of mock objects, explore why this topic is crucial for test suite reliability, and equip developers with strategies to make these distinctions without the guesswork.
+The JavaScript community has a strong testing culture, but advanced topics like
+the intersection of integration and isolation testing can be as confusing as
+they are controversial. To make matters worse we are often tricked into
+believing that a mock library has the answer to all of our problems, making it
+difficult to evaluate when to use mocks (or even avoid them).
+This talk will give you a fresh perspective on the use and abuse of mock
+objects, explore why this topic is crucial for test suite reliability, and
+equip developers with strategies to make these distinctions without the
+guesswork.
diff --git a/content/talks/phaser-js.md b/content/talks/phaser-js.md
index 2325ebf0..12d092ac 100644
--- a/content/talks/phaser-js.md
+++ b/content/talks/phaser-js.md
@@ -5,10 +5,8 @@ tags: Phaser
speaker: David Moritz
---
-
-Phaser is a gaming engine developed entirely in JavaScript. Phaser does the work of calculating gravity, collision-detection, level advancement, sprite animation and much more.
+Phaser is a gaming engine developed entirely in JavaScript. Phaser does the
+work of calculating gravity, collision-detection, level advancement, sprite
+animation and much more.
Come learn the basics of Phaser and how to make a quick, web-based game.
-
-
-
diff --git a/content/talks/react-render-client-or-server-document-query-selector-you-decide.md b/content/talks/react-render-client-or-server-document-query-selector-you-decide.md
index 9aa28f81..9d69ff7f 100644
--- a/content/talks/react-render-client-or-server-document-query-selector-you-decide.md
+++ b/content/talks/react-render-client-or-server-document-query-selector-you-decide.md
@@ -5,4 +5,7 @@ tags: React
speaker: Jason Bradley
---
-It is hard to read any JavaScript news without mention of ReactJS. This talk is an introduction to React and why it's awesome. We will talk about the Virtual DOM, the data flow, and where it fits in the JavaScript stack. I will share some of my experiences with React both best practices and future plans.
+It is hard to read any JavaScript news without mention of ReactJS. This talk
+is an introduction to React and why it's awesome. We will talk about the
+Virtual DOM, the data flow, and where it fits in the JavaScript stack. I will
+share some of my experiences with React both best practices and future plans.
diff --git a/content/talks/react-routing-lazy-loading-and-es-6.md b/content/talks/react-routing-lazy-loading-and-es-6.md
index 567413d4..4b0634d8 100644
--- a/content/talks/react-routing-lazy-loading-and-es-6.md
+++ b/content/talks/react-routing-lazy-loading-and-es-6.md
@@ -7,8 +7,10 @@ tags:
speaker: Toran Billups
---
-
-
-On the surface web components seem like a great way to get started, but as your JavaScript application grows how do you compose them together in a maintainable way? How can you add client side routing to keep your application from breaking the web? What about lazy loading entire modules inside your application on the fly? Join me for a live coding session where I show all the above incrementally by building out a JavaScript application with react and the react-router!
-
-
+On the surface web components seem like a great way to get started, but as
+your JavaScript application grows how do you compose them together in a
+maintainable way? How can you add client side routing to keep your application
+from breaking the web? What about lazy loading entire modules inside your
+application on the fly? Join me for a live coding session where I show all the
+above incrementally by building out a JavaScript application with react and the
+react-router!
diff --git a/content/talks/react-why-did-you-render.md b/content/talks/react-why-did-you-render.md
index f9fa30f3..e700e1dc 100644
--- a/content/talks/react-why-did-you-render.md
+++ b/content/talks/react-why-did-you-render.md
@@ -8,9 +8,16 @@ video: 'https://youtu.be/B-xPbKArsdI'
code: 'https://github.com/richardson-trevor/dsm-js'
---
-You've probably heard that React is performant. You may have also heard about React's smart diffing algorithm and how it intelligently updates the DOM to avoid unnecessary work. This is awesome, right? Well, yes, but you might not be getting the performance you think you are by default. As a teaser, by default React re-renders everything.. all the time.
+You've probably heard that React is performant. You may have also heard about
+React's smart diffing algorithm and how it intelligently updates the DOM to
+avoid unnecessary work. This is awesome, right? Well, yes, but you might not be
+getting the performance you think you are by default. As a teaser, by default
+React re-renders everything.. all the time.
-In this talk, I'll demo some surprises we have dealt with in production applications. We'll then go over some out-of-the-box (i.e., with Chrome) tools you can use to figure out why things aren't working as you'd expect.
-
-Parking is available in the lot to the south of the building as well as along the street. The meeting will be in the Gain Compliance office on the third floor.
+In this talk, I'll demo some surprises we have dealt with in production
+applications. We'll then go over some out-of-the-box (i.e., with Chrome) tools
+you can use to figure out why things aren't working as you'd expect.
+Parking is available in the lot to the south of the building as well as along
+the street. The meeting will be in the Gain Compliance office on the third
+floor.
diff --git a/content/talks/redux-a-case-study-in-performance-tuning.md b/content/talks/redux-a-case-study-in-performance-tuning.md
index 150b5016..5f91e2eb 100644
--- a/content/talks/redux-a-case-study-in-performance-tuning.md
+++ b/content/talks/redux-a-case-study-in-performance-tuning.md
@@ -7,5 +7,10 @@ video: 'https://vimeo.com/229775616'
code: 'https://github.com/toranb/redux-case-study-demo'
---
-I've been using redux with relational data and just assumed that updating a leaf node wouldn't require a full re-render of any parent component(s). As it turns out, unless you explicitly preserve the reference to a given data structure any connected component subscribed to that slice of state in the reducer will be notified to re-render. Join me for a very enlightening discussion on component state organization and the performance implications I faced trying to debunk one of the common criticisms of redux.
-
+I've been using redux with relational data and just assumed that updating a
+leaf node wouldn't require a full re-render of any parent component(s). As it
+turns out, unless you explicitly preserve the reference to a given data
+structure any connected component subscribed to that slice of state in the
+reducer will be notified to re-render. Join me for a very enlightening
+discussion on component state organization and the performance implications I
+faced trying to debunk one of the common criticisms of redux.
diff --git a/content/talks/redux-and-type-script-better-together.md b/content/talks/redux-and-type-script-better-together.md
index 2ed960c4..e77222fd 100644
--- a/content/talks/redux-and-type-script-better-together.md
+++ b/content/talks/redux-and-type-script-better-together.md
@@ -7,5 +7,7 @@ code: 'https://github.com/toranb/typescript-and-redux-demo'
video: 'https://vimeo.com/225780551'
---
-Having a blast with reducers, actions and middleware but feeling as if something is missing? What about types to describe the shape of your data structures in your reducers and actions? Join me for a beginner friendly look at what type safety comes to redux by adding TypeScript to the mix!
-
+Having a blast with reducers, actions and middleware but feeling as if
+something is missing? What about types to describe the shape of your data
+structures in your reducers and actions? Join me for a beginner friendly look
+at what type safety comes to redux by adding TypeScript to the mix!
diff --git a/content/talks/redux-journey-from-mvp-to-production.md b/content/talks/redux-journey-from-mvp-to-production.md
index 18dcdcda..3b366b07 100644
--- a/content/talks/redux-journey-from-mvp-to-production.md
+++ b/content/talks/redux-journey-from-mvp-to-production.md
@@ -5,8 +5,14 @@ tags: Redux
speaker: Michael Clark
---
-After inheriting a minimially viable product I was tasked with adding production maturity to our front end application. I'll be discussing an intro to Redux concepts and touching on multiple patterns and packages that helped propel our miniamally viable product into a much more mature platform.
+After inheriting a minimially viable product I was tasked with adding
+production maturity to our front end application. I'll be discussing an intro
+to Redux concepts and touching on multiple patterns and packages that helped
+propel our miniamally viable product into a much more mature platform.
## Parking
+
In garage (Entrance on locust toward 8th) or on street.
-If parking in the 700 Locust St. Garrage take the elevator to street level then you will have to walk out of the exit and walk 3/4 block back toward 8th street (west) along Locust street to gain access to the Space2Work street entrance.
+If parking in the 700 Locust St. Garrage take the elevator to street level then
+you will have to walk out of the exit and walk 3/4 block back toward 8th street
+(west) along Locust street to gain access to the Space2Work street entrance.
diff --git a/content/talks/redux-the-beginner-friendly-introduction.md b/content/talks/redux-the-beginner-friendly-introduction.md
index 11a2e32f..248565e6 100644
--- a/content/talks/redux-the-beginner-friendly-introduction.md
+++ b/content/talks/redux-the-beginner-friendly-introduction.md
@@ -5,7 +5,7 @@ tags: Redux
speaker: Toran Billups
---
-
-
-Does the word flux make you anxious? Does adding reducers, actions and a store to your JavaScript app sound like unnecessary complexity? Join me for a truly beginner friendly discussion about redux and why predictable state changes are the way forward!
-
+Does the word flux make you anxious? Does adding reducers, actions and a store
+to your JavaScript app sound like unnecessary complexity? Join me for a truly
+beginner friendly discussion about redux and why predictable state changes are
+the way forward!
diff --git a/content/talks/refactor-like-a-scientist.md b/content/talks/refactor-like-a-scientist.md
index 4ab87695..7f586bcc 100644
--- a/content/talks/refactor-like-a-scientist.md
+++ b/content/talks/refactor-like-a-scientist.md
@@ -5,11 +5,13 @@ tags: Scientist
speaker: Fred Galoso
---
+Tests are a good baseline for defining the behavior of a program. Though, on
+complicated programs, are tests enough?
-
-Tests are a good baseline for defining the behavior of a program. Though, on complicated programs, are tests enough?
-
-[Scientist](https://github.com/trello/scientist) is a [Node.js](https://nodejs.org/en/) library for creating and running experiments between old and new pieces of code. Scientist makes it easy to refactor critical code paths with confidence. It safely exposes refactorings to actual production interactions and measures potential mismatches. Part experience report, refactoring discussion, and workshop, this talk will also explore safe refactoring techniques at companies like Trello and [GitHub](https://github.com/).
-
-
-
+[Scientist](https://github.com/trello/scientist) is a [Node.js](https://nodejs.org/en/)
+library for creating and running experiments between old and new pieces of
+code. Scientist makes it easy to refactor critical code paths with confidence.
+It safely exposes refactorings to actual production interactions and measures
+potential mismatches. Part experience report, refactoring discussion, and
+workshop, this talk will also explore safe refactoring techniques at companies
+like Trello and [GitHub](https://github.com/).
diff --git a/content/talks/responsible-responsive-web-design.md b/content/talks/responsible-responsive-web-design.md
index a011e5e2..d5fad398 100644
--- a/content/talks/responsible-responsive-web-design.md
+++ b/content/talks/responsible-responsive-web-design.md
@@ -5,8 +5,8 @@ tags: Responsive Web Design
speaker: Matt Busche
---
-
-
-Come learn what Responsive Design is and how to build a website using it. We'll also cover how to design a website responsibly - How you can deliver a consisten user experience to users on small and large screen devices and how to decrease your website's page size quickly and effectively to ensure your website loads fast even on slow internet connections.
-
-
+Come learn what Responsive Design is and how to build a website using it. We'll
+also cover how to design a website responsibly - How you can deliver a
+consistent user experience to users on small and large screen devices and how
+to decrease your website's page size quickly and effectively to ensure your
+website loads fast even on slow internet connections.
diff --git a/content/talks/responsive-tables-with-tablesaw.md b/content/talks/responsive-tables-with-tablesaw.md
index e743548f..7b9eba73 100644
--- a/content/talks/responsive-tables-with-tablesaw.md
+++ b/content/talks/responsive-tables-with-tablesaw.md
@@ -7,7 +7,9 @@ tags:
speaker: Korina Borowycz
---
-
-
-Tablesaw is a collection of plugins for responsive tables. It does all the heavy lifting for a number of scenarios, it lets you apply rules to determine the presentation layout and priority of columns. It also gives a wide array of options to users so they can view data how they would like to. With at least 5 different main options you can add into tables it gives you a wide variety of options with minimal development time.
-
+Tablesaw is a collection of plugins for responsive tables. It does all the
+heavy lifting for a number of scenarios, it lets you apply rules to determine
+the presentation layout and priority of columns. It also gives a wide array
+of options to users so they can view data how they would like to. With at least
+5 different main options you can add into tables it gives you a wide variety of
+options with minimal development time.
diff --git a/content/talks/robotics-with-java-script.md b/content/talks/robotics-with-java-script.md
index 0cb6f7ec..6182703f 100644
--- a/content/talks/robotics-with-java-script.md
+++ b/content/talks/robotics-with-java-script.md
@@ -5,7 +5,7 @@ tags: Robotics
speaker: Michael Parker
---
-
-
-Learn how to leverage Node.JS on Raspberry Pi and Arduino microcontrollers to build small robots and IoT devices. Examples will include working with general purpose input/output, using servos and motors, communicating using radio transceivers, and interacting with LEDs and LCD screens.
-
+Learn how to leverage Node.JS on Raspberry Pi and Arduino microcontrollers to
+build small robots and IoT devices. Examples will include working with general
+purpose input/output, using servos and motors, communicating using radio
+transceivers, and interacting with LEDs and LCD screens.
diff --git a/content/talks/serverless-through-aws-sam.md b/content/talks/serverless-through-aws-sam.md
index 9c39861a..8e11da0e 100644
--- a/content/talks/serverless-through-aws-sam.md
+++ b/content/talks/serverless-through-aws-sam.md
@@ -10,12 +10,13 @@ tags:
- react
speaker: Todd Brunia
code: 'https://github.com/xilution/xilution-react-todomvc'
-slides: >-
- https://docs.google.com/presentation/d/1RpxSEoenX_YdrG-AOxpgvYMXHoke-Zsd91WF2MwVUkw/edit?usp=sharing
+slides: "https://docs.google.com/presentation/d/1RpxSEoenX_YdrG-AOxpgvYMXHoke\
+ -Zsd91WF2MwVUkw/edit?usp=sharing"
---
-Serverless is a super hot topic these days.
-You won’t want to miss this talk by Todd Brunia, Sr. Software Engineer at Source Allies and founder of Xilution.
-Through [example](https://github.com/xilution/xilution-react-todomvc), Todd will demonstrate how you can apply a serverless architecture to your next web app.
-Todd will demystify serverless jargon and share his experience building his startup entirely on AWS serverless architecture.
-
+Serverless is a super hot topic these days. You won’t want to miss this talk by
+Todd Brunia, Sr. Software Engineer at Source Allies and founder of Xilution.
+Through [example](https://github.com/xilution/xilution-react-todomvc), Todd
+will demonstrate how you can apply a serverless architecture to your next web
+app. Todd will demystify serverless jargon and share his experience building
+his startup entirely on AWS serverless architecture.
diff --git a/content/talks/testing-async-node-functions-with-mocha-and-jasmine-2-0.md b/content/talks/testing-async-node-functions-with-mocha-and-jasmine-2-0.md
index 8e28252c..06fc4fb5 100644
--- a/content/talks/testing-async-node-functions-with-mocha-and-jasmine-2-0.md
+++ b/content/talks/testing-async-node-functions-with-mocha-and-jasmine-2-0.md
@@ -6,8 +6,7 @@ speaker: Toran Billups
code: 'https://github.com/dsmjs/2014-06-testing-async-with-mocha-and-jasmine'
---
-
-
-Unit testing synchronous code in javascript is fairly straight forward, but what about async functions? Join me for a live coding session where I test drive a simple gulp task using mocha! I'll also show how to test basic async behavior with the latest jasmine framework.
-
-
+Unit testing synchronous code in javascript is fairly straight forward, but
+what about async functions? Join me for a live coding session where I test
+drive a simple gulp task using mocha! I'll also show how to test basic async
+behavior with the latest jasmine framework.
diff --git a/content/talks/the-future-a-story-about-the-v-next-developer-toolchain.md b/content/talks/the-future-a-story-about-the-v-next-developer-toolchain.md
index 582daf15..981af689 100644
--- a/content/talks/the-future-a-story-about-the-v-next-developer-toolchain.md
+++ b/content/talks/the-future-a-story-about-the-v-next-developer-toolchain.md
@@ -6,11 +6,10 @@ speaker: Toran Billups
video: 'https://vimeo.com/187938033'
---
+On large teams we spend a great deal of time providing accurate and concise
+instructions to reproduce a problem when QA finds an issue. What if instead we
+could export the state of the application and attach it as an artifact for the
+developer for further debugging and verification?
-
-On large teams we spend a great deal of time providing accurate and concise instructions to reproduce a problem when QA finds an issue. What if instead we could export the state of the application and attach it as an artifact for the developer for further debugging and verification?
-
-In this talk I'll discover a bug and show a QA/Dev workflow that I believe is the future of QA and Dev collaboration.
-
-
-
+In this talk I'll discover a bug and show a QA/Dev workflow that I believe is
+the future of QA and Dev collaboration.
diff --git a/content/talks/this-is-how-i-code-react-redux.md b/content/talks/this-is-how-i-code-react-redux.md
index e9ba6a35..26ac7490 100644
--- a/content/talks/this-is-how-i-code-react-redux.md
+++ b/content/talks/this-is-how-i-code-react-redux.md
@@ -7,8 +7,12 @@ tags:
- Redux
---
-Come checkout how I code my React/Redux projects. I'll be going over the architecture, project organization, libraries, and common patterns that I use to build developer friendly, scalable, reusable, and organized projects. Tutorials out there are great for learning React/Redux and small applications, but I'm going to dig deeper to show you how to create code that will last. (Some React/Redux experience is encouraged).
-
-_Note:_ to find Suite 604W, take the elevators up to the 6th floor and take a right and
-look for signs for [Trility Consulting](https://trility.io/).
+Come checkout how I code my React/Redux projects. I'll be going over the
+architecture, project organization, libraries, and common patterns that I use
+to build developer friendly, scalable, reusable, and organized projects.
+Tutorials out there are great for learning React/Redux and small applications,
+but I'm going to dig deeper to show you how to create code that will last.
+(Some React/Redux experience is encouraged).
+_Note:_ to find Suite 604W, take the elevators up to the 6th floor and take a
+right and look for signs for [Trility Consulting](https://trility.io/).
diff --git a/content/talks/umm-i-created-a-presentation-with-sailjs.md b/content/talks/umm-i-created-a-presentation-with-sailjs.md
index 10a5b8fd..f3e9506c 100644
--- a/content/talks/umm-i-created-a-presentation-with-sailjs.md
+++ b/content/talks/umm-i-created-a-presentation-with-sailjs.md
@@ -5,12 +5,15 @@ tags: Sails
speaker: Chuck Rolek
---
+Sailsjs is great for creating awesome backend applications. Its very quick to
+stand up an endpoint and fly forward. However, what if you wanted to use it as
+your presentation platform (like Revealjs)? This talk is focused around the
+flexibility that Sailjs provides it’s users.
-
-Sailsjs is great for creating awesome backend applications. Its very quick to stand up an endpoint and fly forward. However, what if you wanted to use it as your presentation platform (like Revealjs)? This talk is focused around the flexibility that Sailjs provides it’s users.
-
-**Chuck Rolek**
+__Chuck Rolek__
[@crolek](https://twitter.com/crolek)
-Fueled by silliness and coffee Chuck tries to create efficiency in everything he and others do. His specialties are Front-end development, architecture, continuous integration, and bringing much needed innovation to enterprises. He absolutely love technology, and spends a vast majority of his time learning about it or teaching it.
-
-
+Fueled by silliness and coffee Chuck tries to create efficiency in everything
+he and others do. His specialties are Front-end development, architecture,
+continuous integration, and bringing much needed innovation to enterprises. He
+absolutely love technology, and spends a vast majority of his time learning
+about it or teaching it.
diff --git a/content/talks/unit-and-integration-testing-better-together.md b/content/talks/unit-and-integration-testing-better-together.md
index c56d17b1..a8072e19 100644
--- a/content/talks/unit-and-integration-testing-better-together.md
+++ b/content/talks/unit-and-integration-testing-better-together.md
@@ -6,8 +6,8 @@ speaker: Toran Billups
code: 'https://github.com/dsmjs/2014-04-unit-and-integration-testing'
---
-
-
-The biggest challenge adopting test driven development is knowing when to write a unit test and/or integration test as you write new features or fix production bugs. During this short talk I'll test drive adding a new feature using both unit and integration tests. The focus of this talk is the inner dialog I have along the way (asking myself when each type of test is valuable and why).
-
-
+The biggest challenge adopting test driven development is knowing when to write
+a unit test and/or integration test as you write new features or fix production
+bugs. During this short talk I'll test drive adding a new feature using both
+unit and integration tests. The focus of this talk is the inner dialog I have
+along the way (asking myself when each type of test is valuable and why).
diff --git a/content/talks/unit-testing-methods-modules-in-isolation-with-q-unit.md b/content/talks/unit-testing-methods-modules-in-isolation-with-q-unit.md
index 09b4720e..fe5c5a8f 100644
--- a/content/talks/unit-testing-methods-modules-in-isolation-with-q-unit.md
+++ b/content/talks/unit-testing-methods-modules-in-isolation-with-q-unit.md
@@ -7,8 +7,8 @@ tags:
speaker: Jarrod Taylor
---
-
-
-Have you ever wanted to run a single unit test while you do test driven development in javascript? Are you using Karma and QUnit? During this talk I'll show how to add a plugin to the default karma test runner that lets you get fast feedback as you build your application test-first. This talk will be a basic intro to the plugin/karma/qunit and should be under 15 minutes.
-
-
+Have you ever wanted to run a single unit test while you do test driven
+development in javascript? Are you using Karma and QUnit? During this talk I'll
+show how to add a plugin to the default karma test runner that lets you get
+fast feedback as you build your application test-first. This talk will be a
+basic intro to the plugin/karma/qunit and should be under 15 minutes.
diff --git a/content/talks/universal-javascript-rendering-react-on-the-server-and-client.md b/content/talks/universal-javascript-rendering-react-on-the-server-and-client.md
index adf3c0da..b8ce6b68 100644
--- a/content/talks/universal-javascript-rendering-react-on-the-server-and-client.md
+++ b/content/talks/universal-javascript-rendering-react-on-the-server-and-client.md
@@ -5,4 +5,8 @@ tags: React
speaker: Logan Keenan
---
-Is your SPA was easily indexable, [Fast](https://blog.twitter.com/2012/improving-performance-on-twittercom), maintainable? I will show how to server side render any initial request into a SPA with [hapi](http://hapijs.com/) and [React](http://facebook.github.io/react/), and then client side render any following requests. Write your views in React once and don't worry where they render.
+Is your SPA was easily indexable, [Fast](https://blog.twitter.com/2012/improving-performance-on-twittercom),
+maintainable? I will show how to server side render any initial request into a
+SPA with [hapi](http://hapijs.com/) and [React](http://facebook.github.io/react/),
+and then client side render any following requests. Write your views in React
+once and don't worry where they render.
diff --git a/content/talks/using-backbone-to-visualize-music.md b/content/talks/using-backbone-to-visualize-music.md
index d6a6a255..65bc17c1 100644
--- a/content/talks/using-backbone-to-visualize-music.md
+++ b/content/talks/using-backbone-to-visualize-music.md
@@ -5,12 +5,8 @@ tags: Backbone
speaker: Jack Viers
---
-
-
For this talk, I'm thinking Harder, Better, Faster, Stronger -- using
Backbone to visualize music. I'll demonstrate how to use routers,
models, and views to do some cool stuff -- like making a media player
that can pick up where you left off, visualize the music to which you
are listening, and manage a music library -- ya know, non-crud stuff.
-
-
diff --git a/content/talks/using-es-6-modules-today.md b/content/talks/using-es-6-modules-today.md
index fb785125..65f73bb2 100644
--- a/content/talks/using-es-6-modules-today.md
+++ b/content/talks/using-es-6-modules-today.md
@@ -6,8 +6,9 @@ speaker: Toran Billups
code: 'https://github.com/dsmjs/es6-demo'
---
-
-
-Do you want to use the next generation of javascript modules today? Join me for a live coding session where I show how to write es6 modules and transpile them to AMD. Specifically I'll be showing off the es6-module-transpiler. If we have time I'll also show a bower demo where you can install and import modules on demand without having to worry about order dependent scripts (even for scripts with nested dependencies).
-
-
+Do you want to use the next generation of javascript modules today? Join me for
+a live coding session where I show how to write es6 modules and transpile them
+to AMD. Specifically I'll be showing off the es6-module-transpiler. If we have
+time I'll also show a bower demo where you can install and import modules on
+demand without having to worry about order dependent scripts (even for scripts
+with nested dependencies).
diff --git a/content/talks/vagrant.md b/content/talks/vagrant.md
index e8b5a65b..e74dd612 100644
--- a/content/talks/vagrant.md
+++ b/content/talks/vagrant.md
@@ -5,7 +5,12 @@ tags: Vagrant
speaker: Shawn Sparks
---
-
-Ever inherit an app only to spend hours or days trying to get it to run locally? Tried running apps locally on one OS when production servers use a different OS? Tried something new and completely messed up your workstation? Wondered if there’s a better way? Vagrant is a tool for solving these challenges. It relies on virtualization and automation tools to quickly spin up local development environments. Easily blow away and recreate environments after screwing them up. Generally make life easier for devs working with the app, allow them to focus on adding new features, and not wasting time getting their local environment setup.
-
-
+Ever inherit an app only to spend hours or days trying to get it to run
+locally? Tried running apps locally on one OS when production servers use a
+different OS? Tried something new and completely messed up your workstation?
+Wondered if there’s a better way? Vagrant is a tool for solving these
+challenges. It relies on virtualization and automation tools to quickly spin
+up local development environments. Easily blow away and recreate environments
+after screwing them up. Generally make life easier for devs working with the
+app, allow them to focus on adding new features, and not wasting time getting
+their local environment setup.
diff --git a/content/talks/vue-js.md b/content/talks/vue-js.md
index 614d8f9c..afc154aa 100644
--- a/content/talks/vue-js.md
+++ b/content/talks/vue-js.md
@@ -5,9 +5,9 @@ tags: Vue
speaker: Paul Rowe
---
-
-
VueJS, databinding for the rest of us
-Paul Rowe is a consultant at Source Allies. With nearly 10 years of software development experience, Paul enjoys dabbling in new technologies and discussing different solutions to any technical problems. Most recently, Paul is leading architecture design and development in C# and Node.js on Azure.
-
+Paul Rowe is a consultant at Source Allies. With nearly 10 years of software
+development experience, Paul enjoys dabbling in new technologies and discussing
+different solutions to any technical problems. Most recently, Paul is leading
+architecture design and development in C# and Node.js on Azure.
diff --git a/content/talks/what-is-this.md b/content/talks/what-is-this.md
index 11935b62..9c499b52 100644
--- a/content/talks/what-is-this.md
+++ b/content/talks/what-is-this.md
@@ -6,7 +6,9 @@ speaker: Matthew J. Morrizon
code: 'https://github.com/dsmjs/dsmjs-6-10-2014-prototype'
---
-
-Part of JavaScript’s charm and elegance stems from the fact that it works quite a bit differently than most other languages. The “this” keyword is one of the parts of JavaScript that seems to behave perhaps a bit differently than what might be expected. In addition to the “this” keyword, I will discuss execution contexts, the “new” operator, the call, apply and bind functions, and strict mode.
-
-
+Part of JavaScript’s charm and elegance stems from the fact that it works quite
+a bit differently than most other languages. The “this” keyword is one of the
+parts of JavaScript that seems to behave perhaps a bit differently than what
+might be expected. In addition to the “this” keyword, I will discuss execution
+contexts, the “new” operator, the call, apply and bind functions, and strict
+mode.
diff --git a/content/talks/why-single-page-apps-anyway.md b/content/talks/why-single-page-apps-anyway.md
index 59c5f105..9a99e5c2 100644
--- a/content/talks/why-single-page-apps-anyway.md
+++ b/content/talks/why-single-page-apps-anyway.md
@@ -6,7 +6,7 @@ speaker: Toran Billups
code: 'https://github.com/dsmjs/2013-08-20-why-single-page-apps'
---
-
-
-Ever wonder what all the hype around single page apps is about? Join us for a beginner friendly discussion about what makes building a single page app different from traditional web development and why you would choose one over the other.
-
+Ever wonder what all the hype around single page apps is about? Join us for a
+beginner friendly discussion about what makes building a single page app
+different from traditional web development and why you would choose one over
+the other.
diff --git a/content/talks/working-with-files-in-the-browser.md b/content/talks/working-with-files-in-the-browser.md
index 4e54a4b4..9901fee7 100644
--- a/content/talks/working-with-files-in-the-browser.md
+++ b/content/talks/working-with-files-in-the-browser.md
@@ -5,8 +5,7 @@ tags: File API
speaker: Eric Ponto
---
-
-
-Reading and manipulating files has traditionally been a job for the server. But with new JavaScript APIs, it opens a world of possibilities to work with files in the browser. Get a quick introduction to the File API, the FileReader object, and see a couple of cool things you can do with them.
-
-
+Reading and manipulating files has traditionally been a job for the server. But
+with new JavaScript APIs, it opens a world of possibilities to work with files
+in the browser. Get a quick introduction to the File API, the FileReader
+object, and see a couple of cool things you can do with them.
diff --git a/content/talks/writing-java-script-like-a-grown-up.md b/content/talks/writing-java-script-like-a-grown-up.md
index 39db6f42..1e817fec 100644
--- a/content/talks/writing-java-script-like-a-grown-up.md
+++ b/content/talks/writing-java-script-like-a-grown-up.md
@@ -6,13 +6,8 @@ speaker: Toran Billups
code: 'https://github.com/dsmjs/2013-05-intro-topic'
---
-
-
Are you producing write-once / read-never javascript? Do you want to
develop something you can reason about but just don't know where to start?
Join us for a 30 minute beginner friendly discussion about how I was writing
javascript a year ago and what I did to improve the quality of my client side
code!
-
-
-
diff --git a/content/talks/writing-my-first-non-trivial-single-page-app.md b/content/talks/writing-my-first-non-trivial-single-page-app.md
index 5393291c..6d8c0f48 100644
--- a/content/talks/writing-my-first-non-trivial-single-page-app.md
+++ b/content/talks/writing-my-first-non-trivial-single-page-app.md
@@ -5,9 +5,10 @@ tags: SPA
speaker: Toran Billups
---
-
-
-Anyone can hype their favorite javascript framework but what happens when you need to build something bigger than a todo app? I decided to find out for myself a few months back when I started writing my first ambitious javascript application.
+Anyone can hype their favorite javascript framework but what happens when you
+need to build something bigger than a todo app? I decided to find out for
+myself a few months back when I started writing my first ambitious javascript
+application.
During this talk I'll cover
@@ -24,5 +25,3 @@ During this talk I'll cover
* What build tool did I use and how did I deploy with it?
* When did I find unit tests helpful? When integration tests?
* Transactions -do we need them on the client?
-
-
diff --git a/content/talks/writing-tests-for-javascript-with-q-unit-sinon-and-karma.md b/content/talks/writing-tests-for-javascript-with-q-unit-sinon-and-karma.md
index 7a22bcc5..d2ca7a05 100644
--- a/content/talks/writing-tests-for-javascript-with-q-unit-sinon-and-karma.md
+++ b/content/talks/writing-tests-for-javascript-with-q-unit-sinon-and-karma.md
@@ -6,9 +6,8 @@ speaker: Toran Billups
code: 'https://github.com/dsmjs/2013-07-advanced-topic'
---
-
-
-So you want to write a single page app with your javascript framework of choice, but how do you test these rich web applications? Join me for a discussion about my frontend testing journey and a hands on demo of QUnit/Sinon and the Karma test runner. Some basic understanding of unit testing is recommended but not required.
-
-
-
+So you want to write a single page app with your javascript framework of
+choice, but how do you test these rich web applications? Join me for a
+discussion about my frontend testing journey and a hands on demo of QUnit/Sinon
+and the Karma test runner. Some basic understanding of unit testing is
+recommended but not required.
diff --git a/content/talks/writing-your-first-react-component.md b/content/talks/writing-your-first-react-component.md
index df95c8b1..61c4df3f 100644
--- a/content/talks/writing-your-first-react-component.md
+++ b/content/talks/writing-your-first-react-component.md
@@ -5,9 +5,7 @@ tags: React
speaker: Toran Billups
---
-
-
-React is a JavaScript library for building user interfaces. It's declarative, efficient, and extremely flexible. But what does all this mean exactly? Join me for a live coding session where I show off a few of the basic concepts required to write your first react component!
-
-
-
+React is a JavaScript library for building user interfaces. It's declarative,
+efficient, and extremely flexible. But what does all this mean exactly? Join me
+for a live coding session where I show off a few of the basic concepts required
+to write your first react component!
diff --git a/package-lock.json b/package-lock.json
index 7c2ea388..22bc9d1b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1477,6 +1477,24 @@
"react-simple-icons": "^1.0.0-beta.5"
}
},
+ "@dsmjs/remark-preset-lint": {
+ "version": "1.0.0-beta.3",
+ "resolved": "https://registry.npmjs.org/@dsmjs/remark-preset-lint/-/remark-preset-lint-1.0.0-beta.3.tgz",
+ "integrity": "sha512-aQnaDoVCrbHkj0bWi0i5As4Qh1sIKNKnYqOqpv1ETAuV55JW4XnfI9Pc1cqAHKtM8f1M9XbX19oylgrRhi9bSA==",
+ "dev": true,
+ "requires": {
+ "@form8ion/remark-lint-preset": "1.0.0"
+ }
+ },
+ "@form8ion/remark-lint-preset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@form8ion/remark-lint-preset/-/remark-lint-preset-1.0.0.tgz",
+ "integrity": "sha512-vO4PSEG6ImbQFwvoYhIXN6hiAynKQ7Cqg/ZmDyrCIYnCfLFHTIbaad0UQAVARWfYMkqVLrlPcqagMZ/5s9pbPg==",
+ "dev": true,
+ "requires": {
+ "remark-preset-lint-travi": "1.2.0"
+ }
+ },
"@gatsbyjs/relay-compiler": {
"version": "2.0.0-printer-fix.2",
"resolved": "https://registry.npmjs.org/@gatsbyjs/relay-compiler/-/relay-compiler-2.0.0-printer-fix.2.tgz",
@@ -1716,6 +1734,33 @@
"resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.32.tgz",
"integrity": "sha1-DTyzECL4Qn6ljACK8yuA2hJspOM="
},
+ "@types/unist": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz",
+ "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==",
+ "dev": true
+ },
+ "@types/vfile": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz",
+ "integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/unist": "*",
+ "@types/vfile-message": "*"
+ }
+ },
+ "@types/vfile-message": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-1.0.1.tgz",
+ "integrity": "sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/unist": "*"
+ }
+ },
"@webassemblyjs/ast": {
"version": "1.7.11",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz",
@@ -1960,12 +2005,6 @@
"resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
"integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM="
},
- "ansi": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
- "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=",
- "dev": true
- },
"ansi-align": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
@@ -2021,16 +2060,6 @@
"resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz",
"integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg=="
},
- "are-we-there-yet": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz",
- "integrity": "sha1-otKMkxAqpsyWJFomy5VN4G7FPww=",
- "dev": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.0 || ^1.1.13"
- }
- },
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
@@ -3293,6 +3322,12 @@
}
}
},
+ "co": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
+ "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
+ "dev": true
+ },
"coa": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
@@ -4394,12 +4429,6 @@
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
"optional": true
},
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
- "dev": true
- },
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -5644,6 +5673,15 @@
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
"integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ=="
},
+ "fault": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.3.tgz",
+ "integrity": "sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA==",
+ "dev": true,
+ "requires": {
+ "format": "^0.2.2"
+ }
+ },
"faye-websocket": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
@@ -5815,6 +5853,12 @@
"readable-stream": "^2.3.6"
}
},
+ "fn-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz",
+ "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=",
+ "dev": true
+ },
"follow-redirects": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
@@ -5843,6 +5887,12 @@
"mime-types": "^2.1.12"
}
},
+ "format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=",
+ "dev": true
+ },
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@@ -7027,19 +7077,18 @@
"unist-util-remove-position": "^1.1.2",
"unist-util-select": "^1.5.0",
"unist-util-visit": "^1.3.0"
- }
- },
- "gauge": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
- "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
- "dev": true,
- "requires": {
- "ansi": "^0.3.0",
- "has-unicode": "^2.0.0",
- "lodash.pad": "^4.1.0",
- "lodash.padend": "^4.1.0",
- "lodash.padstart": "^4.1.0"
+ },
+ "dependencies": {
+ "remark": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/remark/-/remark-9.0.0.tgz",
+ "integrity": "sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==",
+ "requires": {
+ "remark-parse": "^5.0.0",
+ "remark-stringify": "^5.0.0",
+ "unified": "^6.0.0"
+ }
+ }
}
},
"get-caller-file": {
@@ -7052,12 +7101,6 @@
"resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
"integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw="
},
- "get-stdin": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
- "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=",
- "dev": true
- },
"get-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
@@ -7298,113 +7341,6 @@
}
}
},
- "globstar": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/globstar/-/globstar-1.0.0.tgz",
- "integrity": "sha1-LabbfSXgvr46nyGadRz4rf2M2JY=",
- "dev": true,
- "requires": {
- "glob": "^5.0.2",
- "npmlog": "^1.2.0",
- "object-assign": "^2.0.0",
- "onetime": "^1.0.0",
- "yargs": "^3.5.4"
- },
- "dependencies": {
- "camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
- "dev": true
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "dev": true,
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
- "dev": true,
- "requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "object-assign": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
- "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
- "dev": true
- },
- "onetime": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
- "dev": true
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "dev": true,
- "requires": {
- "lcid": "^1.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "window-size": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
- "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
- "dev": true
- },
- "yargs": {
- "version": "3.32.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
- "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
- "dev": true,
- "requires": {
- "camelcase": "^2.0.1",
- "cliui": "^3.0.3",
- "decamelize": "^1.1.1",
- "os-locale": "^1.4.0",
- "string-width": "^1.0.1",
- "window-size": "^0.1.4",
- "y18n": "^3.2.0"
- }
- }
- }
- },
"good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
@@ -7437,12 +7373,6 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
},
- "graceful-readlink": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
- "dev": true
- },
"graphql": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/graphql/-/graphql-14.2.1.tgz",
@@ -7627,12 +7557,6 @@
"has-symbol-support-x": "^1.4.1"
}
},
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
- "dev": true
- },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -8395,6 +8319,12 @@
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
"integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
},
+ "irregular-plurals": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-2.0.0.tgz",
+ "integrity": "sha512-Y75zBYLkh0lJ9qxeHlMjQ7bSbyiSqNW/UOPWDmzC7cXskL1hekSITh1Oc6JV0XCWWZ9DE8VYSB71xocLk3gmGw==",
+ "dev": true
+ },
"is-absolute": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
@@ -8560,6 +8490,12 @@
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-1.1.0.tgz",
"integrity": "sha1-8EN01O7lMQ6ajhE78UlUEeRhdqE="
},
+ "is-empty": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz",
+ "integrity": "sha1-3pu1snhzigWgsJpX4ftNSjQan2s=",
+ "dev": true
+ },
"is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
@@ -8593,6 +8529,12 @@
"resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz",
"integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A=="
},
+ "is-hidden": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-hidden/-/is-hidden-1.1.2.tgz",
+ "integrity": "sha512-kytBeNVW2QTIqZdJBDKIjP+EkUTzDT07rsc111w/gxqR6wK3ODkOswcpxgED6HU6t7fEhOxqojVZ2a2kU9rj+A==",
+ "dev": true
+ },
"is-installed-globally": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
@@ -9051,6 +8993,12 @@
"resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
"integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA="
},
+ "levenshtein-edit-distance": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/levenshtein-edit-distance/-/levenshtein-edit-distance-1.0.0.tgz",
+ "integrity": "sha1-iVuvR4zOi1waDSfkXXwdl4pmHkk=",
+ "dev": true
+ },
"levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -9060,15 +9008,6 @@
"type-check": "~0.3.2"
}
},
- "linkify-it": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz",
- "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==",
- "dev": true,
- "requires": {
- "uc.micro": "^1.0.1"
- }
- },
"load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@@ -9095,6 +9034,24 @@
}
}
},
+ "load-plugin": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-2.3.1.tgz",
+ "integrity": "sha512-dYB1lbwqHgPTrruy9glukCu8Ya9vzj6TMfouCtj2H/GuJ+8syioisgKTBPxnCi6m8K8jINKfTOxOHngFkUYqHw==",
+ "dev": true,
+ "requires": {
+ "npm-prefix": "^1.2.0",
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ }
+ }
+ },
"loader-fs-cache": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz",
@@ -9210,12 +9167,6 @@
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
},
- "lodash.differencewith": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz",
- "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=",
- "dev": true
- },
"lodash.escaperegexp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
@@ -9226,12 +9177,6 @@
"resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz",
"integrity": "sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc="
},
- "lodash.flatten": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
- "dev": true
- },
"lodash.flattendeep": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
@@ -9287,24 +9232,6 @@
"resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
"integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ=="
},
- "lodash.pad": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
- "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA=",
- "dev": true
- },
- "lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=",
- "dev": true
- },
- "lodash.padstart": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
- "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=",
- "dev": true
- },
"lodash.snakecase": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
@@ -9451,78 +9378,17 @@
"resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz",
"integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA=="
},
- "markdown-it": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
- "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "entities": "~1.1.1",
- "linkify-it": "^2.0.0",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
- }
+ "markdown-extensions": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz",
+ "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==",
+ "dev": true
},
"markdown-table": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.2.tgz",
"integrity": "sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw=="
},
- "markdownlint": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.15.0.tgz",
- "integrity": "sha512-sNcrSrUgpNbTQX6rPIMd+RI9rAryGTEbDI9VFpcFyijlC5g8gpkma49k5p98yFLdNbdcB3VW69UJ0smxvTVw6g==",
- "dev": true,
- "requires": {
- "markdown-it": "8.4.2"
- }
- },
- "markdownlint-cli": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.17.0.tgz",
- "integrity": "sha512-/MInVAuNUDGj5lWeAweL2s4Wk0BY2UqOUcOuOMhY62LXmQZU9qZiFJ5XgHrAZVMggFH/vPupCiUiAMFgGIOqHg==",
- "dev": true,
- "requires": {
- "commander": "~2.9.0",
- "deep-extend": "~0.5.1",
- "get-stdin": "~5.0.1",
- "glob": "~7.1.2",
- "js-yaml": "^3.13.1",
- "lodash.differencewith": "~4.5.0",
- "lodash.flatten": "~4.4.0",
- "markdownlint": "~0.15.0",
- "minimatch": "~3.0.4",
- "rc": "~1.2.7"
- },
- "dependencies": {
- "commander": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
- "dev": true,
- "requires": {
- "graceful-readlink": ">= 1.0.0"
- }
- },
- "deep-extend": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz",
- "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==",
- "dev": true
- },
- "js-yaml": {
- "version": "3.13.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
- "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- }
- }
- },
"md5": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
@@ -9551,6 +9417,12 @@
"safe-buffer": "^5.1.2"
}
},
+ "mdast-comment-marker": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-1.1.1.tgz",
+ "integrity": "sha512-TWZDaUtPLwKX1pzDIY48MkSUQRDwX/HqbTB4m3iYdL/zosi/Z6Xqfdv0C0hNVKvzrPjZENrpWDt4p4odeVO0Iw==",
+ "dev": true
+ },
"mdast-util-compact": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz",
@@ -9567,6 +9439,12 @@
"unist-util-visit": "^1.0.0"
}
},
+ "mdast-util-heading-style": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-1.0.5.tgz",
+ "integrity": "sha512-8zQkb3IUwiwOdUw6jIhnwM6DPyib+mgzQuHAe7j2Hy1rIarU4VUxe472bp9oktqULW3xqZE+Kz6OD4Gi7IA3vw==",
+ "dev": true
+ },
"mdast-util-to-hast": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-3.0.4.tgz",
@@ -20857,6 +20735,17 @@
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
"integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg=="
},
+ "npm-prefix": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/npm-prefix/-/npm-prefix-1.2.0.tgz",
+ "integrity": "sha1-5hlFX3B0ulTMZtbQ033Z8b5ry8A=",
+ "dev": true,
+ "requires": {
+ "rc": "^1.1.0",
+ "shellsubstitute": "^1.1.0",
+ "untildify": "^2.1.0"
+ }
+ },
"npm-run-all": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
@@ -20929,17 +20818,6 @@
"path-key": "^2.0.0"
}
},
- "npmlog": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz",
- "integrity": "sha1-KOe+YZYJtT960d0wChDWTXFiaLY=",
- "dev": true,
- "requires": {
- "ansi": "~0.3.0",
- "are-we-there-yet": "~1.0.0",
- "gauge": "~1.2.0"
- }
- },
"nth-check": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
@@ -21168,6 +21046,12 @@
"resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
"integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
},
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
"os-locale": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
@@ -21556,6 +21440,15 @@
"semver-compare": "^1.0.0"
}
},
+ "plur": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-3.1.1.tgz",
+ "integrity": "sha512-t1Ax8KUvV3FFII8ltczPn2tJdjqbd1sIzu6t4JL7nQ3EyeL/lTrj5PWKb06ic5/6XYDr65rQ4uzQEGN70/6X5w==",
+ "dev": true,
+ "requires": {
+ "irregular-plurals": "^2.0.0"
+ }
+ },
"pnp-webpack-plugin": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.4.1.tgz",
@@ -22288,6 +22181,15 @@
"xtend": "^4.0.1"
}
},
+ "propose": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/propose/-/propose-0.0.5.tgz",
+ "integrity": "sha1-SKBl2ex9TIZn9AULFcSi2F28pWs=",
+ "dev": true,
+ "requires": {
+ "levenshtein-edit-distance": "^1.0.0"
+ }
+ },
"proxy-addr": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
@@ -22954,17 +22856,379 @@
}
},
"remark": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/remark/-/remark-9.0.0.tgz",
- "integrity": "sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz",
+ "integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==",
+ "dev": true,
"requires": {
- "remark-parse": "^5.0.0",
- "remark-stringify": "^5.0.0",
- "unified": "^6.0.0"
- }
- },
- "remark-parse": {
- "version": "5.0.0",
+ "remark-parse": "^6.0.0",
+ "remark-stringify": "^6.0.0",
+ "unified": "^7.0.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
+ "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
+ "dev": true
+ },
+ "remark-parse": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz",
+ "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==",
+ "dev": true,
+ "requires": {
+ "collapse-white-space": "^1.0.2",
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "is-word-character": "^1.0.0",
+ "markdown-escapes": "^1.0.0",
+ "parse-entities": "^1.1.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "trim": "0.0.1",
+ "trim-trailing-lines": "^1.0.0",
+ "unherit": "^1.0.4",
+ "unist-util-remove-position": "^1.0.0",
+ "vfile-location": "^2.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "remark-stringify": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz",
+ "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==",
+ "dev": true,
+ "requires": {
+ "ccount": "^1.0.0",
+ "is-alphanumeric": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "longest-streak": "^2.0.1",
+ "markdown-escapes": "^1.0.0",
+ "markdown-table": "^1.1.0",
+ "mdast-util-compact": "^1.0.0",
+ "parse-entities": "^1.0.2",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "stringify-entities": "^1.0.1",
+ "unherit": "^1.0.4",
+ "xtend": "^4.0.1"
+ }
+ },
+ "unified": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz",
+ "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "@types/vfile": "^3.0.0",
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^1.1.0",
+ "trough": "^1.0.0",
+ "vfile": "^3.0.0",
+ "x-is-string": "^0.1.0"
+ }
+ },
+ "vfile": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz",
+ "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^2.0.0",
+ "replace-ext": "1.0.0",
+ "unist-util-stringify-position": "^1.0.0",
+ "vfile-message": "^1.0.0"
+ }
+ }
+ }
+ },
+ "remark-cli": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-6.0.1.tgz",
+ "integrity": "sha512-h7Hwnfdcm5J03t2mxhl9BAav+Goqauqfz3LhpE7TP+RIiPnK6njU7qRDD7qlUd/hLyMSB+WBjYc7gVDQT3pv0A==",
+ "dev": true,
+ "requires": {
+ "markdown-extensions": "^1.1.0",
+ "remark": "^10.0.0",
+ "unified-args": "^6.0.0"
+ }
+ },
+ "remark-frontmatter": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.2.tgz",
+ "integrity": "sha512-2eayxITZ8rezsXdgcXnYB3iLivohm2V/ZT4Ne8uhua6A4pk6GdLE2ZzJnbnINtD1HRLaTdB7RwF9sgUbMptJZA==",
+ "dev": true,
+ "requires": {
+ "fault": "^1.0.1",
+ "xtend": "^4.0.1"
+ }
+ },
+ "remark-lint": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-6.0.4.tgz",
+ "integrity": "sha512-miD6SKhjEkLgdJXgAmNhGsdY1yIGAzwpoGIn/59MR6nZhshdxSm9/pLPiw9fK3loNASA3j7k//kea6x5vHb+jQ==",
+ "dev": true,
+ "requires": {
+ "remark-message-control": "^4.0.0"
+ }
+ },
+ "remark-lint-final-definition": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-1.0.2.tgz",
+ "integrity": "sha512-F+n8eauYOJGdcSrnD7w2YgQSERx1rAwXTxStaJ2tLmoXlT7eQgpVGHz1U4Y76cg8OANbq8pT0KTNJ85JNqkq4g==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-final-newline": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-1.0.2.tgz",
+ "integrity": "sha512-hW/lbDwVKtME3jIcJWJ16wBtoJdFPWIiu0fEI93yzNTjeB1g3VSWJp66dHbtCLYwquRS5fr8UlGx7JxIu1kiuA==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0"
+ }
+ },
+ "remark-lint-hard-break-spaces": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-1.0.3.tgz",
+ "integrity": "sha512-GiC0uXeFwef6/Pfo+EYBN0WIVlEFffh+9TdeJ4uLt89ZweaRVDPCTJQqkkuXoiXSPnZGD7cGHdkWCfXU1PaU7Q==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-list-item-bullet-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-1.0.2.tgz",
+ "integrity": "sha512-zvyQD6mJLRratZjk4Dw7D4vh73L43NXNCcap/6TxcmU9SKO7dXzoh8Ap9tyaFLic0LnHFc3Gx1pqYiPQ7PnL2g==",
+ "dev": true,
+ "requires": {
+ "plur": "^3.0.0",
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-list-item-indent": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-1.0.3.tgz",
+ "integrity": "sha512-/IcVUPIxQ2X/oCKzqiAtH85CS8An3xQbcMD0DRBHZjBrIUO0Ot7lBiQedSHwCg9lnh7pDOTvHrmNS3FaWjVQqw==",
+ "dev": true,
+ "requires": {
+ "plur": "^3.0.0",
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-maximum-line-length": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-1.2.0.tgz",
+ "integrity": "sha512-tqqZ8YCvfz9ZvKN2vRA12qgNKM+DKb73rJMMb6zq9yd2Nt32n7S+1nobSpKQqAR7/bn2ysUGu/NNA7FjlRXt6g==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.4.0"
+ }
+ },
+ "remark-lint-no-auto-link-without-protocol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-1.0.2.tgz",
+ "integrity": "sha512-3GtkSxOyd6we4b8JdtJsNgt8+3UN+hpw1UiMoE9X96ahc1rqsCFm6miorNUnF/gfPQ1liHBvZUed2SIenDmpkg==",
+ "dev": true,
+ "requires": {
+ "mdast-util-to-string": "^1.0.2",
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-no-blockquote-without-marker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-2.0.2.tgz",
+ "integrity": "sha512-jkfZ4hFiviZttEo7Ac7GZWFgMQ/bdVPfSluLeuf+qwL8sQvR4ClklKJ0Xbkk3cLRjvlGsc8U8uZR8qqH5MSLoA==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1",
+ "vfile-location": "^2.0.1"
+ }
+ },
+ "remark-lint-no-duplicate-definitions": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-1.0.3.tgz",
+ "integrity": "sha512-8iQhawbIMwQILRpCsoYCVYrSF2rrWEfF7KPvIIJavp0TA02Wv+SX7b3hQslNtvso0Ka2VX+kI1+x+QzG16Duqg==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-stringify-position": "^1.1.2",
+ "unist-util-visit": "^1.4.0"
+ }
+ },
+ "remark-lint-no-empty-url": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-empty-url/-/remark-lint-no-empty-url-1.0.4.tgz",
+ "integrity": "sha512-9O5qAiE0mn4rLfw3IoO94C3bLHznCffYaGJjwteBgPbB2j9c4lTyBIARvahf+8DzB/q3woBEO7Hprheqiw/Jnw==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-visit": "^1.4.0"
+ }
+ },
+ "remark-lint-no-heading-content-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-1.0.2.tgz",
+ "integrity": "sha512-g2MVmJhHbfFungca5WGWVB9bBY4YTrY6og20U+6DxkdS4ngoc8ezXUt8zV1HHEn0M/GdKr9F7fYhXcekJd/qaw==",
+ "dev": true,
+ "requires": {
+ "mdast-util-heading-style": "^1.0.2",
+ "plur": "^3.0.0",
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-no-inline-padding": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-1.0.3.tgz",
+ "integrity": "sha512-zEe7LjM13kQshdBtPnSzzCUNzGIX/XiGspMb7HZBCDWYsPJ73s01X+m+YI99Dz7wKvB3EUTZ7/MFhTUIvqcGRw==",
+ "dev": true,
+ "requires": {
+ "mdast-util-to-string": "^1.0.2",
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-visit": "^1.4.0"
+ }
+ },
+ "remark-lint-no-literal-urls": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-1.0.2.tgz",
+ "integrity": "sha512-+mWZIJA4yAqpKIclcFP5wRy/6hxcPnfU9Xmgp4fR7OD4JQ4JHkKq9O7MUbda14PLez1aMX+Is0O0hWI7OuqsSw==",
+ "dev": true,
+ "requires": {
+ "mdast-util-to-string": "^1.0.2",
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-no-shortcut-reference-image": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-1.0.2.tgz",
+ "integrity": "sha512-IVYv5pgyf70jYcrn+BNHVO37BuQJg26rFOLzi2mj+/8EdFpolJiJcTvkChJgz5yip7317DmQQSNLX6gCExuDrQ==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-no-shortcut-reference-link": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-1.0.3.tgz",
+ "integrity": "sha512-v5mk4wYQL+YRmlOTqi8avpzhoGZg+P42dDRda2jedysDIx7TJBEXUH6oMFEbo/qV6PMmtr7fr066M3RrOrLpiQ==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-no-tabs": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-1.0.2.tgz",
+ "integrity": "sha512-jPjRLHyzO4lO6orhOmHd6AN6mVc/uMWvYZ3qD41dniktnLyHEbIG6DpPxixjfpmEe0wi73RXMywKHrWshLJwAg==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "vfile-location": "^2.0.1"
+ }
+ },
+ "remark-lint-no-undefined-references": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-1.1.0.tgz",
+ "integrity": "sha512-XscZKp6AyQjsdwo68R6IwCKQH89PlTY7c3ar4GAsjc7oEJHw9h2EvtlhcQtHPV+E1Op/XRg0gJGJ5UZzY7ZjaQ==",
+ "dev": true,
+ "requires": {
+ "collapse-white-space": "^1.0.4",
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-visit": "^1.4.0"
+ }
+ },
+ "remark-lint-no-unused-definitions": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-1.0.4.tgz",
+ "integrity": "sha512-wKh10+2hiVKEkVXfW5zC8lyDCJQM6lpyRsyIVxq0ROHkrAjsO+seljEQCOsIJ55nZHbdCOCFDQosA0/5wgryRw==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-visit": "^1.4.0"
+ }
+ },
+ "remark-lint-ordered-list-marker-style": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-1.0.2.tgz",
+ "integrity": "sha512-4EHuHxZqy8IT4k+4Vc8P38I34AiZfgl07fS5/iqGhCdoSMCvvxdOuzTWTgpDFbx/W2QpHelBfJ+FtOp+E0J4Lg==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-lint-ordered-list-marker-value": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-1.0.2.tgz",
+ "integrity": "sha512-vIPD07u+FBjTjEETZ+UWUp2nydzvOe5AHIX812JlNXWuHYuCybq8DGnkYUcoiK3HbIE+KdG+e7C5xHkim0PSjw==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-generated": "^1.1.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^1.1.1"
+ }
+ },
+ "remark-message-control": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-4.2.0.tgz",
+ "integrity": "sha512-WXH2t5ljTyhsXlK1zPBLF3iPHbXl58R94phPMreS1xcHWBZJt6Oiu8RtNjy1poZFb3PqKnbYLJeR/CWcZ1bTFw==",
+ "dev": true,
+ "requires": {
+ "mdast-comment-marker": "^1.0.0",
+ "unified-message-control": "^1.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "remark-parse": {
+ "version": "5.0.0",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz",
"integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==",
"requires": {
@@ -22985,6 +23249,46 @@
"xtend": "^4.0.1"
}
},
+ "remark-preset-lint-recommended": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-3.0.2.tgz",
+ "integrity": "sha512-os4YNWLbkorjvDHVB4o+zCCufZLzGoD4Iwdk7SV7bSIZurUTrMp/ZrpNytyetN9ugIMXuHbWJUE+dF0ND+WorQ==",
+ "dev": true,
+ "requires": {
+ "remark-lint": "^6.0.0",
+ "remark-lint-final-newline": "^1.0.0",
+ "remark-lint-hard-break-spaces": "^1.0.0",
+ "remark-lint-list-item-bullet-indent": "^1.0.0",
+ "remark-lint-list-item-indent": "^1.0.0",
+ "remark-lint-no-auto-link-without-protocol": "^1.0.0",
+ "remark-lint-no-blockquote-without-marker": "^2.0.0",
+ "remark-lint-no-duplicate-definitions": "^1.0.0",
+ "remark-lint-no-heading-content-indent": "^1.0.0",
+ "remark-lint-no-inline-padding": "^1.0.0",
+ "remark-lint-no-literal-urls": "^1.0.0",
+ "remark-lint-no-shortcut-reference-image": "^1.0.0",
+ "remark-lint-no-shortcut-reference-link": "^1.0.0",
+ "remark-lint-no-undefined-references": "^1.0.0",
+ "remark-lint-no-unused-definitions": "^1.0.0",
+ "remark-lint-ordered-list-marker-style": "^1.0.0"
+ }
+ },
+ "remark-preset-lint-travi": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-travi/-/remark-preset-lint-travi-1.2.0.tgz",
+ "integrity": "sha512-Rv2ZTt2PqGP17s1F6RIynsGwTkHAr0WkHDdpexkRFwqhpx76krSa37aoQMcEi/bKEB/tVIuxUEPCJauESj1+1A==",
+ "dev": true,
+ "requires": {
+ "remark-lint-final-definition": "^1.0.2",
+ "remark-lint-list-item-indent": "^1.0.2",
+ "remark-lint-maximum-line-length": "^1.1.0",
+ "remark-lint-no-empty-url": "^1.0.4",
+ "remark-lint-no-tabs": "^1.0.2",
+ "remark-lint-ordered-list-marker-value": "^1.0.2",
+ "remark-preset-lint-recommended": "^3.0.2",
+ "remark-validate-links": "^8.0.0"
+ }
+ },
"remark-retext": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-3.1.2.tgz",
@@ -23014,6 +23318,22 @@
"xtend": "^4.0.1"
}
},
+ "remark-validate-links": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/remark-validate-links/-/remark-validate-links-8.0.2.tgz",
+ "integrity": "sha512-TDhmhEgyP9ivUcU2kyKl3d5dXwfN099woLoB6JVdYHRP7EFGgcQHNzZDRqs7zrSPCiVGgvna2HWhyWuNV7QPiQ==",
+ "dev": true,
+ "requires": {
+ "github-slugger": "^1.2.0",
+ "hosted-git-info": "^2.5.0",
+ "mdast-util-definitions": "^1.0.0",
+ "mdast-util-to-string": "^1.0.4",
+ "propose": "0.0.5",
+ "unist-util-visit": "^1.0.0",
+ "urljoin": "^0.1.5",
+ "xtend": "^4.0.1"
+ }
+ },
"remove-trailing-separator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
@@ -23522,6 +23842,12 @@
"jsonify": "~0.0.0"
}
},
+ "shellsubstitute": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shellsubstitute/-/shellsubstitute-1.2.0.tgz",
+ "integrity": "sha1-5PcCpQxRiw9v6YRRiQ1wWvKba3A=",
+ "dev": true
+ },
"sift": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/sift/-/sift-5.1.0.tgz",
@@ -23562,6 +23888,12 @@
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
},
+ "sliced": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
+ "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=",
+ "dev": true
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -24538,6 +24870,36 @@
"repeat-string": "^1.6.1"
}
},
+ "to-vfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-4.0.0.tgz",
+ "integrity": "sha512-Y7EDM+uoU8TZxF5ej2mUR0dLO4qbuuNRnJKxEht2QJWEq2421pyG1D1x8YxPKmyTc6nHh7Td/jLGFxYo+9vkLA==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^2.0.0",
+ "vfile": "^3.0.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
+ "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
+ "dev": true
+ },
+ "vfile": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz",
+ "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^2.0.0",
+ "replace-ext": "1.0.0",
+ "unist-util-stringify-position": "^1.0.0",
+ "vfile-message": "^1.0.0"
+ }
+ }
+ }
+ },
"toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
@@ -24678,12 +25040,6 @@
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz",
"integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA=="
},
- "uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
- "dev": true
- },
"unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -24744,6 +25100,100 @@
"x-is-string": "^0.1.0"
}
},
+ "unified-args": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-6.0.0.tgz",
+ "integrity": "sha512-1m2pGiTClgcCtCvgtABkJLze8JJiZpzsqujRhzBjZsRwaIIU1Yj36YHY6t2RvidO8d6fucZdk3KX+8eS4+uv9g==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "chalk": "^2.0.0",
+ "chokidar": "^2.0.0",
+ "fault": "^1.0.2",
+ "json5": "^1.0.0",
+ "minimist": "^1.2.0",
+ "text-table": "^0.2.0",
+ "unified-engine": "^6.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "unified-engine": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-6.0.1.tgz",
+ "integrity": "sha512-iDJYH82TgcezQA4IZzhCNJQx7vBsGk4h9s4Q7Fscrb3qcPsxBqVrVNYez2W3sBVTxuU1bFAhyRpA6ba/R4j93A==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.1",
+ "debug": "^3.1.0",
+ "fault": "^1.0.0",
+ "fn-name": "^2.0.1",
+ "glob": "^7.0.3",
+ "ignore": "^3.2.0",
+ "is-empty": "^1.0.0",
+ "is-hidden": "^1.0.1",
+ "is-object": "^1.0.1",
+ "js-yaml": "^3.6.1",
+ "load-plugin": "^2.0.0",
+ "parse-json": "^4.0.0",
+ "to-vfile": "^4.0.0",
+ "trough": "^1.0.0",
+ "unist-util-inspect": "^4.1.2",
+ "vfile-reporter": "^5.0.0",
+ "vfile-statistics": "^1.1.0",
+ "x-is-string": "^0.1.0",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ }
+ }
+ },
+ "unified-lint-rule": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.3.tgz",
+ "integrity": "sha512-6z+HH3mtlFdj/w3MaQpObrZAd9KRiro370GxBFh13qkV8LYR21lLozA4iQiZPhe7KuX/lHewoGOEgQ4AWrAR3Q==",
+ "dev": true,
+ "requires": {
+ "wrapped": "^1.0.1"
+ }
+ },
+ "unified-message-control": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-1.0.4.tgz",
+ "integrity": "sha512-e1dEtN4Z/TvLn/qHm+xeZpzqhJTtfZusFErk336kkZVpqrJYiV9ptxq+SbRPFMlN0OkjDYHmVJ929KYjsMTo3g==",
+ "dev": true,
+ "requires": {
+ "trim": "0.0.1",
+ "unist-util-visit": "^1.0.0",
+ "vfile-location": "^2.0.0"
+ }
+ },
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
@@ -24823,6 +25273,15 @@
"resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.3.tgz",
"integrity": "sha512-qlPeDqnQnd84KIqwphzOR+l02cxjDzvEYEBl84EjmKRrX4eUmjyAo8xJv1SCDhJqNjyHRnBMZWNKAiBtXE6hBg=="
},
+ "unist-util-inspect": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-4.1.4.tgz",
+ "integrity": "sha512-7xxyvKiZ1SC9vL5qrMqKub1T31gRHfau4242F69CcaOrXt//5PmRVOmDZ36UAEgiT+tZWzmQmbNZn+mVtnR9HQ==",
+ "dev": true,
+ "requires": {
+ "is-empty": "^1.0.0"
+ }
+ },
"unist-util-is": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.2.tgz",
@@ -24951,6 +25410,15 @@
}
}
},
+ "untildify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz",
+ "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ },
"unzip-response": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
@@ -25051,6 +25519,23 @@
"resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
"integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
},
+ "urljoin": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/urljoin/-/urljoin-0.1.5.tgz",
+ "integrity": "sha1-sl0sYRLFWsnVAJakmg8ft/T1OSE=",
+ "dev": true,
+ "requires": {
+ "extend": "~2.0.0"
+ },
+ "dependencies": {
+ "extend": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.2.tgz",
+ "integrity": "sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==",
+ "dev": true
+ }
+ }
+ },
"use": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
@@ -25156,6 +25641,43 @@
"unist-util-stringify-position": "^1.1.1"
}
},
+ "vfile-reporter": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-5.1.2.tgz",
+ "integrity": "sha512-b15sTuss1wOPWVlyWOvu+n6wGJ/eTYngz3uqMLimQvxZ+Q5oFQGYZZP1o3dR9sk58G5+wej0UPCZSwQBX/mzrQ==",
+ "dev": true,
+ "requires": {
+ "repeat-string": "^1.5.0",
+ "string-width": "^2.0.0",
+ "supports-color": "^5.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-sort": "^2.1.2",
+ "vfile-statistics": "^1.1.0"
+ },
+ "dependencies": {
+ "unist-util-stringify-position": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz",
+ "integrity": "sha512-Zqlf6+FRI39Bah8Q6ZnNGrEHUhwJOkHde2MHVk96lLyftfJJckaPslKgzhVcviXj8KcE9UJM9F+a4JEiBUTYgA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.2"
+ }
+ }
+ }
+ },
+ "vfile-sort": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.1.tgz",
+ "integrity": "sha512-5dt7xEhC44h0uRQKhbM2JAe0z/naHphIZlMOygtMBM9Nn0pZdaX5fshhwWit9wvsuP8t/wp43nTDRRErO1WK8g==",
+ "dev": true
+ },
+ "vfile-statistics": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.3.tgz",
+ "integrity": "sha512-CstaK/ebTz1W3Qp41Bt9Lj/2DmumFsCwC2sKahDNSPh0mPh7/UyMLCoU8ZBX34CRU0d61B4W41yIFsV0NKMZeA==",
+ "dev": true
+ },
"vm-browserify": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
@@ -25787,6 +26309,16 @@
}
}
},
+ "wrapped": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz",
+ "integrity": "sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI=",
+ "dev": true,
+ "requires": {
+ "co": "3.1.0",
+ "sliced": "^1.0.1"
+ }
+ },
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
diff --git a/package.json b/package.json
index 92296c4d..2e8c8d43 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"homepage": "https://dsmjs.netlify.com/",
"scripts": {
"lint:js": "eslint . --cache",
+ "lint:md": "remark --frail --quiet .",
"test": "run-s lint:* build",
"build": "gatsby build",
"develop": "gatsby develop",
@@ -31,16 +32,18 @@
}
},
"devDependencies": {
+ "@dsmjs/remark-preset-lint": "1.0.0-beta.3",
"@travi/eslint-config-travi": "1.8.1",
"commitlint-config-dsmjs": "1.0.10",
"core-js": "2.6.5",
"cz-conventional-changelog": "2.1.0",
- "globstar": "1.0.0",
"greenkeeper-lockfile": "1.15.1",
"husky": "2.4.1",
- "markdownlint-cli": "0.17.0",
"netlify-cli": "2.11.23",
- "npm-run-all": "4.1.5"
+ "npm-run-all": "4.1.5",
+ "remark": "10.0.1",
+ "remark-cli": "6.0.1",
+ "remark-frontmatter": "1.3.2"
},
"dependencies": {
"@dsmjs/components": "2.2.5",