2 个版本

0.1.1 2023 年 3 月 25 日
0.1.0 2023 年 3 月 25 日

#1868开发工具

每月 44 次下载

MIT 许可证

11KB
219

花粉编程语言

一种具有 XML 语法的编程语言。脚本是由运行时提供的复杂指令序列。可以通过使用通用插件向运行时添加新元素标签。

HTML 模板 是一个 HTML 模型。模板是预先格式化的 HTML,可以在其中插入文本或图像内容。大多数现代模板语言都包含某种形式的编程。Pollen 也这样做,但使用 XML 语法,而不必创建全新的语法。因此,新手程序员可以在学习如何编码时立即熟悉 Pollen 语言。

XML 标签表示数据结构和包含元数据。

最初的想法是创建一个 通用网关接口 (CGI) 可执行文件和一个 Apache 模块。类似于 PHP。但 Pollen 不会解释脚本,而是加载编译后的动态库。它提供了一个简单的模板引擎,同时保持了编译语言的性能。

添加了 Apache 运行时库 (APR) 来确保良好的安全性。APR 提供动态数组和内存池来缓解使用后释放、缓冲区溢出和缓冲区下溢。更多信息可以在 这里 找到。

libpollen 提供了与模板化运行时可执行文件无关的常用函数。插件使用 libtemplatizer 进行代码重用。

插件

在计算机中,一个 插件(或插件、附加组件、附加组件、附加组件、附加组件)是一个软件组件,它向现有的计算机程序添加特定功能。当程序支持插件时,它允许自定义。

输入插件读取客户端的 URL 编码JSON 输入。然后,使用 '@' 符号在脚本中使用这些值。可以使用 'templatizer' 标签选择输入插件。

可以使用动态链接器插件加载特定编程语言编写的程序。插件通过在“templatizer”元素上的“lib”属性进行指定。模板可以使用“args”XML属性设置插件参数。

一个名为ld-exec.so的链接器可以用来运行Linux上以shebang开头的二进制程序或文本脚本。

一些插件是完整的Web应用程序。使用变量名设置文本占位符变量,这些变量可以在XHTML模板占位符中使用。不同的网站可以使用相同的Templatier应用插件,但具有不同的用户界面。

示例

以下是一个用Pollen编写的程序示例。它打印来自两个用不同语言编写的Pollen插件的hello world。请注意,这个示例以及其他Pollen程序的语法有意使其与XML语法相似。

<!-- Copyright (C) 2023 Mateus de Lima Oliveira -->
<templatizer lib="../plugins/input/in_helloworld.so">
<templatizer lib="../plugins/input/helloworld-rs/target/release/libhelloworld_rs.so">
<templatizer lib="../plugins/net/headers.so">
<html>
  <head>
    <meta charset="UTF-8"/>
    <title>Hello world pipeline</title>
  </head>
  <body>
    <h1>Hello world pipeline</h1>
    <p>Hello world Templatizer pipeline in multiple programming languages:</p>
    <ul>
      <li>C: <span>@</span></li>
      <li>Rust: <span>@</span></li>
    </ul>
    <p>Have a nice day!</p>
    <templatizer lib="../plugins/net/copyright.so">
    <p>@</p>
    </templatizer>
  </body>
</html>
</templatizer>
</templatizer>
</templatizer>

更多测试和示例可以在源代码树的测试目录中找到。

从源代码编译

Pollen仅在Linux上进行了测试。

它需要

root@debian:~# make dependencies
mateus@debian:~$ make
mateus@debian:~$ make test
root@debian:~# make install

Termux

使用以下命令编译适用于Termux的Pollen

mateus@debian:~$ make termux
root@debian:~# make install

调试

启用调试可以通过将DEBUG环境变量设置为“y”来完成

mateus@debian:~$ DEBUG=y make

开发路线图

以下是我的未来开发

  • 将Quick转换为一系列守护进程
  • 从Quick中删除autotools
  • 合并Quick和Pollen
  • 修复错误

贡献

如果您喜欢这个项目,请考虑捐赠以帮助我进一步开发。:)

依赖项