Переделана статья про гадалку

This commit is contained in:
Anton Vakhrushev 2019-06-28 22:35:49 +03:00
parent 843f743258
commit 50e0624c2c
7 changed files with 106 additions and 120 deletions

View File

@ -49,8 +49,7 @@ class HtmlPrettier implements EventSubscriberInterface
foreach ($sourceSet->allSources() as $source) { foreach ($sourceSet->allSources() as $source) {
$filename = $source->filename(); $filename = $source->filename();
$isSuitable = $filename === 'sitemap.xml' $isSuitable = $this->endsWith($filename, '.md')
|| $this->endsWith($filename, '.md')
|| $this->endsWith($filename, '.html.twig') || $this->endsWith($filename, '.html.twig')
; ;

142
composer.lock generated
View File

@ -1731,16 +1731,16 @@
}, },
{ {
"name": "symfony/config", "name": "symfony/config",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/config.git", "url": "https://github.com/symfony/config.git",
"reference": "6379ee07398643e09e6ed1e87d9c62dfcad7f4eb" "reference": "9198eea354be75794a7b1064de00d9ae9ae5090f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/config/zipball/6379ee07398643e09e6ed1e87d9c62dfcad7f4eb", "url": "https://api.github.com/repos/symfony/config/zipball/9198eea354be75794a7b1064de00d9ae9ae5090f",
"reference": "6379ee07398643e09e6ed1e87d9c62dfcad7f4eb", "reference": "9198eea354be75794a7b1064de00d9ae9ae5090f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1791,20 +1791,20 @@
], ],
"description": "Symfony Config Component", "description": "Symfony Config Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-05-30T16:10:05+00:00" "time": "2019-06-08T06:33:08+00:00"
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "d50bbeeb0e17e6dd4124ea391eff235e932cbf64" "reference": "b592b26a24265a35172d8a2094d8b10f22b7cc39"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/d50bbeeb0e17e6dd4124ea391eff235e932cbf64", "url": "https://api.github.com/repos/symfony/console/zipball/b592b26a24265a35172d8a2094d8b10f22b7cc39",
"reference": "d50bbeeb0e17e6dd4124ea391eff235e932cbf64", "reference": "b592b26a24265a35172d8a2094d8b10f22b7cc39",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1866,20 +1866,20 @@
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-06-05T13:25:51+00:00" "time": "2019-06-13T11:03:18+00:00"
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/debug.git", "url": "https://github.com/symfony/debug.git",
"reference": "4e025104f1f9adb1f7a2d14fb102c9986d6e97c6" "reference": "d8f4fb38152e0eb6a433705e5f661d25b32c5fcd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/4e025104f1f9adb1f7a2d14fb102c9986d6e97c6", "url": "https://api.github.com/repos/symfony/debug/zipball/d8f4fb38152e0eb6a433705e5f661d25b32c5fcd",
"reference": "4e025104f1f9adb1f7a2d14fb102c9986d6e97c6", "reference": "d8f4fb38152e0eb6a433705e5f661d25b32c5fcd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1922,20 +1922,20 @@
], ],
"description": "Symfony Debug Component", "description": "Symfony Debug Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-05-30T16:10:05+00:00" "time": "2019-06-19T15:27:09+00:00"
}, },
{ {
"name": "symfony/dependency-injection", "name": "symfony/dependency-injection",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/dependency-injection.git", "url": "https://github.com/symfony/dependency-injection.git",
"reference": "fea7f73e278ee0337349a5a68b867fc656bb33f3" "reference": "b851928be349c065197fdc0832f78d85139e3903"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/fea7f73e278ee0337349a5a68b867fc656bb33f3", "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b851928be349c065197fdc0832f78d85139e3903",
"reference": "fea7f73e278ee0337349a5a68b867fc656bb33f3", "reference": "b851928be349c065197fdc0832f78d85139e3903",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1995,20 +1995,20 @@
], ],
"description": "Symfony DependencyInjection Component", "description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-05-30T16:10:05+00:00" "time": "2019-06-15T04:08:07+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "4e6c670af81c4fb0b6c08b035530a9915d0b691f" "reference": "d257021c1ab28d48d24a16de79dfab445ce93398"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4e6c670af81c4fb0b6c08b035530a9915d0b691f", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d257021c1ab28d48d24a16de79dfab445ce93398",
"reference": "4e6c670af81c4fb0b6c08b035530a9915d0b691f", "reference": "d257021c1ab28d48d24a16de79dfab445ce93398",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2065,20 +2065,20 @@
], ],
"description": "Symfony EventDispatcher Component", "description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-05-30T16:10:05+00:00" "time": "2019-06-13T11:03:18+00:00"
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
"version": "v1.1.1", "version": "v1.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git", "url": "https://github.com/symfony/event-dispatcher-contracts.git",
"reference": "8fa2cf2177083dd59cf8e44ea4b6541764fbda69" "reference": "c61766f4440ca687de1084a5c00b08e167a2575c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8fa2cf2177083dd59cf8e44ea4b6541764fbda69", "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c61766f4440ca687de1084a5c00b08e167a2575c",
"reference": "8fa2cf2177083dd59cf8e44ea4b6541764fbda69", "reference": "c61766f4440ca687de1084a5c00b08e167a2575c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2123,20 +2123,20 @@
"interoperability", "interoperability",
"standards" "standards"
], ],
"time": "2019-05-22T12:23:29+00:00" "time": "2019-06-20T06:46:26+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "bf2af40d738dec5e433faea7b00daa4431d0a4cf" "reference": "b9896d034463ad6fd2bf17e2bf9418caecd6313d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/bf2af40d738dec5e433faea7b00daa4431d0a4cf", "url": "https://api.github.com/repos/symfony/filesystem/zipball/b9896d034463ad6fd2bf17e2bf9418caecd6313d",
"reference": "bf2af40d738dec5e433faea7b00daa4431d0a4cf", "reference": "b9896d034463ad6fd2bf17e2bf9418caecd6313d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2173,20 +2173,20 @@
], ],
"description": "Symfony Filesystem Component", "description": "Symfony Filesystem Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-06-03T20:27:40+00:00" "time": "2019-06-23T08:51:25+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "b3d4f4c0e4eadfdd8b296af9ca637cfbf51d8176" "reference": "33c21f7d5d3dc8a140c282854a7e13aeb5d0f91a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/b3d4f4c0e4eadfdd8b296af9ca637cfbf51d8176", "url": "https://api.github.com/repos/symfony/finder/zipball/33c21f7d5d3dc8a140c282854a7e13aeb5d0f91a",
"reference": "b3d4f4c0e4eadfdd8b296af9ca637cfbf51d8176", "reference": "33c21f7d5d3dc8a140c282854a7e13aeb5d0f91a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2222,20 +2222,20 @@
], ],
"description": "Symfony Finder Component", "description": "Symfony Finder Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-05-26T20:47:49+00:00" "time": "2019-06-13T11:03:18+00:00"
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "b7e4945dd9b277cd24e93566e4da0a87956392a9" "reference": "e1b507fcfa4e87d192281774b5ecd4265370180d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/b7e4945dd9b277cd24e93566e4da0a87956392a9", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e1b507fcfa4e87d192281774b5ecd4265370180d",
"reference": "b7e4945dd9b277cd24e93566e4da0a87956392a9", "reference": "e1b507fcfa4e87d192281774b5ecd4265370180d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2277,20 +2277,20 @@
], ],
"description": "Symfony HttpFoundation Component", "description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-06-06T10:05:02+00:00" "time": "2019-06-26T09:25:00+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "738ad561cd6a8d1c44ee1da941b2e628e264c429" "reference": "4150f71e27ed37a74700561b77e3dbd754cbb44d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/738ad561cd6a8d1c44ee1da941b2e628e264c429", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4150f71e27ed37a74700561b77e3dbd754cbb44d",
"reference": "738ad561cd6a8d1c44ee1da941b2e628e264c429", "reference": "4150f71e27ed37a74700561b77e3dbd754cbb44d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2369,11 +2369,11 @@
], ],
"description": "Symfony HttpKernel Component", "description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-06-06T13:23:34+00:00" "time": "2019-06-26T14:26:16+00:00"
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mime.git", "url": "https://github.com/symfony/mime.git",
@ -2432,16 +2432,16 @@
}, },
{ {
"name": "symfony/options-resolver", "name": "symfony/options-resolver",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/options-resolver.git", "url": "https://github.com/symfony/options-resolver.git",
"reference": "914e0edcb7cd0c9f494bc023b1d47534f4542332" "reference": "40762ead607c8f792ee4516881369ffa553fee6f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/914e0edcb7cd0c9f494bc023b1d47534f4542332", "url": "https://api.github.com/repos/symfony/options-resolver/zipball/40762ead607c8f792ee4516881369ffa553fee6f",
"reference": "914e0edcb7cd0c9f494bc023b1d47534f4542332", "reference": "40762ead607c8f792ee4516881369ffa553fee6f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2482,7 +2482,7 @@
"configuration", "configuration",
"options" "options"
], ],
"time": "2019-05-10T05:38:46+00:00" "time": "2019-06-13T11:01:17+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
@ -2837,7 +2837,7 @@
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
@ -2886,23 +2886,23 @@
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
"version": "v1.1.2", "version": "v1.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/service-contracts.git", "url": "https://github.com/symfony/service-contracts.git",
"reference": "191afdcb5804db960d26d8566b7e9a2843cab3a0" "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/191afdcb5804db960d26d8566b7e9a2843cab3a0", "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d",
"reference": "191afdcb5804db960d26d8566b7e9a2843cab3a0", "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1.3" "php": "^7.1.3",
"psr/container": "^1.0"
}, },
"suggest": { "suggest": {
"psr/container": "",
"symfony/service-implementation": "" "symfony/service-implementation": ""
}, },
"type": "library", "type": "library",
@ -2940,11 +2940,11 @@
"interoperability", "interoperability",
"standards" "standards"
], ],
"time": "2019-05-28T07:50:59+00:00" "time": "2019-06-13T11:15:36+00:00"
}, },
{ {
"name": "symfony/stopwatch", "name": "symfony/stopwatch",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/stopwatch.git", "url": "https://github.com/symfony/stopwatch.git",
@ -2994,7 +2994,7 @@
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
"version": "v4.3.1", "version": "v4.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/yaml.git", "url": "https://github.com/symfony/yaml.git",
@ -3108,16 +3108,16 @@
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v2.11.2", "version": "v2.11.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "84a463403da1c81afbcedda8f0e788c78bd25a79" "reference": "699ed2342557c88789a15402de5eb834dedd6792"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/84a463403da1c81afbcedda8f0e788c78bd25a79", "url": "https://api.github.com/repos/twigphp/Twig/zipball/699ed2342557c88789a15402de5eb834dedd6792",
"reference": "84a463403da1c81afbcedda8f0e788c78bd25a79", "reference": "699ed2342557c88789a15402de5eb834dedd6792",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3171,7 +3171,7 @@
"keywords": [ "keywords": [
"templating" "templating"
], ],
"time": "2019-06-05T11:17:07+00:00" "time": "2019-06-18T15:37:11+00:00"
}, },
{ {
"name": "webignition/disallowed-character-terminated-string", "name": "webignition/disallowed-character-terminated-string",

View File

@ -0,0 +1,26 @@
---
title: Гадалка Шеннона
description: Демо-версия электронной гадалки Шеннона
keywords: [гадалка, угадыватель, шеннон, чет-нечет]
styles:
- /static/predictor.css
scripts:
- /static/predictor.js
---
# Гадалка Шеннона
Правила игры простые. Робот пытается предсказать, что выберет человек: чет или нечет.
Если предсказание удалось, робот получает очко, а счет уменьшается на единицу.
Если же предугадать выбор не удалось, то очко достается человеку, а счет увеличивается.
Игрок победит, если доберется до 50 очков. Но когда счет опустится до -50, победа будет
за железякой.
Чтобы выбирать вариант с клавиатуры, кликните внутри серой рамки,
а потом пользуйтесь клавишами "1" - нечет или "2" - чет.
- [Код гадалки](https://github.com/anwinged/homepage/blob/master/source/_assets/predictor/demo.vue)
---
<div id="app"></div>

View File

@ -29,7 +29,7 @@ keywords: [story, storytelling, lectures]
Кто? Кому? Что? Зачем? Как? Кто? Кому? Что? Зачем? Как?
История = интересная тема + близость темы + сценарий История = интересная тема + близость темы + сценарий
История = факты + смысл + эмоции История = факты + смысл + эмоции

View File

@ -4,6 +4,9 @@
{% include 'head.twig' %} {% include 'head.twig' %}
<link rel="stylesheet" href="{{ hashed_asset('/static/layout_internal.css') }}"> <link rel="stylesheet" href="{{ hashed_asset('/static/layout_internal.css') }}">
{% block css %}{% endblock %} {% block css %}{% endblock %}
{% for s in page.styles | default([]) %}
<link rel="stylesheet" href="{{ hashed_asset(s) }}">
{% endfor %}
</head> </head>
<body> <body>
@ -25,6 +28,9 @@
<script async src="{{ hashed_asset('/static/layout_internal.js') }}"></script> <script async src="{{ hashed_asset('/static/layout_internal.js') }}"></script>
{% block js %}{% endblock %} {% block js %}{% endblock %}
{% for s in page.scripts | default([]) %}
<script async src="{{ hashed_asset(s) }}"></script>
{% endfor %}
{% include 'font-awesome.twig' %} {% include 'font-awesome.twig' %}
</body> </body>

View File

@ -16,12 +16,10 @@ use: [articles]
<h2 class="heading"><a href="/articles/">Заметки</a></h2> <h2 class="heading"><a href="/articles/">Заметки</a></h2>
<ul> <ul>
<li>
<a href="/projects/predictor/">Электронная гадалка Шеннона</a>
</li>
{% for article in data.articles %} {% for article in data.articles %}
<li> <li>
<a href="{{ article.url }}">{{ article.title }}</a> <a href="{{ article.url }}">{{ article.title }}</a>
<p>{{ article.description }}</p>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>

View File

@ -1,43 +0,0 @@
---
layout: internal
title: Электронная гадалка Шеннона
description: Демо-версия электронной гадалки Шеннона
keywords: [гадалка, угадыватель, шеннон, чет-нечет]
---
{% block js %}
<script async src="{{ hashed_asset('/static/predictor.js') }}"></script>
{% endblock %}
{% block css %}
<link rel="stylesheet" href="{{ hashed_asset('/static/predictor.css') }}">
{% endblock %}
{% block content %}
<h1>{{ page.title }}</h1>
<p>
Правила игры простые. Робот пытается предсказать, что выберет человек: чет или нечет.
Если предсказание удалось, робот получает очко, а счет уменьшается на единицу.
Если же предугадать выбор не удалось, то очко достается человеку, а счет увеличивается.
Игрок победит, если доберется до 50 очков. Но когда счет опустится до -50, победа будет
за железякой.
</p>
<p>
Чтобы выбирать вариант с клавиатуры, кликните внутри серой рамки,
а потом пользуйтесь клавишами "1" - нечет или "2" - чет.
</p>
<ul>
<li>
<a href="https://github.com/anwinged/homepage/blob/master/source/_assets/predictor/demo.vue" target="_blank">Код гадалки</a>
</li>
</ul>
<span class="hr-line"></span>
<div id="app"></div>
{% endblock %}