Useful snippets

    Rocket

    Sat 13. January 2024 | 2024-01-13

    ^
    / _ \
    |   : |
    | 0. |
    /]   : [\
    /_] _. [_\
    |   |
    | |
    |
    |

    Rename React component

    Sat 13. January 2024 | 2024-01-13

    
    # ask in what path the component resides in
    # if no answer is provided, use default value
    # -e flag is for giving `cd`-code completion while answering the question
    
    defaultValue=src/components/
    
    read -e -p "Where is component located? (default: $defaultValue): " location
    location=${location:-$defaultValue}
    
    cd $location
    
    read -e -p "Enter component name you want to rename: " currentName
    
    cd $currentName
    
    # if component ends with a trailing slash
    if [[ "$currentName" == */ ]]; then
      # remove trailing slash
      currentName=${currentName%/}
    fi
    
    indexFile=index.ts
    componentFile=$currentName.tsx
    storyFile=$currentName.stories.tsx
    stylesheetFile=$currentName.module.css
    stylesheetScssFile=$currentName.module.scss
    
    if [[ $currentName != "" ]]; then
        echo
        echo "This will try and rename:"
        echo "---- folder -----"
        echo $currentName
        echo
        echo "---- files -----"
        echo - $indexFile
        echo - $componentFile
        echo - $storyFile
        echo - $stylesheetFile
        echo - $stylesheetScssFile
        echo
    
        read -p "Enter new name: " newName
        if [[ $newName != "" ]]; then
            echo
            echo "search replace in files"
            echo
    
            sed -i "s/$currentName/$newName/g" $indexFile
            sed -i "s/$currentName/$newName/g" $componentFile
            sed -i "s/$currentName/$newName/g" $storyFile
            sed -i "s/$currentName/$newName/g" $stylesheetFile
            sed -i "s/$currentName/$newName/g" $stylesheetScssFile
    
            echo
            echo "rename files and folders"
            echo
    
            mv $componentFile $newName.tsx
            mv $storyFile $newName.stories.tsx
            mv $stylesheetFile $newName.module.css
            mv $stylesheetScssFile $newName.module.scss
    
            cd ..
    
            mv $currentName $newName/
        fi
    fi
    
    

    IDE functionalities deactivated by Vim

    Sat 13. January 2024 | 2024-01-13

    hvor mye er deaktivert/ufordel i Webstorm/VSCode når du har på Vim plugin?

    Webstorm IdeaVim

    • IDE's multi-select with Ctrl D doesn't work with entering insert mode using eg. using a
    • but c works
    • Annoying to save file that is edited in commit changes window
      • if in normal mode, pressing "Esc" will exit "commit changes"-window
      • unlike when terminal is focused, you can't disable the "Esc-> focus normal file view"
    • paste from OS registry (copy paste from UI app into Webstorm in IdeaVim) Kan fikses ved å registrere ctrl C og ctrl V som IDE-shortcuts (se https://useful-snippets.netlify.app/posts/webstorm-ideavim-shortcut-settings/)
    • vim search not as good as built-in search
      • vim won't highlight/preview as you search/replace
      • to activate built-in search you would have to give up ctrl F and ctrl H to IDE

    VSCode's Vim

    • Fuzzy finder
    • Search?
    • Search in files?

    npm link refuses to go away | clear npm cache

    Sat 06. January 2024 | 2024-01-06

    If you mistakenly forget to unlink, you can manually clean up artifacts from yarn or npm.

    For npm, the link command creates global packages which can be removed by executing:

    sudo npm rm --global "mylib"
    • https://github.com/jasonsturges/vite-typescript-npm-package

    1. Try

    Maybe unlink package?

    npm unlink @scope/package

    clear / swap out cache on either project

    npm install --cache /tmp/empty-cache

    restart all servers

    1. try uninstalling globally and reinstalling dependency:
    sudo npm rm --global @scope/library
    npm rm --global @scope/library
    npm ls --global @scope/library
    npm uninstall @scope/library
    npm i @scope/librayr@latest --save-exact

    try deleting package.json

    try restarting servers???

    npm link library

    Sat 06. January 2024 | 2024-01-06

    Start

    tror det er viktig å uninstalle @scope/library først?

    • npm link in library
    • npm link @scope/library in app

    See if npm link works

    Run npm run build in the library. See if it updates the app.

    If stuff doesn't update in app, try

    • Restart app's dev server
    • Try as suggested in response from npm cache clean:
    npm install --cache /tmp/empty-cache

    Then restart app dev server

    Maybe try this on the app side

    • npm unlink @scope/library
    • npm link @scope/library

    Maybe also try this on the library side

    • npm unlink @scope/library
    • npm link

    I don't think it's necessary to uninstall library from node modules.

    If app cant find css

    attempting to import css from app (like with bootstrap css) does not always work for some reason

    inject css into js so that the package imports css by itself

    Reference

    When npm link works, npm ls @scope/package should return:

    app@0.1.0 /home/user/code/app
    └── @scope/package@0.1.0 extraneous -> ./../packages/package-components-project
    

    Useful information about npm link and cleaning up and stuff, see README!: https://github.com/jasonsturges/vite-typescript-npm-package

    Bootstrap scrollspy react

    Sat 06. January 2024 | 2024-01-06

    HTML

    with data attributes ✔

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Static Template</title>
        <link
          href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
          rel="stylesheet"
          integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN"
          crossorigin="anonymous"
        />
      </head>
      <body>
        <div style="display: flex; background: #f5f2f2;">
          <aside>
            <div id="list-example" class="list-group">
              <a class="list-group-item list-group-item-action" href="#heading1">
                Heading 1
              </a>
              <a class="list-group-item list-group-item-action" href="#heading2">
                Heading 2
              </a>
              <a class="list-group-item list-group-item-action" href="#heading3">
                Heading 3
              </a>
              <a class="list-group-item list-group-item-action" href="#heading4">
                Heading 4
              </a>
              <a class="list-group-item list-group-item-action" href="#heading5">
                Heading 5
              </a>
            </div>
          </aside>
          <article
            data-bs-spy="scroll"
            data-bs-target="#list-example"
            tabIndex="0"
            style="position: relative; height: 500px; overflow-y: scroll;"
          >
            <!--<article style="position: relative; height: 500px; overflow-y: scroll;">-->
            <h1>Hello CodeSandbox</h1>
            <h2 id="heading1">Heading 1</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading2">Heading 2</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading3">Heading 3</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading4">Heading 4</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading5">Heading 5</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
          </article>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
        <script>
          /*const scrollSpy = new bootstrap.ScrollSpy(document.body, {
            target: "#list-example"
          });*/
          // $("body").scrollspy({ target: "#navbar-example" });
        </script>
      </body>
    </html>
    

    with JS ❌

    Highlight only goes down

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Static Template</title>
        <link
          href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
          rel="stylesheet"
          integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN"
          crossorigin="anonymous"
        />
      </head>
      <body>
        <div style="display: flex; background: #f5f2f2;">
          <aside>
            <div id="list-example" class="list-group">
              <a class="list-group-item list-group-item-action" href="#heading1">
                Heading 1
              </a>
              <a class="list-group-item list-group-item-action" href="#heading2">
                Heading 2
              </a>
              <a class="list-group-item list-group-item-action" href="#heading3">
                Heading 3
              </a>
              <a class="list-group-item list-group-item-action" href="#heading4">
                Heading 4
              </a>
              <a class="list-group-item list-group-item-action" href="#heading5">
                Heading 5
              </a>
            </div>
          </aside>
          <article style="position: relative; height: 500px; overflow-y: scroll;">
            <h1>Hello CodeSandbox</h1>
            <h2 id="heading1">Heading 1</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading2">Heading 2</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading3">Heading 3</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading4">Heading 4</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading5">Heading 5</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
          </article>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
        <script src="jquery-3.6.4.min.js"></script>
        <script>
          const scrollSpy = new bootstrap.ScrollSpy(document.body, {
            target: "#list-example"
          });
          // $("body").scrollspy({ target: "#navbar-example" });
        </script>
      </body>
    </html>
    

    With JS ✔

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <title>Static Template</title>
        <link
          href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css"
          rel="stylesheet"
          integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD"
          crossorigin="anonymous"
        />
        <script
          src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"
          integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN"
          crossorigin="anonymous"
        ></script>
      </head>
      <body>
        <div style="background: #f5f2f2;">
          <aside class="navbar navbar-nav fixed-top">
            <div id="list-example" class="list-group">
              <a class="list-group-item list-group-item-action" href="#heading1">
                Heading 1
              </a>
              <a class="list-group-item list-group-item-action" href="#heading2">
                Heading 2
              </a>
              <a class="list-group-item list-group-item-action" href="#heading3">
                Heading 3
              </a>
              <a class="list-group-item list-group-item-action" href="#heading4">
                Heading 4
              </a>
              <a class="list-group-item list-group-item-action" href="#heading5">
                Heading 5
              </a>
            </div>
          </aside>
          <article>
            <!--<article style="position: relative; height: 500px; overflow-y: scroll;">-->
    
            <h1>Hello CodeSandbox</h1>
            <h2 id="heading1">Heading 1</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading2">Heading 2</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading3">Heading 3</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading4">Heading 4</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading5">Heading 5</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
          </article>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
        <script>
          document.addEventListener("DOMContentLoaded", function () {
            var scrollSpy = new bootstrap.ScrollSpy(document.body, {
              target: "#navbar"
            });
          });
        </script>
      </body>
    </html>
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <link
          href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css"
          rel="stylesheet"
          integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD"
          crossorigin="anonymous"
        />
        <script
          src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"
          integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN"
          crossorigin="anonymous"
        ></script>
      </head>
    
      <body class="m-3">
        <center>
          <div id="navbar">
            <nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
              <ul class="navbar-nav">
                <li class="nav-item">
                  <a class="nav-link" href="#geeks1">Geeks</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="#for">For</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="#geeks2">Geeks</a>
                </li>
              </ul>
            </nav>
            <br /><br />
            <h1 class="text-success">GeeksforGeeks</h1>
            <strong>Scrollspy in Bootstrap 5 via Javascript</strong>
            <br />
            <div id="geeks1" class="border border-dark" style="padding: 20px 20px;">
              <h1>About Us</h1>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>
                GeeksforGeeks is a one-stop destination for Computer Science
                students. Computer Science is a huge field, thus students must
                select a suitable platform that can meet all their needs, including
                Tutorials & Courses, Placement Preparation, and Interview
                Experiences, among others.
              </p>
    
              <p></p>
            </div>
    
            <div id="for" class="border border-warning" style="padding: 20px 20px;">
              <h1>Advantages</h1>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
    
              <p>
                1. One-Stop Destination for Algorithms and Data Structures Knowledge
              </p>
              <p>2. Learn Multiple Programming Languages</p>
              <p>
                3. Boost Your Skills with Various GeeksforGeeks Courses
              </p>
            </div>
    
            <div
              id="geeks2"
              class="border border-secondary"
              style="padding: 20px 20px;"
            >
              <h1>Technology</h1>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
              <p>EEEEEEEEE</p>
    
              <p>
                A Computer Science portal for geeks. It contains well written, well
                thought and well explained computer science and programming
                articles, quizzes and practice/competitive programming/company
                interview Questions.
              </p>
              <p>Prepare With Us</p>
              <p>Get Hired With Us</p>
              <p>Grow With Usling!</p>
            </div>
          </div>
        </center>
    
        <script>
          document.addEventListener("DOMContentLoaded", function () {
            var scrollSpy = new bootstrap.ScrollSpy(document.body, {
              target: "#navbar"
            });
          });
        </script>
      </body>
    </html>

    React

    With data attributes ❌

    not working at all

    With JS 1: ✔

    import "./styles.css";
    import "bootstrap/dist/css/bootstrap.css";
    import "bootstrap/dist/js/bootstrap.bundle.min.js";
    import * as bootstrap from "bootstrap";
    
    import "../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js";
    
    import { useState, useEffect } from "react";
    
    export default function App() {
      useEffect(() => {
        const scrollSpy = new bootstrap.ScrollSpy(document.body, {
          target: "#list-example"
        });
      }, []);
    
      return (
        <div
          style={{
            background: "#f5f2f2"
          }}
        >
          <aside class="navbar navbar-nav fixed-top">
            <div id="list-example" className="list-group">
              <a
                className="list-group-item list-group-item-action"
                href="#heading1"
              >
                Heading 1
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading2"
              >
                Heading 2
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading3"
              >
                Heading 3
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading4"
              >
                Heading 4
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading5"
              >
                Heading 5
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading6"
              >
                Heading 6
              </a>
            </div>
          </aside>
          <article>
            <h1>Hello CodeSandbox</h1>
            <h2 id="heading1">Heading 1</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading2">Heading 2</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading3">Heading 3</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading4">Heading 4</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading5">Heading 5</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading6">Heading 6</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
          </article>
        </div>
      );
    }
    

    With JS 2 ❌

    Highlight only goes down

    import "./styles.css";
    import "bootstrap/dist/css/bootstrap.css";
    //import "bootstrap/dist/js/bootstrap.js";
    import "bootstrap/dist/js/bootstrap.bundle.min.js";
    import * as bootstrap from "bootstrap";
    //import "bootstrap/dist/js/bootstrap.bundle.min";
    
    import "../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js";
    
    import { useState, useEffect } from "react";
    
    export default function App() {
      useEffect(() => {
        const scrollSpy = new bootstrap.ScrollSpy(document.body, {
          target: "#list-example"
        });
      }, []);
    
      return (
        <div
          style={{
            display: "flex",
            background: "#f5f2f2"
          }}
        >
          <aside>
            <div id="list-example" className="list-group">
              <a
                className="list-group-item list-group-item-action"
                href="#heading1"
              >
                Heading 1
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading2"
              >
                Heading 2
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading3"
              >
                Heading 3
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading4"
              >
                Heading 4
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading5"
              >
                Heading 5
              </a>
              <a
                className="list-group-item list-group-item-action"
                href="#heading6"
              >
                Heading 6
              </a>
            </div>
          </aside>
          <article
            data-bs-spy="scroll"
            data-bs-target="#list-example"
            tab-index="0"
            style={{ position: "relative", height: "500px", overflowY: "scroll" }}
          >
            <h1>Hello CodeSandbox</h1>
            <h2 id="heading1">Heading 1</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading2">Heading 2</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading3">Heading 3</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading4">Heading 4</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading5">Heading 5</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <h2 id="heading6">Heading 6</h2>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
            <p>Some text</p>
          </article>
        </div>
      );
    }