<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[DeDeLab RSS Feed]]></title><description><![CDATA[DeDeLab builds high-performance robotics modules with open interfaces, clear docs, and production-ready examples.]]></description><link>https://dedelab.com</link><generator>GatsbyJS</generator><lastBuildDate>Thu, 12 Mar 2026 10:00:08 GMT</lastBuildDate><item><title><![CDATA[DeDeLab Blog Formatting Tutorial: Markdown and MDX Style Guide]]></title><description><![CDATA[This article is a live format playground. You can copy any snippet below and use it directly in your own post. 1) Minimum frontmatter you…]]></description><link>https://dedelab.com/mdx-style-tutorial/</link><guid isPermaLink="false">https://dedelab.com/mdx-style-tutorial/</guid><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This article is a live format playground. You can copy any snippet below and use it directly in your own post.&lt;/p&gt;&lt;h1&gt;1) Minimum frontmatter you should always provide&lt;/h1&gt;&lt;p&gt;Use this as your default template:&lt;/p&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;yaml&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-yaml line-numbers&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;Your Post Title&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;One sentence summary for card preview and SEO.&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;2026-02-25&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;category&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;Blog&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;Tag1&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;Tag2&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;featuredImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;./cover.png&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;pinned&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;false&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;Why these fields matter&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;title&lt;/code&gt; and &lt;code class=&quot;language-text&quot;&gt;description&lt;/code&gt; are used in post cards and SEO.&lt;/li&gt;&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;date&lt;/code&gt; controls sort order.&lt;/li&gt;&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;category&lt;/code&gt; is used for list grouping.&lt;/li&gt;&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;tags&lt;/code&gt; powers Topics pages.&lt;/li&gt;&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;featuredImage&lt;/code&gt; is used for list thumbnail and top cover.&lt;/li&gt;&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;pinned&lt;/code&gt; controls the pinned stories panel.&lt;/li&gt;&lt;/ul&gt;&lt;hr/&gt;&lt;h1&gt;2) Core markdown blocks&lt;/h1&gt;&lt;h2&gt;Paragraph and inline code&lt;/h2&gt;&lt;p&gt;Use inline code like &lt;code class=&quot;language-text&quot;&gt;npm run develop&lt;/code&gt; for commands and config keys.&lt;/p&gt;&lt;h2&gt;Quote&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;Keep your writing practical, testable, and easy to copy.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;List&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Keep one point per bullet.&lt;/li&gt;&lt;li&gt;Prefer short lines for scanning.&lt;/li&gt;&lt;li&gt;Use examples whenever possible.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Divider&lt;/h2&gt;&lt;p&gt;Add a divider between major sections:&lt;/p&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;md&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-md line-numbers&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token hr punctuation&quot;&gt;---&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h1&gt;3) Code blocks&lt;/h1&gt;&lt;p&gt;This project supports Prism highlighting and line numbers.&lt;/p&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-js line-numbers&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;createPostMeta&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;category&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;Blog&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;pinned&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;python&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-python line-numbers&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;normalize_tags&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tags&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;tag&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;strip&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; tag &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; tags &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; tag&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-bash line-numbers&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;command-line-prompt&quot;&gt;&lt;span data-user=&quot;root&quot; data-host=&quot;localhost&quot;&gt;&lt;/span&gt;&lt;span data-user=&quot;root&quot; data-host=&quot;localhost&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; run develop
&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; run build&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h1&gt;4) Image and caption&lt;/h1&gt;&lt;p&gt;Local image example:&lt;/p&gt;&lt;p&gt;&lt;figure class=&quot;gatsby-resp-image-figure&quot; style=&quot;margin:2rem 0;padding:0&quot;&gt;
    &lt;span class=&quot;gatsby-resp-image-wrapper&quot; style=&quot;position:relative;display:block;margin-left:auto;margin-right:auto;max-width:987px&quot;&gt;
      &lt;a class=&quot;gatsby-resp-image-link&quot; href=&quot;/static/f1a8e217c3a6203ef67fc6843ce1df07/b2a21/google.png&quot; style=&quot;display:block&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;
    &lt;span class=&quot;gatsby-resp-image-background-image&quot; style=&quot;padding-bottom:150%;position:relative;bottom:0;left:0;background-image:url(&amp;#x27;data:image/png;base64,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&amp;#x27;);background-size:cover;display:block&quot;&gt;&lt;/span&gt;
  &lt;img class=&quot;gatsby-resp-image-image&quot; alt=&quot;Example cover from local asset&quot; title=&quot;Example cover from local asset&quot; src=&quot;/static/f1a8e217c3a6203ef67fc6843ce1df07/b2a21/google.png&quot; srcSet=&quot;/static/f1a8e217c3a6203ef67fc6843ce1df07/53918/google.png 360w,/static/f1a8e217c3a6203ef67fc6843ce1df07/242a6/google.png 720w,/static/f1a8e217c3a6203ef67fc6843ce1df07/b2a21/google.png 987w&quot; sizes=&quot;(max-width: 987px) 100vw, 987px&quot; style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
  &lt;/a&gt;
    &lt;/span&gt;
    &lt;figcaption class=&quot;gatsby-resp-image-figcaption&quot;&gt;Example cover from local asset&lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/p&gt;&lt;figcaption&gt;Figure 1. A local image referenced from the repository.&lt;/figcaption&gt;&lt;p&gt;Remote image example also works:&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&amp;amp;fit=crop&amp;amp;w=1600&amp;amp;q=80&quot; alt=&quot;Remote image example&quot;/&gt;&lt;/p&gt;&lt;figcaption&gt;Figure 2. A remote image URL.&lt;/figcaption&gt;&lt;hr/&gt;&lt;h1&gt;5) Highlight and links&lt;/h1&gt;&lt;p&gt;Use &lt;mark&gt;mark&lt;/mark&gt; to emphasize key text.&lt;/p&gt;&lt;p&gt;Regular markdown link:
&lt;a href=&quot;https://www.gatsbyjs.com/docs/&quot;&gt;Open the Gatsby docs&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Raw HTML anchor also works:&lt;/p&gt;&lt;a href=&quot;https://mdxjs.com&quot;&gt;Open MDX docs&lt;/a&gt;&lt;hr/&gt;&lt;h1&gt;6) MDX custom component: Alert&lt;/h1&gt;&lt;p&gt;Use this for warnings, tips, and important notes.&lt;/p&gt;&lt;div severity=&quot;info&quot;&gt;Tip: keep your description under 160 characters for cleaner previews.&lt;/div&gt;&lt;div severity=&quot;warning&quot;&gt;Avoid missing &lt;code&gt;featuredImage&lt;/code&gt;, otherwise post cards may look broken.&lt;/div&gt;&lt;div severity=&quot;success&quot;&gt;If &lt;code&gt;npm run build&lt;/code&gt; passes, your post format is valid.&lt;/div&gt;&lt;h2&gt;Copy-ready snippet&lt;/h2&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;jsx&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-jsx line-numbers&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Alert&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;severity&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;quot;&lt;/span&gt;info&lt;span class=&quot;token punctuation&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
  Put your message here.
&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Alert&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h1&gt;7) MDX custom component: SpecialLink&lt;/h1&gt;&lt;p&gt;Use this when you want a rich link card (video/demo/repo).&lt;/p&gt;&lt;div href=&quot;https://www.youtube.com/watch?v=Fgr5uer76lk&quot; title=&quot;Sample Video Link Card&quot; description=&quot;Open the sample video in YouTube&quot; site=&quot;youtube.com&quot; image=&quot;https://img.youtube.com/vi/Fgr5uer76lk/maxresdefault.jpg&quot;&gt;&lt;/div&gt;&lt;h2&gt;Copy-ready snippet&lt;/h2&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;jsx&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-jsx line-numbers&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;SpecialLink&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;https://example.com&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;Card title&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;Card summary&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;example.com&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;https://example.com/cover.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h1&gt;8) Optional advanced layout with Box and Typography&lt;/h1&gt;&lt;p&gt;You can also use MUI wrappers that are mapped in this project:&lt;/p&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;jsx&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-jsx line-numbers&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Box&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;sx&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;1px solid&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;borderColor&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;divider&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;borderRadius&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;8px&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;my&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Typography&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;sx&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;fontWeight&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;700&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
    Custom callout with Box + Typography
  &lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Typography&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Typography&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;sx&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;text.secondary&amp;quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
    Useful for custom layout blocks without creating a new React component.
  &lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Typography&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Box&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h1&gt;9) Quick publishing checklist&lt;/h1&gt;&lt;ol&gt;&lt;li&gt;Put your file in &lt;code class=&quot;language-text&quot;&gt;content/posts/&amp;lt;slug&amp;gt;/index.mdx&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Fill frontmatter fields first.&lt;/li&gt;&lt;li&gt;Verify &lt;code class=&quot;language-text&quot;&gt;featuredImage&lt;/code&gt; path exists.&lt;/li&gt;&lt;li&gt;Run &lt;code class=&quot;language-text&quot;&gt;npm run develop&lt;/code&gt; for preview.&lt;/li&gt;&lt;li&gt;Run &lt;code class=&quot;language-text&quot;&gt;npm run build&lt;/code&gt; before pushing.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;If you follow this tutorial format, your post should render correctly in list pages, post detail pages, Topics, and pinned areas.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[DeDeLab 博客格式教程：Markdown 与 MDX 写作示例]]></title><description><![CDATA[这是一篇“可复制”的格式演示文。你可以把下面任意片段直接粘贴到自己的  index.mdx  中使用。 1) 最小 frontmatter 模板 说明： locale  控制语言（ en  /  zh ）。 translationKey…]]></description><link>https://dedelab.com/mdx-style-tutorial-zh/</link><guid isPermaLink="false">https://dedelab.com/mdx-style-tutorial-zh/</guid><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这是一篇“可复制”的格式演示文。你可以把下面任意片段直接粘贴到自己的 &lt;code class=&quot;language-text&quot;&gt;index.mdx&lt;/code&gt; 中使用。&lt;/p&gt;&lt;h1&gt;1) 最小 frontmatter 模板&lt;/h1&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;yaml&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-yaml line-numbers&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;文章标题&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;用于卡片摘要和 SEO 的一句话说明&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;2026-02-25&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;category&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;Blog&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;Tag1&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;Tag2&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;featuredImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;./cover.png&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;pinned&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;false&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;locale&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;zh&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;translationKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;same-post-key&amp;quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;说明：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;locale&lt;/code&gt; 控制语言（&lt;code class=&quot;language-text&quot;&gt;en&lt;/code&gt; / &lt;code class=&quot;language-text&quot;&gt;zh&lt;/code&gt;）。&lt;/li&gt;&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;translationKey&lt;/code&gt; 用于把同一篇文章的多语言版本关联起来。&lt;/li&gt;&lt;/ul&gt;&lt;hr/&gt;&lt;h1&gt;2) 常用 Markdown&lt;/h1&gt;&lt;blockquote&gt;&lt;p&gt;内容尽量短句、结构化，方便读者快速扫描。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;列表一项&lt;/li&gt;&lt;li&gt;列表二项&lt;/li&gt;&lt;li&gt;列表三项&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;npm run develop&lt;/code&gt; 可用于本地预览。&lt;/p&gt;&lt;hr/&gt;&lt;h1&gt;3) 代码块&lt;/h1&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-js line-numbers&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; supportedLocales &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;quot;zh&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-bash line-numbers&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;command-line-prompt&quot;&gt;&lt;span data-user=&quot;root&quot; data-host=&quot;localhost&quot;&gt;&lt;/span&gt;&lt;span data-user=&quot;root&quot; data-host=&quot;localhost&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; run develop
&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; run build&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h1&gt;4) 图片与说明&lt;/h1&gt;&lt;p&gt;&lt;figure class=&quot;gatsby-resp-image-figure&quot; style=&quot;margin:2rem 0;padding:0&quot;&gt;
    &lt;span class=&quot;gatsby-resp-image-wrapper&quot; style=&quot;position:relative;display:block;margin-left:auto;margin-right:auto;max-width:987px&quot;&gt;
      &lt;a class=&quot;gatsby-resp-image-link&quot; href=&quot;/static/f1a8e217c3a6203ef67fc6843ce1df07/b2a21/google.png&quot; style=&quot;display:block&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;
    &lt;span class=&quot;gatsby-resp-image-background-image&quot; style=&quot;padding-bottom:150%;position:relative;bottom:0;left:0;background-image:url(&amp;#x27;data:image/png;base64,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&amp;#x27;);background-size:cover;display:block&quot;&gt;&lt;/span&gt;
  &lt;img class=&quot;gatsby-resp-image-image&quot; alt=&quot;本地图片示例&quot; title=&quot;本地图片示例&quot; src=&quot;/static/f1a8e217c3a6203ef67fc6843ce1df07/b2a21/google.png&quot; srcSet=&quot;/static/f1a8e217c3a6203ef67fc6843ce1df07/53918/google.png 360w,/static/f1a8e217c3a6203ef67fc6843ce1df07/242a6/google.png 720w,/static/f1a8e217c3a6203ef67fc6843ce1df07/b2a21/google.png 987w&quot; sizes=&quot;(max-width: 987px) 100vw, 987px&quot; style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
  &lt;/a&gt;
    &lt;/span&gt;
    &lt;figcaption class=&quot;gatsby-resp-image-figcaption&quot;&gt;本地图片示例&lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/p&gt;&lt;figcaption&gt;Figure 1. 本地资源图片。&lt;/figcaption&gt;&lt;hr/&gt;&lt;h1&gt;5) 提示框组件 Alert&lt;/h1&gt;&lt;div severity=&quot;info&quot;&gt;提示：建议 description 控制在 160 字以内。&lt;/div&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;jsx&quot;&gt;&lt;pre style=&quot;counter-reset:linenumber NaN&quot; class=&quot;language-jsx line-numbers&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Alert&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;severity&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;quot;&lt;/span&gt;warning&lt;span class=&quot;token punctuation&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
  Put your message here.
&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Alert&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space:normal;width:auto;left:0&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h1&gt;6) 外链卡片组件 SpecialLink&lt;/h1&gt;&lt;div href=&quot;https://www.youtube.com/watch?v=Fgr5uer76lk&quot; title=&quot;示例视频卡片&quot; description=&quot;点击查看示例视频&quot; site=&quot;youtube.com&quot; image=&quot;https://img.youtube.com/vi/Fgr5uer76lk/maxresdefault.jpg&quot;&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h1&gt;7) 发布前检查&lt;/h1&gt;&lt;ol&gt;&lt;li&gt;放到 &lt;code class=&quot;language-text&quot;&gt;content/posts/&amp;lt;slug&amp;gt;/index.mdx&lt;/code&gt;&lt;/li&gt;&lt;li&gt;frontmatter 填完整&lt;/li&gt;&lt;li&gt;执行 &lt;code class=&quot;language-text&quot;&gt;npm run build&lt;/code&gt;&lt;/li&gt;&lt;li&gt;确认页面在 &lt;code class=&quot;language-text&quot;&gt;/zh/&amp;lt;slug&amp;gt;/&lt;/code&gt; 可访问&lt;/li&gt;&lt;/ol&gt;</content:encoded></item></channel></rss>