如何轻松和安全地构建的满足合规要求的智能产品,实现业务需求?4月26日,告诉你答案! 了解详情
写点什么

MDJS:可将 JavaScript 添加到 Markdown,创建交互式文档

  • 2020 年 4 月 27 日
  • 本文字数:1272 字

    阅读完需:约 4 分钟

MDJS:可将JavaScript添加到Markdown,创建交互式文档

Open Web Components(@OpenWc)创建者Thomas Allmer发布了MDJS,这是一种 Markdown 变体,支持在 Markdown 文档中包含可运行的 JavaScript 代码。MDJS 可以解释为常规的 Markdown 内容,也可以进一步升级为带有 Web 组件的交互式文档。


MDJS 通过三个新结构增强了 Markdown 的代码块语法:script、story、preview-story。


以下 Markdown 源代码:


​```js scriptimport './my-component.js';  ​```
# This is my component <my-component></my-component>
复制代码


将生成下面的 JavaScript 和 HTML 代码:


import './my-component.js';  
<h1>This is my component</h1><my-component></my-component>
复制代码


js代码块的script注解用来加载 Web 组件并在 Markdown 源代码中使用。


第二个注解 story 用法如下:


​```js script  import './demo-wc-card.js';  import { html } from 'lit-html';  ​```  
# This is my component
​```js story export const demo = () => html` <demo-wc-card header="HEADER"></demo-wc-card> `; ​```
复制代码


可编辑演示文档链接


上例中嵌入的 JavaScript 包含一个工厂函数,使用 lit-html 模板来生成 HTML。以上代码将生成以下 JavaScript 和 HTML:


import './demo-wc-card.js';import { html } from 'lit-html';
export const demo = () => html` <demo-wc-card></demo-wc-card>`;
<h1>This is my component</h1><mdjs-story mdjs-story-name="demo"> #shadow-root (open) <demo-wc-card></demo-wc-card></mdjs-story>
复制代码


可编辑演示文档链接


Web 组件是由 MDJS 提供的,它封装了用户提供的 Web 组件。preview-story 添加了与 story 类似的功能,不过组件会有边框,还会有一个按钮,用来显示/隐藏实际的源代码。


MDJS 读起来像标准的 Markdown,不需要修改就可以在 MDJS 上下文或场景之外使用。代码块将正常显示代码。不过,MDJS 增强了标准的 Markdown 行为(通过加载的 Web 组件所提供的额外交互性)和源代码预览功能。这样,开发人员就可以使用 Markdown、JavaScript 和 Web 组件创建交互式演示文档。举例来说,开发人员可以用它记录基于 Web 组件的系统设计过程。


到目前为止,MDJS 既可以通过 es-dev-server 在本地使用,也可以通过 Storybook 使用,还可以在 GitHub 页面(例如 README 页面或问题页面)或在webcomponents.dev IDE 中使用。


Allmer 将 MDJS 的用例总结如下:


MDJS 是一种可以以多种不同的方式显示的格式。

让漂亮的文档随处可见。

在本地、已发布的 Storybook、GitHub 或 npmjs 上,即使没有直接的支持,也没有问题,只要可能,它就可升级为交互式演示文档。


MDJS 提供了与 MDX 类似的功能,后者在 Markdown 中包含了JSX。JSX 是为了与 React 生态系统进行交互而开发的,而 MDJS 依赖于已在大多数浏览器中实现的标准 JavaScript 和 Web 组件。此外,MDJS 源代码可以在任何地方使用。


MDJS 的路线图包括改进样式,支持更多的渲染器,而不仅仅是 litt -html,高亮显示代码段,等等。开发人员可以点击这里查看官方文档。


原文链接:


New MDJS Markup Language Adds JavaScript to Markdown for Interactive Documentation


2020 年 4 月 27 日 09:002226

评论

发布
暂无评论
发现更多内容

TCP 两次握手为什么无法阻止历史连接?

华为云开发者社区

TCP 报文 握手 RST 报文 两次握手

学习乐器的好处

Tiger

28天写作

小红书基于 StarRocks 构建广告数据中心的实践

StarRocks

数据库 数据分析 StarRocks

Java泛型可行与不可行

编程江湖

AI新手语音入门:认识词错率WER与字错率CER

华为云开发者社区

语音识别 词错率 WER 字错率 CER

Log4j2 消停了,Logback 开始塌房了?

程序猿DD

Java 日志 漏洞

react源码解析15.scheduler&Lane

zz1998

React

腾讯云商用密码合规解决方案,亮相2021商用密码应用创新高端研讨会

腾讯安全云鼎实验室

商用密码 云上安全 数字生态 安全服务

Flutter 完美的验证码输入框(2 种方法)【Flutter专题25】

坚果

flutter 28天写作 12月日更

Linxu云计算这样学效率更快,Linux基础篇,expect-正则表达式-sed-cut的使用

学神来啦

Linux centos sed linux运维 expect

模块七 王者荣耀商城异地多活架构设计

小朱

架构实战营

react源码解析16.concurrent模式

zz1998

React

如何用建木CI生成Allure报表

Jianmu

CI/CD Allure 国产开源

Java开发之线程、多线程,线程池面试题

@零度

多线程 线程池 JAVA开发

Azkaban工作流调度

恒生LIGHT云社区

工作流 工作流调度 任务调度 Azkaban

PassJava 开源(五) :SpringCloud Alibaba 组件简介 #私藏项目实操分享#

悟空聊架构

SpringCloud 28天写作 passjava 悟空聊架构 12月日更

从科技出发,中科柏诚信云链为中小企业融资注入新动能

联营汇聚

了解 Java 中的锁 Lock

Ayue、

ReentrantReadWriteLock ReentrantLock lock

Gartner技术成熟曲线详解

Kafka中文社区

如何有效使用预训练语言模型

云智慧AIOps社区

算法 智能运维 云智慧 语言模型 南加州大学

打造“智慧之眼”与“创新之轮”,华睿科技助推制造业智能升级

科技新消息

群聊泄密敲响警钟,WorkPlus织密信息安全“防护网”

WorkPlus Lite

使用 USE 方法分析系统性能瓶颈

耳东@Erdong

监控 28天写作 use 12月日更

“数”驰天下,华为云DRS 高效支撑T3出行平稳迁移

华为云开发者社区

数据库 数据迁移 华为云DRS T3出行

前端开发之JS中编写For循环的方法

@零度

JavaScript 前端开发

拿捏SQL数据分析:从基础破冰到面试题解

博文视点Broadview

性能监控之 Golang 应用接入 Prometheus 监控

zuozewei

Prometheus 性能测试 性能监控 Go 语言 12月日更

给弟弟的信第22封|写技术博客有哪些益处?

大菠萝

28天写作

服务器数量从21台降至3台,TDengine在跨越速运集团的落地实践

TDengine

数据库 tdengine 时序数据库

DM 分库分表 DDL “乐观协调” 模式介绍丨TiDB 工具分享

PingCAP

MDJS:可将JavaScript添加到Markdown,创建交互式文档_前端_Bruno Couriol_InfoQ精选文章