<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:version="2.0"><channel><title>🍷 Ai Lounge</title><description>AI小酒馆 — 坐标加拿大 🇨🇦 | AI工具教程 / ComfyUI / VPS自建站 / VPN / 北美生活 | 用一杯酒的时间，搞懂一个AI技术</description><link>https://blog-7gd.pages.dev/</link><language>zh</language><item><title>Hello, Ai Lounge！这个小酒馆开张了</title><link>https://blog-7gd.pages.dev/blog/hello-ai-lounge/</link><guid isPermaLink="true">https://blog-7gd.pages.dev/blog/hello-ai-lounge/</guid><description>为什么要做AI小酒馆？这个博客会写什么？坐下来，我给你倒一杯。</description><content:encoded>&lt;h2&gt;开张了&lt;/h2&gt;
&lt;p&gt;你有没有过这种体验——&lt;/p&gt;
&lt;p&gt;想学个AI工具，搜出来的教程要么太学术看不懂，要么太浅没啥用，要么全是广告。&lt;/p&gt;
&lt;p&gt;我就是被这种体验烦到了，所以决定自己开一个&amp;quot;小酒馆&amp;quot;。&lt;/p&gt;
&lt;h2&gt;这里写什么&lt;/h2&gt;
&lt;p&gt;简单说就是&lt;strong&gt;我折腾什么就写什么&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;🤖 AI工具教程&lt;/strong&gt;
ChatGPT怎么用、Claude和GPT怎么选、AI写作怎么搞——实操向，不吹不黑。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;🎨 ComfyUI&lt;/strong&gt;
从安装到工作流搭建，AI生图生视频全套。我自己的AI生图站就是用ComfyUI搭的，踩过的坑都记下来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;🖥️ VPS / 服务器&lt;/strong&gt;
买VPS、装系统、配环境、搭网站——小白也能跟着做。2C2G的小机器能干啥？比你想象的多。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;🔒 VPN / 网络&lt;/strong&gt;
科学上网方案对比、搭建教程。身在加拿大，帮国内朋友翻墙这事儿干了不少。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;🍁 北美生活&lt;/strong&gt;
技术人的加拿大生存日记。不是旅游博主，就是日常碎碎念。&lt;/p&gt;
&lt;h2&gt;为什么叫&amp;quot;小酒馆&amp;quot;&lt;/h2&gt;
&lt;p&gt;很多伟大的想法诞生在酒馆里。&lt;/p&gt;
&lt;p&gt;萨特的存在主义是在巴黎酒吧聊出来的。DNA双螺旋结构是在剑桥老鹰酒吧宣布的。&lt;/p&gt;
&lt;p&gt;AI小酒馆也是这个意思——不端着、不装学术、不搞术语墙。技术就应该像喝酒聊天一样轻松。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;你看，如果你愿意，你甚至可以从这杯鸡尾酒中研究出AI来。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;关于我&lt;/h2&gt;
&lt;p&gt;坐标加拿大，白天写代码，晚上折腾AI。&lt;/p&gt;
&lt;p&gt;手里有个2C2G的VPS，上面跑着API中转站、AI生图站、图床、VPN——全是自建的，全是从零折腾出来的。&lt;/p&gt;
&lt;p&gt;这些项目的搭建教程后面会一篇篇写出来。&lt;/p&gt;
&lt;h2&gt;接下来的计划&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; ComfyUI零基础安装教程（Windows/Mac/Linux全平台）&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; VPS选购指南2026——2C2G能干啥&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 自建API中转站完整教程&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; WireGuard VPN搭建——3分钟搞定&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; Cloudflare Pages博客搭建（就是这个小酒馆本身）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每篇教程的目标：&lt;strong&gt;你看完就能动手做，不做概念科普大师&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;酒已倒好，座位已备。&lt;/p&gt;
&lt;p&gt;欢迎来 AI 小酒馆。🍷&lt;/p&gt;
 &lt;blockquote&gt;This rendering was automatically generated by Frosti Feed and may have formatting issues. For the best experience, please visit: &lt;a href=&quot;https://blog-7gd.pages.dev/blog/hello-ai-lounge/&quot;&gt;https://blog-7gd.pages.dev/blog/hello-ai-lounge/&lt;/a&gt;&lt;/blockquote&gt;</content:encoded><dc:creator>Ai Lounge</dc:creator><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Testing Mathematical Formulas in Markdown</title><link>https://blog-7gd.pages.dev/blog/mathematics-examples/</link><guid isPermaLink="true">https://blog-7gd.pages.dev/blog/mathematics-examples/</guid><description>A demonstration of various mathematical formulas rendered using LaTeX within Markdown.</description><content:encoded>&lt;p&gt;This document serves as a test for rendering mathematical formulas in Markdown using &lt;code&gt;$$&lt;/code&gt; delimiters.&lt;/p&gt;
&lt;h2&gt;Basic Algebra&lt;/h2&gt;
&lt;p&gt;Let&amp;#39;s start with some fundamental algebraic expressions.&lt;/p&gt;
&lt;p&gt;The quadratic formula is given by:
$$x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}$$&lt;/p&gt;
&lt;p&gt;A simple linear equation:
$$y = mx + c$$&lt;/p&gt;
&lt;p&gt;Expansion of a binomial square:
$$(a+b)^2 = a^2 + 2ab + b^2$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Calculus&lt;/h2&gt;
&lt;p&gt;Here are some common expressions from calculus.&lt;/p&gt;
&lt;p&gt;The limit definition of a derivative:
$$f&amp;#39;(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h}$$&lt;/p&gt;
&lt;p&gt;A definite integral:
$$\int_{a}^{b} f(x) dx$$&lt;/p&gt;
&lt;p&gt;The Taylor series expansion of $e^x$ around $x=0$:
$$e^x = \sum_{n=0}^{\infty} \frac{x^n}{n!} = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Trigonometry&lt;/h2&gt;
&lt;p&gt;Some basic trigonometric identities.&lt;/p&gt;
&lt;p&gt;Pythagorean identity:
$$\sin^2\theta + \cos^2\theta = 1$$&lt;/p&gt;
&lt;p&gt;Angle addition formula for sine:
$$\sin(\alpha + \beta) = \sin\alpha\cos\beta + \cos\alpha\sin\beta$$&lt;/p&gt;
&lt;p&gt;Euler&amp;#39;s formula:
$$e^{i\theta} = \cos\theta + i\sin\theta$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Statistics and Probability&lt;/h2&gt;
&lt;p&gt;Formulas commonly used in statistics and probability.&lt;/p&gt;
&lt;p&gt;The formula for the mean ($\mu$) of a set of $n$ numbers $x_1, x_2, \ldots, x_n$:
$$\mu = \frac{1}{n} \sum_{i=1}^{n} x_i$$&lt;/p&gt;
&lt;p&gt;The probability density function of a normal distribution:
$$f(x | \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}$$&lt;/p&gt;
&lt;p&gt;Bayes&amp;#39; theorem:
$$P(A|B) = \frac{P(B|A)P(A)}{P(B)}$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Linear Algebra&lt;/h2&gt;
&lt;p&gt;Examples from linear algebra.&lt;/p&gt;
&lt;p&gt;A 2x2 matrix:
$$A = \begin{pmatrix} a &amp;amp; b \ c &amp;amp; d \end{pmatrix}$$&lt;/p&gt;
&lt;p&gt;The determinant of a 2x2 matrix:
$$\det(A) = ad - bc$$&lt;/p&gt;
&lt;p&gt;Matrix multiplication of two matrices A and B:
$$C = AB$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Physics&lt;/h2&gt;
&lt;p&gt;A couple of well-known physics equations.&lt;/p&gt;
&lt;p&gt;Einstein&amp;#39;s mass-energy equivalence:
$$E = mc^2$$&lt;/p&gt;
&lt;p&gt;Newton&amp;#39;s second law of motion:
$$F = ma$$&lt;/p&gt;
&lt;p&gt;This should provide a good test of how various mathematical formulas are rendered.&lt;/p&gt;
 &lt;blockquote&gt;This rendering was automatically generated by Frosti Feed and may have formatting issues. For the best experience, please visit: &lt;a href=&quot;https://blog-7gd.pages.dev/blog/mathematics-examples/&quot;&gt;https://blog-7gd.pages.dev/blog/mathematics-examples/&lt;/a&gt;&lt;/blockquote&gt;</content:encoded><dc:creator>Ai Lounge</dc:creator><pubDate>Sat, 31 May 2025 00:00:00 GMT</pubDate></item><item><title>Adding Comment Systems to Frosti</title><link>https://blog-7gd.pages.dev/blog/adding-comment-systems/</link><guid isPermaLink="true">https://blog-7gd.pages.dev/blog/adding-comment-systems/</guid><description>A comprehensive guide on how to integrate the Waline comment system into your Frosti blog</description><content:encoded>&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;One of the essential features of any blog is the ability for readers to engage with your content through comments. While Frosti provides an excellent foundation for your Astro-based blog, adding a comment system requires a few additional steps. This guide will walk you through integrating the Waline comment system into your Frosti blog.&lt;/p&gt;
&lt;p&gt;Static sites like those built with Astro don&amp;#39;t have built-in comment systems since they lack server-side processing. However, we can use third-party comment services that handle the backend for us, while we integrate their frontend components into our site.&lt;/p&gt;
&lt;h2&gt;Creating Comment Components in Astro&lt;/h2&gt;
&lt;p&gt;Before diving into a specific comment system, let&amp;#39;s understand how to create and use components in Astro. We&amp;#39;ll create a reusable component that can be easily added to any page.&lt;/p&gt;
&lt;h3&gt;Component Structure&lt;/h3&gt;
&lt;p&gt;We&amp;#39;ll create our comment component in the &lt;code&gt;src/components/comments&lt;/code&gt; directory. First, let&amp;#39;s ensure this directory exists:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mkdir -p src/components/comments
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Integrating Waline&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://waline.js.org/&quot;&gt;Waline&lt;/a&gt; is a simple, safe, and feature-rich comment system with backend and frontend separation. It is highly customizable and easy to set up.&lt;/p&gt;
&lt;h3&gt;Step 1: Set Up Waline Backend&lt;/h3&gt;
&lt;p&gt;Before adding Waline to your site, you need to set up the backend:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a LeanCloud application to store your comments.&lt;/li&gt;
&lt;li&gt;Deploy the Waline server to Vercel or another hosting platform.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Follow the &lt;a href=&quot;https://waline.js.org/guide/get-started/&quot;&gt;official Waline guide&lt;/a&gt; to set up your backend service. After deploying, you&amp;#39;ll get a server URL that you will need for the frontend component.&lt;/p&gt;
&lt;h3&gt;Step 2: Create the Waline Component&lt;/h3&gt;
&lt;p&gt;Let&amp;#39;s create a reusable Waline component:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;touch src/components/comments/Waline.astro
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Add the following code to this component:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;---
interface Props {
  serverURL: string;
  lang?: string;
  dark?: string;
  emoji?: string[];
  meta?: string[];
  requiredMeta?: string[];
  reaction?: boolean;
  pageview?: boolean;
}

const {
  serverURL,
  lang = &amp;quot;en&amp;quot;,
  dark = &amp;quot;html[data-theme-type=&amp;#39;dark&amp;#39;]&amp;quot;,
  emoji = [&amp;quot;https://unpkg.com/@waline/emojis@1.1.0/weibo&amp;quot;, &amp;quot;https://unpkg.com/@waline/emojis@1.1.0/bilibili&amp;quot;],
  meta = [&amp;quot;nick&amp;quot;, &amp;quot;mail&amp;quot;, &amp;quot;link&amp;quot;],
  requiredMeta = [],
  reaction = false,
  pageview = false,
} = Astro.props;
---

&amp;lt;div id=&amp;quot;waline-container&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;https://unpkg.com/@waline/client@v3/dist/waline.css&amp;quot; /&amp;gt;

&amp;lt;script
  type=&amp;quot;module&amp;quot;
  define:vars={{
    serverURL,
    lang,
    dark,
    emoji,
    meta,
    requiredMeta,
    reaction,
    pageview,
  }}
&amp;gt;
  import { init } from &amp;quot;https://unpkg.com/@waline/client@v3/dist/waline.js&amp;quot;;

  async function initWaline() {
    const container = document.querySelector(&amp;quot;#waline-container&amp;quot;);
    if (!container) return;

    init({
      el: &amp;quot;#waline-container&amp;quot;,
      serverURL,
      path: location.pathname,
      lang,
      dark,
      emoji,
      meta,
      requiredMeta,
      reaction,
      pageview,
    });
  }

  document.addEventListener(&amp;quot;astro:page-load&amp;quot;, () =&amp;gt; {
    initWaline();
  });

  if (document.readyState !== &amp;quot;loading&amp;quot;) {
    initWaline();
  } else {
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, initWaline);
  }
&amp;lt;/script&amp;gt;

&amp;lt;style&amp;gt;
  #waline-container {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Step 3: Using the Waline Component&lt;/h3&gt;
&lt;p&gt;You can now use the Waline component in your Astro pages or layouts. Here&amp;#39;s how to add it to your blog post template:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;---
// In your blog post layout file
import Waline from &amp;quot;../../components/comments/Waline.astro&amp;quot;;
// Other imports and frontmatter...
---

&amp;lt;!-- Your blog post content --&amp;gt;
&amp;lt;article&amp;gt;
  &amp;lt;slot /&amp;gt;
&amp;lt;/article&amp;gt;

&amp;lt;!-- Add the comment section --&amp;gt;
&amp;lt;section class=&amp;quot;comments&amp;quot;&amp;gt;
  &amp;lt;h2&amp;gt;Comments&amp;lt;/h2&amp;gt;
  &amp;lt;Waline serverURL=&amp;quot;https://your-waline-server.vercel.app&amp;quot; /&amp;gt;
&amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Replace &lt;code&gt;&amp;quot;https://your-waline-server.vercel.app&amp;quot;&lt;/code&gt; with your actual Waline server URL.&lt;/p&gt;
&lt;h2&gt;Troubleshooting&lt;/h2&gt;
&lt;h3&gt;Common Issues&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Comments not displaying:&lt;/strong&gt; Make sure your &lt;code&gt;serverURL&lt;/code&gt; is correctly set and accessible.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CSS issues:&lt;/strong&gt; Ensure that the Waline stylesheet is properly loaded.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deployment issues:&lt;/strong&gt; If your server is on Vercel, check the environment variables and deployment logs.&lt;/li&gt;
&lt;/ul&gt;
 &lt;blockquote&gt;This rendering was automatically generated by Frosti Feed and may have formatting issues. For the best experience, please visit: &lt;a href=&quot;https://blog-7gd.pages.dev/blog/adding-comment-systems/&quot;&gt;https://blog-7gd.pages.dev/blog/adding-comment-systems/&lt;/a&gt;&lt;/blockquote&gt;</content:encoded><dc:creator>Ai Lounge</dc:creator><pubDate>Tue, 15 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Using mdx in Frosti</title><link>https://blog-7gd.pages.dev/blog/frosti-mdx/</link><guid isPermaLink="true">https://blog-7gd.pages.dev/blog/frosti-mdx/</guid><description>Using MDX in Frosti to enrich article content with more components</description><content:encoded>&lt;p&gt;import Collapse from &amp;quot;../../components/mdx/Collapse.astro&amp;quot;;
import Diff from &amp;quot;../../components/mdx/Diff.astro&amp;quot;;
import Error from &amp;quot;../../components/mdx/Error.astro&amp;quot;;
import Info from &amp;quot;../../components/mdx/Info.astro&amp;quot;;
import Kbd from &amp;quot;../../components/mdx/Kbd.astro&amp;quot;;
import Success from &amp;quot;../../components/mdx/Success.astro&amp;quot;;
import Warning from &amp;quot;../../components/mdx/Warning.astro&amp;quot;;
import TimeLine from &amp;quot;../../components/mdx/TimeLine.astro&amp;quot;;
import LinkCard from &amp;quot;../../components/mdx/LinkCard.astro&amp;quot;;&lt;/p&gt;
&lt;h2&gt;Preface&lt;/h2&gt;
&lt;p&gt;This article describes how to use the components provided by Frosti in &lt;code&gt;mdx&lt;/code&gt; to realize the functions that can&amp;#39;t be realized by normal &lt;code&gt;md&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;Main text&lt;/h2&gt;
&lt;h3&gt;Getting started&lt;/h3&gt;
&lt;p&gt;First you need to create an &lt;code&gt;mdx&lt;/code&gt; file, which is as simple as changing the extension to &lt;code&gt;.mdx&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Introducing&lt;/h3&gt;
&lt;p&gt;The components provided by Frosti are placed in the &lt;code&gt;/mdx&lt;/code&gt; folders. Write something under the document properties (frontmatter):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;import Collapse from &amp;quot;../../components/mdx/Collapse.astro&amp;quot;;
import Diff from &amp;quot;../../components/mdx/Diff.astro&amp;quot;;
import Error from &amp;quot;../../components/mdx/Error.astro&amp;quot;;
import Info from &amp;quot;../../components/mdx/Info.astro&amp;quot;;
import Kbd from &amp;quot;../../components/mdx/Kbd.astro&amp;quot;;
import Success from &amp;quot;../../components/mdx/Success.astro&amp;quot;;
import Warning from &amp;quot;../../components/mdx/Warning.astro&amp;quot;;
import TimeLine from &amp;quot;../../components/mdx/TimeLine.astro&amp;quot;;
import LinkCard from &amp;quot;../../components/mdx/LinkCard.astro&amp;quot;;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Example&lt;/h3&gt;
&lt;h4&gt;Collapse&lt;/h4&gt;
&lt;Collapse title=&quot;This is an example text.&quot;&gt;
  This is the hidden content!
&lt;/Collapse&gt;

&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;&amp;lt;Collapse title=&amp;quot;This is an example text.&amp;quot;&amp;gt;
  This is the hidden content!
&amp;lt;/Collapse&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Diff&lt;/h4&gt;
&lt;Diff l=&quot;https://blog-7gd.pages.dev/image/l.png&quot; r=&quot;https://blog-7gd.pages.dev/image/r.png&quot; /&gt;

&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;&amp;lt;Diff l=&amp;quot;/image/l.png&amp;quot; r=&amp;quot;/image/r.png&amp;quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Error&lt;/h4&gt;
&lt;p&gt;&lt;Error&gt;Maybe something went wrong?&lt;/Error&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;&amp;lt;Error&amp;gt;Maybe something went wrong? &amp;lt;/Error&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Warning&lt;/h4&gt;
&lt;p&gt;&lt;Warning&gt;Hey! Watch out for potholes! &lt;/Warning&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;&amp;lt;Warning&amp;gt;Hey! Watch out for potholes! &amp;lt;/Warning&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Message&lt;/h4&gt;
&lt;p&gt;&lt;Info&gt;It&amp;#39;s just a message. &lt;/Info&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;&amp;lt;Info&amp;gt;It&amp;#39;s just a message. &amp;lt;/Info&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Success&lt;/h4&gt;
&lt;p&gt;&lt;Success&gt;Congratulations on your successful deployment! &lt;/Success&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;&amp;lt;Success&amp;gt;Congratulations on your successful deployment! &amp;lt;/Success&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Kbd&lt;/h4&gt;
&lt;p&gt;&lt;Kbd&gt;Ctrl&lt;/Kbd&gt; + &lt;Kbd&gt;C&lt;/Kbd&gt; to copy the text.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;&amp;lt;Kbd&amp;gt;Ctrl&amp;lt;/Kbd&amp;gt; + &amp;lt;Kbd&amp;gt;C&amp;lt;/Kbd&amp;gt; to copy the text.
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;TimeLine&lt;/h4&gt;
&lt;p&gt;&amp;lt;TimeLine
  items={[
    { year: &amp;quot;1984&amp;quot;, event: &amp;quot;First Macintosh computer&amp;quot; },
    { year: &amp;quot;1998&amp;quot;, event: &amp;quot;iMac&amp;quot; },
    { year: &amp;quot;2001&amp;quot;, event: &amp;quot;iPod&amp;quot; },
    { year: &amp;quot;2007&amp;quot;, event: &amp;quot;iPhone&amp;quot; },
    { year: &amp;quot;2015&amp;quot;, event: &amp;quot;Apple Watch&amp;quot; },
  ]}
/&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;&amp;lt;TimeLine
  items={[
    { year: &amp;quot;1984&amp;quot;, event: &amp;quot;First Macintosh computer&amp;quot; },
    { year: &amp;quot;1998&amp;quot;, event: &amp;quot;iMac&amp;quot; },
    { year: &amp;quot;2001&amp;quot;, event: &amp;quot;iPod&amp;quot; },
    { year: &amp;quot;2007&amp;quot;, event: &amp;quot;iPhone&amp;quot; },
    { year: &amp;quot;2015&amp;quot;, event: &amp;quot;Apple Watch&amp;quot; },
  ]}
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;LinkCard&lt;/h4&gt;
&lt;p&gt;&lt;LinkCard
  title=&quot;Frosti&quot;
  desc=&quot;My blog project!&quot;
  url=&quot;https://github.com/EveSunMaple/Frosti&quot;
  img=&quot;https://blog-7gd.pages.dev/logo.png&quot;
/&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;&amp;lt;LinkCard
  title=&amp;quot;Frosti&amp;quot;
  desc=&amp;quot;My blog project!&amp;quot;
  url=&amp;quot;https://github.com/EveSunMaple/Frosti&amp;quot;
  img=&amp;quot;/logo.png&amp;quot;
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;This rendering was automatically generated by Frosti Feed and may have formatting issues. For the best experience, please visit: &lt;a href=&quot;https://blog-7gd.pages.dev/blog/frosti-mdx/&quot;&gt;https://blog-7gd.pages.dev/blog/frosti-mdx/&lt;/a&gt;&lt;/blockquote&gt;</content:encoded><dc:creator>Ai Lounge</dc:creator><pubDate>Fri, 12 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Markdown Style Guide</title><link>https://blog-7gd.pages.dev/blog/markdown-style-guide/</link><guid isPermaLink="true">https://blog-7gd.pages.dev/blog/markdown-style-guide/</guid><description>Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro.</description><content:encoded>&lt;p&gt;Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro.&lt;/p&gt;
&lt;h2&gt;Headings&lt;/h2&gt;
&lt;p&gt;The following HTML &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;—&lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; elements represent six levels of section headings. &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; is the highest section level while &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; is the lowest.&lt;/p&gt;
&lt;h1&gt;H1&lt;/h1&gt;
&lt;h2&gt;H2&lt;/h2&gt;
&lt;h3&gt;H3&lt;/h3&gt;
&lt;h4&gt;H4&lt;/h4&gt;
&lt;h5&gt;H5&lt;/h5&gt;
&lt;h6&gt;H6&lt;/h6&gt;
&lt;h2&gt;Paragraph&lt;/h2&gt;
&lt;p&gt;Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.&lt;/p&gt;
&lt;p&gt;Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.&lt;/p&gt;
&lt;h2&gt;Images&lt;/h2&gt;
&lt;h4&gt;Syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;![Alt text](./full/or/relative/path/of/image)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://blog-7gd.pages.dev/logo.png&quot; alt=&quot;blog placeholder&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Blockquotes&lt;/h2&gt;
&lt;p&gt;The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a &lt;code&gt;footer&lt;/code&gt; or &lt;code&gt;cite&lt;/code&gt; element, and optionally with in-line changes such as annotations and abbreviations.&lt;/p&gt;
&lt;h3&gt;Blockquote without attribution&lt;/h3&gt;
&lt;h4&gt;Syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;&amp;gt; Tiam, ad mint andaepu dandae nostion secatur sequo quae.
&amp;gt; **Note** that you can use _Markdown syntax_ within a blockquote.
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Tiam, ad mint andaepu dandae nostion secatur sequo quae.
&lt;strong&gt;Note&lt;/strong&gt; that you can use &lt;em&gt;Markdown syntax&lt;/em&gt; within a blockquote.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Blockquote with attribution&lt;/h3&gt;
&lt;h4&gt;Syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;&amp;gt; Don&amp;#39;t communicate by sharing memory, share memory by communicating.&amp;lt;br&amp;gt;
&amp;gt; — &amp;lt;cite&amp;gt;Rob Pike[^1]&amp;lt;/cite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Don&amp;#39;t communicate by sharing memory, share memory by communicating.&lt;br&gt;
— &lt;cite&gt;Rob Pike[^1]&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;[^1]: The above quote is excerpted from Rob Pike&amp;#39;s &lt;a href=&quot;https://www.youtube.com/watch?v=PAAkCSZUG1c&quot;&gt;talk&lt;/a&gt; during Gopherfest, November 18, 2015.&lt;/p&gt;
&lt;h2&gt;Tables&lt;/h2&gt;
&lt;h4&gt;Syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;| Italics   | Bold     | Code   |
| --------- | -------- | ------ |
| _italics_ | **bold** | `code` |
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Italics&lt;/th&gt;
&lt;th&gt;Bold&lt;/th&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;em&gt;italics&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;bold&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;code&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;Code Blocks&lt;/h2&gt;
&lt;h4&gt;Syntax&lt;/h4&gt;
&lt;p&gt;we can use 3 backticks ``` in new line and write snippet and close with 3 backticks on new line and to highlight language specific syntac, write one word of language name after first 3 backticks, for eg. html, javascript, css, markdown, typescript, txt, bash&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;```cpp
#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int N = 1e5 + 5;
int n, k, a[N];
long long ans;
vector&amp;lt;int&amp;gt; v[N];
int main()
{
    scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;n, &amp;amp;k);
    for (int i = 1; i &amp;lt;= n; i++)
    {
        scanf(&amp;quot;%d&amp;quot;, &amp;amp;a[i]);
        v[i % k].push_back(a[i]);
    }
    for (int i = 0; i &amp;lt; k; i++)
        sort(v[i].rbegin(), v[i].rend());
    for (int i = 0; i &amp;lt; k; i++)
    {
        for (int j = 0; j + 1 &amp;lt; v[i].size(); j += 2)
        {
            ans += v[i][j] + v[i][j + 1];
        }
    }
    printf(&amp;quot;%lld\n&amp;quot;, ans);
    return 0;
}
```
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Output&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-cpp&quot;&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int N = 1e5 + 5;
int n, k, a[N];
long long ans;
vector&amp;lt;int&amp;gt; v[N];
int main()
{
    scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;n, &amp;amp;k);
    for (int i = 1; i &amp;lt;= n; i++)
    {
        scanf(&amp;quot;%d&amp;quot;, &amp;amp;a[i]);
        v[i % k].push_back(a[i]);
    }
    for (int i = 0; i &amp;lt; k; i++)
        sort(v[i].rbegin(), v[i].rend());
    for (int i = 0; i &amp;lt; k; i++)
    {
        for (int j = 0; j + 1 &amp;lt; v[i].size(); j += 2)
        {
            ans += v[i][j] + v[i][j + 1];
        }
    }
    printf(&amp;quot;%lld\n&amp;quot;, ans);
    return 0;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;List Types&lt;/h2&gt;
&lt;h3&gt;Ordered List&lt;/h3&gt;
&lt;h4&gt;Syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;1. First item
2. Second item
3. Third item
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;First item&lt;/li&gt;
&lt;li&gt;Second item&lt;/li&gt;
&lt;li&gt;Third item&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Unordered List&lt;/h3&gt;
&lt;h4&gt;Syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;- List item
- Another item
- And another item
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;List item&lt;/li&gt;
&lt;li&gt;Another item&lt;/li&gt;
&lt;li&gt;And another item&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Nested list&lt;/h3&gt;
&lt;h4&gt;Syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;- Fruit
  - Apple
  - Orange
  - Banana
- Dairy
  - Milk
  - Cheese
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Fruit&lt;ul&gt;
&lt;li&gt;Apple&lt;/li&gt;
&lt;li&gt;Orange&lt;/li&gt;
&lt;li&gt;Banana&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Dairy&lt;ul&gt;
&lt;li&gt;Milk&lt;/li&gt;
&lt;li&gt;Cheese&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Other Elements&lt;/h2&gt;
&lt;h4&gt;Syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;&amp;lt;abbr title=&amp;quot;Graphics Interchange Format&amp;quot;&amp;gt;GIF&amp;lt;/abbr&amp;gt; is a bitmap image format.

H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;O

X&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; + Y&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; = Z&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;

Press &amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;ALT&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; to end the session.

Most &amp;lt;mark&amp;gt;salamanders&amp;lt;/mark&amp;gt; are nocturnal, and hunt for insects, worms, and other small creatures.
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;p&gt;&lt;abbr title=&quot;Graphics Interchange Format&quot;&gt;GIF&lt;/abbr&gt; is a bitmap image format.&lt;/p&gt;
&lt;p&gt;H&lt;sub&gt;2&lt;/sub&gt;O&lt;/p&gt;
&lt;p&gt;X&lt;sup&gt;n&lt;/sup&gt; + Y&lt;sup&gt;n&lt;/sup&gt; = Z&lt;sup&gt;n&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Press &lt;kbd&gt;CTRL&lt;/kbd&gt;+&lt;kbd&gt;ALT&lt;/kbd&gt;+&lt;kbd&gt;Delete&lt;/kbd&gt; to end the session.&lt;/p&gt;
&lt;p&gt;Most &lt;mark&gt;salamanders&lt;/mark&gt; are nocturnal, and hunt for insects, worms, and other small creatures.&lt;/p&gt;
 &lt;blockquote&gt;This rendering was automatically generated by Frosti Feed and may have formatting issues. For the best experience, please visit: &lt;a href=&quot;https://blog-7gd.pages.dev/blog/markdown-style-guide/&quot;&gt;https://blog-7gd.pages.dev/blog/markdown-style-guide/&lt;/a&gt;&lt;/blockquote&gt;</content:encoded><dc:creator>Ai Lounge</dc:creator><pubDate>Mon, 01 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Using MDX</title><link>https://blog-7gd.pages.dev/blog/using-mdx/</link><guid isPermaLink="true">https://blog-7gd.pages.dev/blog/using-mdx/</guid><description>Lorem ipsum dolor sit amet</description><content:encoded>&lt;p&gt;This theme comes with the &lt;a href=&quot;https://docs.astro.build/en/guides/integrations-guide/mdx/&quot;&gt;@astrojs/mdx&lt;/a&gt; integration installed and configured in your &lt;code&gt;astro.config.mjs&lt;/code&gt; config file. If you prefer not to use MDX, you can disable support by removing the integration from your config file.&lt;/p&gt;
&lt;h2&gt;Why MDX?&lt;/h2&gt;
&lt;p&gt;MDX is a special flavor of Markdown that supports embedded JavaScript &amp;amp; JSX syntax. This unlocks the ability to &lt;a href=&quot;https://docs.astro.build/en/guides/markdown-content/#mdx-features&quot;&gt;mix JavaScript and UI Components into your Markdown content&lt;/a&gt; for things like interactive charts or alerts.&lt;/p&gt;
&lt;p&gt;If you have existing content authored in MDX, this integration will hopefully make migrating to Astro a breeze.&lt;/p&gt;
&lt;h2&gt;Example&lt;/h2&gt;
&lt;p&gt;Here is how you import and use a UI component inside of MDX.&lt;br&gt;When you open this page in the browser, you should see the clickable button below.&lt;/p&gt;
&lt;h2&gt;More Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mdxjs.com/docs/what-is-mdx&quot;&gt;MDX Syntax Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.astro.build/en/guides/markdown-content/#markdown-and-mdx-pages&quot;&gt;Astro Usage Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;a href=&quot;https://docs.astro.build/en/reference/directives-reference/#client-directives&quot;&gt;Client Directives&lt;/a&gt; are still required to create interactive components. Otherwise, all components in your MDX will render as static HTML (no JavaScript) by default.&lt;/li&gt;
&lt;/ul&gt;
 &lt;blockquote&gt;This rendering was automatically generated by Frosti Feed and may have formatting issues. For the best experience, please visit: &lt;a href=&quot;https://blog-7gd.pages.dev/blog/using-mdx/&quot;&gt;https://blog-7gd.pages.dev/blog/using-mdx/&lt;/a&gt;&lt;/blockquote&gt;</content:encoded><dc:creator>Ai Lounge</dc:creator><pubDate>Sat, 02 Jul 2022 00:00:00 GMT</pubDate></item></channel></rss>