diff --git a/index.html b/index.html
index 60ba862..42eb2e8 100644
--- a/index.html
+++ b/index.html
@@ -155,6 +155,7 @@
+
${injectAvailableSamples(application)}
+
+# Loading your own samples
+
+Topos is exposing the
samples function that you can use to load your own set of samples. Samples are loaded on-the-fly from the web. Topos is a web application living in the browser. It is running in a sandboxed environment. Thus, it cannot have access to the files stored on your local system. Loading samples requires building a _map_ of the audio files, where a name is associated to a specific file:
+
+${makeExample(
+ "This is how Topos is loading its own samples",
+ `
+// Visit the concerned repos and search for 'strudel.json'
+samples("github:tidalcycles/Dirt-Samples/master");
+samples("github:Bubobubobubobubo/Dough-Samples/main");
+samples("github:Bubobubobubobubo/Dough-Amiga/main");
+`,
+ true
+)}
+
+To learn more about the audio sample loading mechanism, please refer to [this page](https://strudel.tidalcycles.org/learn/samples) written by Felix Roos who has implemented the sample loading mechanism. The API is absolutely identic in Topos!
+
`;
};
diff --git a/src/main.ts b/src/main.ts
index 9cfcd73..d9d52f1 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -37,6 +37,8 @@ const classMap = {
ul: "text-underline pl-6",
li: "list-disc lg:text-2xl text-base text-white lg:mx-4 mx-2 my-4 my-2 leading-normal",
p: "lg:text-2xl text-base text-white lg:mx-6 mx-2 my-4 leading-normal",
+ warning:
+ "animate-pulse lg:text-2xl font-bold text-rose-600 lg:mx-6 mx-2 my-4 leading-normal",
a: "lg:text-2xl text-base text-orange-300",
code: "lg:my-4 sm:my-1 text-base lg:text-xl block whitespace-pre overflow-x-hidden",
icode:
@@ -621,6 +623,7 @@ export class Editor {
// "reference",
"shortcuts",
"about",
+ "bonus",
].forEach((e) => {
let name = `docs_` + e;
document.getElementById(name)!.addEventListener("click", async () => {