highlight.js的使用

安装highlight.js

npm  install  highlight.js@9.18.5
 <pre><code class="hljs" v-html="highlightedCode(value, key)"></code></pre>
import hljs from "highlight.js/lib/highlight";
import "highlight.js/styles/github-gist.css";
hljs.registerLanguage("java", require("highlight.js/lib/languages/java"));
hljs.registerLanguage("xml", require("highlight.js/lib/languages/xml"));
hljs.registerLanguage("html", require("highlight.js/lib/languages/xml"));
hljs.registerLanguage("vue", require("highlight.js/lib/languages/xml"));
hljs.registerLanguage(
    "javascript",
    require("highlight.js/lib/languages/javascript")
);
hljs.registerLanguage("sql", require("highlight.js/lib/languages/sql"));

/** 高亮显示 */

   highlightedCode(code, key) {
    
    
        console.log(code, key, "code+key");
        const data = {
    
    
            "vm/java/domain.java.vm":
                'package com.ruoyi.shutdown.domain;\r\n\r\n//添加mybatisplus的三个包引用\r\nimport com.baomidou.mybatisplus.annotation.IdType;\r\nimport com.baomidou.mybatisplus.annotation.TableId;\r\nimport com.baomidou.mybatisplus.annotation.TableName;\r\n\r\n//如果自己的包名修改了,则需要改成对应的包名\r\nimport com.ruoyi.common.core.domain.BaseEntity;\r\nimport com.ruoyi.common.annotation.Excel;\r\nimport lombok.Data;\r\n\r\nimport java.io.Serializable;\r\n\r\n/**\r\n * 关停对象 shut_down\r\n *\r\n * @author ruoyi\r\n * @date 2023-07-20\r\n */\r\n@Data\r\n@TableName("shut_down")\r\npublic class ShutDown extends BaseEntity implements Serializable\r\n        {\r\nprivate static final long serialVersionUID=1L;\r\n\r\n    /** $column.columnComment */\r\n        @TableId(type = IdType.ASSIGN_ID)\r\n    private Long id;\r\n\r\n    /** 订单id */\r\n            @Excel(name = "订单id")\r\n    private String orderId;\r\n\r\n        }\r\n\r\n',
            "vm/java/mapper.java.vm":
                "package com.ruoyi.shutdown.mapper;\r\n\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\nimport java.util.List;\r\n\r\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\r\nimport com.ruoyi.shutdown.domain.ShutDown;\r\n\r\n/**\r\n * 关停Mapper接口\r\n *\r\n * @author ruoyi\r\n * @date 2023-07-20\r\n */\r\n@Mapper\r\npublic interface ShutDownMapper extends BaseMapper<ShutDown> {\r\n    /**\r\n     * 查询关停\r\n     *\r\n     * @param id 关停主键\r\n     * @return 关停\r\n     */\r\n    public ShutDown selectShutDownById(Long id);\r\n\r\n    /**\r\n     * 查询关停列表\r\n     *\r\n     * @param shutDown 关停\r\n     * @return 关停集合\r\n     */\r\n    public List<ShutDown> selectShutDownList(ShutDown shutDown);\r\n\r\n    /**\r\n     * 新增关停\r\n     *\r\n     * @param shutDown 关停\r\n     * @return 结果\r\n     */\r\n    public int insertShutDown(ShutDown shutDown);\r\n\r\n    /**\r\n     * 修改关停\r\n     *\r\n     * @param shutDown 关停\r\n     * @return 结果\r\n     */\r\n    public int updateShutDown(ShutDown shutDown);\r\n\r\n    /**\r\n     * 删除关停\r\n     *\r\n     * @param id 关停主键\r\n     * @return 结果\r\n     */\r\n    public int deleteShutDownById(Long id);\r\n\r\n    /**\r\n     * 批量删除关停\r\n     *\r\n     * @param ids 需要删除的数据主键集合\r\n     * @return 结果\r\n     */\r\n    public int deleteShutDownByIds(Long[] ids);\r\n}\r\n\r\n",
            "vm/java/service.java.vm":
                "package com.ruoyi.shutdown.service;\r\n\r\nimport java.util.List;\r\n\r\nimport com.baomidou.mybatisplus.extension.service.IService;\r\nimport com.ruoyi.shutdown.domain.ShutDown;\r\n\r\n/**\r\n * 关停Service接口\r\n *\r\n * @author ruoyi\r\n * @date 2023-07-20\r\n */\r\npublic interface IShutDownService extends IService<ShutDown> {\r\n    /**\r\n     * 查询关停\r\n     *\r\n     * @param id 关停主键\r\n     * @return 关停\r\n     */\r\n    public ShutDown selectShutDownById(Long id);\r\n\r\n    /**\r\n     * 查询关停列表\r\n     *\r\n     * @param shutDown 关停\r\n     * @return 关停集合\r\n     */\r\n    public List<ShutDown> selectShutDownList(ShutDown shutDown);\r\n\r\n    /**\r\n     * 新增关停\r\n     *\r\n     * @param shutDown 关停\r\n     * @return 结果\r\n     */\r\n    public int insertShutDown(ShutDown shutDown);\r\n\r\n    /**\r\n     * 修改关停\r\n     *\r\n     * @param shutDown 关停\r\n     * @return 结果\r\n     */\r\n    public int updateShutDown(ShutDown shutDown);\r\n\r\n    /**\r\n     * 批量删除关停\r\n     *\r\n     * @param ids 需要删除的关停主键集合\r\n     * @return 结果\r\n     */\r\n    public int deleteShutDownByIds(Long[] ids);\r\n\r\n    /**\r\n     * 删除关停信息\r\n     *\r\n     * @param id 关停主键\r\n     * @return 结果\r\n     */\r\n    public int deleteShutDownById(Long id);\r\n}\r\n\r\n",
            "vm/java/serviceImpl.java.vm":
                "package com.ruoyi.shutdown.service.impl;\r\n\r\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\r\n\r\nimport java.util.List;\r\n        import com.ruoyi.common.utils.DateUtils; //需要修改成自己的包名\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.stereotype.Service;\r\nimport com.ruoyi.shutdown.mapper.ShutDownMapper;\r\nimport com.ruoyi.shutdown.domain.ShutDown;\r\nimport com.ruoyi.shutdown.service.IShutDownService;\r\n\r\n\r\n/**\r\n * 关停Service业务层处理\r\n *\r\n * @author ruoyi\r\n * @date 2023-07-20\r\n */\r\n@Service\r\npublic class ShutDownServiceImpl extends ServiceImpl<ShutDownMapper,ShutDown> implements IShutDownService {\r\n    @Autowired\r\n    private ShutDownMapper shutDownMapper;\r\n\r\n    /**\r\n     * 查询关停\r\n     *\r\n     * @param id 关停主键\r\n     * @return 关停\r\n     */\r\n    @Override\r\n    public ShutDown selectShutDownById(Long id) {\r\n        return shutDownMapper.selectShutDownById(id);\r\n    }\r\n\r\n    /**\r\n     * 查询关停列表\r\n     *\r\n     * @param shutDown 关停\r\n     * @return 关停\r\n     */\r\n    @Override\r\n    public List<ShutDown> selectShutDownList(ShutDown shutDown) {\r\n        return shutDownMapper.selectShutDownList(shutDown);\r\n    }\r\n\r\n    /**\r\n     * 新增关停\r\n     *\r\n     * @param shutDown 关停\r\n     * @return 结果\r\n     */\r\n    @Override\r\n    public int insertShutDown(ShutDown shutDown) {\r\n                shutDown.setCreateTime(DateUtils.getNowDate());\r\n            return shutDownMapper.insertShutDown(shutDown);\r\n    }\r\n\r\n    /**\r\n     * 修改关停\r\n     *\r\n     * @param shutDown 关停\r\n     * @return 结果\r\n     */\r\n    @Override\r\n    public int updateShutDown(ShutDown shutDown) {\r\n        return shutDownMapper.updateShutDown(shutDown);\r\n    }\r\n\r\n    /**\r\n     * 批量删除关停\r\n     *\r\n     * @param ids 需要删除的关停主键\r\n     * @return 结果\r\n     */\r\n    @Override\r\n    public int deleteShutDownByIds(Long[] ids) {\r\n        return shutDownMapper.deleteShutDownByIds(ids);\r\n    }\r\n\r\n    /**\r\n     * 删除关停信息\r\n     *\r\n     * @param id 关停主键\r\n     * @return 结果\r\n     */\r\n    @Override\r\n    public int deleteShutDownById(Long id) {\r\n        return shutDownMapper.deleteShutDownById(id);\r\n    }\r\n}\r\n\r\n",
            "vm/java/controller.java.vm":
                'package com.ruoyi.shutdown.controller;\r\n\r\nimport java.util.List;\r\nimport javax.servlet.http.HttpServletResponse;\r\n\r\nimport org.springframework.security.access.prepost.PreAuthorize;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.web.bind.annotation.GetMapping;\r\nimport org.springframework.web.bind.annotation.PostMapping;\r\nimport org.springframework.web.bind.annotation.PutMapping;\r\nimport org.springframework.web.bind.annotation.DeleteMapping;\r\nimport org.springframework.web.bind.annotation.PathVariable;\r\nimport org.springframework.web.bind.annotation.RequestBody;\r\nimport org.springframework.web.bind.annotation.RequestMapping;\r\nimport org.springframework.web.bind.annotation.RestController;\r\nimport com.ruoyi.common.annotation.Log;\r\nimport com.ruoyi.common.core.controller.BaseController;\r\nimport com.ruoyi.common.core.domain.AjaxResult;\r\nimport com.ruoyi.common.enums.BusinessType;\r\nimport com.ruoyi.shutdown.domain.ShutDown;\r\nimport com.ruoyi.shutdown.service.IShutDownService;\r\nimport com.ruoyi.common.utils.poi.ExcelUtil;\r\nimport com.ruoyi.common.core.page.TableDataInfo;\r\n\r\n/**\r\n * 关停Controller\r\n *\r\n * @author ruoyi\r\n * @date 2023-07-20\r\n */\r\n@RestController\r\n@RequestMapping("/shutdown/shutdown")\r\npublic class ShutDownController extends BaseController {\r\n    @Autowired\r\n    private IShutDownService shutDownService;\r\n\r\n/**\r\n * 查询关停列表\r\n */\r\n@PreAuthorize("@ss.hasPermi(\'shutdown:shutdown:list\')")\r\n@GetMapping("/list")\r\n    public TableDataInfo list(ShutDown shutDown) {\r\n        startPage();\r\n        List<ShutDown> list = shutDownService.selectShutDownList(shutDown);\r\n        return getDataTable(list);\r\n    }\r\n\r\n    /**\r\n     * 导出关停列表\r\n     */\r\n    @PreAuthorize("@ss.hasPermi(\'shutdown:shutdown:export\')")\r\n    @Log(title = "关停", businessType = BusinessType.EXPORT)\r\n    @PostMapping("/export")\r\n    public void export(HttpServletResponse response, ShutDown shutDown) {\r\n        List<ShutDown> list = shutDownService.selectShutDownList(shutDown);\r\n        ExcelUtil<ShutDown> util = new ExcelUtil<ShutDown>(ShutDown. class);\r\n        util.exportExcel(response, list, "关停数据");\r\n    }\r\n\r\n    /**\r\n     * 获取关停详细信息\r\n     */\r\n    @PreAuthorize("@ss.hasPermi(\'shutdown:shutdown:query\')")\r\n    @GetMapping(value = "/{id}")\r\n    public AjaxResult getInfo(@PathVariable("id") Long id) {\r\n        return AjaxResult.success(shutDownService.selectShutDownById(id));\r\n    }\r\n\r\n    /**\r\n     * 新增关停\r\n     */\r\n    @PreAuthorize("@ss.hasPermi(\'shutdown:shutdown:add\')")\r\n    @Log(title = "关停", businessType = BusinessType.INSERT)\r\n    @PostMapping\r\n    public AjaxResult add(@RequestBody ShutDown shutDown) {\r\n        return toAjax(shutDownService.insertShutDown(shutDown));\r\n    }\r\n\r\n    /**\r\n     * 修改关停\r\n     */\r\n    @PreAuthorize("@ss.hasPermi(\'shutdown:shutdown:edit\')")\r\n    @Log(title = "关停", businessType = BusinessType.UPDATE)\r\n    @PutMapping\r\n    public AjaxResult edit(@RequestBody ShutDown shutDown) {\r\n        return toAjax(shutDownService.updateShutDown(shutDown));\r\n    }\r\n\r\n    /**\r\n     * 删除关停\r\n     */\r\n    @PreAuthorize("@ss.hasPermi(\'shutdown:shutdown:remove\')")\r\n    @Log(title = "关停", businessType = BusinessType.DELETE)\r\n    @DeleteMapping("/{ids}")\r\n    public AjaxResult remove(@PathVariable Long[] ids) {\r\n        return toAjax(shutDownService.deleteShutDownByIds(ids));\r\n    }\r\n}\r\n',
            "vm/xml/mapper.xml.vm":
                '<?xml version="1.0" encoding="UTF-8" ?>\r\n<!DOCTYPE mapper\r\n        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"\r\n        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">\r\n<mapper namespace="com.ruoyi.shutdown.mapper.ShutDownMapper">\r\n\r\n    <resultMap type="ShutDown" id="ShutDownResult">\r\n            <result property="id" column="id"/>\r\n            <result property="orderId" column="order_id"/>\r\n            <result property="createTime" column="create_time"/>\r\n    </resultMap>\r\n\r\n    <sql id="selectShutDownVo">\r\n        select id, order_id, create_time\r\n        from shut_down\r\n    </sql>\r\n\r\n    <select id="selectShutDownList" parameterType="ShutDown" resultMap="ShutDownResult">\r\n        <include refid="selectShutDownVo"/>\r\n        <where>\r\n                        <if test="orderId != null  and orderId != \'\'">\r\n                            and order_id = #{orderId}\r\n                        </if>\r\n        </where>\r\n    </select>\r\n\r\n    <select id="selectShutDownById" parameterType="Long"\r\n            resultMap="ShutDownResult">\r\n            <include refid="selectShutDownVo"/>\r\n            where id = #{id}\r\n    </select>\r\n\r\n    <insert id="insertShutDown" parameterType="ShutDown">\r\n        insert into shut_down\r\n        <trim prefix="(" suffix=")" suffixOverrides=",">\r\n                    <if test="id != null">id,\r\n                    </if>\r\n                    <if test="orderId != null">order_id,\r\n                    </if>\r\n                    <if test="createTime != null">create_time,\r\n                    </if>\r\n        </trim>\r\n        <trim prefix="values (" suffix=")" suffixOverrides=",">\r\n                    <if test="id != null">#{id},\r\n                    </if>\r\n                    <if test="orderId != null">#{orderId},\r\n                    </if>\r\n                    <if test="createTime != null">#{createTime},\r\n                    </if>\r\n        </trim>\r\n    </insert>\r\n\r\n    <update id="updateShutDown" parameterType="ShutDown">\r\n        update shut_down\r\n        <trim prefix="SET" suffixOverrides=",">\r\n                    <if test="orderId != null">order_id =\r\n                        #{orderId},\r\n                    </if>\r\n                    <if test="createTime != null">create_time =\r\n                        #{createTime},\r\n                    </if>\r\n        </trim>\r\n        where id = #{id}\r\n    </update>\r\n\r\n    <delete id="deleteShutDownById" parameterType="Long">\r\n        delete\r\n        from shut_down where id = #{id}\r\n    </delete>\r\n\r\n    <delete id="deleteShutDownByIds" parameterType="String">\r\n        delete from shut_down where id in\r\n        <foreach item="id" collection="array" open="(" separator="," close=")">\r\n            #{id}\r\n        </foreach>\r\n    </delete>\r\n</mapper>',
            "vm/sql/sql.vm":
                "-- 菜单 SQL\r\ninsert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)\r\nvalues('关停', '2310', '1', 'shutdown', 'shutdown/shutdown/index', 1, 0, 'C', '0', '0', 'shutdown:shutdown:list', '#', 'admin', sysdate(), '', null, '关停菜单');\r\n\r\n-- 按钮父菜单ID\r\nSELECT @parentId := LAST_INSERT_ID();\r\n\r\n-- 按钮 SQL\r\ninsert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)\r\nvalues('关停查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'shutdown:shutdown:query',        '#', 'admin', sysdate(), '', null, '');\r\n\r\ninsert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)\r\nvalues('关停新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'shutdown:shutdown:add',          '#', 'admin', sysdate(), '', null, '');\r\n\r\ninsert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)\r\nvalues('关停修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'shutdown:shutdown:edit',         '#', 'admin', sysdate(), '', null, '');\r\n\r\ninsert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)\r\nvalues('关停删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'shutdown:shutdown:remove',       '#', 'admin', sysdate(), '', null, '');\r\n\r\ninsert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)\r\nvalues('关停导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'shutdown:shutdown:export',       '#', 'admin', sysdate(), '', null, '');",
            "vm/js/api.js.vm":
                "import request from '@/utils/request'\r\n\r\n// 查询关停列表\r\nexport function listShutdown(query) {\r\n    return request({\r\n        url: '/shutdown/shutdown/list',\r\n        method: 'get',\r\n        params: query\r\n    })\r\n}\r\n\r\n// 查询关停详细\r\nexport function getShutdown(id) {\r\n    return request({\r\n        url: '/shutdown/shutdown/' + id,\r\n        method: 'get'\r\n    })\r\n}\r\n\r\n// 新增关停\r\nexport function addShutdown(data) {\r\n    return request({\r\n        url: '/shutdown/shutdown',\r\n        method: 'post',\r\n        data: data\r\n    })\r\n}\r\n\r\n// 修改关停\r\nexport function updateShutdown(data) {\r\n    return request({\r\n        url: '/shutdown/shutdown',\r\n        method: 'put',\r\n        data: data\r\n    })\r\n}\r\n\r\n// 删除关停\r\nexport function delShutdown(id) {\r\n    return request({\r\n        url: '/shutdown/shutdown/' + id,\r\n        method: 'delete'\r\n    })\r\n}\r\n",
        };
        key = Object.keys(data)[0];
        code = Object.values(data)[0];
        const vmName = key.substring(
            key.lastIndexOf("/") + 1,
            key.indexOf(".vm")
        );
        var language = vmName.substring(
            vmName.indexOf(".") + 1,
            vmName.length
        );
       
        const result = hljs.highlight(language, code || "", true);
        return result.value || "&nbsp;";
    },

运行效果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45932157/article/details/131827034