<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>开发文档 on MEMEX</title>
    <link>https://memex.keinmal.top/docs/dev/</link>
    <description>Recent content in 开发文档 on MEMEX</description>
    <generator>Hugo --0.164.0</generator>
    <language>zh-cn</language><managingEditor>wyz2016zxc@outlook.com(Hiraeth)</managingEditor><webMaster>wyz2016zxc@outlook.com(Hiraeth)</webMaster><atom:link href="https://memex.keinmal.top/docs/dev/index.xml" rel="self" type="application/rss+xml" /><item>
      <title>awesome</title>
      <link>https://memex.keinmal.top/docs/dev/awesome/</link>
      <pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/awesome/</guid>
      <description>&lt;h1 id=&#34;awesome&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#awesome&#34;&gt;#&lt;/a&gt;Awesome&lt;/h1&gt;
&lt;p&gt;a list of awesome, that is, awesome-
&lt;/p&gt;</description></item><item>
      <title>好用的单行命令</title>
      <link>https://memex.keinmal.top/docs/dev/one-liner/</link>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/one-liner/</guid>
      <description>awesome one-liner commands</description></item><item>
      <title>git底层设计</title>
      <link>https://memex.keinmal.top/docs/dev/git-base/</link>
      <pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/git-base/</guid>
      <description>了解了一下git的底层实现方式，感觉很厉害，记录一下</description></item><item>
      <title>hugo</title>
      <link>https://memex.keinmal.top/docs/dev/hugo/</link>
      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/hugo/</guid>
      <description>自制hugo主题后做一些记录</description></item><item>
      <title>一些sh脚本</title>
      <link>https://memex.keinmal.top/docs/dev/scripts-example/</link>
      <pubDate>Sat, 25 Oct 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/scripts-example/</guid>
      <description>&lt;h1 id=&#34;scripts-example&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#scripts-example&#34;&gt;#&lt;/a&gt;scripts example&lt;/h1&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;find . -name &amp;#34;*.md&amp;#34; -type f -exec grep -lE &amp;#34;Finished&amp;#34; {} &amp;#43; | while read file; do
  if ! grep -q &amp;#34;2025-05-31&amp;#34; &amp;#34;$file&amp;#34;; then
    number=$(awk &amp;#39;/^pages: [0-9]&amp;#43;/ {print $2}&amp;#39; &amp;#34;$file&amp;#34;)
    if [ -n &amp;#34;$number&amp;#34; ]; then
      sed -i &amp;#34;/Finished/i\\- 2025-05-31: $number&amp;#34; &amp;#34;$file&amp;#34;
      echo &amp;#34;已处理: $file - 插入: - 2025-05-31: $number&amp;#34;
    else
      echo &amp;#34;跳过: $file (未找到pages数字或有效日期)&amp;#34;
    fi
  else
    echo &amp;#34;排除: $file (包含 2025-05-31)&amp;#34;
  fi
done&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;# 创建备份和日志
backup_dir=&amp;#34;backup_$(date &amp;#43;%Y%m%d)&amp;#34;
mkdir -p &amp;#34;$backup_dir&amp;#34;
log_file=&amp;#34;replace_log.txt&amp;#34;

echo &amp;#34;开始替换操作 $(date)&amp;#34; &amp;gt; &amp;#34;$log_file&amp;#34;

find . -name &amp;#34;*.md&amp;#34; -type f | while read file; do
    # 检查文件是否包含目标字符串
    if grep -q &amp;#34;- 2025-06-01: Finished&amp;#34; &amp;#34;$file&amp;#34;; then
        # 创建备份
        cp &amp;#34;$file&amp;#34; &amp;#34;$backup_dir/$(basename &amp;#34;$file&amp;#34;)&amp;#34;
        # 执行替换
        sed -i &amp;#39;s/- 2025-06-01: Finished/- 2025-05-31: Finished/g&amp;#39; &amp;#34;$file&amp;#34;
        # 记录日志
        echo &amp;#34;已修改: $file&amp;#34; &amp;gt;&amp;gt; &amp;#34;$log_file&amp;#34;
        # 显示变更
        echo &amp;#34;=== $file 修改内容 ===&amp;#34;
        diff &amp;#34;$backup_dir/$(basename &amp;#34;$file&amp;#34;)&amp;#34; &amp;#34;$file&amp;#34; || true
    else
        echo &amp;#34;无修改: $file&amp;#34; &amp;gt;&amp;gt; &amp;#34;$log_file&amp;#34;
    fi
done

echo &amp;#34;操作完成，备份在 $backup_dir，日志见 $log_file&amp;#34;&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;find . -name &amp;#34;*.md&amp;#34; -type f -exec grep -l &amp;#34;lists: book&amp;#34; {} &amp;#43; | \
while read file; do
    if ! grep -q &amp;#34;Finished&amp;#34; &amp;#34;$file&amp;#34;; then
        # 确保文件末尾有空行（避免追加内容粘连）
        [ -n &amp;#34;$(tail -c 1 &amp;#34;$file&amp;#34;)&amp;#34; ] &amp;amp;&amp;amp; echo &amp;gt;&amp;gt; &amp;#34;$file&amp;#34;
        # 追加内容
        echo &amp;#34;- 2025-06-01: Finished&amp;#34; &amp;gt;&amp;gt; &amp;#34;$file&amp;#34;
        echo &amp;#34;已处理: $file&amp;#34;
    else
        echo &amp;#34;跳过: $file (已包含 Finished)&amp;#34;
    fi
done&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;find . -name &amp;#34;*.md&amp;#34; -type f -exec grep -L &amp;#34;Finished&amp;#34; {} &amp;#43; | while read file; do
    awk &amp;#39;BEGIN {done=0} /^---/ &amp;amp;&amp;amp; !done {print; print &amp;#34;- 2025-06-01: Finished&amp;#34;; done=1; next} 1&amp;#39; &amp;#34;$file&amp;#34; &amp;gt; tmp &amp;amp;&amp;amp; mv tmp &amp;#34;$file&amp;#34;
done&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;</description></item><item>
      <title>cli收集</title>
      <link>https://memex.keinmal.top/docs/dev/cli/</link>
      <pubDate>Thu, 23 Oct 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/cli/</guid>
      <description>收集一些cli的命令工具用法</description></item><item>
      <title>我的网站计划</title>
      <link>https://memex.keinmal.top/docs/dev/mysites/</link>
      <pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/mysites/</guid>
      <description>建站资料，技术和服务汇总</description></item><item>
      <title>薅羊毛cloudflare</title>
      <link>https://memex.keinmal.top/docs/dev/cloudflare/</link>
      <pubDate>Sun, 20 Jul 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/cloudflare/</guid>
      <description>&lt;h1 id=&#34;cloudflare的功能&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#cloudflare%e7%9a%84%e5%8a%9f%e8%83%bd&#34;&gt;#&lt;/a&gt;cloudflare的功能&lt;/h1&gt;
&lt;h2 id=&#34;安全防护&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e5%ae%89%e5%85%a8%e9%98%b2%e6%8a%a4&#34;&gt;##&lt;/a&gt;安全防护&lt;/h2&gt;
&lt;p&gt;Cloudflare 提供全球领先的安全解决方案，保护网站和用户免受攻击：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Web 应用防火墙 (WAF)&lt;/strong&gt;：实时阻止恶意流量，防止常见攻击如 SQL 注入和跨站脚本攻击。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DDoS 防护&lt;/strong&gt;：自动检测并缓解大规模分布式拒绝服务攻击。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bot 管理&lt;/strong&gt;：区分合法用户和恶意机器人，防止数据抓取或资源滥用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SSL/TLS 加密&lt;/strong&gt;：通过一键启用 HTTPS 提供网站加密，确保数据传输安全。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;流量管理&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e6%b5%81%e9%87%8f%e7%ae%a1%e7%90%86&#34;&gt;##&lt;/a&gt;流量管理&lt;/h2&gt;
&lt;p&gt;Cloudflare 的流量管理服务帮助用户优化请求路径，提高访问速度：&lt;/p&gt;</description></item><item>
      <title>caldav协议</title>
      <link>https://memex.keinmal.top/docs/dev/caldav/</link>
      <pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/caldav/</guid>
      <description>caldav是一个基于webdav的日历协议，可以用来同步日历数据。它是一个开放的标准，允许不同的日历应用程序和服务之间进行互操作。</description></item><item>
      <title>pake打包web应用</title>
      <link>https://memex.keinmal.top/docs/dev/pake/</link>
      <pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/pake/</guid>
      <description>&lt;h1 id=&#34;pake打包web应用&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#pake%e6%89%93%e5%8c%85web%e5%ba%94%e7%94%a8&#34;&gt;#&lt;/a&gt;pake打包web应用&lt;/h1&gt;
&lt;p&gt;
可以将web转化为桌面应用，比&lt;code&gt;electron&lt;/code&gt;更轻量。&lt;/p&gt;
&lt;h2 id=&#34;安装pake&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e5%ae%89%e8%a3%85pake&#34;&gt;##&lt;/a&gt;安装pake&lt;/h2&gt;
&lt;p&gt;用户级安装：&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;npm -g install pake-cli&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;需要&lt;code&gt;rust&lt;/code&gt;等工具链&lt;/p&gt;
&lt;h2 id=&#34;打包web应用&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e6%89%93%e5%8c%85web%e5%ba%94%e7%94%a8&#34;&gt;##&lt;/a&gt;打包web应用&lt;/h2&gt;
&lt;p&gt;例如&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;pake chat.deepseek.com --name deepseek --width 1080 --height 1920 --show-system-tray --icon 512x512-RGBA.png&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;要注意的是分辨率设置，以及icon格式为512x512的png，似乎必须是&lt;code&gt;RGBA&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;会得到&lt;code&gt;deepseek.deb&lt;/code&gt;，内部结构为&lt;/p&gt;</description></item></channel>
</rss>
