<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>lyfeyaj (Felix Liu)</title>
    <link>https://ruby-china.org/lyfeyaj</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>介绍一款小程序增强开发工具 - EWA</title>
      <description>&lt;h2 id="EWA (微信小程序增强开发工具)"&gt;EWA (微信小程序增强开发工具)&lt;/h2&gt;
&lt;p&gt;Enhanced Wechat App Development Toolkit (微信小程序增强开发工具)&lt;/p&gt;

&lt;p&gt;项目地址：&lt;a href="https://github.com/lyfeyaj/ewa" rel="nofollow" target="_blank"&gt;https://github.com/lyfeyaj/ewa&lt;/a&gt;，欢迎试用 ~&lt;/p&gt;
&lt;h2 id="为什么开发这个工具？"&gt;为什么开发这个工具？&lt;/h2&gt;
&lt;p&gt;厌倦了不停的对比 &lt;a href="https://github.com/Tencent/wepy" rel="nofollow" target="_blank" title=""&gt;wepy&lt;/a&gt; 或者 &lt;a href="https://github.com/Meituan-Dianping/mpvue" rel="nofollow" target="_blank" title=""&gt;mpvue&lt;/a&gt; 的特性，间歇性的踩雷，以及 &lt;code&gt;code once, run everywhere&lt;/code&gt; 的幻想。只想给小程序开发插上效率的翅膀 ~&lt;/p&gt;
&lt;h2 id="功能特性"&gt;功能特性&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;async/await 支持&lt;/li&gt;
&lt;li&gt;Javascript ES2017 语法&lt;/li&gt;
&lt;li&gt;原生小程序所有功能&lt;/li&gt;
&lt;li&gt;微信接口 Promise 化&lt;/li&gt;
&lt;li&gt;支持安装 NPM 包&lt;/li&gt;
&lt;li&gt;支持 SCSS 以及 小于 16k 的 background-image&lt;/li&gt;
&lt;li&gt;支持 source map, 方便调试&lt;/li&gt;
&lt;li&gt;添加新页面或新组件无需重启编译&lt;/li&gt;
&lt;li&gt;允许自定义编译流程&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;更多特性正在赶来 ... 敬请期待 👇&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LESS 支持&lt;/li&gt;
&lt;li&gt;可跨项目复用的小程序组件或页面（通过 NPM 包管理）&lt;/li&gt;
&lt;li&gt;Redux 支持&lt;/li&gt;
&lt;li&gt;Mixin 支持&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="安装"&gt;安装&lt;/h2&gt;
&lt;p&gt;需要 node 版本 &amp;gt;= 8&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-g&lt;/span&gt; ewa-cli 或者 yarn global add ewa-cli
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="如何使用"&gt;如何使用&lt;/h2&gt;&lt;h3 id="创建新项目"&gt;创建新项目&lt;/h3&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;ewa new your_project_name
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="集成到现有小程序项目，仅支持小程序原生开发项目转换"&gt;集成到现有小程序项目，仅支持小程序原生开发项目转换&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;注意：使用此方法，请务必对项目代码做好备份！！！&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;your_project_dir &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ewa init
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="启动"&gt;启动&lt;/h3&gt;
&lt;p&gt;运行 &lt;code&gt;npm start&lt;/code&gt; 即可启动实时编译&lt;/p&gt;

&lt;p&gt;运行 &lt;code&gt;npm run build&lt;/code&gt; 即可编译线上版本（相比实时编译而言，去除了 source map 并增加了代码压缩混淆等，体积更小）&lt;/p&gt;

&lt;p&gt;上述命令运行成功后，可以看到本地多了个 &lt;code&gt;dist&lt;/code&gt; 目录，这个目录里就是生成的小程序相关代码。&lt;/p&gt;

&lt;p&gt;使用&lt;a href="https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/devtools.html" rel="nofollow" target="_blank" title=""&gt;微信开发者工具&lt;/a&gt;选择 &lt;code&gt;dist&lt;/code&gt; 目录打开，即可预览项目&lt;/p&gt;
&lt;h3 id="目录结构"&gt;目录结构&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;├── .ewa                         特殊占位目录，用于检查是否为 ewa 项目
├── dist                         小程序运行代码目录（该目录由ewa的start 或者 build指令自动编译生成，请不要直接修改该目录下的文件）
├── node_modules                 外部依赖库
├── src                          代码编写的目录（该目录为使用ewa后的开发目录）
│   ├── components               小程序组件目录
│   ├── pages                    小程序页面目录
│   │   ├── index
│   │   │   ├── index.js
│   │   │   ├── index.wxml
│   │   │   └── index.wxss
│   │   └── logs
│   │       ├── logs.js
│   │       ├── logs.json
│   │       ├── logs.wxml
│   │       └── logs.wxss
│   ├── templates                小程序模版目录
│   ├── utils
│   │   └── util.js
│   ├── app.js                   小程序入口文件
│   ├── app.json                 小程序全局配置文件
│   ├── app.wxss                 小程序全局样式文件
│   └── project.config.json      微信开发者工具小程序项目配置文件
├── ewa.config.js                ewa 配置文件
├── .gitignore
├── .eslintrc.js                 eslint 配置
└── package.json
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="微信接口 Promise 化"&gt;微信接口 Promise 化&lt;/h2&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;wx&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ewa&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nc"&gt;Page&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;onLoad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;wx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;request&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;http://your_api_endpoint&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="配置"&gt;配置&lt;/h2&gt;
&lt;p&gt;ewa 通过 &lt;code&gt;ewa.config.js&lt;/code&gt; 来支持个性化配置。如下所示：&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ewa.config.js&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// 公用代码库 (node_modules 打包生成的文件)名称，默认为 vendors.js&lt;/span&gt;
  &lt;span class="na"&gt;commonModuleName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;vendors.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

  &lt;span class="c1"&gt;// 通用模块匹配模式，默认为 /[\\/]node_modules[\\/]/&lt;/span&gt;
  &lt;span class="na"&gt;commonModulePattern&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;[\\/]&lt;/span&gt;&lt;span class="sr"&gt;node_modules&lt;/span&gt;&lt;span class="se"&gt;[\\/]&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

  &lt;span class="c1"&gt;// 是否简化路径，作用于 page 和 component，如 index/index.wxml=&amp;gt; index.wxml，默认为 false&lt;/span&gt;
  &lt;span class="na"&gt;simplifyPath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

  &lt;span class="c1"&gt;// 文件夹快捷引用&lt;/span&gt;
  &lt;span class="na"&gt;aliasDirs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;apis&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;assets&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;constants&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;utils&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;

  &lt;span class="c1"&gt;// 需要拷贝的文件类型&lt;/span&gt;
  &lt;span class="na"&gt;copyFileTypes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;jpeg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;jpg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;gif&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;svg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ico&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;

  &lt;span class="c1"&gt;// webpack loader 规则&lt;/span&gt;
  &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;

  &lt;span class="c1"&gt;// webpack 插件&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;

  &lt;span class="c1"&gt;// 嫌不够灵活？直接修改 webpack 配置&lt;/span&gt;
  &lt;span class="na"&gt;webpack&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="常见问题 &amp;amp; Tips"&gt;常见问题 &amp;amp; Tips&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;wxss 中可以直接编写 scss 样式代码&lt;/li&gt;
&lt;li&gt;可以使用 &lt;code&gt;@&lt;/code&gt; 来代替&lt;strong&gt;源代码根目录&lt;/strong&gt;来引入代码或样式，如 &lt;code&gt;const utils = require('@/utils/util')&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
      <author>lyfeyaj</author>
      <pubDate>Mon, 16 Jul 2018 20:20:06 +0800</pubDate>
      <link>https://ruby-china.org/topics/37171</link>
      <guid>https://ruby-china.org/topics/37171</guid>
    </item>
    <item>
      <title>一个处理短信发送及验证的 Gem - smart_sms</title>
      <description>&lt;p&gt;项目地址：&lt;a href="https://github.com/lyfeyaj/smart_sms" rel="nofollow" target="_blank"&gt;https://github.com/lyfeyaj/smart_sms&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;从公司项目中抽出来的 gem, 方便自己以后的项目使用，也希望能帮到大家。&lt;/p&gt;
&lt;h3 id="使用方法"&gt;使用方法&lt;/h3&gt;&lt;h5 id="结合 Rails 使用"&gt;结合 Rails 使用&lt;/h5&gt;
&lt;p&gt;在 &lt;code&gt;Gemfile&lt;/code&gt; 里面添加：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'smart_sms'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;bundle&lt;/span&gt;
&lt;span class="n"&gt;rails&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="n"&gt;smart_sms&lt;/span&gt;&lt;span class="ss"&gt;:config&lt;/span&gt;
&lt;span class="c1"&gt;# 配置一下api_key, `config/initializers/smart_sms_config.rb`&lt;/span&gt;
&lt;span class="no"&gt;SmartSMS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'your_api_key'&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# 在现有的 model 中声明 `has_sms_verification`&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;has_sms_verification&lt;/span&gt; &lt;span class="c1"&gt;# 默认使用字段 :phone, :verified_at, 可自定义指定, 例如, :mobile, :confirmed_at&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;于是&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# 发送短信验证码&lt;/span&gt;
&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deliver&lt;/span&gt; &lt;span class="c1"&gt;# 将会生成一个随机的验证码发送至手机&lt;/span&gt;

&lt;span class="c1"&gt;# 查询历史短信记录&lt;/span&gt;
&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;messages&lt;/span&gt;

&lt;span class="c1"&gt;# 查询是否已经验证&lt;/span&gt;
&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verified?&lt;/span&gt;

&lt;span class="c1"&gt;# 校验验证码&lt;/span&gt;
&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verify!&lt;/span&gt; &lt;span class="s1"&gt;'123456'&lt;/span&gt;

&lt;span class="c1"&gt;# 查询最新的一条有效短信记录&lt;/span&gt;
&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;latest_message&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h5 id="基本用法(不结合Rails)"&gt;基本用法 (不结合 Rails)&lt;/h5&gt;
&lt;p&gt;设置 api_key&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;SmartSMS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'your_api_key'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;发送短信&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;SmartSMS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deliver&lt;/span&gt; &lt;span class="mi"&gt;13522948742&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'SmartSMS WOW!'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="详细文档"&gt;详细文档&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/lyfeyaj/smart_sms" rel="nofollow" target="_blank"&gt;https://github.com/lyfeyaj/smart_sms&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="注"&gt;注&lt;/h3&gt;
&lt;p&gt;比较了很多家短信服务商，云片网络的服务比较完善，可以自定义短信模板，查询信息等，而且短信延迟很小，基本上 5s 左右能发送到手机。所以这个 gem 封装了云片网的所有短信功能，有兴趣的童鞋可以看下他们的&lt;a href="http://www.yunpian.com/api/howto.html" rel="nofollow" target="_blank" title=""&gt;API 文档&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;目前这个 gem 已经在公司项目的生产环境中，一切运行良好，放心使用 ^_^&lt;/p&gt;</description>
      <author>lyfeyaj</author>
      <pubDate>Thu, 08 May 2014 22:48:30 +0800</pubDate>
      <link>https://ruby-china.org/topics/19110</link>
      <guid>https://ruby-china.org/topics/19110</guid>
    </item>
    <item>
      <title>---</title>
      <description>&lt;hr&gt;</description>
      <author>lyfeyaj</author>
      <pubDate>Tue, 09 Jul 2013 11:09:00 +0800</pubDate>
      <link>https://ruby-china.org/topics/12368</link>
      <guid>https://ruby-china.org/topics/12368</guid>
    </item>
  </channel>
</rss>
