<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: midnight · 程序员子夜</title>
    <description>The latest articles on DEV Community by midnight · 程序员子夜 (@midnight_browser_tools).</description>
    <link>https://dev.to/midnight_browser_tools</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4174785%2F8df881db-54e3-4638-833b-6472e721fd2f.png</url>
      <title>DEV Community: midnight · 程序员子夜</title>
      <link>https://dev.to/midnight_browser_tools</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/midnight_browser_tools"/>
    <language>en</language>
    <item>
      <title>A scoped workflow for previewing webpage text replacements</title>
      <dc:creator>midnight · 程序员子夜</dc:creator>
      <pubDate>Sat, 10 Oct 2026 07:15:59 +0000</pubDate>
      <link>https://dev.to/midnight_browser_tools/a-scoped-workflow-for-previewing-webpage-text-replacements-26k</link>
      <guid>https://dev.to/midnight_browser_tools/a-scoped-workflow-for-previewing-webpage-text-replacements-26k</guid>
      <description>&lt;p&gt;I am the developer of SuperTextSwap. This is a workflow for previewing different wording in your browser while keeping replacement rules limited to the intended page. This article was generated by an AI agent from product materials and the recorded setup. The screenshot available for this post shows rule setup, not a completed replacement result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat scope as part of the rule
&lt;/h2&gt;

&lt;p&gt;A text replacement needs more than an original phrase and a replacement phrase. The same phrase might appear in navigation, an article, a form and another website. Before adding a rule, decide where it should run.&lt;/p&gt;

&lt;p&gt;For the first test, choose a public page you control or may use, and choose a phrase in ordinary body text. Avoid payment pages and form submissions while learning the workflow.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install SuperTextSwap from its &lt;a href="https://chromewebstore.google.com/detail/jibokgjnpoifiejnmjndkonnohipnign" rel="noopener noreferrer"&gt;Chrome Web Store listing&lt;/a&gt; and review the permission prompt.&lt;/li&gt;
&lt;li&gt;Open an ordinary webpage, then open the extension.&lt;/li&gt;
&lt;li&gt;Enter a short original phrase and a clearly different replacement.&lt;/li&gt;
&lt;li&gt;Select the current-domain scope instead of every page.&lt;/li&gt;
&lt;li&gt;Add the rule, inspect the page, and use Apply now if needed.&lt;/li&gt;
&lt;li&gt;Check a second area on the same page to see whether the scope is broader than you intended.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The recorded setup used “Markdown” and “结构化笔记” on the current domain exportweb.yi7.net. It stopped before adding or applying the rule. That screenshot demonstrates the configuration controls; it is not evidence that replacement ran successfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  Narrow the target before using regex
&lt;/h2&gt;

&lt;p&gt;The extension provides plain-text and regular-expression matching, with all-page, domain and custom URL scopes. Element selection or a CSS selector can keep a rule inside a particular page area.&lt;/p&gt;

&lt;p&gt;Start with plain text when one literal phrase is enough. A regex describes a class of matches, so it needs a larger test set: text that should match, text that should remain unchanged, and similar strings near the boundary. An expression such as &lt;code&gt;item_\d+&lt;/code&gt; can describe names with digits, but whether it is suitable depends on the content and the chosen scope. Inspect the actual page instead of assuming a pattern is safe because it is short.&lt;/p&gt;

&lt;p&gt;Selectors have their own maintenance cost. A website redesign can change its markup and make a previously useful selector stop matching. Re-pick the element and retest when that happens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understand display changes and recovery
&lt;/h2&gt;

&lt;p&gt;SuperTextSwap changes what your browser displays. It does not edit the source website's server-side content. Rules can follow newly inserted page content, which is useful for dynamic pages but makes scope checks more important.&lt;/p&gt;

&lt;p&gt;When you no longer want a replacement, disable or remove the rule and reload the page to restore the source document. Do not assume deleting a rule instantly reverses every existing text mutation. Check that the rule is still disabled after the reload.&lt;/p&gt;

&lt;p&gt;Input fields and rich-text content have separate options. Leave them off for a reading-only test. If you deliberately enable input replacement, check the final form value before submitting: text changed in your browser can still be transmitted to the website by a normal form submission.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule storage and feedback
&lt;/h2&gt;

&lt;p&gt;Rules use Chrome sync storage. When Chrome synchronization is enabled, the browser may synchronize those rules through its service. Avoid storing confidential phrases unless you have considered that behavior. The website's interactive example is separate from installed extension rules; using the demo does not configure the extension.&lt;/p&gt;

&lt;p&gt;Version 0.1.9 provides popup and native Chrome side-panel rule management. Browser support and permission behavior depend on the environment. A useful bug report includes a public test page, the literal text or regex, the selected URL and element scope, and the observed mismatch. Remove private text and account details from the report.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://textswap.yi7.net/en/" rel="noopener noreferrer"&gt;guide and privacy notes&lt;/a&gt; and &lt;a href="https://github.com/midnight-ht/super-text-swap" rel="noopener noreferrer"&gt;GitHub project&lt;/a&gt; provide installation and feature details. Personal and non-commercial use is free; commercial use requires written permission. Feedback on reproducible matching and page-compatibility problems is welcome.&lt;/p&gt;

</description>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to check a webpage-to-Markdown export before saving it</title>
      <dc:creator>midnight · 程序员子夜</dc:creator>
      <pubDate>Sat, 10 Oct 2026 07:14:37 +0000</pubDate>
      <link>https://dev.to/midnight_browser_tools/how-to-check-a-webpage-to-markdown-export-before-saving-it-5318</link>
      <guid>https://dev.to/midnight_browser_tools/how-to-check-a-webpage-to-markdown-export-before-saving-it-5318</guid>
      <description>&lt;p&gt;I am the developer of SuperContentExport. This tutorial uses my own public guide as a test page and explains how to check a small webpage export before relying on it in a note-taking workflow. This article was generated by an AI agent from the product materials and recorded test; the feature descriptions and screenshot boundaries are based on the product and the recorded browser test.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with one paragraph
&lt;/h2&gt;

&lt;p&gt;When you copy a whole webpage, navigation, footers and repeated sidebar links can end up mixed into your notes. A smaller selection is easier to inspect. The first test should be a paragraph you can see and compare, rather than a long page with lazy-loaded sections.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install SuperContentExport from its &lt;a href="https://chromewebstore.google.com/detail/abooobkoggmbjedijekdfcodaibbkhdf" rel="noopener noreferrer"&gt;Chrome Web Store listing&lt;/a&gt;, review the browser permission prompt, and pin the extension.&lt;/li&gt;
&lt;li&gt;Open a public page you have permission to use. My &lt;a href="https://exportweb.yi7.net/en/guide/" rel="noopener noreferrer"&gt;Markdown guide&lt;/a&gt; is one option.&lt;/li&gt;
&lt;li&gt;Open the extension and choose element selection. Point to the paragraph you want to save and select it.&lt;/li&gt;
&lt;li&gt;Use Copy Markdown or Download Markdown in the selection toolbar.&lt;/li&gt;
&lt;li&gt;Open the output in your editor and compare it with the source paragraph.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the recorded test on the Chinese guide, downloading the selected paragraph generated a 215-byte Markdown file. That is a narrow interaction check, not a benchmark or a claim that every page converts perfectly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decide whether you need structure or appearance
&lt;/h2&gt;

&lt;p&gt;Markdown is useful when you want editable text. The extension supports structural conversion for headings, lists, links, tables and code. PNG is useful when the original visual arrangement matters more than subsequent editing. A visible-region selection and an element selection solve different problems: the former follows the area on screen, while the latter targets a page element.&lt;/p&gt;

&lt;p&gt;Use a short checklist after exporting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compare the start and end of the selection. Did an adjacent paragraph get included?&lt;/li&gt;
&lt;li&gt;Check heading levels and list nesting in the rendered Markdown.&lt;/li&gt;
&lt;li&gt;Open a link and confirm it points to the intended destination.&lt;/li&gt;
&lt;li&gt;Inspect a table for missing cells and code for lost indentation.&lt;/li&gt;
&lt;li&gt;Check whether image references are usable in the place where you will store the note.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Images remain links in Markdown. This is not an image archive and it does not perform OCR. A screenshot with words inside it will not automatically become editable text.&lt;/p&gt;

&lt;h2&gt;
  
  
  Whole-page export has a document boundary
&lt;/h2&gt;

&lt;p&gt;Whole-page export operates on the currently loaded document. It does not automatically load every item in an infinite-scroll feed. If a section has not loaded, you should not assume it is present in the export. Complex layouts can require a smaller selection or manual cleanup.&lt;/p&gt;

&lt;p&gt;This also means a successful download does not establish content completeness. The useful check is whether the output contains the specific material you meant to save. Exporting content does not grant permission to republish it; use your own pages or material you are allowed to reuse.&lt;/p&gt;

&lt;h2&gt;
  
  
  Report a conversion problem without private data
&lt;/h2&gt;

&lt;p&gt;A helpful issue includes a public URL, the element or region selected, the export format, and the difference between the expected and actual output. A small public example is easier to reproduce than a screenshot of an authenticated account. Do not include private page contents, credentials or tokens.&lt;/p&gt;

&lt;p&gt;The product guide and installation options are at &lt;a href="https://exportweb.yi7.net/en/" rel="noopener noreferrer"&gt;exportweb.yi7.net&lt;/a&gt;, with source and releases on &lt;a href="https://github.com/midnight-ht/super-content-export" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. The version described here is 0.1.2. Personal and non-commercial use is free; commercial use requires written permission. I welcome reproducible examples of document structures that need better conversion.&lt;/p&gt;

</description>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
