Skip to content

Commit 8b88134

Browse files
committed
code styling for popup
1 parent 2c8761f commit 8b88134

File tree

2 files changed

+70
-27
lines changed

2 files changed

+70
-27
lines changed

chapters/what-is-an-api.qmd

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -193,36 +193,36 @@ APIs are not just tools for developers—they hold immense potential for researc
193193
::: {#modal-1-content}
194194

195195
<pre><code>
196-
&lt;script&gt;
197-
window.getRandomCat = async function () {
196+
<span class="html-tag">&lt;script&gt;</span>
197+
<span class="variable">window</span>.<span class="function">getRandomCat</span> = <span class="keyword">async</span> <span class="keyword">function</span> () {
198198

199-
const response = await fetch("https://api.thecatapi.com/v1/images/search?size=med&mime_types=jpg&format=json&has_breeds=true&order=RANDOM&page=0&limit=1");
200-
if (!response.ok) throw new Error("Failed to fetch random cat.");
201-
const data = await response.json();
202-
203-
const cat = data[0];
204-
const cat_id = cat.id;
205-
206-
const cat_detailed_info = await fetch(`https://api.thecatapi.com/v1/images/${cat_id}`);
207-
const cat_detailed_info_json = await cat_detailed_info.json();
208-
209-
// Safely access items that might be undefined or empty
210-
const breed = cat_detailed_info_json.breeds && cat_detailed_info_json.breeds.length > 0 ? cat_detailed_info_json.breeds[0].name : "Unknown";
211-
const description = cat_detailed_info_json.breeds && cat_detailed_info_json.breeds.length > 0 ? cat_detailed_info_json.breeds[0].description : "Unknown";
212-
213-
document.getElementById("cat-image").innerHTML = `
214-
&lt;div class="card" style="max-width: 300px; margin: 15px auto;"&gt;
215-
&lt;img src="${cat.url}" class="card-img-top" alt="Random Cat"&gt;
216-
&lt;div class="card-body"&gt;
217-
&lt;h5 class="card-title"&gt;Breed: ${breed}&lt;/h5&gt;
218-
&lt;p class="card-text"&gt;${description}&lt;/p&gt;
219-
&lt;/div&gt;
220-
&lt;/div&gt;
199+
<span class="keyword">const</span> response = <span class="keyword">await</span> <span class="function">fetch</span>(<span class="string">"https://api.thecatapi.com/v1/images/search?size=med&mime_types=jpg&format=json&has_breeds=true&order=RANDOM&page=0&limit=1"</span>);
200+
<span class="keyword">if</span> (!response.ok) <span class="keyword">throw new</span> <span class="variable">Error</span>(<span class="string">"Failed to fetch random cat."</span>);
201+
<span class="keyword">const</span> data = <span class="keyword">await</span> response.<span class="function">json</span>();
202+
203+
<span class="keyword">const</span> cat = data[<span class="number">0</span>];
204+
<span class="keyword">const</span> cat_id = cat.id;
205+
206+
<span class="keyword">const</span> cat_detailed_info = <span class="keyword">await</span> <span class="function">fetch</span>(`<span class="string">https://api.thecatapi.com/v1/images/${cat_id}</span>`);
207+
<span class="keyword">const</span> cat_detailed_info_json = <span class="keyword">await</span> cat_detailed_info.<span class="function">json</span>();
208+
209+
<span class="comment">// Safely access items that might be undefined or empty</span>
210+
<span class="keyword">const</span> breed = cat_detailed_info_json.breeds && cat_detailed_info_json.breeds.length > <span class="number">0</span> ? cat_detailed_info_json.breeds[<span class="number">0</span>].name : <span class="string">"Unknown"</span>;
211+
<span class="keyword">const</span> description = cat_detailed_info_json.breeds && cat_detailed_info_json.breeds.length > <span class="number">0</span> ? cat_detailed_info_json.breeds[<span class="number">0</span>].description : <span class="string">"Unknown"</span>;
212+
213+
<span class="variable">document</span>.<span class="function">getElementById</span>(<span class="string">"cat-image"</span>).innerHTML = `
214+
<span class="html-tag">&lt;div <span class="html-attr">class</span>=<span class="string">"card"</span> <span class="html-attr">style</span>=<span class="string">"max-width: 300px; margin: 15px auto;"</span>&gt;</span>
215+
<span class="html-tag">&lt;img <span class="html-attr">src</span>=<span class="string">"${cat.url}"</span> <span class="html-attr">class</span>=<span class="string">"card-img-top"</span> <span class="html-attr">alt</span>=<span class="string">"Random Cat"</span>&gt;</span>
216+
<span class="html-tag">&lt;div <span class="html-attr">class</span>=<span class="string">"card-body"</span>&gt;</span>
217+
<span class="html-tag">&lt;h5 <span class="html-attr">class</span>=<span class="string">"card-title"</span>&gt;</span>Breed: ${breed}<span class="html-tag">&lt;/h5&gt;</span>
218+
<span class="html-tag">&lt;p <span class="html-attr">class</span>=<span class="string">"card-text"</span>&gt;</span>${description}<span class="html-tag">&lt;/p&gt;</span>
219+
<span class="html-tag">&lt;/div&gt;</span>
220+
<span class="html-tag">&lt;/div&gt;</span>
221221
`;
222222
};
223-
&lt;/script&gt;
224-
&lt;button onclick="getRandomCat()" class="btn btn-primary" style="padding: 10px 20px; font-size: 16px; display: block; margin: 0 auto;"&gt;Click here to get a random cat :)&lt;/button&gt;
225-
&lt;div id="cat-image" style="margin-top: 15px;"&gt;&lt;/div&gt;
223+
<span class="html-tag">&lt;/script&gt;</span>
224+
<span class="html-tag">&lt;button <span class="html-attr">onclick</span>=<span class="string">"getRandomCat()"</span> <span class="html-attr">class</span>=<span class="string">"btn btn-primary"</span> <span class="html-attr">style</span>=<span class="string">"padding: 10px 20px; font-size: 16px; display: block; margin: 0 auto;"</span>&gt;</span>Click here to get a random cat :)<span class="html-tag">&lt;/button&gt;</span>
225+
<span class="html-tag">&lt;div <span class="html-attr">id</span>=<span class="string">"cat-image"</span> <span class="html-attr">style</span>=<span class="string">"margin-top: 15px;"</span>&gt;</span><span class="html-tag">&lt;/div&gt;</span>
226226
</code></pre>
227227

228228
:::

styles.css

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,46 @@
145145
margin-bottom: 1em;
146146
display: inline-block;
147147
}
148+
149+
#modal-1-content pre {
150+
background-color: #f8f9fa;
151+
padding: 15px;
152+
border-radius: 5px;
153+
overflow-x: auto;
154+
}
155+
156+
#modal-1-content code {
157+
color: #333;
158+
}
159+
160+
#modal-1-content .html-tag {
161+
color: #800000;
162+
}
163+
164+
#modal-1-content .html-attr {
165+
color: #FF0000;
166+
}
167+
168+
#modal-1-content .string {
169+
color: #008000;
170+
}
171+
172+
#modal-1-content .comment {
173+
color: #6c757d;
174+
}
175+
176+
#modal-1-content .keyword {
177+
color: #0000FF;
178+
}
179+
180+
#modal-1-content .variable {
181+
color: #0070C1;
182+
}
183+
184+
#modal-1-content .function {
185+
color: #795E26;
186+
}
187+
188+
#modal-1-content .number {
189+
color: #098658;
190+
}

0 commit comments

Comments
 (0)