Skip to content

Commit e5ad96a

Browse files
committed
feat: implement and use the LegacyJsCourseAdmonition component
1 parent 847a085 commit e5ad96a

16 files changed

+95
-26
lines changed

nginx.conf

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -542,32 +542,32 @@ server {
542542
rewrite ^/academy/php$ /academy/php/use-apify-from-php redirect; # not permanent in case we want to reuse /php in the future
543543

544544
# Academy: replacing the 'Web Scraping for Beginners' course
545-
rewrite ^/academy/web-scraping-for-beginners/best-practices$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/best-practices permanent;
546-
rewrite ^/academy/web-scraping-for-beginners/introduction$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/introduction permanent;
547-
rewrite ^/academy/web-scraping-for-beginners/challenge/initializing-and-setting-up$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/challenge/initializing-and-setting-up permanent;
548-
rewrite ^/academy/web-scraping-for-beginners/challenge/modularity$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/challenge/modularity permanent;
549-
rewrite ^/academy/web-scraping-for-beginners/challenge/scraping-amazon$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/challenge/scraping-amazon permanent;
550-
rewrite ^/academy/web-scraping-for-beginners/challenge$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/challenge permanent;
551-
rewrite ^/academy/web-scraping-for-beginners/crawling/exporting-data$ /academy/scraping-basics-javascript/framework?legacy-js-course=/legacy/crawling/exporting-data permanent;
552-
rewrite ^/academy/web-scraping-for-beginners/crawling/filtering-links$ /academy/scraping-basics-javascript/getting-links?legacy-js-course=/legacy/crawling/filtering-links permanent;
553-
rewrite ^/academy/web-scraping-for-beginners/crawling/finding-links$ /academy/scraping-basics-javascript/getting-links?legacy-js-course=/legacy/crawling/finding-links permanent;
554-
rewrite ^/academy/web-scraping-for-beginners/crawling/first-crawl$ /academy/scraping-basics-javascript/crawling?legacy-js-course=/legacy/crawling/first-crawl permanent;
555-
rewrite ^/academy/web-scraping-for-beginners/crawling/headless-browser$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/crawling/headless-browser permanent;
556-
rewrite ^/academy/web-scraping-for-beginners/crawling/pro-scraping$ /academy/scraping-basics-javascript/framework?legacy-js-course=/legacy/crawling/pro-scraping permanent;
557-
rewrite ^/academy/web-scraping-for-beginners/crawling/recap-extraction-basics$ /academy/scraping-basics-javascript/extracting-data?legacy-js-course=/legacy/crawling/recap-extraction-basics permanent;
558-
rewrite ^/academy/web-scraping-for-beginners/crawling/relative-urls$ /academy/scraping-basics-javascript/getting-links?legacy-js-course=/legacy/crawling/relative-urls permanent;
559-
rewrite ^/academy/web-scraping-for-beginners/crawling/scraping-the-data$ /academy/scraping-basics-javascript/scraping-variants?legacy-js-course=/legacy/crawling/scraping-the-data permanent;
560-
rewrite ^/academy/web-scraping-for-beginners/crawling$ /academy/scraping-basics-javascript/crawling?legacy-js-course=/legacy/crawling permanent;
561-
rewrite ^/academy/web-scraping-for-beginners/data-extraction/browser-devtools$ /academy/scraping-basics-javascript/devtools-inspecting?legacy-js-course=/legacy/data-extraction/browser-devtools permanent;
562-
rewrite ^/academy/web-scraping-for-beginners/data-extraction/computer-preparation$ /academy/scraping-basics-javascript/downloading-html?legacy-js-course=/legacy/data-extraction/computer-preparation permanent;
563-
rewrite ^/academy/web-scraping-for-beginners/data-extraction/devtools-continued$ /academy/scraping-basics-javascript/devtools-extracting-data?legacy-js-course=/legacy/data-extraction/devtools-continued permanent;
564-
rewrite ^/academy/web-scraping-for-beginners/data-extraction/node-continued$ /academy/scraping-basics-javascript/extracting-data?legacy-js-course=/legacy/data-extraction/node-continued permanent;
565-
rewrite ^/academy/web-scraping-for-beginners/data-extraction/node-js-scraper$ /academy/scraping-basics-javascript/downloading-html?legacy-js-course=/legacy/data-extraction/node-js-scraper permanent;
566-
rewrite ^/academy/web-scraping-for-beginners/data-extraction/project-setup$ /academy/scraping-basics-javascript/downloading-html?legacy-js-course=/legacy/data-extraction/project-setup permanent;
567-
rewrite ^/academy/web-scraping-for-beginners/data-extraction/save-to-csv$ /academy/scraping-basics-javascript/saving-data?legacy-js-course=/legacy/data-extraction/save-to-csv permanent;
568-
rewrite ^/academy/web-scraping-for-beginners/data-extraction/using-devtools$ /academy/scraping-basics-javascript/devtools-locating-elements?legacy-js-course=/legacy/data-extraction/using-devtools permanent;
569-
rewrite ^/academy/web-scraping-for-beginners/data-extraction$ /academy/scraping-basics-javascript/devtools-inspecting?legacy-js-course=/legacy/data-extraction permanent;
570-
rewrite ^/academy/web-scraping-for-beginners$ /academy/scraping-basics-javascript?legacy-js-course=/legacy permanent;
545+
rewrite ^/academy/web-scraping-for-beginners/best-practices$ /academy/scraping-basics-javascript?legacy-js-course=/best-practices permanent;
546+
rewrite ^/academy/web-scraping-for-beginners/introduction$ /academy/scraping-basics-javascript?legacy-js-course=/introduction permanent;
547+
rewrite ^/academy/web-scraping-for-beginners/challenge/initializing-and-setting-up$ /academy/scraping-basics-javascript?legacy-js-course=/challenge/initializing-and-setting-up permanent;
548+
rewrite ^/academy/web-scraping-for-beginners/challenge/modularity$ /academy/scraping-basics-javascript?legacy-js-course=/challenge/modularity permanent;
549+
rewrite ^/academy/web-scraping-for-beginners/challenge/scraping-amazon$ /academy/scraping-basics-javascript?legacy-js-course=/challenge/scraping-amazon permanent;
550+
rewrite ^/academy/web-scraping-for-beginners/challenge$ /academy/scraping-basics-javascript?legacy-js-course=/challenge permanent;
551+
rewrite ^/academy/web-scraping-for-beginners/crawling/exporting-data$ /academy/scraping-basics-javascript/framework?legacy-js-course=/crawling/exporting-data permanent;
552+
rewrite ^/academy/web-scraping-for-beginners/crawling/filtering-links$ /academy/scraping-basics-javascript/getting-links?legacy-js-course=/crawling/filtering-links permanent;
553+
rewrite ^/academy/web-scraping-for-beginners/crawling/finding-links$ /academy/scraping-basics-javascript/getting-links?legacy-js-course=/crawling/finding-links permanent;
554+
rewrite ^/academy/web-scraping-for-beginners/crawling/first-crawl$ /academy/scraping-basics-javascript/crawling?legacy-js-course=/crawling/first-crawl permanent;
555+
rewrite ^/academy/web-scraping-for-beginners/crawling/headless-browser$ /academy/scraping-basics-javascript?legacy-js-course=/crawling/headless-browser permanent;
556+
rewrite ^/academy/web-scraping-for-beginners/crawling/pro-scraping$ /academy/scraping-basics-javascript/framework?legacy-js-course=/crawling/pro-scraping permanent;
557+
rewrite ^/academy/web-scraping-for-beginners/crawling/recap-extraction-basics$ /academy/scraping-basics-javascript/extracting-data?legacy-js-course=/crawling/recap-extraction-basics permanent;
558+
rewrite ^/academy/web-scraping-for-beginners/crawling/relative-urls$ /academy/scraping-basics-javascript/getting-links?legacy-js-course=/crawling/relative-urls permanent;
559+
rewrite ^/academy/web-scraping-for-beginners/crawling/scraping-the-data$ /academy/scraping-basics-javascript/scraping-variants?legacy-js-course=/crawling/scraping-the-data permanent;
560+
rewrite ^/academy/web-scraping-for-beginners/crawling$ /academy/scraping-basics-javascript/crawling?legacy-js-course=/crawling permanent;
561+
rewrite ^/academy/web-scraping-for-beginners/data-extraction/browser-devtools$ /academy/scraping-basics-javascript/devtools-inspecting?legacy-js-course=/data-extraction/browser-devtools permanent;
562+
rewrite ^/academy/web-scraping-for-beginners/data-extraction/computer-preparation$ /academy/scraping-basics-javascript/downloading-html?legacy-js-course=/data-extraction/computer-preparation permanent;
563+
rewrite ^/academy/web-scraping-for-beginners/data-extraction/devtools-continued$ /academy/scraping-basics-javascript/devtools-extracting-data?legacy-js-course=/data-extraction/devtools-continued permanent;
564+
rewrite ^/academy/web-scraping-for-beginners/data-extraction/node-continued$ /academy/scraping-basics-javascript/extracting-data?legacy-js-course=/data-extraction/node-continued permanent;
565+
rewrite ^/academy/web-scraping-for-beginners/data-extraction/node-js-scraper$ /academy/scraping-basics-javascript/downloading-html?legacy-js-course=/data-extraction/node-js-scraper permanent;
566+
rewrite ^/academy/web-scraping-for-beginners/data-extraction/project-setup$ /academy/scraping-basics-javascript/downloading-html?legacy-js-course=/data-extraction/project-setup permanent;
567+
rewrite ^/academy/web-scraping-for-beginners/data-extraction/save-to-csv$ /academy/scraping-basics-javascript/saving-data?legacy-js-course=/data-extraction/save-to-csv permanent;
568+
rewrite ^/academy/web-scraping-for-beginners/data-extraction/using-devtools$ /academy/scraping-basics-javascript/devtools-locating-elements?legacy-js-course=/data-extraction/using-devtools permanent;
569+
rewrite ^/academy/web-scraping-for-beginners/data-extraction$ /academy/scraping-basics-javascript/devtools-inspecting?legacy-js-course=/data-extraction permanent;
570+
rewrite ^/academy/web-scraping-for-beginners$ /academy/scraping-basics-javascript?legacy-js-course=/ permanent;
571571

572572
# Removed pages
573573
# GPT plugins were discontinued April 9th, 2024 - https://help.openai.com/en/articles/8988022-winding-down-the-chatgpt-plugins-beta

sources/academy/webscraping/scraping_basics_javascript/01_devtools_inspecting.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ slug: /scraping-basics-javascript/devtools-inspecting
66
unlisted: true
77
---
88

9+
import LegacyJsCourseAdmonition from '@site/src/components/LegacyJsCourseAdmonition';
910
import Exercises from '../scraping_basics/_exercises.mdx';
1011

12+
<LegacyJsCourseAdmonition />
13+
1114
**In this lesson we'll use the browser tools for developers to inspect and manipulate the structure of a website.**
1215

1316
---

sources/academy/webscraping/scraping_basics_javascript/02_devtools_locating_elements.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ slug: /scraping-basics-javascript/devtools-locating-elements
66
unlisted: true
77
---
88

9+
import LegacyJsCourseAdmonition from '@site/src/components/LegacyJsCourseAdmonition';
910
import Exercises from '../scraping_basics/_exercises.mdx';
1011

12+
<LegacyJsCourseAdmonition />
13+
1114
**In this lesson we'll use the browser tools for developers to manually find products on an e-commerce website.**
1215

1316
---

sources/academy/webscraping/scraping_basics_javascript/03_devtools_extracting_data.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ slug: /scraping-basics-javascript/devtools-extracting-data
66
unlisted: true
77
---
88

9+
import LegacyJsCourseAdmonition from '@site/src/components/LegacyJsCourseAdmonition';
910
import Exercises from '../scraping_basics/_exercises.mdx';
1011

12+
<LegacyJsCourseAdmonition />
13+
1114
**In this lesson we'll use the browser tools for developers to manually extract product data from an e-commerce website.**
1215

1316
---

sources/academy/webscraping/scraping_basics_javascript/04_downloading_html.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ slug: /scraping-basics-javascript/downloading-html
66
unlisted: true
77
---
88

9+
import LegacyJsCourseAdmonition from '@site/src/components/LegacyJsCourseAdmonition';
910
import Exercises from '../scraping_basics/_exercises.mdx';
1011

12+
<LegacyJsCourseAdmonition />
13+
1114
**In this lesson we'll start building a Node.js application for watching prices. As a first step, we'll use the Fetch API to download HTML code of a product listing page.**
1215

1316
---

sources/academy/webscraping/scraping_basics_javascript/05_parsing_html.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ slug: /scraping-basics-javascript/parsing-html
66
unlisted: true
77
---
88

9+
import LegacyJsCourseAdmonition from '@site/src/components/LegacyJsCourseAdmonition';
910
import Exercises from '../scraping_basics/_exercises.mdx';
1011

12+
<LegacyJsCourseAdmonition />
13+
1114
**In this lesson we'll look for products in the downloaded HTML. We'll use Cheerio to turn the HTML into objects which we can work with in our Node.js program.**
1215

1316
---

sources/academy/webscraping/scraping_basics_javascript/06_locating_elements.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ slug: /scraping-basics-javascript/locating-elements
66
unlisted: true
77
---
88

9+
import LegacyJsCourseAdmonition from '@site/src/components/LegacyJsCourseAdmonition';
910
import Exercises from '../scraping_basics/_exercises.mdx';
1011

12+
<LegacyJsCourseAdmonition />
13+
1114
**In this lesson we'll locate product data in the downloaded HTML. We'll use Cheerio to find those HTML elements which contain details about each product, such as title or price.**
1215

1316
---

sources/academy/webscraping/scraping_basics_javascript/07_extracting_data.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ slug: /scraping-basics-javascript/extracting-data
66
unlisted: true
77
---
88

9+
import LegacyJsCourseAdmonition from '@site/src/components/LegacyJsCourseAdmonition';
910
import Exercises from '../scraping_basics/_exercises.mdx';
1011

12+
<LegacyJsCourseAdmonition />
13+
1114
**In this lesson we'll finish extracting product data from the downloaded HTML. With help of basic string manipulation we'll focus on cleaning and correctly representing the product price.**
1215

1316
---

sources/academy/webscraping/scraping_basics_javascript/08_saving_data.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ slug: /scraping-basics-javascript/saving-data
66
unlisted: true
77
---
88

9+
import LegacyJsCourseAdmonition from '@site/src/components/LegacyJsCourseAdmonition';
10+
11+
<LegacyJsCourseAdmonition />
12+
913
**In this lesson, we'll save the data we scraped in the popular formats, such as CSV or JSON. We'll use the json2csv library to export the files.**
1014

1115
---

sources/academy/webscraping/scraping_basics_javascript/09_getting_links.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ slug: /scraping-basics-javascript/getting-links
66
unlisted: true
77
---
88

9+
import LegacyJsCourseAdmonition from '@site/src/components/LegacyJsCourseAdmonition';
910
import Exercises from '../scraping_basics/_exercises.mdx';
1011

12+
<LegacyJsCourseAdmonition />
13+
1114
**In this lesson, we'll locate and extract links to individual product pages. We'll use Cheerio to find the relevant bits of HTML.**
1215

1316
---

0 commit comments

Comments
 (0)