- {author.name}
+ {author.frontmatter.name}
·
Illustrated Video
-
+
{frontmatter.title}
-
+
{frontmatter.description}
diff --git a/src/data/authors/ebrahim-bharmal.md b/src/data/authors/ebrahim-bharmal.md
new file mode 100644
index 000000000..3763d5972
--- /dev/null
+++ b/src/data/authors/ebrahim-bharmal.md
@@ -0,0 +1,8 @@
+---
+name: 'Ebrahim Bharmal'
+imageUrl: '/authors/ebrahimbharmal007.png'
+social:
+ twitter: 'https://twitter.com/BharmalEbrahim'
+---
+
+Full-stack developer interested in all things web development.
\ No newline at end of file
diff --git a/src/data/authors/jesse-li.md b/src/data/authors/jesse-li.md
new file mode 100644
index 000000000..4f7049c52
--- /dev/null
+++ b/src/data/authors/jesse-li.md
@@ -0,0 +1,9 @@
+---
+name: 'Jesse Li'
+imageUrl: '/authors/jesse.png'
+social:
+ twitter: 'https://twitter.com/__jesse_li'
+ github: 'https://github.com/veggiedefender'
+---
+
+Jesse has made several [interesting open-source projects](https://github.com/veggiedefender) and wrote some interesting [articles on his blog](https://blog.jse.li/) including the one he wrote on roadmap.sh.
\ No newline at end of file
diff --git a/src/data/authors/peter-thaleikis.md b/src/data/authors/peter-thaleikis.md
new file mode 100644
index 000000000..635f41a86
--- /dev/null
+++ b/src/data/authors/peter-thaleikis.md
@@ -0,0 +1,9 @@
+---
+name: 'Peter Thaleikis'
+imageUrl: '/authors/peter-thaleikis.png'
+social:
+ twitter: 'https://twitter.com/spekulatius1984'
+ website: 'https://peterthaleikis.com/'
+---
+
+Peter Thaleikis a software engineer and business owner. He has been developing web applications since around 2000. Before he started his own software development company [Bring Your Own Ideas Ltd.](https://bringyourownideas.com/), he has been a Lead Developer for multiple organizations.
\ No newline at end of file
diff --git a/src/data/guides/proxy-servers.md b/src/data/guides/proxy-servers.md
index de53315cf..560245872 100644
--- a/src/data/guides/proxy-servers.md
+++ b/src/data/guides/proxy-servers.md
@@ -1,10 +1,7 @@
---
title: 'Proxy Servers'
description: 'How do proxy servers work and what are forward and reverse proxies?'
-author:
- name: 'Ebrahim Bharmal'
- url: 'https://twitter.com/BharmalEbrahim'
- imageUrl: '/authors/ebrahimbharmal007.png'
+authorId: 'ebrahim-bharmal'
seo:
title: 'Proxy Servers - roadmap.sh'
description: 'How do proxy servers work and what are forward and reverse proxies?'
diff --git a/src/data/guides/torrent-client.md b/src/data/guides/torrent-client.md
index 63af12295..536b57cae 100644
--- a/src/data/guides/torrent-client.md
+++ b/src/data/guides/torrent-client.md
@@ -1,10 +1,7 @@
---
title: 'Building a BitTorrent Client'
description: 'Learn everything you need to know about BitTorrent by writing a client in Go'
-author:
- name: 'Jesse Li'
- url: 'https://twitter.com/__jesse_li'
- imageUrl: '/authors/jesse.png'
+authorId: 'jesse-li'
seo:
title: 'Building a BitTorrent Client - roadmap.sh'
description: 'Learn everything you need to know about BitTorrent by writing a client in Go'
diff --git a/src/data/guides/why-build-it-and-they-will-come-wont-work-anymore.md b/src/data/guides/why-build-it-and-they-will-come-wont-work-anymore.md
index 0d7a730c3..769343c6a 100644
--- a/src/data/guides/why-build-it-and-they-will-come-wont-work-anymore.md
+++ b/src/data/guides/why-build-it-and-they-will-come-wont-work-anymore.md
@@ -1,10 +1,7 @@
---
title: 'Build it and they will come?'
description: 'Why “build it and they will come” alone won’t work anymore'
-author:
- name: 'Peter Thaleikis'
- url: 'https://twitter.com/spekulatius1984'
- imageUrl: '/authors/spekulatius.jpg'
+authorId: 'peter-thaleikis'
seo:
title: 'Build it and they will come? - roadmap.sh'
description: 'Why “build it and they will come” alone won’t work anymore'
diff --git a/src/data/videos/acid-explained.md b/src/data/videos/acid-explained.md
index cf9097b8e..280911d18 100644
--- a/src/data/videos/acid-explained.md
+++ b/src/data/videos/acid-explained.md
@@ -4,10 +4,7 @@ description: 'Learn what it means for a database to be ACID compliant with examp
duration: '5 minutes'
isNew: false
date: 2021-09-26
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/all-about-http-caching.md b/src/data/videos/all-about-http-caching.md
index e749426e2..16a48f554 100644
--- a/src/data/videos/all-about-http-caching.md
+++ b/src/data/videos/all-about-http-caching.md
@@ -4,10 +4,7 @@ description: 'Learn what is HTTP caching, places for caching and different cachi
duration: '13 minutes'
isNew: false
date: 2020-10-04
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/array-structure.md b/src/data/videos/array-structure.md
index 99f473e7b..127a19352 100644
--- a/src/data/videos/array-structure.md
+++ b/src/data/videos/array-structure.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about array data structure'
duration: '10 minutes'
isNew: false
date: 2022-01-09
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/arrays-and-objects-in-javascript.md b/src/data/videos/arrays-and-objects-in-javascript.md
index f67c620bd..979bb4831 100644
--- a/src/data/videos/arrays-and-objects-in-javascript.md
+++ b/src/data/videos/arrays-and-objects-in-javascript.md
@@ -4,10 +4,7 @@ description: 'Learn how to manipulate arrays and objects in JavaScript.'
duration: '12 minutes'
isNew: false
date: 2020-05-09
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/async-javascript.md b/src/data/videos/async-javascript.md
index 12a95903d..6622b9e22 100644
--- a/src/data/videos/async-javascript.md
+++ b/src/data/videos/async-javascript.md
@@ -4,10 +4,7 @@ description: 'Learn how to write asynchronous JavaScript using Async/Await'
duration: '15 minutes'
isNew: false
date: 2021-11-14
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/basic-authentication.md b/src/data/videos/basic-authentication.md
index 223461fc4..6c6adc45c 100644
--- a/src/data/videos/basic-authentication.md
+++ b/src/data/videos/basic-authentication.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about basic authentication'
duration: '5 minutes'
isNew: false
date: 2022-10-01
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/basics-of-authentication.md b/src/data/videos/basics-of-authentication.md
index fd10bfc54..28e029f42 100644
--- a/src/data/videos/basics-of-authentication.md
+++ b/src/data/videos/basics-of-authentication.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about authentication with this A
duration: '5 minutes'
isNew: false
date: 2022-09-21
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/big-o-notation.md b/src/data/videos/big-o-notation.md
index 60b2b1e0f..8509e7bdc 100644
--- a/src/data/videos/big-o-notation.md
+++ b/src/data/videos/big-o-notation.md
@@ -4,10 +4,7 @@ description: 'Learn what the Big-O notation is and how to calculate the time com
duration: '8 minutes'
isNew: false
date: 2021-10-25
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/content-delivery-networks.md b/src/data/videos/content-delivery-networks.md
index 6a47235e8..505e853ca 100644
--- a/src/data/videos/content-delivery-networks.md
+++ b/src/data/videos/content-delivery-networks.md
@@ -4,10 +4,7 @@ description: 'Learn what the CDNs are and the difference between push CDN vs pul
duration: '4 minutes'
isNew: false
date: 2020-09-26
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/dns-explained.md b/src/data/videos/dns-explained.md
index b3efdf901..6ad370ed0 100644
--- a/src/data/videos/dns-explained.md
+++ b/src/data/videos/dns-explained.md
@@ -4,10 +4,7 @@ description: 'Learn what the DNS is and how a website is found on the internet.'
duration: '5 minutes'
isNew: false
date: 2020-08-17
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/dns-records.md b/src/data/videos/dns-records.md
index 9f8aeaea3..3aa4cb4a9 100644
--- a/src/data/videos/dns-records.md
+++ b/src/data/videos/dns-records.md
@@ -4,10 +4,7 @@ description: 'Learn what the DNS is and how a website is found on the internet.'
duration: '6 minutes'
isNew: false
date: 2020-08-31
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/floating-point-arithmetic.md b/src/data/videos/floating-point-arithmetic.md
index 2aab972f1..d5e3601c4 100644
--- a/src/data/videos/floating-point-arithmetic.md
+++ b/src/data/videos/floating-point-arithmetic.md
@@ -4,10 +4,7 @@ description: 'Learn how ow the arithmetic operations work on floating-point numb
duration: '4 minutes'
isNew: false
date: 2021-10-10
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/freeze-and-seal-objects-in-javascript.md b/src/data/videos/freeze-and-seal-objects-in-javascript.md
index 397064de3..81d100cfe 100644
--- a/src/data/videos/freeze-and-seal-objects-in-javascript.md
+++ b/src/data/videos/freeze-and-seal-objects-in-javascript.md
@@ -4,10 +4,7 @@ description: 'Learn what is object freeze and seal in JavaScript and how to use
duration: '6 minutes'
isNew: false
date: 2020-10-16
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/graph-data-structure.md b/src/data/videos/graph-data-structure.md
index 571b235c8..71cd08360 100644
--- a/src/data/videos/graph-data-structure.md
+++ b/src/data/videos/graph-data-structure.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about the graph data structure'
duration: '13 minutes'
isNew: false
date: 2022-09-08
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/hash-table-data-structure.md b/src/data/videos/hash-table-data-structure.md
index 3b8547a43..6d590206c 100644
--- a/src/data/videos/hash-table-data-structure.md
+++ b/src/data/videos/hash-table-data-structure.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about the hash table data struct
duration: '8 minutes'
isNew: false
date: 2022-02-21
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/heap-data-structure.md b/src/data/videos/heap-data-structure.md
index e78066ad7..67467adba 100644
--- a/src/data/videos/heap-data-structure.md
+++ b/src/data/videos/heap-data-structure.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about the heap data structure'
duration: '11 minutes'
isNew: false
date: 2022-08-24
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/how-to-use-css-variables.md b/src/data/videos/how-to-use-css-variables.md
index e45ae8ef4..897c1ef0a 100644
--- a/src/data/videos/how-to-use-css-variables.md
+++ b/src/data/videos/how-to-use-css-variables.md
@@ -4,10 +4,7 @@ description: 'Learn how to write scalable CSS using CSS Variables.'
duration: '5 minutes'
isNew: false
date: 2020-07-03
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/how-to-use-github-actions.md b/src/data/videos/how-to-use-github-actions.md
index aac637de6..96ff1c68a 100644
--- a/src/data/videos/how-to-use-github-actions.md
+++ b/src/data/videos/how-to-use-github-actions.md
@@ -4,10 +4,7 @@ description: 'Learn how to implement CI/CD with GitHub Actions'
duration: '6 minutes'
isNew: false
date: 2020-07-13
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/javascript-fetch-api.md b/src/data/videos/javascript-fetch-api.md
index 92a548e80..1fdc57398 100644
--- a/src/data/videos/javascript-fetch-api.md
+++ b/src/data/videos/javascript-fetch-api.md
@@ -4,10 +4,7 @@ description: "Learn how to use JavaScript's Fetch API to interact with remote AP
duration: '3 minutes'
isNew: false
date: 2020-08-02
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/linked-list-data-structure.md b/src/data/videos/linked-list-data-structure.md
index a6284ff62..86b282c3d 100644
--- a/src/data/videos/linked-list-data-structure.md
+++ b/src/data/videos/linked-list-data-structure.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about linked list data structure
duration: '11 minutes'
isNew: false
date: 2022-01-31
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/load-balancers-101.md b/src/data/videos/load-balancers-101.md
index 171064787..d9a54b6da 100644
--- a/src/data/videos/load-balancers-101.md
+++ b/src/data/videos/load-balancers-101.md
@@ -4,10 +4,7 @@ description: 'Learn the basics of load balancers, types and different algorithms
duration: '9 minutes'
isNew: false
date: 2020-09-18
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/osi-model.md b/src/data/videos/osi-model.md
index a2fce9cb6..7ae8a3b85 100644
--- a/src/data/videos/osi-model.md
+++ b/src/data/videos/osi-model.md
@@ -4,10 +4,7 @@ description: 'Learn what is OSI Model and the different layers involved.'
duration: '7 minutes'
isNew: false
date: 2020-10-24
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/practical-intro-to-react.md b/src/data/videos/practical-intro-to-react.md
index 6c61c3485..d84b194dd 100644
--- a/src/data/videos/practical-intro-to-react.md
+++ b/src/data/videos/practical-intro-to-react.md
@@ -4,10 +4,7 @@ description: 'Learn how to create a React Application with practical example.'
duration: '40 minutes'
isNew: false
date: 2020-07-09
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/promises-in-javascript.md b/src/data/videos/promises-in-javascript.md
index 2a2bcca18..9b64540c6 100644
--- a/src/data/videos/promises-in-javascript.md
+++ b/src/data/videos/promises-in-javascript.md
@@ -4,10 +4,7 @@ description: 'Learn how to write asynchronous code in JavaScript using promises.
duration: '8 minutes'
isNew: false
date: 2020-07-20
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/queue-data-structure.md b/src/data/videos/queue-data-structure.md
index 7d7460aa2..0ad33608a 100644
--- a/src/data/videos/queue-data-structure.md
+++ b/src/data/videos/queue-data-structure.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about the queue data structure'
duration: '4 minutes'
isNew: false
date: 2022-02-14
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/random-number-generators.md b/src/data/videos/random-number-generators.md
index e680cf50f..cce5d9f99 100644
--- a/src/data/videos/random-number-generators.md
+++ b/src/data/videos/random-number-generators.md
@@ -4,10 +4,7 @@ description: 'How do random number generators work?'
duration: '8 minutes'
isNew: false
date: 2021-11-03
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/scaling-the-unscalable.md b/src/data/videos/scaling-the-unscalable.md
index 31705439b..8fff50164 100644
--- a/src/data/videos/scaling-the-unscalable.md
+++ b/src/data/videos/scaling-the-unscalable.md
@@ -4,10 +4,7 @@ description: 'Learn the basics of System Design and understand how to build a sc
duration: '10 minutes'
isNew: false
date: 2020-07-26
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/session-based-authentication.md b/src/data/videos/session-based-authentication.md
index 12838e055..318b0a2f9 100644
--- a/src/data/videos/session-based-authentication.md
+++ b/src/data/videos/session-based-authentication.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about session authentication'
duration: '2 minutes'
isNew: false
date: 2022-11-02
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/ssh-ssl-tls.md b/src/data/videos/ssh-ssl-tls.md
index 9968a953c..12af0ffbc 100644
--- a/src/data/videos/ssh-ssl-tls.md
+++ b/src/data/videos/ssh-ssl-tls.md
@@ -4,10 +4,7 @@ description: 'Learn the difference between SSH, TLS and SSL'
duration: '3 minutes'
isNew: false
date: 2021-11-25
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/stack-data-structure.md b/src/data/videos/stack-data-structure.md
index 5b07d9483..c0114692f 100644
--- a/src/data/videos/stack-data-structure.md
+++ b/src/data/videos/stack-data-structure.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about the stack data structure'
duration: '5 minutes'
isNew: false
date: 2022-02-07
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/system-design-101.md b/src/data/videos/system-design-101.md
index 34483b9ac..90a1bf317 100644
--- a/src/data/videos/system-design-101.md
+++ b/src/data/videos/system-design-101.md
@@ -4,10 +4,7 @@ description: 'Learn about all the bits and pieces of system design.'
duration: '7 minutes'
isNew: false
date: 2020-08-08
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/tcp-ip-model.md b/src/data/videos/tcp-ip-model.md
index 08dd9a210..341fde8b1 100644
--- a/src/data/videos/tcp-ip-model.md
+++ b/src/data/videos/tcp-ip-model.md
@@ -4,10 +4,7 @@ description: 'Learn what is TCP/IP Model and the different layers involved.'
duration: '5 minutes'
isNew: false
date: 2020-11-06
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/transport-protocols-tcp-vs-udp.md b/src/data/videos/transport-protocols-tcp-vs-udp.md
index 928e408b1..53c6ea6e2 100644
--- a/src/data/videos/transport-protocols-tcp-vs-udp.md
+++ b/src/data/videos/transport-protocols-tcp-vs-udp.md
@@ -4,10 +4,7 @@ description: 'Learn about the Transport Layer of the TCP/IP model and different
duration: '10 minutes'
isNew: false
date: 2020-11-21
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/tree-data-structure.md b/src/data/videos/tree-data-structure.md
index 93e39d340..01ed0018e 100644
--- a/src/data/videos/tree-data-structure.md
+++ b/src/data/videos/tree-data-structure.md
@@ -4,10 +4,7 @@ description: 'Learn everything you need to know about the tree data structure'
duration: '8 minutes'
isNew: false
date: 2022-08-11
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/what-are-data-structures.md b/src/data/videos/what-are-data-structures.md
index 10b68816f..54bdffd0b 100644
--- a/src/data/videos/what-are-data-structures.md
+++ b/src/data/videos/what-are-data-structures.md
@@ -4,10 +4,7 @@ description: 'Learn about the different data structures in this illustrated seri
duration: '1 minute'
isNew: false
date: 2021-12-12
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/what-is-cap-theorem.md b/src/data/videos/what-is-cap-theorem.md
index da9966cf0..84693bb42 100644
--- a/src/data/videos/what-is-cap-theorem.md
+++ b/src/data/videos/what-is-cap-theorem.md
@@ -4,10 +4,7 @@ description: 'An illustrated explanation to CAP theorem with examples and proof.
duration: '8 minutes'
isNew: false
date: 2021-10-05
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/what-is-dependency-injection.md b/src/data/videos/what-is-dependency-injection.md
index d5c0a764a..2eb60772e 100644
--- a/src/data/videos/what-is-dependency-injection.md
+++ b/src/data/videos/what-is-dependency-injection.md
@@ -4,10 +4,7 @@ description: 'Learn what is dependency injection and how to write better code wi
duration: '3 minutes'
isNew: false
date: 2020-07-04
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/what-is-dom-shadow-dom-virtual-dom.md b/src/data/videos/what-is-dom-shadow-dom-virtual-dom.md
index b669eca20..6aade4a57 100644
--- a/src/data/videos/what-is-dom-shadow-dom-virtual-dom.md
+++ b/src/data/videos/what-is-dom-shadow-dom-virtual-dom.md
@@ -4,10 +4,7 @@ description: 'Learn what is DOM, Shadow DOM and Virtual DOM and how they work.'
duration: '6 minutes'
isNew: false
date: 2020-07-20
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/what-is-eventual-consistency.md b/src/data/videos/what-is-eventual-consistency.md
index 6cb9df11e..78ef37a77 100644
--- a/src/data/videos/what-is-eventual-consistency.md
+++ b/src/data/videos/what-is-eventual-consistency.md
@@ -4,10 +4,7 @@ description: 'Learn about the different consistency models in distributed system
duration: '5 minutes'
isNew: false
date: 2021-11-30
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/data/videos/yaml-in-depth.md b/src/data/videos/yaml-in-depth.md
index 9967ffde6..6fc6e4a54 100644
--- a/src/data/videos/yaml-in-depth.md
+++ b/src/data/videos/yaml-in-depth.md
@@ -4,10 +4,7 @@ description: 'Everything you need to know about YAML'
duration: '8 minutes'
isNew: false
date: 2021-10-18
-author:
- name: 'Kamran Ahmed'
- url: 'https://twitter.com/kamrify'
- imageUrl: '/authors/kamranahmedse.jpeg'
+authorId: 'kamran'
sitemap:
priority: 0.7
changefreq: 'weekly'
diff --git a/src/lib/video.ts b/src/lib/video.ts
index d0eeb9ec6..09629cf21 100644
--- a/src/lib/video.ts
+++ b/src/lib/video.ts
@@ -1,14 +1,13 @@
import type { MarkdownFileType } from './file';
-import type {AuthorFileType} from "./author.ts";
+import type { AuthorFileType } from './author.ts';
+import { getAllAuthors } from './author.ts';
+import type {GuideFileType} from "./guide.ts";
+import {getAllGuides} from "./guide.ts";
export interface VideoFrontmatter {
title: string;
description: string;
- author: {
- name: string;
- url: string;
- imageUrl: string;
- };
+ authorId: string;
seo: {
title: string;
description: string;
@@ -40,6 +39,14 @@ function videoPathToId(filePath: string): string {
return fileName.replace('.md', '');
}
+export async function getVideosByAuthor(
+ authorId: string,
+): Promise
{
+ const allVideos = await getAllVideos();
+
+ return allVideos.filter((video) => video.author?.id === authorId);
+}
+
/**
* Gets all the videos sorted by the publishing date
* @returns Promisifed video files
@@ -49,10 +56,15 @@ export async function getAllVideos(): Promise {
eager: true,
});
+ const allAuthors = await getAllAuthors();
+
const videoFiles = Object.values(videos);
const enrichedVideos = videoFiles.map((videoFile) => ({
...videoFile,
id: videoPathToId(videoFile.file),
+ author: allAuthors.find(
+ (author) => author.id === videoFile.frontmatter.authorId,
+ )!,
}));
return enrichedVideos.sort(
diff --git a/src/pages/authors/[authorId].astro b/src/pages/authors/[authorId].astro
index 61097093a..c3d9c349e 100644
--- a/src/pages/authors/[authorId].astro
+++ b/src/pages/authors/[authorId].astro
@@ -2,9 +2,10 @@
import BaseLayout from '../../layouts/BaseLayout.astro';
import AstroIcon from '../../components/AstroIcon.astro';
import { getGuidesByAuthor } from '../../lib/guide';
-import { getAllVideos } from '../../lib/video';
+import {getAllVideos, getVideosByAuthor} from '../../lib/video';
import GuideListItem from '../../components/GuideListItem.astro';
import { getAuthorById, getAuthorIds } from '../../lib/author';
+import VideoListItem from "../../components/VideoListItem.astro";
interface Params extends Record {}
@@ -18,10 +19,13 @@ export async function getStaticPaths() {
const { authorId } = Astro.params;
+console.log(authorId);
+
const author = await getAuthorById(authorId);
+console.log(author);
const guides = await getGuidesByAuthor(authorId);
-const videos = await getAllVideos();
+const videos = await getVideosByAuthor(authorId);
---
-
+
{author.frontmatter.name}
{guides.map((guide) => )}
+ {videos.map((video) => )}