Getting Started

Getting Started

Installation

To get started with Code Tour, you can install the library using pnpm, yarn or npm. Open your terminal and run one of the following commands:

pnpm i @nguyend-nam/code-tour

Usage

Importing CodeTour

Once you have installed Code Tour, you can import the component into your project. In your JavaScript or TypeScript file, add the following import statements:

import { CodeTour } from "@nguyend-nam/code-tour";

Don't forget to import the stylesheet into your CSS file:

@import "@nguyend-nam/code-tour/dist/styles.css";

Using in the web

Define your CodeTour component within your React component, specifying the steps you want to include. Each step corresponds to segment(s) of your codebase that you want to highlight or replace:

// ...
 
const str = `function lorem(ipsum, dolor) {
  const sit = "lorem ipsum";
  dolor = elit(dolor, 3);
  
  while (++consectetur < amet) {
    // TODO
  }
}`;
 
<CodeTour
  defaultSourceCode={str}
  language="javascript"
  steps={[
    {},
    {
      focus: [0, [4, 6]],
    },
    {
      focus: 5,
      replaces: [
        {
          line: 5,
          values: "    sit.eiusmod();",
        },
      ],
    },
    {
      focus: 5,
      replaces: [
        {
          line: 5,
          values: '    sit.eiusmod("dolor sit amet");',
        },
      ],
    },
    {
      focus: 6,
      replaces: [
        {
          line: 5,
          values: '    sit.eiusmod("dolor sit amet");',
        },
      ],
      inserts: [
        {
          line: 6,
          values: "    tempor();",
        },
      ],
    },
    {
      focus: 6,
      replaces: [
        {
          line: 5,
          values: '    sit.eiusmod("dolor sit amet");',
        },
      ],
      inserts: [
        {
          line: 6,
          values: "    tempor(ipsum, adipiscing);",
        },
      ],
    },
    {
      replaces: [
        {
          line: 5,
          values: '    sit.eiusmod("dolor sit amet");',
        },
      ],
      inserts: [
        {
          line: 6,
          values: "    tempor(ipsum, adipiscing);",
        },
      ],
    },
    {
      focus: [4, 7],
      replaces: [
        {
          line: 5,
          values: '    sit.eiusmod("dolor sit amet");',
        },
      ],
      inserts: [
        {
          line: 6,
          values: "    tempor(ipsum, adipiscing);",
        },
      ],
    },
    {
      focus: [4, 7],
      replaces: [
        {
          line: 5,
          values: '    sit.eiusmod("dolor sit amet");',
        },
        {
          line: 4,
          values: "  do {",
        },
        {
          line: 7,
          values: "  } while (++consectetur < amet);",
        },
      ],
      inserts: [
        {
          line: 6,
          values: "    tempor(ipsum, adipiscing);",
        },
      ],
    },
    {
      replaces: [
        {
          line: 5,
          values: '    sit.eiusmod("dolor sit amet");',
        },
        {
          line: 4,
          values: "  do {",
        },
        {
          line: 7,
          values: "  } while (++consectetur < amet);",
        },
      ],
      inserts: [
        {
          line: 6,
          values: "    tempor(ipsum, adipiscing);",
        },
      ],
    },
  ]}
/>;
 
// ...

Preview