diff --git a/.github/workflows/generateJson.yml b/.github/workflows/generateJson.yml new file mode 100644 index 00000000..15e72bcf --- /dev/null +++ b/.github/workflows/generateJson.yml @@ -0,0 +1,43 @@ +name: Generate JSON +'on': + push: + branches: + - master +jobs: + generate_json: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + persist-credentials: false + fetch-depth: 0 + - name: Use node 12 + uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Get yarn cache + id: yarn-cache + run: 'echo "::set-output name=dir::$(yarn cache dir)"' + - name: Cache Node.js modules + uses: actions/cache@v1 + with: + path: '${{ steps.yarn-cache.outputs.dir }}' + key: '${{ runner.OS }}-yarn-${{ hashFiles(''**/yarn.lock'') }}' + restore-keys: | + ${{ runner.OS }}-yarn- + - name: Install dependencies + run: yarn + - name: Generate file json + run: yarn toJson + - name: Commit files report + run: | + git config --local user.email "actions@github.com" + git config --local user.name "Github Actions" + git add -A + git commit -m "✅ [Github Actions]: Generate json file" + - name: GitHub Push + uses: ad-m/github-push-action@v0.5.0 + with: + github_token: '${{ secrets.GITHUB_TOKEN }}' + force: true diff --git a/README.md b/README.md index a92a30ab..18037ec2 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ In the last few years, I have some presentations stage, mostly in tecnical area. - Event Link: [here](https://www.instagram.com/p/BgSk34Hgw2V/) - Slide: [here](https://speakerdeck.com/mazipan/modern-web-an-introduction) -#### Facebook DevC Jakarta - KICK START 2018 - Big Startup Secrets +#### Facebook DevC Jakarta - KICK START 2018 - Big Startup Secrets - Topic: Unit Testing for Frontend Code at Blibli.com - Date: Jan 27, 2018 @@ -207,10 +207,6 @@ In the last few years, I have some presentations stage, mostly in tecnical area. - Event Link: [here](https://www.codepolitan.com/tambah-pengetahuan-tren-teknologimu-terbaru-bersama-php-indonesia) - Slide: [here](https://www.slideshare.net/IrfanMaulana21/php-indonesia-nodejs-web-development) ------ - -If you would like me to speak at your event, feel free to :phone: [contact me](#contact-me) and I will be happy to help. - ## FAQ + **Q:** Hey, I need your photo for banner promotions. Where can I get it?? diff --git a/all-talks-node.js b/all-talks-node.js new file mode 100644 index 00000000..4bd59817 --- /dev/null +++ b/all-talks-node.js @@ -0,0 +1 @@ +module.exports = {"2016":[{"id":"femalegeeklaunchingsistertosisterprogram","event":"Female Geek - Launching Sister to Sister Program","topic":"Understanding UI/UX from Developer Side","date":"Jul 30, 2016","place":"Microsoft Indonesia, Jakarta","link":["https://www.codepolitan.com/femalegeek-php-indonesia-launching-program-sister-to-sisters","https://id.techinasia.com/tip-membuat-tampilan-antar-muka-yang-nyaman"],"slide":"https://www.slideshare.net/IrfanMaulana21/php-indonesia-understanding-ui-ux-from-developer-side"},{"id":"jakartajsaprilmeetup:reactjsfundamentals&learningjavascript","event":"JakartaJS - April Meetup : React.js Fundamentals & Learning JavaScript","topic":"How I Learn Javascript from Basic","date":"Apr 05, 2016","place":"Bukalapak.com HQ, Jakarta","link":["https://www.meetup.com/JakartaJS/events/229783425/"],"slide":"https://www.slideshare.net/IrfanMaulana21/jakartajs-how-i-learn-javascript-from-basic"},{"id":"phpindonesiatechnologyupdateandtrend2016ii","event":"Php Indonesia Technology Update And Trend 2016 - II","topic":"NodeJS Web Development","date":"Mar 26, 2016","place":"Bukalapak.com HQ, Jakarta","link":["https://www.codepolitan.com/tambah-pengetahuan-tren-teknologimu-terbaru-bersama-php-indonesia"],"slide":"https://www.slideshare.net/IrfanMaulana21/php-indonesia-nodejs-web-development"}],"2017":[{"id":"itfestunj2017","event":"IT Fest UNJ 2017","topic":"Programmer In Startup Era","date":"Oct 28, 2017","place":"UNJ - Jakarta","link":["https://www.facebook.com/itfestunj/posts/355629694875209"],"slide":"https://www.slideshare.net/IrfanMaulana21/programmer-in-startup-era"},{"id":"bandungjsmeetup5","event":"BandungJS Meetup #5","topic":"Evolusi Frontend Development di Blibli.com","date":"Aug 29, 2017","place":"Eduplex - Bandung","link":["https://www.meetup.com/BandungJS/events/242113213/"],"slide":"https://www.slideshare.net/IrfanMaulana21/bliblidotcom-evolusi-frontend-development-di-bliblidotcom"},{"id":"googlemobilewebhackaton","event":"Google Mobile Web Hackaton","topic":"AMP And PWA In Blibli.com","date":"Jul 08, 2017","place":"Google Indonesia Office, Jakarta","link":["https://www.meetup.com/BandungJS/events/242113213/"],"slide":"https://www.slideshare.net/IrfanMaulana21/bliblidotcom-amp-and-pwa"},{"id":"unsadadevtalk2","event":"UNSADA - DevTalk2","topic":"Angular - The Return Of The King","date":"Jun 17, 2017","place":"Universitas Darma Persada - Jakarta","link":["https://www.codepolitan.com/event/himifda-developer-talk-2-593a5ac559c8f"],"slide":"https://www.slideshare.net/IrfanMaulana21/angular-the-return-of-the-king"},{"id":"untagseminarteknologi-technofest2017","event":"UNTAG - Seminar Teknologi - Technofest 2017","topic":"How to Become Rockstar Programmer","date":"May 10, 2017","place":"Universitas Darma Persada - Jakarta","link":["https://www.codepolitan.com/technofest-2017-58fb1d1220b77"],"slide":"https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer"},{"id":"smltechnocorner","event":"SML Techno Corner","topic":"How to Become Rockstar Programmer","date":"May 03, 2017","place":"SML Technologies - Jakarta","link":["NOT_AVAILABLE"],"slide":"https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer"},{"id":"surabayadeveloperday2017","event":"Surabaya Developer Day 2017","topic":"Architecting Scalable CSS","date":"Feb 25, 2017","place":"Dyandra Convention Center Surabaya","link":["http://eventsurabaya.net/event/surabaya-developer-day-2017/"],"slide":"https://www.slideshare.net/IrfanMaulana21/php-indonesia-x-bliblidotcom-architecting-scalable-css"}],"2018":[{"id":"phpidnationalmeetup2018","event":"PHPID National Meetup 2018","topic":"PWA - An Introduction","date":"Dec 16, 2018","place":"Villa Kembar Lembang Asri - Bandung","link":["https://www.instagram.com/p/BrXLXtChJSy/"],"slide":"https://speakerdeck.com/mazipan/pwa-an-introduction"},{"id":"unsadadevtalk4","event":"UNSADA - DevTalk4","topic":"PWA - An Introduction","date":"Dec 01, 2018","place":"Universitas Darma Persada, Jakarta","link":["https://www.instagram.com/p/Bq4Rp3oAh6T/"],"slide":"https://speakerdeck.com/mazipan/pwa-an-introduction"},{"id":"seminarmodernwebletsmovetomodernwebwithpwa","event":"Seminar Modern Web - Lets Move to Modern Web with PWA","topic":"Modern Web - An Introduction","date":"Mar 31, 2018","place":"Unisbank, Semarang","link":["https://www.instagram.com/p/BgSk34Hgw2V/"],"slide":"https://speakerdeck.com/mazipan/modern-web-an-introduction"},{"id":"facebookdevcjakartakickstart2018-bigstartupsecrets","event":"Facebook DevC Jakarta - KICK START 2018 - Big Startup Secrets","topic":"Unit Testing for Frontend Code at Blibli.com","date":"Jan 27, 2018","place":"JDV Menara Multimedia, Jakarta","link":["https://www.facebook.com/events/405772536529525/"],"slide":"https://www.slideshare.net/IrfanMaulana21/unit-testing-for-frontend-code-at-bliblicom"}],"2019":[{"id":"webunconf2019","event":"WebUnconf 2019","topic":"Build Performant Mobile Web at Tokopedia","date":"Nov 30, 2019","place":"Jambuluwuk Resort, Batu","link":["https://www.instagram.com/p/B5nQXW_HS7U/"],"slide":"NOT_AVAILABLE"},{"id":"53jakartajsxshopee(jsdayretrospektif)","event":"#53 JakartaJs x Shopee (JSDay Retrospektif)","topic":"JSDay Indonesia Takeaways","date":"Oct 30, 2019","place":"Shopee Indonesia Office, Jakarta","link":["https://www.meetup.com/JakartaJS/events/265706421/"],"slide":"https://speakerdeck.com/mazipan/jsday-indonesia-takeaways-jakartajs-meetup-october-2019"},{"id":"techabreakxbalijsxgdgbali","event":"Tech A Break x Bali.js x GDG Bali","topic":"Build Scalable And Performant Mobile Web at Tokopedia","date":"Sept 08, 2019","place":"STMIK Primakara, Bali","link":["https://www.instagram.com/p/B2D68hrndsC/"],"slide":"NOT_AVAILABLE"},{"id":"devcjakartabuildday2019","event":"DevC Jakarta Build Day 2019","topic":"Lesson Learned Scaling React in Tokopedia","date":"Aug 31, 2019","place":"Shopee Indonesia Office, Jakarta","link":["https://jkt23-jakarta-buildday-2019.splashthat.com/"],"slide":"NOT_AVAILABLE"},{"id":"seminardesainworkshopit","event":"Seminar Desain & Workshop IT","topic":"Create A Delightful Website With Good DX","date":"Jul 21, 2019","place":"STIKOM CKI","link":["https://www.instagram.com/p/Bz9ct24ForG/"],"slide":"https://speakerdeck.com/mazipan/create-a-delightful-web-with-good-dx"},{"id":"46jakartajsmeetup,talkshow:careerpathassoftwareengineers","event":"#46 JakartaJS Meetup, Talk Show: Career Path As Software Engineers","topic":"Talk Show","date":"Jan 24, 2019","place":"Telkom Indonesia, Tbk","link":["https://www.meetup.com/JakartaJS/events/258086815/"],"slide":"NOT_AVAILABLE"}],"2020":[{"id":"phpidonlinelearning4","event":"PHPID Online Learning #4","topic":"Kinerja Web 101","date":"Apr 14, 2020","place":"Zoom Meeting from Jakarta","link":["https://web.facebook.com/groups/phpid/permalink/10158077562731101/"],"slide":"https://speakerdeck.com/mazipan/kinerja-web-101"}]} \ No newline at end of file diff --git a/all-talks.js b/all-talks.js index 8b50db54..0b25d38b 100644 --- a/all-talks.js +++ b/all-talks.js @@ -1,217 +1 @@ -export default { - "2020": [ - { - "date": "Apr 14, 2020", - "event": "PHPID Online Learning #4", - "place": "Online using Zoom", - "topic": "Kinerja Web 101", - "slide": "https://speakerdeck.com/mazipan/kinerja-web-101", - "link": [ - "https://web.facebook.com/groups/phpid/permalink/10158077562731101/" - ] - } - ], - "2019": [ - { - "date": "Nov 30, 2019", - "event": "WebUnconf 2019", - "place": "Jambuluwuk Resort Batu", - "topic": "Build Performant Mobile Web at Tokopedia", - "slide": "", - "link": [ - "https://www.instagram.com/p/B5nQXW_HS7U/" - ] - }, - { - "date": "Oct 30, 2019", - "event": "#53 JakartaJs x Shopee (JSDay Retrospektif)", - "place": "Shopee Indonesia Office", - "topic": "JSDay Indonesia Takeaways", - "slide": "https://speakerdeck.com/mazipan/jsday-indonesia-takeaways-jakartajs-meetup-october-2019", - "link": [ - "https://www.meetup.com/JakartaJS/events/265706421/" - ] - }, - { - "date": "Sept 08, 2019", - "event": "Tech A Break x Bali.js x GDG Bali", - "place": "STMIK Primakara, Bali", - "topic": "Build Scalable And Performant Mobile Web at Tokopedia", - "slide": "", - "link": [ - "https://www.instagram.com/p/B2D68hrndsC/" - ] - }, - { - "date": "August 31, 2019", - "event": "DevC Jakarta Build Day 2019", - "place": "Shopee Indonesia Office", - "topic": "Lesson Learned Scaling React in Tokopedia", - "slide": "https://speakerdeck.com/mazipan/create-a-delightful-web-with-good-dx", - "link": [ - "https://jkt23-jakarta-buildday-2019.splashthat.com/" - ] - }, - { - "date": "July 21, 2019", - "event": "Seminar Desain & Workshop IT", - "place": "STIKOM CKI", - "topic": "Create A Delightful Website With Good DX", - "slide": "https://speakerdeck.com/mazipan/create-a-delightful-web-with-good-dx", - "link": [ - "https://www.instagram.com/p/Bz9ct24ForG/" - ] - }, - { - "date": "January 24, 2019", - "event": "JakartaJS Meetup, Talk Show: Career Path As Software Engineers", - "place": "Telkom Indonesia, Tbk", - "topic": "", - "slide": "", - "link": [] - } - ], - "2018": [ - { - "date": "December 16, 2018", - "event": "PHPID National Meetup 2018", - "place": "Villa Kembar Lembang Asri - Bandung", - "topic": "PWA - An Introduction", - "slide": "https://speakerdeck.com/mazipan/pwa-an-introduction", - "link": [ - "https://www.instagram.com/p/BrXLXtChJSy/" - ] - }, - { - "date": "December 01, 2018", - "event": "UNSADA - DevTalk4", - "place": "Universitas Darma Persada - Jakarta", - "topic": "PWA - An Introduction", - "slide": "https://speakerdeck.com/mazipan/pwa-an-introduction", - "link": [ - "https://www.instagram.com/p/Bq4Rp3oAh6T/" - ] - }, - { - "date": "March 31, 2018", - "event": "Seminar Modern Web - Lets Move to Modern Web with PWA", - "place": "Unisbank - Semarang", - "topic": "Modern Web - An Introduction", - "slide": "https://speakerdeck.com/mazipan/modern-web-an-introduction", - "link": [ - "https://www.instagram.com/p/BgSk34Hgw2V/" - ] - }, - { - "date": "January 27, 2018", - "event": "Facebook DevC Jakarta - KICK START 2018", - "place": "Big Startup Secrets at JDV Menara Multimedia - Jakarta", - "topic": "Unit Testing for Frontend Code at Blibli.com", - "slide": "https://www.slideshare.net/IrfanMaulana21unit-testing-for-frontend-code-at-bliblicom", - "link": [ - "https://www.facebook.com/events/405772536529525//" - ] - } - ], - "2017": [ - { - "date": "October 28, 2017", - "event": "IT Fest UNJ 2017", - "place": "UNJ - Jakarta", - "topic": "Programmer In Startup Era", - "slide": "https://www.slideshare.net/IrfanMaulana21/programmer-in-startup-era", - "link": [ - "https://www.facebook.com/itfestunj/posts/355629694875209" - ] - }, - { - "date": "August 29, 2017", - "event": "BandungJS Meetup #5", - "place": "Eduplex - Bandung", - "topic": "Evolusi Frontend Development di Blibli.com", - "slide": "https://www.slideshare.net/IrfanMaulana21/bliblidotcom-evolusi-frontend-development-di-bliblidotcom", - "link": [ - "https://www.meetup.com/BandungJS/events/242113213/" - ] - }, - { - "date": "July 08, 2017", - "event": "Google Mobile Web Hackaton", - "place": "Google Indonesia Office - Jakarta", - "topic": "AMP And PWA In Blibli.com", - "slide": "https://www.slideshare.net/IrfanMaulana21/bliblidotcom-amp-and-pwa", - "link": [] - }, - { - "date": "June 17, 2017", - "event": "UNSADA - DevTalk2", - "place": "Universitas Darma Persada - Jakarta", - "topic": "Angular - The Return Of The King", - "slide": "https://www.slideshare.net/IrfanMaulana21/angular-the-return-of-the-king", - "link": [ - "https://www.codepolitan.com/event/himifda-developer-talk-2-593a5ac559c8f" - ] - }, - { - "date": "May 10, 2017", - "event": "UNTAG - Seminar Teknologi - Technofest 2017", - "place": "UNTAG Surabaya", - "topic": "How to Become Rockstar Programmer", - "slide": "https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer", - "link": [ - "https://www.codepolitan.com/technofest-2017-58fb1d1220b77" - ] - }, - { - "date": "May 3, 2017", - "event": "SML Techno Corner", - "place": "SML Technologies", - "topic": "How to Become Rockstar Programmer", - "slide": "https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer", - "link": [] - }, - { - "date": "Feb 25, 2017", - "event": "Surabaya Developer Day 2017", - "place": "Dyandra Convention Center Surabaya", - "topic": "Architecting Scalable CSS", - "slide": "https://www.slideshare.net/IrfanMaulana21/php-indonesia-x-bliblidotcom-architecting-scalable-css", - "link": [ - "http://eventsurabaya.net/event/surabaya-developer-day-2017/" - ] - } - ], - "2016": [ - { - "date": "Jul 30, 2016", - "event": "Female Geek - Launching Sister to Sister Program", - "place": "Microsoft Indonesia", - "topic": "Understanding UI/UX from Developer Side", - "slide": "https://www.slideshare.net/IrfanMaulana21/php-indonesia-understanding-ui-ux-from-developer-side", - "link": [ - "https://www.codepolitan.com/femalegeek-php-indonesia-launching-program-sister-to-sisters", - "https://id.techinasia.com/tip-membuat-tampilan-antar-muka-yang-nyaman" - ] - }, - { - "date": "Apr 5, 2016", - "event": "JakartaJS - April Meetup : React.js Fundamentals & Learning JavaScript", - "place": "Bukalapak Kemang Office", - "topic": "How I Learn Javascript from Basic", - "slide": "https://www.slideshare.net/IrfanMaulana21/jakartajs-how-i-learn-javascript-from-basic", - "link": [ - "https://www.meetup.com/JakartaJS/events/229783425/" - ] - }, - { - "date": "Mar 26, 2016", - "event": "Php Indonesia Technology Update And Trend 2016 - II", - "place": "Microsoft Indonesia", - "topic": "NodeJS Web Development", - "slide": "https://www.slideshare.net/IrfanMaulana21/php-indonesia-nodejs-web-development", - "link": [ - "https://www.codepolitan.com/tambah-pengetahuan-tren-teknologimu-terbaru-bersama-php-indonesia" - ] - } - ] -} +export default {"2016":[{"id":"femalegeeklaunchingsistertosisterprogram","event":"Female Geek - Launching Sister to Sister Program","topic":"Understanding UI/UX from Developer Side","date":"Jul 30, 2016","place":"Microsoft Indonesia, Jakarta","link":["https://www.codepolitan.com/femalegeek-php-indonesia-launching-program-sister-to-sisters","https://id.techinasia.com/tip-membuat-tampilan-antar-muka-yang-nyaman"],"slide":"https://www.slideshare.net/IrfanMaulana21/php-indonesia-understanding-ui-ux-from-developer-side"},{"id":"jakartajsaprilmeetup:reactjsfundamentals&learningjavascript","event":"JakartaJS - April Meetup : React.js Fundamentals & Learning JavaScript","topic":"How I Learn Javascript from Basic","date":"Apr 05, 2016","place":"Bukalapak.com HQ, Jakarta","link":["https://www.meetup.com/JakartaJS/events/229783425/"],"slide":"https://www.slideshare.net/IrfanMaulana21/jakartajs-how-i-learn-javascript-from-basic"},{"id":"phpindonesiatechnologyupdateandtrend2016ii","event":"Php Indonesia Technology Update And Trend 2016 - II","topic":"NodeJS Web Development","date":"Mar 26, 2016","place":"Bukalapak.com HQ, Jakarta","link":["https://www.codepolitan.com/tambah-pengetahuan-tren-teknologimu-terbaru-bersama-php-indonesia"],"slide":"https://www.slideshare.net/IrfanMaulana21/php-indonesia-nodejs-web-development"}],"2017":[{"id":"itfestunj2017","event":"IT Fest UNJ 2017","topic":"Programmer In Startup Era","date":"Oct 28, 2017","place":"UNJ - Jakarta","link":["https://www.facebook.com/itfestunj/posts/355629694875209"],"slide":"https://www.slideshare.net/IrfanMaulana21/programmer-in-startup-era"},{"id":"bandungjsmeetup5","event":"BandungJS Meetup #5","topic":"Evolusi Frontend Development di Blibli.com","date":"Aug 29, 2017","place":"Eduplex - Bandung","link":["https://www.meetup.com/BandungJS/events/242113213/"],"slide":"https://www.slideshare.net/IrfanMaulana21/bliblidotcom-evolusi-frontend-development-di-bliblidotcom"},{"id":"googlemobilewebhackaton","event":"Google Mobile Web Hackaton","topic":"AMP And PWA In Blibli.com","date":"Jul 08, 2017","place":"Google Indonesia Office, Jakarta","link":["https://www.meetup.com/BandungJS/events/242113213/"],"slide":"https://www.slideshare.net/IrfanMaulana21/bliblidotcom-amp-and-pwa"},{"id":"unsadadevtalk2","event":"UNSADA - DevTalk2","topic":"Angular - The Return Of The King","date":"Jun 17, 2017","place":"Universitas Darma Persada - Jakarta","link":["https://www.codepolitan.com/event/himifda-developer-talk-2-593a5ac559c8f"],"slide":"https://www.slideshare.net/IrfanMaulana21/angular-the-return-of-the-king"},{"id":"untagseminarteknologi-technofest2017","event":"UNTAG - Seminar Teknologi - Technofest 2017","topic":"How to Become Rockstar Programmer","date":"May 10, 2017","place":"Universitas Darma Persada - Jakarta","link":["https://www.codepolitan.com/technofest-2017-58fb1d1220b77"],"slide":"https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer"},{"id":"smltechnocorner","event":"SML Techno Corner","topic":"How to Become Rockstar Programmer","date":"May 03, 2017","place":"SML Technologies - Jakarta","link":["NOT_AVAILABLE"],"slide":"https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer"},{"id":"surabayadeveloperday2017","event":"Surabaya Developer Day 2017","topic":"Architecting Scalable CSS","date":"Feb 25, 2017","place":"Dyandra Convention Center Surabaya","link":["http://eventsurabaya.net/event/surabaya-developer-day-2017/"],"slide":"https://www.slideshare.net/IrfanMaulana21/php-indonesia-x-bliblidotcom-architecting-scalable-css"}],"2018":[{"id":"phpidnationalmeetup2018","event":"PHPID National Meetup 2018","topic":"PWA - An Introduction","date":"Dec 16, 2018","place":"Villa Kembar Lembang Asri - Bandung","link":["https://www.instagram.com/p/BrXLXtChJSy/"],"slide":"https://speakerdeck.com/mazipan/pwa-an-introduction"},{"id":"unsadadevtalk4","event":"UNSADA - DevTalk4","topic":"PWA - An Introduction","date":"Dec 01, 2018","place":"Universitas Darma Persada, Jakarta","link":["https://www.instagram.com/p/Bq4Rp3oAh6T/"],"slide":"https://speakerdeck.com/mazipan/pwa-an-introduction"},{"id":"seminarmodernwebletsmovetomodernwebwithpwa","event":"Seminar Modern Web - Lets Move to Modern Web with PWA","topic":"Modern Web - An Introduction","date":"Mar 31, 2018","place":"Unisbank, Semarang","link":["https://www.instagram.com/p/BgSk34Hgw2V/"],"slide":"https://speakerdeck.com/mazipan/modern-web-an-introduction"},{"id":"facebookdevcjakartakickstart2018-bigstartupsecrets","event":"Facebook DevC Jakarta - KICK START 2018 - Big Startup Secrets","topic":"Unit Testing for Frontend Code at Blibli.com","date":"Jan 27, 2018","place":"JDV Menara Multimedia, Jakarta","link":["https://www.facebook.com/events/405772536529525/"],"slide":"https://www.slideshare.net/IrfanMaulana21/unit-testing-for-frontend-code-at-bliblicom"}],"2019":[{"id":"webunconf2019","event":"WebUnconf 2019","topic":"Build Performant Mobile Web at Tokopedia","date":"Nov 30, 2019","place":"Jambuluwuk Resort, Batu","link":["https://www.instagram.com/p/B5nQXW_HS7U/"],"slide":"NOT_AVAILABLE"},{"id":"53jakartajsxshopee(jsdayretrospektif)","event":"#53 JakartaJs x Shopee (JSDay Retrospektif)","topic":"JSDay Indonesia Takeaways","date":"Oct 30, 2019","place":"Shopee Indonesia Office, Jakarta","link":["https://www.meetup.com/JakartaJS/events/265706421/"],"slide":"https://speakerdeck.com/mazipan/jsday-indonesia-takeaways-jakartajs-meetup-october-2019"},{"id":"techabreakxbalijsxgdgbali","event":"Tech A Break x Bali.js x GDG Bali","topic":"Build Scalable And Performant Mobile Web at Tokopedia","date":"Sept 08, 2019","place":"STMIK Primakara, Bali","link":["https://www.instagram.com/p/B2D68hrndsC/"],"slide":"NOT_AVAILABLE"},{"id":"devcjakartabuildday2019","event":"DevC Jakarta Build Day 2019","topic":"Lesson Learned Scaling React in Tokopedia","date":"Aug 31, 2019","place":"Shopee Indonesia Office, Jakarta","link":["https://jkt23-jakarta-buildday-2019.splashthat.com/"],"slide":"NOT_AVAILABLE"},{"id":"seminardesainworkshopit","event":"Seminar Desain & Workshop IT","topic":"Create A Delightful Website With Good DX","date":"Jul 21, 2019","place":"STIKOM CKI","link":["https://www.instagram.com/p/Bz9ct24ForG/"],"slide":"https://speakerdeck.com/mazipan/create-a-delightful-web-with-good-dx"},{"id":"46jakartajsmeetup,talkshow:careerpathassoftwareengineers","event":"#46 JakartaJS Meetup, Talk Show: Career Path As Software Engineers","topic":"Talk Show","date":"Jan 24, 2019","place":"Telkom Indonesia, Tbk","link":["https://www.meetup.com/JakartaJS/events/258086815/"],"slide":"NOT_AVAILABLE"}],"2020":[{"id":"phpidonlinelearning4","event":"PHPID Online Learning #4","topic":"Kinerja Web 101","date":"Apr 14, 2020","place":"Zoom Meeting from Jakarta","link":["https://web.facebook.com/groups/phpid/permalink/10158077562731101/"],"slide":"https://speakerdeck.com/mazipan/kinerja-web-101"}]} \ No newline at end of file diff --git a/all-talks.json b/all-talks.json new file mode 100644 index 00000000..cec4fc94 --- /dev/null +++ b/all-talks.json @@ -0,0 +1 @@ +{"2016":[{"id":"femalegeeklaunchingsistertosisterprogram","event":"Female Geek - Launching Sister to Sister Program","topic":"Understanding UI/UX from Developer Side","date":"Jul 30, 2016","place":"Microsoft Indonesia, Jakarta","link":["https://www.codepolitan.com/femalegeek-php-indonesia-launching-program-sister-to-sisters","https://id.techinasia.com/tip-membuat-tampilan-antar-muka-yang-nyaman"],"slide":"https://www.slideshare.net/IrfanMaulana21/php-indonesia-understanding-ui-ux-from-developer-side"},{"id":"jakartajsaprilmeetup:reactjsfundamentals&learningjavascript","event":"JakartaJS - April Meetup : React.js Fundamentals & Learning JavaScript","topic":"How I Learn Javascript from Basic","date":"Apr 05, 2016","place":"Bukalapak.com HQ, Jakarta","link":["https://www.meetup.com/JakartaJS/events/229783425/"],"slide":"https://www.slideshare.net/IrfanMaulana21/jakartajs-how-i-learn-javascript-from-basic"},{"id":"phpindonesiatechnologyupdateandtrend2016ii","event":"Php Indonesia Technology Update And Trend 2016 - II","topic":"NodeJS Web Development","date":"Mar 26, 2016","place":"Bukalapak.com HQ, Jakarta","link":["https://www.codepolitan.com/tambah-pengetahuan-tren-teknologimu-terbaru-bersama-php-indonesia"],"slide":"https://www.slideshare.net/IrfanMaulana21/php-indonesia-nodejs-web-development"}],"2017":[{"id":"itfestunj2017","event":"IT Fest UNJ 2017","topic":"Programmer In Startup Era","date":"Oct 28, 2017","place":"UNJ - Jakarta","link":["https://www.facebook.com/itfestunj/posts/355629694875209"],"slide":"https://www.slideshare.net/IrfanMaulana21/programmer-in-startup-era"},{"id":"bandungjsmeetup5","event":"BandungJS Meetup #5","topic":"Evolusi Frontend Development di Blibli.com","date":"Aug 29, 2017","place":"Eduplex - Bandung","link":["https://www.meetup.com/BandungJS/events/242113213/"],"slide":"https://www.slideshare.net/IrfanMaulana21/bliblidotcom-evolusi-frontend-development-di-bliblidotcom"},{"id":"googlemobilewebhackaton","event":"Google Mobile Web Hackaton","topic":"AMP And PWA In Blibli.com","date":"Jul 08, 2017","place":"Google Indonesia Office, Jakarta","link":["https://www.meetup.com/BandungJS/events/242113213/"],"slide":"https://www.slideshare.net/IrfanMaulana21/bliblidotcom-amp-and-pwa"},{"id":"unsadadevtalk2","event":"UNSADA - DevTalk2","topic":"Angular - The Return Of The King","date":"Jun 17, 2017","place":"Universitas Darma Persada - Jakarta","link":["https://www.codepolitan.com/event/himifda-developer-talk-2-593a5ac559c8f"],"slide":"https://www.slideshare.net/IrfanMaulana21/angular-the-return-of-the-king"},{"id":"untagseminarteknologi-technofest2017","event":"UNTAG - Seminar Teknologi - Technofest 2017","topic":"How to Become Rockstar Programmer","date":"May 10, 2017","place":"Universitas Darma Persada - Jakarta","link":["https://www.codepolitan.com/technofest-2017-58fb1d1220b77"],"slide":"https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer"},{"id":"smltechnocorner","event":"SML Techno Corner","topic":"How to Become Rockstar Programmer","date":"May 03, 2017","place":"SML Technologies - Jakarta","link":["NOT_AVAILABLE"],"slide":"https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer"},{"id":"surabayadeveloperday2017","event":"Surabaya Developer Day 2017","topic":"Architecting Scalable CSS","date":"Feb 25, 2017","place":"Dyandra Convention Center Surabaya","link":["http://eventsurabaya.net/event/surabaya-developer-day-2017/"],"slide":"https://www.slideshare.net/IrfanMaulana21/php-indonesia-x-bliblidotcom-architecting-scalable-css"}],"2018":[{"id":"phpidnationalmeetup2018","event":"PHPID National Meetup 2018","topic":"PWA - An Introduction","date":"Dec 16, 2018","place":"Villa Kembar Lembang Asri - Bandung","link":["https://www.instagram.com/p/BrXLXtChJSy/"],"slide":"https://speakerdeck.com/mazipan/pwa-an-introduction"},{"id":"unsadadevtalk4","event":"UNSADA - DevTalk4","topic":"PWA - An Introduction","date":"Dec 01, 2018","place":"Universitas Darma Persada, Jakarta","link":["https://www.instagram.com/p/Bq4Rp3oAh6T/"],"slide":"https://speakerdeck.com/mazipan/pwa-an-introduction"},{"id":"seminarmodernwebletsmovetomodernwebwithpwa","event":"Seminar Modern Web - Lets Move to Modern Web with PWA","topic":"Modern Web - An Introduction","date":"Mar 31, 2018","place":"Unisbank, Semarang","link":["https://www.instagram.com/p/BgSk34Hgw2V/"],"slide":"https://speakerdeck.com/mazipan/modern-web-an-introduction"},{"id":"facebookdevcjakartakickstart2018-bigstartupsecrets","event":"Facebook DevC Jakarta - KICK START 2018 - Big Startup Secrets","topic":"Unit Testing for Frontend Code at Blibli.com","date":"Jan 27, 2018","place":"JDV Menara Multimedia, Jakarta","link":["https://www.facebook.com/events/405772536529525/"],"slide":"https://www.slideshare.net/IrfanMaulana21/unit-testing-for-frontend-code-at-bliblicom"}],"2019":[{"id":"webunconf2019","event":"WebUnconf 2019","topic":"Build Performant Mobile Web at Tokopedia","date":"Nov 30, 2019","place":"Jambuluwuk Resort, Batu","link":["https://www.instagram.com/p/B5nQXW_HS7U/"],"slide":"NOT_AVAILABLE"},{"id":"53jakartajsxshopee(jsdayretrospektif)","event":"#53 JakartaJs x Shopee (JSDay Retrospektif)","topic":"JSDay Indonesia Takeaways","date":"Oct 30, 2019","place":"Shopee Indonesia Office, Jakarta","link":["https://www.meetup.com/JakartaJS/events/265706421/"],"slide":"https://speakerdeck.com/mazipan/jsday-indonesia-takeaways-jakartajs-meetup-october-2019"},{"id":"techabreakxbalijsxgdgbali","event":"Tech A Break x Bali.js x GDG Bali","topic":"Build Scalable And Performant Mobile Web at Tokopedia","date":"Sept 08, 2019","place":"STMIK Primakara, Bali","link":["https://www.instagram.com/p/B2D68hrndsC/"],"slide":"NOT_AVAILABLE"},{"id":"devcjakartabuildday2019","event":"DevC Jakarta Build Day 2019","topic":"Lesson Learned Scaling React in Tokopedia","date":"Aug 31, 2019","place":"Shopee Indonesia Office, Jakarta","link":["https://jkt23-jakarta-buildday-2019.splashthat.com/"],"slide":"NOT_AVAILABLE"},{"id":"seminardesainworkshopit","event":"Seminar Desain & Workshop IT","topic":"Create A Delightful Website With Good DX","date":"Jul 21, 2019","place":"STIKOM CKI","link":["https://www.instagram.com/p/Bz9ct24ForG/"],"slide":"https://speakerdeck.com/mazipan/create-a-delightful-web-with-good-dx"},{"id":"46jakartajsmeetup,talkshow:careerpathassoftwareengineers","event":"#46 JakartaJS Meetup, Talk Show: Career Path As Software Engineers","topic":"Talk Show","date":"Jan 24, 2019","place":"Telkom Indonesia, Tbk","link":["https://www.meetup.com/JakartaJS/events/258086815/"],"slide":"NOT_AVAILABLE"}],"2020":[{"id":"phpidonlinelearning4","event":"PHPID Online Learning #4","topic":"Kinerja Web 101","date":"Apr 14, 2020","place":"Zoom Meeting from Jakarta","link":["https://web.facebook.com/groups/phpid/permalink/10158077562731101/"],"slide":"https://speakerdeck.com/mazipan/kinerja-web-101"}]} \ No newline at end of file diff --git a/all_talks.json b/all_talks.json deleted file mode 100644 index afe6c574..00000000 --- a/all_talks.json +++ /dev/null @@ -1,217 +0,0 @@ -{ - "2020": [ - { - "date": "Apr 14, 2020", - "event": "PHPID Online Learning #4", - "place": "Online using Zoom", - "topic": "Kinerja Web 101", - "slide": "https://speakerdeck.com/mazipan/kinerja-web-101", - "link": [ - "https://web.facebook.com/groups/phpid/permalink/10158077562731101/" - ] - } - ], - "2019": [ - { - "date": "Nov 30, 2019", - "event": "WebUnconf 2019", - "place": "Jambuluwuk Resort Batu", - "topic": "Build Performant Mobile Web at Tokopedia", - "slide": "", - "link": [ - "https://www.instagram.com/p/B5nQXW_HS7U/" - ] - }, - { - "date": "Oct 30, 2019", - "event": "#53 JakartaJs x Shopee (JSDay Retrospektif)", - "place": "Shopee Indonesia Office", - "topic": "JSDay Indonesia Takeaways", - "slide": "https://speakerdeck.com/mazipan/jsday-indonesia-takeaways-jakartajs-meetup-october-2019", - "link": [ - "https://www.meetup.com/JakartaJS/events/265706421/" - ] - }, - { - "date": "Sept 08, 2019", - "event": "Tech A Break x Bali.js x GDG Bali", - "place": "STMIK Primakara, Bali", - "topic": "Build Scalable And Performant Mobile Web at Tokopedia", - "slide": "", - "link": [ - "https://www.instagram.com/p/B2D68hrndsC/" - ] - }, - { - "date": "August 31, 2019", - "event": "DevC Jakarta Build Day 2019", - "place": "Shopee Indonesia Office", - "topic": "Lesson Learned Scaling React in Tokopedia", - "slide": "", - "link": [ - "https://jkt23-jakarta-buildday-2019.splashthat.com/" - ] - }, - { - "date": "July 21, 2019", - "event": "Seminar Desain & Workshop IT", - "place": "STIKOM CKI", - "topic": "Create A Delightful Website With Good DX", - "slide": "https://speakerdeck.com/mazipan/create-a-delightful-web-with-good-dx", - "link": [ - "https://www.instagram.com/p/Bz9ct24ForG/" - ] - }, - { - "date": "January 24, 2019", - "event": "JakartaJS Meetup, Talk Show: Career Path As Software Engineers", - "place": "Telkom Indonesia, Tbk", - "topic": "", - "slide": "", - "link": [] - } - ], - "2018": [ - { - "date": "December 16, 2018", - "event": "PHPID National Meetup 2018", - "place": "Villa Kembar Lembang Asri - Bandung", - "topic": "PWA - An Introduction", - "slide": "https://speakerdeck.com/mazipan/pwa-an-introduction", - "link": [ - "https://www.instagram.com/p/BrXLXtChJSy/" - ] - }, - { - "date": "December 01, 2018", - "event": "UNSADA - DevTalk4", - "place": "Universitas Darma Persada - Jakarta", - "topic": "PWA - An Introduction", - "slide": "https://speakerdeck.com/mazipan/pwa-an-introduction", - "link": [ - "https://www.instagram.com/p/Bq4Rp3oAh6T/" - ] - }, - { - "date": "March 31, 2018", - "event": "Seminar Modern Web - Lets Move to Modern Web with PWA", - "place": "Unisbank - Semarang", - "topic": "Modern Web - An Introduction", - "slide": "https://speakerdeck.com/mazipan/modern-web-an-introduction", - "link": [ - "https://www.instagram.com/p/BgSk34Hgw2V/" - ] - }, - { - "date": "January 27, 2018", - "event": "Facebook DevC Jakarta - KICK START 2018", - "place": "Big Startup Secrets at JDV Menara Multimedia - Jakarta", - "topic": "Unit Testing for Frontend Code at Blibli.com", - "slide": "https://www.slideshare.net/IrfanMaulana21unit-testing-for-frontend-code-at-bliblicom", - "link": [ - "https://www.facebook.com/events/405772536529525//" - ] - } - ], - "2017": [ - { - "date": "October 28, 2017", - "event": "IT Fest UNJ 2017", - "place": "UNJ - Jakarta", - "topic": "Programmer In Startup Era", - "slide": "https://www.slideshare.net/IrfanMaulana21/programmer-in-startup-era", - "link": [ - "https://www.facebook.com/itfestunj/posts/355629694875209" - ] - }, - { - "date": "August 29, 2017", - "event": "BandungJS Meetup #5", - "place": "Eduplex - Bandung", - "topic": "Evolusi Frontend Development di Blibli.com", - "slide": "https://www.slideshare.net/IrfanMaulana21/bliblidotcom-evolusi-frontend-development-di-bliblidotcom", - "link": [ - "https://www.meetup.com/BandungJS/events/242113213/" - ] - }, - { - "date": "July 08, 2017", - "event": "Google Mobile Web Hackaton", - "place": "Google Indonesia Office - Jakarta", - "topic": "AMP And PWA In Blibli.com", - "slide": "https://www.slideshare.net/IrfanMaulana21/bliblidotcom-amp-and-pwa", - "link": [] - }, - { - "date": "June 17, 2017", - "event": "UNSADA - DevTalk2", - "place": "Universitas Darma Persada - Jakarta", - "topic": "Angular - The Return Of The King", - "slide": "https://www.slideshare.net/IrfanMaulana21/angular-the-return-of-the-king", - "link": [ - "https://www.codepolitan.com/event/himifda-developer-talk-2-593a5ac559c8f" - ] - }, - { - "date": "May 10, 2017", - "event": "UNTAG - Seminar Teknologi - Technofest 2017", - "place": "UNTAG Surabaya", - "topic": "How to Become Rockstar Programmer", - "slide": "https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer", - "link": [ - "https://www.codepolitan.com/technofest-2017-58fb1d1220b77" - ] - }, - { - "date": "May 3, 2017", - "event": "SML Techno Corner", - "place": "SML Technologies", - "topic": "How to Become Rockstar Programmer", - "slide": "https://www.slideshare.net/IrfanMaulana21/how-to-become-rockstar-programmer", - "link": [] - }, - { - "date": "Feb 25, 2017", - "event": "Surabaya Developer Day 2017", - "place": "Dyandra Convention Center Surabaya", - "topic": "Architecting Scalable CSS", - "slide": "https://www.slideshare.net/IrfanMaulana21/php-indonesia-x-bliblidotcom-architecting-scalable-css", - "link": [ - "http://eventsurabaya.net/event/surabaya-developer-day-2017/" - ] - } - ], - "2016": [ - { - "date": "Jul 30, 2016", - "event": "Female Geek - Launching Sister to Sister Program", - "place": "Microsoft Indonesia", - "topic": "Understanding UI/UX from Developer Side", - "slide": "https://www.slideshare.net/IrfanMaulana21/php-indonesia-understanding-ui-ux-from-developer-side", - "link": [ - "https://www.codepolitan.com/femalegeek-php-indonesia-launching-program-sister-to-sisters", - "https://id.techinasia.com/tip-membuat-tampilan-antar-muka-yang-nyaman" - ] - }, - { - "date": "Apr 5, 2016", - "event": "JakartaJS - April Meetup : React.js Fundamentals & Learning JavaScript", - "place": "Bukalapak Kemang Office", - "topic": "How I Learn Javascript from Basic", - "slide": "https://www.slideshare.net/IrfanMaulana21/jakartajs-how-i-learn-javascript-from-basic", - "link": [ - "https://www.meetup.com/JakartaJS/events/229783425/" - ] - }, - { - "date": "Mar 26, 2016", - "event": "Php Indonesia Technology Update And Trend 2016 - II", - "place": "Microsoft Indonesia", - "topic": "NodeJS Web Development", - "slide": "https://www.slideshare.net/IrfanMaulana21/php-indonesia-nodejs-web-development", - "link": [ - "https://www.codepolitan.com/tambah-pengetahuan-tren-teknologimu-terbaru-bersama-php-indonesia" - ] - } - ] -} diff --git a/package.json b/package.json new file mode 100644 index 00000000..257c2d33 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "talks", + "version": "1.0.0", + "main": "index.js", + "repository": "git@github.com:mazipan/talks.git", + "author": "Irfan Maulana ", + "license": "MIT", + "private": false, + "scripts": { + "toJson": "node ./toJson.js" + }, + "dependencies": { + "cheerio": "1.0.0-rc.3", + "markdown-it": "11.0.0", + "mkdirp": "1.0.4" + } +} diff --git a/toJson.js b/toJson.js new file mode 100644 index 00000000..ca1a8bcf --- /dev/null +++ b/toJson.js @@ -0,0 +1,127 @@ +const fs = require('fs'); +const path = require('path'); +const cheerio = require('cheerio'); +const MarkdownIt = require('markdown-it'); +const md = new MarkdownIt(); + +const writeFile = (pathFile, contentString) => { + fs.writeFile(path.resolve(pathFile), contentString, function (err) { + if (err) { + return console.log(`❌ Error write file ${pathFile}`, err); + } + console.log(`✅ Success write file ${pathFile}`); + }); +}; + +const main = async () => { + try { + const readmeContent = await fs.readFileSync(path.resolve('./README.md'), { + encoding: 'utf-8', + }); + const html = md.render(readmeContent); + const $ = cheerio.load(html); + + let objResult = {}; + $('h3') + .map((i, el) => { + const year = $(el).text(); + const data = $(el) + .nextUntil('h3', 'h4') + .map((_, h4) => { + const title = $(h4).text(); + const data = $(h4) + .next('ul') + .children() + .map((_, li) => { + const text = $(li).text(); + if (text.includes('Event Link')) { + if (text.includes('here')) { + const link = $(li) + .children('a') + .map((_, a) => { + return $(a).attr('href'); + }) + .get(); + return `Link: ${link}`; + } + return `Link: NOT_AVAILABLE`; + } else if (text.includes('Slide')) { + if (text.includes('here')) { + const link = $(li) + .children('a') + .map((_, a) => { + return $(a).attr('href'); + }) + .get(); + return `Slide: ${link}`; + } + return `Slide: NOT_AVAILABLE`; + } + return text; + }) + .get(); + + const formatteddata = {}; + data.forEach((item) => { + const itemSplit = item.split(':'); + const t = itemSplit[0].trim().toLowerCase().replace(/\s/g, '_'); + if (t === 'link') { + const v = item.replace('Link:', '').trim(); + const vArray = v.split(','); + formatteddata[t] = vArray; + } else if (t === 'slide') { + const v = item.replace('Slide:', '').trim(); + formatteddata[t] = v; + } else if (t === 'location') { + const v = itemSplit[1].trim(); + formatteddata['place'] = v; + } else { + const v = itemSplit[1].trim(); + formatteddata[t] = v; + } + }); + const id = `${title + .toLowerCase() + .replace(/\./g, '') + .replace(/[^\w ]/, '') + .replace(/\s/g, '')}`; + + if (id.includes('topic:')) { + return null; + } + + return { + id: `${title + .toLowerCase() + .replace(/\./g, '') + .replace(/[^\w ]/, '') + .replace(/\s/g, '')}`, + event: title, + ...formatteddata, + }; + }) + .get() + .filter(Boolean); + + objResult = { + ...objResult, + ...{ + [year]: data, + }, + }; + + return { + [year]: data, + }; + }) + .get(); + + writeFile('./all-talks.json', JSON.stringify(objResult)); + writeFile('./all-talks.js', `export default ${JSON.stringify(objResult)}`); + writeFile('./all-talks-node.js', `module.exports = ${JSON.stringify(objResult)}`); + } catch (error) { + console.error('❌ Error read file README.md', error); + } +}; + +main(); diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..9100e004 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,206 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/node@*": + version "14.0.26" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.26.tgz#22a3b8a46510da8944b67bfc27df02c34a35331c" + integrity sha512-W+fpe5s91FBGE0pEa0lnqGLL4USgpLgs4nokw16SrBBco/gQxuua7KnArSEOd5iaMqbbSHV10vUDkJYJJqpXKA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +cheerio@1.0.0-rc.3: + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" + integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.1" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0, entities@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +inherits@^2.0.1, inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +linkify-it@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" + integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== + dependencies: + uc.micro "^1.0.1" + +lodash@^4.15.0: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + +markdown-it@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-11.0.0.tgz#dbfc30363e43d756ebc52c38586b91b90046b876" + integrity sha512-+CvOnmbSubmQFSA9dKz1BRiaSMV7rhexl3sngKqFyXSagoA3fBdJQ8oZWtRy2knXdpDXaBw44euz37DeJQ9asg== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +mkdirp@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== + dependencies: + "@types/node" "*" + +readable-stream@^3.1.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=