Leon82 发布于 04月14, 2025

Mermaid简介

Mermaid简介

Mermaid是一个基于JavaScript的图表和图形生成工具,它允许用户使用类似于Markdown的简单文本语法来创建和修改复杂的图表。Mermaid的目标是让非专业人士也能轻松创建详细的图表,而无需使用复杂的绘图工具。

Mermaid的主要特点

  1. 简单的语法:使用类似Markdown的文本语法,易于学习和使用
  2. 多种图表类型:支持流程图、时序图、类图、甘特图、饼图、状态图等多种图表类型
  3. 易于集成:可以集成到各种平台,如GitHub、GitLab、Notion、VS Code等
  4. 实时渲染:支持实时预览,方便调整和修改
  5. 开源免费:完全开源,可以自由使用和修改

常见图表类型及语法示例

Mermaid支持多种图表类型,以下是一些常见的图表类型及其语法示例:

阅读全文 »

Leon82 发布于 09月19, 2023

网站http自动跳转https的一些琐记

缘起

笔者目前负责的一个可视化自助搭建平台,最开始是使用http部署的。随着迭代不断进行,特别是逐渐开始涉及到支付、涉密数据等需求,我们的站点就开始支持https。这时候的情况是,对于同一个网址,我们可以使用http和https协议,访问同一内容。

然而还需要解决几个问题才能完美解决问题。

阅读全文 »

Leon82 发布于 05月23, 2023

说说截图

笔者最近负责一款大屏在线编辑器。可以通过拖拽进行大屏搭建。

该编辑器可以在每个大屏或模版保存时候,对该大屏或模版的展现进行截图,后续在列表展示的时候,用户就能对该大屏或模版的大致展现有初步的了解。

同时,我们还可以在编辑大屏时候,将大屏的截图以JPG的形式导出来。

随着项目日渐复杂,我们的截图功能有时会出现截图失败的情况。为此我们需要分析下截图失败的原因,并解决之。

阅读全文 »

Leon82 发布于 02月22, 2023

浏览器绘制图表的N种方法

哆啦可视化大屏编辑器,是植根于浏览器的可视化平台。我们不难发现,哆啦的众多图表中,有多种实现方案。如,基于ECharts二次开发的BI图表,有基于Mapbox/leaflet等实现的地理图表,以及根据业务需要制作的基于Dom的内容、视频、图片等组件。 以ECharts为例,我们知道它的底层是基于zrender的。因此,ECharts也可以自由的切换渲染引擎。默认地,ECharts使用的是Canvas作为渲染器。如果你希望看到节点结构,你还可以使用下面的语句,用SVG作为渲染器。

阅读全文 »

Leon82 发布于 01月03, 2023

谈谈跨域

问题的由来

什么是跨域资源共享

根据MDN的表述,跨域资源共享(Cross-Origin Resource Sharing,简称CORS),一般也称为跨域请求,是一种基于 HTTP 头的机制,通过这种机制,服务器可以通知浏览器,允许非同源访问加载该服务器域内的资源。

其实这个表述还有一层隐含意思,就是如果服务器没告诉浏览器这些源可访问,那么浏览器就会禁止这个域访问该资源。

但是,有很多能够发起请求的客户端,比如命令行程序、比如 Postman,其实是可以随意的获取各个域名下的资源的。跨域资源获取,是一种浏览器的机制。如 Chrome ,也是可以关掉跨域限制的。

阅读全文 »

Leon82 发布于 08月31, 2022

画地图

可视化项目中,经常会遇到绘制地图的需求。除了地图自身的寻路、标注等需求外,可视化地图应用还会将业务数据在地理信息上进行拆分,并通过某种方式在地图上进行呈现,从而揭示出业务数据与地理数据的相关性。

像上图所示,即为2011年香港18区的人口密度图。

这篇文章里,我们就来讨论下,一个符合常识的在线地图的绘制方案。在正式开始之前,我们先明确一点,由于地图绘制是一项严肃且异常严谨的工作。因此,规范使用地图,一点都不能错!。本文旨在揭示在线地图的技术原理,如在产品中使用,需使用合规地图,并应取得政府认可的审图号并在产品中进行展示。

阅读全文 »

Leon82 发布于 04月06, 2020

谈谈小程序自动化

浏览器领域,我们有如selenium和puppeteer这样的库,可以自动化控制浏览器执行自动化脚本,以完成自动化端对端测试、定时自动化任务等。随着持续集成、持续部署也就是CI/CD的需求日益增长,自动化也成为必不可少的一环。

对于日益增长的小程序开发需求,我们能不能自动化控制小程序,进而达成自动测试、自动发布等任务呢?

阅读全文 »

Leon82 发布于 01月07, 2020

谈谈农历

还有不到20多天,2020年的农历春节就要到了。对于中国人来讲,农历春节是一年最隆重的节日。笔者曾经编写过农历计算的程序。为此调研过一段农历的算法。我国现行的农历,经过了若干次迭代,形成了如今的版本。农历,精确地反映了太阳、地球、月亮的天体运动的相对位置。2016年11月30日,农历中的二十四节气被正式列入联合国教科文组织人类非物质文化遗产名录。那么,农历是如何定义的,年份又是如何计算的,农历的月是如何划分的,二十四节气的天文学意义是什么以及如何用计算机推算农历?这篇文章将给大家做比较详细的解答。

阅读全文 »

Leon82 发布于 12月11, 2019

中不中奖,都是抽奖程序的锅?

转眼年关切近,很多业务都会考虑做一些抽奖活动,而各大公司在年底也会考虑开办年会。年会中,一般会安排抽奖环节。抽奖程序一般接收一个抽奖人员列表,通过算法产生一个随机数,再通过某种对应关系,将列表中的某个人与这个随机数匹配。这个匹配的人就是中奖的幸运儿了。

不出意外的话,年底这一个多月,通常是一年中随机函数被调用最频繁的一段时间。

阅读全文 »

Leon82 发布于 11月12, 2019

把你的NodeJS程序给没有NodeJS的人运行

标题很绕口,不过确实是一个很常见的需求。

众所周知,NodeJS程序开发简便且容易实现跨平台。但是,当你开发了一个NodeJS程序,想要分发给其他人运行的时候,你会发现,你往往需要对方也来安装一个NodeJS环境。理想的方式是,我们可以把我们的程序打包成一个可执行文件,这样,就可以直接在对方的电脑上运行你的程序了;同时,我们将代码打成二进制形式,可以在一定程度上保护源代码以及API等处理的逻辑。

阅读全文 »