Compare commits
10 Commits
dev
...
e5ca901fd1
| Author | SHA1 | Date | |
|---|---|---|---|
| e5ca901fd1 | |||
| bcdc6c0698 | |||
| e5693ae9a6 | |||
| 99ad6de9f2 | |||
| 5c3e6bf622 | |||
| 6001c88a22 | |||
| 4f3186618c | |||
| 6917cc0212 | |||
| c30918da87 | |||
| 6c0465fc5e |
149
murom_1.2.0.html
Normal file
149
murom_1.2.0.html
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
|||||||
муром_2.0.0.html
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
муром_2.0.1.html
|
|
||||||
@@ -6,7 +6,7 @@ function добавитьЭкранЗаставки()
|
|||||||
заставка.style.cssText = "position: absolute; left: 0; right: 0; top: 0; bottom: 0; pointer-events: none;";
|
заставка.style.cssText = "position: absolute; left: 0; right: 0; top: 0; bottom: 0; pointer-events: none;";
|
||||||
заставка.innerHTML =
|
заставка.innerHTML =
|
||||||
`
|
`
|
||||||
<h1 id = "заголовок">Заставка</h1>
|
<h1 id = "заголовок">МУРОМ</h1>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
var вид = document.createElement("style");
|
var вид = document.createElement("style");
|
||||||
@@ -18,13 +18,12 @@ function добавитьЭкранЗаставки()
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
transform: translateX(-50%) translateY(-50%);
|
|
||||||
}
|
}
|
||||||
#заставка
|
#заставка
|
||||||
{
|
{
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
background-color: grey;
|
background-color: grey;
|
||||||
animation: fadeOut 1s ease;
|
animation: fadeOut 2s ease;
|
||||||
animation-fill-mode: forwards;
|
animation-fill-mode: forwards;
|
||||||
}
|
}
|
||||||
@keyframes fadeOut
|
@keyframes fadeOut
|
||||||
@@ -42,5 +41,4 @@ function добавитьЭкранЗаставки()
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
муром.пуск.подписать(добавитьЭкранЗаставки);
|
муром.старт.подписать(добавитьЭкранЗаставки);
|
||||||
|
|
||||||
54
модули/Уведомитель_1.0.0.js
Normal file
54
модули/Уведомитель_1.0.0.js
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
// ReporterSubscription class.
|
||||||
|
function ReporterSubscription(id, callback, reporter)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
this.callback = callback;
|
||||||
|
this.reporter = reporter;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reporter class.
|
||||||
|
function Reporter(name)
|
||||||
|
{
|
||||||
|
this.name =
|
||||||
|
(typeof name !== "undefined") ?
|
||||||
|
name :
|
||||||
|
"";
|
||||||
|
this.subscriptions = [];
|
||||||
|
}
|
||||||
|
Reporter.prototype.report = function()
|
||||||
|
{
|
||||||
|
for (var id in this.subscriptions)
|
||||||
|
{
|
||||||
|
var subscription = this.subscriptions[id];
|
||||||
|
subscription.callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reporter.prototype.subscribe = function(callback)
|
||||||
|
{
|
||||||
|
var id = murom.uuid();
|
||||||
|
var subscription = new ReporterSubscription(id, callback, this);
|
||||||
|
this.subscriptions.push(subscription);
|
||||||
|
return subscription;
|
||||||
|
}
|
||||||
|
Reporter.prototype.subscribeMany = function(funcs)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < funcs.length; ++i)
|
||||||
|
{
|
||||||
|
var func = funcs[i];
|
||||||
|
this.subscribe(func);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var Уведомитель = Reporter;
|
||||||
|
Reporter.prototype.уведомить = function()
|
||||||
|
{
|
||||||
|
this.report();
|
||||||
|
};
|
||||||
|
Reporter.prototype.подписать = function(функция)
|
||||||
|
{
|
||||||
|
this.subscribe(функция);
|
||||||
|
};
|
||||||
|
Reporter.prototype.подписатьМного = function(funcs)
|
||||||
|
{
|
||||||
|
this.subscribeMany(funcs);
|
||||||
|
};
|
||||||
13
модули/муром.uuid_1.0.0.js
Normal file
13
модули/муром.uuid_1.0.0.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Create GUID / UUID in JavaScript?
|
||||||
|
// https://stackoverflow.com/a/2117523
|
||||||
|
муром.uuid = function()
|
||||||
|
{
|
||||||
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
|
||||||
|
/[xy]/g,
|
||||||
|
function(c)
|
||||||
|
{
|
||||||
|
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
||||||
|
return v.toString(16);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
97
модули/муром.загрузка_1.0.0.js
Normal file
97
модули/муром.загрузка_1.0.0.js
Normal file
File diff suppressed because one or more lines are too long
6
модули/муром.пуск_1.0.0.js
Normal file
6
модули/муром.пуск_1.0.0.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
муром.пуск = new Уведомитель();
|
||||||
|
муром.старт = муром.пуск;
|
||||||
|
murom.start = function()
|
||||||
|
{
|
||||||
|
муром.пуск.уведомить();
|
||||||
|
};
|
||||||
50
модули/муром.сохранение_1.0.0.js
Normal file
50
модули/муром.сохранение_1.0.0.js
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
муром.модулевед.сохранить = new Уведомитель();
|
||||||
|
муром.модулевед.сохранили = new Уведомитель();
|
||||||
|
|
||||||
|
муром.модулевед.создатьИнтерфейсСохранения = function()
|
||||||
|
{
|
||||||
|
сохранение = document.createElement("button");
|
||||||
|
муром.модулевед.htmlМодули.appendChild(сохранение);
|
||||||
|
сохранение.innerHTML = "Сохранить всё";
|
||||||
|
сохранение.onclick = function()
|
||||||
|
{
|
||||||
|
муром.модулевед.сохранить.уведомить();
|
||||||
|
};
|
||||||
|
муром.модулевед.htmlСохранение = сохранение;
|
||||||
|
};
|
||||||
|
|
||||||
|
муром.модулевед.сохранитьВыбранныйМодуль = function()
|
||||||
|
{
|
||||||
|
var номер = муром.модулевед.номерМодуля(муром.модулевед.выбранныйМодуль);
|
||||||
|
if (!номер)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var модуль = муром.модули[номер];
|
||||||
|
var код = муром.редактор.session.getValue();
|
||||||
|
модуль[1] = base64Encode(код);
|
||||||
|
};
|
||||||
|
|
||||||
|
муром.модулевед.сохранитьВБазе = function(отклик)
|
||||||
|
{
|
||||||
|
муром.модулевед.htmlСохранение.disabled = true;
|
||||||
|
localforage.setItem("modules", муром.модули, function(ошибка, значение){
|
||||||
|
муром.модулевед.htmlСохранение.disabled = false;
|
||||||
|
if (ошибка)
|
||||||
|
{
|
||||||
|
console.log("ОШИБКА Не удалось сохранить модули: '" + ошибка + "'");
|
||||||
|
}
|
||||||
|
else if (отклик)
|
||||||
|
{
|
||||||
|
отклик();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
муром.модулевед.сохранитьВсё = function()
|
||||||
|
{
|
||||||
|
муром.модулевед.сохранитьВыбранныйМодуль();
|
||||||
|
муром.модулевед.сохранитьВБазе(function(){
|
||||||
|
муром.модулевед.сохранили.уведомить();
|
||||||
|
});
|
||||||
|
};
|
||||||
34
модули/муром.файл_1.0.0.js
Normal file
34
модули/муром.файл_1.0.0.js
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
муром.файл = {};
|
||||||
|
муром.файл.начало =
|
||||||
|
`
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
var муром = {};
|
||||||
|
var murom = муром;
|
||||||
|
муром.модули = [
|
||||||
|
`;
|
||||||
|
муром.файл.конец =
|
||||||
|
`
|
||||||
|
];
|
||||||
|
|
||||||
|
Object.defineProperty(murom, "modules", {
|
||||||
|
get: function()
|
||||||
|
{
|
||||||
|
return муром.модули;
|
||||||
|
},
|
||||||
|
set: function(значения)
|
||||||
|
{
|
||||||
|
муром.модули = значения;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var загрузочныйМодуль = муром.модули[0];
|
||||||
|
var код = atob(загрузочныйМодуль[1]);
|
||||||
|
eval(код);
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
`;
|
||||||
171
муром_1.2.0.html
Normal file
171
муром_1.2.0.html
Normal file
File diff suppressed because one or more lines are too long
156
муром_2.0.0.html
156
муром_2.0.0.html
File diff suppressed because one or more lines are too long
156
муром_2.0.1.html
156
муром_2.0.1.html
File diff suppressed because one or more lines are too long
@@ -1,20 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<body>
|
|
||||||
<script>
|
|
||||||
var MM = [
|
|
||||||
|
|
||||||
[
|
|
||||||
"HelloWorld",
|
|
||||||
"dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CmRpdi5pbm5lckhUTUwgPSAiPHA+SGVsbG8sIFdvcmxkITwvcD4iOw==",
|
|
||||||
],
|
|
||||||
|
|
||||||
];
|
|
||||||
var module = MM[0];
|
|
||||||
var code = atob(module[1]);
|
|
||||||
eval(code);
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 51 KiB |
@@ -1,3 +0,0 @@
|
|||||||
<div>
|
|
||||||
<p>Hello, World!</p>
|
|
||||||
</div>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
var div = document.createElement("div");
|
|
||||||
document.body.appendChild(div);
|
|
||||||
div.innerHTML = "<p>Hello, World!</p>";
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<body>
|
|
||||||
<script>
|
|
||||||
var MM = [
|
|
||||||
|
|
||||||
[
|
|
||||||
"Loader",
|
|
||||||
"ZnVuY3Rpb24gTXVyb20oKQp7Cn0KTXVyb20ucHJvdG90eXBlLmxvYWRNb2R1bGVzID0gZnVuY3Rpb24oKQp7CiAgICAvLyBTa2lwIGAwYCBtb2R1bGUgYmVjYXVzZSBpdCdzIHVzLgogICAgZm9yICh2YXIgaSA9IDE7IGkgPCBNTS5sZW5ndGg7ICsraSkKICAgIHsKICAgICAgICB2YXIgbW9kdWxlID0gTU1baV07CiAgICAgICAgdmFyIG5hbWUgPSBtb2R1bGVbMF07CiAgICAgICAgdmFyIGNvZGUgPSBhdG9iKG1vZHVsZVsxXSk7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBldmFsKGNvZGUpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoZSkKICAgICAgICB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkNvdWxkIG5vdCBsb2FkICciICsgbmFtZSArICInIG1vZHVsZTogJyIgKyBlICsgIiciKTsKICAgICAgICB9CiAgICB9Cn07CnZhciBNID0gbmV3IE11cm9tKCk7Ck0ubG9hZE1vZHVsZXMoKTsK",
|
|
||||||
],
|
|
||||||
|
|
||||||
[
|
|
||||||
"HelloWorld",
|
|
||||||
"dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CmRpdi5pbm5lckhUTUwgPSAiPHA+SGVsbG8sIFdvcmxkITwvcD4iOw==",
|
|
||||||
],
|
|
||||||
|
|
||||||
[
|
|
||||||
"NoBorders",
|
|
||||||
"dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CmRpdi5pbm5lckhUTUwgPSAiPHA+TGV0IDxzdHJvbmc+TVVST008L3N0cm9uZz4gc2hvdyB5b3Ugbm8gYm9yZGVyczwvcD4iOwo=",
|
|
||||||
],
|
|
||||||
|
|
||||||
];
|
|
||||||
var module = MM[0];
|
|
||||||
var code = atob(module[1]);
|
|
||||||
eval(code);
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 62 KiB |
@@ -1,23 +0,0 @@
|
|||||||
function Murom()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
Murom.prototype.loadModules = function()
|
|
||||||
{
|
|
||||||
// Skip `0` module because it's us.
|
|
||||||
for (var i = 1; i < MM.length; ++i)
|
|
||||||
{
|
|
||||||
var module = MM[i];
|
|
||||||
var name = module[0];
|
|
||||||
var code = atob(module[1]);
|
|
||||||
try
|
|
||||||
{
|
|
||||||
eval(code);
|
|
||||||
}
|
|
||||||
catch (e)
|
|
||||||
{
|
|
||||||
console.error("Could not load '" + name + "' module: '" + e + "'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
var M = new Murom();
|
|
||||||
M.loadModules();
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
var div = document.createElement("div");
|
|
||||||
document.body.appendChild(div);
|
|
||||||
div.innerHTML = "<p>Let <strong>MUROM</strong> show you no borders</p>";
|
|
||||||
Reference in New Issue
Block a user