ما هو – وما ليس؟
JML (JSON-Inspired Markup Language) هي لغة ترميز مبتكرة مستوحاة من هيكل JSON و DSL، مصممة لنظام Ascoos OS والويب الحديث.
هدفها تقديم بديل خفيف الوزن وآمن وسهل الاستخدام لـ HTML التقليدي، مع التركيز على التوافق مع الذكاء الاصطناعي، اللامركزية (Web5)، والصياغة الدنيا.
باختصار
هي
ليست
JML مقابل HTML – مقارنة 2026
| الخاصية | JML | HTML5 |
|---|---|---|
| الحجم (Hello World مضغوط) | 64 حرفًا | 108 أحرف |
| مع meta + viewport | 177 حرفًا | 212 حرفًا |
| الانخفاض المتوسط | 16–40% | – |
| الكود الروتيني | لا يوجد | DOCTYPE، head، body... |
| أمان XSS | آمن (AST) | يعتمد على المطور |
| المنطق القابل للتنفيذ (ماكروات) | نعم | لا |
| التشفير | نعم (WIC) | لا |
| الدعم الأصلي للمتصفح | لا (امتداد) | نعم |
AST – قلب JML
JML ليست مجرد ترميز. إنها DSL مع AST أصلي – ترميز عام 2030، متاح اليوم.
تمكّن الماكروات الدلالية، التحويلات، التصحيح، والأمان بدون XSS.
مثال على هيكل AST – يمكّن التحقق، الماكروات والعرض الآمن
جرب JML الآن
html {
head {
meta:charset('UTF-8')
link:rel('stylesheet'),href('https://cdn.ascoos.com/bootlib/css/bootlib.min.css')
}
body:class('dark-theme') {
h1{`مرحبًا بك في JML!`}
p{`ترميز خفيف لـ Ascoos OS.`}
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://cdn.ascoos.com/bootlib/css/bootlib.min.css">
</head>
<body class="dark-theme">
<h1>مرحبًا بك في JML!</h1>
<p>ترميز خفيف لـ Ascoos OS.</p>
</body>
</html>
JML (اليسار) ينتج نفس HTML بالضبط (اليمين) – مع انخفاض 17% في عدد الأحرف.
JML Studio والكود المساعد المولد
TAG html
TAG head
TAG meta CHARSET 'UTF-8'
TAG link REL 'stylesheet' HREF 'https://cdn.ascoos.com/bootlib/css/bootlib.min.css'
TAG body CLASS 'dark-theme'
TAG h1
TEXT 'مرحبًا بك في JML!'
TAG p
TEXT 'ترميز خفيف لـ Ascoos OS.'
{
"type": "group",
"name": null,
"value": null,
"attributes": [],
"children": [
{
"type": "tag",
"name": "html",
"value": null,
"attributes": [],
"children": [
{
"type": "tag",
"name": "head",
"value": null,
"attributes": [],
"children": [
{
"type": "tag",
"name": "meta",
"value": null,
"attributes": [
{
"type": "attribute",
"name": "charset",
"value": "UTF-8",
"attributes": [],
"children": []
}
],
"children": []
},
{
"type": "tag",
"name": "link",
"value": null,
"attributes": [
{
"type": "attribute",
"name": "rel",
"value": "stylesheet",
"attributes": [],
"children": []
},
{
"type": "attribute",
"name": "href",
"value": "https://cdn.ascoos.com/bootlib/css/bootlib.min.css",
"attributes": [],
"children": []
}
],
"children": []
}
]
},
{
"type": "tag",
"name": "body",
"value": null,
"attributes": [
{
"type": "attribute",
"name": "class",
"value": "dark-theme",
"attributes": [],
"children": []
}
],
"children": [
{
"type": "tag",
"name": "h1",
"value": null,
"attributes": [],
"children": [
{
"type": "content",
"name": null,
"value": "مرحبًا بك في JML!",
"attributes": [],
"children": []
}
]
},
{
"type": "tag",
"name": "p",
"value": null,
"attributes": [],
"children": [
{
"type": "content",
"name": null,
"value": "ترميز خفيف لـ Ascoos OS.",
"attributes": [],
"children": []
}
]
}
]
}
]
}
]
}
كلا الشكلين المولدين، DSL (اليسار) و AST (اليمين)، منظمان للاستخدام في WebAI.
العرض من جانب الخادم
<?php
/**
* @ASCOOS-NAME : Ascoos OS
* @ASCOOS-VERSION : 26.0.0
* @ASCOOS-SUPPORT : support@ascoos.com
* @ASCOOS-BUGS : https://issues.ascoos.com
*
* @CASE-STUDY : jml_to_html_renderer.php
* @fileNo : ASCOOS-OS-CASESTUDY-SEC00268
*
* @desc Parses JML syntax into HTML using THTML, generates full page from nested structure.
*
* @since PHP 8.2.0
*/
declare(strict_types=1);
use ASCOOS\OS\Kernel\HTML\THTML;
use ASCOOS\OS\Kernel\Files\TFilesHandler;
$properties = [
'output' => './generated_page.html'
];
try {
$html = new THTML();
$files = new TFilesHandler();
// JML as string.
$jmlString = <<<'JML'
html:lang('en') {
head {
meta:charset('UTF-8')
meta:name('viewport'),content('width=device-width, initial-scale=1.0')
title {`Advanced Sample Page`}
style {
`.container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: #f4f4f4;
}
.header {
text-align: center;
color: #333;
padding: 10px;
border-bottom: 2px solid #000;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
font-weight: bold;
}
.form-group input, .form-group select {
width: 100%;
padding: 8px;
margin-top: 5px;
}`
}
script {
`function validateForm() {
let name = document.getElementById("name").value;
let email = document.getElementById("email").value;
if (name === "" || email === "") {
alert("Please fill out all fields!");
return false;
}
return true;
}`
}
}
body {
div:class('container') {
div:class('header') {
h1 {`Welcome to Ascoos OS Demo`}
p {`This is a complex demo with nested elements and interactivity.`}
}
div:class('content') {
h2 {`User Registration`}
form:onsubmit('return validateForm()'),method('POST'),action('/submit') {
div:class('form-group') {
label:for('name') {`Name:`}
input:type('text'),id('name'),name('name'),required('')
}
div:class('form-group') {
label:for('email') {`Email:`}
input:type('email'),id('email'),name('email'),required('')
}
div:class('form-group') {
label:for('country') {`Country:`}
select:id('country'),name('country') {
option:value('us') {`United States`}
option:value('gr') {`Greece`}
option:value('de') {`Germany`}
}
}
button:type('submit') {`Submit`}
}
br
div:class('footer') {
p {`© 2025 Ascoos OS. All rights reserved.`}
br
a:href('https://ascoos.com') {`Visit our site`}
}
}
}
}
}
JML;
$fullHtml = $html->fromJMLString($jmlString);
$output = '' . $fullHtml;
$files->writeToFileWithCheck($output, $properties['output']);
echo "JML Parsed! Generated HTML:\n";
echo $output . "\n";
echo "Saved to: " . $properties['output'] . "\n";
$html->Free();
$files->Free();
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
}
?>
مع مُعرّض PHP، يولّد HTML فوريًا للمواقع الديناميكية بدون كود روتيني.
Ascoos JML Renderer – امتداد المتصفح
قم بتثبيت هذا الامتداد الخفيف وحوّل أي صفحة ويب إلى جاهزة لـ JML: عرض من جانب العميل بدون أي تبعيات!
وثائق JML كاملة
يعرض <script type="text/jml"> كوثيقة HTML كاملة.
كتل JML مضمنة
يدمج <jml> ... </jml> داخل HTML موجود.
دعم العلامات الفارغة والمتداخلة
br، hr، img، input + كتل متداخلة، سمات، نصوص متعددة الأسطر.
JS نقي – بدون تبعيات
يعمل على أي صفحة (محلية/بعيدة)، متوافق مع Manifest V3.
الامتداد خفيف (26 كيلوبايت)، لا يجمع بيانات، ويعمل فورًا – مثالي للمطورين الذين يريدون تجربة JML بدون إعداد.
خارطة الطريق
الأسئلة الشائعة
هل JML متوافق مع المتصفحات الحالية؟
نعم، من خلال مُعرّض يولّد HTML5 نظيفًا. لا يتطلب تغييرات في المتصفح.
كيف يتعامل JML مع السكريبتات والأنماط؟
يدعم السكريبتات/الأنماط المضمنة والروابط الخارجية، مع هروب أصلي للأمان.
هل يمكن استخدامه مع إطارات مثل React؟
نعم، عبر تحويل JML → JSX أو تحليل مباشر إلى مكونات مخصصة.