<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Markdown - 标签 - 菠菜眾長</title><link>https://lruihao.cn/tags/markdown/</link><description>Markdown - 标签 - 菠菜眾長</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><lastBuildDate>Tue, 05 Oct 2021 21:54:06 +0800</lastBuildDate><atom:link href="https://lruihao.cn/tags/markdown/" rel="self" type="application/rss+xml"/><item><title>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</title><link>https://lruihao.cn/posts/subl_imgpaste2/</link><pubDate>Tue, 05 Oct 2021 21:54:06 +0800</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/subl_imgpaste2/</guid><description><![CDATA[<a href="https://github.com/robinchenyu/imagepaste" title="插件地址"target="_blank" rel="external nofollow noopener noreferrer" class="card-link"><span class="cl-backdrop" style="--cl-bg-url: url(/fixit.min.svg);"></span>
    <span class="cl-content">
      <span class="cl-text">
        <span class="cl-title">插件地址</span>
        <span class="cl-meta">
          <svg class="cl-icon-link" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z" fill="#a9a9b3"></path><path d="M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" fill="#a9a9b3"></path></svg>
          <span class="cl-url">https://github.com/robinchenyu/imagepaste</span>
        </span>
      </span><svg class="cl-icon-globe" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M960 512c0 249.408-203.2 448-448 448-244.778667 0-448-198.592-448-448S262.592 64 512 64s448 198.592 448 448" fill="#2196F3"></path><path d="M507.52 718.08c0-8.96-4.48-13.44-13.44-17.92-26.88-8.96-53.76-8.96-76.16-31.381333-4.48-8.96-4.48-17.92-8.96-26.88-8.96-8.96-31.36-13.44-44.8-17.92h-89.6c-13.44-4.48-22.4-22.4-31.36-35.84 0-4.48 0-13.461333-8.96-13.461334-8.96-4.458667-17.92 4.501333-26.88 0-4.48-4.458667-4.48-8.96-4.48-13.418666 0-13.461333 8.96-26.901333 17.92-35.861334 13.44-8.96 26.88 4.48 40.32 4.48 4.48 0 4.48 0 8.96 4.48 13.44 4.48 17.92 22.4 17.92 35.861334v8.96c0 4.48 4.48 4.48 8.96 4.48 4.48-22.4 4.48-44.821333 8.96-67.2 0-26.88 26.88-53.781333 49.28-62.72 8.96-4.458667 13.44 4.501333 22.4 0 26.88-8.96 94.08-35.84 80.64-71.658667-8.96-31.381333-35.84-62.698667-71.68-58.24-8.96 4.501333-13.44 8.96-22.4 13.461333-13.44 8.96-40.32 35.84-53.76 35.84-22.4-4.48-22.4-35.84-17.92-49.301333 4.48-17.92 44.8-76.138667 71.68-67.178667l17.92 17.92c8.96 4.48 22.4 4.48 35.84 4.48 4.48 0 8.96 0 13.44-4.48 4.48-4.48 4.48-4.48 4.48-8.96 0-13.44-13.44-26.901333-22.4-35.861333s-22.4-17.92-35.84-22.378667c-44.8-13.461333-116.48 4.458667-152.32 35.84-35.84 31.36-62.72 85.12-80.64 129.92-8.96 26.88-17.92 62.698667-22.4 94.08-4.48 22.4-8.96 40.32 4.48 62.698667 13.44 26.88 40.32 53.781333 67.2 71.68 17.92 13.44 53.76 13.44 71.68 35.84 13.44 17.941333 8.96 40.32 8.96 62.72 0 26.88 17.92 49.28 26.88 71.658667 4.48 13.461333 8.96 31.381333 13.44 44.821333 0 4.48 4.48 31.36 4.48 35.84 26.88 13.44 49.28 26.901333 80.64 35.861333 4.48 0 22.4-26.901333 22.4-31.381333 13.44-13.44 22.4-31.36 35.84-40.32 8.96-4.48 17.92-8.96 26.88-17.941333 8.96-8.96 13.44-26.88 17.92-40.32 4.48-8.938667 8.96-26.858667 4.48-40.298667M516.48 305.92c4.48 0 8.96-4.48 17.92-8.96 13.44-8.96 26.901333-22.4 40.32-31.36 13.461333-8.96 26.901333-22.4 35.861333-31.36 13.44-8.96 22.4-26.88 26.88-40.341333 4.48-8.96 17.941333-26.88 13.44-40.32-4.48-8.96-26.88-13.44-35.84-17.92C579.2 126.698667 547.84 122.24 512 122.24c-13.44 0-31.36 4.458667-35.84 17.92-4.48 22.4 13.44 17.92 31.36 22.4 0 0 4.48 35.84 4.48 40.32 4.48 22.421333-8.96 35.84-8.96 58.24 0 13.44 0 35.84 8.96 44.8h4.48zM892.8 619.52c4.501333-8.96 4.501333-22.4 8.96-31.36 4.501333-22.421333 4.501333-44.8 4.501333-67.2 0-44.8-4.501333-89.578667-17.92-129.92-8.96-13.44-13.461333-26.88-17.941333-40.341333-8.96-22.378667-22.4-44.8-40.32-62.698667-17.92-22.4-40.341333-85.12-80.64-67.2-13.44 4.501333-22.4 22.421333-31.36 31.381333l-26.88 40.32c-4.501333 4.48-8.96 13.44-4.501333 17.92 0 4.48 4.501333 4.48 8.96 4.48 8.96 4.501333 13.461333 4.501333 22.421333 8.96 4.48 0 8.96 4.501333 4.48 8.96 0 0 0 4.501333-4.48 4.501334-22.421333 22.4-44.8 40.32-67.2 62.698666-4.48 4.48-8.96 13.44-8.96 17.92s4.48 4.48 4.48 8.96c0 4.501333-4.48 4.501333-8.96 8.96-8.96 4.501333-17.92 8.96-22.4 13.461334-4.48 8.96 0 22.4-4.48 31.36-4.48 22.4-17.941333 40.32-26.901333 62.72-8.96 13.418667-13.418667 26.88-22.378667 40.32 0 17.92-4.501333 31.36 4.458667 44.8 22.421333 31.36 62.72 13.44 94.08 26.901333 8.96 4.458667 17.92 4.458667 22.421333 13.418667 13.418667 13.461333 13.418667 35.861333 17.92 49.301333 4.458667 17.92 8.96 35.84 17.92 53.76 4.48 22.421333 13.44 44.821333 17.92 62.72 40.341333-31.36 76.16-67.178667 103.04-112 26.88-31.424 40.341333-67.242667 53.76-103.104" fill="#CDDC39"></path></svg></span></a>
<h2 id="功能">功能</h2>
<p>支持 Windows/Linux 系统下，实现对剪切板图像的处理调用 (Ctrl+Shift+V)<br>
默认使用 JPG 的方式保存，可以显著减小图片的存储体积。</p>
<ul>
<li>对剪切板图像保存到本地并在 Markdown 文本中插入链接地址</li>
<li>对剪切板中的图像地址，直接插入到 Markdown 文本中</li>
</ul>
<h2 id="食用说明">食用说明</h2>
<ol>
<li>首先下载 zip 到本地，放到 sublime 安装目录的 <code>xxx\sublime\Data\Packages</code> 中，注意不是 <code>xxx\sublime\Packages</code> 下哦。</li>
<li>记得要把 subl_imgpaste2-master 的 <code>-master</code> 删除掉。接着重新打开 sublime, 选择 <code>Preferences-&gt;Package Settings-&gt;ImaPaste2-&gt;settings-Default</code> 输入如下内容：
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{
</span></span><span class="line"><span class="cl">  &#34;caption&#34;: &#34;ImagePaste: Paste Image From Clipboard&#34;,
</span></span><span class="line"><span class="cl">  &#34;command&#34;: &#34;image_paste&#34;,
</span></span><span class="line"><span class="cl">  &#34;image_dir_name&#34;: &#34;images/&#34; # 图片保存目录
</span></span><span class="line"><span class="cl">}</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>然后就可以愉快的使用截图，然后在 sublime 里使用 <code>ctrl+shift+v</code> 粘贴 Markdown 格式的图片。默认会自动根据 md 文件名在同级目录下新建文件夹，图片就默认保存在那。如图：<br>
<figure><a class="lightgallery" href="https://github.com/robinchenyu/imagepaste/raw/master/gif/imagepaste.gif" data-thumbnail="https://github.com/robinchenyu/imagepaste/raw/master/gif/imagepaste.gif" data-sub-html="<h2>https://github.com/robinchenyu/imagepaste/raw/master/gif/imagepaste.gif</h2><p>演示</p>"></a><figcaption class="image-caption"></figcaption>
  </figure></li>
</ol>
<blockquote>
<p>VScode 也有更好用的插件：Past Image</p>
</blockquote>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&#34;pasteImage.defaultName&#34;: &#34;YY_X&#34;,
</span></span><span class="line"><span class="cl">&#34;pasteImage.path&#34;: &#34;${currentFileDir}/images/&#34;</span></span></code></pre></td></tr></table>
</div>
</div>]]></description></item><item><title>cell-blog 功能介绍与安装</title><link>https://lruihao.cn/projects/cell-blog/</link><pubDate>Sat, 25 Jul 2020 20:51:11 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/projects/cell-blog/</guid><description><![CDATA[<div class="featured-image">
        <img src="https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png" referrerpolicy="no-referrer">
      </div><blockquote>
<p>基于 Laravel7 开发，Markdown 语法的个人独立博客。<a href="https://github.com/Lruihao/cell-blog"target="_blank" rel="external nofollow noopener noreferrer">Cell Blog<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>, 也是我的毕业设计作品，目前已開源。</p>
</blockquote>
<h2 id="功能">功能</h2>
<ul>
<li>支持 Markdown, 文章实时预览效果</li>
<li>支持多种编程语言代码高亮</li>
<li>编辑器图片上传</li>
<li>后台上传文件管理</li>
<li>文章搜索</li>
<li>文章分类</li>
<li>文章标签</li>
<li>热门文章</li>
<li>随机格言</li>
<li>文章管理（发布，评论开关，排序）</li>
<li>自定义导航（显示开关，排序）</li>
<li>自定义页面（发布开关）</li>
<li>友情链接（显示开关，排序）</li>
<li><a href="https://github.com/Lruihao/cos-album"target="_blank" rel="external nofollow noopener noreferrer">COS 桶相册<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li>丰富的博客配置（方便扩展，支持自定义 JS 脚本）</li>
<li>不蒜子计数</li>
<li>Leancloud 计数</li>
<li>Valine 评论插件</li>
<li>文章分享插件</li>
</ul>
<h2 id="截图">截图</h2>
<p><br>
<br>
</p>
<h2 id="安装">安装</h2>
<blockquote>
<p>注意事项：PHP 取消禁用函数<code>putenv()</code>和<code>symlink()</code>，安装<code>fileinfo</code>扩展。</p>
</blockquote>
<p>下载</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">git clone https://github.com/Lruihao/cell-blog.git</span></span></code></pre></td></tr></table>
</div>
</div><p>进入站点</p>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">cd cell-blog</span></span></code></pre></td></tr></table>
</div>
</div><p>生成。env</p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">cp .env.example .env</span></span></code></pre></td></tr></table>
</div>
</div><p>编辑。env 环境配置</p>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="nv">APP_URL</span><span class="o">=</span>http://localhost <span class="c1">#使用本地文件系统存储文件时，必须填写正确地址</span>
</span></span><span class="line"><span class="cl"><span class="nv">APP_DEBUG</span><span class="o">=</span><span class="nb">false</span> <span class="c1">#关闭调试</span>
</span></span><span class="line"><span class="cl"><span class="nv">DB_HOST</span><span class="o">=</span> <span class="c1">#数据库地址</span>
</span></span><span class="line"><span class="cl"><span class="nv">DB_PORT</span><span class="o">=</span><span class="m">3306</span> <span class="c1">#数据库端口</span>
</span></span><span class="line"><span class="cl"><span class="nv">DB_DATABASE</span><span class="o">=</span> <span class="c1">#数据库名称</span>
</span></span><span class="line"><span class="cl"><span class="nv">DB_USERNAME</span><span class="o">=</span> <span class="c1">#数据库用户</span>
</span></span><span class="line"><span class="cl"><span class="nv">DB_PASSWORD</span><span class="o">=</span> <span class="c1">#数据库密码</span></span></span></code></pre></td></tr></table>
</div>
</div><p>打开<code>app\Providers\AppServiceProvider.php</code>, 注释<code>SystemController:load()</code> 防止后续步骤报错</p>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">    public function boot()
</span></span><span class="line"><span class="cl">    {
</span></span><span class="line"><span class="cl">        Schema::defaultStringLength(191);
</span></span><span class="line"><span class="cl">        //SystemController::load();
</span></span><span class="line"><span class="cl">    }</span></span></code></pre></td></tr></table>
</div>
</div><p>安装项目依赖</p>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">composer install</span></span></code></pre></td></tr></table>
</div>
</div><p>生成 key</p>
<div class="highlight" id="id-7"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">php artisan key:generate</span></span></code></pre></td></tr></table>
</div>
</div><p>运行数据迁移和后台数据填充</p>
<blockquote>
<p><code>php artisan admin:install</code>已包含数据迁移命令<code>php artisan migrate</code><br>
<code>G:\cell-blog\app\Admin directory already exists !</code>无需理会，继续执行剩下命令即可。</p>
</blockquote>
<div class="highlight" id="id-8"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">php artisan admin:install
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">php artisan admin:import media-manager
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">php artisan db:seed</span></span></code></pre></td></tr></table>
</div>
</div><p>默认下使用了本地文件系统，创建 storage 目录在 public 的软链接</p>
<div class="highlight" id="id-9"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">php artisan storage:link</span></span></code></pre></td></tr></table>
</div>
</div><p>打开<code>app\Providers\AppServiceProvider.php</code>, 取消注释<code>SystemController:load()</code></p>
<div class="highlight" id="id-10"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">    public function boot()
</span></span><span class="line"><span class="cl">    {
</span></span><span class="line"><span class="cl">        Schema::defaultStringLength(191);
</span></span><span class="line"><span class="cl">        SystemController::load();
</span></span><span class="line"><span class="cl">    }</span></span></code></pre></td></tr></table>
</div>
</div><p>将博客网站根目录指向入口 public 目录</p>
<p>如果使用 Nginx，要设置伪静态</p>
<div class="highlight" id="id-11"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">location / {
</span></span><span class="line"><span class="cl">    try_files $uri $uri/ /index.php?$query_string;
</span></span><span class="line"><span class="cl">}</span></span></code></pre></td></tr></table>
</div>
</div><p>启动服务后，在浏览器打开<code>http://localhost/admin/</code>, 使用用户名<code>admin</code>和密码<code>admin</code>登录。</p>
<h2 id="license">License</h2>
<p>Cell Blog is open-sourced software licensed under the MIT license.</p>
<p></p>]]></description></item><item><title>cell-blog 开发记录</title><link>https://lruihao.cn/posts/cell-blog-dev/</link><pubDate>Sat, 25 Jul 2020 20:42:42 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/cell-blog-dev/</guid><description><![CDATA[<blockquote>
<p>Cell Blog 开发记录，<a href="https://github.com/Lruihao/cell-blog"target="_blank" rel="external nofollow noopener noreferrer">项目地址<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
</blockquote>
<h2 id="搭建-php-环境">搭建 php 环境</h2>
<ol>
<li>安装 wampserver</li>
<li>安装 composer</li>
<li>更换 aliyun 源</li>
</ol>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="新建-laravel-项目">新建 laravel 项目</h2>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">composer create-project --prefer-dist laravel/laravel cell-blog &#34;7.*&#34;</span></span></code></pre></td></tr></table>
</div>
</div><p>或者</p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">composer global require laravel/installer
</span></span><span class="line"><span class="cl">laravel new blog</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="下载-debugbar">下载 debugbar</h2>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">composer require barryvdh/laravel-debugbar --dev</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="修改语言时区">修改语言时区</h2>
<p>修改 config/app.php，将 local 的值 en 改成 zh-CN(laravel-admin 自带 zh-CN)：</p>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">## 时区
</span></span><span class="line"><span class="cl">&#39;timezone&#39; =&gt; &#39;Asia/Shanghai&#39;,
</span></span><span class="line"><span class="cl">## 语言
</span></span><span class="line"><span class="cl">&#39;locale&#39; =&gt; &#39;zh-CN&#39;,</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="配置数据库">配置数据库</h2>
<p>首先确保安装好了 laravel，并且数据库连接设置正确。</p>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">APP_URL=http://cell.blog
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">DB_CONNECTION=mysql
</span></span><span class="line"><span class="cl">DB_HOST=127.0.0.1
</span></span><span class="line"><span class="cl">DB_PORT=3307
</span></span><span class="line"><span class="cl">DB_DATABASE=cell_blog
</span></span><span class="line"><span class="cl">DB_USERNAME=root
</span></span><span class="line"><span class="cl">DB_PASSWORD=123456</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="下载-laravel-admin">下载 laravel-admin</h2>
<div class="highlight" id="id-7"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">cd cell-blog
</span></span><span class="line"><span class="cl">composer require encore/laravel-admin</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p>卸载命令<code>composer remove xxx</code></p>
</blockquote>
<p>然后运行下面的命令来发布资源：</p>
<div class="highlight" id="id-8"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">php artisan vendor:publish --provider=&#34;Encore\Admin\AdminServiceProvider&#34;</span></span></code></pre></td></tr></table>
</div>
</div><p>在该命令会生成配置文件<code>config/admin.php</code>，可以在里面修改安装的地址、数据库连接、以及表名，建议都是用默认配置不修改。</p>
<p>然后运行下面的命令完成安装：</p>
<div class="highlight" id="id-9"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">php artisan admin:install</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p>运行这个命令的时候，如果遇到了下面的错误：
<code>SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter tableusersadd uniqueusers_email_unique(email))</code><br>
参考这个 issue 来解决 <a href="https://github.com/z-song/laravel-admin/issues/1541"target="_blank" rel="external nofollow noopener noreferrer">https://github.com/z-song/laravel-admin/issues/1541<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br>
在<code>app\Providers\AppServiceProvider.php</code>添加默认值</p>
</blockquote>
<div class="highlight" id="id-10"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-php" data-lang="php"><span class="line"><span class="cl"><span class="o">&lt;?</span><span class="nx">php</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">namespace</span> <span class="nx">App\Providers</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">use</span> <span class="nx">Illuminate\Support\ServiceProvider</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="k">use</span> <span class="nx">Illuminate\Support\Facades\Schema</span><span class="p">;</span> <span class="c1">//add fixed sql
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl"><span class="k">class</span> <span class="nc">AppServiceProvider</span> <span class="k">extends</span> <span class="nx">ServiceProvider</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="sd">/**
</span></span></span><span class="line"><span class="cl"><span class="sd">     * Bootstrap any application services.
</span></span></span><span class="line"><span class="cl"><span class="sd">     *
</span></span></span><span class="line"><span class="cl"><span class="sd">     * @return void
</span></span></span><span class="line"><span class="cl"><span class="sd">     */</span>
</span></span><span class="line"><span class="cl">    <span class="k">public</span> <span class="k">function</span> <span class="nf">boot</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="nx">Schema</span><span class="o">::</span><span class="na">defaultStringLength</span><span class="p">(</span><span class="mi">191</span><span class="p">);</span> <span class="c1">//add fixed sql
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="sd">/**
</span></span></span><span class="line"><span class="cl"><span class="sd">     * Register any application services.
</span></span></span><span class="line"><span class="cl"><span class="sd">     *
</span></span></span><span class="line"><span class="cl"><span class="sd">     * @return void
</span></span></span><span class="line"><span class="cl"><span class="sd">     */</span>
</span></span><span class="line"><span class="cl">    <span class="k">public</span> <span class="k">function</span> <span class="nf">register</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div><p>启动服务后，在浏览器打开 <code>http://localhost/admin/</code> , 使用用户名 <code>admin</code> 和密码 <code>admin</code> 登录。</p>
<blockquote>
<p>报错<code>Disk [admin] not configured, please add a disk config in config/filesystems.php</code></p>
</blockquote>
<p>在<code>config/filesystems.php</code>中 disks 处添加以下配置后执行<code>php artisan storage:link</code>来创建软链接（windows 和 linux 的软链接不一样不能直接复制！）</p>
<blockquote>
<p>宝塔执行时删除禁用函数 putenv(),symlink()</p>
</blockquote>
<div class="highlight" id="id-11"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&#39;admin&#39; =&gt; [
</span></span><span class="line"><span class="cl">    &#39;driver&#39; =&gt; &#39;local&#39;,
</span></span><span class="line"><span class="cl">    &#39;root&#39; =&gt; storage_path(&#39;app/public/system&#39;),
</span></span><span class="line"><span class="cl">    &#39;url&#39; =&gt; env(&#39;APP_URL&#39;).&#39;/storage/system&#39;,
</span></span><span class="line"><span class="cl">    &#39;visibility&#39; =&gt; &#39;public&#39;,
</span></span><span class="line"><span class="cl">],
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">或
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">&#39;admin&#39; =&gt; [
</span></span><span class="line"><span class="cl">    &#39;driver&#39; =&gt; &#39;local&#39;,
</span></span><span class="line"><span class="cl">    &#39;root&#39; =&gt; public_path(&#39;uploads&#39;),
</span></span><span class="line"><span class="cl">    &#39;url&#39; =&gt; env(&#39;APP_URL&#39;).&#39;/public/uploads/&#39;,
</span></span><span class="line"><span class="cl">    &#39;visibility&#39; =&gt; &#39;public&#39;,
</span></span><span class="line"><span class="cl">],</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="下载-dcat-admin">下载 dcat-admin</h2>
<div class="highlight" id="id-12"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">composer require dcat/laravel-admin</span></span></code></pre></td></tr></table>
</div>
</div><p>然后运行下面的命令来发布资源：</p>
<div class="highlight" id="id-13"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">php artisan admin:publish</span></span></code></pre></td></tr></table>
</div>
</div><p>在该命令会生成配置文件<code>config/admin.php</code>，可以在里面修改安装的地址、数据库连接、以及表名，建议都是用默认配置不修改。</p>
<p>然后运行下面的命令完成安装：</p>
<div class="highlight" id="id-14"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">php artisan admin:install</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="迁移文件创建表">迁移文件创建表</h2>
<div class="highlight" id="id-15"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span><span class="lnt">9
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">php artisan make:migration create_articles_table
</span></span><span class="line"><span class="cl">php artisan make:migration create_tags_table
</span></span><span class="line"><span class="cl">php artisan make:migration create_categories_table
</span></span><span class="line"><span class="cl">php artisan make:migration create_article_tags_table
</span></span><span class="line"><span class="cl">php artisan make:migration create_navigations_table
</span></span><span class="line"><span class="cl">php artisan make:migration create_friendship_links_table
</span></span><span class="line"><span class="cl">php artisan make:migration create_pages_table
</span></span><span class="line"><span class="cl">php artisan make:migration create_systems_table
</span></span><span class="line"><span class="cl">php artisan make:migration create_mottoes_table</span></span></code></pre></td></tr></table>
</div>
</div><p>运行迁移</p>
<div class="highlight" id="id-16"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">php artisan migrate</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="创建模型-model">创建模型 model</h2>
<div class="highlight" id="id-17"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">php artisan make:model Models/Article
</span></span><span class="line"><span class="cl">php artisan make:model Models/Category
</span></span><span class="line"><span class="cl">php artisan make:model Models/Tag
</span></span><span class="line"><span class="cl">php artisan make:model Models/Navigation
</span></span><span class="line"><span class="cl">php artisan make:model Models/FriendshipLink
</span></span><span class="line"><span class="cl">php artisan make:model Models/Page
</span></span><span class="line"><span class="cl">php artisan make:model Models/System
</span></span><span class="line"><span class="cl">php artisan make:model Models/Motto</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="创建控制器">创建控制器</h2>
<div class="highlight" id="id-18"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">php artisan admin:make ArticleController --model<span class="o">=</span>App<span class="se">\M</span>odels<span class="se">\A</span>rticle
</span></span><span class="line"><span class="cl">php artisan admin:make CategoryController --model<span class="o">=</span>App<span class="se">\M</span>odels<span class="se">\C</span>ategory
</span></span><span class="line"><span class="cl">php artisan admin:make TagController --model<span class="o">=</span>App<span class="se">\M</span>odels<span class="se">\T</span>ag
</span></span><span class="line"><span class="cl">php artisan admin:make NavigationController --model<span class="o">=</span>App<span class="se">\M</span>odels<span class="se">\N</span>avigation
</span></span><span class="line"><span class="cl">php artisan admin:make FriendshipLinkController --model<span class="o">=</span>App<span class="se">\M</span>odels<span class="se">\F</span>riendshipLink
</span></span><span class="line"><span class="cl">php artisan admin:make PageController --model<span class="o">=</span>App<span class="se">\M</span>odels<span class="se">\P</span>age
</span></span><span class="line"><span class="cl">php artisan admin:make SystemController --model<span class="o">=</span>App<span class="se">\M</span>odels<span class="se">\S</span>ystem
</span></span><span class="line"><span class="cl">php artisan admin:make MottoController --model<span class="o">=</span>App<span class="se">\M</span>odels<span class="se">\M</span>otto</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="添加后台路由">添加后台路由</h2>
<p>app/Admin/routes.php</p>
<div class="highlight" id="id-19"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">$router-&gt;resource(&#39;articles&#39;, ArticleController::class);
</span></span><span class="line"><span class="cl">$router-&gt;resource(&#39;categories&#39;, CategoryController::class);
</span></span><span class="line"><span class="cl">$router-&gt;resource(&#39;tags&#39;, TagController::class);
</span></span><span class="line"><span class="cl">$router-&gt;resource(&#39;navigations&#39;, NavigationController::class);
</span></span><span class="line"><span class="cl">$router-&gt;resource(&#39;friendship-links&#39;, FriendshipLinkController::class);
</span></span><span class="line"><span class="cl">$router-&gt;resource(&#39;pages&#39;, PageController::class);
</span></span><span class="line"><span class="cl">$router-&gt;resource(&#39;systems&#39;, SystemController::class);
</span></span><span class="line"><span class="cl">$router-&gt;resource(&#39;mottoes&#39;, MottoController::class);</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="editormd-安装">editormd 安装</h2>
<p><a href="https://github.com/ShareManT/laravel-admin-ext-editormd"target="_blank" rel="external nofollow noopener noreferrer">editormd<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>
<a href="https://github.com/ShareManT/laravel-admin-ext-editormd/issues/3"target="_blank" rel="external nofollow noopener noreferrer">github 图像问题<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<h3 id="存放本地表情">存放本地表情</h3>
<div class="highlight" id="id-20"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">public\vendor\laravel-admin-ext\editormd\editormd-1.5.0\images\emojis</span></span></code></pre></td></tr></table>
</div>
</div><p>修改 editormd.js 及 editormd.min.js</p>
<div class="highlight" id="id-21"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">// Emoji graphics files url path
</span></span><span class="line"><span class="cl">editormd.emoji     = {
</span></span><span class="line"><span class="cl">    path  : &#34;/iamges/emojis/&#34;,
</span></span><span class="line"><span class="cl">    ext   : &#34;.png&#34;
</span></span><span class="line"><span class="cl">};</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="图片上传">图片上传</h3>
<h4 id="csrf-419-错误">csrf 419 错误</h4>
<p>可以在<code>VerifyCsrfToken.php</code>中添加白名单跳过验证，或者手动添加 csrf 验证器：</p>
<p>修改 image-dialog.js 的<code>var dialogContent</code><br>
<a href="https://www.jianshu.com/p/8101f7bc80f6"target="_blank" rel="external nofollow noopener noreferrer">参考<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-22"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">if (settings.crossDomainUpload)
</span></span><span class="line"><span class="cl">{
</span></span><span class="line"><span class="cl">    action += &#34;&amp;callback=&#34; + settings.uploadCallbackURL + &#34;&amp;dialog_id=editormd-image-dialog-&#34; + guid;
</span></span><span class="line"><span class="cl">}
</span></span><span class="line"><span class="cl">//添加 csrf 验证
</span></span><span class="line"><span class="cl">var csrfToken = $(&#39;meta[name=&#34;csrf-token&#34;]&#39;).attr(&#39;content&#39;);
</span></span><span class="line"><span class="cl">var csrfField = &#34;&#34;;
</span></span><span class="line"><span class="cl">if (csrfToken) {
</span></span><span class="line"><span class="cl">    csrfField = &#34;&lt;input type=&#39;hidden&#39; name=&#39;_token&#39; value=&#39;&#34; + csrfToken + &#34;&#39; /&gt;&#34;;
</span></span><span class="line"><span class="cl">}</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="markdown-转-html">markdown 转 HTML</h2>
<p><a href="https://www.zhiqiexing.com/119.html"target="_blank" rel="external nofollow noopener noreferrer">https://www.zhiqiexing.com/119.html<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>
<a href="https://github.com/GrahamCampbell/Laravel-Markdown"target="_blank" rel="external nofollow noopener noreferrer">Laravel Markdown 安装<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-23"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">composer require graham-campbell/markdown
</span></span><span class="line"><span class="cl">php artisan vendor:publish</span></span></code></pre></td></tr></table>
</div>
</div><p>扩展表格</p>
<div class="highlight" id="id-24"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">composer require league/commonmark</span></span></code></pre></td></tr></table>
</div>
</div><p>config/markdown.php</p>
<div class="highlight" id="id-25"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&#39;extensions&#39; =&gt; [
</span></span><span class="line"><span class="cl">        League\CommonMark\Extension\TaskList\TaskListExtension::class,
</span></span><span class="line"><span class="cl">    ],</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="eloquent-模型事件">Eloquent 模型事件</h2>
<p>Eloquent 模型可以触发事件，允许你在模型生命周期中的多个时间点调用如下这些方法：retrieved, creating, created, updating, updated, saving, saved, deleting, deleted, restoring, restored。事件允许你在一个指定模型类每次保存或更新的时候执行代码。</p>
<p>retrieved 事件会在从数据库中获取已存在模型时触发。当一个新模型被首次保存的时候，creating 和 created 事件会被触发。如果一个模型已经在数据库中存在并调用 save 方法，updating/updated 事件会被触发，无论是创建还是更新，saving/saved 事件都会被触发。</p>
<h2 id="添加后台验证码">添加后台验证码</h2>
<p>依赖 php 扩展<code>fileinfo</code><br>
<a href="https://learnku.com/articles/32842"target="_blank" rel="external nofollow noopener noreferrer">添加验证码<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<h2 id="media-manager">Media manager</h2>
<div class="highlight" id="id-26"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">composer require laravel-admin-ext/media-manager
</span></span><span class="line"><span class="cl">php artisan admin:import media-manager</span></span></code></pre></td></tr></table>
</div>
</div><p>&rsquo;extensions&rsquo; =&gt; [
&lsquo;media-manager&rsquo; =&gt; [
// Select a local disk that you configured in <code>config/filesystem.php</code>
&lsquo;disk&rsquo; =&gt; &lsquo;public&rsquo;
],
],</p>
<div class="highlight" id="id-27"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">## 给 laravel-admin 增加锁屏功能</span></span></code></pre></td></tr></table>
</div>
</div><p>composer require laravel-admin-ext/lock-screen</p>
<div class="highlight" id="id-28"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&#39;route&#39; =&gt; [
</span></span><span class="line"><span class="cl">    &#39;prefix&#39; =&gt; &#39;demo&#39;,
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    &#39;namespace&#39;     =&gt; &#39;App\\Admin\\Controllers&#39;,
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    // 在中间件数组中加上&#39;admin.lock&#39;
</span></span><span class="line"><span class="cl">    &#39;middleware&#39;    =&gt; [&#39;web&#39;, &#39;admin&#39;, &#39;admin.lock&#39;],
</span></span><span class="line"><span class="cl">],</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="前台设计">前台设计</h2>
<p>创建控制器</p>
<div class="highlight" id="id-29"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">php artisan make:controller HomeController
</span></span><span class="line"><span class="cl">php artisan make:controller ArticleController
</span></span><span class="line"><span class="cl">php artisan make:controller CategoryController
</span></span><span class="line"><span class="cl">php artisan make:controller TagController
</span></span><span class="line"><span class="cl">php artisan make:controller PageController</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="后台-img-灯箱">后台 img 灯箱</h2>
<p><a href="https://github.com/laravel-admin-extensions/grid-lightbox"target="_blank" rel="external nofollow noopener noreferrer">https://github.com/laravel-admin-extensions/grid-lightbox<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-30"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">composer require laravel-admin-ext/grid-lightbox
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">php artisan vendor:publish --tag=laravel-admin-grid-lightbox</span></span></code></pre></td></tr></table>
</div>
</div>]]></description></item></channel></rss>