代码展示

用raw-loader可以让代码显示到页面上,这样就可以达到展示如何使用ui组件的效果,比如naive ui

首先安装依赖,再写如下代码,可以将指定文件转过来,所以要单独将展示的代码搬到另一个文件里
否则,会把其他多余代码也写到里面,而我们只展示使用相关的代码

const code = require('!!raw-loader!./icon.example.tsx')

然后将code作为props传入一个封装好的,专门用来展示的组件里,
就可以渲染了,
但是网上都没有怎么改样式,因为初始的样式实在是难看,通过浏览器查看css样式,发现这些内置样式是内联样式,要改只能用 !important ,我试着用了,发现要是后面想改的话,还是比较麻烦的,

所以我觉得这种应该是可以修改样式的,然后我就去查看源码,发现它内置有一堆themes,但是官方文档没写怎么使用


然后发现可以用另一个命令导出

所以我试着写了如下的

import theme from 'prism-react-renderer/themes/vsDark'
console.log(theme);

发现theme能输出
然后就考虑怎样把这个加进去,一猜就是props,这个时候typescript的优势就出来了,就算我没有文档,主要是文档也没写这个,我也可以根据类型来看,
比如我点进去看到如下,就知道可以写theme


theme已经得到了,直接放上去就行了,

import theme from 'prism-react-renderer/themes/vsDark'
const code = (<Highlight {...defaultProps} code={props.code} language="tsx" theme={theme}>{({ className, style, tokens, getLineProps, getTokenProps }) => (<preclassName={className}// style={style}>{tokens.map((line, i) => (// tslint:disable-next-line: tsx-key<div {...getLineProps({ line, key: i })}>{line.map((token, key) => (// tslint:disable-next-line: tsx-key<span {...getTokenProps({ token, key })} />))}</div>))}</pre>)}</Highlight>);

然后把code放进标签里面直接渲染就行,根据文件夹可以选多种主题

最终效果

还是不简约,试了所有theme,我推荐使用github的

import theme from 'prism-react-renderer/themes/github'


实在不行,再自己调调颜色也行

一键复制

成品效果图
变到

一开始打算用原生js写,但是在tsx里面好像得不到目标标签,一时陷入死胡同,然后就改用了一个模块react-copy-to-clipboard

import { CopyToClipboard } from 'react-copy-to-clipboard'

然后设置useState函数,来一个定时器,点击就变√,一秒后再变回来
内部渲染根据这个state的bool值来分别渲染对应的svg
要复制的txt,提前声明

  const codetxt = props.codeconst codeCopy = () => {setCodeCopy(!isCodeCopy)setTimeout(() => {setCodeCopy(false)}, 1000);}const [isCodeCopy, setCodeCopy] = useState(false)<CopyToClipboard text={codetxt} onCopy={codeCopy}>{/* 选中就变成√,一秒后再变回去 */}<span onClick={codeCopy}>{isCodeCopy ? (<i className='demo-icon demo-icon-copied' ><svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M427.2128 661.1456l364.2368-380.5184a38.4 38.4 0 0 1 55.5008 53.1456l-392.0896 409.6a38.4 38.4 0 0 1-55.6032-0.1536l-222.3104-233.984a38.4 38.4 0 1 1 55.7056-52.9408l194.56 204.8512z" p-id="2387" fill="#187235"></path></svg></i>) : (<i className='demo-icon demo-icon-copy' ><svg viewBox="0 0 544 560" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M399.503 143.667C399.319 152.501 406.332 159.812 415.167 159.997C424.001 160.181 431.312 153.168 431.497 144.333L399.503 143.667ZM416 120L431.997 120.333C431.999 120.207 432 120.081 432 119.954L416 120ZM360 64L360.046 48.0001C360.03 48 360.015 48 360 48L360 64ZM144 64V48C143.984 48 143.968 48 143.953 48.0001L144 64ZM80 128L64.0001 127.953C64 127.968 64 127.984 64 128L80 128ZM80 344H64C64 344.015 64 344.03 64.0001 344.046L80 344ZM136 400L135.954 416C135.97 416 135.985 416 136 416L136 400ZM160 416C168.837 416 176 408.837 176 400C176 391.163 168.837 384 160 384V416ZM217 160H439V128H217V160ZM439 160C461.644 160 480 178.356 480 201H512C512 160.683 479.317 128 439 128V160ZM480 201V423H512V201H480ZM480 423C480 445.644 461.644 464 439 464V496C479.317 496 512 463.317 512 423H480ZM439 464H217V496H439V464ZM217 464C194.356 464 176 445.644 176 423H144C144 463.317 176.683 496 217 496V464ZM176 423V201H144V423H176ZM176 201C176 178.356 194.356 160 217 160V128C176.683 128 144 160.683 144 201H176ZM431.497 144.333L431.997 120.333L400.003 119.667L399.503 143.667L431.497 144.333ZM432 119.954C431.946 100.888 424.347 82.6173 410.865 69.1349L388.238 91.7624C395.741 99.2658 399.97 109.434 400 120.046L432 119.954ZM410.865 69.1349C397.383 55.6526 379.112 48.0543 360.046 48.0001L359.954 79.9999C370.566 80.0301 380.734 84.2589 388.238 91.7624L410.865 69.1349ZM360 48H144V80H360V48ZM143.953 48.0001C122.767 48.0627 102.467 56.5064 87.4868 71.4868L110.114 94.1142C119.117 85.1118 131.316 80.0376 144.047 79.9999L143.953 48.0001ZM87.4868 71.4868C72.5064 86.4673 64.0627 106.767 64.0001 127.953L95.9999 128.047C96.0376 115.316 101.112 103.117 110.114 94.1142L87.4868 71.4868ZM64 128V344H96V128H64ZM64.0001 344.046C64.0543 363.112 71.6526 381.383 85.1349 394.865L107.762 372.238C100.259 364.734 96.0301 354.566 95.9999 343.954L64.0001 344.046ZM85.1349 394.865C98.6173 408.347 116.888 415.946 135.954 416L136.046 384C125.434 383.97 115.266 379.741 107.762 372.238L85.1349 394.865ZM136 416H160V384H136V416Z" fill="currentColor"></path></svg></i>)}</span></CopyToClipboard>

这样就能达到目的了

【voice-ui】代码用例展示并改主题配色,添加一键复制功能相关推荐

  1. 「构建企业级推荐系统系列」推荐系统的UI交互与视觉展示

    作者 | gongyouliu 编辑 | auroral-L 推荐系统是一个偏工程应用的领域,要想在商业产品中引入推荐系统,利用推荐系统来帮助用户过滤信息,除了构建精准高效的推荐算法外,还需要设计适合 ...

  2. [转]ASP.NET(C#)常用代码30例

    [转]ASP.NET(C#)常用代码30例 1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?i ...

  3. 推荐系统的UI交互与视觉展示

    点击上方"大数据与人工智能","星标或置顶公众号" 第一时间获取好内容 作者丨gongyouliu 编辑丨P新 这是作者的第27篇文章,约1.2w字,阅读需60 ...

  4. 如何构建一个理想UI代码表达的自动化工具?

    作者:闲鱼技术-吉丰 基于设计师产出的 Sketch,甚至是一张 PNG,就能自动生成高可维护可扩展的 UI 代码,质量堪比一位资深前端工程师, 一定是一件让整个大前端领域都为之尖叫的事情. 出于这样 ...

  5. 【字体】写代码编程字体展示推荐

    写代码编程字体展示推荐 零.适合写代码编程的字体 什么样的字体适合写代码用?一般来讲,写代码的字体要求字母的宽度一致.轮廓清晰美观.l1i,0oO易于分辨.清晰易分辨的标点等,甚至有强迫症的还要中文与 ...

  6. VGG16全卷积网络 以VGG代码为例

    文章目录 全卷积网络 以VGG代码为例 发展历史 VGG 全卷积VGG16的结构: 卷积层代替全连接 1X1的卷积的作用 全卷积网络 以VGG代码为例 发展历史 VGG VGG之所以经典,是因为VGG ...

  7. 旅游景区管理系统(四 )代码介绍和展示(MFC实现)

    源码已上传至github:https://github.com/simplify23/Travel-Manage-System 感兴趣的可以自行查看,下面介绍一下界面和部分其他功能. 旅游景区管理系统 ...

  8. WOW原始UI代码分析【ZoneText】

    这个是我自己分析WOW原始UI代码后,对一些比较关键的部分,我记录下来的 这次我写的是ZoneText.xml和ZoneText.lua,是显示地区文字的UI,在Interface/FrameXML里 ...

  9. python代码转成php代码的工具 或者go转成php的代码,想把odoo改成成php swoole当成web服务+go的架构

    目前市场上有一些可以将Python代码转换为PHP代码的工具,例如: Transcrypt:Transcrypt是一个将Python代码转换为JavaScript和PHP的工具.它可以将Python代 ...

最新文章

  1. vs2015编译tensorflow v1.5
  2. smartforms输出格式设置说明
  3. Android之靠谱的把图片和视频插入手机系统相册
  4. apache.camel_带有Spring Boot 2支持的Apache Camel 2.22发布
  5. 16. Zend_Controller
  6. 周末巨献:100+诡异的数据集,20万Eclipse Bug、死囚遗言
  7. 自然语言处理——基于预训练模型的方法——第2章 自然语言处理基础
  8. Word 标题后自动添加分页符、分节符显示与查看
  9. 数字信号处理3个作业-----作业3自相关与Burg求解AR模型系数以估计其功率谱
  10. 如何用Windows自带画图工具将图片设置成透明背景
  11. 《FLUENT 14.0超级学习手册》——第1章 流体力学与计算流体力学基础1.1 流体力学基础...
  12. Spring缺少aspectjweaver.jar异常
  13. 没有公网IP,3个路由器就能解决连锁视频监控
  14. 如何对一个复杂网络的图进行分析? 计算复杂网络相关的所有参数 批处理
  15. 水牛城大学计算机科学,【揭秘】美国纽约州立水牛城大学计算机科学与工程专业申请条件有哪些?...
  16. Android 8.0(Android O) AccountManager 行为变更
  17. 百度地图js简单路径规划
  18. java全月应纳税所得额_全月应纳税所得额是什么意思?
  19. OneClock for mac(简约时钟工具)
  20. python绘图案例——递归绘制分形树

热门文章

  1. 【WPF】附加事件--《深入浅出WPF》
  2. wangeditor富文本编辑器的一些坑
  3. 读《C专家编程》总结(一)
  4. 修改SpringBoot内置Tomcat的端口
  5. Android君子剑之ScrollView之君子好逑
  6. 商城类小程序源码,拼团、砍价、秒杀、优惠券,客服系统一套源码全搞定!
  7. 考研数据结构中的经典算法(总归纳)
  8. YUYV(YUV422)转YUV420算法
  9. Hadoop面试题汇总-20221031
  10. win10 C盘居然一夜间满了,清理C盘过大