码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Laravel文档阅读笔记-Adding a Markdown editor to Laravel


    注意

    此博文对应的Laravel版本为8,5版本是不能用的,很多函数都没有。

    开始

    使用Laravel创建好基本的blog,css美化用Tailwind CSS,创建Post界面是这样的。

    这里内容使用的是html中的textarea关键字,这样写文章内容非常痛苦,所以将这个textarea升级,换成MarkDown。

    安装和配置

    MarkDown的编辑器使用Toast UI Editor,使用如下命令进行安装:

    npm install --save @toast-ui/editor

    使用div代替上textarea区域,设置好id,后面用JS中配置MarkDown编辑器:

    1. <!-- resources/views/posts/create.blade.php -->
    2. <div class="flex flex-col space-y-2">
    3. <label for="editor" class="text-gray-600 font-semibold">Content</label>
    4. <div id="editor" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm"><div>
    5. </div>

    下面在JS中,将MarkDown编辑器实例化出来。

    1. // resources/js/app.js
    2. import Editor from '@toast-ui/editor'
    3. import 'codemirror/lib/codemirror.css';
    4. import '@toast-ui/editor/dist/toastui-editor.css';
    5. const editor = new Editor({
    6. el: document.querySelector('#editor'),
    7. height: '400px'
    8. initialEditType: 'markdown',
    9. placeholder: 'Write something cool!',
    10. })

    编译一下:

    npm run dev # or 'npm run watch' to listen for file changes and compile automatically

     这样MarkDown的编辑器就出来了:

    如果上面的功能不太行,可以查文档进行编辑器配置。

    设置MarkDown内容的编辑

    编辑器被渲染到div中,是没有inpute框的,也没有name这个属性,这样,不能发送到服务端进行存储。

    所以要使用JS获取MarkDown编辑器中的内容,并且增加隐藏的表单,把MarkDown的内容设置到表达Input中。

    对应的html代码如下:

    1. <!-- resources/views/posts/create.blade.php -->
    2. <input type="hidden" name="content" id="content">

     对应的JS代码如下:

    1. // resources/js/app.js
    2. document.querySelector('#createPostForm').addEventListener('submit', e => {
    3. e.preventDefault();
    4. document.querySelector('#content').value = editor.getMarkdown();
    5. e.target.submit();
    6. });

    然后编译下前端代码:

    npm run dev

    这样后端接收到后,就能进行存储了。

    MarkDown转成HTML

    文章以MarkDown的格式存储后,需要再前端进行展示,如下:

    2021年1月,Laravel就集成了MarkDown转HTML的功能,用法简单:

    1. // resources/views/posts/show.blade.php
    2. {!! \Illuminate\Support\Str::markdown($post->content) !!}

     这样显示就正常了:

     

    源码下载地址:

    https://github.com/stevie-c91/laravel-markdown-editor

     

  • 相关阅读:
    linux用户管理,用户权限命令详解
    MySQL–第4关:查询用户日活数及支付金额
    Zookeeper简介、原理和功能?
    GoLong的学习之路(二十三)进阶,语法之并发(go最重要的特点)(锁,sync包,原子操作)
    Shopee大促过后如何稳住流量?
    爬虫项目(四):批量下载高清美女桌面壁纸
    【无标题】
    win10没有改用本地账户登录选项怎么办
    英语读书笔记-Book Lovers Day 10
    【C++11】异常 {try/catch语句语法;异常抛出和捕获的匹配原则,异常的栈展开,异常的重新抛出;异常继承体系,异常声明;异常的优缺点,异常安全问题}
  • 原文地址:https://blog.csdn.net/qq78442761/article/details/125495440
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号