From 217463e55484c18e264671520a43c52e65258ae1 Mon Sep 17 00:00:00 2001 From: Ilya Prokopenko Date: Sun, 16 Jan 2022 12:09:05 +0300 Subject: [PATCH] Global: Replacing Textile with Markdown Closes #293 --- Web/Presenters/SupportPresenter.php | 15 +- composer.json | 4 +- composer.lock | 194 ++++++++---------- .../knowledgebase/{about.textile => about.md} | 2 +- .../{about.ru.textile => about.ru.md} | 2 +- .../{donate.textile => donate.md} | 0 .../{donate.ru.textile => donate.ru.md} | 0 .../knowledgebase/{notes.textile => notes.md} | 9 +- .../{notes.ru.textile => notes.ru.md} | 4 + .../{points.textile => points.md} | 4 +- .../{points.ru.textile => points.ru.md} | 6 +- .../{privacy.textile => privacy.md} | 14 +- .../{privacy.ru.textile => privacy.ru.md} | 14 +- data/knowledgebase/rules.md | 44 ++++ data/knowledgebase/rules.ru.md | 44 ++++ data/knowledgebase/rules.ru.textile | 43 ---- data/knowledgebase/rules.textile | 43 ---- data/rules.xhtml | 1 - 18 files changed, 219 insertions(+), 224 deletions(-) rename data/knowledgebase/{about.textile => about.md} (80%) rename data/knowledgebase/{about.ru.textile => about.ru.md} (82%) rename data/knowledgebase/{donate.textile => donate.md} (100%) rename data/knowledgebase/{donate.ru.textile => donate.ru.md} (100%) rename data/knowledgebase/{notes.textile => notes.md} (69%) rename data/knowledgebase/{notes.ru.textile => notes.ru.md} (99%) rename data/knowledgebase/{points.textile => points.md} (87%) rename data/knowledgebase/{points.ru.textile => points.ru.md} (52%) rename data/knowledgebase/{privacy.textile => privacy.md} (90%) rename data/knowledgebase/{privacy.ru.textile => privacy.ru.md} (90%) create mode 100644 data/knowledgebase/rules.md create mode 100644 data/knowledgebase/rules.ru.md delete mode 100644 data/knowledgebase/rules.ru.textile delete mode 100644 data/knowledgebase/rules.textile delete mode 100644 data/rules.xhtml diff --git a/Web/Presenters/SupportPresenter.php b/Web/Presenters/SupportPresenter.php index 03e14801..d644deb1 100644 --- a/Web/Presenters/SupportPresenter.php +++ b/Web/Presenters/SupportPresenter.php @@ -6,7 +6,7 @@ use openvk\Web\Models\Entities\TicketComment; use openvk\Web\Models\Repositories\TicketComments; use openvk\Web\Util\Telegram; use Chandler\Session\Session; -use Netcarver\Textile; +use Parsedown; final class SupportPresenter extends OpenVKPresenter { @@ -204,10 +204,10 @@ final class SupportPresenter extends OpenVKPresenter { $lang = Session::i()->get("lang", "ru"); $base = OPENVK_ROOT . "/data/knowledgebase"; - if(file_exists("$base/$name.$lang.textile")) - $file = "$base/$name.$lang.textile"; - else if(file_exists("$base/$name.textile")) - $file = "$base/$name.textile"; + if(file_exists("$base/$name.$lang.md")) + $file = "$base/$name.$lang.md"; + else if(file_exists("$base/$name.md")) + $file = "$base/$name.md"; else $this->notFound(); @@ -221,9 +221,10 @@ final class SupportPresenter extends OpenVKPresenter $content = implode($lines); - $parser = new Textile\Parser; + $parser = new Parsedown(); + $parser->setSafeMode(true); $this->template->heading = $heading; - $this->template->content = $parser->parse($content); + $this->template->content = $parser->text($content); } function renderRateAnswer(int $id, int $mark): void diff --git a/composer.json b/composer.json index 46f58e0d..396eea06 100644 --- a/composer.json +++ b/composer.json @@ -7,13 +7,13 @@ "james-heinrich/getid3": "^1.9@dev", "rybakit/msgpack": "dev-master", "wapmorgan/binary-stream": "dev-master", - "netcarver/textile": "^3.7@dev", "al/emoji-detector": "dev-master", "ezyang/htmlpurifier": "dev-master", "scssphp/scssphp": "dev-master", "lfkeitel/phptotp": "dev-master", "chillerlan/php-qrcode": "dev-main", - "vearutop/php-obscene-censor-rus": "dev-master" + "vearutop/php-obscene-censor-rus": "dev-master", + "erusev/parsedown": "dev-master" }, "minimum-stability": "dev" } diff --git a/composer.lock b/composer.lock index 2a289d49..8ad0ecb4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "770bb7b5fdc8074bb03f5c2a762914fe", + "content-hash": "3816f5fbf2c78a3e252637476cd2ae08", "packages": [ { "name": "al/emoji-detector", @@ -58,12 +58,12 @@ "source": { "type": "git", "url": "https://github.com/chillerlan/php-qrcode.git", - "reference": "0c1f322476a090b945108e6df960ee381a8c352e" + "reference": "06730361508c283a02bbf9cbc9e4b55e7b3bc88b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/0c1f322476a090b945108e6df960ee381a8c352e", - "reference": "0c1f322476a090b945108e6df960ee381a8c352e", + "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/06730361508c283a02bbf9cbc9e4b55e7b3bc88b", + "reference": "06730361508c283a02bbf9cbc9e4b55e7b3bc88b", "shasum": "" }, "require": { @@ -138,7 +138,7 @@ "type": "ko_fi" } ], - "time": "2021-12-12T23:34:10+00:00" + "time": "2021-12-14T15:11:20+00:00" }, { "name": "chillerlan/php-settings-container", @@ -203,26 +203,74 @@ ], "time": "2021-09-06T15:17:01+00:00" }, + { + "name": "erusev/parsedown", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown.git", + "reference": "6598f3860c2698fe2f0f1bc98212fc01d0a1893c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/6598f3860c2698fe2f0f1bc98212fc01d0a1893c", + "reference": "6598f3860c2698fe2f0f1bc98212fc01d0a1893c", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-0": { + "Parsedown": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "Parser for Markdown.", + "homepage": "http://parsedown.org", + "keywords": [ + "markdown", + "parser" + ], + "support": { + "issues": "https://github.com/erusev/parsedown/issues", + "source": "https://github.com/erusev/parsedown/tree/master" + }, + "time": "2020-08-09T14:12:21+00:00" + }, { "name": "ezyang/htmlpurifier", "version": "dev-master", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "996eaf43310edf1d908bc0030a18b37b8cf6eefd" + "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/996eaf43310edf1d908bc0030a18b37b8cf6eefd", - "reference": "996eaf43310edf1d908bc0030a18b37b8cf6eefd", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/12ab42bd6e742c70c0a52f7b82477fcd44e64b75", + "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75", "shasum": "" }, "require": { "php": ">=5.2" }, - "require-dev": { - "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd" - }, "default-branch": true, "type": "library", "autoload": { @@ -254,9 +302,9 @@ ], "support": { "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/master" + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.14.0" }, - "time": "2021-09-07T18:16:55+00:00" + "time": "2021-12-25T01:21:49+00:00" }, { "name": "guzzlehttp/guzzle", @@ -357,12 +405,12 @@ "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0" + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/136a635e2b4a49b9d79e9c8fee267ffb257fdba0", - "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", "shasum": "" }, "require": { @@ -418,7 +466,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.0" + "source": "https://github.com/guzzle/promises/tree/1.5.1" }, "funding": [ { @@ -434,7 +482,7 @@ "type": "tidelift" } ], - "time": "2021-10-07T13:05:22+00:00" + "time": "2021-10-22T20:56:57+00:00" }, { "name": "guzzlehttp/psr7", @@ -552,12 +600,12 @@ "source": { "type": "git", "url": "https://github.com/JamesHeinrich/getID3.git", - "reference": "a440175a329a83dbfad991e67b5e5f3a1ff51bd9" + "reference": "46346ff3bea96a63f1a1d58ee4eabc79471d0ec8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JamesHeinrich/getID3/zipball/a440175a329a83dbfad991e67b5e5f3a1ff51bd9", - "reference": "a440175a329a83dbfad991e67b5e5f3a1ff51bd9", + "url": "https://api.github.com/repos/JamesHeinrich/getID3/zipball/46346ff3bea96a63f1a1d58ee4eabc79471d0ec8", + "reference": "46346ff3bea96a63f1a1d58ee4eabc79471d0ec8", "shasum": "" }, "require": { @@ -612,7 +660,7 @@ "issues": "https://github.com/JamesHeinrich/getID3/issues", "source": "https://github.com/JamesHeinrich/getID3/tree/master" }, - "time": "2021-10-07T12:08:13+00:00" + "time": "2022-01-03T16:59:52+00:00" }, { "name": "komeiji-satori/curl", @@ -706,66 +754,6 @@ }, "time": "2017-02-06T17:46:14+00:00" }, - { - "name": "netcarver/textile", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/textile/php-textile.git", - "reference": "d64e1f8424afd600cc2732f4f99f262aef55fca2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/textile/php-textile/zipball/d64e1f8424afd600cc2732f4f99f262aef55fca2", - "reference": "d64e1f8424afd600cc2732f4f99f262aef55fca2", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "php-coveralls/php-coveralls": "2.1.*", - "phpunit/phpunit": "5.7.*", - "squizlabs/php_codesniffer": "3.*", - "symfony/yaml": "2.4.*" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.7-dev" - } - }, - "autoload": { - "psr-4": { - "Netcarver\\Textile\\": "src/Netcarver/Textile/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Textile markup language parser", - "homepage": "https://github.com/textile/php-textile", - "keywords": [ - "document", - "format", - "html", - "language", - "markup", - "parser", - "php-textile", - "plaintext", - "textile" - ], - "support": { - "irc": "irc://irc.freenode.net/textile", - "issues": "https://github.com/textile/php-textile/issues", - "source": "https://github.com/textile/php-textile", - "wiki": "https://github.com/textile/php-textile/wiki" - }, - "time": "2020-10-01T18:21:03+00:00" - }, { "name": "psr/cache", "version": "1.0.1", @@ -919,12 +907,12 @@ "source": { "type": "git", "url": "https://github.com/rybakit/msgpack.php.git", - "reference": "66ca2c3948d72068ca0c8b9a4f599f822a7fe2c3" + "reference": "1e9eda511520e7494c241622671816a83a76e149" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rybakit/msgpack.php/zipball/66ca2c3948d72068ca0c8b9a4f599f822a7fe2c3", - "reference": "66ca2c3948d72068ca0c8b9a4f599f822a7fe2c3", + "url": "https://api.github.com/repos/rybakit/msgpack.php/zipball/1e9eda511520e7494c241622671816a83a76e149", + "reference": "1e9eda511520e7494c241622671816a83a76e149", "shasum": "" }, "require": { @@ -933,7 +921,8 @@ "require-dev": { "ext-gmp": "*", "friendsofphp/php-cs-fixer": "^2.14", - "phpunit/phpunit": "^7.1|^8|^9" + "phpunit/phpunit": "^7.1|^8|^9", + "vimeo/psalm": "^3.9|^4" }, "suggest": { "ext-decimal": "For converting overflowed integers to Decimal objects", @@ -973,7 +962,7 @@ "type": "github" } ], - "time": "2021-07-08T19:01:22+00:00" + "time": "2021-12-17T22:02:51+00:00" }, { "name": "scssphp/scssphp", @@ -981,12 +970,12 @@ "source": { "type": "git", "url": "https://github.com/scssphp/scssphp.git", - "reference": "fd4fc9edc49f5a4465e11e03b7d6198404adbc22" + "reference": "c800975c7408e923309fbb51346b84e83dd05700" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/scssphp/scssphp/zipball/fd4fc9edc49f5a4465e11e03b7d6198404adbc22", - "reference": "fd4fc9edc49f5a4465e11e03b7d6198404adbc22", + "url": "https://api.github.com/repos/scssphp/scssphp/zipball/c800975c7408e923309fbb51346b84e83dd05700", + "reference": "c800975c7408e923309fbb51346b84e83dd05700", "shasum": "" }, "require": { @@ -1002,7 +991,7 @@ "symfony/phpunit-bridge": "^5.1", "thoughtbot/bourbon": "^7.0", "twbs/bootstrap": "~5.0", - "twbs/bootstrap4": "4.6.0", + "twbs/bootstrap4": "4.6.1", "zurb/foundation": "~6.5" }, "suggest": { @@ -1045,11 +1034,11 @@ "issues": "https://github.com/scssphp/scssphp/issues", "source": "https://github.com/scssphp/scssphp/tree/master" }, - "time": "2021-10-02T12:51:54+00:00" + "time": "2022-01-06T19:41:32+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "dev-main", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", @@ -1069,7 +1058,6 @@ "suggest": { "ext-intl": "For best performance" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1117,7 +1105,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/main" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0" }, "funding": [ { @@ -1137,7 +1125,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "dev-main", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -1155,7 +1143,6 @@ "suggest": { "ext-intl": "For best performance" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1202,7 +1189,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" }, "funding": [ { @@ -1222,7 +1209,7 @@ }, { "name": "symfony/polyfill-php72", - "version": "dev-main", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", @@ -1237,7 +1224,6 @@ "require": { "php": ">=7.1" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1279,7 +1265,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0" }, "funding": [ { @@ -1520,17 +1506,17 @@ "james-heinrich/getid3": 20, "rybakit/msgpack": 20, "wapmorgan/binary-stream": 20, - "netcarver/textile": 20, "al/emoji-detector": 20, "ezyang/htmlpurifier": 20, "scssphp/scssphp": 20, "lfkeitel/phptotp": 20, "chillerlan/php-qrcode": 20, - "vearutop/php-obscene-censor-rus": 20 + "vearutop/php-obscene-censor-rus": 20, + "erusev/parsedown": 20 }, "prefer-stable": false, "prefer-lowest": false, "platform": [], "platform-dev": [], - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.0.0" } diff --git a/data/knowledgebase/about.textile b/data/knowledgebase/about.md similarity index 80% rename from data/knowledgebase/about.textile rename to data/knowledgebase/about.md index c80e9fb0..bff49358 100644 --- a/data/knowledgebase/about.textile +++ b/data/knowledgebase/about.md @@ -1,4 +1,4 @@ -*OpenVK is a universal colleague search tool based on the VKontakte structure.* +**OpenVK is a universal colleague search tool based on the VKontakte structure.** We want friends, classmates, classmates, neighbors and colleagues to always be in touch. diff --git a/data/knowledgebase/about.ru.textile b/data/knowledgebase/about.ru.md similarity index 82% rename from data/knowledgebase/about.ru.textile rename to data/knowledgebase/about.ru.md index 3c024b00..a5903cbf 100644 --- a/data/knowledgebase/about.ru.textile +++ b/data/knowledgebase/about.ru.md @@ -1,6 +1,6 @@ OpenVK-KB-Heading: Добро пожаловать -*OpenVK - универсальное средство поиска коллег основанное на структуре ВКонтакте.* +**OpenVK - универсальное средство поиска коллег основанное на структуре ВКонтакте.** Мы хотим, чтобы друзья, однокурсники, одноклассники, соседи и коллеги всегда могли быть в контакте. diff --git a/data/knowledgebase/donate.textile b/data/knowledgebase/donate.md similarity index 100% rename from data/knowledgebase/donate.textile rename to data/knowledgebase/donate.md diff --git a/data/knowledgebase/donate.ru.textile b/data/knowledgebase/donate.ru.md similarity index 100% rename from data/knowledgebase/donate.ru.textile rename to data/knowledgebase/donate.ru.md diff --git a/data/knowledgebase/notes.textile b/data/knowledgebase/notes.md similarity index 69% rename from data/knowledgebase/notes.textile rename to data/knowledgebase/notes.md index d937f989..3e7e2284 100644 --- a/data/knowledgebase/notes.textile +++ b/data/knowledgebase/notes.md @@ -1,6 +1,7 @@ OpenVK-KB-Heading: Editing notes OpenVK wiki-markup is basically XHTML1.0 Transitional. The only difference is that we removed tags that are not needed or may harm OpenVK and it's users. + Allowed tags: * All headers from level 3 to 6 (h3-h6) * Paragraphs (<p>) @@ -8,12 +9,13 @@ Allowed tags: * <sup>, <sub>, <ins> * Everything related to tables * Links and images (<a>, <img>) -* Lists (и <ol> и <ul>) +* Lists (and <ol> and <ul>) * Line feed and horizontal rule (hr) -* Blockquotes (<blockquote> и <cite>) +* Blockquotes (<blockquote> and <cite>) * <acronym> -*Please note*: images can't have sourcemap and their source must be a file that is hosted on this OpenVK instance. This restrictions does not apply to links. Links can link to everything (except for data: and javascript: pseudoprotocols). They will be derefered though. +**Please note**: images can't have sourcemap and their source must be a file that is hosted on this OpenVK instance. This restrictions does not apply to links. Links can link to everything (except for data: and javascript: pseudoprotocols). They will be derefered though. + You may also have noticed, that <style> is note in the allowlist, however, we do support styling <div> and <img> tags using style attribute. This CSS properties are allowed: * float * height @@ -21,4 +23,5 @@ You may also have noticed, that <style> is note in the allowlist, however, * max-height * max-width * font-weight + If property is a size property it can only accept pixels as value (no %, pt, pc, em, rem, vw or vh). diff --git a/data/knowledgebase/notes.ru.textile b/data/knowledgebase/notes.ru.md similarity index 99% rename from data/knowledgebase/notes.ru.textile rename to data/knowledgebase/notes.ru.md index 4296cdab..acba24d8 100644 --- a/data/knowledgebase/notes.ru.textile +++ b/data/knowledgebase/notes.ru.md @@ -1,6 +1,7 @@ OpenVK-KB-Heading: Справка по редактированию заметок Вики-разметка OpenVK это тоже самое, что и XHTML1.0 Transitional. Единственное изменение заключается в том, что мы убрали некоторые теги, которые могут принести вред OpenVK или не нужны. + Список разрешённых тегов: * Все заголовки 3-6 уровней (h3-h6) * Параграфы (<p>) @@ -12,7 +13,9 @@ OpenVK-KB-Heading: Справка по редактированию замето * Перевод строки и горизонтальная линия (hr) * Цитаты (<blockquote> и <cite>) * <acronym> + Обратите внимание, источником изображения могут быть только файлы из OpenVK. Это ограничение не распространяется на ссылки, где href может быть любой (в целях безопасности наших пользователей, ссылка будет автоматически заменена на редирект через away.php) + Вы могли заметить, что в списке разрешённых тегов нету <style>, но ничего страшного, вы можете применять аттрибут style к тегам <div> и <img>. В перечень поддерживаемых свойств CSS входят: * float * height @@ -20,4 +23,5 @@ OpenVK-KB-Heading: Справка по редактированию замето * max-height * max-width * font-weight + Обратите внимание на то, что поддерживаются только значения в пикселях. diff --git a/data/knowledgebase/points.textile b/data/knowledgebase/points.md similarity index 87% rename from data/knowledgebase/points.textile rename to data/knowledgebase/points.md index 43c22bc3..dfaaf590 100644 --- a/data/knowledgebase/points.textile +++ b/data/knowledgebase/points.md @@ -1,7 +1,7 @@ OpenVK-KB-Heading: About points -h4. What are points? +#### What are points? Points are OpenVK internal currency. You can use it to buy stickers and gifts. -h4. How can I buy points? +#### How can I buy points? This is example knowledgebase article and it does not have the details about this topic. If you are administrator of this social network, please change this article to fit your needs. If you are a user you can ask your admin directly about this. diff --git a/data/knowledgebase/points.ru.textile b/data/knowledgebase/points.ru.md similarity index 52% rename from data/knowledgebase/points.ru.textile rename to data/knowledgebase/points.ru.md index f53e1b65..490e6838 100644 --- a/data/knowledgebase/points.ru.textile +++ b/data/knowledgebase/points.ru.md @@ -1,7 +1,7 @@ OpenVK-KB-Heading: Про голоса -h4. Что такое голоса? +#### Что такое голоса? Голоса это внутреняя валюта OpenVK. За неё можно купить стикеры или подарки другим пользователям. -h4. Как купить голоса? -Это пример статьи о голосах и из-за этого в ней нет таких деталей. Если вы администратор этой социальной сети, отредактируйте файл data/knowledgebase/points.ru.textile, чтобы он соответствовал вашим нуждам. Если вы простой пользователь, уведомите администратора о том, что он забыл отредактировать файлы и спросите у него, как же вам купить голоса. +#### Как купить голоса? +Это пример статьи о голосах и из-за этого в ней нет таких деталей. Если вы администратор этой социальной сети, отредактируйте файл data/knowledgebase/points.ru.md, чтобы он соответствовал вашим нуждам. Если вы простой пользователь, уведомите администратора о том, что он забыл отредактировать файлы и спросите у него, как же вам купить голоса. diff --git a/data/knowledgebase/privacy.textile b/data/knowledgebase/privacy.md similarity index 90% rename from data/knowledgebase/privacy.textile rename to data/knowledgebase/privacy.md index 936214a5..6ba883c2 100644 --- a/data/knowledgebase/privacy.textile +++ b/data/knowledgebase/privacy.md @@ -1,31 +1,31 @@ OpenVK-KB-Heading: Privacy Policy -h2. What information do we collect? +## What information do we collect? * _Basic account information_: If you register on this server, you may be asked to enter your real name, last name, an email address, and a password. You may also enter additional profile information such as a nickname, status, biography, interests, etc. Your first name, last name, a nickname, a status, and a profile picture are always listed publicly. * _Posts, private messages and other information_: All information is processed and stored on the server. When you submit any content, the date and time are stored with the post, including attachments. Messages may contain media attachments, such as pictures and videos. Posts are available publicly. Personal messages are only delivered to users to whom you have personally sent messages. _Please do not share any dangerous information over OpenVK._ * _IPs and other metadata_: When you log in, we may record the IP address you log in from, as well as the name of your browser application. We also may retain server logs which include the IP address of every request to our server. -h2. What do we use your information for? +## What do we use your information for? Any of the information we collect from you may be used in the following ways: * To provide the core functionality of OpenVK. You can only interact with other people's content and post your own content when you are logged in. * To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations. * The email address you provide may be used to regain access to your account by changing your password. -h2. How do we protect your information? +## How do we protect your information? We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. -h2. Do we use cookies? +## Do we use cookies? Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account. We use cookies to understand and save your preferences for future visits. -h2. Do we disclose any information to outside parties? +## Do we disclose any information to outside parties? We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. -h2. Changes to our Privacy Policy +## Changes to our Privacy Policy If we decide to change our privacy policy, we will post those changes on this page. This document is CC-BY-SA. It was last updated October 8, 2021. -Originally adapted from the "Mastodon privacy policy":https://mastodon.social/terms. +Originally adapted from the [Mastodon privacy policy](https://mastodon.social/terms). diff --git a/data/knowledgebase/privacy.ru.textile b/data/knowledgebase/privacy.ru.md similarity index 90% rename from data/knowledgebase/privacy.ru.textile rename to data/knowledgebase/privacy.ru.md index af9b64ad..c18192a3 100644 --- a/data/knowledgebase/privacy.ru.textile +++ b/data/knowledgebase/privacy.ru.md @@ -1,31 +1,31 @@ OpenVK-KB-Heading: Политика Конфиденциальности -h2. Какую информацию мы собираем? +## Какую информацию мы собираем? * _Основная информация_: Если у вас есть желание зарегистрироваться на данном сайте, вас могут попросить ввести реальное имя, фамилию, адрес электронной почты и пароль. Также вы можете ввести дополнительную информацию профиля, например, псевдоним, статус, биографию, интересы, и т.д. Имя, фамилия, псевдоним, статус и фото профиля будут общедоступными. * _Записи, личные сообщения и другая информация_: Вся информация обрабатывается и хранится на сервере. Когда вы отправляете любой контент, дата и время сохраняются с записью, включая вложения. Сообщения могут включать медиа вложения, к примеру изображения и видео. Записи являются общедоступной информацией. Личные сообщения доставляются только тем пользователями, которым Вы лично отправили сообщения. _Пожалуйста, не делитесь любой вредоносной информации через OpenVK._ * _IP-адреса и другие метаданные_: Когда Вы выполняете вход в свой аккаунт, мы можем записывать IP-адрес, с которого был произведён вход, и название вашего веб-браузера. Мы также можем сохранять журналы сервера, которые включают IP-адрес каждого запроса к серверу. -h2. Для чего мы используем вашу информацию? +## Для чего мы используем вашу информацию? Любую собранную нами информацию мы используем для следующих целей: * Для предоставления базового функционала OpenVK. Вы можете взаимодействовать с чужим контентом и размещать собственный контент только тогда, когда Вы вошли в систему. * Чтобы помочь модерации сообщества, например, сравнить ваш IP-адрес с другими известными адресами, чтобы определить уклонения от блокировки или других нарушений. * Предоставленный вами адрес электронной почты может быть использован для восстановления доступа к вашему аккаунту при помощи смены пароля. -h2. Как мы защищаем вашу информацию? +## Как мы защищаем вашу информацию? Мы применяем различные меры безопасности для обеспечения сохранности вашей личной информации, когда вы вводите, отправляете или получаете доступ к своей личной информации. Среди прочего, сессия вашего браузера, а также трафик между вашими приложениями и API защищены протоколом SSL, а ваш пароль хэшируется с помощью надежного одностороннего алгоритма. -h2. Используем ли мы файлы cookies? +## Используем ли мы файлы cookies? Да. Cookies - это небольшие файлы, которые сайт или его поставщик услуг передает на жесткий диск вашего компьютера через ваш веб-браузер (если вы разрешаете). Эти файлы cookie позволяют сайту распознать ваш браузер и, если у вас есть зарегистрированная учетная запись, связать ее с вашей зарегистрированной учетной записью. Мы используем файлы cookies, чтобы понять и сохранить ваши настройки для будущих посещений. -h2. Раскрываем ли мы какую-либо информацию сторонним лицам? +## Раскрываем ли мы какую-либо информацию сторонним лицам? Мы не продаем, не обмениваем и не передаем посторонним лицам вашу личную информацию. Это не относится к доверенным третьим лицам, которые помогают нам управлять нашим сайтом или обслуживать вас, если эти лица согласны сохранять конфиденциальность этой информации. Мы также можем раскрыть вашу информацию, если считаем, что это необходимо для соблюдения закона, исполнения правил нашего сайта или защиты наших или чужих прав, собственности или безопасности. -h2. Изменения в нашей Политике конфиденциальности +## Изменения в нашей Политике конфиденциальности Если мы решим изменить нашу политику конфиденциальности, мы опубликуем эти изменения на данной странице. Данный документ лицензирован по CC-BY-SA. В последний раз обновлялся 8 октября 2021. -Первоначально адаптировано из "Политики конфиденциальности Mastodon":https://mastodon.social/terms. +Первоначально адаптировано из [Политики конфиденциальности Mastodon](https://mastodon.social/terms). diff --git a/data/knowledgebase/rules.md b/data/knowledgebase/rules.md new file mode 100644 index 00000000..899216cd --- /dev/null +++ b/data/knowledgebase/rules.md @@ -0,0 +1,44 @@ +OpenVK-KB-Heading: Rules + +The site administration allows you to use the site on the terms specified in these rules. + +You can do everything that does not apply to prohibited actions, but they include: + +1. Refusing to obey the rules or ignoring them, +2. Waiver of the mandatory presence of representatives of tech support agents or administration, +3. Using other people's pages without the permission of the owner, +4. Impersonating other people for gain. Exceptions: + 1. The person has allowed the use of his identity, + 2. The person is an original character belonging to you +5. Creation of mass mailings in any way, +6. Creating situations that in any way interfere with the operation of OpenVK, +7. The publication and storage on the resource of any content that: + 1. Is illegal in France or your country of residence, + 2. Contains pornographic scenes involving persons under the age of 18, + 3. Contains advertisements for drugs banned in France or your country of residence or instructions for their preparation, + 4. Contains information prohibited in France or your country of residence, + 5. Contains scenes of inhuman treatment of people or animals, + 6. Violates copyright and related rights, + 7. Violates human rights + 8. Prevents users from following the rules or from properly using the services provided by the OpenVK project. + +The administration is the highest authority that has the full right to make decisions about disputes that are not described in the rules. + +The administration may issue a punishment if users: + +1. Post prohibited content on the pages of other users, +2. They deceive the administration or tech support agents, +3. Mislead website users, +4. Publicly criticize OpenVK or the administration in order to humiliate or insult project participants or its leaders +5. Banned from official OpenVK chats on Telegram, +6. They do not respect the Project administration or tech support agents. + +In case of violation of the rules, the administration can: + +1. Ignore a violation that is minor, +2. Issue a warning to the user +3. Issue a temporary or permanent ban, +4. Prohibit future use of this site, +5. Remove account or prohibited content. + +The administration can issue punishments without giving a reason (even if there is one). diff --git a/data/knowledgebase/rules.ru.md b/data/knowledgebase/rules.ru.md new file mode 100644 index 00000000..ae9b10f1 --- /dev/null +++ b/data/knowledgebase/rules.ru.md @@ -0,0 +1,44 @@ +OpenVK-KB-Heading: Правила + +Администрация сайта разрешает Вам пользоваться сайтом на условиях, которые определены в этих правилах. + +Делать можно всё то, что не относится к запрещённым действиям, а к ним относятся: + +1. Отказ от подчинения правилам или их игнорирование, +2. Отказ от своевременного исполнения запросов агентов тех. поддержки или администрации, +3. Использование чужих страниц без разрешения владельца, +4. Выдача себя за других людей для получения выгоды. Исключения: + 1. Человек разрешил использование своей личности, + 2. Человек является оригинальным персонажем, принадлежащим Вам +5. Создание массовых рассылок любым способом, +6. Создание ситуаций, любым образом мешающих работе OpenVK, +7. Публикация и хранение на ресурсе любого содержимого, которое: + 1. Является незаконным на территории Франции или Вашей страны проживания, + 2. Содержит порнографические сцены с участием лиц младше 18 лет, + 3. Содержит рекламу запрещенных в Франции или Вашей стране проживания препаратов или инструкции по их приготовлению, + 4. Содержит информацию, запрещённую на территории Франции или Вашей страны проживания, + 5. Содержит сцены бесчеловечного обращения с людьми или животными, + 6. Нарушает авторские и смежные права, + 7. Нарушает права человека, + 8. Мешает пользователям исполнять правила или нормально пользоваться услугами, предоставляемыми проектом OpenVK. + +Администрация является высшим органом власти, имеющим полное право принимать решения насчёт спорных ситуаций, не описанных в правилах. + +Администрация может выдать наказание, если пользователи: + +1. Публикуют запрещённый контент на страницах других пользователей, +2. Обманывают администрацию или агентов тех. поддержки, +3. Вводят в заблуждение пользователей сайта, +4. Публично критикуют OpenVK или администрацию с целью унизить или оскорбить участников проекта или его руководителей, +5. Забанены в официальных чатах OpenVK в Telegram, +6. Не уважают администрацию проекта или агентов тех. поддержки. + +При нарушении правил, администрация может: + +1. Проигнорировать нарушение, являющееся незначительным, +2. Вынести пользователю предупреждение, +3. Выдать временную или постоянную блокировку, +4. Запретить в будущем пользоваться этим сайтом, +5. Удалить аккаунт или запрещенный контент. + +Администрация может выдавать наказания без объяснения причины (даже если таковая имеется). diff --git a/data/knowledgebase/rules.ru.textile b/data/knowledgebase/rules.ru.textile deleted file mode 100644 index 08c6afbb..00000000 --- a/data/knowledgebase/rules.ru.textile +++ /dev/null @@ -1,43 +0,0 @@ -OpenVK-KB-Heading: Правила - -Администрация сайта разрешает Вам пользоваться сайтом на условиях, которые определены в этих правилах. -Делать можно всё то, что не относится к запрещённым действиям, а к ним относятся: - -# Отказ от подчинения правилам или их игнорирование, -# Отказ от своевременного исполнения запросов агентов тех. поддержки или администрации, -# Использование чужих страниц без разрешения владельца, -# Выдача себя за других людей для получения выгоды. Исключения: -## Человек разрешил использование своей личности, -## Человек является оригинальным персонажем, принадлежащим Вам -# Создание массовых рассылок любым способом, -# Создание ситуаций, любым образом мешающих работе OpenVK, -# Публикация и хранение на ресурсе любого содержимого, которое: -## Является незаконным на территории Франции или Вашей страны проживания, -## Содержит порнографические сцены с участием лиц младше 18 лет, -## Содержит рекламу запрещенных в Франции или Вашей стране проживания препаратов или инструкции по их приготовлению, -## Содержит информацию, запрещённую на территории Франции или Вашей страны проживания, -## Содержит сцены бесчеловечного обращения с людьми или животными, -## Нарушает авторские и смежные права, -## Нарушает права человека, -## Мешает пользователям исполнять правила или нормально пользоваться услугами, предоставляемыми проектом OpenVK. - -Администрация является высшим органом власти, имеющим полное право принимать решения насчёт спорных ситуаций, не описанных в правилах. - -Администрация может выдать наказание, если пользователи: - -# Публикуют запрещённый контент на страницах других пользователей, -# Обманывают администрацию или агентов тех. поддержки, -# Вводят в заблуждение пользователей сайта, -# Публично критикуют OpenVK или администрацию с целью унизить или оскорбить участников проекта или его руководителей, -# Забанены в официальных чатах OpenVK в Telegram, -# Не уважают администрацию проекта или агентов тех. поддержки. - -При нарушении правил, администрация может: - -# Проигнорировать нарушение, являющееся незначительным, -# Вынести пользователю предупреждение, -# Выдать временную или постоянную блокировку, -# Запретить в будущем пользоваться этим сайтом, -# Удалить аккаунт или запрещенный контент. - -Администрация может выдавать наказания без объяснения причины (даже если таковая имеется). diff --git a/data/knowledgebase/rules.textile b/data/knowledgebase/rules.textile deleted file mode 100644 index 7fd2adc3..00000000 --- a/data/knowledgebase/rules.textile +++ /dev/null @@ -1,43 +0,0 @@ -OpenVK-KB-Heading: Rules - -The site administration allows you to use the site on the terms specified in these rules. -You can do everything that does not apply to prohibited actions, but they include: - -# Refusing to obey the rules or ignoring them, -# Waiver of the mandatory presence of representatives of tech support agents or administration, -# Using other people's pages without the permission of the owner, -# Impersonating other people for gain. Exceptions: -## The person has allowed the use of his identity, -## The person is an original character belonging to you -# Creation of mass mailings in any way, -# Creating situations that in any way interfere with the operation of OpenVK, -# The publication and storage on the resource of any content that: -## Is illegal in France or your country of residence, -## Contains pornographic scenes involving persons under the age of 18, -## Contains advertisements for drugs banned in France or your country of residence or instructions for their preparation, -## Contains information prohibited in France or your country of residence, -## Contains scenes of inhuman treatment of people or animals, -## Violates copyright and related rights, -## Violates human rights -## Prevents users from following the rules or from properly using the services provided by the OpenVK project. - -The administration is the highest authority that has the full right to make decisions about disputes that are not described in the rules. - -The administration may issue a punishment if users: - -# Post prohibited content on the pages of other users, -# They deceive the administration or tech support agents, -# Mislead website users, -# Publicly criticize OpenVK or the administration in order to humiliate or insult project participants or its leaders -# Banned from official OpenVK chats on Telegram, -# They do not respect the Project administration or tech support agents. - -In case of violation of the rules, the administration can: - -# Ignore a violation that is minor, -# Issue a warning to the user -# Issue a temporary or permanent ban, -# Prohibit future use of this site, -# Remove account or prohibited content. - -The administration can issue punishments without giving a reason (even if there is one). diff --git a/data/rules.xhtml b/data/rules.xhtml deleted file mode 100644 index 440d7476..00000000 --- a/data/rules.xhtml +++ /dev/null @@ -1 +0,0 @@ -Sample rules \ No newline at end of file