{"id":19151708,"url":"https://github.com/zhs007/adarender","last_synced_at":"2026-06-14T14:30:17.719Z","repository":{"id":38552917,"uuid":"199020862","full_name":"zhs007/adarender","owner":"zhs007","description":"adarender是一个开箱即用的markdown渲染器","archived":false,"fork":false,"pushed_at":"2023-01-06T02:15:13.000Z","size":4894,"stargazers_count":0,"open_issues_count":22,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-04T04:19:18.272Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhs007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-26T13:24:44.000Z","updated_at":"2021-01-08T13:21:56.000Z","dependencies_parsed_at":"2023-02-05T02:46:21.946Z","dependency_job_id":null,"html_url":"https://github.com/zhs007/adarender","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fadarender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fadarender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fadarender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fadarender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhs007","download_url":"https://codeload.github.com/zhs007/adarender/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240236361,"owners_count":19769580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T08:15:29.933Z","updated_at":"2026-06-14T14:30:17.682Z","avatar_url":"https://github.com/zhs007.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ada Render\n\n### 概要\n\n`adarender`是一个`开箱即用`的`markdown`渲染器，除了对`github`的`markdown`语法支持外，它还有一套自己扩展的图表语法。  \n`adarender`可以通过命令行或 grpc 服务 2 种方式来渲染页面。\n\n`adarender`的初衷是提供一套方便的文档输出方案，让用户专注于文档本身，而不需要关注复杂的 css 排版技巧。\n\n`adarender`适合用于文档或报表输出的渲染步骤。  \n`adarender`适用于研发阶段的数据分析中间件的输出模块。  \n\n`adarender`扩展了基本的markdown语法，现在已经支持：\n\n- 线图\n- 柱形图\n- 饼图\n- treemap\n- sunburst\n- 流程图\n- 类图\n- 居中段落\n- 空行\n- 自动hash图片\n- 商品组件\n\n### 安装 \u0026 使用\n\n可以通过 npm 安装，然后命令行方式使用。\n\n```bash\nnpm i adarender -g\n```\n\n然后，通过这样来渲染。\n\n```bash\nadarender exportmd -o samples/output001.html -t samples/template.hbs samples/sample001.md\n```\n\n例子文件[在这里](https://github.com/zhs007/adarender/blob/master/samples/sample001.md)。\n最后生成的页面如下:\n\n![output](https://github.com/zhs007/adarender/blob/master/samples/output.png)\n\n### 作为 markdown-it 的插件使用\n\n```bash\nnpm i adarender --save\n```\n\n因为 `adarender` 是一系列插件，所以不能用常规的 use 来使用，而是用 registerAllPlugins 来完成注册。\n\n```js\n'use strict';\n\nconst MarkdownIt = require('markdown-it');\nconst adarender = require('adarender');\n\nconst md = new MarkdownIt({\n  highlight: (str, lang) =\u003e {\n    if (lang \u0026\u0026 hljs.getLanguage(lang)) {\n      try {\n        return (\n          '\u003cpre class=\"hljs\"\u003e\u003ccode\u003e' +\n          hljs.highlight(lang, str, true).value +\n          '\u003c/code\u003e\u003c/pre\u003e'\n        );\n      } catch (__) {}\n    }\n\n    return (\n      '\u003cpre class=\"hljs\"\u003e\u003ccode\u003e' + md.utils.escapeHtml(str) + '\u003c/code\u003e\u003c/pre\u003e'\n    );\n  }\n});\n\nadarender.registerAllPlugins(md, {});\n```\n\n### 接入hexo\n\n可以直接使用 ``hexo-renderer-adarender`` 。\n\n### 插件开发\n\nadarender插件分为2部分，一部分是node.js这边的模板解析模块，一部分是前端页面js代码。\n\nnode.js这边相对简单，我们其实是将yaml通过一个模板(少量代码)，解析成html。  \n最初选择的模板引擎是``handlebars``，实际使用中发现这个引擎太过于古老，有非常多的不方便，后来逐步替换为``ejs``，但这仅仅影响到某些插件，不影响全局。  \n所以，如果你喜欢，你可以使用其它的任何模板引擎。\n\n前端js代码这边，我们现在代码放在browser目录下，最后会webpack打包到dist目录下，建议通过``jsdelivr``的cdn访问。  \n前面node.js用到的html里的js代码，最好能放到browser里开发。  \nbrowser目录下代码，可以使用ES6语法。  \n所有前端需要用到的资源，包括css和js都应该通过webpack打包发布到dist目录下。  \n如果有必要，可以修改``webpack.config.js``文件。\n\n开发完以后，通过npm来build。\n\n```js\nnpm run build\n```\n\n### 更新记录\n\n##### v0.6\n\n- 切换 ``handlebars`` 到 ``ejs``。\n- 前端项目结构调整，取消public目录。\n- 插件结构微调，例子放独立目录。\n\n##### v0.5\n\n- 结构调整，前端js用webpack打包。\n- 各种引用和依赖通过``jsdelivr``加载。\n- 增加了非 `fence rule` 的标记处理。\n- 新增Hexo插件。\n\n##### v0.3\n\n- 加入Action工作流。\n- 代码会自动发布到npm。\n- 代码会自动发布到DockerHub。\n\n##### v0.2\n\n- 支持grpc服务。\n- 提供Docker部署。\n- Golang下的客户端库adacore\n\n##### v0.1\n\n- 搭建基本框架。\n- 基本echart插件体系。\n- 支持命令行处理。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhs007%2Fadarender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhs007%2Fadarender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhs007%2Fadarender/lists"}