What is ReadMe

ReadMe is a platform for creating interactive API documentation.

Get an Inkeep API key

  1. Go to the Inkeep Dashboard
  2. Select your project under Projects
  3. Go to the Integrations tab
  4. Click on Create integration
  5. Select Web
  6. Provide a Name and URL (optional) for the integration
  7. Click on Create
  8. Click the Example < /> button to get your API key and view suggested settings

Connect the script

  1. Navigate to Appearance of the project settings
  2. Open the Custom Include Tags tab
  3. Add the below code to the HEAD HTML section
<script id="inkeep-script" src="https://unpkg.com/@inkeep/widgets-embed@0.2.279/dist/embed.js" type="module" defer></script>

Initialize the widget

Next, in the FOOTER HTML section add the below code to hide the default search bar:

<style>
  .rm-SearchToggle {
    display: none;
  }
</style>

Then add the search bar:

<script type="text/javascript" defer>
  const observer = new MutationObserver((mutationsList, observer) => {
    let inkeepWidget = null;
    const widgetContainer = document.getElementById("inkeepSearchBar");
    const readmeHeaderSearch = document.querySelector(".rm-Header-search");
    const inkeepDiv = document.createElement("div");
    const inkeepPortals = document.getElementsByTagName("inkeep-portal");

    inkeepDiv.id = "inkeepSearchBar";

    Array.from(inkeepPortals)?.forEach((inkeepPortal) => {
      inkeepPortal.remove();
    });

    if (!widgetContainer) {
      readmeHeaderSearch.appendChild(inkeepDiv);
    }

    if (!inkeepWidget) {
      inkeepWidget = Inkeep().embed({
        componentType: "SearchBar",
        targetElement: widgetContainer,
        colorModeSync: {
          observedElement: document.documentElement,
          isDarkModeCallback: (el) => {
            const currentTheme = el.getAttribute("data-color-mode");
            return currentTheme === "dark";
          },
          colorModeAttribute: "data-color-mode",
        },
        properties: {
          stylesheetUrls: ["/path/to/stylesheets"], // optional
          baseSettings: {
            apiKey: "YOUR_API_KEY", // required
            integrationId: "YOUR_INTEGRATION_ID", // required
            organizationId: "YOUR_ORGANIZATION_ID", // required
            primaryBrandColor: "#26D6FF", // your brand color, widget color scheme is derived from this
            organizationDisplayName: "Inkeep",
            // ...optional settings,
          },
          modalSettings: {
            // optional settings
          },
          searchSettings: {
            // optional settings
          },
          aiChatSettings: {
            // optional settings
            botAvatarSrcUrl: "https://mydomain.com/mylogo", // use your own bot avatar
            quickQuestions: [
              "Example question 1?",
              "Example question 2?",
              "Example question 3?",
            ],
          },
        },
      });
    }
  });

  observer.observe(document.head, { childList: true });
</script>

Press Save to apply your changes.

For a full list of customizations, check out the Search Bar documentation.

FAQ