<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.5">Jekyll</generator><link href="https://thomasmental.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://thomasmental.github.io/" rel="alternate" type="text/html" /><updated>2024-07-29T02:55:10+00:00</updated><id>https://thomasmental.github.io/feed.xml</id><title type="html">Taochen’s Blog</title><subtitle>Personal blog built by Jekyll and GitHub Pages.</subtitle><entry><title type="html">关于CentOS中升级Python3.6到Python3.9</title><link href="https://thomasmental.github.io/2023/02/08/Bash-1/" rel="alternate" type="text/html" title="关于CentOS中升级Python3.6到Python3.9" /><published>2023-02-08T00:00:00+00:00</published><updated>2023-02-08T00:00:00+00:00</updated><id>https://thomasmental.github.io/2023/02/08/Bash-1</id><content type="html" xml:base="https://thomasmental.github.io/2023/02/08/Bash-1/"><![CDATA[<p>最近在自己的服务器中部署基于openai的公众号python脚本。<code class="language-plaintext highlighter-rouge">CentOS 7</code>以及<code class="language-plaintext highlighter-rouge">CentOS 8</code>中使用的是<code class="language-plaintext highlighter-rouge">Python3.6</code>。
由于openai对Python版本有一定需求，使用openais时我们需要用高版本的<code class="language-plaintext highlighter-rouge">Python3.9</code>。</p>

<h2 id="准备工作">准备工作</h2>

<p>首先ssh连接到远程服务器控制台。用下面代码做系统更新。</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo yum -y install epel-release
sudo yum -y update
</code></pre></div></div>

<p>用下面代码安装一些依赖项，对于安装<code class="language-plaintext highlighter-rouge">Python3.9</code>很重要</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo yum groupinstall "Development Tools" -y
sudo yum install openssl-devel libffi-devel bzip2-devel -y
</code></pre></div></div>

<p>检查下<code class="language-plaintext highlighter-rouge">gcc</code>安装情况</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ gcc --version
gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4)
</code></pre></div></div>

<h2 id="下载python39">下载Python3.9</h2>

<p>确保wget成功安装</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo yum install wget -y
</code></pre></div></div>

<p>使用wget下载<code class="language-plaintext highlighter-rouge">Python3.9</code>，并解压安装包进入文件夹</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>wget https://www.python.org/ftp/python/3.9.13/Python-3.9.13.tgz
tar xvf Python-3.9.13.tgz
cd Python-3.9*/
</code></pre></div></div>

<h2 id="安装python39">安装Python3.9</h2>

<p>在当前文件夹下执行代码来安装</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./configure --enable-loadable-sqlite-extensions --enable-optimizations
make
make install
</code></pre></div></div>

<p>安装完毕运行<code class="language-plaintext highlighter-rouge">python3.9</code>和<code class="language-plaintext highlighter-rouge">pip3.9</code>即可使用</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ python3.9 --version
Python 3.9.13
</code></pre></div></div>]]></content><author><name>Taochen</name></author><category term="Bash" /><summary type="html"><![CDATA[最近在自己的服务器中部署基于openai的公众号python脚本。CentOS 7以及CentOS 8中使用的是Python3.6。 由于openai对Python版本有一定需求，使用openais时我们需要用高版本的Python3.9。]]></summary></entry><entry><title type="html">JS 基础 - Regular Expression 正则表达式</title><link href="https://thomasmental.github.io/2021/08/23/Javascript-1/" rel="alternate" type="text/html" title="JS 基础 - Regular Expression 正则表达式" /><published>2021-08-23T00:00:00+00:00</published><updated>2021-08-23T00:00:00+00:00</updated><id>https://thomasmental.github.io/2021/08/23/Javascript-1</id><content type="html" xml:base="https://thomasmental.github.io/2021/08/23/Javascript-1/"><![CDATA[<p>介绍及总结 JS 正则表达式</p>

<h2 id="为什么使用正则表达式">为什么使用正则表达式</h2>

<p>使计算机能够根据正则表达式，检查字符串的规则，提取字符串中符合规则的内容。</p>

<h2 id="基础语法">基础语法</h2>

<h3 id="检查字符">检查字符</h3>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="kd">var</span> <span class="nx">reg</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span><span class="dl">"</span><span class="s2">a</span><span class="dl">"</span><span class="p">,</span><span class="dl">"</span><span class="s2">i</span><span class="dl">"</span><span class="p">);</span>
<span class="nx">reg</span> <span class="o">=</span> <span class="sr">/a/i</span><span class="p">;</span>

<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">reg</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="dl">"</span><span class="s2">abc</span><span class="dl">"</span><span class="p">));</span>

<span class="cm">/* 
test() 
    检查字符串是否符合正则表达式规则
    符合返回 true 
    反之 false
*/</span>

</code></pre></div></div>

<p>上面两个reg以不同方式创建，代表的都是检查字符串中是否有a。i代表匹配模式，忽略大小写。一种采取构造函数较为灵活，而第二种使用字面量的方式更为简单。</p>

<h3 id="或-or">或 or</h3>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="nx">reg</span> <span class="o">=</span> <span class="sr">/a|b|c/</span><span class="p">;</span> 
<span class="nx">reg</span> <span class="o">=</span> <span class="sr">/</span><span class="se">[</span><span class="sr">abc</span><span class="se">]</span><span class="sr">/</span><span class="p">;</span>
<span class="cm">/*
检查是否含有a或b或c
*/</span>

</code></pre></div></div>

<p>如果是一大串字符，采取以下写法</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="nx">reg</span> <span class="o">=</span> <span class="sr">/</span><span class="se">[</span><span class="sr">a-z</span><span class="se">]</span><span class="sr">/</span><span class="p">;</span> 
<span class="nx">reg</span> <span class="o">=</span> <span class="sr">/</span><span class="se">[</span><span class="sr">A-Z</span><span class="se">]</span><span class="sr">/</span><span class="p">;</span>
<span class="cm">/*
检查是否含有a到z所有字母 大小写版本
*/</span>

</code></pre></div></div>]]></content><author><name>Taochen</name></author><category term="Javascript" /><summary type="html"><![CDATA[介绍及总结 JS 正则表达式]]></summary></entry><entry><title type="html">关于第一次coop - WE Accelerate</title><link href="https://thomasmental.github.io/2021/08/13/%E9%9A%8F%E7%AC%94-1/" rel="alternate" type="text/html" title="关于第一次coop - WE Accelerate" /><published>2021-08-13T00:00:00+00:00</published><updated>2021-08-13T00:00:00+00:00</updated><id>https://thomasmental.github.io/2021/08/13/%E9%9A%8F%E7%AC%94-1</id><content type="html" xml:base="https://thomasmental.github.io/2021/08/13/%E9%9A%8F%E7%AC%94-1/"><![CDATA[<h2 id="简单的记录">简单的记录</h2>

<p>8月13日，阴天，结束了第一次coop。</p>

<p>第一次 coop, 学校的 WE Accelerate 项目，WE 选了 Microsoft stream。</p>

<p>花了一个月看 Microsoft 的教材然后考两场试。内容都是Azure和AI理论知识，不考操作。这段时间仅有的操作大概是教材上的命令行，感觉有点欠缺，虽然这方面也就查一下就能操作。</p>

<p>关于项目部分，我选择的是 AltaML - Health Canada。要求不高，内容主要偏思考，没有编程经验的人完全可以胜任这份工作。花了一个月，和小组成员拖着模块建了个模型，做了个演讲。</p>

<p>当然，虽然有一些吐槽的点，结果还是不错的。</p>

<p>可能是我第一次coop，对工作不太了解，所以吐槽了点东西吧。因为我本身比较喜欢更多的代码内容。</p>

<p>希望下学期能找个好工作吧。。</p>]]></content><author><name>Taochen</name></author><category term="随笔" /><summary type="html"><![CDATA[简单的记录]]></summary></entry><entry><title type="html">React 基础 - Component</title><link href="https://thomasmental.github.io/2021/05/21/React-2/" rel="alternate" type="text/html" title="React 基础 - Component" /><published>2021-05-21T00:00:00+00:00</published><updated>2021-05-21T00:00:00+00:00</updated><id>https://thomasmental.github.io/2021/05/21/React-2</id><content type="html" xml:base="https://thomasmental.github.io/2021/05/21/React-2/"><![CDATA[<p>React Components 作用可以类似于 JS 的函数和类，但是可以通过<code class="language-plaintext highlighter-rouge">render()</code>函数直接返回HTML代码块。</p>

<h2 id="create-class-创建类">Create Class 创建类</h2>

<p>在我们的源代码里面，我们已经有一个 App 类。大致是这样的：</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nx">App</span> <span class="kd">extends</span> <span class="nx">Component</span> <span class="p">{</span>
  <span class="nx">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="p">(</span>
        <span class="cm">/* html code */</span>
    <span class="p">);</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p>现在我们创建一个名为 Car 的类，然后将内容返回到 App 类中，如下所示：</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nx">Car</span> <span class="kd">extends</span> <span class="nx">Component</span> <span class="p">{</span>
  <span class="nx">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="p">(</span>
        <span class="o">&lt;</span><span class="nx">h1</span><span class="o">&gt;</span><span class="nx">I</span> <span class="nx">am</span> <span class="nx">a</span> <span class="nx">Car</span><span class="o">!&lt;</span><span class="sr">/h1</span><span class="err">&gt;
</span>    <span class="p">);</span>
  <span class="p">}</span>
<span class="p">}</span>

<span class="kd">class</span> <span class="nx">App</span> <span class="kd">extends</span> <span class="nx">Component</span> <span class="p">{</span>
  <span class="nx">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="p">(</span>
        <span class="o">&lt;</span><span class="nx">div</span> <span class="kd">class</span><span class="o">=</span><span class="dl">"</span><span class="s2">App</span><span class="dl">"</span><span class="o">&gt;</span>
            <span class="o">&lt;</span><span class="nx">Car</span> <span class="o">/&gt;</span>  
        <span class="o">&lt;</span><span class="sr">/div</span><span class="err">&gt;
</span>    <span class="p">);</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p>上述代码返回的 HTML 代码等同于</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"App"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;h1&gt;</span>I am a Car<span class="nt">&lt;/h1&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</code></pre></div></div>

<h2 id="构造器-constructor">构造器 Constructor</h2>

<p>在讲构造器之前我们先理解一下<code class="language-plaintext highlighter-rouge">state</code>。<code class="language-plaintext highlighter-rouge">state</code>是一个存属性的对象。例如在创建的 Car 类中，加入这样的一段代码</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nx">Car</span> <span class="kd">extends</span> <span class="nx">Component</span> <span class="p">{</span>
  <span class="kd">constructor</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">super</span><span class="p">();</span>
    <span class="k">this</span><span class="p">.</span><span class="nx">state</span> <span class="o">=</span> <span class="p">{</span>
        <span class="na">color</span><span class="p">:</span> <span class="dl">"</span><span class="s2">red</span><span class="dl">"</span><span class="p">,</span>
    <span class="p">};</span>
  <span class="p">}</span>

  <span class="nx">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="p">(</span>
        <span class="o">&lt;</span><span class="nx">h1</span><span class="o">&gt;</span><span class="nx">I</span> <span class="nx">am</span> <span class="nx">a</span> <span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">state</span><span class="p">.</span><span class="nx">color</span><span class="p">}</span> <span class="nx">Car</span><span class="o">!&lt;</span><span class="sr">/h1</span><span class="err">&gt;
</span>    <span class="p">);</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p>返回的 HTML 代码等同于</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;h1&gt;</span>I am a red Car!<span class="nt">&lt;/h1&gt;</span>
</code></pre></div></div>

<p>在上面的代码中，我们加入了<code class="language-plaintext highlighter-rouge">state</code>属性，设置 color 为 red。在调用时，我们使用<code class="language-plaintext highlighter-rouge">{ this.state.color }</code>来获取这个属性。</p>

<h2 id="change-state-改变属性">Change State 改变属性</h2>

<p>我们可以添加函数来改变属性，比如改变 color，我们就在类里加上下面的函数</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">changeColor</span> <span class="o">=</span> <span class="p">()</span> <span class="o">=&gt;</span> <span class="p">{</span>
    <span class="k">this</span><span class="p">.</span><span class="nx">setState</span><span class="p">({</span><span class="na">color</span><span class="p">:</span> <span class="dl">"</span><span class="s2">blue</span><span class="dl">"</span><span class="p">});</span>
<span class="p">}</span>
</code></pre></div></div>

<p>然后添加一个按钮调用这个函数，将<code class="language-plaintext highlighter-rouge">render()</code>写为</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="p">(</span>
        <span class="o">&lt;</span><span class="nx">div</span><span class="o">&gt;</span>
            <span class="o">&lt;</span><span class="nx">h1</span><span class="o">&gt;</span><span class="nx">I</span> <span class="nx">am</span> <span class="nx">a</span> <span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">state</span><span class="p">.</span><span class="nx">color</span><span class="p">}</span> <span class="nx">Car</span><span class="o">!&lt;</span><span class="sr">/h1</span><span class="err">&gt;
</span>            <span class="o">&lt;</span><span class="nx">button</span> <span class="nx">onClick</span><span class="o">=</span><span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">changeColor</span><span class="p">}</span><span class="o">&gt;</span><span class="nx">Change</span> <span class="nx">Color</span><span class="o">&lt;</span><span class="sr">/button&gt;</span><span class="err"> 
</span>        <span class="o">&lt;</span><span class="sr">/div</span><span class="err">&gt;
</span>    <span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>

<p>点击按钮，标题里的 red 变为 blue。</p>

<h2 id="props">Props</h2>

<p><code class="language-plaintext highlighter-rouge">Props</code>用于传递属性给 Component，比如我们在 App 类里这样写</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nx">App</span> <span class="kd">extends</span> <span class="nx">Component</span> <span class="p">{</span>
  <span class="nx">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="p">(</span>
        <span class="o">&lt;</span><span class="nx">div</span> <span class="kd">class</span><span class="o">=</span><span class="dl">"</span><span class="s2">App</span><span class="dl">"</span><span class="o">&gt;</span>
            <span class="o">&lt;</span><span class="nx">Car</span> <span class="nx">brand</span><span class="o">=</span><span class="dl">"</span><span class="s2">Ford</span><span class="dl">"</span><span class="o">/&gt;</span>
        <span class="o">&lt;</span><span class="sr">/div</span><span class="err">&gt;
</span>    <span class="p">);</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p>这段代码中的 Car 有了一个属性叫做 brand，数值为 Ford。这样我们就能在 Car 中调用这个函数，例如在<code class="language-plaintext highlighter-rouge">render()</code>中写</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="p">(</span>
        <span class="o">&lt;</span><span class="nx">div</span><span class="o">&gt;</span>
            <span class="o">&lt;</span><span class="nx">h1</span><span class="o">&gt;</span><span class="nx">I</span> <span class="nx">am</span> <span class="nx">a</span> <span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">props</span><span class="p">.</span><span class="nx">brand</span><span class="p">}</span> <span class="nx">Car</span><span class="o">!&lt;</span><span class="sr">/h1</span><span class="err">&gt;
</span>        <span class="o">&lt;</span><span class="sr">/div</span><span class="err">&gt;
</span>    <span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>

<p>这样返回的HTML代码就代表了</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;div&gt;</span>
    <span class="nt">&lt;h1&gt;</span>I am a Ford Car!<span class="nt">&lt;/h1&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</code></pre></div></div>

<p>和<code class="language-plaintext highlighter-rouge">state</code>不同的是，<code class="language-plaintext highlighter-rouge">props</code>是无法改变的属性（试图改变<code class="language-plaintext highlighter-rouge">props</code>会报错）</p>]]></content><author><name>Taochen</name></author><category term="Javascript" /><summary type="html"><![CDATA[React Components 作用可以类似于 JS 的函数和类，但是可以通过render()函数直接返回HTML代码块。]]></summary></entry><entry><title type="html">React 开篇 - 创建一个网页</title><link href="https://thomasmental.github.io/2021/05/19/React-1/" rel="alternate" type="text/html" title="React 开篇 - 创建一个网页" /><published>2021-05-19T00:00:00+00:00</published><updated>2021-05-19T00:00:00+00:00</updated><id>https://thomasmental.github.io/2021/05/19/React-1</id><content type="html" xml:base="https://thomasmental.github.io/2021/05/19/React-1/"><![CDATA[<p>请在看完 JS 的基础语法(指学到DOM)后，再读这篇文章。</p>

<h2 id="react-intro-介绍">React Intro 介绍</h2>

<p>简单来说，React 是JS的一个库，是一个做 UI的工具。</p>

<h3 id="工作原理">工作原理</h3>

<p>React 的工作原理是在内存中创建一个虚拟的 DOM，在这个虚拟 DOM 中做完操作，再去更改浏览器 DOM。在使用时，React 可以直接写入 HTML。</p>

<h2 id="prerequisite-关于环境">Prerequisite 关于环境</h2>

<p>在使用 React 前，首先先要安装 NPM 和 Node.js。不多说，直接下载链接扔在这</p>

<p><a href="https://nodejs.org/en/download/">NPM 和 Node.js 下载</a></p>

<h2 id="hello-world-第一个程序">Hello World 第一个程序</h2>

<p>如果做只是测试的话，我们可以直接写在 HTML 文件中</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;!DOCTYPE html&gt;</span>
<span class="nt">&lt;html&gt;</span>
<span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"https://unpkg.com/react@16/umd/react.production.min.js"</span><span class="nt">&gt;&lt;/script&gt;</span>
<span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"</span><span class="nt">&gt;&lt;/script&gt;</span>
<span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"https://unpkg.com/babel-standalone@6.15.0/babel.min.js"</span><span class="nt">&gt;&lt;/script&gt;</span>
<span class="nt">&lt;body&gt;</span>
  
<span class="nt">&lt;div</span> <span class="na">id=</span><span class="s">"mydiv"</span><span class="nt">&gt;&lt;/div&gt;</span>

<span class="nt">&lt;script </span><span class="na">type=</span><span class="s">"text/babel"</span><span class="nt">&gt;</span>
<span class="kd">class</span> <span class="nx">Hello</span> <span class="kd">extends</span> <span class="nx">React</span><span class="p">.</span><span class="nx">Component</span> <span class="p">{</span>
  <span class="nx">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="o">&lt;</span><span class="nx">h1</span><span class="o">&gt;</span><span class="nx">Hello</span> <span class="nx">World</span><span class="o">!&lt;</span><span class="sr">/h1</span><span class="err">&gt;
</span>  <span class="p">}</span>
<span class="p">}</span>

<span class="nx">ReactDOM</span><span class="p">.</span><span class="nx">render</span><span class="p">(</span><span class="o">&lt;</span><span class="nx">Hello</span><span class="o">/&gt;</span><span class="p">,</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="dl">'</span><span class="s1">mydiv</span><span class="dl">'</span><span class="p">))</span>
<span class="nt">&lt;/script&gt;</span>

<span class="nt">&lt;/body&gt;</span>
<span class="nt">&lt;/html&gt;</span>
</code></pre></div></div>

<p>body 段的代码运行结果等同于</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;div</span> <span class="na">id=</span><span class="s">"mydiv"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;h1&gt;</span>Hello World!<span class="nt">&lt;/h1&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</code></pre></div></div>

<p>但是在写的时候最好建立 React 环境。运行下列命令</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm install -g create-react-app 
npx create-react-app firstapp
</code></pre></div></div>

<p>第二行命令建立了一个叫<code class="language-plaintext highlighter-rouge">firstapp</code>的文件夹。用下列代码可以运行</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd firstapp
npm start
</code></pre></div></div>

<p>就可以看到初始的界面。下一步我们可以尝试更改<code class="language-plaintext highlighter-rouge">src/App.js</code>来创建自己的网页。例如将 <code class="language-plaintext highlighter-rouge">App.js</code>改成如下的代码</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">import</span> <span class="nx">React</span><span class="p">,</span> <span class="p">{</span> <span class="nx">Component</span> <span class="p">}</span> <span class="k">from</span> <span class="dl">'</span><span class="s1">react</span><span class="dl">'</span><span class="p">;</span>
<span class="k">import</span> <span class="dl">'</span><span class="s1">./App.css</span><span class="dl">'</span>

<span class="kd">class</span> <span class="nx">App</span> <span class="kd">extends</span> <span class="nx">Component</span> <span class="p">{</span>
  <span class="nx">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">return</span> <span class="p">(</span>
      <span class="o">&lt;</span><span class="nx">div</span> <span class="nx">className</span><span class="o">=</span><span class="dl">"</span><span class="s2">App</span><span class="dl">"</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="nx">h1</span><span class="o">&gt;</span><span class="nx">Hello</span> <span class="nx">World</span><span class="o">!&lt;</span><span class="sr">/h1</span><span class="err">&gt;
</span>      <span class="o">&lt;</span><span class="sr">/div</span><span class="err">&gt;
</span>    <span class="p">);</span>
  <span class="p">}</span>
<span class="p">}</span>

<span class="k">export</span> <span class="k">default</span> <span class="nx">App</span><span class="p">;</span>
</code></pre></div></div>

<p>我们将得到一个只有一个 Hello World 的网页。</p>]]></content><author><name>Taochen</name></author><category term="Javascript" /><summary type="html"><![CDATA[请在看完 JS 的基础语法(指学到DOM)后，再读这篇文章。]]></summary></entry><entry><title type="html">Django 入门</title><link href="https://thomasmental.github.io/2021/05/10/Django-1/" rel="alternate" type="text/html" title="Django 入门" /><published>2021-05-10T00:00:00+00:00</published><updated>2021-05-10T00:00:00+00:00</updated><id>https://thomasmental.github.io/2021/05/10/Django-1</id><content type="html" xml:base="https://thomasmental.github.io/2021/05/10/Django-1/"><![CDATA[<p>静态博客的搭建其实写的也差不多（好吧博客搭建是差不多，JS啥的压根还没讲，本人也还在学习中）。写点最近在看的东西，关于 Django 开发自己的网页应用。</p>

<p>首先，Django 是一个<strong>Web框架</strong>，用于开发交互式网站的工具。Django 能够响应网页请求，同时管理用户及读写数据库。</p>

<p>再说说为什么使用 Django。Django 从来不是一个主流的框架，Java 才是 Web 的大头。但是，这玩意上手快，写的快，封装的东西开箱即用，python 的库有多方便不用我多说吧。当然，这东西限于小项目，和 Flask 相比也不太灵活（完成任务 Django 合适，加深理解 Flask 更好），当然尝试一下没什么问题。</p>

<p>废话不多说，直接上手。</p>

<h2 id="建立项目">建立项目</h2>

<h3 id="激活虚拟环境">激活虚拟环境</h3>

<p>Python安装不提。首先我们先创建虚拟工作环境。新建文件夹，切换到文件夹目录下，打开 Git Bash 然后执行下列命令</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ python -m venv env
</code></pre></div></div>

<p>建立完之后我们得到一个文件夹<code class="language-plaintext highlighter-rouge">env</code>，找到 activate 的位置并激活。运行如下</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ source env/scripts/activate
(my_project)
</code></pre></div></div>

<p>括号代表的是环境处于激活状态，<strong>后面所有的操作都请保持激活</strong>，环境名将包含于括号内。激活环境之后就可以安装 Django 了。</p>

<h3 id="安装-django">安装 Django</h3>

<p>然后运行下列命令</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ pip install Django
</code></pre></div></div>

<p>显示<code class="language-plaintext highlighter-rouge">Successfully installed Django</code>安装成功。</p>

<h3 id="django-创建项目">Django 创建项目</h3>

<p>运行下列命令</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ django-admin startproject project .
</code></pre></div></div>

<p>得到大致如下的文件夹目录</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.
├─ env
├─ project
│  ├─ __init__.py
│  ├─ asgi.py
│  ├─ settings.py
│  ├─ urls.py
│  └─ wsgi.py
└─ manage.py
</code></pre></div></div>

<h3 id="创建数据库">创建数据库</h3>

<p>运行下列命令</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ python manage.py migrate
</code></pre></div></div>

<p>当前文件夹下会新增<code class="language-plaintext highlighter-rouge">db.sqlite3</code>文件。SQLite是使用单个文件的数据库，适合简单的应用程序。</p>

<h2 id="查看项目">查看项目</h2>

<p>运行下列命令</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ python manage.py runserver
</code></pre></div></div>

<p>然后访问网页<a href="http://127.0.0.1:8000/">http://127.0.0.1:8000/</a>，加载出来会显示你成功建立项目。</p>

<h2 id="后续">后续</h2>

<p>我学框架的一个原因是因为 Jekyll 是一个静态博客系统，所以我后面是打算学着建一个带注册登录功能的个人博客。前面我可能会先学着写个 calculator 和 timetable 之类的东西。当然在我学成前我并不打算租服务器和域名。可能我会服务器白嫖GCP的，毕竟三百刀一年试用，我可以多注册点邮箱去嫖(๑‾ ꇴ ‾๑)，而且这样域名就不用备案啦哈哈哈。</p>

<h2 id="传送门">传送门</h2>

<p>下一章: Django 应用</p>]]></content><author><name>Taochen</name></author><category term="Django" /><summary type="html"><![CDATA[静态博客的搭建其实写的也差不多（好吧博客搭建是差不多，JS啥的压根还没讲，本人也还在学习中）。写点最近在看的东西，关于 Django 开发自己的网页应用。]]></summary></entry><entry><title type="html">慕课 HTML+CSS 教程</title><link href="https://thomasmental.github.io/2021/04/30/HTML-1/" rel="alternate" type="text/html" title="慕课 HTML+CSS 教程" /><published>2021-04-30T00:00:00+00:00</published><updated>2021-04-30T00:00:00+00:00</updated><id>https://thomasmental.github.io/2021/04/30/HTML-1</id><content type="html" xml:base="https://thomasmental.github.io/2021/04/30/HTML-1/"><![CDATA[]]></content><author><name></name></author><category term="HTML" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Jekyll Blog 个人博客搭建(3)</title><link href="https://thomasmental.github.io/2021/04/25/Jekyll-3/" rel="alternate" type="text/html" title="Jekyll Blog 个人博客搭建(3)" /><published>2021-04-25T00:00:00+00:00</published><updated>2021-04-25T00:00:00+00:00</updated><id>https://thomasmental.github.io/2021/04/25/Jekyll-3</id><content type="html" xml:base="https://thomasmental.github.io/2021/04/25/Jekyll-3/"><![CDATA[<p>本来想写点关于 Liquid，想了想还是先写自己碰到的有点问题。所以这篇文章就提一点关于在 Jekyll 里添加评论系统的事。作为一个纯静态博客，虽然不能评论，但是我们有不少能用第三方的评论系统。不过，<strong>这些评论系统各种问题能把人折腾死！！！</strong>本文写一下问题和解决方案。</p>

<h2 id="各类选项">各类选项</h2>

<ul>
  <li><strong>Disqus</strong>: 优秀的评论系统，开箱即用，然而被墙了。</li>
  <li><strong>Gitment</strong>: 得 GitHub 账号登录，不是程序员的人没法评论，而且听说在国内也凉了</li>
  <li><strong>Duoshuo 多说</strong>: 已经关闭了，网上有不少文章写的这个，别掉坑里了</li>
  <li><strong>畅言</strong>: 博客要备案</li>
  <li><strong>Gitalk</strong>: 同 Gitment</li>
</ul>

<p>类似还有很多，给我整自闭了。</p>

<h2 id="解决方案">解决方案</h2>

<p>最终决定使用 Valine。免费开源且不被墙，这作者简直是国内评论系统的救星（T_T）。这里附上官网链接</p>

<p>Valine官网教程：<a href="https://valine.js.org/en/quickstart.html">https://valine.js.org/en/quickstart.html</a></p>

<h2 id="操作步骤">操作步骤</h2>

<p>总共操作就以下两步</p>

<ul>
  <li>配置 LeanCloud</li>
  <li>添加代码</li>
</ul>

<h3 id="配置-leancloud">配置 LeanCloud</h3>

<p>首先我们<a href="https://leancloud.cn/dashboard/login.html#/signup">注册LeanCloud</a></p>

<p>然后创建一个<a href="https://leancloud.cn/dashboard/applist.html#/newapp">应用</a>。创建完成点进去选择左下角<code class="language-plaintext highlighter-rouge">设置</code>&gt;<code class="language-plaintext highlighter-rouge">应用Key</code>，就能看到你的 AppID 以及 AppKey 了。</p>

<h3 id="添加代码">添加代码</h3>

<p>首先打开<code class="language-plaintext highlighter-rouge">_config.yml</code>，在里面添加</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">valine</span><span class="pi">:</span> 
  <span class="na">enable</span><span class="pi">:</span> <span class="no">true</span>
  <span class="na">appid</span><span class="pi">:</span> <span class="s">your-appid</span>
  <span class="na">appkey</span><span class="pi">:</span> <span class="s">your-appkey</span>
  <span class="na">enableQQ</span><span class="pi">:</span> <span class="no">true</span>
</code></pre></div></div>

<p>这里 your-appid 和 your-appkey 替换成 LeanCloud 上的那两个。</p>

<p>然后打开<code class="language-plaintext highlighter-rouge">comments.html</code>这个专门放评论系统的文件，然后在下面添加</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>{%- if site.valine.enable -%}
<span class="c">&lt;!--LeanCloud 操作库:--&gt;</span>
<span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"//cdn1.lncld.net/static/js/3.0.4/av-min.js"</span><span class="nt">&gt;&lt;/script&gt;</span>
<span class="c">&lt;!--Valine 代码库:--&gt;</span>
<span class="nt">&lt;script </span><span class="na">src=</span><span class="s">'//unpkg.com/valine/dist/Valine.min.js'</span><span class="nt">&gt;&lt;/script&gt;</span>
<span class="nt">&lt;div</span> <span class="na">id=</span><span class="s">"vcomment"</span><span class="nt">&gt;&lt;/div&gt;</span>
    <span class="nt">&lt;script&gt;</span>
        <span class="kd">var</span> <span class="nx">valine</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Valine</span><span class="p">();</span>
        <span class="nx">valine</span><span class="p">.</span><span class="nx">init</span><span class="p">({</span>
            <span class="na">el</span><span class="p">:</span> <span class="dl">'</span><span class="s1">#vcomment</span><span class="dl">'</span> <span class="p">,</span>
            <span class="na">appId</span><span class="p">:</span>  <span class="dl">'</span><span class="s1">{{ site.valine.appid }}</span><span class="dl">'</span><span class="p">,</span> 
            <span class="na">appKey</span><span class="p">:</span>  <span class="dl">'</span><span class="s1">{{ site.valine.appkey }}</span><span class="dl">'</span><span class="p">,</span> 
            <span class="na">path</span><span class="p">:</span>  <span class="dl">'</span><span class="s1">{{ page.url }}</span><span class="dl">'</span><span class="p">,</span> 
            <span class="na">enableqq</span><span class="p">:</span>  <span class="dl">'</span><span class="s1">{{ site.valine.enableQQ }}</span><span class="dl">'</span> 
        <span class="p">});</span>
    <span class="nt">&lt;/script&gt;</span>
{%- endif -%}
</code></pre></div></div>

<p>这样你的评论系统就配置完成了。所有的评论都会存在 LeanCloud 的结构化数据中。对 Valine 评论系统后续开发感兴趣可以看看 <a href="https://github.com/zhaojun1998/Valine-Admin">Valine-Admin</a>，这里不多讲述。</p>]]></content><author><name>Taochen</name></author><category term="Jekyll" /><summary type="html"><![CDATA[本来想写点关于 Liquid，想了想还是先写自己碰到的有点问题。所以这篇文章就提一点关于在 Jekyll 里添加评论系统的事。作为一个纯静态博客，虽然不能评论，但是我们有不少能用第三方的评论系统。不过，这些评论系统各种问题能把人折腾死！！！本文写一下问题和解决方案。]]></summary></entry><entry><title type="html">Jekyll Blog 个人博客搭建(2)</title><link href="https://thomasmental.github.io/2021/04/20/Jekyll-2/" rel="alternate" type="text/html" title="Jekyll Blog 个人博客搭建(2)" /><published>2021-04-20T00:00:00+00:00</published><updated>2021-04-20T00:00:00+00:00</updated><id>https://thomasmental.github.io/2021/04/20/Jekyll-2</id><content type="html" xml:base="https://thomasmental.github.io/2021/04/20/Jekyll-2/"><![CDATA[<p>在上一章里面我们利用 GitHub Pages 和 Jekyll 初步生成这个博客。这一章简单讲讲博客文件夹的结构，同时简单提几句网页设计的构思。然后介绍一下如何在博客里添加自己的内容，当然官方文档里写的都挺清楚，我这里更多是重复以及附加的一点解释。没读过前文的可以去看一下上一章。</p>

<p>前文链接: <a href="https://thomasmental.github.io/2021/04/16/Jekyll-1/">Jekyll Blog 个人博客搭建(1)</a>。</p>

<p>官方文档链接: <a href="https://jekyllrb.com/docs">https://jekyllrb.com/docs</a></p>

<h2 id="directory-structure-文件夹结构">Directory Structure 文件夹结构</h2>

<p>刚建立博客，我们目前的文件夹目录应该为:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.
├─ _posts
│  ├─ 2021-04-17-welcome-to-jekyll.markdown
├─ .gitignore.txt
├─ _config.yml
├─ 404.html
├─ about.markdown
├─ Gemfile
├─ Gemfile.lock
└─ index.markdown
</code></pre></div></div>

<p>在自己设计博客一般会用到以下几个文件夹，<strong>如果准备套模板可以忽略这些内容，这里建议锻炼一下自己的前端三件套(html, css, javascript)的能力</strong></p>

<h3 id="layouts">layouts</h3>

<p><code class="language-plaintext highlighter-rouge">_layouts</code> 文件夹存放作用于帖子的模板，或者说是布局文件。建静态博客一般存这四个模板</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.
├─ home.html    # 主页模板
├─ page.html    # 页面模板
├─ post.html    # 帖子模板
└─ default.html # 自定义模板
</code></pre></div></div>

<h3 id="includes">includes</h3>

<p><code class="language-plaintext highlighter-rouge">_includes</code> 文件夹存放模板文件的组合部分，例如 footer, header 等，用于注入到模板中</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.
├─ head.html      # 头文件
├─ header.html    # 页面顶部
├─ footer.html    # 页面底部
└─ comments.html  # 评论区
</code></pre></div></div>

<h3 id="sass-与-assets">sass 与 assets</h3>

<p>这里两个文件夹放在一起说是因为都是存放 scss 文件的地方，也就是样式表。<code class="language-plaintext highlighter-rouge">assets</code>通常存放一个主文件，用于 import 其他位于<code class="language-plaintext highlighter-rouge">_sass</code>文件夹中的样式表文件。当然全写在主文件不用<code class="language-plaintext highlighter-rouge">_sass</code>文件夹也可以，就是很累咯。建议是给对应部分建对应的样式表文件，例如给 header.html 写个 _header.scss，footer.html 写个 _footer.scss。</p>

<h3 id="js">js</h3>

<p>存放 javascript 文件，可以在页面添加一些好玩的效果，这个大坑后面慢慢填 (ง `ω´)ง</p>

<h2 id="add-content-添加内容">Add Content 添加内容</h2>

<h3 id="add-pages-添加页面">Add pages 添加页面</h3>

<p>我们添加一个名为 _pages 的文件夹，用于存放我们的页面文件，例如 categories, about等等。这些文件可以是 html 或者 markdown 文件，如下图所示</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.
├─ about.md
├─ index.html
├─ categories.html
└─ tags.html
</code></pre></div></div>

<p>通过 Jekyll 我们可以在这些文件的开头添加 YAML frontmatter 来指定你页面的路径和标题等。例如你希望你的 categories.html 展示在<code class="language-plaintext highlighter-rouge">user.github.io/categories</code>，我们可以文件的开头写:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>---
layout: page
title: Categories
permalink: /category/
type: page
---
</code></pre></div></div>

<p>然后在下面添加页面的内容。</p>

<h3 id="add-posts-添加页面">Add posts 添加页面</h3>

<p>在<code class="language-plaintext highlighter-rouge">_posts</code>文件夹下新建 markdown 文件，文件名为<code class="language-plaintext highlighter-rouge">Year-Month-Date-Name.markdown</code>，前面是发布的时间，后面名字可以随意起。和添加页面一样，我们也得在文件开头添加 YAML frontmatter，然后添加自己的内容，如下所示:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>---
layout: post
title: post-title
date: year-month-date
category: post-category
author: name
---
</code></pre></div></div>

<h3 id="关于-yaml-frontmatter">关于 YAML frontmatter</h3>

<p>这些元素可用于注入到你的模板文件中。例如你在每篇文章的下面都想添加日期和作者，我们便可将这些标签注入到 html. 举个例子，我们希望将当前页面作者作为文章的一个标签，就可以像下面这样写</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>---
tag: something
---

<span class="nt">&lt;h1&gt;</span>{{ page.tag }}<span class="nt">&lt;/h1&gt;</span>
</code></pre></div></div>

<p>这样我们就成功添加了一个一级标题，标题为 something，是页面 tag 里的内容。</p>

<p>除此以外<code class="language-plaintext highlighter-rouge">_config.yml</code>里面的属性也都是可以注入到网页中的。具体的一些操作下一章来讲。</p>

<h2 id="传送门">传送门</h2>

<p>上一章: <a href="https://thomasmental.github.io/2021/04/16/Jekyll-1/">Jekyll Blog 个人博客搭建(1)</a></p>

<p>下一章: <a href="https://thomasmental.github.io/2021/04/25/Jekyll-3/">Jekyll Blog 个人博客搭建(3)</a></p>]]></content><author><name>Taochen</name></author><category term="Jekyll" /><summary type="html"><![CDATA[在上一章里面我们利用 GitHub Pages 和 Jekyll 初步生成这个博客。这一章简单讲讲博客文件夹的结构，同时简单提几句网页设计的构思。然后介绍一下如何在博客里添加自己的内容，当然官方文档里写的都挺清楚，我这里更多是重复以及附加的一点解释。没读过前文的可以去看一下上一章。]]></summary></entry><entry><title type="html">Markdown 语法汇总(同步更新中)</title><link href="https://thomasmental.github.io/2021/04/19/Markdown/" rel="alternate" type="text/html" title="Markdown 语法汇总(同步更新中)" /><published>2021-04-19T00:00:00+00:00</published><updated>2021-04-19T00:00:00+00:00</updated><id>https://thomasmental.github.io/2021/04/19/Markdown</id><content type="html" xml:base="https://thomasmental.github.io/2021/04/19/Markdown/"><![CDATA[<p>本文介绍通用的Markdown语法，平台特有不涉及。</p>

<h2 id="headers-标题">Headers 标题</h2>

<p>使用#代表标题级别，具体语法为:</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gh"># 一级标题</span>
<span class="gu">## 二级标题</span>
<span class="gu">### 三级标题</span>
<span class="gu">#### 四级标题</span>
<span class="gu">##### 五级标题</span>
</code></pre></div></div>

<p>效果图:</p>

<blockquote>
  <h2 id="两级标题">两级标题</h2>
  <h3 id="三级标题">三级标题</h3>
  <h4 id="四级标题">四级标题</h4>
  <h5 id="五级标题">五级标题</h5>
</blockquote>

<h2 id="emphasis-强调">Emphasis 强调</h2>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gs">**加粗**</span>
<span class="ge">_斜体_</span>
<span class="ge">_斜**加粗**体_</span>
</code></pre></div></div>

<p>效果图:</p>

<blockquote>
  <p><strong>加粗</strong> <br />
<em>斜体</em> <br />
<em>斜<strong>加粗</strong>体</em> <br /></p>
</blockquote>

<h2 id="strikethrough-删除线">Strikethrough 删除线</h2>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>~~装逼~~学习
</code></pre></div></div>

<p>效果图:</p>

<blockquote>
  <p><del>装逼</del>学习</p>
</blockquote>

<h2 id="hyperlink-超链接">Hyperlink 超链接</h2>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">[</span><span class="nv">超链接1</span><span class="p">](</span><span class="sx">https://thomasmental.github.io/</span><span class="p">)</span>
<span class="p">[</span><span class="nv">超链接2</span><span class="p">](</span><span class="sx">https://thomasmental.github.io/,</span> <span class="nn">'一个链接'</span><span class="p">)</span>
展示链接: <span class="nv">&lt;https://thomasmental.github.io/&gt;</span>
</code></pre></div></div>

<p>效果图:</p>

<blockquote>
  <p><a href="https://thomasmental.github.io/">超链接1</a> <br />
<a href="https://thomasmental.github.io/" title="一个链接">超链接2</a> <br />
<a href="https://thomasmental.github.io/">https://thomasmental.github.io/</a> <br /></p>
</blockquote>

<h2 id="newline-换行">Newline 换行</h2>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>这一句话<span class="nt">&lt;br&gt;</span>分两行
</code></pre></div></div>

<p>效果图:</p>

<blockquote>
  <p>这一句话<br />分两行</p>
</blockquote>

<h2 id="分割线">分割线</h2>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="ge">__</span>_
<span class="se">\_\_\_</span>
</code></pre></div></div>

<p>效果图:</p>

<blockquote>
  <hr />
  <p>___</p>
</blockquote>

<h2 id="code-block-代码块">Code Block 代码块</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>(`) 忽略括号重复三次后面加语言 样例为c
printf("hello world");
(`) 忽略括号重复三次
</code></pre></div></div>

<p>效果图:</p>

<blockquote>
  <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">printf</span><span class="p">(</span><span class="s">"hello world"</span><span class="p">);</span>
</code></pre></div>  </div>
</blockquote>

<h2 id="blockquote-引用块">Blockquote 引用块</h2>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gt">&gt; 一段话</span>
</code></pre></div></div>

<p>效果图:</p>

<blockquote>
  <p>一段话</p>
</blockquote>]]></content><author><name>Taochen</name></author><category term="Markdown" /><summary type="html"><![CDATA[本文介绍通用的Markdown语法，平台特有不涉及。]]></summary></entry></feed>