{"id":16962226,"url":"https://github.com/trydofor/professional-meepo","last_synced_at":"2025-04-05T15:43:24.085Z","repository":{"id":41465646,"uuid":"313833185","full_name":"trydofor/professional-meepo","owner":"trydofor","description":"Meepo, Five are stronger than one. Divided they stand, united they fall.  a non-professional template engine that does not break the `master` syntax, and is based on the comments and markup of the `master` syntax.","archived":false,"fork":false,"pushed_at":"2024-03-04T04:25:04.000Z","size":408,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-11T12:41:27.227Z","etag":null,"topics":["java","template-engine"],"latest_commit_sha":null,"homepage":"https://wings.fessional.pro/b-meepo/","language":"Java","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/trydofor.png","metadata":{"files":{"readme":"readme-zh.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-18T05:33:08.000Z","updated_at":"2023-12-11T02:55:26.000Z","dependencies_parsed_at":"2023-12-25T10:51:46.668Z","dependency_job_id":"abbc097a-42c1-485a-aeb9-5a1c0ab6d87a","html_url":"https://github.com/trydofor/professional-meepo","commit_stats":null,"previous_names":["trydofor/professional-meepo"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trydofor%2Fprofessional-meepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trydofor%2Fprofessional-meepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trydofor%2Fprofessional-meepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trydofor%2Fprofessional-meepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trydofor","download_url":"https://codeload.github.com/trydofor/professional-meepo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247361598,"owners_count":20926642,"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":["java","template-engine"],"created_at":"2024-10-13T23:05:45.161Z","updated_at":"2025-04-05T15:43:24.068Z","avatar_url":"https://github.com/trydofor.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 米波英雄模板 (pro.fessional.meepo)\n\n![Maven Central](https://img.shields.io/maven-central/v/pro.fessional/meepo?color=00DD00)\n![Sonatype Snapshots](https://img.shields.io/nexus/s/pro.fessional/meepo?server=https%3A%2F%2Foss.sonatype.org)\n[![Coverage Status](https://coveralls.io/repos/github/trydofor/professional-meepo/badge.svg)](https://coveralls.io/github/trydofor/professional-meepo)\n\n\u003e 中文 🇨🇳 | [English 🇺🇸](readme.md)\n\n米波，地卜师，主身和分身具有同等的技能，一荣俱荣，一损俱损的待遇。\n一个基于`母版`语法注释和标记的不破坏`母版`语法的非专业模板引擎。\n\n![meepo](meepo_full.png)\n\n现代模板引擎自身的语法，会破坏目标文件的语法，会干扰目标文件的预览和编辑。\n米波解决以上问题，仅做静态翻译和有限的动态控制，类似C的宏功能，性能高效。\n\n* 从`java`生成`*.java`，模板和目标文件都是可编译\n* 从`sql`生成`*.sql`，模板和目标文件都可以执行\n* 从`htm`生成`*.htm`，模板和目标文件都可以预览\n* 占位符模板，支持自定义变量边界和变量转义(spring痛点)\n* java体系内，灵活高效的自定义函数（动态，静态，运行时）\n\n## 如何使用\n\n① 自己`clone`和`install`最豪横。\n\n② 使用 maven central 比较稳妥。\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003epro.fessional\u003c/groupId\u003e\n    \u003cartifactId\u003emeepo\u003c/artifactId\u003e\n    \u003cversion\u003e${meepo.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n③ 使用 SNAPSHOT 与时俱进。\n\n```xml\n\u003crepository\u003e\n    \u003cid\u003eoss-sonatype\u003c/id\u003e\n    \u003cname\u003eoss-sonatype\u003c/name\u003e\n    \u003curl\u003ehttps://oss.sonatype.org/content/repositories/snapshots/\u003c/url\u003e\n    \u003csnapshots\u003e\n        \u003cenabled\u003etrue\u003c/enabled\u003e\n    \u003c/snapshots\u003e\n\u003c/repository\u003e\n```\n\n## 独立使用\n\n`Meepo`封装了常用方法和缓存机制。能够满足一般的场景需求。\n\n* 文件模板 - 以`Meepo`为入口, `#parse`, `#merge`\n* 占位模板 - 以`Holder`为入口，`#piece`\n* 解析字串 - 以`Parser`构造`Gene`, `#parse`\n\n如果有定制需要，可以自定义使用`Parser`和`Gene`来组合出需要的工具类。\n\n## 集成Mvc\n\n`spring-mvc`子工程，集成`SpringMvc`，可独立使用，也可预处理其他模板\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003epro.fessional.meepo\u003c/groupId\u003e\n    \u003cartifactId\u003espring-mvc\u003c/artifactId\u003e\n    \u003cversion\u003e${meepo-spring.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## 集成Spel\n\n`spring-spel`子工程，注册`spel`引擎，提供`Bean`和`SpEL`能力\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003epro.fessional.meepo\u003c/groupId\u003e\n    \u003cartifactId\u003espring-spel\u003c/artifactId\u003e\n    \u003cversion\u003e${meepo-spring.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## 详细文档\n\n* \u003chttps://wings.fessional.pro/zh/b-meepo/\u003e\n* \u003chttps://github.com/fessionalpro/wings-doc/tree/main/src/zh/b-meepo/\u003e\n* \u003chttps://gitee.com/fessionalpro/wings-doc/tree/main/src/zh/b-meepo/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrydofor%2Fprofessional-meepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrydofor%2Fprofessional-meepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrydofor%2Fprofessional-meepo/lists"}