<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Format on JsonKit Blog</title>
    <link>https://jsokit.com/blog/tags/format/</link>
    <description>Recent content in Format on JsonKit Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© 2025 JsonKit</copyright>
    <lastBuildDate>Tue, 12 May 2026 16:16:32 +0000</lastBuildDate>
    <atom:link href="https://jsokit.com/blog/tags/format/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>XML Formatter: Building a Parser with State Machine</title>
      <link>https://jsokit.com/blog/posts/xml-formatter-building-a-parser-with-state-machine/</link>
      <pubDate>Tue, 12 May 2026 16:16:32 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/xml-formatter-building-a-parser-with-state-machine/</guid>
      <description>XML Formatter: Building a Parser with State Machine Dealing with minified XML from third-party APIs is painful. Most online tools are either bloated or can&amp;rsquo;t handle special nodes like CDATA and comments. So I built my own. Here&amp;rsquo;s how it works.&#xA;The Core: No Native API for XML Unlike JSON where JSON.parse + JSON.stringify does the job in two lines, XML has no native formatting API. You have to parse the string yourself, identify tags, attributes, and text content, then reformat.</description>
    </item>
    <item>
      <title>Table Generator Implementation: From Data Editing to Multi-Format Output</title>
      <link>https://jsokit.com/blog/posts/table-generator-implementation-from-data-editing-to-multi-format-output/</link>
      <pubDate>Tue, 05 May 2026 17:05:30 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/table-generator-implementation-from-data-editing-to-multi-format-output/</guid>
      <description>Table Generator Implementation: From Data Editing to Multi-Format Output When writing technical documentation, I often need to insert tables. Hand-writing Markdown tables is manageable, but converting to HTML or CSV is tedious. Let&amp;rsquo;s build a tool that edits once and outputs in multiple formats.&#xA;The Essence of Three Table Formats Markdown Tables: Pipe-Separated | Name | Age | City | | --- | --- | --- | | John | 30 | NY | | Jane | 25 | LA | The core is using | to separate cells, with the second row as the separator line (alignment).</description>
    </item>
    <item>
      <title>SQL Formatter: From Regex to AST Parser Implementation</title>
      <link>https://jsokit.com/blog/posts/sql-formatter-from-regex-to-ast-parser-implementation/</link>
      <pubDate>Sun, 03 May 2026 15:58:01 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/sql-formatter-from-regex-to-ast-parser-implementation/</guid>
      <description>SQL Formatter: From Regex to AST Parser Implementation Recently during a code review, I came across a SQL statement compressed into a single line - hundreds of characters strung together, making it painful to read. I looked for an online tool to format it, but the output style didn&amp;rsquo;t match our team&amp;rsquo;s conventions. I decided to implement my own and document the approach.&#xA;Why SQL Formatting is Hard SQL formatting is much more complex than JSON formatting.</description>
    </item>
    <item>
      <title>Building a Sitemap Generator: XML Structure and SEO Best Practices</title>
      <link>https://jsokit.com/blog/posts/building-a-sitemap-generator-xml-structure-and-seo-best-practices/</link>
      <pubDate>Fri, 01 May 2026 18:59:48 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/building-a-sitemap-generator-xml-structure-and-seo-best-practices/</guid>
      <description>Building a Sitemap Generator: XML Structure and SEO Best Practices I was doing SEO optimization for my blog recently when Google Search Console kept complaining about my sitemap. Opening sitemap.xml, the format was fine, but the configuration was a mess: every page had priority 1.0, changefreq was always &amp;ldquo;always&amp;rdquo;—basically telling search engines &amp;ldquo;this whole site is spam.&amp;rdquo;&#xA;So I built my own sitemap generator and dug into the technical details and SEO best practices.</description>
    </item>
    <item>
      <title>From window.screen to devicePixelRatio: A Complete Guide to Browser Screen APIs</title>
      <link>https://jsokit.com/blog/posts/from-windowscreen-to-devicepixelratio-a-complete-guide-to-browser-screen-apis/</link>
      <pubDate>Thu, 30 Apr 2026 16:17:27 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/from-windowscreen-to-devicepixelratio-a-complete-guide-to-browser-screen-apis/</guid>
      <description>From window.screen to devicePixelRatio: A Complete Guide to Browser Screen APIs While building a responsive layout debugger, I dove deep into browser screen APIs. Beyond the common screen.width, there&amp;rsquo;s a lot more to explore. Here&amp;rsquo;s what I learned.&#xA;Core API: The screen Object The window.screen object provides rich screen information:&#xA;interface ScreenInfo { width: number // Physical screen width (pixels) height: number // Physical screen height (pixels) availWidth: number // Available width (minus taskbar) availHeight: number // Available height (minus taskbar) colorDepth: number // Color depth (usually 24 or 32-bit) pixelDepth: number // Pixel depth (usually equals colorDepth) orientation: string // Screen orientation (landscape-primary, etc.</description>
    </item>
    <item>
      <title>From Template Strings to Standard Practices: Building a README Generator</title>
      <link>https://jsokit.com/blog/posts/from-template-strings-to-standard-practices-building-a-readme-generator/</link>
      <pubDate>Sun, 26 Apr 2026 09:00:41 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/from-template-strings-to-standard-practices-building-a-readme-generator/</guid>
      <description>From Template Strings to Standard Practices: Building a README Generator Project is done. Now, how to write the README? Many developers (including myself) have been there: the code is solid, but the README is an afterthought. It&amp;rsquo;s not about lack of motivation—it&amp;rsquo;s the repetitive work of structuring sections, finding badges, formatting text.&#xA;Recently added a README generator to JsonKit. Here&amp;rsquo;s the technical breakdown.&#xA;The Standard README Structure Let&amp;rsquo;s look at what mature READMEs include:</description>
    </item>
    <item>
      <title>Port Checker: From IANA Assignments to Security Hardening</title>
      <link>https://jsokit.com/blog/posts/port-checker-from-iana-assignments-to-security-hardening/</link>
      <pubDate>Wed, 22 Apr 2026 19:56:14 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/port-checker-from-iana-assignments-to-security-hardening/</guid>
      <description>Port Checker: From IANA Assignments to Security Hardening When troubleshooting server issues, I often need to look up which service runs on which port. Online references are either incomplete or poorly formatted. So I compiled a quick reference for common ports, along with the technical details behind them.&#xA;Port Fundamentals A port number is a 16-bit unsigned integer, ranging from 0 to 65535. IANA (Internet Assigned Numbers Authority) divides ports into three ranges:</description>
    </item>
    <item>
      <title>PDF Merge and Split: A Complete Guide to Implementation and File Format</title>
      <link>https://jsokit.com/blog/posts/pdf-merge-and-split-a-complete-guide-to-implementation-and-file-format/</link>
      <pubDate>Tue, 21 Apr 2026 16:26:32 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/pdf-merge-and-split-a-complete-guide-to-implementation-and-file-format/</guid>
      <description>PDF Merge and Split: A Complete Guide to Implementation and File Format PDF is one of the most common document formats in our daily work. Whether it&amp;rsquo;s contract archiving, report organization, or document distribution, PDF merging and splitting are frequent requirements. Today let&amp;rsquo;s discuss the technical principles and implementation approaches behind these operations.&#xA;PDF File Format Structure To understand PDF merging and splitting, we first need to grasp how PDF files are organized.</description>
    </item>
    <item>
      <title>Password Strength Checkers: From Character Sets to Entropy Calculation</title>
      <link>https://jsokit.com/blog/posts/password-strength-checkers-from-character-sets-to-entropy-calculation/</link>
      <pubDate>Mon, 20 Apr 2026 19:22:10 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/password-strength-checkers-from-character-sets-to-entropy-calculation/</guid>
      <description>Password Strength Checkers: From Character Sets to Entropy Calculation Ever wondered how those &amp;ldquo;Password Strength: Strong&amp;rdquo; indicators work? Why do some sites require uppercase, lowercase, numbers, and special characters? Let&amp;rsquo;s break down the math behind password strength detection.&#xA;The Core: Information Entropy Password strength is fundamentally about information entropy - measuring the uncertainty in a password. Higher entropy means harder to guess.&#xA;The formula:&#xA;Entropy = log₂(N^L) = L × log₂(N) Where:</description>
    </item>
    <item>
      <title>JavaScript Number Base Converter: From parseInt to Bitwise Operations</title>
      <link>https://jsokit.com/blog/posts/javascript-number-base-converter-from-parseint-to-bitwise-operations/</link>
      <pubDate>Sat, 18 Apr 2026 20:11:50 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/javascript-number-base-converter-from-parseint-to-bitwise-operations/</guid>
      <description>JavaScript Number Base Converter: From parseInt to Bitwise Operations Published: April 29, 2026, 11:00&#xA;Last week while debugging a network protocol, I found myself constantly converting numbers between binary, octal, decimal, and hexadecimal formats. Opening the calculator every time was tedious, so I decided to build an online number base converter. This seemingly simple tool has some interesting technical details worth sharing.&#xA;The Core Principle of Base Conversion Base conversion is fundamentally about positional notation.</description>
    </item>
  </channel>
</rss>
