diff --git a/ABSTRACT.md b/ABSTRACT.md index 75f3a39c..958af8eb 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,19 +1,152 @@ -# 🤍 The Book Abstract +# 📖 The Book Whitepaper -**It's time for a paradigm shift! The future of software is written in plain English, French, or Latin.** +For most business applications nowadays, the biggest challenge isn't about the raw capabilities of AI models. Large language models like GPT-5 or Claude-4.1 are extremely capable. -During the computer revolution, we have seen [multiple generations of computer languages](https://github.com/webgptorg/promptbook/discussions/180), from the physical rewiring of the vacuum tubes through low-level machine code to the high-level languages like Python or JavaScript. And now, we're on the edge of the **next revolution**! +The main challenge is to narrow it down, constrain it, set the proper **context, rules, knowledge, and personality**. There are a lot of tools which can do exactly this. On one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Langchain or Semantic Kernel, which can give you deep control. - +```book +Paul Smith & Associés -It's a revolution of writing software in **plain human language** that is understandable and executable by both humans and machines – and it's going to change everything! +PERSONA You are a company lawyer. +Your job is to provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. +``` -The incredible growth in power of microprocessors and the Moore's Law have been the driving force behind the ever-more powerful languages, and it's been an amazing journey! Similarly, the large language models (like GPT or Claude) are the next big thing in language technology, and they're set to transform the way we interact with computers. +
-This shift will happen whether we're ready or not. Our mission is to make it excellent, not just good. +## Aspects of great AI agent -**Join us in this journey!** +We have created a language called **Book**, which allows you to write AI agents in their native language and create your own AI persona. Book provides a guide to define all the traits and commitments. + +You can look at it as prompting (or writing a system message), but decorated by **commitments**. + +### `Persona` commitment + +Personas define the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication. + +```book +Paul Smith & Associés + +PERSONA You are a company lawyer. +Your job is to provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. +``` + +### `Knowledge` commitment + +Knowledge Commitment allows you to provide specific information, facts, or context that the AI should be aware of when responding. + +This can include domain-specific knowledge, company policies, or any other relevant information. + +Promptbook Engine will automatically enforce this knowledge during interactions. When the knowledge is short enough, it will be included in the prompt. When it is too long, it will be stored in vector databases and RAG retrieved when needed. But you don't need to care about it. + +```book +Paul Smith & Associés + +PERSONA You are a company lawyer. +Your job is to provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. + +KNOWLEDGE https://company.com/company-policies.pdf +KNOWLEDGE https://company.com/internal-documents/employee-handbook.docx +``` + +### `Rule` commitment + +Rules will enforce specific behaviors or constraints on the AI's responses. This can include ethical guidelines, communication styles, or any other rules you want the AI to follow. + +Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it. + +```book +Paul Smith & Associés + +PERSONA You are a company lawyer. +Your job is to provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. + +RULE Always ensure compliance with laws and regulations. +RULE Never provide legal advice outside your area of expertise. +RULE Never provide legal advice about criminal law. +KNOWLEDGE https://company.com/company-policies.pdf +KNOWLEDGE https://company.com/internal-documents/employee-handbook.docx +``` + +### `Action` commitment + +Action Commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events, or interacting with your internal systems. + +```book +Paul Smith & Associés + +PERSONA You are a company lawyer. +Your job is to provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. + +RULE Always ensure compliance with laws and regulations. +RULE Never provide legal advice outside your area of expertise. +RULE Never provide legal advice about criminal law. +KNOWLEDGE https://company.com/company-policies.pdf +KNOWLEDGE https://company.com/internal-documents/employee-handbook.docx +ACTION When a user asks about an issue that could be treated as a crime, notify legal@company.com. +``` + +[Read more about the language](./BLUEPRINT.md) + + + +## Where to use your AI agent in book + +Books can be useful in various applications and scenarios. Here are some examples: + +### Chat apps: + +Create your own chat shopping assistant and place it in your eShop. +You will be able to answer customer questions, help them find products, and provide personalized recommendations. Everything is tightly controlled by the book you have written. + +### Reply Agent: + +Create your own AI agent, which will look at your emails and reply to them. It can even create drafts for you to review before sending. + +### Coding Agent: + +Do you love Vibecoding, but the AI code is not always aligned with your coding style and architecture, rules, security, etc.? Create your own coding agent to help enforce your specific coding standards and practices. + +This can be integrated to almost any Vibecoding platform, like GitHub Copilot, Amazon CodeWhisperer, Cursor, Cline, Kilocode, Roocode,... + +They will work the same as you are used to, but with your specific rules written in book. + +### Internal Expertise + +Do you have an app written in TypeScript, Python, C#, Java, or any other language, and you are integrating the AI. + +You can avoid struggle with choosing the best model, its settings like temperature, max tokens, etc., by writing a book agent and using it as your AI expertise. + +Doesn't matter if you do automations, data analysis, customer support, sentiment analysis, classification, or any other task. Your AI agent will be tailored to your specific needs and requirements. + +Even works in no-code platforms! + + + +## How to create your AI agent in book + +Now you want to use it. There are several ways how to write your first book: + +### From scratch with help from Paul + +We have written ai asistant in book who can help you with writing your first book. + + + +### Your AI twin + +Copy your own behavior, personality, and knowledge into book and create your AI twin. It can help you with your work, personal life, or any other task. + + + +### AI persona workpool + +Or you can pick from our library of pre-written books for various roles and tasks. You can find books for customer support, coding, marketing, sales, HR, legal, and many other roles. + + diff --git a/BLUEPRINT.md b/BLUEPRINT.md index 5edf4273..3b3a2043 100644 --- a/BLUEPRINT.md +++ b/BLUEPRINT.md @@ -1,200 +1,223 @@ # 📘 Book Language Blueprint -_A concise, Markdown-based DSL for crafting AI workflows and automations._ ++⚠ This file is a work in progress and may be incomplete or inaccurate. +- +## Examples -## Introduction +```book +Write an article about {topic} -Book is a Markdown-based language that simplifies the creation of AI applications, workflows, and automations. With human-readable commands, you can define inputs, outputs, personas, knowledge sources, and actions—without needing model-specific details. +PERSONA Jane, marketing specialist with prior experience in tech and AI writing +KNOWLEDGE https://wikipedia.org/ +KNOWLEDGE ./journalist-ethics.pdf +EXPECT 1 Sentence - 5 Pages +RESULT {article} +``` -## Example +--- ```book -# 🌟 My First Book - -- BOOK VERSION 1.0.0 -- URL https://promptbook.studio/hello.book -- INPUT PARAMETER {topic} -- OUTPUT PARAMETER {article} +Make post on LinkedIn based on @Input. +PERSONA @Jane, an experienced copywriter and HR expert +KNOWLEDGE cetin.cz +KNOWLEDGE linkedin.com/company/cetin/ +``` -# Write an Article +--- -- PERSONA Jane, marketing specialist with prior experience in tech and AI writing -- KNOWLEDGE https://wikipedia.org/ -- KNOWLEDGE ./journalist-ethics.pdf -- EXPECT MIN 1 Sentence -- EXPECT MAX 5 Pages +```book +Odpověz na Email -> Write an article about {topic} +{Email content} -→ {article} +PERSONA @Pavol - pavolhejny.com +KNOWLEDGE ./instructions.pdf +STYLE Professional tone of voice ``` -Each part of the book defines one of three circles: +--- -## **1. What:** Workflows, Tasks and Parameters +```book +Analyzuj {Případ}. +{Detaily} +PERSONA @Jiří, právník, který nikdy neodešle informace o klientech mimo EU +KNOWLEDGE {89/2012 Sb. Občanský zákoník} -What work needs to be done. Each book defines a [workflow _(scenario or pipeline)_](https://github.com/webgptorg/promptbook/discussions/88), which is one or more tasks. Each workflow has a fixed input and output. For example, you have a book that generates an article from a topic. Once it generates an article about AI, once about marketing, once about cooking. The workflow (= your AI program) is the same, only the input and output change. +``` -**Related commands:** +iframe: -- [PARAMETER](https://github.com/webgptorg/promptbook/blob/main/documents/commands/PARAMETER.md) + -## **2. Who:** Personas +books.svg -Who does the work. Each task is performed by a persona. A persona is a description of your virtual employee. It is a higher abstraction than the model, tokens, temperature, top-k, top-p and other model parameters. + -You can describe what you want in human language like `Jane, creative writer with a sense of sharp humour` instead of `gpt-4-2024-13-31, temperature 1.2, top-k 40, STOP token ".\n",...`. +books.png -Personas can have access to different knowledge, tools and actions. They can also consult their work with other personas or user, if allowed. + -**Related commands:** +## Basic Commitments: -- [PERSONA](https://github.com/webgptorg/promptbook/blob/main/documents/commands/PERSONA.md) +Book is composed of commitments, which are the building blocks of the book. Each commitment defines a specific task or action to be performed by the AI agent. The commitments are defined in a structured format, allowing for easy parsing and execution. -## **3. How:** Knowledge, Instruments and Actions +### `PERSONA` -The resources used by the personas are used to do the work. +defines basic contour of -**Related commands:** +> PERSONA @Joe Average man with -- [KNOWLEDGE](https://github.com/webgptorg/promptbook/blob/main/documents/commands/KNOWLEDGE.md) of documents, websites, and other resources -- [INSTRUMENT](https://github.com/webgptorg/promptbook/blob/main/documents/commands/INSTRUMENT.md) for real-time data like time, location, weather, stock prices, searching the internet, calculations, etc. -- [ACTION](https://github.com/webgptorg/promptbook/blob/main/documents/commands/ACTION.md) for actions like sending emails, creating files, ending a workflow, etc. +also the PERSONA is -## General Principles +Describes -Book language is based on markdown. It is subset of markdown. It is designed to be easy to read and write. It is designed to be understandable by both humans and machines and without specific knowledge of the language. +### `RULE` or `RULES` -The file has a `.book` extension and uses UTF-8 encoding without BOM. +defines -Books have two variants: flat — just a prompt without structure, and full — with tasks, commands, and prompts. +### `STYLE` -As it is source code, it can leverage all the features of version control systems like git and does not suffer from the problems of binary formats, proprietary formats, or no-code solutions. +xxx -But unlike programming languages, it is designed to be understandable by non-programmers and non-technical people. +### `SAMPLE` - -Each persona can have access to different knowledge, instruments, and actions. +--- -### Team +# **\_\_\_\_** -A team groups personas together. A team can also group other teams to form a complex responsibility hierarchy. Each team can have access to different knowledge, instruments, and actions. +Great context and prompt can make or break you AI app. In last few years we have came from simple one-shot prompts. When you want to add conplexity you have finetunned the model or add better orchestration. But with really large large language models the context seems to be a king. -### Role +The Book is the language to describe and define your AI app. Its like a shem for a Golem, book is the shem and model is the golem. -A role is an ad-hoc modification of a persona. A role can be defined for a specific task; for example, `Jane (email writer)`. Roles have access to the same knowledge, instruments, and actions as their parent persona. +```book + +Franz Kafka + + +PERSONA Franz Kafka, a writer who is interested in the human condition and the absurdity of life, speaks German and Czech and English +STYLE {kafka.com/the-castle} +STYLE {kafka.com/the-trial.pdf} +STYLE {kafka.com/metamorphosis.docx} +KNOWLEDGE Franz Kafka has a deep understanding of existentialism, surrealism, and the human psyche +GOAL Write a short story that explores the themes of alienation, bureaucracy, and the absurd +ACTION {mcp +``` + +# Who, what and how? + +To write a good prompt and the book you will be answering 3 main questions + +- **Who** is working on the task, is it a team or an individual? What is the role of the person in the team? What is the background of the person? What is the motivation of the person to work on this task? + You rather want `Paul, an typescript developer who prefers SOLID code` not `gemini-2` +- **What** +- **How** -## 💡 Knowledge +each commitment (described bellow) is connected with one of theese 3 questions. -Knowledge is external information that is used in task jobs. Knowledge can be: +## Commitments -- `Explicit` as a text directly in the workflow, team, or persona -- `File` which is referenced from the workflow, team, or persona - We support various file types like `pdf`, `docx`, `txt`, `md`, `odt`, `doc`, `rtf`, and it's possible to easily add support for other file types. The file is parsed and stored in the knowledge base -- `Website` which is referenced from the workflow, team, or persona - The website is scraped and stored in the knowledge base +Commitment is one piece of book, you can imagine it as one paragraph of book. -### Knowledge piece +Each commitment starts in a new line with commitment name, its usually in UPPERCASE and follows a contents of that commitment. Contents of the commithemt is defined in natural language. -A knowledge piece is the smallest unit of knowledge that makes sense on its own. Every type of knowledge—explicit text, file, or website—is parsed/scraped and divided into knowledge pieces. These pieces are indexed, put into the knowledge base, and can be used in task jobs via techniques like retrieval-augmented generation. +Commitments are chained one after another, in general commitments which are written later are more important and redefines things defined earlier. -## 🛠 Instruments +Each commitment falls into one or more of cathegory who, what or how -Instruments are external information that cannot be pre-scraped and need to be fetched at the moment of the task job. For example: +Here are some basic commintemts: + +- `PERSONA` tells **who** is working on the task +- `KNOWLEDGE` describes **what** knowledge the person has +- `GOAL` describes **what** is the goal of the task +- `ACTION` describes **what** actions can be done +- `RULE` describes **what** rules should be followed +- `STYLE` describes **how** the output should be presented + +## Variables and references + +When the prompt should be to be useful it should have some fixed static part and some variable dynamic part + +```book + +``` -- Current **Time and date** -- User's **Location** -- **Searching** the internet -- Computing some **mathematical expression** -- **Weather** in some location -- **Stock price** of some company -- Availability of some **Domain name** -- Calling a **GET** endpoint of an API +## Imports -This is an abstraction above function calling and API calling in models. +## Layering -## ☎ Actions +## Book defined in book -Actions are similar to instruments but can change the state of the world. For example: +## -- **Sending email** -- **Creating a file** -- **Ending a workflow** -- Calling a **POST** endpoint of an API +Book vs: - +- Why just dont pick the right model +- Orchestration frameworks - Langchain, Google Agent ..., Semantic Kernel,... +- Finetunning +- Temperature, top_t, top_k,... etc. +- System message +- MCP server +- function calling diff --git a/README.md b/README.md index dc29d5d3..8c725aff 100644 --- a/README.md +++ b/README.md @@ -26,21 +26,171 @@ TODO: [🥗][🧠] Maybe do table of contents in both `book` and `promptbook` -## 🤍 The Book Abstract +## 📖 The Book Whitepaper -**It's time for a paradigm shift! The future of software is written in plain English, French, or Latin.** +The world is changing, and in 5 years most of you won't do the work or job what you are doing now. When an agent can do your work for $5.74, it is economically unviable to not use the AI agent. -During the computer revolution, we have seen [multiple generations of computer languages](https://github.com/webgptorg/promptbook/discussions/180), from the physical rewiring of the vacuum tubes through low-level machine code to the high-level languages like Python or JavaScript. And now, we're on the edge of the **next revolution**! +For most business applications nowadays the biggest challenge isn't about the raw capabilities of AI models. Large language models like GPT-5 or Claude-4.1 are extremely capable. +The main challenge is to narrow it down, constrain it, set the proper **context, rules, knowledge, and personality**. There are a lot of tools which can do exactly this. In one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Langchain or Semantic Kernel which can give you deep control. +Promptbook, takes the best from both worlds. You are defining your AI behavior by simple **books** which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. -It's a revolution of writing software in **plain human language** that is understandable and executable by both humans and machines – and it's going to change everything! + +
+
+
+
+### Aspects of great AI agent
+
+We have created language called **Book** which allows you to write AI agents in their native language and create truly **your AI persona**. Book provides a guide to **define all the traits and commitments**.
+
+You can look at it as prompting (or writing a system message) but decorated by **commitments**.
+
+#### `Persona` commitment
+
+Persona defines the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication.
+
+
+
+
+#### `Knowledge` commitment
+
+Knowledge commitment allows you to provide specific information, facts, or context that the AI should be aware of when responding.
+
+This can include domain-specific knowledge, company policies, or any other relevant information.
+
+Promptbook engine will automatically enforce this knowledge during interactions. When the knowledge is short enough it will be included in the prompt. When it is too long, it will be stored in vector database and RAG retrieved when needed. But you don't need to care about it.
+
+
+
+
+#### `Rule` commitment
+
+Rule will enforce specific behaviors or constraints on the AI's responses. This can include ethical guidelines, communication styles, or any other rules you want the AI to follow.
+
+Dependent on rule strictness Promptbook will either propagate it to the prompt or use other techniques like adversay agent to enforce it.
+
+
+
+
+#### `Action` commitment
+
+Action commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events or interacting with your internal systems.
+
+
+
+
+[Read more about the language](./BLUEPRINT.md)
+
+
+
+### Where to use your AI agent in book
+
+Books can be useful in various applications and scenarios. Here are some examples:
+
+#### Chat apps
+
+Create your own chat shopping assistant and place it in your eshop.
+You will be able to answer customer questions, help them find products, and provide personalized recommendations. Everything is tightly controlled by the book you have written.
+
+#### Reply Agent
+
+Create your own AI agent which will look at your emails and reply to them. It can even create drafts for you to review before sending.
+
+#### Coding Agent
+
+Do you love Vibecoding but the AI code is not always inlined with your coding style and architecture, rules, security etc,? Create your own coding agent to help enforce your specific coding standards and practices.
+
+This can be integrated to almost any vibecoding platform like GitHub Copilot, Amazon CodeWhisperer, Cursor, Cline, Kilocode, Roocode,...
+
+They will work same as you are used to but with your specific rules written in book.
+
+#### Internal Expertize
+
+Do you have app written in TypeScript, Python, C#, Java, or any other language and you are integrating the AI.
+
+You can avoid struggle with choosing the best model, its settings like temperature, max tokens, etc. by writing a book agent and using it as your AI expertize.
+
+Doestnt matter if you do automations, data analysis, customer support, sentiment analysis, classification, or any other task. Your AI agent will be tailored to your specific needs and requirements.
+
+Even works in no-code platforms
-The incredible growth in power of microprocessors and the Moore's Law have been the driving force behind the ever-more powerful languages, and it's been an amazing journey! Similarly, the large language models (like GPT or Claude) are the next big thing in language technology, and they're set to transform the way we interact with computers.
+
-This shift will happen whether we're ready or not. Our mission is to make it excellent, not just good.
+### How to create your AI agent in book
-**Join us in this journey!**
+Now you want to use it. There are several ways how to write your first book:
+
+#### From scratch with help from Paul
+
+We have written ai asistant in book who can help you with writing your first book.
+
+
+
+#### Your AI twin
+
+Copy your own behavior, personality, and knowledge into book and create your AI twin. It can help you with your work, personal life, or any other task.
+
+
+
+#### AI persona workpool
+
+Or you can pick from our library of pre-written books for various roles and tasks. You can find books for customer support, coding, marketing, sales, HR, legal, and many other roles.
@@ -152,89 +302,7 @@ Join our growing community of developers and users:
-
-
-
-## 📘 Book Language Blueprint
-
-_A concise, Markdown-based DSL for crafting AI workflows and automations._
-
-
-
-### Introduction
-
-Book is a Markdown-based language that simplifies the creation of AI applications, workflows, and automations. With human-readable commands, you can define inputs, outputs, personas, knowledge sources, and actions—without needing model-specific details.
-
-### Example
-
-```book
-# 🌟 My First Book
-
-- BOOK VERSION 1.0.0
-- URL https://promptbook.studio/hello.book
-- INPUT PARAMETER {topic}
-- OUTPUT PARAMETER {article}
-
-# Write an Article
-
-- PERSONA Jane, marketing specialist with prior experience in tech and AI writing
-- KNOWLEDGE https://wikipedia.org/
-- KNOWLEDGE ./journalist-ethics.pdf
-- EXPECT MIN 1 Sentence
-- EXPECT MAX 5 Pages
-
-> Write an article about {topic}
-
-→ {article}
-```
-
-Each part of the book defines one of three circles:
-
-### **1. What:** Workflows, Tasks and Parameters
-
-What work needs to be done. Each book defines a [workflow _(scenario or pipeline)_](https://github.com/webgptorg/promptbook/discussions/88), which is one or more tasks. Each workflow has a fixed input and output. For example, you have a book that generates an article from a topic. Once it generates an article about AI, once about marketing, once about cooking. The workflow (= your AI program) is the same, only the input and output change.
-
-**Related commands:**
-
-- [PARAMETER](https://github.com/webgptorg/promptbook/blob/main/documents/commands/PARAMETER.md)
-
-### **2. Who:** Personas
-
-Who does the work. Each task is performed by a persona. A persona is a description of your virtual employee. It is a higher abstraction than the model, tokens, temperature, top-k, top-p and other model parameters.
-
-You can describe what you want in human language like `Jane, creative writer with a sense of sharp humour` instead of `gpt-4-2024-13-31, temperature 1.2, top-k 40, STOP token ".\n",...`.
-
-Personas can have access to different knowledge, tools and actions. They can also consult their work with other personas or user, if allowed.
-
-**Related commands:**
-
-- [PERSONA](https://github.com/webgptorg/promptbook/blob/main/documents/commands/PERSONA.md)
-
-
-
-### **3. How:** Knowledge, Instruments and Actions
-
-The resources used by the personas are used to do the work.
-
-**Related commands:**
-
-- [KNOWLEDGE](https://github.com/webgptorg/promptbook/blob/main/documents/commands/KNOWLEDGE.md) of documents, websites, and other resources
-- [INSTRUMENT](https://github.com/webgptorg/promptbook/blob/main/documents/commands/INSTRUMENT.md) for real-time data like time, location, weather, stock prices, searching the internet, calculations, etc.
-- [ACTION](https://github.com/webgptorg/promptbook/blob/main/documents/commands/ACTION.md) for actions like sending emails, creating files, ending a workflow, etc.
-
-### General Principles
-
-Book language is based on markdown. It is subset of markdown. It is designed to be easy to read and write. It is designed to be understandable by both humans and machines and without specific knowledge of the language.
-
-The file has a `.book` extension and uses UTF-8 encoding without BOM.
-
-Books have two variants: flat — just a prompt without structure, and full — with tasks, commands, and prompts.
-
-As it is source code, it can leverage all the features of version control systems like git and does not suffer from the problems of binary formats, proprietary formats, or no-code solutions.
-
-But unlike programming languages, it is designed to be understandable by non-programmers and non-technical people.
-
-
+
diff --git a/books/diagram/books.drawio b/books/diagram/books.drawio
new file mode 100644
index 00000000..5fdfce58
--- /dev/null
+++ b/books/diagram/books.drawio
@@ -0,0 +1,30 @@
+
+ *
+ * @param content The markdown content that may contain book blocks
+ * @returns The content with book blocks replaced by img tags
+ */
+export function embedBooks(content: string): string {
+ // Regular expression to match ```book blocks
+ const bookRegex = /```book\s*\n([\s\S]*?)\n```/g;
+
+ return content.replace(bookRegex, (match, bookContent) => {
+ // Clean up the book content and extract title
+ const lines = bookContent.trim().split('\n');
+ const title = lines[0]?.trim() || 'Untitled';
+
+ // Prepare the book content for URL encoding
+ // Add pipe separators for line breaks as shown in the example
+ const formattedContent = lines
+ .map((line: string) => line.trim())
+ .filter((line: string) => line.length > 0)
+ .join('\n | ')
+ .replace(/\n \| $/, ''); // Remove trailing empty pipe
+
+ // Generate a simple nonce (could be more sophisticated)
+ const nonce = 0; // Math.floor(Math.random() * 1000);
+
+ // Create the img tag
+ return spaceTrim(
+ (block) => `
+
+
+
`,
+ );
+ });
+}
diff --git a/scripts/import-markdown/placeImports.ts b/scripts/import-markdown/placeImports.ts
index 7c87be3d..fc7951bf 100644
--- a/scripts/import-markdown/placeImports.ts
+++ b/scripts/import-markdown/placeImports.ts
@@ -1,5 +1,6 @@
import { spaceTrim } from 'spacetrim';
import { GENERATOR_WARNING, IMPORT_REGEX } from '../config';
+import { embedBooks } from './embedBooks';
import { increaseHeadings } from './increaseHeadings';
import { removeComments } from './removeComments';
@@ -33,6 +34,7 @@ export async function placeImports(
importedContent = removeComments(importedContent);
importedContent = increaseHeadings(importedContent);
+ importedContent = embedBooks(importedContent);
const placedContent = spaceTrim(
(block) => `