From 86da6f873e6a84b97ef2bfc9c6527305a8c995f5 Mon Sep 17 00:00:00 2001 From: Kristinita Date: Mon, 16 Nov 2020 13:49:34 +0300 Subject: [PATCH] chore(architecture): big refactoring MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit perf(jquery) remove JQuery, replace all JQuery dependencies perf(deferjs): migrate to Defer.js — https://appseeds.net/defer.js/demo.html refactor(pelican): single template for articles and pages with includes — https://bernhard.scheirle.de/posts/2016/March/07/seo-how-to-exclude-pages-and-articles-with-pelican/#how-to-use-the-noindex-html-meta-tag-with-pelican perf(fonts): increase fonts downloading speed — https://csswizardry.com/2020/05/the-fastest-google-fonts/ refactor(peru): remove all Python third-party packages from repository — https://github.com/buildinspace/peru/issues/205#issuecomment-528948901 upd(python): Python and Pipenv to latest versions fix(just_table): apply just_table for all types of articles and pages — https://github.com/burakkose/just_table/pull/9 upd(css): migrate from PurifyCSS to PurgeCSS lint(links): checkPages for checking internal links — https://www.npmjs.com/package/check-pages fix(accessibility): some improvements for the own code and Gemini scrollbar — https://github.com/noeldelgado/gemini-scrollbar/pull/67 fix(favicons): apply RealFavicon for all HTML lint(csslint): drop CSSLint support, I can’t ignore CSS4 parts of a code — https://github.com/CSSLint/csslint/issues/720#issuecomment-376566968 --- .commitlintrc.yml | 6 +- .editorconfig | 1 + .eslintrc.yml | 16 +- .htmlhintrc | 2 +- .htmllintrc | 2 +- .npmrc | 10 - .pylintrc | 13 + .stylelintrc.yaml | 20 +- .stylintrc | 7 +- .travis.yml | 262 +++---- CODE_OF_CONDUCT.md | 18 +- Gruntfile.coffee | 42 +- Pipfile | 28 +- README.md | 2 +- appveyor.yml | 99 ++- bash/travis-install.sh | 3 +- batch/appveyor-install.bat | 56 +- browserslist | 4 + ...20\272\321\202\321\203\321\200\321\203.md" | 7 +- ...0\271\320\267\320\270-\320\244\320\260.md" | 10 +- ...20\265\320\264\321\201\321\202\320\262.md" | 18 +- ...20\255\321\200\320\270\320\272\320\260.md" | 20 +- ...20\255\321\200\320\270\320\272\320\260.md" | 18 +- ...20\255\321\200\320\270\320\272\320\260.md" | 5 +- ...20\276\320\263\321\200\320\260\320\264.md" | 8 +- content/Gingerinas/Korvers.md | 17 +- .../\320\220\320\273\321\214FAQ.md" | 6 +- ...20\266\320\265\321\200\320\270\320\275.md" | 38 - ...0\265\320\271\321\201-\320\233\320\276.md" | 6 +- ...21\200\320\270\320\275\320\260\321\205.md" | 3 +- ...20\232\320\265\320\271\320\224\320\270.md" | 124 ++-- ...20\255\321\200\320\270\320\272\320\260.md" | 4 +- ...20\276\321\200\321\202\320\241\320\230.md" | 6 +- ...21\203\321\201\321\201\320\270\320\270.md" | 6 +- ...d-new-version-of-Sublime-Text-3-package.md | 18 +- ...t-current-\342\200\246-in-Sublime-Text.md" | 19 +- ...ow-to-publish-your-package-to-PyPI-2018.md | 55 +- content/IT-articles/typo-reporter.md | 11 +- .../Default-portable-browser-Windows-10.md | 8 +- ...21\201\320\260\320\271\321\202\321\213.md" | 4 +- ...0\270\320\265\320\274-ARK-Benefit-S401.md" | 4 +- ...20\235\320\265\320\273\320\265\320\271.md" | 3 +- content/Pages/About-for-developers.md | 40 +- ...Terms-and-Conditions-and-Privacy-Policy.md | 7 +- content/Programs/KristinitaLuckyLink.md | 21 +- content/Programs/PaletteMira.md | 9 +- ...21\201\321\201\320\272\320\270\320\265.md" | 146 ++-- ...21\200\320\260\321\204\320\270\321\217.md" | 12 +- ...0\260-\320\272\320\275\320\270\320\263.md" | 3 +- content/Sublime-Text/Sacagawea.md | 19 +- content/Sublime-Text/SashaSublime.md | 47 +- .../Sublime-Text-Power-User-notes.md | 6 +- content/Sublime-Text/ValeriyaSpeller.md | 32 +- budget.json => content/extra/budget.json | 48 +- content/extra/opensearch.xml | 2 +- grunt/aliases.yaml | 3 + grunt/checkPages.coffee | 175 +++++ grunt/clean-console.coffee | 4 +- grunt/concurrent.coffee | 108 +-- grunt/critical.coffee | 17 +- grunt/csslint.coffee | 46 +- grunt/cssnano.coffee | 21 +- grunt/cwebp.coffee | 14 +- grunt/deprecated.coffee | 298 +++++++- grunt/htmlhint.coffee | 31 +- grunt/htmllint.coffee | 39 +- grunt/http-server.coffee | 4 +- grunt/humans_txt.coffee | 6 +- grunt/pageres.coffee | 55 +- grunt/postcss.coffee | 18 +- grunt/purgecss.coffee | 187 +++-- grunt/purifycss.coffee | 107 --- grunt/realFavicon.coffee | 99 ++- grunt/shell.coffee | 40 +- grunt/string-replace.coffee | 280 +++++--- grunt/stylint.coffee | 126 ++-- grunt/templates.coffee | 29 +- grunt/uglify.coffee | 2 + package.json | 44 +- pelican-config/feeds.yaml | 16 +- pelican-config/generation.yaml | 5 + pelican-config/markdown_plugins_settings.yaml | 54 +- pelican-config/other.yaml | 7 + pelican-config/paths.yaml | 18 + pelican-config/pelican_plugins_settings.yaml | 15 +- pelican_settings_loader.py | 2 +- pelicanconf.py | 2 +- personal-plugins/putkiry/__init__.py | 4 +- personal-plugins/putkiry/putkiry.py | 30 +- peru.yaml | 81 ++- publishconf.py | 3 +- site_variables.yaml | 20 +- .../Browser-Update/browser-update.coffee | 4 +- .../static/coffee/Chocolat/chocolat.coffee | 18 + .../coffee/Clipboard-js/Clipboard.coffee | 122 +++- .../static/coffee/Fancybox/fancybox.coffee | 72 +- ...eryLazy.coffee => gemini-scrollbar.coffee} | 70 +- .../static/coffee/Tooltipster/tooltip.coffee | 2 +- .../static/coffee/lazysizes/lazysizes.coffee | 17 + .../interface-images/hes-gallery/close.png | Bin 0 -> 1421 bytes .../hes-gallery/fullscreen.png | Bin 0 -> 758 bytes .../hes-gallery/left-arrow.png | Bin 0 -> 818 bytes .../hes-gallery/right-arrow.png | Bin 0 -> 825 bytes .../static/stylus/components/code-blocks.styl | 77 ++ .../static/stylus/general/basic.styl | 293 +++++++- .../static/stylus/general/fonts.styl | 133 +++- .../stylus/general/one-column-table.styl | 65 +- .../static/stylus/general/placeholders.styl | 18 +- .../Pygments/pygments-fruity.styl | 29 +- .../static/stylus/sections/core-design.styl | 101 +-- .../static/stylus/sections/gingerinas.styl | 5 +- .../stylus/sections/giologica-blue.styl | 5 +- .../static/stylus/sections/giologica.styl | 10 +- .../static/stylus/sections/it-articles.styl | 5 +- .../static/stylus/sections/kristinita.styl | 8 + .../static/stylus/sections/programs.styl | 35 +- .../sections/sasha-black-description.styl | 5 +- .../static/stylus/sections/smert-svobode.styl | 5 +- themes/sashapelican/templates/article.html | 232 +----- themes/sashapelican/templates/base.html | 386 +++++----- .../templates/includes/base-tag.html | 24 + .../templates/includes/code-blocks.html | 50 ++ .../templates/includes/content.html | 15 + .../templates/includes/css-critical.html | 44 ++ .../templates/includes/favicons.html | 23 + .../templates/includes/fonts.html | 122 +++- .../templates/includes/footer-en.html | 7 +- .../templates/includes/footer-pages.html | 20 - .../templates/includes/footer-ru.html | 7 +- .../templates/includes/footer.html | 37 + .../templates/includes/header.html | 64 ++ .../templates/includes/js-critical.html | 212 ++++++ .../templates/includes/js-low-priority.html | 134 ++++ .../templates/includes/js-specific.html | 83 +++ .../templates/includes/json-ld-articles.html | 44 -- .../templates/includes/lang-attribute.html | 27 + .../sashapelican/templates/includes/meta.html | 72 ++ .../templates/includes/neighbors-en.html | 16 +- .../templates/includes/neighbors-ru.html | 16 +- .../templates/includes/noscript-articles.html | 7 - .../templates/includes/noscript-pages.html | 7 - .../templates/includes/noscript.html | 18 + .../templates/includes/preconnecting.html | 40 ++ .../{addtoany-rss.html => rss-subscribe.html} | 11 +- .../templates/includes/share-buttons.html | 21 + .../templates/includes/side-icon.html | 20 + .../templates/includes/structured-data.html | 86 +++ .../templates/includes/tables.html | 26 + themes/sashapelican/templates/index.html | 4 +- themes/sashapelican/templates/page.html | 173 +---- .../sashapelican/templates/sasha-black.html | 10 +- third-party-plugins/just_table/.gitignore | 57 -- third-party-plugins/just_table/LICENSE | 339 --------- third-party-plugins/just_table/README.md | 210 ------ third-party-plugins/just_table/__init__.py | 2 - third-party-plugins/just_table/just_table.py | 164 ----- third-party-plugins/open_graph/.gitignore | 2 - third-party-plugins/open_graph/.travis.yml | 22 - third-party-plugins/open_graph/LICENSE | 661 ------------------ third-party-plugins/open_graph/Readme.rst | 46 -- third-party-plugins/open_graph/__init__.py | 2 - third-party-plugins/open_graph/open_graph.py | 125 ---- tidy.conf | 45 +- 163 files changed, 4316 insertions(+), 3927 deletions(-) delete mode 100644 .npmrc create mode 100644 .pylintrc delete mode 100644 "content/Gingerinas/\320\221\320\265\321\201\320\277\320\273\320\260\321\202\320\275\321\213\320\265-\320\272\320\275\320\270\320\263\320\270-\320\270-\321\203\321\207\320\265\320\261\320\275\321\213\320\265-\321\200\320\265\321\201\321\203\321\200\321\201\321\213-\320\264\320\273\321\217-\320\264\320\266\320\270\320\275\320\264\320\266\320\265\321\200\320\270\320\275.md" rename budget.json => content/extra/budget.json (86%) create mode 100644 grunt/checkPages.coffee delete mode 100644 grunt/purifycss.coffee create mode 100644 themes/sashapelican/static/coffee/Chocolat/chocolat.coffee rename themes/sashapelican/static/coffee/Gemini/{GeminiAndJQueryLazy.coffee => gemini-scrollbar.coffee} (63%) create mode 100644 themes/sashapelican/static/coffee/lazysizes/lazysizes.coffee create mode 100644 themes/sashapelican/static/images/interface-images/hes-gallery/close.png create mode 100644 themes/sashapelican/static/images/interface-images/hes-gallery/fullscreen.png create mode 100644 themes/sashapelican/static/images/interface-images/hes-gallery/left-arrow.png create mode 100644 themes/sashapelican/static/images/interface-images/hes-gallery/right-arrow.png create mode 100644 themes/sashapelican/static/stylus/components/code-blocks.styl create mode 100644 themes/sashapelican/templates/includes/base-tag.html create mode 100644 themes/sashapelican/templates/includes/code-blocks.html create mode 100644 themes/sashapelican/templates/includes/content.html create mode 100644 themes/sashapelican/templates/includes/css-critical.html create mode 100644 themes/sashapelican/templates/includes/favicons.html delete mode 100644 themes/sashapelican/templates/includes/footer-pages.html create mode 100644 themes/sashapelican/templates/includes/footer.html create mode 100644 themes/sashapelican/templates/includes/header.html create mode 100644 themes/sashapelican/templates/includes/js-critical.html create mode 100644 themes/sashapelican/templates/includes/js-low-priority.html create mode 100644 themes/sashapelican/templates/includes/js-specific.html delete mode 100644 themes/sashapelican/templates/includes/json-ld-articles.html create mode 100644 themes/sashapelican/templates/includes/lang-attribute.html create mode 100644 themes/sashapelican/templates/includes/meta.html delete mode 100644 themes/sashapelican/templates/includes/noscript-articles.html delete mode 100644 themes/sashapelican/templates/includes/noscript-pages.html create mode 100644 themes/sashapelican/templates/includes/noscript.html create mode 100644 themes/sashapelican/templates/includes/preconnecting.html rename themes/sashapelican/templates/includes/{addtoany-rss.html => rss-subscribe.html} (70%) create mode 100644 themes/sashapelican/templates/includes/share-buttons.html create mode 100644 themes/sashapelican/templates/includes/side-icon.html create mode 100644 themes/sashapelican/templates/includes/structured-data.html create mode 100644 themes/sashapelican/templates/includes/tables.html delete mode 100644 third-party-plugins/just_table/.gitignore delete mode 100644 third-party-plugins/just_table/LICENSE delete mode 100644 third-party-plugins/just_table/README.md delete mode 100644 third-party-plugins/just_table/__init__.py delete mode 100644 third-party-plugins/just_table/just_table.py delete mode 100644 third-party-plugins/open_graph/.gitignore delete mode 100644 third-party-plugins/open_graph/.travis.yml delete mode 100644 third-party-plugins/open_graph/LICENSE delete mode 100644 third-party-plugins/open_graph/Readme.rst delete mode 100644 third-party-plugins/open_graph/__init__.py delete mode 100644 third-party-plugins/open_graph/open_graph.py diff --git a/.commitlintrc.yml b/.commitlintrc.yml index 872fe0ea..ad79bbfd 100644 --- a/.commitlintrc.yml +++ b/.commitlintrc.yml @@ -128,7 +128,8 @@ rules: - test # Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) - ci - # Changes to the build process or auxiliary tools and libraries such as documentation generation + # [INFO] Tool changes, configuration changes, and changes to things that do not actually go into production at all: + # https://stackoverflow.com/a/26944812/5951529 - chore # Building tools changes (example scopes: grunt, gulp) - build @@ -141,6 +142,9 @@ rules: - debug # [INFO] Update - upd + # [INFO] Changes for linters/checkers/validators. + # Example scopes — “eslint”, “stylint” + - lint type-case: - 2 diff --git a/.editorconfig b/.editorconfig index 455e605d..883cac7c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -20,6 +20,7 @@ end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true + # [INFO] ECLint — ignore leading spaces in comments: # https://www.npmjs.com/package/eclint#support-for-doc-comments # https://www.npmjs.com/package/eclint#block_comment_start diff --git a/.eslintrc.yml b/.eslintrc.yml index 158bbb26..7c47d20a 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -10,14 +10,14 @@ parserOptions: jsx: true rules: indent: - - error - - tab + - error + - tab linebreak-style: - - error - - windows + - error + - unix quotes: - - error - - double + - error + - single semi: - - error - - always + - error + - always diff --git a/.htmlhintrc b/.htmlhintrc index e2718273..93514171 100644 --- a/.htmlhintrc +++ b/.htmlhintrc @@ -4,7 +4,7 @@ "attr-value-double-quotes": true, "attr-value-not-empty": false, "attr-no-duplication": true, - "doctype-first": true, + "doctype-first": false, "tag-pair": true, "empty-tag-not-self-closed": true, "spec-char-escape": true, diff --git a/.htmllintrc b/.htmllintrc index 6e6bf8c3..6034e103 100644 --- a/.htmllintrc +++ b/.htmllintrc @@ -1,5 +1,5 @@ { - "attr-bans": ["align", "background", "bgcolor", "border", "frameborder", "longdesc", "marginwidth", "marginheight", "scrolling", "width"], + "attr-bans": ["align", "background", "bgcolor", "border", "frameborder", "longdesc", "marginwidth", "marginheight", "scrolling"], "id-class-style": false, "indent-style": "tabs", "raw-ignore-regex": "/(\\.*\\<\/script\\>|\\.*\\<\/style\\>)/", diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 123e63bc..00000000 --- a/.npmrc +++ /dev/null @@ -1,10 +0,0 @@ -; [ACTION] Disable packages audit: -; https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities#installing-all-packages -; [PURPOSE] Possibly, it makes the Node.js and Grunt commands less slow -; [LEARN][NODEJS] “.npmrc”: -; https://docs.npmjs.com/configuring-npm/npmrc -; [INFO] “.npmrc” uses INI syntax: -; https://docs.npmjs.com/configuring-npm/npmrc#comments -; [INFO] Per-project “.npmrc”: -; https://docs.npmjs.com/configuring-npm/npmrc#per-project-config-file -audit=false diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 00000000..a5811ef0 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,13 @@ +########## +# pylint # +########## +# [ACTION] Validate Python code: +# https://www.pylint.org/ +# [INFO] pylint configuration file: +# https://github.com/PyCQA/pylint/blob/master/pylintrc +# https://www.getcodeflow.com/pylint-configuration.html + +[FORMAT] + +# [LINK] “.flake8” +max-line-length=120 diff --git a/.stylelintrc.yaml b/.stylelintrc.yaml index cc4feb92..e805149d 100644 --- a/.stylelintrc.yaml +++ b/.stylelintrc.yaml @@ -1,11 +1,23 @@ ############# # stylelint # ############# -# Configuration: +# [INFO] CSS checker: +# https://stylelint.io/ +# [INFO] Configuration: # https://stylelint.io/user-guide/configuration -# Recommended configuration: +# [INFO] Recommended configuration: # https://www.npmjs.com/package/stylelint-config-recommended extends: stylelint-config-recommended + + +################################### +# no-unsupported-browser-features # +################################### +# [INFO] Check features for browsers that supported in “browserslist” file: +# https://www.npmjs.com/package/stylelint-no-unsupported-browser-features +plugins: +- stylelint-no-unsupported-browser-features + rules: # [INFO] Rule description: # https://stylelint.io/user-guide/rules/no-descending-specificity @@ -15,3 +27,7 @@ rules: # [INFO] Use “null”, not “false” for disabling rule: # https://stylelint.io/user-guide/configuration#rules no-descending-specificity: null + + # [REQUIRED] “plugin/plugin_name: true” + # https://www.npmjs.com/package/stylelint-no-unsupported-browser-features#recommendations + plugin/no-unsupported-browser-features: true diff --git a/.stylintrc b/.stylintrc index e247cd0c..9eb4f5cd 100644 --- a/.stylintrc +++ b/.stylintrc @@ -11,10 +11,7 @@ "expect": "never", "error": true }, - "colors": { - "expect": "always", - "error": true - }, + "colors": false, "commaSpace": { "expect": "always", "error": true @@ -111,5 +108,5 @@ "expect": "never", "error": true }, - "zIndexNormalize": 100 + "zIndexNormalize": 1 } diff --git a/.travis.yml b/.travis.yml index 6a3b8c60..cfcdb369 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,47 +1,47 @@ ############# # Travis CI # ############# -# Continuous integration for Ubuntu: +# [PURPOSE] Continuous integration for Ubuntu: # https://travis-ci.org/ -# [WARNING] If Travis CI doesn't create build for your latest commit, + +# [INFO] You can convert this “.travis.yml” file to “build.sh” +# so that build this site on your machine: +# https://github.com/travis-ci/travis-build + +# [NOTE] If Travis CI doesn’t create build for your latest commit, # your “.travis.yml” file is not valid. Example: # https://github.com/Kristinita/SashaTravisDebugging/commits/KiraLocalAppVeyor/.travis.yml -# [WARNING] “group: travis_latest” doesn't work at April 2018, read end of article: +# [NOTE] “group: travis_latest” doesn't work at April 2018, read end of article: # https://blog.travis-ci.com/2017-12-01-new-update-schedule-for-linux-build-images - -# [INFO] Trusty by default: -# https://stackoverflow.com/a/21133609/5951529 -# https://blog.travis-ci.com/2017-07-11-trusty-as-default-linux-is-coming -# Travis CI doesn't support 32-bit platforms: +# [INFO] Travis CI doesn’t support 32-bit platforms: # https://stackoverflow.com/a/37087813/5951529 -# Trusty — more modern: -# https://docs.travis-ci.com/user/reference/trusty/#Image-differences-from-Precise -# https://docs.travis-ci.com/user/reference/overview/#Virtualisation-Environment-vs-Operating-System -# https://blog.travis-ci.com/2017-08-31-trusty-as-default-status + +# [INFO] Migration repositories to travis-ci.com: +# https://docs.travis-ci.com/user/migrate/open-source-repository-migration + +# [LEARN][TRAVIS] Sections: +# https://docs.travis-ci.com/user/job-lifecycle +# https://stackoverflow.com/a/34384262/5951529 +# [LEARN][TRAVIS] Exit codes: +# https://docs.travis-ci.com/user/job-lifecycle#breaking-the-build + # [DECLINED] “sudo” key: # https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration # [NOTE] Needs for correct APT addon usage: # https://docs.travis-ci.com/user/reference/overview/ -# Diff: +# [COMPARE]: # https://travis-ci.org/Kristinita/SashaScrutinizer/builds/370138075 # https://travis-ci.org/Kristinita/SashaScrutinizer/builds/370122401 # sudo: enabled -# [INFO] OS: + +# [LEARN][TRAVIS] OS: # https://docs.travis-ci.com/user/reference/overview/ os: linux -# [DEPRECATED] -# [NOTE] Needs Xenial, not Trusty for Python 3.7 works: -# https://travis-ci.community/t/unable-to-download-python-3-7-archive-on-travis-ci/639/2 -# https://github.com/travis-ci/travis-ci/issues/9815#issuecomment-425867404 -# Differences between Xenial and Trusty: -# https://docs.travis-ci.com/user/reference/xenial/#differences-from-the-trusty-images - - -# [INFO] Compare Travis Ubuntu environments; +# [LEARN][TRAVIS] Compare Travis Ubuntu environments; # “focal” is the latest for September 2020: # https://docs.travis-ci.com/user/reference/linux#overview dist: focal @@ -53,24 +53,25 @@ git: depth: 1 -# Environment: -# [INFO] Using secure variables for Travis CI: +# [LEARN][TRAVIS] Environment +# [LEARN][TRAVIS] Using secure variables for Travis CI: # https://docs.travis-ci.com/user/environment-variables/#defining-encrypted-variables-in-travisyml -# [INFO] Encrypt variables locally: +# [LEARN][TRAVIS] Encrypt variables locally: # https://docs.travis-ci.com/user/environment-variables/#encrypting-environment-variables -# [WARNING] Your variables must be secured! +# [NOTE] Your variables must be secured! # If you push to GitHub unsecured token, GitHub remove it, and you will need create new; # you will get message as this: # https://github.com/nodejs/build/issues/1353#issuecomment-397950573 env: global: - # [INFO] Needs get GitHub token with “public_repo” scope: + # [LEARN][TRAVIS] Needs get GitHub token with “public_repo” scope: # https://docs.travis-ci.com/user/deployment/pages/#setting-the-github-token - # [INFO] YAML multiline strings: + # [LEARN][YAML] YAML multiline strings: # https://stackoverflow.com/a/21699210/5951529 # https://yaml-multiline.info/ + # [NOTREQUIRED] Quotes around variables + # [INFO] Equivalent: TOKEN_GITHUB_FOR_TRAVIS_DEPLOY = my real token - # [INFO] Quotes around variables not required - secure: > L2my4oDf6RtE36cchK+NOYQYovfbsDYGGKzjwnUVOYflbZMA8++p3m7jrK/43RtOZ6l0z7ITX80yc/ TqZk4owULulRcmU3iQsWbRYQlFUJmKZ0rKYLMz3FAK5bWBPO/ZcKC8N0egAb7+ @@ -82,8 +83,9 @@ env: S0ICg0ld84hiLP5AsSXobipyinQvxMhlBPf2yxchVTMbASo8L0mT8Q9WHNCB// DcrRLq+KR6C4O3JG18KJnX+6TkbP+ 1wmWiKrjRmRoN68YwQAyzmXcgvRXXcxKoSch8DbVIEW2AAd388Tfw5dibHk= + # [INFO] Equivalent: API_KEY_APPVEYOR = my real key: - # https://kristinita.netlify.com/Pages/About-for-developers#AppVeyor + # https://kristinita.netlify.app/Pages/About-for-developers#AppVeyor - secure: > qE2c+aZb9QGtPF9VG6WhAP2iT0mTDAnmueEiqWUctgalhAFAJ4wdSqvHNNv+F2178wE92WcpT3/ chmJltlBj1Qqx6vWevJR2ff1uNbQnwGHYBw+1c8JOvx7mUvisp/nzU1eIpU50/ @@ -96,6 +98,7 @@ env: CksWBqUi3QMQYkSMT5Xkv5YcTeWqQe6W4U2hVg7+Tl1jesn2WP6nM6j +I2W5fJwYWIKB7U0hP6WR0jkrHDvMNfWgaB8VZCxYoVUFvCMf5IBnXgRGkYjJn9KkQv3pfODC5aUdep2mCWL+cYiHBukRncS66bs/ EAE= + # [INFO] Equivalent: API_KEY_PAGESPEED_INSIGHTS_V5 = my real key - secure: > u4bZ1LyhoUDKvng6cwQRlrKzR0EgFpnHSk0+zVH8entxT2tP8Ltir7IDrhY+v2+a7EXn3c/ @@ -108,10 +111,10 @@ env: 3bpq7yay5d6KmMIPpDwW+rBNLhCbzxPLpGdG40xd9Gs+w6iRoRXIlChh6PuGohDAPcA/oMofXtHic3hx5ViAPDcxsoB5pjc8CM= -# Needs “language: bash” for multilanguage projects: +# [LEARN][TRAVIS] Needs “language: bash” for multilanguage projects: # https://github.com/travis-ci/travis-ci/issues/4895 # https://github.com/travis-ci/docs-travis-ci-com/issues/910 -# But that use latest Python 3 version, not Python 2, you need “language: python” or +# [NOTE] But so that use latest Python 3 version, not Python 2, you need “language: python” or # install Python via APT addon: # https://stackoverflow.com/a/37660551/5951529 # https://travis-ci.org/Kristinita/SashaScrutinizer/builds/370118828 @@ -119,55 +122,19 @@ env: language: python -# [DEPRECATED] -# # [NOTE] Python 3.7.3 or higher required, Python 3.7.2 have a bug: -# # ModuleNotFoundError: No module named '_contextvars' -# # https://stackoverflow.com/a/55759519/5951529 -# [INFO] Python 3.8 available: -# https://travis-ci.community/t/add-python-3-8-support/5463/4 -python: 3.8 - - -# [INFO] “matrix.include”: -# https://docs.travis-ci.com/user/customizing-the-build#build-matrix -# [INFO] “matrix” key is alias for “jobs”: -# https://github.com/travis-ci/docs-travis-ci-com/issues/1500#issuecomment-444095922 -jobs: - include: - - script: - - grunt - - grunt http-server validatedev && grunt validate remote notappveyor travis - - script: - # [BUG] pageres doesn't work with Node.js 11: - # https://github.com/sindresorhus/pageres/issues/344 - # - grunt default && grunt http-server screenshots && grunt publish - - grunt publish - - grunt validate remote notappveyor travis - # Deploy, if production, not dev build: - # https://travis-ci.org/Kristinita/SashaTravis/builds/381271402 - # Make as cotila: - # https://github.com/calebzulawski/cotila/blob/master/.travis.yml - - MATRIX_DEPLOY=1 - +# [INFO] I use the latest available Python version: +# https://docs.travis-ci.com/user/languages/python/#python-versions +python: 3.9 -# Sections: -# https://docs.travis-ci.com/user/job-lifecycle -# https://stackoverflow.com/a/34384262/5951529 -# Exit codes: -# https://docs.travis-ci.com/user/job-lifecycle#breaking-the-build -# Addons: +# [LEARN][TRAVIS] Addons: # https://docs.travis-ci.com/user/addons/ -# APT addon: +# [LEARN][TRAVIS] APT addon: # https://docs.travis-ci.com/user/installing-dependencies/#Installing-Packages-with-the-APT-Addon -# APT sources whitelist: +# [LEARN][TRAVIS] APT sources whitelist: # https://github.com/travis-ci/apt-source-whitelist -# APT package whitelist: +# [LEARN][TRAVIS] APT package whitelist: # https://github.com/travis-ci/apt-package-whitelist -# [NOTE] ShellCheck default in Travis CI configuration: -# https://github.com/koalaman/shellcheck#travis-ci -# [INFO] PhantomJS is preinstalled on Travis: -# https://docs.travis-ci.com/user/gui-and-headless-browsers/#using-phantomjs addons: apt: packages: @@ -181,30 +148,44 @@ addons: # https://askubuntu.com/a/1027128/582218 - xsltproc -# Cache not needed for this project. -# Cache needs, when 1 job install dependencies, another jobs runs test, using the cache: + +# [NOTE] Cache not needed for this project. +# [LEARN][TRAVIS] Cache needs, when 1 job install dependencies, another jobs runs test, using the cache: # https://docs.travis-ci.com/user/build-stages/warm-cache/ -# Cache upload after “script” phase: +# [INFO] Cache upload after “script” phase: # https://docs.travis-ci.com/user/caching/#Build-phases -# Cache doesn't save between “images” — new builds: new virtual machine for each build: +# [NOTE] Cache doesn’t save between “images” — new builds: new virtual machine for each build: # https://docs.travis-ci.com/user/caching/#Things-not-to-cache before_install: -# Virtual environment inside project directory: +# [LEARN][PIPENV] Virtual environment inside project directory: # https://jcutrer.com/howto/dev/python/pipenv-pipfile +# https://pipenv.pypa.io/en/latest/advanced/#pipenv.environments.PIPENV_VENV_IN_PROJECT # “setx PIPENV_VENV_IN_PROJECT 1” for Windows - export PIPENV_VENV_IN_PROJECT=1 -# Ignore existing virtual environments: + +# [LEARN][PIPENV] Ignore existing virtual environments: # https://github.com/menzenski/pipenv-travis-test/blob/develop/.travis.yml +# https://pipenv.pypa.io/en/latest/advanced/#pipenv.environments.PIPENV_IGNORE_VIRTUALENVS - export PIPENV_IGNORE_VIRTUALENVS=1 + +# [INFO] Disable lock feature in the Pipenv: +# https://pipenv.pypa.io/en/latest/cli/#envvar-PIPENV_SKIP_LOCK +# https://github.com/pypa/pipenv/issues/2200 +# 1. It the extra feature +# 2. And too slow +- export PIPENV_SKIP_LOCK=1 + # [INFO] Remove .NET Core SDK telemetry: # https://docs.microsoft.com/en-us/dotnet/core/tools/telemetry#disclosure # https://stackoverflow.com/a/39307563/5951529 - export DOTNET_CLI_TELEMETRY_OPTOUT=1 -# [INFO] Don't install pylint from grunt-pylint + +# [INFO] Don’t install pylint from grunt-pylint # https://www.npmjs.com/package/grunt-pylint#getting-started - export GRUNT_PYLINT_SKIP_POSTINSTALL=yes + # [NOTE] Disable Node.js warnings: # https://nodejs.org/api/cli.html#cli_node_no_warnings_1 # It a not the best solution, a lot of warnings from old Grunt packages @@ -212,123 +193,163 @@ before_install: # https://ci.appveyor.com/project/Kristinita/kristinitapelican/build/job/qhr57grom9dohssp - export NODE_NO_WARNINGS=1 -# Add LocalAppVeyor directory to the end of the PATH environment variable: +# [LEARN][UNIX] Add LocalAppVeyor directory to the end of the PATH environment variable: # https://unix.stackexchange.com/a/26067/237999 # http://www.troubleshooters.com/linux/prepostpath.htm -# “.dotnet/tools” must be added to PATH: +# [INFO] “.dotnet/tools” must be added to PATH: # https://github.com/dotnet/cli/issues/9208#issuecomment-386851831 -# DotNet user profile is “USERPROFILE” on Windows and “HOME” on Linux: +# [INFO] DotNet user profile is “USERPROFILE” on Windows and “HOME” on Linux: # https://github.com/dotnet/cli/issues/7569#issuecomment-329280924 -# “$HOME” is “/home/travis” on Travis Linux: +# [INFO] “$HOME” is “/home/travis” on Travis Linux: # https://docs.travis-ci.com/user/environment-variables/#default-environment-variables - PATH=$PATH:$HOME/.dotnet/tools -# That script run for “master” branch, not for “HEAD”; + +# [NOTE] That script run for “master” branch, not for “HEAD”; # Needs, that “grunt-checkbranch” works correct: # https://stackoverflow.com/a/18866140/5951529 - git checkout master -# Correct displaying Non-ASCII symbols in Travis CI console: + +# [NOTE] For correct displaying Non-ASCII symbols in Travis CI console: # https://stackoverflow.com/a/34549249/5951529 - git config --global core.quotePath false install: +# [INFO] ShellCheck default in Travis CI configuration: +# https://github.com/koalaman/shellcheck#travis-ci +# [INFO] PhantomJS is preinstalled on Travis: +# https://docs.travis-ci.com/user/gui-and-headless-browsers/#using-phantomjs + # [NOTE] Node.js latest version required; -# because by default it doesn’t work correctly: +# because by default this build will not work correctly: # https://travis-ci.org/github/Kristinita/KristinitaPelican/jobs/728121010 # [LEARN][NVM] Install the latest Node.js version by NVM: # https://github.com/nvm-sh/nvm#usage # https://travis-ci.org/github/Kristinita/SashaTravisDebugging/builds/728253580#L187-L188 # [INFO] David Welsh reccomends NVM installation: # https://davidwalsh.name/nvm + # [NOTE] “nvm install node” must be in “.travis.yml” file, not in external files; # otherwise you get error “nvm: command not found”: # https://travis-ci.org/github/Kristinita/SashaTravisDebugging/builds/728278371#L182 # https://travis-ci.org/github/Kristinita/KristinitaPelican/jobs/728274971#L238 # https://github.com/travis-ci/travis-ci/issues/6027 # https://github.com/travis-ci/travis-ci/issues/5999 + # [NOTE] Doesn’t work: -# “node_js: node”: +# 1. “node_js: node”: # https://docs.travis-ci.com/user/languages/javascript-with-nodejs/#specifying-nodejs-versions # https://travis-ci.org/github/Kristinita/SashaTravisDebugging/builds/728248259#L182-L183 # Node.js from apt addon: # https://travis-ci.org/github/Kristinita/SashaTravisDebugging/builds/728250645#L223-L224 -# “.nvmrc”: +# 2. “.nvmrc”: # https://docs.travis-ci.com/user/languages/javascript-with-nodejs/#specifying-nodejs-versions-using-nvmrc # https://travis-ci.org/github/Kristinita/SashaTravisDebugging/builds/728252349#L182-L183 -# “apt-get -y install node.js”: +# 3. “apt-get -y install node.js”: # https://stackoverflow.com/a/21119945/5951529 # https://travis-ci.org/github/Kristinita/SashaTravisDebugging/builds/728252818#L219-220 - nvm install node -# [NOTE] Parallelshell works, but no time economy, diff: +# [NOTE][COMPARE] Parallelshell works, but no time economy: # https://travis-ci.org/Kristinita/SashaPelicanTest/jobs/347254717 # https://travis-ci.org/Kristinita/SashaPelicanTest/jobs/347267767 - bash bash/travis-install.sh -# [INFO] Automatically deploy site to GitHub Pages: +# [LEARN][TRAVIS] “matrix.include”: +# https://docs.travis-ci.com/user/customizing-the-build#build-matrix +# [INFO] “matrix” key is alias for “jobs”: +# https://github.com/travis-ci/docs-travis-ci-com/issues/1500#issuecomment-444095922 +jobs: + include: + - script: + - grunt + - grunt http-server validatedev && grunt validate remote notappveyor travis + - script: + - grunt publish + - grunt validate remote notappveyor travis + # [INFO] Deploy, if production, not dev build: + # https://travis-ci.org/Kristinita/SashaTravis/builds/381271402 + # [INFO] I make as cotila user: + # https://github.com/calebzulawski/cotila/blob/master/.travis.yml + - MATRIX_DEPLOY=1 + + +# [LEARN][TRAVIS] Automatically deploy site to GitHub Pages: # https://docs.travis-ci.com/user/deployment # https://docs.travis-ci.com/user/deployment/pages/ # [INFO] Changes not deploy, if pull request: # https://docs.travis-ci.com/user/deployment#Pull-Requests -# If “script” failed, deploying doesn't run; -# else “pelican_scaffold”, deploy run, even if “script” failed, don't use “pelican_scaffold”: + +# [WARNING] If “script” failed, deploying doesn’t run; +# else “pelican_scaffold”, deploy run, even if “script” failed; +# don’t use “pelican_scaffold” for deployment: # https://github.com/textbook/pelican_scaffold -# [WARNING] Custom commit messages doesn't support: -# https://github.com/travis-ci/travis-ci/issues/9287 deploy: - # [INFO] Deploy strategy: + # [LEARN][TRAVIS] Deploy strategies: # https://docs.travis-ci.com/user/deployment-v2/providers/pages/#shared-options strategy: git provider: pages - # [INFO] dpl v2: + + # [LEARN][TRAVIS] dpl v2: # https://blog.travis-ci.com/2019-08-27-deployment-tooling-dpl-v2-preview-release # https://docs.travis-ci.com/user/deployment-v2/providers/pages edge: true on: branch: master - # Deploy site, if “grunt publish”, else “grunt” — not deploy: + + # [INFO] Deploy site, if “grunt publish”, else “grunt” — not deploy: # https://docs.travis-ci.com/user/deployment#Conditional-Releases-with-on%3A condition: $MATRIX_DEPLOY - # [INFO] Doesn't overwrite commit history of destination repository: - # https://docs.travis-ci.com/user/deployment/pages/ + # [INFO] Git history keeping by default in dpl v2: + # [LEARN][TRAVIS] Don’t overwrite commit history of destination repository: + # https://docs.travis-ci.com/user/deployment/pages/ # keep-history: true + # [INFO] Cleanup deprecated in dpl v2, “cleanup” is “false” by default - # Don't clean output folder: + # [LEARN][TRAVIS] Don’t clean output folder: # https://docs.travis-ci.com/user/deployment/pages/ # skip-cleanup: true + target_branch: master local_dir: output repo: Kristinita/Kristinita.github.io - # “TOKEN_GITHUB_FOR_TRAVIS_DEPLOY” is secure variable, that set in repository settings: + + # [LEARN][TRAVIS] “TOKEN_GITHUB_FOR_TRAVIS_DEPLOY” is secure variable, that set in repository settings: # https://docs.travis-ci.com/user/environment-variables#Defining-Variables-in-Repository-Settings # https://docs.travis-ci.com/user/deployment/pages/#Setting-the-GitHub-token # [WARNING] You need set secure variables for each repository, # variables for all repositories not possible at the time: # https://github.com/travis-ci/travis-ci/issues/2069 + # [INFO] “deploy_key” is another option instead of “token”: + # https://docs.travis-ci.com/user/deployment-v2/providers/pages/#known-options # https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys # [INFO] “token” is alias for “github_token”: # https://docs.travis-ci.com/user/deployment-v2/providers/pages/#known-options token: $TOKEN_GITHUB_FOR_TRAVIS_DEPLOY - # Name and e-mail of committer: + + # [LEARN][TRAVIS] Use name and e-mail of committer: # https://docs.travis-ci.com/user/deployment/pages/#Further-configuration # [INFO] For dpl v.2 “committer_from_gh”, not “committer-from-gh”: # https://docs.travis-ci.com/user/deployment-v2/providers/pages/#known-options committer_from_gh: true - # [INFO] For custom domains only - # Automatically generate CNAME for custom domain: + + # [INFO] I re-enable it, if I egt custom domain again + # [INFO] Automatically generate CNAME for custom domains: # fqdn: kristinita.netlify.app - # [WARNING] Don't use single quotes in “project-name”: + + # [NOTE] Don’t use single quotes in “project_name”: # https://github.com/travis-ci/travis-ci/issues/9325 # [INFO] “project_name”, not “project-name” for dpl v.2 project_name: Поиск Кристиниты verbose: true + # [INFO] Custom deploy message - # [WARNING] Multiline messages doesn't supported: + # [INFO] Multiline message: # https://github.com/travis-ci/dpl/issues/1126 - # [INFO] Available variables is: + # [INFO] Available variables: # 1. Travis Environment Variables: # https://docs.travis-ci.com/user/environment-variables/#default-environment-variables # 2. Known options: @@ -341,20 +362,19 @@ deploy: builded and checked by Travis CI build $TRAVIS_BUILD_NUMBER. See https://travis-ci.org/$TRAVIS_REPO_SLUG/builds/$TRAVIS_BUILD_ID for details. + # [INFO] Run command after site deployment. -# [NOTE] exit_codes doesn't work for after_deploy: +# [NOTE] “exit_codes” doesn’t work for “after_deploy” by default: # https://docs.travis-ci.com/user/job-lifecycle#breaking-the-build # https://github.com/travis-ci/travis-ci/issues/1574 -# travis_terminate needs: + +# [INFO] Use “travis_terminate” for it: # https://github.com/travis-ci/travis-ci/issues/1574#issuecomment-451787844 # https://travis-ci.org/Kristinita/SashaTravis/builds/502952826 # https://travis-ci.org/Kristinita/SashaTravis/builds/502951558 # https://github.com/travis-ci/docs-travis-ci-com/issues/1899 # http://bit.ly/2UkR2y9 - - -# [FIXME] “grunt-pagespeed” problems: -# after_deploy: > -# if ! grunt afterdeploy -# then travis_terminate 1 -# fi +after_deploy: > + if ! grunt afterdeploy + then travis_terminate 1 + fi diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 2adc8abe..2c888abd 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -117,13 +117,17 @@ the community. This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at -https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. -Community Impact Guidelines were inspired by [Mozilla's code of conduct -enforcement ladder](https://github.com/mozilla/diversity). - -[homepage]: https://www.contributor-covenant.org +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available +at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/Gruntfile.coffee b/Gruntfile.coffee index 62e5d254..26e0342b 100644 --- a/Gruntfile.coffee +++ b/Gruntfile.coffee @@ -2,16 +2,6 @@ # @Date: 2017-04-05 20:11:18 # @Last Modified time: 2017-04-11 08:20:09 -# [LEARN][GRUNT] Grunt apply for files dynamically: -# https://gruntjs.com/configuring-tasks#building-the-files-object-dynamically - -# [DONE] -# https://superuser.com/q/1198421/572069 -# [BUG] In ConEmu background color = Grunt output color -# https://github.com/gruntjs/grunt/issues/1589 -# Temporarily solution — using --no-color argument -# https://stackoverflow.com/a/23550493/5951529 - ########################### ## Loading Grunt plugins ## ########################### @@ -19,33 +9,37 @@ module.exports = (grunt) -> ### - Rename “htmllint” task of grunt-html to “html-vnu”, + [INFO] Rename “htmllint” task of grunt-html to “html-nu”, because same name have task of grunt-htmllint: https://stackoverflow.com/a/13880658/5951529 https://gruntjs.com/api/grunt.task#grunt.task.renametask ### grunt.loadNpmTasks 'grunt-html' - # Comma required, I can't get similar behavior, use indentation: + # [REQUIRED] Comma; I can’t get similar behavior, use indentation: grunt.renameTask 'htmllint', 'html-nu' ####################### ## load-grunt-config ## ####################### - # Configure Gruntfile.coffee to multiple files. - # https://npmjs.org/package/load-grunt-config - # https://www.html5rocks.com/en/tutorials/tooling/supercharging-your-gruntfile/ - # Use load-grunt-tasks - # https://github.com/sindresorhus/load-grunt-tasks - # doesn't write “grunt.loadNpmTasks 'task'” each time - # [WARNING] Do not use grunt-lazyload! It conflicting plugin - # https://www.npmjs.com/package/grunt-lazyload - # [WARNING] Not possible use subtasks in separate files: - # https://github.com/firstandthird/load-grunt-config/issues/178 + ### + [PURPOSE] Configure “Gruntfile.coffee” to multiple files. + https://npmjs.org/package/load-grunt-config + https://www.html5rocks.com/en/tutorials/tooling/supercharging-your-gruntfile/ + [INFO] Use load-grunt-tasks, so that + doesn’t write “grunt.loadNpmTasks 'task'” each time: + https://github.com/sindresorhus/load-grunt-tasks + [NOTE] Do not use grunt-lazyload with load-grunt-config both! It conflicting plugin: + https://www.npmjs.com/package/grunt-lazyload + [NOTE] Not possible use subtasks in separate files: + https://github.com/firstandthird/load-grunt-config/issues/178 + ### require('load-grunt-config') grunt ################ ## grunt-time ## ################ - # Show time for Grunt tasks: - # https://github.com/sindresorhus/time-grunt + ### + [PURPOSE] Show time for Grunt tasks: + https://github.com/sindresorhus/time-grunt + ### require('time-grunt') grunt diff --git a/Pipfile b/Pipfile index c3636d7b..7179ce22 100644 --- a/Pipfile +++ b/Pipfile @@ -1,10 +1,3 @@ -[[source]] -url = "https://pypi.python.org/simple" -verify_ssl = true -name = "pypi" - -[packages] - [dev-packages] pelican = "*" markdown = "*" @@ -21,19 +14,8 @@ pillow = "*" "ruamel.yaml" = "*" peru = "*" pylint = "*" - -[requires] -python_version = "3.7" - -[dev-packages.mdx-custom-span-class] -git = "https://github.com/exaroth/mdx_custom_span_class.git" -editable = true - -[dev-packages.csvlexer] -git = "https://github.com/Kristinita/PygmentsCSVLexer.git" -editable = true - -[dev-packages.mdx_downheader] -git = "https://github.com/Kristinita/mdx_downheader.git" -editable = true -ref = "KiraPatch" +csvlexer = {editable = true, git = "https://github.com/Kristinita/PygmentsCSVLexer.git"} +markdown-downheader = {editable = true, git = "https://github.com/Kristinita/mdx_downheader.git", ref = "KiraPatch"} +mdx-customspanclass = {editable = true, git = "https://github.com/exaroth/mdx_custom_span_class.git"} +pelican-sitemap = "*" +markdown-link-attr-modifier = "*" diff --git a/README.md b/README.md index 4f93b1be..3715a1a2 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,4 @@ -[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) ![Maintenance](https://img.shields.io/maintenance/yes/2020.svg?style=plastic)[![Site up or down](https://img.shields.io/website-up-down-green-red/https/kristinita.netlify.com.svg?style=plastic)](https://isup.me/) [![Build Status](https://travis-ci.org/Kristinita/KristinitaPelican.svg?branch=master)](https://travis-ci.org/Kristinita/KristinitaPelican) [![Build status](https://ci.appveyor.com/api/projects/status/63q37y3j06r53u1o/branch/master?svg=true)](https://ci.appveyor.com/project/Kristinita/kristinitapelican/branch/master) [![Built with Grunt](https://gruntjs.com/cdn/builtwith.png)](http://gruntjs.com/) [![Built with Pelican](https://gitcdn.xyz/repo/Kristinita/KristinitaPelican/master/content/images/logo/PelicanLogo.svg)](http://docs.getpelican.com) [![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](https://github.com/ellerbrock/open-source-badges/) [![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/Kristinita) [![Netlify Status](https://api.netlify.com/api/v1/badges/27090fd4-c2fd-48be-ae43-cbe5bad15684/deploy-status)](https://app.netlify.com/sites/kristinita/deploys) +[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) ![Maintenance](https://img.shields.io/maintenance/yes/2020.svg?style=plastic)[![Site up or down](https://img.shields.io/website-up-down-green-red/https/kristinita.netlify.com.svg?style=plastic)](https://isup.me/) [![Build Status](https://travis-ci.com/Kristinita/KristinitaPelican.svg?branch=master)](https://travis-ci.org/Kristinita/KristinitaPelican) [![Build status](https://ci.appveyor.com/api/projects/status/63q37y3j06r53u1o/branch/master?svg=true)](https://ci.appveyor.com/project/Kristinita/kristinitapelican/branch/master) [![Built with Grunt](https://gruntjs.com/cdn/builtwith.png)](http://gruntjs.com/) [![Built with Pelican](https://gitcdn.link/repo/Kristinita/KristinitaPelican/master/content/images/logo/PelicanLogo.svg)](http://docs.getpelican.com) [![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](https://github.com/ellerbrock/open-source-badges/) [![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/Kristinita) [![Netlify Status](https://api.netlify.com/api/v1/badges/27090fd4-c2fd-48be-ae43-cbe5bad15684/deploy-status)](https://app.netlify.com/sites/kristinita/deploys) diff --git a/appveyor.yml b/appveyor.yml index ee21d92d..08993491 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,28 +1,32 @@ ############ # AppVeyor # ############ -# Continuous integration for Windows: +# [PURPOSE] Continuous integration for Windows: # https://www.appveyor.com/docs/ -# Configuration: +# [INFO] Configuration: # https://www.appveyor.com/docs/appveyor-yml/ -# [NOTE] I'm doesn't support 32-bit Windows: + +# [NOTE] I don’t want support 32-bit Windows: # https://www.appveyor.com/docs/appveyor-yml/ platform: x64 + # [REQUIRED] Visual Studio 2019 for correct LocalAppVeyor run: # https://ci.appveyor.com/project/Kristinita/kristinitapelican/build/job/5c8lytcray3s6u2k?fullLog=true#L139 # https://www.appveyor.com/docs/custom-build-images/#building-shared-image-in-a-dedicated-project # https://www.appveyor.com/docs/windows-images-software/#net-framework +# [INFO] It the latest AppVeyor image for October 2020 image: Visual Studio 2019 -# [INFO] Don't download all repository history, that save a time: + +# [INFO] Don’t download all repository history, that save a time: # https://www.appveyor.com/docs/how-to/repository-shallow-clone/#setting-depth-of-git-clone-command clone_depth: 1 + init: -# [DONE][FIXME] Use pathed instead of SET for PATH; -# [WARNING] Don't use SETX! +# [NOTE] Don’t use SETX for adding value of “PATH” variable! # You can loss PATH data, if PATH contains more than 1024 symbols: # https://superuser.com/a/939256/572069 # [LEARN] SETX PATH: @@ -30,109 +34,131 @@ init: # https://superuser.com/a/939256/572069 # [LEARN] SET PATH: # https://stackoverflow.com/a/9546345/5951529 -# [BUG] SETX doesn't work with “configuration” step, compare: +# [BUG] SETX doesn’t work with “configuration” step, compare: # https://ci.appveyor.com/project/Kristinita/sashaappveyordebugging/builds/22144071 # https://ci.appveyor.com/project/Kristinita/sashaappveyordebugging/builds/22144311 + +# [LINK] “.travis.yml”: - SETX PIPENV_IGNORE_VIRTUALENVS 1 - SETX PIPENV_VENV_IN_PROJECT 1 -# [WARNING] Needs AppVeyor console set, see: +- SETX PIPENV_SKIP_LOCK 1 + +# [NOTE] Needs AppVeyor console set, see: # https://stackoverflow.com/a/48093971/5951529 - SETX PYTHONIOENCODING utf-8 -# [INFO] Remove .NET Core SDK telemetry + +# [LINK] “.travs.yml” - SETX DOTNET_CLI_TELEMETRY_OPTOUT 1 -# [INFO] Don't install pylint from grunt-pylint -# https://www.npmjs.com/package/grunt-pylint#getting-started + +# [LINK] “.travs.yml” - SETX GRUNT_PYLINT_SKIP_POSTINSTALL yes + # [NOTE] Disable preventing Node.js warnings: # [LINK] “.travis.yml” - SETX NODE_NO_WARNINGS 1 + # [NOTE] Use “CALL Refreshenv.cmd” for local installation: # https://github.com/chocolatey/choco/issues/1461#issuecomment-348136706 # https://ss64.com/nt/call.html -# [WARNING] Don't use refreshenv in AppVeyor, if you use “SET” instead of “pathed”! + +# [NOTE] Don’t use refreshenv in AppVeyor, if you use “SET” instead of “pathed”! # You loss your environment variables: # https://github.com/appveyor/ci/issues/1755 # Compare (difference — only refreshenv step): # https://ci.appveyor.com/project/Kristinita/sashaappveyordebugging/builds/22187235 # https://ci.appveyor.com/project/Kristinita/sashaappveyordebugging/builds/22187272 # - refreshenv -# [NOTE] 2 “refreshenv” required, if you use pathed instead of SET. -# [INFO] Configuration + +# [LEARN][APPVEYOR] “configuration” step: # https://www.appveyor.com/blog/2018/04/25/specialized-build-matrix-configuration-in-appveyor/ # “Debug” configuration is default configuration: - Debug - Release + environment: - # [INFO] Variables: + # [LEARN][APPVEYOR] Variables: # https://help.appveyor.com/discussions/problems/4629-how-to-use-appveyor-environment-variable # https://help.appveyor.com/discussions/questions/15163-multiuple-build-matrix-dimensions-from-environment-variables - PYTHON: C:\Python38-x64 + # [INFO] I use the latest available Python version: + # https://www.appveyor.com/docs/windows-images-software/#python + PYTHON: C:\Python39-x64 + # [INFO] “grunt default” = “grunt”; # AppVeyor support blank value. - # [NOTE] Spaces before “&&” doesn't need, compare: + + # [INFO] Spaces before “&&” doesn't need, compare: # https://ci.appveyor.com/project/Kristinita/sashatravis/build/job/5oqxucp76bpsr51o # https://ci.appveyor.com/project/Kristinita/sashatravis/build/1.0.38/job/s52ko615e3fpxr9b - # [BUG] pageres doesn't work with Node.js 11: - # https://github.com/sindresorhus/pageres/issues/344 - # GRUNT_COMMAND: default&& grunt http-server screenshots&& grunt publish GRUNT_BUILD: GRUNT_TEST: http-server validatedev&& grunt validate remote - # API key required for LocalAppVeyor: + + # [INFO] API key required for LocalAppVeyor: # https://www.appveyor.com/docs/api/ # https://ci.appveyor.com/api-keys API_KEY_APPVEYOR: - # [INFO] Secure variables: + # [LEARN][APPVEYOR] Secure variables: # Encrypt in remote AppVeyor site, not locally: # https://www.appveyor.com/docs/build-configuration/#secure-variables secure: +tAYCLWvKpNefBmIFHBZzSdFnN8mu71hBU1MqYbrjlY= - # API key for PageSpeed Insights: + + # [INFO] API key for PageSpeed Insights: API_KEY_PAGESPEED_INSIGHTS_V5: secure: 0xjbRl5LLYt8QPnzOLNdYFmFMT6j97EnU8Jj97BmRRW9FLebRfeUMrqOulXa3gDi -# Build configuration: + +# [LEARN][APPVEYOR] Build configuration: # https://www.appveyor.com/docs/build-configuration/#build-pipeline install: -# That script run for “master” branch, not for “HEAD”; + +# [REQUIRED] So that script run for “master” branch, not for “HEAD”; # Needs, that “grunt-checkbranch” works correct: # https://stackoverflow.com/a/18866140/5951529 -# Needs in “install” section, because in “init” section actions before cloning. +# [NOTE] It needs in “install” section, because in “init” section actions before cloning. - git checkout master -# [NOTE] Console (cmd.exe) is default terminal. + +# [LEARN][APPVEYOR] Console (cmd.exe) is default terminal in AppVeyor. # If needs PowerShell, “ps:” required: # https://www.appveyor.com/docs/appveyor-yml/ -# [WARNING] For local Scoop installation must required: +# [NOTE] For local Scoop installation must required: # “Set-ExecutionPolicy RemoteSigned -scope CurrentUser” # http://scoop.sh/ - ps: iex (new-object net.webclient).downloadstring('https://get.scoop.sh') -# [NOTE] Required PATH changes to separated file, because PATH must be set before grunt-pylint installation, compare: + +# [NOTE][COMPARE] Required PATH changes to separated file, because “PATH” must be set before grunt-pylint installation: # https://ci.appveyor.com/project/Kristinita/sashagruntdebugging/builds/24778322 # https://ci.appveyor.com/project/Kristinita/sashagruntdebugging/builds/24778353 - '%APPVEYOR_BUILD_FOLDER%/batch/appveyor-pathed.bat' - refreshenv -# [WARNING] npm parallel doesn't work, example: + +# [NOTE] npm parallel doesn'’ work, example: # https://ci.appveyor.com/project/Kristinita/sashapelicantest/build/1.0.25/job/70x5h1qq2d6j8gyp -# [WARNING] start command doesn't work without batch file: +# [NOTE] start command doesn’t work without batch file: # https://ci.appveyor.com/project/Kristinita/sashapelicantest/build/1.0.31 -# Project folder: +# [LEARN][APPVEYOR] Project folder: # https://github.com/vim/vim-win32-installer/blob/master/appveyor.yml - '%APPVEYOR_BUILD_FOLDER%/batch/appveyor-install.bat' - pathed /APPEND %USERPROFILE%\.dotnet\tools /USER -# [NOTE] “refreshenv” after install script required, compare: + +# [NOTE] 2 “refreshenv” required, if you use pathed instead of “SET”. +# [COMPARE] “refreshenv” after install script required: # https://ci.appveyor.com/project/Kristinita/sashaappveyordebugging/builds/24763413 # https://ci.appveyor.com/project/Kristinita/sashaappveyordebugging/builds/24763463 - refreshenv + build_script: - grunt %GRUNT_BUILD% + test_script: - grunt %GRUNT_TEST% -# Simple working configuration: + +# [LEARN][APPVEYOR] Simple working configuration: # https://github.com/Kristinita/SashaAppVeyorDebugging/blob/7ac8c23540c737f403ae280ce6502734833bb85f/appveyor.yml for: - @@ -143,7 +169,4 @@ for: GRUNT_BUILD: publish # [NOTE] Travis CI build run parallel and end before AppVeyor, # so “afterdeploy” will run after site deployment. - GRUNT_TEST: validate remote - - # [FIXME] “grunt-pagespeed” problems - # GRUNT_TEST: validate remote afterdeploy + GRUNT_TEST: validate remote afterdeploy diff --git a/bash/travis-install.sh b/bash/travis-install.sh index 15e81df4..7573a0b0 100644 --- a/bash/travis-install.sh +++ b/bash/travis-install.sh @@ -29,6 +29,7 @@ # https://stackoverflow.com/a/21133609/5951529 +# [DONE] # [FIXME] Temporary downgrade pipenv, because locking bug in the newest versions: # https://github.com/pypa/pipenv/issues/3391 @@ -56,7 +57,7 @@ # [NOTE] You need specific DotNet and Ubuntu version; # "https://packages.microsoft.com/config/ubuntu/packages-microsoft-prod.deb" and # "sudo apt-get install dotnet-sdk" will not works -parallel ::: 'pip install --upgrade pip && pip install pipenv==11.10.2 && pipenv install --dev && pipenv run peru sync' \ +parallel ::: 'pip install --upgrade pip && pip install pipenv && pipenv install --dev && pipenv run peru sync' \ 'npm install --global npm && npm install -g grunt-cli && npm install' \ 'git clone https://github.com/htacg/tidy-html5.git && cd tidy-html5 && cd build/cmake && cmake ../.. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIB:BOOL=OFF && make && sudo make install' \ 'gem install travis' \ diff --git a/batch/appveyor-install.bat b/batch/appveyor-install.bat index d939a2f1..fb5f5d9b 100644 --- a/batch/appveyor-install.bat +++ b/batch/appveyor-install.bat @@ -1,50 +1,62 @@ @REM @Author: Kristinita @REM @Date: 2018-02-28 19:42:16 @REM @Last Modified by: Kristinita -@REM Modified time: 2019-09-20 14:03:12 -@REM [INFO] Install all AppVeyor dependencies for building and validation. -@REM [LEARN] Use REM comments: +@REM Modified time: 2020-09-19 16:45:59 + +@REM [PURPOSE] Install all AppVeyor dependencies for building and validation. + + +@REM [LEARN][BATCH] Use REM comments: @REM https://stackoverflow.com/a/12407934/5951529 -@REM [LEARN] Hide REM lines from showing, use @ symbol: +@REM [LEARN][BATCH] Hide REM lines from showing, use @ symbol: @REM https://www.computerhope.com/issues/ch001313.htm @REM https://jpsoft.com/help/rem.htm -@REM CMD command /C option run another console; without /C option command doesn't work: +@REM [LEARN][BATCH] CMD command /C option run another console; without /C option command doesn't work: @REM https://ss64.com/nt/cmd.html -@REM START command /B option, that output from another consoles move to head console +@REM [LEARN][BATCH] START command /B option, that output from another consoles move to head console: @REM https://ss64.com/nt/start.html -@REM [WARNING] Use -ignoredependencies for HTML Tidy installation to AppVeyor + + +@REM [NOTE] Use -ignoredependencies for HTML Tidy installation to AppVeyor @REM https://github.com/majkinetor/au-packages/issues/75 @REM https://ci.appveyor.com/project/Kristinita/sashatidydebugging/build/1.0.12 START /B CMD /C "choco install html-tidy -y -ignoredependencies" + + @REM [NOTE] Needs “python -m pip install -U pip”, not “pip install -U pip”, because @REM “PermissionError: [WinError 5] Access is denied”: @REM https://pip.pypa.io/en/stable/installing/#upgrading-pip @REM https://pythonhosted.org/CodeChat/appveyor.yml.html -@REM [BUG] Temporary downgrade pipenv, because locking bug in newest versions: + +@REM [DONE] +@REM [FIXME] Temporary downgrade pipenv, because locking bug in newest versions: @REM https://github.com/pypa/pipenv/issues/3391 -@REM [WARNING] Use “pip3”, not “pip”, because Python 2 is default for February 2019: -@REM https://www.appveyor.com/docs/windows-images-software/#python -@REM [WARNING] Needs “%PYTHON%\\python”, that Python 3, not Python 2 will run: -@REM Required: -@REM 1. quotes -@REM 2. slash escaping -@REM “python3” command deprecated in Python 3.7 + +@REM [NOTE] Needs “%PYTHON%\\python”, that Python 3, not Python 2 will run + +@REM [NOTE] “python3” command deprecated in Python 3.7 @REM https://github.com/ogrisel/python-appveyor-demo/blob/master/appveyor.yml @REM https://packaging.python.org/guides/supporting-windows-using-appveyor/ @REM [NOTE] “pip3” doesn't work; use “%PYTHON%\\python -m pip”: @REM https://stackoverflow.com/a/42559223/5951529 -START /B CMD /C "%PYTHON%\\python -m pip install --upgrade pip & %PYTHON%\\python -m pip install pipenv==11.10.2 & pipenv install --dev & pipenv run peru sync" +@REM [NOTE] In this batch file required: +@REM 1. quotes +@REM 2. slash escaping +START /B CMD /C "%PYTHON%\\python -m pip install --upgrade pip & %PYTHON%\\python -m pip install pipenv & pipenv install --dev & pipenv run peru sync" START /B CMD /C "choco install nodejs phantomjs -y & npm install -g grunt-cli & npm install" -@REM [FIXME] Incorrect lint “.travis.yml” file: -@REM https://github.com/travis-ci/travis.rb/issues/422 -@REM https://github.com/travis-ci/travis-yaml/issues/58 -@REM [WARNING] Old Ruby 1.9.3 default by March 2019: + + +@REM [NOTE] Old Ruby 1.9.3 default by September 2020: @REM https://www.appveyor.com/docs/windows-images-software/#ruby @REM START /B CMD /C "gem install travis" -@REM [WARNING] In local machine you need install dotnetcore: + + +@REM [NOTE] In your local machine you need install dotnetcore for localappveyor installation: @REM https://chocolatey.org/packages/dotnetcore START /B CMD /C "dotnet tool install -g localappveyor" -@REM [NOTE] ShellCheck installation via Scoop — fast way for Windows: + + +@REM [NOTE] ShellCheck installation via Scoop — the fastest way for Windows: @REM https://github.com/koalaman/shellcheck/issues/915#issuecomment-385049702 @REM https://help.appveyor.com/discussions/suggestions/843-add-support-for-the-scoop-installer START /B CMD /C "scoop install shellcheck" diff --git a/browserslist b/browserslist index c40e201c..118a38d8 100644 --- a/browserslist +++ b/browserslist @@ -20,6 +20,7 @@ # examples for Android Browser, Opera Mobile and Blackberry Browser: # https://i.imgur.com/hokFRl6.png last 1 version + # [INFO] Doesn't support any browser version: # https://github.com/browserslist/browserslist/issues/137 # Reasons: @@ -29,17 +30,20 @@ last 1 version # We need duplicates “not {browser} > 0” not ie > 0 not ie_mob > 0 + # [NOTE] Opera Mini “is a joke, circumventing rather than supporting the intentions of web developers”: # https://www.quora.com/What-is-the-best-browser-for-developers/answer/Mack-Moore-1 # https://caniuse.com/#compare=ios_saf+12.2,op_mini+all,android+67,op_mob+46,and_chr+71,and_ff+64,and_qq+1.2 # [NOTE] For Opera Mini needs “op_mini all”: # https://github.com/browserslist/browserslist/issues/137#issuecomment-455494613 not op_mini all > 0 + # [NOTE] 1. BlackBerry discontinued; # 2. Usage stats is 0.02% for February, 2019: # https://caniuse.com/usage-table # http://bit.ly/2BGZD7k not bb > 0 + # [INFO] Links to UC, QQ and Baidu browsers: # https://github.com/Fyrd/caniuse/issues/4463#issuecomment-420143525 # [NOTE] Outdated QQ Browser version in Can I use: diff --git "a/content/Books-Reviews/\320\232\320\260\320\272-\321\207\320\270\321\202\320\260\321\202\321\214-\320\260\321\200\321\205\320\270\321\202\320\265\320\272\321\202\321\203\321\200\321\203.md" "b/content/Books-Reviews/\320\232\320\260\320\272-\321\207\320\270\321\202\320\260\321\202\321\214-\320\260\321\200\321\205\320\270\321\202\320\265\320\272\321\202\321\203\321\200\321\203.md" index ab446129..00e30289 100644 --- "a/content/Books-Reviews/\320\232\320\260\320\272-\321\207\320\270\321\202\320\260\321\202\321\214-\320\260\321\200\321\205\320\270\321\202\320\265\320\272\321\202\321\203\321\200\321\203.md" +++ "b/content/Books-Reviews/\320\232\320\260\320\272-\321\207\320\270\321\202\320\260\321\202\321\214-\320\260\321\200\321\205\320\270\321\202\320\265\320\272\321\202\321\203\321\200\321\203.md" @@ -2,15 +2,14 @@ Title: Как читать архитектуру Version: 0.1.0 Author: Sasha Chernykh Date: 2019-08-08 16:59:06 -Modified: 2019-09-24 18:54:37 +Modified: 2020-09-30 20:19:46 Lang: ru -Summary: Кэрол Дэвидсон Крейго «Как читать архитектуру» -Pagetitle: Кэрол Дэвидсон Крейго «Как читать архитектуру» +Summary: Кэрол Дэвидсон Крейго, «Как читать архитектуру» +Pagetitle: Кэрол Дэвидсон Крейго, «Как читать архитектуру» Pagecolors: giologica Asideimage: SashaBrazil Iconleftorright: left Tags: books-reviews -Table: standard Noco: 159d5 Og_image: https://i.imgur.com/75QKRAn.jpg Schemaorgtype: ScholarlyArticle diff --git "a/content/Erics-Rooms/\320\223\321\200\320\265\320\271\320\267\320\270-\320\244\320\260.md" "b/content/Erics-Rooms/\320\223\321\200\320\265\320\271\320\267\320\270-\320\244\320\260.md" index 57255769..f6dcbc3a 100644 --- "a/content/Erics-Rooms/\320\223\321\200\320\265\320\271\320\267\320\270-\320\244\320\260.md" +++ "b/content/Erics-Rooms/\320\223\321\200\320\265\320\271\320\267\320\270-\320\244\320\260.md" @@ -2,10 +2,10 @@ Title: Грейзи Фа Version: 0.0.1 Author: Sasha Chernykh Date: 2017-07-31 14:38:14 -Modified: 2020-08-28 20:28:37 +Modified: 2020-11-14 10:10:44 Lang: ru +Noindex: true Summary: Процесс поиска энциклопедической литературы и выделения из неё полезной для джинджерин информации -Pagetitle: Грейзи Фа Pagecolors: gingerinas Asideimage: SashaFluffy Titleimage: true @@ -164,7 +164,7 @@ Schemaorgtype: ScholarlyArticle ## Дисклеймер 1. Данные раздела актуальны на сентябрь 2019; в скором будущем они, вероятно, окажутся устаревшими, ибо описанные ниже сервисы могут заблокировать. -1. Раздел написан исключительно в демонстрационных целях. Никогда не делайте того, что в нём написано. Поддерживайте систему, где при [низких доходах населения](https://aif.ru/money/economy/po_nastoyashchemu_nishchie_pochemu_milliony_semey_zhivut_za_chertoy_bednosti) и [без того немалые цены на книги повышаются](https://rusplt.ru/sub/books/stoimost-knig-v-rossii-21522.html); а [авторам книг достаются крохи](http://fabiensanglard.net/gebbdoom/index.html) от выручки издателей и продавцов. +1. Раздел написан исключительно в демонстрационных целях. Никогда не делайте того, что в нём написано. Поддерживайте систему, где при [низких доходах населения](https://aif.ru/money/economy/po_nastoyashchemu_nishchie_pochemu_milliony_semey_zhivut_za_chertoy_bednosti) и [без того немалые цены на книги повышаются](https://rusplt.ru/sub/books/stoimost-knig-v-rossii-21522.html); а [авторам книг достаются крохи](https://fabiensanglard.net/gebbdoom/index.html) от выручки издателей и продавцов. 1. Для доступа к некоторым из перечисленных ниже сервисов могут понадобиться средства обхода блокировок. Для пользователей из России рекомендую [АнтиЗапрет](https://antizapret.prostovpn.org/) и [FastProxy](https://vk.com/fastproxy). @@ -246,14 +246,14 @@ Schemaorgtype: ScholarlyArticle 1. ![HAL](https://i.imgur.com/JZBkRyF.png) [HAL](http://www.bithal.com/) — многофункциональный поисковик по торрент-трекерам; к сожалению, прекратил существование, равно как [SkyTorrents](http://skytorrents.in) и [TParser](https://tparser.me/). 1. [GoTorrent](http://gotorrent.net/) — не ищет по трекерам, которых нет в выдаче Google; ту же проблему имеет [TSearch](http://tsearch.me/). -1. [Fileek](http://fileek.com) — ищет не всё; результаты хуже, чем у TorLook. +1. [Fileek](https://fileek.com) — ищет не всё; результаты хуже, чем у TorLook. ### Поисковики По точному названию бесплатные книги пробую найти и через поисковики общего профиля: -1. ![Яндекс](https://i.imgur.com/2UVm3Jl.png) [Яндекс](http://yandex.ru/) — ПМСМ, по русскоязычным источникам он ищет лучше Google; а блокирует сайты за нарушения авторских прав реже. +1. ![Яндекс](https://i.imgur.com/2UVm3Jl.png) [Яндекс](https://yandex.ru/) — ПМСМ, по русскоязычным источникам он ищет лучше Google; а блокирует сайты за нарушения авторских прав реже. 1. ![Google](https://i.imgur.com/rW5Utmp.png) [Google](https://google.ru). Запрос ["заключаю в кавычки"](http://www.googleguide.com/quoted_phrases.html), и добавляю к нему слово *скачать*. diff --git "a/content/Erics-Rooms/\320\224\320\276\320\277\321\203\321\201\321\202\320\270\320\274\321\213\320\265-\321\201\320\277\320\276\321\201\320\276\320\261\321\213-\320\277\321\200\320\270\320\262\320\273\320\265\321\207\320\265\320\275\320\270\321\217-\321\201\321\200\320\265\320\264\321\201\321\202\320\262.md" "b/content/Erics-Rooms/\320\224\320\276\320\277\321\203\321\201\321\202\320\270\320\274\321\213\320\265-\321\201\320\277\320\276\321\201\320\276\320\261\321\213-\320\277\321\200\320\270\320\262\320\273\320\265\321\207\320\265\320\275\320\270\321\217-\321\201\321\200\320\265\320\264\321\201\321\202\320\262.md" index 33e4e520..64d356ee 100644 --- "a/content/Erics-Rooms/\320\224\320\276\320\277\321\203\321\201\321\202\320\270\320\274\321\213\320\265-\321\201\320\277\320\276\321\201\320\276\320\261\321\213-\320\277\321\200\320\270\320\262\320\273\320\265\321\207\320\265\320\275\320\270\321\217-\321\201\321\200\320\265\320\264\321\201\321\202\320\262.md" +++ "b/content/Erics-Rooms/\320\224\320\276\320\277\321\203\321\201\321\202\320\270\320\274\321\213\320\265-\321\201\320\277\320\276\321\201\320\276\320\261\321\213-\320\277\321\200\320\270\320\262\320\273\320\265\321\207\320\265\320\275\320\270\321\217-\321\201\321\200\320\265\320\264\321\201\321\202\320\262.md" @@ -1,11 +1,11 @@ Title: Допустимые способы привлечения средств Version: 0.1.0 Date: 2020-03-17 12:31:15 -Modified: 2020-09-17 21:19:01 +Modified: 2020-11-03 09:36:11 Author: Sasha Chernykh Lang: ru -Pagetitle: Допустимые способы привлечения средств Summary: Обзор допустимых способов дохода для Комнат Эрика + ![Pay the maintainers](https://cdn2.hubspot.net/hubfs/4008838/PTMillustration-3.png) Pagecolors: programs Asideimage: SashaChocolate Iconleftorright: right @@ -242,7 +242,7 @@ Schemaorgtype: ScholarlyArticle + [С официального сайта Commons Clause](https://commonsclause.com/): - > The Commons Clause was intended, in practice, to have virtually no effect other than force a negotiation with those who take predatory commercial advantage of open source development. In practice, those are some of the biggest technology businesses in the world, some of whom use open source software but don't give back to the community. Freedom for others to commercialize your software comes with starting an open source project, and while that freedom is important to uphold, growth and commercial pressures will inevitably force some projects to close. The Commons Clause provides an alternative. + > The Commons Clause was intended, in practice, to have virtually no effect other than force a negotiation with those who take predatory commercial advantage of open source development. In practice, those are some of the biggest technology businesses in the world, some of whom use open source software but don’t give back to the community. Freedom for others to commercialize your software comes with starting an open source project, and while that freedom is important to uphold, growth and commercial pressures will inevitably force some projects to close. The Commons Clause provides an alternative. ### Качественные ограничения @@ -284,7 +284,7 @@ Schemaorgtype: ScholarlyArticle ## Полный список литературы -[Здесь](../Special/Полная-библиография#Поиск-средств-на-проекты). Критерий включения в него: включаемый материал, по моему мнению, может помочь найти средства для проектов [с такими принципами, как у Комнат Эрика](#Особенности-Комнат-Эрика), даже если он и обладает [нижеперечисленными недостатками](#Недостатки). +[Здесь](../Special/Полная-библиография#Поиск-средств-на-проекты). Критерий включения в него: включаемый материал, по моему мнению, может помочь найти средства для проектов [с такими принципами, как у Комнат Эрика](#Openness), даже если он и обладает [нижеперечисленными недостатками](#Недостатки). ### Недостатки @@ -379,14 +379,14 @@ Schemaorgtype: ScholarlyArticle
- +
+ [WebMoney Funding](https://funding.webmoney.ru/):
- +
Чтобы сделать бюджет прозрачным, в дальнейшим планируется воспользоваться чем-то вроде [OpenCollective](https://opencollective.com/), но там нужен уже готовый проект, соответствующий [определённым требованиям](https://www.oscollective.org/#criteria) (плюс пока что количество платёжных систем, поддерживаемых OpenCollective, [сильно ограничено](https://github.com/opencollective/opencollective/issues/2993)). @@ -405,7 +405,7 @@ Schemaorgtype: ScholarlyArticle + Питер Стюарт, «[The Live-Streaming Handbook](https://books.google.ru/books?id=ktZCDwAAQBAJ&pg=PT133)»: - > If you want to get results, you need to consider live-video as just one part of your marketing mix: live-video doesn't replace other aspects, it should help fuel them. + > If you want to get results, you need to consider live-video as just one part of your marketing mix: live-video doesn’t replace other aspects, it should help fuel them. я решил создать первый (по крайней мере, мне не удалось найти его аналогов) канал, где будут стримиться джинджерины. мои аккаунты на DLive и Twitch: @@ -477,7 +477,7 @@ PWIW [может быть эффективным](https://www.psychologytoday.co ### Tidelift -![Tidelift](https://cdn2.hubspot.net/hubfs/4008838/PTMillustration-3.png) +![Tidelift pay the maintainers](https://cdn2.hubspot.net/hubfs/4008838/PTMillustration-3.png) А вот как [помогает](https://dev.by/news/tidelift-netflix-for-developers) решать проблему оплаты труда сопровождающих проекты программистов ресурс [Tidelift](https://tidelift.com/): @@ -536,7 +536,7 @@ Bounty — плата конкретно за тот функционал, ко #### Использование в личных целях -Комнаты могут понадобиться единоразово или временно, например, заинтересованным компаниям для тестирования своих сотрудников или же образовательным организациям, для применения методов программированного обучения при преподавании студентам какой-то отдельной темы. В отличие от методов, описанных в разделах «[Написание пакетов](#Написание-пакетов)» и «[Bounty](#Bounty)», здесь подразумевается, что: +Комнаты могут понадобиться единоразово или временно, например, заинтересованным компаниям для тестирования своих сотрудников или же образовательным организациям, для применения методов программированного обучения при преподавании студентам какой-то отдельной темы. В отличие от методов, описанных в разделах «[Написание пакетов](#Написание-пакетов-на-заказ)» и «[Bounty](#Bounty)», здесь подразумевается, что: 1. заказчики имеют собственные пакеты с вопросами; 1. и/или им для достижения их задач требуются дополнительные проприетарные или нет расширения, модули, плагины. diff --git "a/content/Erics-Rooms/\320\227\320\265\320\273\321\221\320\275\320\260\321\217-\320\232\320\276\320\274\320\275\320\260\321\202\320\260-\320\255\321\200\320\270\320\272\320\260.md" "b/content/Erics-Rooms/\320\227\320\265\320\273\321\221\320\275\320\260\321\217-\320\232\320\276\320\274\320\275\320\260\321\202\320\260-\320\255\321\200\320\270\320\272\320\260.md" index 8d3b1367..8d91aac2 100644 --- "a/content/Erics-Rooms/\320\227\320\265\320\273\321\221\320\275\320\260\321\217-\320\232\320\276\320\274\320\275\320\260\321\202\320\260-\320\255\321\200\320\270\320\272\320\260.md" +++ "b/content/Erics-Rooms/\320\227\320\265\320\273\321\221\320\275\320\260\321\217-\320\232\320\276\320\274\320\275\320\260\321\202\320\260-\320\255\321\200\320\270\320\272\320\260.md" @@ -1,10 +1,9 @@ Title: Зелёная Комната Эрика Version: 0.1.0 Date: 2019-06-21 08:03:57 -Modified: 2020-02-23 11:41:57 +Modified: 2020-09-30 20:20:24 Author: Sasha Chernykh Lang: ru -Pagetitle: Зелёная Комната Эрика Summary: Описание Зелёной Комнаты Эрика Pagecolors: it-articles Asideimage: SashaGreenSweater @@ -12,7 +11,6 @@ Titleimage: true Titleimagename: KiraFullGreen Iconleftorright: right Tags: gingerinas, erics-rooms -Table: onecolumn Noco: 1ZTja7 Og_image: https://i.imgur.com/3xMeqpA.jpg Schemaorgtype: SoftwareApplication @@ -106,7 +104,7 @@ Schemaorgtype: SoftwareApplication Причины, почему так сложилось: -1. Начинал писать пакеты, когда у нас не было практически ничего из [основных возможностей Комнат](../Комнаты-Эрика/Основные-возможности). Вопросы первых пакетов имели простенький вид «Вопрос — Ответ — Источник». Со временем функционал в рабочий прототип внедрялся, но ограничения, не позволяющие писать так, как хотелось бы, к сожалению, были и остаются. +1. Начинал писать пакеты, когда у нас не было практически ничего из [основных возможностей Комнат](Комнаты-Эрика#Основные-возможности). Вопросы первых пакетов имели простенький вид «Вопрос — Ответ — Источник». Со временем функционал в рабочий прототип внедрялся, но ограничения, не позволяющие писать так, как хотелось бы, к сожалению, были и остаются. 1. Недооценивал важность иллюстраций, сведений об этимологии, развёрнутых комментариев. Пренебрегал ими, полагая, что получаю выигрыш во времени. Постепенно стараюсь доводить пакеты до оптимального состояния. Прошу прощения за доставленные неудобства. @@ -181,7 +179,7 @@ Schemaorgtype: SoftwareApplication [jtable th="0"] ![_](https://i.imgur.com/GdAdLpL.jpg)|[Народы России](https://github.com/Kristinita/Erics-Green-Room/blob/master/География/Народы_России.txt)|Kr -![_](https://i.imgur.com/dVLBMVN.jpg) ![_](https://i.imgur.com/xnU5SeT.jpg)|[Столицы, административные центры и крайние оконечности материков](https://github.com/Kristinita/Erics-Green-Room/blob/master/География/Столицы,_административные_центры_и_крайние_окончености_материков.txt)|Kr Kr +![_](https://i.imgur.com/dVLBMVN.jpg) ![_](https://i.imgur.com/xnU5SeT.jpg)|[Столицы, административные центры и крайние оконечности материков](https://github.com/Kristinita/Erics-Green-Room/blob/master/География/Столицы,_административные_центры_и_крайние_оконечности_материков.txt)|Kr Kr [/jtable] @@ -195,14 +193,14 @@ Schemaorgtype: SoftwareApplication ### Флаги [jtable th="0"] -![_](https://i.imgur.com/Zc9miIE.jpg)|[Вексиллология и прочие флаги](https://github.com/Kristinita/Erics-Green-Room/blob/master/География/Флаги/Вексиллология_и_прочие_флаги.txt); [Непризнанные государства и регионы](https://github.com/Kristinita/Erics-Green-Room/blob/master/География/Флаги/Непризнанные_государства_и_регионы.txt); [Суверенные государства](https://github.com/Kristinita/Erics-Green-Room/blob/master/География/Флаги/Суверенные_государства)|Kr +![_](https://i.imgur.com/Zc9miIE.jpg)|[Вексиллология и прочие флаги](https://github.com/Kristinita/Erics-Green-Room/blob/master/География/Флаги/Вексиллология_и_прочие_флаги.txt); [Непризнанные государства и регионы](https://github.com/Kristinita/Erics-Green-Room/blob/master/География/Флаги/Непризнанные_государства_и_регионы.txt); [Суверенные государства](https://github.com/Kristinita/Erics-Green-Room/blob/master/География/Флаги/Суверенные_государства.txt)|Kr [/jtable] ## Живопись [jtable th="0"] -![_](https://i.imgur.com/2aFALkc.jpg)|[Русская живопись второй половины XIX века](https://github.com/Kristinita/Erics-Green-Room/blob/master/Живопись/Русская_живопись_второй_половины_XIX_века.txt); [Русская живопись до второй половины XIX века](https://github.com/Kristinita/Erics-Green-Room/blob/master/Живопись/Русская_живопись_до_второй_половины_XIX_векa.txt); [Русская живопись на рубеже XIX и XX веков](https://github.com/Kristinita/Erics-Green-Room/blob/master/Живопись/Русская_живопись_на_рубеже_XIX_и_XX_веков.txt)|Is +![_](https://i.imgur.com/2aFALkc.jpg)|[Русская живопись второй половины XIX века](https://github.com/Kristinita/Erics-Green-Room/blob/master/Живопись/Русская_живопись_второй_половины_XIX_века.txt); [Русская живопись до второй половины XIX века](https://github.com/Kristinita/Erics-Green-Room/blob/master/Живопись/Русская_живопись_до_второй_половины_XIX_века.txt); [Русская живопись на рубеже XIX и XX веков](https://github.com/Kristinita/Erics-Green-Room/blob/master/Живопись/Русская_живопись_на_рубеже_XIX_и_XX_веков.txt)|Is [/jtable] @@ -348,15 +346,15 @@ Schemaorgtype: SoftwareApplication ### Сергей Степанов [jtable th="0"] -![_](https://i.imgur.com/FL4fvPa.jpg)|[Возрастная и социальная](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Возрастная_и_социальная.txt), [Восприятие, ощущения, патологии и эмоции](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Восприятие,_ощущения,_патологии_и_эмоции.txt), [Глубинная, паранаука, психоанализ и -терапия](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Глубинная,_паранаука,_психоанализ_и_-терапия.txt), [Когнитивная](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Когнитивная.txt), [Направления, психология животных и физиология](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Направления,_психология_животных_и_физиология.txt), [Поведение и психологическая защита](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Поведение_и_психологическая_защита.txt)|Is -![_](https://i.imgur.com/UWSCU98.jpg)|[Эксперименты](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Эксперименты.txt)|Is +![_](https://i.imgur.com/FL4fvPa.jpg)|[Возрастная и социальная](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Сергей_Степанов/Возрастная_и_социальная.txt), [Восприятие, ощущения, патологии и эмоции](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Сергей_Степанов/Восприятие,_ощущения,_патологии_и_эмоции.txt), [Глубинная, паранаука, психоанализ и -терапия](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Сергей_Степанов/Глубинная,_паранаука,_психоанализ_и_-терапия.txt), [Когнитивная](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Сергей_Степанов/Когнитивная.txt), [Направления, психология животных и физиология](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Сергей_Степанов/Направления,_психология_животных_и_физиология.txt), [Поведение и психологическая защита](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Сергей_Степанов/Поведение_и_психологическая_защита.txt)|Is +![_](https://i.imgur.com/UWSCU98.jpg)|[Эксперименты](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Сергей_Степанов/Эксперименты.txt)|Is [/jtable] ### Фобии [jtable th="0"] -![_](https://i.imgur.com/ovHAllo.jpg)|[Животных и природные](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психология/Фобии/Животных_и_природные.txt); [Культурные и социальные](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психология/Фобии/Культурные_и_социальные.txt); [Тела и технологические](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психология/Фобии/Тела_и_технологические.txt)|N +![_](https://i.imgur.com/ovHAllo.jpg)|[Животных и природные](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Фобии/Животных_и_природные.txt); [Культурные и социальные](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Фобии/Культурные_и_социальные.txt); [Тела и технологические](https://github.com/Kristinita/Erics-Green-Room/blob/master/Психиатрия_и_психология/Фобии/Тела_и_технологические.txt)|N [/jtable] @@ -408,7 +406,7 @@ Schemaorgtype: SoftwareApplication ## Языкознание [jtable th="0"] -![_](https://i.imgur.com/4KHnNIs.jpg)|[Искуственные языки](https://github.com/Kristinita/Erics-Green-Room/blob/master/Языкознание/Искуственные_языки.txt)|Kr +![_](https://i.imgur.com/4KHnNIs.jpg)|[Искуственные языки](https://github.com/Kristinita/Erics-Green-Room/blob/master/Языкознание/Искусственные_языки.txt)|Kr ![_](https://i.imgur.com/6ReWVsW.jpg)|[Художественные средства русского языка](https://github.com/Kristinita/Erics-Green-Room/blob/master/Языкознание/Художественные_средства_русского_языка.txt)|Og [/jtable] diff --git "a/content/Erics-Rooms/\320\232\320\276\320\274\320\275\320\260\321\202\321\213-\320\255\321\200\320\270\320\272\320\260.md" "b/content/Erics-Rooms/\320\232\320\276\320\274\320\275\320\260\321\202\321\213-\320\255\321\200\320\270\320\272\320\260.md" index 5d76e4e2..160bdfe6 100644 --- "a/content/Erics-Rooms/\320\232\320\276\320\274\320\275\320\260\321\202\321\213-\320\255\321\200\320\270\320\272\320\260.md" +++ "b/content/Erics-Rooms/\320\232\320\276\320\274\320\275\320\260\321\202\321\213-\320\255\321\200\320\270\320\272\320\260.md" @@ -1,19 +1,15 @@ Title: Комнаты Эрика Version: 0.1.0 Date: 2019-06-04 19:07:30 -Modified: 2020-09-18 14:31:58 +Modified: 2020-11-03 09:36:13 Author: Sasha Chernykh Lang: ru -Pagetitle: Комнаты Эрика Summary: Краткий обзор Комнат Эрика Pagecolors: programs Asideimage: SashaChocolate Iconleftorright: right Tags: gingerinas, erics-rooms Noco: 1ZTja7 -Tooltipster: true -Clipboardjs: true -Runkit: true Og_image: https://i.imgur.com/Ng0l2Zx.jpg Schemaorgtype: SoftwareApplication @@ -148,7 +144,7 @@ Schemaorgtype: SoftwareApplication → введите любые логин и пароль: -![Логин и пароль](https://i.imgur.com/XF6ApBZ.png) +![Комнаты Эрика логин и пароль](https://i.imgur.com/XF6ApBZ.png) → *Войти* → введите *0*: @@ -302,7 +298,7 @@ string-similarity работает для всех [вариантов прав Для науки данное явление не новость; в конце XIX века психологом Германом Эббингаузом была построена кривая забывания: -![Кривая забывания](https://hsto.org/getpro/habr/post_images/bf5/cb4/ca9/bf5cb4ca9bd0034efce79186dfdf4a49.png) +![Кривая забывания Эббингауза](https://hsto.org/getpro/habr/post_images/bf5/cb4/ca9/bf5cb4ca9bd0034efce79186dfdf4a49.png) Требуется предпринимать какие-то меры, чтобы изученное не шло псу под хвост. Главная из них — интервальные повторения. @@ -315,9 +311,9 @@ string-similarity работает для всех [вариантов прав > > Если вы хотите перевести в активный лексический запас какое-то слово, вам нужно несколько десятков раз встретить его в тексте, ещё несколько десятков раз услышать в речи и, самое главное, начать употреблять самостоятельно. Это относится и к тем словам, которые вы запоминали с помощью мнемотехник: пока вы не используете их в речи, они, в лучшем случае, будут лежать в пассивном запасе. Когда вы начнёте их использовать, они будут вспоминаться напрямую, без образов. - ![Дни, когда не занимаешься](https://hsto.org/getpro/habr/post_images/499/6ed/466/4996ed4665005d679df12b87332fec0d.png) +![Дни, когда не занимаешься](https://hsto.org/getpro/habr/post_images/499/6ed/466/4996ed4665005d679df12b87332fec0d.png) - ![Понемногу и часто](https://hsto.org/getpro/habr/post_images/371/11e/66f/37111e66f592c3cc8f7a8ef2d483f032.png) +![Понемногу и часто](https://hsto.org/getpro/habr/post_images/371/11e/66f/37111e66f592c3cc8f7a8ef2d483f032.png) ❌ — Для Комнат Эрика планируется внедрить интервальные повторения с одной важной особенностью. То, что Вам далось легко, прокачивать снова следует реже; трудно — чаще, — причём Комнаты будут определять периоды повторений автоматически. Вам не нужно будет многократно возвращаться к тому, что Вы итак уже знаете. Подробности метода смотрите [здесь](https://github.com/Kristinita/Erics-Green-Room/issues/54). @@ -618,7 +614,7 @@ string-similarity работает для всех [вариантов прав 1. Мы сразу отказались от использования карточек, как ужасно неэффективного формата. Авторам вопросов Комнат Эрика доступны множественное редактирование, массовые изменения; удобная навигация по пакету; мгновенный переход к другим вопросам, когда нужно что-то там поправить; применение автокомплитов, макросов, сниппетов, кастомная подсветка синтаксиса и прочие прелести, предоставляемые продвинутыми текстовыми редакторами. Наши пакеты удобно быстро валидировать CLI-программами вроде [erichek](https://pypi.org/project/erichek/), [yaspeller](https://www.npmjs.com/package/yaspeller) или [eyo](https://www.npmjs.com/package/eyo-kernel). 1. Все пакеты Комнат Эрика выложены в открытый доступ, что позволяет улучшать их любым пользователям. Википедия, чьи статьи редактируются по такому же принципу, добилась немалых успехов. 1. У Anki нет отдельного повторения [тао-блоков](#Тао-блоки). -1. Формат отыгрыша по умолчанию Anki заставляет пользователей вручную определять нужные им интервалы повторения; это [уязвимо для когнитивных искажений](https://github.com/Kristinita/Erics-Green-Room/issues/63): обычно — переоценки возможностей, особенно — у неопытных пользователей. Также он [препятствует получению полной объективной статистики](https://github.com/Kristinita/Erics-Green-Room/issues/63). Бесконтактный режим, планируемый для Комнат, [не имеет этих недостатков](https://github.com/Kristinita/Erics-Green-Room/issues/63#issuecomment-501555436). +1. Формат отыгрыша по умолчанию Anki заставляет пользователей вручную определять нужные им интервалы повторения. [Чем он плох](https://github.com/Kristinita/Erics-Green-Room/issues/63): это уязвимо для когнитивных искажений: обычно — переоценки возможностей, особенно — у неопытных пользователей; также он препятствует получению полной объективной статистики. Бесконтактный режим, планируемый для Комнат, [не имеет этих недостатков](https://github.com/Kristinita/Erics-Green-Room/issues/63#issuecomment-501555436). 1. В Anki [присутствует возможность печати ответа](https://www.youtube.com/watch?v=5tYObQ3ocrw), однако опечатки делать нельзя; [правильный ответ должен остаться только один](https://www.reddit.com/r/Anki/comments/45vder/fillin_with_multiple_correct_answers/). 1. Функция реверса Anki, в отличие от [Комнат Эрика](#Игра-наоборот), [не определяет с равной долей вероятности](https://www.youtube.com/watch?v=DnbKwHEQ1mA), нужно ли дать ответ на вопрос или ответ; тренироваться придётся без [вариантов вопросов](https://github.com/Kristinita/Erics-Green-Room/issues/51). 1. Карточки Anki отыгрываются [последовательно](https://www.reddit.com/r/Anki/comments/85704m/is_it_possible_to_show_learning_cards_in_random/), [не рандомно](#Последовательный-порядок-вопросов). Опций, подобных [оным у Комнат Эрика](#Опции), там также нет. @@ -679,7 +675,7 @@ string-similarity работает для всех [вариантов прав
- +
1. Чтобы получить деньги, необходимы связи. Если Вы знаете, кто может проспонсировать проект, пожалуйста, отзовитесь. diff --git "a/content/Erics-Rooms/\320\237\320\276\320\270\321\201\320\272-\320\272\320\275\320\270\320\263-\320\264\320\273\321\217-\320\232\320\276\320\274\320\275\320\260\321\202-\320\255\321\200\320\270\320\272\320\260.md" "b/content/Erics-Rooms/\320\237\320\276\320\270\321\201\320\272-\320\272\320\275\320\270\320\263-\320\264\320\273\321\217-\320\232\320\276\320\274\320\275\320\260\321\202-\320\255\321\200\320\270\320\272\320\260.md" index 9dd7c565..bb25469c 100644 --- "a/content/Erics-Rooms/\320\237\320\276\320\270\321\201\320\272-\320\272\320\275\320\270\320\263-\320\264\320\273\321\217-\320\232\320\276\320\274\320\275\320\260\321\202-\320\255\321\200\320\270\320\272\320\260.md" +++ "b/content/Erics-Rooms/\320\237\320\276\320\270\321\201\320\272-\320\272\320\275\320\270\320\263-\320\264\320\273\321\217-\320\232\320\276\320\274\320\275\320\260\321\202-\320\255\321\200\320\270\320\272\320\260.md" @@ -2,7 +2,7 @@ Title: Поиск книг для Комнат Эрика Version: 0.3.0 Author: Sasha Chernykh Date: 2017-03-15 14:25:14 -Modified: 2020-09-17 14:03:13 +Modified: 2020-11-10 16:02:09 Lang: ru Summary: Запросы о помощи в поиске книг для Комнат Эрика Pagetitle: Поиск книг для Комнат Эрика @@ -10,7 +10,6 @@ Pagecolors: gingerinas Asideimage: SashaFluffy Iconleftorright: right Tags: help, gingerinas -Table: standard Noco: 1ZTja7 Og_image: https://i.imgur.com/CmEM6Ek.jpg Schemaorgtype: ScholarlyArticle @@ -54,7 +53,7 @@ Schemaorgtype: ScholarlyArticle Поддерживаются перечисления посредством Bitcoin, пластиковых карт, WebMoney, QIWI, Яндекс.Денег, мобильного телефона, Сбербанк-Онлайн, Альфа-Клик. Если есть возможность переслать каким-либо другим способом, пожалуйста, [напишите](https://github.com/Kristinita/Erics-Green-Room/issues).
- +
В комментариях можете указать, на какую конкретно книгу скинули деньги, и тогда по ней в ближайшее время будут написаны вопросы. diff --git "a/content/G-Rights/\320\232\321\200\320\270\321\201\321\202\320\270\320\275\320\276\320\263\321\200\320\260\320\264.md" "b/content/G-Rights/\320\232\321\200\320\270\321\201\321\202\320\270\320\275\320\276\320\263\321\200\320\260\320\264.md" index ae19ad7c..8d238013 100644 --- "a/content/G-Rights/\320\232\321\200\320\270\321\201\321\202\320\270\320\275\320\276\320\263\321\200\320\260\320\264.md" +++ "b/content/G-Rights/\320\232\321\200\320\270\321\201\321\202\320\270\320\275\320\276\320\263\321\200\320\260\320\264.md" @@ -1,8 +1,9 @@ Title: Кристиноград Version: 0.0.1 Date: 2020-01-06 19:20:41 -Modified: 2020-01-13 12:30:46 +Modified: 2020-11-14 10:10:52 Lang: ru +Status: draft Summary: Критерии авторитетности источников, применимые для повседневной жизни Pagetitle: Кристиноград Pagecolors: giologica @@ -12,9 +13,6 @@ Titleimagename: KristinaPlants Iconleftorright: right Tags: kristinograd, g-rights Noco: 159d5 -Epigraph: false -Tooltipster: false -Clipboardjs: false Og_image: https://images.nplus1.ru//images/2016/05/06/006e2db588ad533b1b132074afeed1ef.jpg Schemaorgtype: ScholarlyArticle @@ -151,7 +149,7 @@ Schemaorgtype: ScholarlyArticle Также смотрите [категорию КрисКата «N»](#N). -1. К сожалению, бывает, что у профильных учёных не доходят руки до освещения тех или иных тем. Если же думаете, что всё на свете написано, пожалуйста, найдите мне литературу по [этим тематикам](../Erics-Rooms/Поиск-книг-для_Комнат-Эрика#Тематики) и лучшую, более научную замену для [вот этих книг](../Erics-Rooms/Зелёная-Комната-Эрика#Пакеты). +1. К сожалению, бывает, что у профильных учёных не доходят руки до освещения тех или иных тем. Если же думаете, что всё на свете написано, пожалуйста, найдите мне литературу по [этим тематикам](../Erics-Rooms/Поиск-книг-для-Комнат-Эрика#Тематики) и лучшую, более научную замену для [вот этих книг](../Erics-Rooms/Зелёная-Комната-Эрика#Пакеты). А что Кристиноград? Руководствоваться его указаниями я начал в 2015; и на 2020 могу сказать, что он был для меня полезен при изучения практически любого вопроса. Количество сведений, что Вы можете получить из источников, приемлемых по Кристинограду, на порядки обширнее, нежели то, что Вы можете почерпнуть из научных журналов, а тем более — крутых. И при этом, по моему мнению, Вам не должна попадаться полная хрень. diff --git a/content/Gingerinas/Korvers.md b/content/Gingerinas/Korvers.md index dbf2636e..c01d8ed1 100644 --- a/content/Gingerinas/Korvers.md +++ b/content/Gingerinas/Korvers.md @@ -2,7 +2,7 @@ Title: Korvers Version: 0.0.1 Author: Sasha Chernykh Date: 2017-02-13 09:24:30 -Modified: 2020-01-03 18:43:06 +Modified: 2020-11-10 14:38:45 Lang: ru Summary: Техники поиска версий в джинджеринах Pagetitle: 4 14 7. 4 корвера, 14 аксаксов, 7 гарниромизов @@ -306,9 +306,8 @@ Schemaorgtype: ScholarlyArticle Представим 2 варианта развития баскетбольного матча: -1) В команде А успех достигается за счёт индивидуального мастерства лидеров, стягивающих одеяло на себя и редко передающих мяч партнёрам. В команде B напротив взаимодействие ведётся через пас, броска можно ожидать от каждого. - -2) А, заходя в зону соперника, не утруждая себя витиеватыми розыгрышами, пуляет мяч по кольцу, зачастую через руки защитников. В B плетут изящные комбинации с выведением на открытый бросок. +1. В команде А успех достигается за счёт индивидуального мастерства лидеров, стягивающих одеяло на себя и редко передающих мяч партнёрам. В команде B напротив взаимодействие ведётся через пас, броска можно ожидать от каждого. +1. А, заходя в зону соперника, не утруждая себя витиеватыми розыгрышами, пуляет мяч по кольцу, зачастую через руки защитников. В B плетут изящные комбинации с выведением на открытый бросок. Поставленная техника аксаксов сродни приведённым выше манерам ведения матча команды B. Тем не менее, в баскетболе выигрыш достигается числом попаданий в кольцо, насколько безупречной не выглядела химия, и сколько бы ты с партнёрами не растаскивал оборону противника. Неправильные аксаксы могут компенсироваться за счёт других скиллов. Правильно выбранный нредель — не гол, а голевой момент. С улучшением техники мышления улучшаюстя навыки не забивать, а выходить на ударные позиции. @@ -612,7 +611,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -1455,11 +1454,9 @@ Schemaorgtype: ScholarlyArticle Правильно выбирать аксаксы и нредли поможет анализ собственных игр. -1) Достаньте запись, логи или вопросы джинджерины, в которую вы играли в полную силу, - -2) Признайте для себя, что совершали ошибки. Вычислите вопросы, на которые вы с вашим багажом знаний могли бы ответить, но не получилось. - -3) Исходя из того, какие аксаксы ведут на них к правильному ответу, сравните, как следовало думать и какие размышления проводили вы. +1. Достаньте запись, логи или вопросы джинджерины, в которую вы играли в полную силу, +1. Признайте для себя, что совершали ошибки. Вычислите вопросы, на которые вы с вашим багажом знаний могли бы ответить, но не получилось. +1. Исходя из того, какие аксаксы ведут на них к правильному ответу, сравните, как следовало думать и какие размышления проводили вы. Чем чаще анализировать свои ошибки, тем на больший процент от собственных возможностей вы выступите в дальнейшем. Анализ — один из основных методов тренировки в шахматах и прочих интеллектуальных играх. И в джинджеринах он придётся ко двору. diff --git "a/content/Gingerinas/\320\220\320\273\321\214FAQ.md" "b/content/Gingerinas/\320\220\320\273\321\214FAQ.md" index 1599d715..3523a752 100644 --- "a/content/Gingerinas/\320\220\320\273\321\214FAQ.md" +++ "b/content/Gingerinas/\320\220\320\273\321\214FAQ.md" @@ -1,7 +1,7 @@ Title: АльFAQ Version: 0.1.1 Date: 2018-12-17 16:51:59 -Modified: 2019-05-23 12:03:32 +Modified: 2020-11-03 09:36:15 Author: Sasha Chernykh Lang: ru Summary: Ответы на надоевшие повторяющиеся фразы Alfy @@ -11,8 +11,6 @@ Asideimage: SashaFluffy Iconleftorright: right Tags: gingerinas, gingerinas-analysis Noco: 1EBY -Tooltipster: true -Clipboardjs: true Og_image: https://pp.userapi.com/c834302/v834302492/3b6c3/KyRKq062sXE.jpg Schemaorgtype: Review @@ -273,7 +271,7 @@ Schemaorgtype: Review Но в ней нет шансов сделать что-то значительное; как Вы сами же сказали, Альфа-хаб — это «игрушка». Чтобы достичь чего-то значительного где бы то ни было, будь то наука, спорт или программирование, нужно прилагать больше усилий и изменить устоявшийся уклад жизни. -
diff --git "a/content/Gingerinas/\320\221\320\265\321\201\320\277\320\273\320\260\321\202\320\275\321\213\320\265-\320\272\320\275\320\270\320\263\320\270-\320\270-\321\203\321\207\320\265\320\261\320\275\321\213\320\265-\321\200\320\265\321\201\321\203\321\200\321\201\321\213-\320\264\320\273\321\217-\320\264\320\266\320\270\320\275\320\264\320\266\320\265\321\200\320\270\320\275.md" "b/content/Gingerinas/\320\221\320\265\321\201\320\277\320\273\320\260\321\202\320\275\321\213\320\265-\320\272\320\275\320\270\320\263\320\270-\320\270-\321\203\321\207\320\265\320\261\320\275\321\213\320\265-\321\200\320\265\321\201\321\203\321\200\321\201\321\213-\320\264\320\273\321\217-\320\264\320\266\320\270\320\275\320\264\320\266\320\265\321\200\320\270\320\275.md" deleted file mode 100644 index bc46be40..00000000 --- "a/content/Gingerinas/\320\221\320\265\321\201\320\277\320\273\320\260\321\202\320\275\321\213\320\265-\320\272\320\275\320\270\320\263\320\270-\320\270-\321\203\321\207\320\265\320\261\320\275\321\213\320\265-\321\200\320\265\321\201\321\203\321\200\321\201\321\213-\320\264\320\273\321\217-\320\264\320\266\320\270\320\275\320\264\320\266\320\265\321\200\320\270\320\275.md" +++ /dev/null @@ -1,38 +0,0 @@ -Title: Знания в джинджеринах -Version: 0.1.0 -Date: 2017-12-27 16:46:14 -Modified: 2019-05-23 14:48:08 -Author: Sasha Chernykh -Lang: ru -Summary: Что такое знания и эрудиция, а что — просто информация -Pagetitle: Знания в джинджеринах -Pagecolors: gingerinas -Asideimage: SashaFluffy -Iconleftorright: right -Tags: help -Noco: 1EBY -Visualize: true -Og_image: https://i.imgur.com/QDNppF7.jpg -Schemaorgtype: ScholarlyArticle - -# Смайлы - -i ♥ :fa-coffee: - -# Таблицы - -[jtable ai="1"] -Name|First|Second -Sasha Chernykh|Best|Greatest -Kristina Kiva|Sunny|Floweret -Katya Desyatnikova|Forever|Young -[/jtable] - -# Chart - -
    -
  • 15 — Забыл
  • -
  • 3 — шустрая кнопка
  • -
  • 1 — Елдесы
  • -
  • Oreo
  • -
diff --git "a/content/Gingerinas/\320\223\321\200\320\265\320\271\321\201-\320\233\320\276.md" "b/content/Gingerinas/\320\223\321\200\320\265\320\271\321\201-\320\233\320\276.md" index 8b5a7d10..87fb0750 100644 --- "a/content/Gingerinas/\320\223\321\200\320\265\320\271\321\201-\320\233\320\276.md" +++ "b/content/Gingerinas/\320\223\321\200\320\265\320\271\321\201-\320\233\320\276.md" @@ -2,7 +2,7 @@ Title: Грейс Ло Version: 0.0.1-alpha Author: Sasha Chernykh Date: 2017-05-10 9:44:14 -Modified: 2019-06-14 16:29:28 +Modified: 2020-09-24 13:01:22 Lang: ru Summary: Практическая методика запоминания информации для джинджерин Pagetitle: Грейс Ло @@ -11,7 +11,9 @@ Asideimage: SashaFluffy Iconleftorright: right Tags: gingerinas, gingerinas-training Epigraph: true -Epigraphtext: Название методики — сокращённое от «Grace Lawrence», учётной записи [Екатерины Десятниковой](https://vk.com/mk_2802) в соцсети,

Тебя уже нет на этой планете,
Но Ты навсегда останешься в сердце. +Epigraphtext: Название методики — сокращённое от «Grace Lawrence», учётной записи [Екатерины Десятниковой](https://vk.com/mk_2802) в соцсети. + Тебя уже нет на этой планете, + но Ты навсегда останешься в сердце. Titleimage: true Titleimagename: KateInCar Noco: 1EBY diff --git "a/content/Gingerinas/\320\227\320\275\320\260\320\275\320\270\321\217-\320\262-\320\264\320\266\320\270\320\275\320\264\320\266\320\265\321\200\320\270\320\275\320\260\321\205.md" "b/content/Gingerinas/\320\227\320\275\320\260\320\275\320\270\321\217-\320\262-\320\264\320\266\320\270\320\275\320\264\320\266\320\265\321\200\320\270\320\275\320\260\321\205.md" index 24e5e2a3..62627685 100644 --- "a/content/Gingerinas/\320\227\320\275\320\260\320\275\320\270\321\217-\320\262-\320\264\320\266\320\270\320\275\320\264\320\266\320\265\321\200\320\270\320\275\320\260\321\205.md" +++ "b/content/Gingerinas/\320\227\320\275\320\260\320\275\320\270\321\217-\320\262-\320\264\320\266\320\270\320\275\320\264\320\266\320\265\321\200\320\270\320\275\320\260\321\205.md" @@ -3,9 +3,8 @@ Version: 0.1.0 Author: Sasha Chernykh Lang: ru Date: 2017-12-23 6:48:14 -Modified: 2020-09-18 08:48:17 +Modified: 2020-09-25 07:56:15 Summary: Что такое знания и эрудиция, а что — просто информация -Pagetitle: Знания в джинджеринах Pagecolors: gingerinas Asideimage: SashaFluffy Iconleftorright: right diff --git "a/content/Gingerinas/\320\232\320\265\320\271\320\224\320\270.md" "b/content/Gingerinas/\320\232\320\265\320\271\320\224\320\270.md" index 895e2b2a..5732ed50 100644 --- "a/content/Gingerinas/\320\232\320\265\320\271\320\224\320\270.md" +++ "b/content/Gingerinas/\320\232\320\265\320\271\320\224\320\270.md" @@ -1,7 +1,7 @@ Title: КейДи Version: 0.2.0 Date: 2018-12-17 16:51:59 -Modified: 2020-01-03 20:22:50 +Modified: 2020-11-05 20:16:16 Author: Sasha Chernykh Lang: ru Summary: Управление рисками в «Своей игре» @@ -15,8 +15,6 @@ Tags: gingerinas, gingerinas-analysis, keidi Noco: 1EBY Epigraph: true EpigraphText: Правильно промолчать порой сложнее, чем правильно ответить -Tooltipster: false -Clipboardjs: false Og_image: https://i.imgur.com/5685C98.jpg Schemaorgtype: ScholarlyArticle @@ -89,7 +87,7 @@ Schemaorgtype: ScholarlyArticle Тема: Муравьи -
@@ -161,7 +159,7 @@ Schemaorgtype: ScholarlyArticle Тема: А я футболом не интересуюсь -
@@ -175,7 +173,7 @@ Schemaorgtype: ScholarlyArticle Тема: матричная -АНА- -
@@ -231,7 +229,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -245,7 +243,7 @@ Schemaorgtype: ScholarlyArticle Тема: Розовая -
@@ -257,7 +255,7 @@ Schemaorgtype: ScholarlyArticle Тема: БОбы и бобЫ -
@@ -269,7 +267,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -281,7 +279,7 @@ Schemaorgtype: ScholarlyArticle Тема: матричная -АСК- -
@@ -300,7 +298,7 @@ Schemaorgtype: ScholarlyArticle Тема: Стены -
@@ -345,7 +343,7 @@ Schemaorgtype: ScholarlyArticle Тема о Кристине Кива 💗 -
@@ -355,7 +353,7 @@ Schemaorgtype: ScholarlyArticle Тема: Утки -
@@ -365,7 +363,7 @@ Schemaorgtype: ScholarlyArticle Примечание: игра велась с уточнениями формы, [пультеа](#Пультеа) делать не нужно было, что я учитывал. -
@@ -391,7 +389,7 @@ Schemaorgtype: ScholarlyArticle Тема: Люди и корабли -
@@ -403,7 +401,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -415,7 +413,7 @@ Schemaorgtype: ScholarlyArticle Тема: Китайская -
@@ -427,7 +425,7 @@ Schemaorgtype: ScholarlyArticle Тема: Погода -
@@ -448,7 +446,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -466,7 +464,7 @@ Schemaorgtype: ScholarlyArticle Тема: Восточный экспресс -
@@ -495,7 +493,7 @@ Schemaorgtype: ScholarlyArticle Тема: матричная -АНА- -
@@ -513,7 +511,7 @@ Schemaorgtype: ScholarlyArticle Тема: Древнеримские имена -
@@ -533,7 +531,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -545,7 +543,7 @@ Schemaorgtype: ScholarlyArticle Тема: матричная -ФИЛИ- -
@@ -562,7 +560,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -572,7 +570,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -604,7 +602,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -616,7 +614,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -628,7 +626,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -662,7 +660,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -678,7 +676,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -698,7 +696,7 @@ Schemaorgtype: ScholarlyArticle Тема: Человек и пароход -
@@ -737,7 +735,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -751,7 +749,7 @@ Schemaorgtype: ScholarlyArticle Тема: Бакинская -
@@ -789,7 +787,7 @@ Schemaorgtype: ScholarlyArticle Тема: Алкоголь и животные -
@@ -803,7 +801,7 @@ Schemaorgtype: ScholarlyArticle Тема: Китайская -
@@ -824,7 +822,7 @@ Schemaorgtype: ScholarlyArticle Тема: Магазины -
@@ -841,7 +839,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -867,7 +865,7 @@ Schemaorgtype: ScholarlyArticle Тема: матричная -ЯЗЬ- -
@@ -877,7 +875,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -887,7 +885,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -897,7 +895,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -923,7 +921,7 @@ Schemaorgtype: ScholarlyArticle Тема: Я список кораблей прочёл до середины -
@@ -943,7 +941,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -960,7 +958,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -983,7 +981,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -1000,7 +998,7 @@ Schemaorgtype: ScholarlyArticle Тема: Бакинская -
@@ -1012,7 +1010,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -1022,7 +1020,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -1045,7 +1043,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -1059,7 +1057,7 @@ Schemaorgtype: ScholarlyArticle Тема: Матричная -АНА- -
@@ -1075,7 +1073,7 @@ Schemaorgtype: ScholarlyArticle Тема: П. П. -
@@ -1097,7 +1095,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -1115,7 +1113,7 @@ Schemaorgtype: ScholarlyArticle Тема: Молнии -
@@ -1143,7 +1141,7 @@ Schemaorgtype: ScholarlyArticle
-
@@ -1157,7 +1155,7 @@ Schemaorgtype: ScholarlyArticle Тема: Золотая -
@@ -1213,7 +1211,7 @@ Schemaorgtype: ScholarlyArticle Последняя тема «Салюты»: по счёту всё решено, я прохожу в следующий раунд. -
@@ -1225,7 +1223,7 @@ Schemaorgtype: ScholarlyArticle Тема: Слишком много согласных букв подряд -
@@ -1250,7 +1248,7 @@ Schemaorgtype: ScholarlyArticle Тема: Хулиганы -
@@ -1264,11 +1262,11 @@ Schemaorgtype: ScholarlyArticle Тема: матричная -ТОМ- -
- Зациклился на перечислении того, что могло быть изображено на фотографии этого года: события Франко-Прусской войны силился вспоминать. На другие [нредли](Korvers#Тиг) не переключался. + Зациклился на перечислении того, что могло быть изображено на фотографии этого года: события Франко-Прусской войны силился вспоминать. На другие [нредли](Korvers#Тиг) не переключался. Вопрос между тем вполне берущийся. Имеем странное выражение «у одинокого волка что-то в руке», да и вообще почему волк назван одиноким. В таких случаях нужно пробовать [форкболл](Korvers#Форкболл) — попытаться понять, что за человека (раз у него «рука») могли назвать «Одиноким Волком». Отсюда мог бы выйти на вождя, а затем и томагавк. @@ -1278,7 +1276,7 @@ Schemaorgtype: ScholarlyArticle Последняя тема: матричная -ЛОСЬ- -
diff --git "a/content/Gingerinas/\320\234\320\265\320\275\320\265\320\264\320\266\320\274\320\265\320\275\321\202-\320\232\320\276\320\274\320\275\320\260\321\202-\320\255\321\200\320\270\320\272\320\260.md" "b/content/Gingerinas/\320\234\320\265\320\275\320\265\320\264\320\266\320\274\320\265\320\275\321\202-\320\232\320\276\320\274\320\275\320\260\321\202-\320\255\321\200\320\270\320\272\320\260.md" index a6f13fb3..7c9dba5d 100644 --- "a/content/Gingerinas/\320\234\320\265\320\275\320\265\320\264\320\266\320\274\320\265\320\275\321\202-\320\232\320\276\320\274\320\275\320\260\321\202-\320\255\321\200\320\270\320\272\320\260.md" +++ "b/content/Gingerinas/\320\234\320\265\320\275\320\265\320\264\320\266\320\274\320\265\320\275\321\202-\320\232\320\276\320\274\320\275\320\260\321\202-\320\255\321\200\320\270\320\272\320\260.md" @@ -1,7 +1,7 @@ Title: Проблемы менеджмента Комнат Эрика Version: 0.1.0 Date: 2018-12-26 10:16:21 -Modified: 2019-06-14 21:26:50 +Modified: 2020-09-23 17:10:16 Author: Sasha Chernykh Lang: ru Summary: О наиболее важных по мнению автора статьи проблемах управления Комнатами Эрика на конец 2018 @@ -11,8 +11,6 @@ Asideimage: SashaFluffy Iconleftorright: right Tags: gingerinas, gingerinas-analysis Noco: 1EBY -Tooltipster: true -Clipboardjs: true Og_image: https://pp.userapi.com/c834302/v834302492/3b6c3/KyRKq062sXE.jpg Schemaorgtype: Review diff --git "a/content/Gingerinas/\320\236\320\261\320\267\320\276\321\200-\320\270\320\263\321\200\321\213-\320\241\320\277\320\276\321\200\321\202\320\241\320\230.md" "b/content/Gingerinas/\320\236\320\261\320\267\320\276\321\200-\320\270\320\263\321\200\321\213-\320\241\320\277\320\276\321\200\321\202\320\241\320\230.md" index 5bd53872..97db34b8 100644 --- "a/content/Gingerinas/\320\236\320\261\320\267\320\276\321\200-\320\270\320\263\321\200\321\213-\320\241\320\277\320\276\321\200\321\202\320\241\320\230.md" +++ "b/content/Gingerinas/\320\236\320\261\320\267\320\276\321\200-\320\270\320\263\321\200\321\213-\320\241\320\277\320\276\321\200\321\202\320\241\320\230.md" @@ -2,7 +2,7 @@ Title: Обзор игры СпортСИ Version: 0.1.0 Author: Sasha Chernykh Date: 2018-06-03 19:34:14 -Modified: 2020-09-18 08:48:17 +Modified: 2020-09-23 17:10:25 Lang: ru Summary: Разбор «суперфинала четырёх городов» по СпортСИ в ноябре 2017, в котором автор этих строк принимал участие Pagetitle: Обзор игры СпортСИ @@ -11,11 +11,7 @@ Asideimage: SashaFluffy Iconleftorright: right Tags: gingerinas, gingerinas-analysis Noco: 1EBY -Tooltipster: true -Clipboardjs: true Og_image: https://i.imgur.com/iXnlDp0.png -Progressbar: true -Visualize: true Schemaorgtype: Review diff --git "a/content/Giologica/\320\232\320\276\320\274\320\274\320\265\320\275\321\202\320\260\321\200\320\270\320\270-\320\272-\320\274\320\260\321\202\320\265\321\200\320\270\320\260\320\273\320\260\320\274-\320\276-\320\275\320\265\320\272\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\270\320\262\320\275\321\213\321\205-\320\274\320\265\321\202\320\276\320\264\320\260\321\205-\320\262\320\265\320\264\320\265\320\275\320\270\321\217-\320\264\320\270\321\201\320\272\321\203\321\201\321\201\320\270\320\270.md" "b/content/Giologica/\320\232\320\276\320\274\320\274\320\265\320\275\321\202\320\260\321\200\320\270\320\270-\320\272-\320\274\320\260\321\202\320\265\321\200\320\270\320\260\320\273\320\260\320\274-\320\276-\320\275\320\265\320\272\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\270\320\262\320\275\321\213\321\205-\320\274\320\265\321\202\320\276\320\264\320\260\321\205-\320\262\320\265\320\264\320\265\320\275\320\270\321\217-\320\264\320\270\321\201\320\272\321\203\321\201\321\201\320\270\320\270.md" index 45df0de4..f3fc9f97 100644 --- "a/content/Giologica/\320\232\320\276\320\274\320\274\320\265\320\275\321\202\320\260\321\200\320\270\320\270-\320\272-\320\274\320\260\321\202\320\265\321\200\320\270\320\260\320\273\320\260\320\274-\320\276-\320\275\320\265\320\272\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\270\320\262\320\275\321\213\321\205-\320\274\320\265\321\202\320\276\320\264\320\260\321\205-\320\262\320\265\320\264\320\265\320\275\320\270\321\217-\320\264\320\270\321\201\320\272\321\203\321\201\321\201\320\270\320\270.md" +++ "b/content/Giologica/\320\232\320\276\320\274\320\274\320\265\320\275\321\202\320\260\321\200\320\270\320\270-\320\272-\320\274\320\260\321\202\320\265\321\200\320\270\320\260\320\273\320\260\320\274-\320\276-\320\275\320\265\320\272\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\270\320\262\320\275\321\213\321\205-\320\274\320\265\321\202\320\276\320\264\320\260\321\205-\320\262\320\265\320\264\320\265\320\275\320\270\321\217-\320\264\320\270\321\201\320\272\321\203\321\201\321\201\320\270\320\270.md" @@ -1,9 +1,9 @@ -Title: Комментарии к материалам о неконструктивных методах ведения дискуссии +Title: Комментарии к материалам о демагогических методах Author: Sasha Chernykh Date: 2017-03-15 19:19:19 -Modified: 2019-05-23 12:25:14 +Modified: 2020-10-01 19:21:47 Lang: ru -Pagetitle: Комментарии к материалам о демагогических методах +Pagetitle: Комментарии к материалам о неконструктивных методах ведения дискуссии Summary: Разбираются подраздел «Психология критического мышления» из книги Дайаны Халперн и Пирамида Грэма Pagecolors: giologica Asideimage: SashaBrazil diff --git a/content/IT-articles/Fastest-way-to-add-new-version-of-Sublime-Text-3-package.md b/content/IT-articles/Fastest-way-to-add-new-version-of-Sublime-Text-3-package.md index 0062628f..430923b9 100644 --- a/content/IT-articles/Fastest-way-to-add-new-version-of-Sublime-Text-3-package.md +++ b/content/IT-articles/Fastest-way-to-add-new-version-of-Sublime-Text-3-package.md @@ -2,17 +2,19 @@ Title: Fastest way to add new version of your Sublime Text package Version: 0.3.0 Author: Sasha Chernykh Date: 2018-01-23 10:43:14 -Modified: 2019-08-02 19:06:59 +Modified: 2020-09-24 13:04:22 Lang: en -Summary: Tutorial, how you can make release and changelog, use only one command

![Package Control messages](https://i.imgur.com/J5AuHmX.png)

![*CHANGELOG.md* and *messages.json*](https://i.imgur.com/12fFJsX.png)

![*messages/<version>.txt* and *package.json*](https://i.imgur.com/kkKjiv5.png)

![Releases page](https://i.imgur.com/FwPHBZS.png) +Summary: Tutorial, how you can make release and changelog, use only one command + ![Package Control messages](https://i.imgur.com/J5AuHmX.png) + ![*CHANGELOG.md* and *messages.json*](https://i.imgur.com/12fFJsX.png) + ![*messages/<version>.txt* and *package.json*](https://i.imgur.com/kkKjiv5.png) + ![Releases page](https://i.imgur.com/FwPHBZS.png) Pagetitle: Fastest way to add new version of your Sublime Text package Pagecolors: it-articles Asideimage: SashaGreenSweater Iconleftorright: left Tags: it-articles, sublime-text, release Noco: 1vWK5 -Tooltipster: true -Clipboardjs: true Og_image: https://i.imgur.com/12fFJsX.png Schemaorgtype: HowTo @@ -111,7 +113,7 @@ Tutorial of this article must be support: # Limitations -1. Your must host your package to GitHub. If your package on BitBucket, GitLab or another hosting, you can't make a release via [release-it](https://github.com/webpro/release-it). +1. Your must host your package to GitHub. If your package on BitBucket, GitLab or another hosting, you can’t make a release via [release-it](https://github.com/webpro/release-it). 1. Your commits must be must be compatible with [Conventional Commits](https://conventionalcommits.org/). [List of supported scopes](https://conventionalcommits.org/). I recommend use [commitizen](https://www.npmjs.com/package/commitizen). @@ -290,7 +292,7 @@ If you want to know, how files and commands works, please, read this section. release-it -n -V ``` -+ *-n* — [non-interactive mode](https://www.npmjs.com/package/release-it#-interactive-vs-non-interactive-mode). That you don't need input values each time manually. ++ *-n* — [non-interactive mode](https://www.npmjs.com/package/release-it#-interactive-vs-non-interactive-mode). That you don’t need input values each time manually. + *-V* — verbose. You can disable this command-line argument, but if you will get a bug, this argument may help you. @@ -318,7 +320,7 @@ release-it -n -V + *changelogCommand* — command, that generate changelog to `https://github.com///releases`. Command must stdout to console. + `#!json "release": true,` — [post changelog](https://www.npmjs.com/package/release-it#%EF%B8%8F-configuration) to `https://github.com///releases`. + *TOKEN_GITHUB_FOR_RELEASE_IT* — your [*TOKEN_GITHUB_FOR_RELEASE_IT* environment variable](#Github-token), -+ `#!json "npm": {"publish": false},` — don't publish release to [npm](https://www.npmjs.com/). We are writing Sublime Text package, not npm modules, so needs this parameter. ++ `#!json "npm": {"publish": false},` — don’t publish release to [npm](https://www.npmjs.com/). We are writing Sublime Text package, not npm modules, so needs this parameter. + `#!json "safeBump": false,` — that correct version in `https://github.com///releases`; see [issue](https://github.com/webpro/release-it/issues/218) for details. + `#!json "addUntrackedFiles": true,` — add [untracked file](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository) *messages/<version>.txt* [to release commit](https://github.com/webpro/release-it/issues/233). + `#!json "tagName": "st3-%s"` — [correct tag name](https://github.com/wbond/package_control/issues/1217#issuecomment-280041797) for Package Control. Tags for Sublime Text 3 must be in *st3-<your version>* format, for example — *st3-4.14.7*. @@ -326,7 +328,7 @@ release-it -n -V # Problems and non-fixed bugs -1. [You can't use](https://github.com/lob/generate-changelog/issues/37) [cz-emoji](https://github.com/ngryman/cz-emoji) for commit generation. Changelog will blank. +1. [You can’t use](https://github.com/lob/generate-changelog/issues/37) [cz-emoji](https://github.com/ngryman/cz-emoji) for commit generation. Changelog will blank. 1. release-it [can works incorrect](https://github.com/webpro/release-it/issues/218) in *--dry-run* mode. 1. [You can have bugs](https://github.com/webpro/release-it/issues/213), if you want to use *\${changelog}* release-it variable. diff --git "a/content/IT-articles/How-to-get-current-\342\200\246-in-Sublime-Text.md" "b/content/IT-articles/How-to-get-current-\342\200\246-in-Sublime-Text.md" index 812d264c..18122ad4 100644 --- "a/content/IT-articles/How-to-get-current-\342\200\246-in-Sublime-Text.md" +++ "b/content/IT-articles/How-to-get-current-\342\200\246-in-Sublime-Text.md" @@ -2,17 +2,16 @@ Title: How to get current … in Sublime Text Version: 0.2.0 Author: Sasha Chernykh Date: 2018-04-05 7:30:14 -Modified: 2019-06-14 21:25:18 +Modified: 2020-09-24 13:12:11 Lang: en -Summary: Tutorial, how to get some variable parameters for your Sublime Text

![Color scheme and theme](https://i.imgur.com/nwNgLkR.png) +Summary: Tutorial, how to get some variable parameters for your Sublime Text + ![Color scheme and theme](https://i.imgur.com/nwNgLkR.png) Pagetitle: How to get current … in Sublime Text Pagecolors: it-articles Iconleftorright: right Asideimage: SashaGreenSweater Tags: sublime-text Noco: 1vWK5 -Tooltipster: true -Clipboardjs: true Og_image: https://i.imgur.com/nwNgLkR.png Schemaorgtype: HowTo @@ -81,7 +80,7 @@ This article is relevant for April 2018. In the future, the data in this article # Sublime Text console -+ [“Sublime Text is Programmable”](http://docs.sublimetext.info/en/latest/basic_concepts.html#sublime-text-is-programmable) ++ [“Sublime Text is Programmable”](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/basic_concepts.html#sublime-text-is-programmable) + [“What is the purpose of Console in Sublime Text editor?”](https://softwareengineering.stackexchange.com/q/164225/264224) @@ -114,9 +113,9 @@ You should get console output, **example**: ### What is it? -[Packages directory](http://docs.sublimetext.info/en/sublime-text-3/basic_concepts.html#the-packages-directory) — *Data/Packages* — path, where stored: +[Packages directory](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/basic_concepts.html#the-packages-directory) — *Data/Packages* — path, where stored: -1. [“user packages” except “installed packages”](http://docs.sublimetext.info/en/latest/extensibility/packages.html#types-of-packages) in Sublime Text terminology +1. [“user packages” except “installed packages”](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/extensibility/packages.html#types-of-packages) in Sublime Text terminology 1. *User* folder, where stored [user settings](https://www.sublimetext.com/docs/3/settings.html) @@ -132,7 +131,7 @@ sublime.packages_path() ``` !!! note - That get directory of [“installed packages”](http://docs.sublimetext.info/en/latest/extensibility/packages.html#types-of-packages), use this method: + That get directory of [“installed packages”](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/extensibility/packages.html#types-of-packages), use this method: ```python sublime.installed_packages_path() @@ -155,7 +154,7 @@ I'm not recommend this, arguments: 1. it less simple 1. in new versions of Sublime Text and/or operating systems paths may be change -1. it [doesn't take](http://docs.sublimetext.info/en/sublime-text-3/basic_concepts.html#the-data-directory) portable Sublime Text on Windows +1. it [doesn’t take](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/extensibility/packages.html#types-of-packages) portable Sublime Text on Windows ## Syntax @@ -233,7 +232,7 @@ view.settings().get('color_scheme') ``` !!! hint - You can get your another [settings](http://docs.sublimetext.info/en/latest/customization/settings.html), use `#!python view.settings().get()`. **Example**: that get your current font face, you need `#!python view.settings().get('font_face')`. + You can get your another [settings](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/customization/settings.html), use `#!python view.settings().get()`. **Example**: that get your current font face, you need `#!python view.settings().get('font_face')`. ## Scope diff --git a/content/IT-articles/How-to-publish-your-package-to-PyPI-2018.md b/content/IT-articles/How-to-publish-your-package-to-PyPI-2018.md index e64affc7..7ae0c08a 100644 --- a/content/IT-articles/How-to-publish-your-package-to-PyPI-2018.md +++ b/content/IT-articles/How-to-publish-your-package-to-PyPI-2018.md @@ -2,18 +2,17 @@ Title: How to publish your package to PyPI, 2018 Version: 0.1.0 Author: Sasha Chernykh Date: 2018-01-27 10:59:14 -Modified: 2020-09-18 16:02:47 +Modified: 2020-09-24 13:12:35 Lang: en -Summary: Tutorial, how you can publish your Python package to PyPI

![Erichek on pypi.python.org](https://i.imgur.com/IzSH7BK.png)

![Erichek on pypi.org](https://i.imgur.com/4P3w8TP.png)

![Erichek on pypi.org 2](https://i.imgur.com/IxsUDu4.png) -Pagetitle: How to publish your package to PyPI, 2018 -Metacontent: Tutorial, how you can publish your Python package to PyPI +Summary: Tutorial, how you can publish your Python package to PyPI + ![Erichek on pypi.python.org](https://i.imgur.com/IzSH7BK.png) + ![Erichek on pypi.org](https://i.imgur.com/4P3w8TP.png) + ![Erichek on pypi.org 2](https://i.imgur.com/IxsUDu4.png) Pagecolors: it-articles Asideimage: SashaGreenSweater Iconleftorright: left Tags: it-articles, python, pypi, release Noco: 1vWK5 -Tooltipster: true -Clipboardjs: true Og_image: https://i.imgur.com/mO0Fnsk.jpg Schemaorgtype: HowTo @@ -116,7 +115,7 @@ I read some articles about PyPI publishing → I think, that articles, which I r 1. not all-in-one; I needed force read other resources; 1. They do not describe all the difficulties the developer has encountered, when try to publish package on PyPI. -I don't want, that another beginner Python developers take a lot of time for PyPI publishing as me. And I try to write an article, that: +I don’t want, that another beginner Python developers take a lot of time for PyPI publishing as me. And I try to write an article, that: 1. non-outdated at February 2018; 1. show examples and demos; @@ -157,7 +156,7 @@ If I have explained something incomprehensibly, see files of [Erichek GitHub rep # Limitations 1. You must be able to write working Python packages. -1. Erichek and another my packages solely for Python 3. I don't want support Python 2. If you want support Python 2, possibly, you will need some other action. +1. Erichek and another my packages solely for Python 3. I don’t want support Python 2. If you want support Python 2, possibly, you will need some other action. 1. If you can have a configuration different, that Erichek, possibly, you will need in another actions. @@ -201,7 +200,7 @@ In [Software Engineering site recommends](https://softwareengineering.stackexcha !!! question I [ask a question](https://softwareengineering.stackexchange.com/questions/365410/readme-md-vs-readme-md), need I use uppercase for file extension or no? *README.rst* or *README.RST*? But I get 7 minuses and my question will delete. - I don't find standard. Personally I use lowercase for file extensions, but you can use uppercase. + I don’t find standard. Personally I use lowercase for file extensions, but you can use uppercase. @@ -225,7 +224,7 @@ If your editor is [Sublime Text 3](https://www.sublimetext.com/3), you can use [ If you preferred write README in Markdown, you can have problems. -At February 2018 [PyPI doesn't support Readme.md](https://github.com/pypa/warehouse/issues/869) without dependencies. Possibly, [it seems like there is no easy way to use a markdown README for PyPI. Solutions involve requiring pandoc locally, which is a heavy dependency](https://github.com/dhimmel/hetio/issues/7#issuecomment-283797432). +At February 2018 [PyPI doesn’t support Readme.md](https://github.com/pypa/warehouse/issues/869) without dependencies. Possibly, [it seems like there is no easy way to use a markdown README for PyPI. Solutions involve requiring pandoc locally, which is a heavy dependency](https://github.com/dhimmel/hetio/issues/7#issuecomment-283797432). !!! hint You can [convert Markdown to reStructuredText](https://bfroehle.com/2013/04/26/converting-md-to-rst/) use [Pandoc](http://pandoc.org). @@ -265,9 +264,9 @@ Set your README file as value. Letters [must be in same register as in file](htt ### classifiers -You can use solely classifiers from [this list](https://pypi.python.org/pypi?%3Aaction=list_classifiers). If no, you can't publish your package to PyPI. +You can use solely classifiers from [this list](https://pypi.python.org/pypi?%3Aaction=list_classifiers). If no, you can’t publish your package to PyPI. -Possibly, UNIX users can select classifiers via [pypi-classifiers GUI](https://github.com/mbr/pypi-classifiers), but [I can't set this program for Windows 10](https://github.com/mbr/pypi-classifiers/issues/2). +Possibly, UNIX users can select classifiers via [pypi-classifiers GUI](https://github.com/mbr/pypi-classifiers), but [I can’t set this program for Windows 10](https://github.com/mbr/pypi-classifiers/issues/2). ### zip_safe @@ -278,7 +277,7 @@ my value: zip_safe = False ``` -If you build your package use Wheels, [you don't need this parameter](https://stackoverflow.com/a/16541150/5951529), but pyroma [will show lower value](https://github.com/regebro/pyroma/issues/19). And so I recommend add `#!ini zip_safe = False` or `#!ini zip_safe = True` (unimportant) to your *setup.cfg* file. +If you build your package use Wheels, [you don’t need this parameter](https://stackoverflow.com/a/16541150/5951529), but pyroma [will show lower value](https://github.com/regebro/pyroma/issues/19). And so I recommend add `#!ini zip_safe = False` or `#!ini zip_safe = True` (unimportant) to your *setup.cfg* file. ### packages @@ -289,7 +288,7 @@ my value: packages = find: ``` -If no `#!ini packages = find:`, users doesn't download folder with your Python module. +If no `#!ini packages = find:`, users doesn’t download folder with your Python module. ### console_scripts @@ -341,7 +340,7 @@ universal = 1 ## Dependencies -In this section I tell, what you need, that dependencies of your package from file *requirements.txt* automatically install for user. You don't need to write same dependencies in *requirements.txt* and *setup.cfg*/*setup.py*. +In this section I tell, what you need, that dependencies of your package from file *requirements.txt* automatically install for user. You don’t need to write same dependencies in *requirements.txt* and *setup.cfg*/*setup.py*. !!! caution Some developers [criticize this method](https://stackoverflow.com/a/33685899/5951529). If you need different dependencies for *requirements.txt* and *install_requires*, please, add list of your dependencies in *requirements.txt* and *setup.cfg* both. @@ -406,7 +405,7 @@ For example, I am Python package developer and have local dependencies for my pa ### setup.py -In this and 2 next sections I wrote, how you can get [install\_requires behavior](#install_requires), use solely *requirements.txt* file. You don't need add your dependencies to install\_requires. +In this and 2 next sections I wrote, how you can get [install\_requires behavior](#install_requires), use solely *requirements.txt* file. You don’t need add your dependencies to install\_requires. Add [this code](https://stackoverflow.com/a/16624700/5951529) to your *setup.py*: @@ -428,7 +427,7 @@ setup( ``` !!! note - Author of answer by link above doesn't add a line in answer: + Author of answer by link above doesn’t add a line in answer: ```python from setuptools import setup @@ -450,7 +449,7 @@ Add a line to *MANIFEST.in* file: include requirements.txt ``` -If no, [users can't install your package](https://stackoverflow.com/q/26319101/5951529). +If no, [users can’t install your package](https://stackoverflow.com/q/26319101/5951529). ## pyroma @@ -524,7 +523,7 @@ python setup.py bdist_wheel [*python setup.py register*](http://peterdowns.com/posts/first-time-with-pypi.html) [is obsolete method](https://packaging.python.org/tutorials/distributing-packages/#uploading-your-project-to-pypi). !!! info - If by some reasons you don't want use Wheels, [you can build your package](https://packaging.python.org/tutorials/distributing-packages/#source-distributions), use command `python setup.py sdist` + If by some reasons you don’t want use Wheels, [you can build your package](https://packaging.python.org/tutorials/distributing-packages/#source-distributions), use command `python setup.py sdist` ## Publish to TestPyPI @@ -538,7 +537,7 @@ twine upload --repository-url https://test.pypi.org/legacy/ dist/* If no errors in your configuration, package must successful upload to TestPyPI. !!! bug - [Known bug](https://github.com/pypa/packaging-problems/issues/74) at February 2018 — in PyPI and TestPyPI you never can't overwrite specific version of your package, even if you delete your package. I.e., for example, you publish to PyPI or TestPyPI version *4.14.7* of your package *mypackage* → you delete *mypackage* from PyPI and/or TestPyPI → you can't upload *4.14.7* version of *mypackage* again. + [Known bug](https://github.com/pypa/packaging-problems/issues/74) at February 2018 — in PyPI and TestPyPI you never can’t overwrite specific version of your package, even if you delete your package. I.e., for example, you publish to PyPI or TestPyPI version *4.14.7* of your package *mypackage* → you delete *mypackage* from PyPI and/or TestPyPI → you can’t upload *4.14.7* version of *mypackage* again. ## Visit TestPyPI @@ -563,10 +562,10 @@ Examples for Erichek at February 2018: If the result suits you, in next step install package, that you upload, use virtual environment. !!! caution - You can't find your package, if you use search form on or . [The search indexes may update \~24 hours for a new package or deleted package to appear in a search](https://github.com/pypa/warehouse/issues/2899#issuecomment-364150430). + You can’t find your package, if you use search form on or . [The search indexes may update \~24 hours for a new package or deleted package to appear in a search](https://github.com/pypa/warehouse/issues/2899#issuecomment-364150430). !!! note - On can't show last version of your package. That fix it, login at → visit `https://testpypi.python.org/pypi?%3Aaction=pkg_edit&name=` ( for Erichek) → [set *Hide? No*](https://i.imgur.com/bGjKHzS.png) for latest version. + On can’t show last version of your package. That fix it, login at → visit `https://testpypi.python.org/pypi?%3Aaction=pkg_edit&name=` ( for Erichek) → [set *Hide? No*](https://i.imgur.com/bGjKHzS.png) for latest version. If you have this problem for , make same actions. @@ -582,18 +581,18 @@ Citation from [Pro Python Best Practices](https://www.apress.com/us/book/9781484 > Virtualenv is like building a moat around the house. It prevents a fire from spreading — in both directions. Likewise, a virtual environment prevents that Python projects interfere with each other. - ![virtualenv](https://i.imgur.com/fRISif0.png) +![virtualenv](https://i.imgur.com/fRISif0.png) Reasons of use virtual environment for TestPyPI installation: 1. You can have bugs in your package. Bugs may have a negative impact of your environment. If you will use virtual environment, these bugs does not affect your global Python environment. -1. You can have some globally dependencies in your environment, but users of your package may haven't them. If you use virtual environment, you see, how your package will install and works without, possibly, pre-installed global dependencies on your machine. +1. You can have some globally dependencies in your environment, but users of your package may haven’t them. If you use virtual environment, you see, how your package will install and works without, possibly, pre-installed global dependencies on your machine. ### Using virtualenv and virtualenvwrapper !!! caution - If you on Windows, please, use [standard Windows console](https://conemu.github.io/en/Delusions.html#delusion-2) for correct virtualenvwrapper-win works or use plugin for your preferred terminal. You can't use command lines command from this section in [PowerShell](https://pypi.python.org/pypi/virtualenvwrapper-win) or [Far Manager](https://github.com/FarGroup/FarManager/issues/23). + If you on Windows, please, use [standard Windows console](https://conemu.github.io/en/Delusions.html#delusion-2) for correct virtualenvwrapper-win works or use plugin for your preferred terminal. You can’t use command lines command from this section in [PowerShell](https://pypi.python.org/pypi/virtualenvwrapper-win) or [Far Manager](https://github.com/FarGroup/FarManager/issues/23). Open terminal in any directory. Run these commands: @@ -630,7 +629,7 @@ Where: ### Checking -If you can't have bugs in installation process, check, that you package works correct. For example, Erichek check, contains errors in *.txt* files in a folder or no. I run *erichek* console command. +If you can’t have bugs in installation process, check, that you package works correct. For example, Erichek check, contains errors in *.txt* files in a folder or no. I run *erichek* console command. If error in one of text file: @@ -652,7 +651,7 @@ C:\ErichekExamples>erichek [2018-02-08 08:51:23.841997] NOTICE: eric_body logbook: All files contains [2018-02-08 08:51:23.843991] NOTICE: eric_asterisks logbook: All needest lines contains asterisks [2018-02-08 08:51:23.844992] NOTICE: eric_head logbook: All files contains correct head data -[2018-02-08 08:51:23.844992] NOTICE: summary logbook: Congratulations! You haven't errors in your packages! +[2018-02-08 08:51:23.844992] NOTICE: summary logbook: Congratulations! You haven’t errors in your packages! ``` Erichek works as expected. @@ -799,7 +798,7 @@ Where: ![Version in eric_config.py](https://i.imgur.com/xMrSbew.png) - If you don't want to have this behavior, please, do not add this text to your *.release-it.json*. + If you don’t want to have this behavior, please, do not add this text to your *.release-it.json*. See [here](Fastest-way-to-add-new-version-of-Sublime-Text-3-package#release-itjson-1), if you want to know details about another parts of *.release-it.json*. diff --git a/content/IT-articles/typo-reporter.md b/content/IT-articles/typo-reporter.md index 7c374fc5..056e9e97 100644 --- a/content/IT-articles/typo-reporter.md +++ b/content/IT-articles/typo-reporter.md @@ -3,9 +3,10 @@ Status: published Version: 0.2.1 Author: Sasha Chernykh Date: 2018-03-22 7:52:14 -Modified: 2019-06-14 16:27:02 +Modified: 2020-09-24 13:12:49 Lang: en -Summary: Features, problems and it solutions, that not described in official typo-reporter Readme.

![English typo-reporter form](https://i.imgur.com/U8pIw0a.png) +Summary: Features, problems and it solutions, that not described in official typo-reporter Readme. + ![English typo-reporter form](https://i.imgur.com/U8pIw0a.png) Pagetitle: typo-reporter Pagecolors: it-articles Asideimage: SashaGreenSweater @@ -78,7 +79,7 @@ typo-reporter limitations: That use typo-reporter on your site you need to have: -1. site, that support custom JavaScript and CSS inserting (some [website builders](https://websitesetup.org/website-builders/) don't support this), +1. site, that support custom JavaScript and CSS inserting (some [website builders](https://websitesetup.org/website-builders/) don’t support this), 1. Google account. @@ -116,7 +117,7 @@ I use typo-reporter, not [Orphus](https://orphus.ru/en/) or another alternatives # Mail forwarding -I don't use GMail, because GMail move to Spam non-spam messages more often than another mail services ([example](https://productforums.google.com/forum/#!msg/gmail-ru/ydfMTF7IUec/4cJLmnSUFAAJ)). But “[notifications are solely sent to the email address associated with your Google account](https://productforums.google.com/d/msg/docs/YJ09uwy-pWU/g_1AJTXZN6QJ)”. That solve this problem I use [mail forwarding](https://support.google.com/mail/answer/10957?hl=en). +I don’t use GMail, because GMail move to Spam non-spam messages more often than another mail services ([example](https://productforums.google.com/forum/#!msg/gmail-ru/ydfMTF7IUec/4cJLmnSUFAAJ)). But “[notifications are solely sent to the email address associated with your Google account](https://productforums.google.com/d/msg/docs/YJ09uwy-pWU/g_1AJTXZN6QJ)”. That solve this problem I use [mail forwarding](https://support.google.com/mail/answer/10957?hl=en). **Example** filter: @@ -143,5 +144,5 @@ After filter creating I recommend to make sure, that: [jtable] Send|Expected behavior for your forwarding e-mail Example typo report on your site|Get [similar message](#Demonstration) -Any another message from another e-mail to your GMail mail|Don't get any message +Any another message from another e-mail to your GMail mail|don’t get any message [/jtable] diff --git a/content/Life-hacks/Default-portable-browser-Windows-10.md b/content/Life-hacks/Default-portable-browser-Windows-10.md index f417eeb3..b1976cdb 100644 --- a/content/Life-hacks/Default-portable-browser-Windows-10.md +++ b/content/Life-hacks/Default-portable-browser-Windows-10.md @@ -1,16 +1,14 @@ -Title: Установка портативной версии Pale Moon в качестве браузера по умолчанию в Windows 10 +Title: Портативный браузер по умолчанию в Windows 10 Author: Sasha Chernykh Date: 2017-03-15 0:11:14 -Modified: 2019-05-23 14:34:04 +Modified: 2020-10-01 19:18:53 Lang: ru Summary: Description, how to make Pale Moon default browser in Windows -Pagetitle: Портативный браузер по умолчанию в Windows 10 +Pagetitle: Установка портативной версии Pale Moon в качестве браузера по умолчанию в Windows 10 Pagecolors: it-articles Asideimage: SashaGreenSweater Iconleftorright: left Tags: life-hacks, pale-moon -Tooltipster: true -ClipboardJs: true Customcss: true Customcss1: Life-hacks/default-portable-browser Noco: 1vWK5 diff --git "a/content/Life-hacks/\320\232\320\260\320\272-\320\260\320\262\321\202\320\276\320\274\320\260\321\202\320\270\321\207\320\265\321\201\320\272\320\270-\320\262\321\205\320\276\320\264\320\270\321\202\321\214-\320\275\320\260-\321\201\320\260\320\271\321\202\321\213.md" "b/content/Life-hacks/\320\232\320\260\320\272-\320\260\320\262\321\202\320\276\320\274\320\260\321\202\320\270\321\207\320\265\321\201\320\272\320\270-\320\262\321\205\320\276\320\264\320\270\321\202\321\214-\320\275\320\260-\321\201\320\260\320\271\321\202\321\213.md" index 93902c73..28c50eca 100644 --- "a/content/Life-hacks/\320\232\320\260\320\272-\320\260\320\262\321\202\320\276\320\274\320\260\321\202\320\270\321\207\320\265\321\201\320\272\320\270-\320\262\321\205\320\276\320\264\320\270\321\202\321\214-\320\275\320\260-\321\201\320\260\320\271\321\202\321\213.md" +++ "b/content/Life-hacks/\320\232\320\260\320\272-\320\260\320\262\321\202\320\276\320\274\320\260\321\202\320\270\321\207\320\265\321\201\320\272\320\270-\320\262\321\205\320\276\320\264\320\270\321\202\321\214-\320\275\320\260-\321\201\320\260\320\271\321\202\321\213.md" @@ -1,7 +1,7 @@ Title: Как автоматически заходить на сайты? Author: Sasha Chernykh Date: 2017-03-15 14:16:14 -Modified: 2020-09-18 08:48:19 +Modified: 2020-09-23 17:11:56 Lang: ru Summary: Как научить персональный компьютер самому заходить на нужные вам веб-сайты каждый день Pagetitle: Как автоматически входить на сайты? @@ -9,8 +9,6 @@ Pagecolors: it-articles Asideimage: SashaGreenSweater Iconleftorright: left Tags: life-hacks, pale-moon -Tooltipster: true -ClipboardJs: true Noco: 1vWK5 Og_image: https://i.imgur.com/2v8XNXv.png Schemaorgtype: HowTo diff --git "a/content/Life-hacks/\320\237\320\265\321\200\320\265\320\264-\320\277\320\265\321\200\320\262\321\213\320\274-\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\274-ARK-Benefit-S401.md" "b/content/Life-hacks/\320\237\320\265\321\200\320\265\320\264-\320\277\320\265\321\200\320\262\321\213\320\274-\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\274-ARK-Benefit-S401.md" index 5259cf1b..47df75b9 100644 --- "a/content/Life-hacks/\320\237\320\265\321\200\320\265\320\264-\320\277\320\265\321\200\320\262\321\213\320\274-\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\274-ARK-Benefit-S401.md" +++ "b/content/Life-hacks/\320\237\320\265\321\200\320\265\320\264-\320\277\320\265\321\200\320\262\321\213\320\274-\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\274-ARK-Benefit-S401.md" @@ -1,6 +1,6 @@ Title: Перед-первым-запуском-ARK-Benefit-S401 Date: 2017-02-13 19:15:15 -Modified: 2019-05-23 14:35:48 +Modified: 2020-09-23 17:12:05 Lang: ru Author: Sasha Chernykh Summary: ARK Benefit S401 for dummies @@ -9,8 +9,6 @@ Pagecolors: it-articles Asideimage: SashaGreenSweater Iconleftorright: left Tags: ROM, android -Tooltipster: true -ClipboardJs: true Customcss: true Customcss1: Life-hacks/default-portable-browser Noco: 1vWK5 diff --git "a/content/NeliaK/\320\230\321\201\321\202\320\270\320\275\320\260-\321\201-\320\235\320\265\320\273\320\265\320\271.md" "b/content/NeliaK/\320\230\321\201\321\202\320\270\320\275\320\260-\321\201-\320\235\320\265\320\273\320\265\320\271.md" index ab903177..4c09396d 100644 --- "a/content/NeliaK/\320\230\321\201\321\202\320\270\320\275\320\260-\321\201-\320\235\320\265\320\273\320\265\320\271.md" +++ "b/content/NeliaK/\320\230\321\201\321\202\320\270\320\275\320\260-\321\201-\320\235\320\265\320\273\320\265\320\271.md" @@ -2,7 +2,7 @@ Title: Истина с Нелей Version: 0.1.0 Author: Sasha Chernykh Date: 2020-06-27 06:20:24 -Modified: 2020-07-26 09:18:12 +Modified: 2020-09-30 20:20:09 Lang: ru Summary: Описание проекта телепередачи «Истина с Нелей» Pagetitle: Истина с Нелей @@ -10,7 +10,6 @@ Pagecolors: giologica Asideimage: NeliaLeaves Iconleftorright: right Tags: istina-s-nelei -Table: standard Noco: 159d5 Og_image: https://i.imgur.com/37YsM10.jpg Schemaorgtype: ScholarlyArticle diff --git a/content/Pages/About-for-developers.md b/content/Pages/About-for-developers.md index 0270452c..0269e326 100644 --- a/content/Pages/About-for-developers.md +++ b/content/Pages/About-for-developers.md @@ -1,19 +1,15 @@ Title: For developers -Version: 0.0.3 +Version: 0.0.4 Author: Sasha Chernykh Date: 2018-03-27 7:55:14 -Modified: 2019-10-17 15:36:28 +Modified: 2020-11-10 12:26:17 Lang: en -Summary: Information for developers about Kristinita's Search +Summary: Information for developers about Kristinita’s Search site Pagetitle: For developers -Metacontent: Information for developers about Kristinita's Search Pagecolors: sasha-black-description Asideimage: SashaInflatedSponges Iconleftorright: right Noco: 1QCqM6 -Table: standard -Tooltipster: true -Clipboardjs: true Og_image: https://i.imgur.com/2blY7dI.png @@ -52,7 +48,7 @@ Og_image: https://i.imgur.com/2blY7dI.png # Unsupported -Developer of this site doesn't support: +Developer of this site doesn’t support: @@ -64,18 +60,18 @@ Developer of this site doesn't support: # Testing -Site tested via [BrowserStack](https://www.browserstack.com) on these latest devices and latest browsers version at January 2019: +Site tested via [BrowserStack](https://www.browserstack.com) on these latest devices and latest browsers version at September 2020: -+ macOS Mojave, Safari 12.0 -+ [Windows 10 64-bit](https://www.browserstack.com/question/621) +1. macOS Catalina, Safari 13.1 +1. [Windows 10 64-bit](https://www.browserstack.com/question/621) + Firefox + Opera + Edge + Chrome -+ iPhone XS Max -+ iPad Pro 12.9.2018 - + ([iOS and Safari](https://www.lifewire.com/check-the-version-number-of-safari-446563)) 12 -+ Samsung Galaxy S9 Plus, Chrome +1. iPhone 11 Pro Max +1. iPad Pro 12.9.2020 + 1. ([iOS and Safari](https://www.lifewire.com/check-the-version-number-of-safari-446563)) 12 +1. Samsung Galaxy S20 Ultra, Chrome # Devices and browsers @@ -172,7 +168,7 @@ Replace *your_token* to token, that you get. !!! warning - Windows users needs also manually add path to *LocalAppVeyor.exe* — *%USERPROFILE%/.dotnet/tools* — as value of *PATH* environment variable. Use [Rapid Environment Editor](https://ru.stackoverflow.com/a/596341/199934) or [pathed](http://www.p-nand-q.com/download/gtools/pathed.html). Don't use *SETX*, [you can lose](https://stackoverflow.com/a/28778358/5951529) your *PATH* data. + Windows users needs also manually add path to *LocalAppVeyor.exe* — *%USERPROFILE%/.dotnet/tools* — as value of *PATH* environment variable. Use [Rapid Environment Editor](https://ru.stackoverflow.com/a/596341/199934) or [pathed](http://www.p-nand-q.com/download/gtools/pathed.html). don’t use *SETX*, [you can lose](https://stackoverflow.com/a/28778358/5951529) your *PATH* data. ### Windows @@ -344,14 +340,14 @@ Link(s) to detailed description of checking tool rules. File for checking tool, if I use non-default rules. -For **each** custom option I add comment, why I doesn't use default option. +For **each** custom option I add comment, why I doesn’t use default option. If *—* symbol in this column, I use default checking tool configuration. ### comments, issue -Some linters use JSON for configuration files (I think, [this is bad](https://arp242.net/weblog/json_as_configuration_files-_please_dont)) \+ [JSON doesn't support comments](https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr) → I can't use comments in JSON configuration files. In these cases I add *comments* and *issue* links to *Configuration file* section. +Some linters use JSON for configuration files (I think, [this is bad](https://arp242.net/weblog/json_as_configuration_files-_please_dont)) \+ [JSON doesn’t support comments](https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr) → I can’t use comments in JSON configuration files. In these cases I add *comments* and *issue* links to *Configuration file* section. + *comments* — file, where comments about options in configuration JSON file + *issue* — feature request for support non-JSON configuration format @@ -365,8 +361,9 @@ For all Sasha Chernykh projects: Type|Checking tool|Rules description|Configuration file English language|[write-good](https://www.npmjs.com/package/write-good) + [remark-lint-write-good](https://www.npmjs.com/package/remark-lint-write-good)|[1](https://github.com/Kristinita/write-good/tree/SashaGoddess#checks), WARNING — [no in default repository](https://github.com/btford/write-good/pull/65)|[.remarkrc.yaml](https://github.com/Kristinita/KristinitaPelican/blob/master/.remarkrc.yaml) commits|[commitlint](http://marionebl.github.io/commitlint/) + [Husky](https://www.npmjs.com/package/husky)|[1](http://marionebl.github.io/commitlint/#/reference-rules), WARNING — [no default levels for rules](https://github.com/marionebl/commitlint/issues/316#issuecomment-385708769)|[.commitlintrc.yml](https://github.com/Kristinita/KristinitaPelican/blob/master/.commitlintrc.yml), [.huckyrc.yml](https://github.com/Kristinita/KristinitaPelican/blob/master/.huskyrc.yml) -all files and folders names|[grunt-path-validator](https://www.npmjs.com/package/grunt-path-validator) (for Grunt projects, I can't find tool for all project types)|no whitespace characters in names — it accept in files/folder naming conventions — [1](https://superuser.com/q/29111/572069), [2](https://portal.slac.stanford.edu/sites/inc_public/Pages/folder-file-names.aspx), [3](https://www.reddit.com/r/linux/comments/1kpzxz/what_are_your_file_naming_conventions/), [4](https://www2.le.ac.uk/services/research-data/organise-data/naming-files), [5](https://library.stanford.edu/research/data-management-services/data-best-practices/best-practices-file-naming)|[path_validator.coffee](https://github.com/Kristinita/KristinitaPelican/blob/master/grunt/path_validator.coffee) (for Grunt projects, I can't find tool for all project types) +all files and folders names|[grunt-path-validator](https://www.npmjs.com/package/grunt-path-validator) (for Grunt projects, I can’t find tool for all project types)|no whitespace characters in names — it accept in files/folder naming conventions — [1](https://superuser.com/q/29111/572069), [2](https://portal.slac.stanford.edu/sites/inc_public/Pages/folder-file-names.aspx), [3](https://www.reddit.com/r/linux/comments/1kpzxz/what_are_your_file_naming_conventions/), [4](https://www2.le.ac.uk/services/research-data/organise-data/naming-files), [5](https://library.stanford.edu/research/data-management-services/data-best-practices/best-practices-file-naming)|[path_validator.coffee](https://github.com/Kristinita/KristinitaPelican/blob/master/grunt/path_validator.coffee) (for Grunt projects, I can’t find tool for all project types) all files|[EditorConfig](http://editorconfig.org/)|[1](https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties)|[.editorconfig](https://github.com/Kristinita/KristinitaPelican/blob/master/.editorconfig) +internal links|[check-pages](https://github.com/DavidAnson/check-pages)|[1](https://github.com/DavidAnson/check-pages#options)|[check-pages.coffee](https://github.com/Kristinita/KristinitaPelican/blob/master/grunt/checkPages.coffee) supported browsers|[Browserslist](https://www.npmjs.com/package/browserslist)|[1](https://github.com/browserslist/browserslist#queries)|[browserslist](https://github.com/Kristinita/KristinitaPelican/blob/master/browserslist) browsers console errors|[clean-console](https://www.npmjs.com/package/clean-console)|No errors in browsers console|[clean-console.coffee](https://github.com/Kristinita/KristinitaPelican/blob/master/grunt/clean-console.coffee) site performance|[PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/)|[1](https://developers.google.com/web/tools/lighthouse/)|— @@ -382,7 +379,7 @@ HTML|[htmllint](http://htmllint.github.io/)|[1](https://github.com/htmllint/html HTML|[HTMLHint](https://htmlhint.io/)|[1](https://github.com/htmlhint/HTMLHint/wiki/Rules)|[.htmlhintrc](https://github.com/Kristinita/KristinitaPelican/blob/master/.htmllintrc), [comments](https://github.com/Kristinita/KristinitaPelican/blob/master/grunt/htmlhint.coffee), [issue](https://github.com/htmlhint/HTMLHint/issues/126) Stylus|[Stylint](https://simenb.github.io/stylint/)|[1](https://www.npmjs.com/package/stylint#excluding-files-directories-and-code-blocks-from-the-linter)|[.stylintrc](https://github.com/Kristinita/KristinitaPelican/blob/master/.stylintrc), [comments](https://github.com/Kristinita/KristinitaPelican/blob/master/grunt/stylint.coffee), [issue](https://github.com/SimenB/stylint/issues/434) CSS|[stylelint](https://stylelint.io/), [stylelint-config-recommended](https://www.npmjs.com/package/stylelint-config-recommended)|[1](https://stylelint.io/user-guide/rules)|[.stylelintrc.yaml](https://github.com/Kristinita/KristinitaPelican/blob/master/.stylelintrc.yaml) -CSS|[CSSLint](http://csslint.net/)|[1](https://github.com/CSSLint/csslint/wiki/Rules)|[.csslintrc](https://github.com/Kristinita/KristinitaPelican/blob/master/.csslintrc), [comments enabled](https://github.com/gruntjs/grunt-contrib-csslint#csslintrc) +CSS|[stylelint-no-unsupported-browser-features](https://www.npmjs.com/package/stylelint-no-unsupported-browser-features)|[1](https://caniuse.com/)|[browserslist](https://github.com/Kristinita/KristinitaPelican/blob/master/browserslist) CSS|[doiuse](https://doiuse.herokuapp.com/)|[1](https://caniuse.com/)|[browserslist](https://github.com/Kristinita/KristinitaPelican/blob/master/browserslist) CoffeeScript|[CoffeeLint](http://www.coffeelint.org/)|[1](http://www.coffeelint.org/#options)|[coffeelint.json](https://github.com/Kristinita/KristinitaPelican/blob/master/coffeelint.json), [comments](https://github.com/Kristinita/KristinitaPelican/blob/master/grunt/coffeelint.coffee), [issue](https://github.com/clutchski/coffeelint/issues/638) Bash|[ShellCheck](https://www.shellcheck.net/)|[1](https://github.com/koalaman/shellcheck/wiki)|— @@ -395,9 +392,10 @@ appveyor.yml|[LocalAppVeyor](https://github.com/joaope/LocalAppVeyor#-lint-comma ### Non-used tools -In this section checking/linting/validation tools, that I don't use. Required argumentation. +In this section checking/linting/validation tools, that I don’t use. Required argumentation. [jtable] Type|Checking tool|Argumentation +CSS|[CSSLint](http://csslint.net/)|CSSLint [no longer maintained](https://github.com/CSSLint/csslint/issues/754). If I use CSS3 syntax, I will get CSSLint error in any case. [I can’t ignore](https://github.com/CSSLint/csslint/issues/720#issuecomment-376566968) parts of CSS files that contains [CSS3 variables](https://github.com/CSSLint/csslint/issues/720#issue-271707857). Python|[Python Black](https://github.com/ambv/black)|Vertical spaces format to one line ([example](https://github.com/ambv/black/issues/118#issuecomment-385318504)); author “[hate options](https://github.com/ambv/black/issues/181#issuecomment-385326100)” [/jtable] diff --git a/content/Pages/Terms-and-Conditions-and-Privacy-Policy.md b/content/Pages/Terms-and-Conditions-and-Privacy-Policy.md index 830bc3f2..cae8d2b9 100644 --- a/content/Pages/Terms-and-Conditions-and-Privacy-Policy.md +++ b/content/Pages/Terms-and-Conditions-and-Privacy-Policy.md @@ -2,17 +2,14 @@ Title: Terms and Conditions and Privacy Policy Version: 0.1.0 Author: Sasha Chernykh Date: 2018-04-30 16:35:14 -Modified: 2019-05-23 14:37:46 +Modified: 2020-09-24 10:28:24 Lang: en -Summary: Terms and conditions and Privacy Policy for Kristinita's Search site. Generated by Privacy Policy / Terms Of Service Generator +Summary: Terms and conditions and Privacy Policy for Kristinita's Search site. Generated by Privacy Policy/Terms Of Service Generator Pagetitle: Terms and Conditions and Privacy Policy -Metacontent: Terms and conditions and Privacy Policy for Kristinita's Search site. Pagecolors: sasha-black-description Asideimage: SashaInflatedSponges Iconleftorright: right Noco: 1QCqM6 -Tooltipster: true -Clipboardjs: true Og_image: https://i.imgur.com/URzYb4S.jpg diff --git a/content/Programs/KristinitaLuckyLink.md b/content/Programs/KristinitaLuckyLink.md index 071cd15c..5a085190 100644 --- a/content/Programs/KristinitaLuckyLink.md +++ b/content/Programs/KristinitaLuckyLink.md @@ -2,9 +2,10 @@ Title: KristinitaLuckyLink Version: 0.1.0 Author: Sasha Chernykh Date: 2018-01-09 19:27:14 -Modified: 2020-09-18 19:32:55 +Modified: 2020-11-03 09:36:16 Lang: en -Summary: Sublime Text 3 package, that wrap the selected text to DuckDuckGo or Google top query URL

![KristinitaLuckyLink](https://i.imgur.com/TuyxneV.png) +Summary: Sublime Text 3 package, that wrap the selected text to DuckDuckGo or Google top query URL + ![KristinitaLuckyLink](https://i.imgur.com/TuyxneV.png) Pagetitle: KristinitaLuckyLink Pagecolors: programs Asideimage: KristinaGold @@ -13,8 +14,6 @@ Titleimagename: KristinitaLuckyLink Iconleftorright: right Tags: programs, sublime-text Noco: 1g9b6 -Tooltipster: true -Clipboardjs: true Og_image: https://i.imgur.com/TuyxneV.png Schemaorgtype: SoftwareApplication @@ -81,7 +80,7 @@ It may take a lot of time. Use KristinitaLuckyLink I can make all these actions, ## Demonstration -
+
## Examples @@ -139,9 +138,9 @@ I save minutes of my time. But if in top of SERP one link, but KristinitaLuckyLink out another link, please make [these actions](#Incorrect-links). -1. If you don't want by some reasons make actions from [installation](#Installation) and [activation](#Activation) section, please, don't install KristinitaLuckyLink. +1. If you don’t want by some reasons make actions from [installation](#Installation) and [activation](#Activation) section, please, don’t install KristinitaLuckyLink. -1. Copy from [here](https://github.com/aviaryan/python-gsearch#warning): +1. From [Python Google Search unofficial API](https://github.com/aviaryan/python-gsearch#warning): > Overusing KristinitaLuckyLink might lead to your IP being blocked by Google Search servers. Searches through browser might still work but KristinitaLuckyLink will stop working. I recommend keeping a 5 seconds gap after each usage of this library. In most cases, much lower gaps or even continuous use of the library will still work but still this is something to be kept in mind. If you see a 'rate limit' or a 503 error, it's best to stop using the library and try back after some time (~1 minute). @@ -228,7 +227,7 @@ Windows and Linux|Ctrl+Shift+Alt+D|Ctrl+Shift+Alt+D macOS|⌘⇧⌥d|⌘⇧⌥g [/jtable] -If these hotkeys used in you another packages or you don't want use default hotkeys by another reasons: *Preferences* → *Browse packages…* → *User* → create a file *Default.suricate-profile*, if no, and add to them these lines: +If these hotkeys used in you another packages or you don’t want use default hotkeys by another reasons: *Preferences* → *Browse packages…* → *User* → create a file *Default.suricate-profile*, if no, and add to them these lines: ```json { @@ -247,14 +246,14 @@ If these hotkeys used in you another packages or you don't want use default hotk } ``` -Replace `super+keypad8` and `+super+browser_home` from example to your preferred keys. See [key name convention](http://docs.sublimetext.info/en/latest/reference/key_bindings.html#bindable-keys) in Sublime Text 3. +Replace `super+keypad8` and `+super+browser_home` from example to your preferred keys. See [key name convention](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/reference/key_bindings.html#bindable-keys) in Sublime Text 3. For detailed information about Suricate key bindings see [Sublime Suricate documentation](https://readthedocs.org/projects/sublime-suricate/). ## Command palette -… use [command palette](https://www.youtube.com/watch?v=VYNkebGdl9Q). Wait a moment to … the result. +… use [command palette](https://www.tutorialspoint.com/sublime_text/sublime_text_command_palette.htm). Wait a moment to … the result. Captions: @@ -366,7 +365,7 @@ If link, that you get via KristinitaLuckyLink, and this link match; it [pygoogli Pull requests welcome! But, please, adhere to the following rules. 1. Please, not add inside this package external modules. My code “philosophy” is that all modules must installed separately. -1. Code must match [PEP8](https://www.python.org/dev/peps/pep-0008/) rules. Max line length — 120 symbols. Desirable, 100% for [Lintly](https://lintly.com/). +1. Code must match [PEP8](https://www.python.org/dev/peps/pep-0008/) rules. Max line length — 120 symbols. # Thanks diff --git a/content/Programs/PaletteMira.md b/content/Programs/PaletteMira.md index afd04827..7513f6f8 100644 --- a/content/Programs/PaletteMira.md +++ b/content/Programs/PaletteMira.md @@ -2,14 +2,15 @@ Title: PaletteMira Version: 0.0.1 Author: Sasha Chernykh Date: 2018-04-04 16:33:14 -Modified: 2019-05-23 14:42:05 +Modified: 2020-09-24 13:13:17 Lang: en Summary: Add to command palette commands from external Sublime Text packages Pagetitle: PaletteMira Pagecolors: programs Iconleftorright: right Epigraph: true -Epigraphtext: I dedicated PaletteMira the most goodhearted creation — [Ekaterina Zakharova](https://vk.com/id193658076).

Mira from “PaletteMira” — name of [Her account](https://vk.com/id388308587) in social network. +Epigraphtext: I dedicated PaletteMira the most goodhearted creation — [Ekaterina Zakharova](https://vk.com/id193658076). + Mira from “PaletteMira” — name of [Her account](https://vk.com/id388308587) in social network. Titleimage: true Titleimagename: KateZGirlfriend Asideimage: KateZakharova @@ -37,9 +38,9 @@ Schemaorgtype: SoftwareApplication # Overview -Sublime Text package, that add to [command palette](http://docs.sublimetext.info/en/latest/reference/command_palette.html) existing commands from third-party packages, if author(s) of them did not do this. +Sublime Text package, that add to [command palette](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/reference/command_palette.html) existing commands from third-party packages, if author(s) of them did not do this. -I include to PaletteMira commands of all known packages, that doesn't have command palette caption, not obsolete and haven't critical errors. +I include to PaletteMira commands of all known packages, that doesn’t have command palette caption, not obsolete and haven’t critical errors. # Limitations diff --git "a/content/Smert-svobode/\320\235\320\276\320\262\321\213\320\265-\320\275\320\265\320\264\320\276\320\262\320\276\320\273\321\214\320\275\321\213\320\265-\321\200\321\203\321\201\321\201\320\272\320\270\320\265.md" "b/content/Smert-svobode/\320\235\320\276\320\262\321\213\320\265-\320\275\320\265\320\264\320\276\320\262\320\276\320\273\321\214\320\275\321\213\320\265-\321\200\321\203\321\201\321\201\320\272\320\270\320\265.md" index ad255198..d87a8abd 100644 --- "a/content/Smert-svobode/\320\235\320\276\320\262\321\213\320\265-\320\275\320\265\320\264\320\276\320\262\320\276\320\273\321\214\320\275\321\213\320\265-\321\200\321\203\321\201\321\201\320\272\320\270\320\265.md" +++ "b/content/Smert-svobode/\320\235\320\276\320\262\321\213\320\265-\320\275\320\265\320\264\320\276\320\262\320\276\320\273\321\214\320\275\321\213\320\265-\321\200\321\203\321\201\321\201\320\272\320\270\320\265.md" @@ -1,7 +1,7 @@ Title: Ннр, новые недовольные русские, поколение фу Author: Sasha Chernykh Date: 2017-03-15 18:53:14 -Modified: 2020-09-15 10:23:37 +Modified: 2020-11-16 13:02:07 Lang: ru Summary: Поколение нулевых-десятых ![Beavis and Butt-Head](https://i.imgur.com/mv73W61.jpg) Pagetitle: Новые недовольные русские @@ -9,7 +9,7 @@ Pagecolors: smert-svobode Asideimage: SashaNoseRings Iconleftorright: left Tags: smert-svobode, ndr, demagogue -Noco: 159d5 +Noco: 1DD46 Og_image: https://i.imgur.com/mv73W61.jpg Schemaorgtype: ScholarlyArticle @@ -21,8 +21,6 @@ Schemaorgtype: ScholarlyArticle # Ннр (на примере сайта Sports.ru) -![Alt attribute fish](https://2no.co/1DD46.jpg) - ![Alt attribute fish](https://i.imgur.com/mv73W61.jpg)
@@ -78,11 +76,15 @@ Schemaorgtype: ScholarlyArticle
- ImageDescription ImageDescription + ![Alt attribute fish](https://i.imgur.com/KcLzfJC.png) + + ![Alt attribute fish](https://i.imgur.com/0B1dIrF.png) [обсценной лексикой](http://archive.is/FdlSe), а один из [графиков](http://archive.is/xTF9O), нарисованный в лучших традициях [обреза Блумберга](http://ruxpert.ru/%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D1%8B:%D0%9E%D0%B1%D1%80%D0%B5%D0%B7_%D0%91%D0%BB%D1%83%D0%BC%D0%B1%D0%B5%D1%80%D0%B3%D0%B0), производит более наглядное впечатление, чем выведенный в книге Дарелла Хаффа «[Как лгать при помощи статистики](https://docs.zoho.com/file/3fy4o841007d31f974d508233a171cf608f44)». - ImageDescription ImageDescription + ![Alt attribute fish](https://i.gyazo.com/e5b62b06e37e7207a304d2c55b2a0f68.png) + + ![Alt attribute fish](https://i.gyazo.com/2d99f1d416a8db4a1ac97a3d55060d06.png) А [такие](http://www.sports.ru/poll/football/1041826877.html) опросы у них на заглавной странице: @@ -100,21 +102,7 @@ Schemaorgtype: ScholarlyArticle ![Alt attribute fish](https://i.imgur.com/gGwKUVp.png) -Тем не менее, разумеется, допускаю, что моя статья может страдать нерепрезентативной выборкой, неподкреплённостью авторитетными источниками ряда утверждений и пр. Планируется дополнять и улучшать её, исправлять ошибки с неточностями. По всем касающимся статьи вопросам пишите по адресу - - - - - -либо на [GitHub](https://github.com/Kristinita/Kristinita.github.io/issues "Багтрекер Гитхаба"), кликнув «New Issue». Фиолетового цвета в данном тексте ссылки: в случае их недоступности архивные копии всех веб-страниц, открывающихся при переходе по ссылкам со статьи, сохранены на [сервисе кэширования](http://www.osp.ru/pcworld/2011/06/13009039/) [archive.is](http://archive.is/). +Тем не менее, разумеется, допускаю, что моя статья может страдать нерепрезентативной выборкой, неподкреплённостью авторитетными источниками ряда утверждений и пр. Планируется дополнять и улучшать её, исправлять ошибки с неточностями. Довольно предисловия, поехали! @@ -157,7 +145,11 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 Ещё иллюстрация низкого уровня направленного мышления: проиграл — для ннр ты дно, выиграл — нет, не «ты король», ведь получается, ни в чей адрес не выражается недовольства, — то дно, ничтожество, позорник уже твой противник. В глобальном плане. Оказываются перечёркнутыми предыдущие достижения, — так, в 2015 футбольный клуб «Барселона» выиграл требл: Примеру, Кубок Короля и Лигу Чемпионов, а тренер команды Луис Энрике был назван ФИФА тренером года. -ImageDescription ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/zUrTVKJ.png) + +![Alt attribute fish](https://i.imgur.com/lZwZbKY.png) + +![Alt attribute fish](https://i.imgur.com/SfN37mP.png) > Да, «Барселона» проиграла, но зачем её оскорблять? Зачем вообще переходить на оскорбления? @@ -166,7 +158,7 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 Начало формирования новых недовольных русских как класса было положено в перестроечные годы, когда с уходом «эпохи "Одобрям"» весь негатив начал выплёскиваться наружу. -
@@ -218,13 +210,21 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 Помимо, собственно, наличия множества оценок, новых недовольных русских отличает их негативная коннотация. Вечное недовольство — главная особенность новых недовольных русских и умнорожих, остальные, о которых ведётся речь в пределах данной статьи, им могут быть не присущи. [Спортсмен пошутил](http://www.sports.ru/football/1040692950.html), никого не задевая, [ннр негодуют](http://archive.is/CsMOs): -ImageDescription ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/YUsvYxP.png) + +![Alt attribute fish](https://i.imgur.com/liS9OMR.png) + +![Alt attribute fish](https://i.imgur.com/Qdnbi50.png) Причём, не суть важно над чем гневаться, самой позицией или ей противоположной. Если ту же мысль, что в комментариях от поколения фу [собирала трёхзначное количество плюсов](http://archive.is/9eu1W), выскажет человек, не имеющий однозначной устойчивой репутации среди ннр, в топе нередко оказываются [недовольства уже обратного свойства](http://archive.is/14lKI). -ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/HdYc8a4.png) + +![Alt attribute fish](https://i.imgur.com/AM1oWgi.png) + +![Alt attribute fish](https://i.imgur.com/fSBEWU8.png) -ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/aCn7j88.png) А вот типичные лаконичные комментарии «[главного шутника](http://archive.is/xsSGe)» Sports.ru: @@ -232,11 +232,15 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 Кроме оскорбления Луи ван Гала «муляжом тренера» вроде бы никаких демагогических приёмов в словах AlexandR не содержится. Однако в каждом сообщении содержится недовольство: руководством «Манчестер Юнайтед», российской пропагандой, тем же ван Галом, судейством или Андре Виллаш-Боашем, — зайдя в [профиль](http://www.sports.ru/profile/73531811/comments/), можно убедиться, что количество объектов для негодования исчисляется сотнями. Одного-двух озлобленных замечаний от человека недостаточно, чтобы делать выводы о принадлежности к ннр или умнорожим, но если они исходят [постоянно](http://www.sports.ru/profile/148024348/comments/) — перед вами true представитель одного из этих двух классов. -ImageDescriptionImageDescription +![Alt attribute fish](https://i.imgur.com/qg0aoMw.png) -Нельзя благодарить [Бога](https://vk.com/hair_in_the_wind) и судьбу за всё, что ни творится, иначе сильные мира сего быстренько сядут на голову. На планете, в стране и каждом дворе совершаются несправедливости, про которые можно и нужно говорить, а ещё лучше — действовать; но не [раздражаться](http://pda.sports.ru/football/1035048833.html) по поводу [каждой мелочи](http://archive.is/c4Exg), омрачняя жизнь как себе, так и людям. +![Alt attribute fish](https://i.imgur.com/jspxYeV.png) -ImageDescription ImageDescription +Нельзя благодарить [Бога](https://vk.com/psychologist_kira_k) и судьбу за всё, что ни творится, иначе сильные мира сего быстренько сядут на голову. На планете, в стране и каждом дворе совершаются несправедливости, про которые можно и нужно говорить, а ещё лучше — действовать; но не [раздражаться](http://pda.sports.ru/football/1035048833.html) по поводу [каждой мелочи](http://archive.is/c4Exg), омрачняя жизнь как себе, так и людям. + +![Alt attribute fish](https://i.imgur.com/bWsAOCp.png) + +![Alt attribute fish](https://i.imgur.com/Gc6Z9fz.png)
@@ -270,7 +274,9 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 Хорошо или плохо оценивается понятие либо явление — напрямую обусловлено социальной средой: одно и то же словосочетание считается оскорблением или нет, в зависимости от того, где оно было произнесено. Так, в ЛГБТ-сообществе не найдут предосудительного в термине «гей», тогда как на Sports.ru тем, в отношении кого есть хотя бы подозрение на гомосексуальность, [приходится ой как несладко](http://www.sports.ru/tribuna/blogs/gremio/331282.html). -ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/UaSPwPr.png) + +![Alt attribute fish](https://i.imgur.com/kyiXKF8.png)
@@ -384,7 +390,9 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 Не ннр-ами едиными жив Doc Attack: [Дмитрий Добров](http://www.dm-dobrov.ru/publicism/suvorov.html), историк-востоковед: -ImageDescriptionImageDescription +![Alt attribute fish](https://i.imgur.com/WuiqT4J.png) + +![Alt attribute fish](https://i.imgur.com/g2EaKKf.png) 1. Первая категория Doc Attack — общемедицинские, анатомические термины, чей оскорбительный психиатрический смысл проясняется из контекста: *Ты чё, больной, русский язык не понимаешь?* — «больной» не сердцем или животом, *санитары уже выехали* (отвозить в психиатрическое учреждение). В [следующем примере](http://archive.is/gwKO7), надо полагать, подразумевалась вовсе не мигрень. @@ -403,7 +411,7 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 ## Нионкоры -" Надела короткую юбку – хочет быть изнасилованной. Завела второго ребёнка — боится выходить на работу. Сидит, скрестив ноги? Чувствует себя неуверенно. Учат иностранный язык? Собираются эмигрировать. +" Надела короткую юбку – хочет быть изнасилованной. Завела второго ребёнка — боится выходить на работу. Сидит, скрестив ноги? Чувствует себя неуверенно. Учат иностранный язык? Собираются эмигрировать. Ну и прочая отвратительная белиберда, которую многие почему-то считают «психологией» и за которой, кстати, идут на психфак." @@ -460,7 +468,15 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 А [попробуйте-ка](http://archive.is/LpbuR) [похвалить себя](http://www.sports.ru/football/1034297217.html): -ImageDescriptionImageDescriptionImageDescriptionImageDescriptionImageDescription +![Alt attribute fish](https://i.imgur.com/pqkwo6W.png) + +![Alt attribute fish](https://i.imgur.com/z91jq3e.png) + +![Alt attribute fish](https://i.imgur.com/O7sf5IV.png) + +![Alt attribute fish](https://i.imgur.com/yfdQQbb.png) + +![Alt attribute fish](https://i.imgur.com/vLFFFzn.png) Опасения, что с какого-то IP послышится нечто вроде «Он ещё пиарится. Ты кусок гуано, ахахах!» лишает радости маленьких побед. С научной же точки зрения @@ -493,11 +509,13 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 [Умилять](https://kristinita.netlify.app/#gsc.tab=0&gsc.q=%D1%83%D0%BC%D0%B8%D0%BB%D1%8F%D1%82%D1%8C) — «разжалобить, растрогать, трогать, расшевелить», что из этого испытывал автор комментария? Вероятней всего, ничего: слово «умилять» выражает ныне, в основном, меньеши. -ImageDescription +![Alt attribute fish](https://i.imgur.com/oRfVS3T.png) О чём уже ум**о**ляет [пользователь Machete](http://archive.is/Yah1w)? И что забавного, т. е. [смешного, комичного](https://kristinita.netlify.app/#gsc.tab=0&gsc.q=%D0%B7%D0%B0%D0%B1%D0%B0%D0%B2%D0%BD%D0%BE) [в относительно](http://www.sports.ru/football/141048291.html) [более интересной](http://m.sports.ru/football/141048291.html?get=comments) игре сборной Германии? -ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/z8ofT8o.png) + +![Alt attribute fish](https://i.imgur.com/yXjZHPr.png) Впрочем, человек вполне может умолять, умиляться и забавляться, несмотря на то что обычно эти слова обозначают меньеши, — зависит от контекста. @@ -505,7 +523,9 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 Для новых недовольных русских характерны [низкоинтеллектуальные](http://web.archive.org/web/20150615162941/http://www.xpomo.com/ruskolan/tolpa/piramida.htm) демагогические приёмы. Так, на Sports.ru обсуждают не сами фразы, а [тех, кто их произнёс](http://archive.is/5T9Ib) — переход на личности, [ad hominem](https://kristinita.netlify.app/#gsc.tab=0&gsc.q=ad%20hominem): -ImageDescriptionImageDescription +![Alt attribute fish](https://i.imgur.com/lthCdLx.png) + +![Alt attribute fish](https://i.imgur.com/6b4jnsP.png) Поколение фу при каждом представившемся случае будет припоминать и педалировать негативные черты, какими бы нелепыми, несуразными они не казались. Нацарапают на заборе, что тренер Леонид Слуцкий — педофил, [ннр подхватят](http://archive.is/W5Thy): @@ -546,21 +566,31 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 [Выше](#Определение-ннр) только говорилось, что представители поколения фу могут быть возмущены всем и вся. Когда чей-то поступок не соответствует взглядам нового недовольного русского, он выдвигает [претензию](http://archive.is/Z9j5Q) (также обвинение) — мнение, явным или нет образом выражающее, что объект претензии должен поступать определённым образом. -ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/BBul8Oy.png) + +![Alt attribute fish](https://i.imgur.com/QXLtVsI.png) Обвинение не является видом неконструктивного ведения дискуссии имманентно. Встречаются обоснованные, базирующиеся на жизнеутверждающих принципах, не только свойственные ннр реакции на каждый чих и издёвки над чьими-то проблемами со здоровьем. От истинного нового недовольного русского не услышать слов жалости и сострадания. [Реакция](http://archive.is/Vp0E3) на травму футболиста: -ImageDescription ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/ZB1Kojb.png) + +![Alt attribute fish](https://i.imgur.com/aKCRn2i.png) + +![Alt attribute fish](https://i.imgur.com/Hes5All.png) Или после признания спортсменки, что её посещали [мысли о самоубийстве](http://archive.is/PTYxe): -ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/NZdk0mE.png) + +![Alt attribute fish](https://i.imgur.com/jAoGUrl.png) Легче всего новому недовольному русскому травить тех, кто не в состоянии достойно ответить: [достаётся](#Классификация-оскорблений) разного рода меньшинствам. Худо приходится и вступающимся за наиболее уязвимых индивидов: [зоозащитникам](http://archive.is/lC1J1), -ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/592cCqC.png) + +![Alt attribute fish](https://i.imgur.com/nHpKNuU.png) ведь «[адекватные люди отмолчатся или пошутят](http://archive.is/KVRBV)», глядя на фотографии застреленных животных; @@ -568,7 +598,9 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 [правозащитникам](http://www.sports.ru/basketball/1038385264.html) [тоже](http://archive.is/FGM5m). -ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/JbN3v0m.png) + +![Alt attribute fish](https://i.imgur.com/w3VmjGr.png) Совместно с [обычно выделяемыми](https://kristinita.netlify.app/#gsc.tab=0&gsc.q=%D0%B4%D0%B8%D1%81%D0%BA%D1%80%D0%B8%D0%BC%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D1%8F) разновидностями дискриминации, распространённой в среде ннр, я использую собственный термин. @@ -607,11 +639,17 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 уже накопил денег достаточно на безбедное существование. [Дебитивная модальность](https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(%D0%BB%D0%B8%D0%BD%D0%B3%D0%B2%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0)#.D0.90.D0.BA.D1.82.D1.83.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D0.BA.D0.B0.D1.82.D0.B5.D0.B3.D0.BE.D1.80.D0.B8.D0.B8_.D0.BC.D0.BE.D0.B4.D1.83.D1.81.D0.B0) «должен» употребляется новыми недовольными русскими вместе с синонимами слова «пахать». [По версиям ннр](http://www.sports.ru/biathlon/1028215981.html), не нужно получать удовольствие от тренировок, иметь доверительные взаимоотношения с тренерским штабом. Как указали сверху, [так и делай](http://archive.is/1YmfI): -ImageDescription ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/j7XSuHN.png) + +![Alt attribute fish](https://i.imgur.com/dpdt446.png) + +![Alt attribute fish](https://i.imgur.com/FZTo0ZR.png) Будь добр [не иметь](http://archive.is/eQScC) взглядов на тренировочный процесс, собственное развитие. -ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/bObRKYr.jpg) + +![Alt attribute fish](https://i.imgur.com/YR5HNSC.jpg) Не беда, что испытываешь огромные нагрузки, честно отрабатывая зарплату — [обязан пахать](http://archive.is/fwXoJ) [ещё больше](https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%BE%D1%82%D0%BD%D1%8B%D0%B9_%D0%B4%D0%B2%D0%BE%D1%80)! @@ -619,7 +657,13 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 [Карьера](http://www.sports.ru/tribuna/blogs/televizor3/822635.html?comments=1) — вот о чём могут [сожалеть](http://archive.is/IqKDN) новые недовольные русские, пусть тебе она глубоко фиолетова. -ImageDescription ImageDescription ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/TCFgItL.png) + +![Alt attribute fish](https://i.imgur.com/VDk14fF.png) + +![Alt attribute fish](https://i.imgur.com/L8oYuhq.png) + +![Alt attribute fish](https://i.imgur.com/PzMfDp8.png) Если вы не числитесь в списках Forbes, олимпийских чемпионов, нобелевских или оскароносных лауреатов, — не иначе в реале анонимы со Sports.ru кто-то из вышеперечисленных, раз дают право оскорблять и осуждать себе, — будьте готовы к [аксонникам](http://archive.is/9xWVP). @@ -629,7 +673,9 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6
-ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/Y2eM0zX.png) + +![Alt attribute fish](https://i.imgur.com/QSD9YQD.png) Если же после аксонников в свой адрес решили вкалывать денно и нощно, надеясь оказаться в числе великих по своей специальности, не грезьте, пожалуйста, что новые недовольные русские великодушно сменят гнев на милость: «Ладно, так уж и быть, добился, даём тебе разрешение открыть рот». Они вас откомментируют [уже так](http://www.sports.ru/tribuna/blogs/vitalysuvorov/857883.html): @@ -645,14 +691,20 @@ eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%6 К счастью, стремление к успеху полностью поглотило не всех; остались люди, для которых [дружба](http://www.sports.ru/football/1040682633.html) [не пустой звук](http://archive.is/QUwwY), как бы не измывались над ними новые недовольные русские. -ImageDescription ImageDescription ImageDescription ImageDescription +![Alt attribute fish](https://i.imgur.com/tGwgR9T.png) + +![Alt attribute fish](https://i.imgur.com/a9RN7GH.png) + +![Alt attribute fish](https://i.imgur.com/tWa74wb.png) + +![Alt attribute fish](https://i.imgur.com/TMy9TyP.png) ## Заключение Случалось ли, что вы не находили себе места, задаваясь вопросом «почему» (новые недовольные русские настолько злы)? Тогда полезным для вас может оказаться следующее: -1. Вспомните, когда Вы сами совершали если и несопоставимые по жестокости, то в чём-то аналогичные поступки. Никогда не грешит лишь Святая [Кристина Кива](https://vk.com/kristinita18), у нас с вами таких наберётся порядком. Это не сделает добрее поколение фу, а позволит переосмыслить **ваши** неблаговидные действия. +1. Вспомните, когда Вы сами совершали если и несопоставимые по жестокости, то в чём-то аналогичные поступки. Никогда не грешит лишь Святая [Кристина Кива](https://vk.com/kristinita23), у нас с вами таких наберётся порядком. Это не сделает добрее поколение фу, а позволит переосмыслить **ваши** неблаговидные действия. 1. Стремитесь к пониманию, углубляйтесь в психологию великих, заслуживающих того людей, а не стоящих ниже вас в плане моральных качеств. Всё, что нужно знать о душе новых недовольных русских — её у них нет. diff --git "a/content/Special/\320\237\320\276\320\273\320\275\320\260\321\217-\320\261\320\270\320\261\320\273\320\270\320\276\320\263\321\200\320\260\321\204\320\270\321\217.md" "b/content/Special/\320\237\320\276\320\273\320\275\320\260\321\217-\320\261\320\270\320\261\320\273\320\270\320\276\320\263\321\200\320\260\321\204\320\270\321\217.md" index 040c11cf..c05cbcd3 100644 --- "a/content/Special/\320\237\320\276\320\273\320\275\320\260\321\217-\320\261\320\270\320\261\320\273\320\270\320\276\320\263\321\200\320\260\321\204\320\270\321\217.md" +++ "b/content/Special/\320\237\320\276\320\273\320\275\320\260\321\217-\320\261\320\270\320\261\320\273\320\270\320\276\320\263\321\200\320\260\321\204\320\270\321\217.md" @@ -3,7 +3,7 @@ Version: 0.4.0 Author: Sasha Chernykh Lang: ru Date: 2019-09-15 11:27:54 -Modified: 2020-09-16 08:32:55 +Modified: 2020-11-12 20:32:09 Summary: Книги, которые, возможно, будут использоваться для работы над Комнатами Эрика Pagetitle: Полная библиография Pagecolors: giologica @@ -20,7 +20,6 @@ Schemaorgtype: DataCatalog 1. [Для чего](#Для-чего) 1. [Условные обозначения](#Условные-обозначения) 1. [Дисклеймер](#Дисклеймер) -1. [Доступ](#Доступ) 1. [Вспомогательные](#Вспомогательные) 1. [Анализ и источниковедение](#Анализ-и-источниковедение) 1. [Биографии](#Биографии) @@ -939,15 +938,6 @@ Schemaorgtype: DataCatalog + Рекомендуемые книги, по которым писал пакеты вопросов, смотрите в статье «[Зелёная Комната Эрика](../Erics-Rooms/Зелёная-Комната-Эрика)»; + Для информации о прочей литературе, которую хотелось бы иметь для работы над Комнатами, смотрите статью «[Поиск книг для Комнат Эрика](../Erics-Rooms/Поиск-книг-для-Комнат-Эрика)». - -# Доступ - -Подавляющую часть книг ниже Вы можете получить в электронном виде бесплатно, руководствуясь [следующими советами](../Erics-Rooms/Поиск-книг-для-Комнат-Эрика). - -Можно было бы сделать так, чтобы читатели могли ещё быстрее найти и скачать любую книгу из списка ниже. Однако для этого необходимо облачное хранилище объёмом не менее 100 гигабайт. На март 2020 мне известен лишь один сервис, бесплатно предоставляющий такие возможности — [Degoo](https://app.degoo.com). Однако в Degoo нельзя расшаривать папки, производить навигацию по файлам другого пользователя. Считаю, что по состоянию на март 2020 этот сервис не упростит нахождение читателями книг. - -Если у Вас имеются представления, как справиться с этой проблемой, пожалуйста [напишите мне](http://uid.me/sasha_chernykh). - # Вспомогательные diff --git "a/content/Special/\320\237\321\200\320\270\320\274\320\265\321\200\321\213-\320\277\320\276\320\270\321\201\320\272\320\260-\320\272\320\275\320\270\320\263.md" "b/content/Special/\320\237\321\200\320\270\320\274\320\265\321\200\321\213-\320\277\320\276\320\270\321\201\320\272\320\260-\320\272\320\275\320\270\320\263.md" index 8fecdaae..6aaf21b6 100644 --- "a/content/Special/\320\237\321\200\320\270\320\274\320\265\321\200\321\213-\320\277\320\276\320\270\321\201\320\272\320\260-\320\272\320\275\320\270\320\263.md" +++ "b/content/Special/\320\237\321\200\320\270\320\274\320\265\321\200\321\213-\320\277\320\276\320\270\321\201\320\272\320\260-\320\272\320\275\320\270\320\263.md" @@ -2,14 +2,13 @@ Title: Процесс поиска книг Version: 0.1.0 Author: Sasha Chernykh Date: 2019-09-09 11:46:08 -Modified: 2020-03-02 13:26:43 +Modified: 2020-09-30 20:19:38 Summary: Как подбираются книги для Комнат Эрика Pagetitle: Как подбираются книги для Комнат Эрика Pagecolors: giologica Asideimage: SashaBrazil Iconleftorright: left Tags: special, books-search -Table: standard Noco: 1ZTja7 Og_image: https://i.imgur.com/XExLevz.jpg Schemaorgtype: DataCatalog diff --git a/content/Sublime-Text/Sacagawea.md b/content/Sublime-Text/Sacagawea.md index 62867678..c2dc0713 100644 --- a/content/Sublime-Text/Sacagawea.md +++ b/content/Sublime-Text/Sacagawea.md @@ -2,24 +2,21 @@ Title: Sacagawea Version: 0.1.0 Author: Keith Hall Date: 2017-05-05 6:49:14 -Modified: 2020-09-18 19:46:18 +Modified: 2020-11-03 09:36:17 Lang: ru -Summary: Timer for Russian gingerinas. +Summary: Таймер для джинджерин “Что? Где? Когда?”, “Брейн Ринг” Pagetitle: Sacagawea -Metacontent: Таймер для джинджерин “Что? Где? Когда?”, “Брейн Ринг” Pagecolors: programs Asideimage: SashaChocolate Titleimage: true Titleimagename: NatalyaMindGames Epigraph: true -Epigraphtext: Посвящено Наталье Степуриной (Шмелёвой),
никогда не оставлявшую меня в трудную минуту.
Названо в честь Её игрового никнейма. +Epigraphtext: Посвящено [Наталье Степуриной (Шмелёвой)](https://vk.com/id152198389), + никогда не оставлявшую меня в трудную минуту. + Названо в честь [Её игрового никнейма](http://www.history.com/topics/native-american-history/sacagawea). Iconleftorright: right Tags: sublime-text, gingerinas, what-where-when Noco: 1g9b6 -Stylesheets: personal/ -Javascripts: personal/ -Tooltipster: true -Clipboardjs: true OpenGraphImage: https://i.imgur.com/cVITpm1.jpg Schemaorgtype: SoftwareApplication @@ -94,7 +91,7 @@ Sacagawea можно использовать, например, ведущем В активном окне Sublime Text 3: игрок нажимает Ctrl+Alt+Context_Menu — или (зная о [fuzzy-поиске](https://umaar.com/dev-tips/36-sublime-fuzzy-search/)) набирает в [command palette](https://www.youtube.com/watch?v=QDajzykRdn0) *Suricate: Sacagawea: Blitz/Supeblitz/Brain Ring* → раздаётся звук + открывается вкладка, где 20 секунд происходит обратный отсчёт времени, → за 10 секунд до окончания отсчёта раздаётся другой звук → спустя ещё 10 секунд таймер доходит до нуля + раздаётся третий звук + вкладка с таймером закрывается. -
+
При записи видео с экрана использовались следующие приложения: @@ -120,7 +117,7 @@ Sacagawea можно использовать, например, ведущем Скрипт автоматически выполняет следующие действия: нажимается пробел — клавишей Space в web-плейерах, которые знаю, останавливается воспроизведение видео, → Alt+Tab — [переключение между приложениями](https://support.microsoft.com/ru-ru/help/79869/pressing-alt-tab-to-switch-between-applications), — в Sublime Text запускается процесс, [описанный в разделе «Заявленное поведение»](#Заявленное-поведение), → вновь Alt+Tab → происходит возвращение во вкладку браузера со «Что? Где? Когда?». -
+
При записи видео с экрана помимо [вышеупомянутых](#Режим-БлицСуперблицБрейн-Ринг) использовались следующие приложения: @@ -175,7 +172,7 @@ Sacagawea можно использовать, например, ведущем → горячие клавиши активированы. -Если данные хоткеи задействованы в других Ваших плагинах или программах, можете их деактивировать. В активном окне Sublime Text: Ctrl+Shift+P (⌘⇧p для Mac) → *Suricate: Add Profile* → Enter → [Sacagawea](https://i.imgur.com/VNC1Kzs.png) → Enter. +Если данные хоткеи задействованы в других Ваших плагинах или программах, можете их деактивировать. В активном окне Sublime Text: Ctrl+Shift+P (⌘⇧p для Mac) → *Suricate: Add Profile* → Enter → Sacagawea → Enter. ### AutoHotkey diff --git a/content/Sublime-Text/SashaSublime.md b/content/Sublime-Text/SashaSublime.md index 1acc1858..343f4e12 100644 --- a/content/Sublime-Text/SashaSublime.md +++ b/content/Sublime-Text/SashaSublime.md @@ -1,17 +1,17 @@ Title: SashaSublime Tags: sublime-text Date: 2017-01-31 09:13:30 -Modified: 2020-09-18 08:48:20 +Modified: 2020-10-30 08:54:51 Lang: en -Status: published Author: Sasha Chernykh PageTitle: SashaSublime -Summary: Theme and color scheme for Sublime Text, where all colors have good visible

![Hex Viewer](https://i.imgur.com/c0t0Iqy.png)

![GoTo Anything](https://i.imgur.com/2hRinyv.png)

![JSON](https://i.imgur.com/N2LvbNZ.png) +Summary: Theme and color scheme for Sublime Text, where all colors have good visible + ![Hex Viewer](https://i.imgur.com/c0t0Iqy.png) + ![GoTo Anything](https://i.imgur.com/2hRinyv.png) + ![JSON](https://i.imgur.com/N2LvbNZ.png) Pagecolors: programs Asideimage: SashaChocolate IconLeftOrRight: right -Tooltipster: true -ClipboardJs: true Noco: 1g9b6 Og_image: https://i.imgur.com/ljT5eJp.png Schemaorgtype: SoftwareApplication @@ -728,7 +728,7 @@ After updates, SashaSublime your changes will lost. You will need to copy the mo ### Problem -Will update *SashaSublime.sublime-theme* and *SashaSublime.tmTheme* files, no *Example.sublime-theme* and *Example.tmTheme* files. You will not see updates, if you not select SashaSublime theme and scheme files. You will need to merge you changes from SashaSublime into your file, for example, via [Sublimerge 3](http://www.sublimerge.com/sm3/). +Will update *SashaSublime.sublime-theme* and *SashaSublime.tmTheme* files, no *Example.sublime-theme* and *Example.tmTheme* files. You will not see updates, if you not select SashaSublime theme and scheme files. You will need to merge you changes from SashaSublime into your file, for example, via Sublimerge 3. # Known defects @@ -804,41 +804,6 @@ After the Sublime Text 3 updates, settings of the color theme [can get off](http If the icon for your markup language or a programming language is absent in SashaSublime, you can add it independently, having carried out the [these instructions](http://ru.stackoverflow.com/a/544861/199934) or to ask me. - -# Donate - - -## Bitcoin - -[![Bitcoin Donate Button]({static}/images/donate_files/Bitcoin-Donate-button.png)]({static}/images/donate_files/Bitcoin-HTML-Redirect.html) - -See [my answer](http://bitcoin.stackexchange.com/a/48744/41598) to Bitcoin Stack Exchange, if you want to know how to make the same button. If you Bitcoin client not supported [standard bitcoin schema URI](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki), my Bitcoin address is: - -```shell -17uctxtsWG3gpyAy6iJ8AVd5rdSjkJH2 -``` - - -## Litecoin - -[![Litecoin Donate Button]({static}/images/donate_files/Litecoin-Donate-button.png)]({static}/images/donate_files/Litecoin-HTML-Redirect.html) - -If you Litecoin client not supported Litecoin schema URI, my Litecoin address is: - -```shell -LLVvhNKGMLGHa8QmeRrBsjZUBjSpQMjUkP -``` - - -## Paypal $ - -[![PayPal Dollar button]({static}/images/donate_files/PayPal-Donate-Button-Dollar.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W6MP468ZZV66Q) - - -## Paypal € - -[![PayPal Euro button]({static}/images/donate_files/PayPal-Donate-Button-Euro.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DGT7K29LDD2HQ) - # License diff --git a/content/Sublime-Text/Sublime-Text-Power-User-notes.md b/content/Sublime-Text/Sublime-Text-Power-User-notes.md index 55b773b9..6cbdeaa5 100644 --- a/content/Sublime-Text/Sublime-Text-Power-User-notes.md +++ b/content/Sublime-Text/Sublime-Text-Power-User-notes.md @@ -1,6 +1,6 @@ Title: Sublime-Text-Power-User-notes Date: 2017-02-13 19:15:15 -Modified: 2019-05-23 14:46:03 +Modified: 2020-09-22 12:00:02 Lang: en Author: Sasha Chernykh Summary: Notes of book “Sublime Text Power User” @@ -90,14 +90,14 @@ On [https://johnblackbourn.com/sublimecodeintel-st3](https://johnblackbourn.com/ ## 50 --(std in) solely for OSX users, see [unofficial documentation](http://docs.sublimetext.info/en/latest/command_line/command_line.html#invocations), but in the book of it isn't specified. +-(std in) solely for OSX users, see [unofficial documentation](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/command_line/command_line.html#invocations), but in the book of it isn't specified. ## 52 > -aor --add: Add the current file or folder to the active/last used sublime text window -This command is solely for folders, but not for files, see [unofficial documentation](http://docs.sublimetext.info/en/latest/command_line/command_line.html#options) . subl -a ExampleFolder add folder ExampleFolder in current window, subl ExampleFolder in new window. But subl -a test.txt = subl test.txt, both of these commands open a test.txt file in a new tab of the active window. The example below is also incorrect. +This command is solely for folders, but not for files, see [unofficial documentation](https://sublime-text-unofficial-documentation.readthedocs.io/en/latest/command_line/command_line.html#options) . subl -a ExampleFolder add folder ExampleFolder in current window, subl ExampleFolder in new window. But subl -a test.txt = subl test.txt, both of these commands open a test.txt file in a new tab of the active window. The example below is also incorrect. ## 68 diff --git a/content/Sublime-Text/ValeriyaSpeller.md b/content/Sublime-Text/ValeriyaSpeller.md index 2604a802..e6ecd120 100644 --- a/content/Sublime-Text/ValeriyaSpeller.md +++ b/content/Sublime-Text/ValeriyaSpeller.md @@ -2,9 +2,10 @@ Title: ValeriyaSpeller Version: 0.1.0 Author: Sasha Chernykh Date: 2017-04-03 11:17:14 -Modified: 2019-05-23 14:46:46 +Modified: 2020-10-28 13:36:21 Lang: en -Summary: yaspeller implementation for Sublime Text

![ValeriyaSpeller](https://i.imgur.com/bqRl8eD.png) +Summary: yaspeller implementation for Sublime Text + ![ValeriyaSpeller](https://i.imgur.com/bqRl8eD.png) Pagetitle: ValeriyaSpeller Pagecolors: programs Asideimage: SashaChocolate @@ -13,23 +14,16 @@ Titleimagename: ValeriaEarring Iconleftorright: right Tags: sublime-text, yaspeller Noco: 1g9b6 -Tooltipster: true -Clipboardjs: true +Epigraph: true +Epigraphtext: i express my gratitude to Her + for everything She has done for me. + ValeriyaSpeller devote to + my Hero, Angel and Savior + perfect fan of [Goddess](https://vk.com/psychologist_kira_k), + [Valeria Zveginceva](https://vk.com/v.alprech) OpenGraphImage: https://i.imgur.com/iciGBgN.jpg Schemaorgtype: SoftwareApplication -
-i express my gratitude to Her
-for everything She has done for me.
-ValeriyaSpeller devote to
-my Hero, Angel and Savior
-perfect fan of Goddess -
- -
- # Briefly Russian-language spellchecker for Sublime Text. @@ -74,7 +68,7 @@ ValeriyaSpeller highlight/output typos in next types of files: + LaTeX, + Comments in any language. -Note: ValeryaLinter must work in most cases. If no, [your syntax](https://www.sublimetext.com/docs/3/syntax.html) don't have any of these [scopes](https://www.sublimetext.com/docs/3/scope_naming.html) — `text.html.markdown`, `text.plain`, `text.tex.latex`, `comment`. +Note: ValeryaLinter must work in most cases. If no, [your syntax](https://www.sublimetext.com/docs/3/syntax.html) don’t have any of these [scopes](https://www.sublimetext.com/docs/3/scope_naming.html) — `text.html.markdown`, `text.plain`, `text.tex.latex`, `comment`. After installation open any of these files → and see: @@ -132,7 +126,7 @@ yaspeller --check-yo --find-repeat-words --ignore-digits --ignore-latin --ignore # Known problems and issues -1. SublimeLinter [don't work with unsaved buffers](https://github.com/SublimeLinter/SublimeLinter3/issues/545), it use [`#!python file_name()` method, not `#!python id()` method](https://www.sublimetext.com/docs/3/api_reference.html#sublime.View). +1. SublimeLinter [don’t work with unsaved buffers](https://github.com/SublimeLinter/SublimeLinter3/issues/545), it use [`#!python file_name()` method, not `#!python id()` method](https://www.sublimetext.com/docs/3/api_reference.html#sublime.View). **If you may to solve these problems, please tell me about it. Pull requests welcome!** You also can add your `+1` comment in any issue of this list. @@ -141,7 +135,7 @@ yaspeller --check-yo --find-repeat-words --ignore-digits --ignore-latin --ignore For English and Russian: 1. [LanguageTool](https://packagecontrol.io/packages/LanguageTool), -1. [Dictionaries](https://packagecontrol.io/packages/LanguageTool) — [Russian-English bilingual dictionary](https://github.com/titoBouzout/Dictionaries/pull/68), +1. [Dictionaries](https://github.com/titoBouzout/Dictionaries) — [Russian-English bilingual dictionary](https://github.com/titoBouzout/Dictionaries/pull/68), 1. [write-good](https://packagecontrol.io/packages/SublimeLinter-contrib-write-good), 1. [Thesaurus](https://packagecontrol.io/packages/Thesaurus). diff --git a/budget.json b/content/extra/budget.json similarity index 86% rename from budget.json rename to content/extra/budget.json index aee209eb..c981259b 100644 --- a/budget.json +++ b/content/extra/budget.json @@ -1,24 +1,24 @@ -[ -{ - "resourceSizes": [ - { - "resourceType": "document", - "budget": 50 - }, - { - "resourceType": "stylesheet", - "budget": 70 - }, - { - "resourceType": "font", - "budget": 200 - }, - { - "resourceType": "image", - "budget": 400 - }, - { - "resourceType": "script", - "budget": 200 - }] -}] +[ +{ + "resourceSizes": [ + { + "resourceType": "document", + "budget": 50 + }, + { + "resourceType": "stylesheet", + "budget": 70 + }, + { + "resourceType": "font", + "budget": 200 + }, + { + "resourceType": "image", + "budget": 150 + }, + { + "resourceType": "script", + "budget": 200 + }] +}] diff --git a/content/extra/opensearch.xml b/content/extra/opensearch.xml index f316c567..319581b7 100644 --- a/content/extra/opensearch.xml +++ b/content/extra/opensearch.xml @@ -1,5 +1,5 @@ - + diff --git a/grunt/aliases.yaml b/grunt/aliases.yaml index e9baebdd..4b09dcea 100644 --- a/grunt/aliases.yaml +++ b/grunt/aliases.yaml @@ -46,6 +46,7 @@ publish: - 'concurrent:tarp11' - 'concurrent:tarp12' - 'concurrent:tarp13' +- 'concurrent:tarp14' # [INFO] Publish without updating onlypublish: @@ -62,6 +63,7 @@ onlypublish: - 'concurrent:tarp11' - 'concurrent:tarp12' - 'concurrent:tarp13' +- 'concurrent:tarp14' # [INFO] Add, commit and push to GitHub git: @@ -87,6 +89,7 @@ validate: validatedev: - 'concurrent:tard1' - 'concurrent:tard2' +- 'concurrent:tard3' # [INFO] Continuous integration, not local remote: diff --git a/grunt/checkPages.coffee b/grunt/checkPages.coffee new file mode 100644 index 00000000..4edd4ebb --- /dev/null +++ b/grunt/checkPages.coffee @@ -0,0 +1,175 @@ +############### +# check-pages # +############### +### +[PURPOSE] Check dead and incorrect links: +https://www.npmjs.com/package/check-pages +https://dlaa.me/blog/post/gruntcheckpages +[INFO] Grunt implementation: +https://www.npmjs.com/package/grunt-check-pages +[INFO] Options: +https://www.npmjs.com/package/check-pages#options + +[NOTE] check-pages doesn’t check anchors: +https://github.com/DavidAnson/check-pages/issues/10 +### +module.exports = (grunt) -> + + ### + [INFO] Get all HTML files list use it as variable, if + building object dynamically not supported for specific option: + https://stackoverflow.com/a/54551148/5951529 + https://gruntjs.com/configuring-tasks#building-the-files-object-dynamically + + [NOTE] These functions will not work, if we’re placed them + to “Gruntfile.coffee” or “templates.coffee”; + For example, it doesn’t work in “templates.coffee”: + kira_all_html: -> + grunt.file.expand "<%= templates.yamlconfig.OUTPUT_PATH %>/*.html" + kira_all_html_template: "<%= templates.kira_all_html() %>" + # [LEARN][JAVASCRIPT] Convert comma-separated string to array: + # https://stackoverflow.com/a/2858130/5951529 + kira_all_html_array: -> + # [LEARN][GRUNT] Get configuration value: + # https://www.nglesson.com/Livres/GettingStartedWithGrunt.pdf#page=64 + # [INFO] “grunt.config” = “grunt.config.get”, if one argument passed: + # https://gruntjs.com/api/grunt.config#grunt.config + grunt.config("templates.kira_all_html_template").split(",") + kira_all_html_array_template: ["<%= templates.kira_all_html_array() %>"] + kira_all_html_localhost: -> + grunt.config("templates.kira_all_html_array_template").map((i) -> + "http://localhost:4147/" + i + ) + + Grunt will not recognize “kira_all_html” and any subsequent variables as arrays + + [FIXME] Enable these functions for grunt-check-console and grunt-pageres, + not specifically for grunt-check-pages + + [FIXME] Direct path name “output” required; + if “<%= templates.yamlconfig.OUTPUT_PATH %>”, checkPages will not work + ### + kira_all_html = -> + grunt.file.expand "output/**/*.html" + + ### + [LEARN][JAVASCRIPT] Add text before each element of array: + https://stackoverflow.com/a/33079773/5951529 + ### + kira_all_html_localhost = -> + kira_all_html().map((kira_web_page) -> + "http://localhost:4147/" + kira_web_page + ) + + development: + options: + ### + [INFO] Wildcards are not supported; + [REQUIRED] “http”, “https” or “file” protocol: + https://www.npmjs.com/package/check-pages#pageurls + + Therefore, I add “kira_all_html_localhost()” function + for check all my articles and pages. + ### + pageUrls: kira_all_html_localhost() + + ### + [INFO] Check all links in pages for validity: + https://www.npmjs.com/package/check-pages#checklinks + ### + checkLinks: true + + ### + [INFO] URLs that should be ignored by check-pages: + https://www.npmjs.com/package/check-pages#linkstoignore + + [FIXME][ISSUE] checkPages show error for Cyrillic links as + “http://журнальныймир.рф/avtor/savchenko-boris” + ### + linksToIgnore: ["http://localhost:4147/output/Erics-Rooms/\ + %D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%D0%BC%D0%B8%D1%80.%D1%80%D1%84/avtor/savchenko-boris"] + + ### + [INFO] Identify placeholder links as “”, that haven’t be updated: + https://www.npmjs.com/package/check-pages#noemptyfragments + ### + noEmptyFragments: true + + ### + [INFO] Fail if link to localhost are encountered; + this option detect temporary links from development. + Use it in production, not in development: + https://www.npmjs.com/package/check-pages#nolocallinks + ### + noLocalLinks: false + + ### + [INFO] Fail task, if any redirect are encountered: + https://www.npmjs.com/package/check-pages#noredirects + ### + noRedirects: true + + ### + [INFO] Check solely internal, not third-party links: + https://www.npmjs.com/package/check-pages#onlysamedomain + ### + onlySameDomain: true + + ### + [INFO] Fail task, if we use HTTP link, when https is also valid: + https://www.npmjs.com/package/check-pages#prefersecure + ### + preferSecure: true + + ### + [INFO] Verify links with file hashes as “styles.css?md5=4f47458e34bc855a46349c1335f58cc3”: + https://www.npmjs.com/package/check-pages#queryhashes + ### + queryHashes: true + + ### + [INFO] Verifies the HTTP Cache-Control and ETag response headers are present and valid: + https://www.npmjs.com/package/check-pages#checkcaching + + [FIXME][ISSUE] “checkCaching”, “checkXhtml” and “checkCompression” + works incorrectly on localhost. + Therefore, “false” + ### + checkCaching: false + + ### + [INFO] Parse each URL’s content as XHTML: + https://www.npmjs.com/package/check-pages#checkxhtml + ### + checkXhtml: false + + ### + [INFO] Verifies the HTTP Content-Encoding response header is present and valid + https://www.npmjs.com/package/check-pages#checkcompression + ### + checkCompression: false + + ### + [INFO] Show summary results after all checks: + https://www.npmjs.com/package/check-pages#summary + ### + summary: true + + ### + [INFO] Brief overview instead of default verbose output: + https://www.npmjs.com/package/check-pages#terse + ### + terse: false + + ### + [INFO] Maximum time in milliseconds (not seconds) a page request can take a finish downloading: + https://www.npmjs.com/package/check-pages#maxresponsetime + ### + maxResponseTime: 7000 + + ### + [INFO] Custom User-Agent: + https://www.npmjs.com/package/check-pages#useragent + https://www.whoishostingthis.com/tools/user-agent/ + ### + # userAgent: "default" diff --git a/grunt/clean-console.coffee b/grunt/clean-console.coffee index 89fb566a..984663a0 100644 --- a/grunt/clean-console.coffee +++ b/grunt/clean-console.coffee @@ -17,7 +17,7 @@ module.exports = options: # [FIXME] Check all URLs instead of specific, when fix Pelican categories and tags: # https://stackoverflow.com/q/54388924/5951529 - # url: ["<%= templates.getFiles() %>"] + # url: ["<%= templates.all_html_array %>"] # [BUG] Not include index.html, due to AdSense scripts: # https://github.com/Kristinita/SashaMiscellaneous/issues/20 # [BUG] Non-ASCII symbols in path doesn't support; URL decoding required; @@ -40,5 +40,5 @@ module.exports = %D0%9D%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BD%D0%B5%D0%B4%D0%BE%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5\ -%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5.html" "http://localhost:4147/<%= templates.yamlconfig.OUTPUT_PATH %>/Sublime-Text/Sacagawea.html"] - # Second to wait any error + # [INFO] Second to wait any error timeout: 4 diff --git a/grunt/concurrent.coffee b/grunt/concurrent.coffee index 43f64e16..6d0256b7 100644 --- a/grunt/concurrent.coffee +++ b/grunt/concurrent.coffee @@ -1,15 +1,20 @@ ###################### ## grunt-concurrent ## ###################### -# Run multiple tasks: -# https://www.npmjs.com/package/grunt-concurrent +### +[ACTION] Run multiple tasks: +https://www.npmjs.com/package/grunt-concurrent +### + + ################# ## grunt-newer ## ################# -# grunt-newer -# Run task, if src files change. -# https://www.npmjs.com/package/grunt-newer -# https://www.html5rocks.com/en/tutorials/tooling/supercharging-your-gruntfile/#toc-buildtime +### +[ACTION] Run task, if src files change: +https://www.npmjs.com/package/grunt-newer +https://www.html5rocks.com/en/tutorials/tooling/supercharging-your-gruntfile/#toc-buildtime +### module.exports = options: @@ -37,12 +42,12 @@ module.exports = tarb3: ['newer:coffee' 'newer:stylus'] tarb4: ['clean'] - # [FIXME] grunt-newer doesn't work with purifycss: + # [FIXME] grunt-newer doesn't work with purgecss: # Warning: Cannot read property 'forEach' of undefined Use --force to continue. - # https://github.com/purifycss/grunt-purifycss/issues/26 + # https://github.com/purgecss/grunt-purgecss/issues/26 tarb5: ['curl' 'newer:string-replace' - 'purifycss'] + 'newer:purgecss'] tarb6: ['shell:tidymodify'] tarb7: ['newer:postcss:build'] tarb8: ['shell:eclintfix'] @@ -73,9 +78,6 @@ module.exports = # Don't use “newer” for “move”! Files from “root-html” doesn't move. # Don't use “newer” with “realFavicon”! “index.html” will not changed! tarp3: ['license_finder' - # [DONE] - # [FIXME] realFavicon doesn't work after upgrade to Node.js 12: - # https://github.com/RealFaviconGenerator/grunt-real-favicon/issues/46 'realFavicon' 'humans_txt' 'robotstxt' @@ -94,30 +96,38 @@ module.exports = tarp7: ['clean' 'curl' 'imagemin' - 'purifycss'] + 'purgecss'] tarp8: ['shell:tidymodify' 'postcss:build' 'uglify'] - tarp9: ['cssnano' - 'critical'] + tarp9: ['cssnano'] tarp10: ['cacheBust'] - tarp11: ['htmlmin'] - tarp12: ['shell:eclintfix'] - tarp13: ['notify:publish'] + tarp11: ['critical'] + tarp12: ['htmlmin'] + tarp13: ['shell:eclintfix'] + tarp14: ['notify:publish'] ### For updating dependencies, “target update”. ### taru1: [ + # [DONE] + # [PATCH] https://github.com/seaneking/poststylus/pull/28 + # [FIXME] PostStylus doesn’t work after # Autoprefixer update to version 10: # https://github.com/postcss/autoprefixer/issues/1358 # https://github.com/postcss/autoprefixer/releases/tag/10.0.0 + # [FIXME] grunt-critical works too slow after upgrade to 2.0.0; # 1.1.3 — 1m42s # 2.0.0 — 21m31s # I downgraded it, because AppVeyor hangs: # https://ci.appveyor.com/project/Kristinita/kristinitapelican/build/job/9pr390t692pr65oa#L2999 + # [NOTE] grunt-critical + grunt-pageres + grunt-load-config issue: + # https://github.com/bezoerb/grunt-critical/issues/65 + + # [DONE] # [FIXME] grunt-cwebp doesn’t convert images to webp in 3.0.1; # I downgraded it: # https://github.com/1000ch/grunt-cwebp/issues/14 @@ -133,50 +143,51 @@ module.exports = For validating sources, “target sources”. ### tars1: ['coffeelint:configs' - # [DONE] - # [FIXME] - # content.trimEnd is not a function - # https://travis-ci.org/github/Kristinita/KristinitaPelican/jobs/702631558#L1948-L1950 'markdownlint' - # [DONE] - # [FIXME] “.remarkrc.yaml” doesn't work 'remark' 'shell:bashate'] ### For validating output, “target validate”. - - [DONE] - [FIXME] “html-nu” temporary disabled, because footnotes obsolete syntax: - https://github.com/Python-Markdown/markdown/issues/768 - https://travis-ci.org/Kristinita/KristinitaPelican/jobs/471091236#L1220 ### tarv1: ['coffeelint:site' - # [DONE] - # [FIXME] “space: none” 'html-nu' 'path_validator' 'postcss:lint' 'shell:tidyvalidate' 'stylelint' 'stylint'] - tarv2: ['csslint' + tarv2: [ + # [DEPRECATED] CSSLint is abandoned; + # I can’t ignore CSS parts with variables. + # https://github.com/CSSLint/csslint/issues/720 + # https://github.com/CSSLint/csslint/issues/682 + # 'csslint' 'shell:eclintcheck'] tarv3: ['notify:validate'] + ### - For validating only in development mode, “target validate development”. + For validating solely in development mode, “target validate development”. - [NOTE] clean-console only for development: + [INFO] I haven’t combined the tasks, because “clean-console” and “pageres” is multiprocessor + and can take up a lot of CPU. + + [NOTE] clean-console solely for development: Site developer can create new files → absolute links will not works in production → - clean-console will shown errors. So only for development. + clean-console will shown errors. Therefore, solely for development. [NOTE] clean-console works with http-server — “grunt http-server clean-console”. See “clean-console.coffee” for details. ### - tard1: ['clean-console' - # [NOTE] Files by absolute paths may not exists - 'pageres'] - tard2: ['notify:validate'] + tard1: ['clean-console'] + tard2: ['checkPages'] + ### + [FIXME] pageres doesn’t work with grunt-critical: + https://github.com/bezoerb/grunt-critical/issues/65 + + tard3: ['pageres'] + ### + tard3: ['notify:validate'] ### For Continuous Integration tasks, “target remote”. @@ -192,9 +203,11 @@ module.exports = 'shell:shellcheck'] tarr2: ['notify:validate'] + ### - [FIXME] “travis lint -x” successfully works for me, - but after “shell:travislint” command prompt hangs + [BUG] “travis lint -x” successfully works for me, + but after “shell:travislint” command prompt hangs: + https://github.com/sindresorhus/grunt-shell/issues/121 ### ### [DONE] @@ -208,6 +221,7 @@ module.exports = ### # tarr2: ['shell:travislint'] + ### For Travis CI specific tasks, not for local or another CI — “target travis”. If task in this section, please, give reasons, why not local or another CI: @@ -232,21 +246,19 @@ module.exports = ### tarna1: ['htmlhint' 'htmllint' + # [DONE] # [FIXME] AttributeError: module 'isort' has no attribute 'SortImports' - # 'pylint' + 'pylint' ] tarna2: ['notify:validate'] ### For tasks after site deploy — “target after deploy”: [INFO] PageSpeed require remote site; - I can't fix “Serve static assets with an efficient cache policy” for localhost + I can’t fix “Serve static assets with an efficient cache policy” for localhost ### tarad1: [ - # [NOTE] “shell:shellcheck” not needed here! - # Delete it after pagespeed will fixed! - 'shell:shellcheck' - # [FIXME] Bug “Warning: Expected a string” - # 'pagespeed' + # [PATCH] https://github.com/jrcryer/grunt-pagespeed/pull/36 + 'pagespeed' ] tarad2: ['notify:validate'] diff --git a/grunt/critical.coffee b/grunt/critical.coffee index 1d43feec..8a52f7db 100644 --- a/grunt/critical.coffee +++ b/grunt/critical.coffee @@ -2,24 +2,31 @@ # critical # ############ ### -Inline critical CSS for PageSpeed Insights: + +[INFO] Inline critical CSS for PageSpeed Insights: https://www.npmjs.com/package/critical http://prgssr.ru/development/razbiraemsya-s-kritichnym-css.html https://medium.com/web-standards/critical-and-progressive-css-d6611f034d7d -Grunt wrapper: +https://web.dev/preload-critical-assets/ + +[INFO] Grunt wrapper: https://www.npmjs.com/package/grunt-critical -Penthouse: + +[INFO] Penthouse: https://www.npmjs.com/package/penthouse https://www.npmjs.com/package/grunt-penthouse + [NOTE] Doesn't need special “mobile” critical CSS: https://github.com/pocketjoso/penthouse/issues/171#issuecomment-320516807 I use default 1300/900 size. -Options: + +[INFO] Options: https://www.npmjs.com/package/critical#usage https://www.npmjs.com/package/critical#options -[NOTE] Critical use Penthouse + Puppeteer, but I don't use Penthouse direct, because Critical +[NOTE] Critical use Penthouse + Puppeteer, but I don’t use Penthouse direct, because Critical automatically inject CSS to HTML: https://www.npmjs.com/package/critical#when-should-i-just-use-penthouse-directly + [NOTE] CSS should be duplicated in external CSS document: 1. Cache in external CSS 2. Problems with multiple HTML, linked to single CSS diff --git a/grunt/csslint.coffee b/grunt/csslint.coffee index e73d9309..00de691d 100644 --- a/grunt/csslint.coffee +++ b/grunt/csslint.coffee @@ -1,28 +1,36 @@ ########### # csslint # ########### -# Linter for CSS: -# http://csslint.net/ -# Grunt wrapper: -# https://www.npmjs.com/package/grunt-contrib-csslint -# Rules: -# https://github.com/CSSLint/csslint/wiki/Rules -# Grunt options: -# https://www.npmjs.com/package/grunt-contrib-csslint#csslint-task -# [INFO] Ignoring parts of CSS during linting: -# https://github.com/CSSLint/csslint/wiki/Ignoring-parts-of-CSS-during-linting -# [NOTE] Isn't possible ignore specific rules for specific lines: -# https://stackoverflow.com/questions/29248792#comment103080092_35260823 -# [NOTE] Stylus single-line buffered comments doesn't worked for -# CSSLint ignore rules per line; they still removed: -# http://stylus-lang.com/docs/comments.html#multi-line-buffered -# https://github.com/CSSLint/csslint/wiki/Ignoring-parts-of-CSS-during-linting#ignoring-rules-per-line +### +[OVERVIEW] Linter for CSS: +http://csslint.net/ + +[INFO] Grunt wrapper: +https://www.npmjs.com/package/grunt-contrib-csslint + +[INFO] Rules: +https://github.com/CSSLint/csslint/wiki/Rules + +[INFO] Grunt options: +https://www.npmjs.com/package/grunt-contrib-csslint#csslint-task + +[INFO] Ignoring parts of CSS during linting: +https://github.com/CSSLint/csslint/wiki/Ignoring-parts-of-CSS-during-linting + +[NOTE] Isn’t possible ignore specific rules for specific lines: +https://stackoverflow.com/questions/29248792#comment103080092_35260823 + +[NOTE] Stylus single-line buffered comments doesn’t worked for +CSSLint ignore rules per line; they still removed: +http://stylus-lang.com/docs/comments.html#multi-line-buffered +https://github.com/CSSLint/csslint/wiki/Ignoring-parts-of-CSS-during-linting#ignoring-rules-per-line +### module.exports = options: csslintrc: '.csslintrc' lint: # [NOTE] “files” object doesn't work src: [ - "<%= templates.yamlconfig.OUTPUT_PATH %>/**/*.css" - "!<%= templates.yamlconfig.OUTPUT_PATH %>/**/*.min*css" - ] + "<%= templates.yamlconfig.OUTPUT_PATH %>/**/*.css" + "!<%= templates.yamlconfig.OUTPUT_PATH %>/**/*.min*css" + ] diff --git a/grunt/cssnano.coffee b/grunt/cssnano.coffee index 2d72ce4e..862889bd 100644 --- a/grunt/cssnano.coffee +++ b/grunt/cssnano.coffee @@ -1,14 +1,19 @@ ########### # cssnano # ########### -# CSS minifier: -# http://cssnano.co/ -# https://www.npmjs.com/package/grunt-cssnano -# Rules: -# http://cssnano.co/guides/optimisations/ -# [NOTE] Delete “.beautified.css” files! cssnano incorrectly minify “.css” files, example: -# Files: output/theme/css/general/basic.beautified.css, output/theme/css/general/basic.css -> -# output/theme/css/general/basic.min.css +### +CSS minifier: +http://cssnano.co/ +https://www.npmjs.com/package/grunt-cssnano +Rules: +http://cssnano.co/guides/optimisations/ + +[INFO] CSS minification benchmark: +https://goalsmashers.github.io/css-minification-benchmark/ +[NOTE] Delete “.beautified.css” files! cssnano incorrectly minify “.css” files, example: +Files: output/theme/css/general/basic.beautified.css, output/theme/css/general/basic.css -> +output/theme/css/general/basic.min.css +### module.exports = options: # [LEARN][CSS][JAVASCRIPT] Sourcemaps diff --git a/grunt/cwebp.coffee b/grunt/cwebp.coffee index f35c495f..4da8d4d8 100644 --- a/grunt/cwebp.coffee +++ b/grunt/cwebp.coffee @@ -1,20 +1,14 @@ ############### # grunt-cwebp # ############### -# Convert images to webp: +# [PURPOSE] Convert images to webp: # https://www.npmjs.com/package/grunt-cwebp +# Options (grunt-cwebp supports cwebp options): +# https://developers.google.com/speed/webp/docs/cwebp#options module.exports = dynamic: - options: - ### - # [NOTE] If “true”: - # 1. src file will overwrite - # 2. extension will the former, not “.webp” - # I don’t recommend it. - ### - sameExt: false ### - [NOTE] Don't use "<%= templates.paths.images %>", because it includes svg and gif, that + [NOTE] Don’t use "<%= templates.paths.images %>", because it includes svg and gif, that not convert to webp ### files: [ diff --git a/grunt/deprecated.coffee b/grunt/deprecated.coffee index 337a909f..f6859f4c 100644 --- a/grunt/deprecated.coffee +++ b/grunt/deprecated.coffee @@ -5,12 +5,23 @@ # Save, because possibly I can use them again. +# [FIXME] Re-install grunt-eslint, when I will have a time: +# ################ +# # grunt-eslint # +# ################ +# module.exports = +# options: +# maxWarnings: 40 +# lint: +# files: "<%= templates.paths.js %>" + + # ################### # ## grunt-pelican ## # ################### # # Pelican tasks from Grunt # # https://www.npmjs.com/package/grunt-pelican -# # [WARNING] Pipenv doesn't work in Grunt Pelican +# # [WARNING] Pipenv doesn’t work in Grunt Pelican: # # https://github.com/chuwy/grunt-pelican/issues/4 # pelican: # options: @@ -46,7 +57,7 @@ ######################## ## grunt-text-replace ## ######################## -# # [DEPRECATED] grunt-string-replace active maintained +# # [DECLINED] grunt-string-replace active maintained # # https://www.npmjs.com/package/grunt-string-replace # # Replace text, using regex # # https://github.com/yoniholmes/grunt-text-replace @@ -90,14 +101,18 @@ # ] +# [DECLINED] Currently, I don’t need posthtml plugins # #################### # ## grunt-posthtml ## # #################### # # PostHTML wrapper for Grunt: # # https://www.npmjs.com/package/grunt-posthtml # # https://www.npmjs.com/package/posthtml -# # [BUG] Any PostHTML plugin doesn't work for me, details: +# # [NOTE] Any default PostHTML plugin doesn't work for me, details: # # https://github.com/TCotton/grunt-posthtml/issues/3 +# # [INFO] Use grunt-juwain-posthtml, it fix this problem: +# # https://github.com/posthtml/grunt-posthtml/issues/3 +# # https://www.npmjs.com/package/grunt-juwain-posthtml # posthtml: # options: # use: [ @@ -105,13 +120,11 @@ # require('posthtml-doctype')(doctype : 'HTML 4.01 Frameset') # require('posthtml-alt-always')() # ] -# build: +# single: # files: [ -# expand: true -# cwd: 'output/Sublime-Text' -# src: '**/*.html' -# dest: 'output/Sublime-Text/tmp' -# ] +# src: '<%= templates.yamlconfig.OUTPUT_PATH %>/Programs/KristinitaLuckyLink.html' +# dest: '<%= templates.yamlconfig.OUTPUT_PATH %>/Programs/KristinitaLuckyLink.html' +# ] # #################### @@ -592,3 +605,270 @@ # # src: "<%= templates.yamlconfig.OUTPUT_PATH %>/Books-Reviews/Как-читать-архитектуру.html" # # dest: "." # # ] + + +# [DEPRECATED] +# [BUG] Checker works incorectly with encoded URLs, see examples: +# Another users: +# https://github.com/ChrisWren/grunt-link-checker/issues/28 +# Me: +# “>> Resource not found linked from https://kristinita.netlify.app/opensearch.xml +# to https://kristinita.netlify.app/favicon16%C3%9716.ico” +# ################ +# # link-checker # +# ################ +# ### +# [PURPOSE] Check links via node-simplecrawler: +# https://github.com/chriswren/grunt-link-checker +# https://www.npmjs.com/package/simplecrawler +# ### +# module.exports = +# development: +# site: "kristinita.netlify.app" +# options: +# checkRedirect: true +# noFragment: false + + +# [DEPRECATED] grunt-crawl doesn’t support the newest Node.js and Grunt versions: +# https://github.com/mradcliffe/grunt-crawl/pull/15 +# ############### +# # grunt-crawl # +# ############### +# ### +# [INFO] Grunt crawler; possibly, check URLs: +# https://www.npmjs.com/package/grunt-crawl +# +# [NOTE] markdown-link-check tool doesn’t support internal links: +# https://github.com/tcort/markdown-link-check +# Example: +# [✖] ../Special/Полная-библиография#Открытость → Status: 400 +# ### +# module.exports = +# myapp: +# options: +# baseUrl: "http://localhost:4147/" +# contentDir: "output" + + +# [FIXME][ISSUE] 2 problems: +# 1. grunt-blank audit failed, but manually with (TreeSize Free) review shows, +# that I haven’t files < 2 bytes +# 2. grunt-blank doesn’t show, which files lower that 2 bytes. +# ############### +# # grunt-blank # +# ############### +# # [PURPOSE] Check files with size lower than “minBytes”: +# # https://www.npmjs.com/package/grunt-blank +# module.exports = +# options: +# minBytes: 2 +# task: +# src: [ +# "<%= templates.yamlconfig.CONTENT_PATH %>" +# "<%= templates.yamlconfig.THEME_STATIC_DIR %>" +# ] + + +# [DECLINED] The project no longer maintained since 2018: +# https://github.com/purifycss/purifycss/issues/213 +# I migrate to PurgeCSS. +# ##################### +# ## grunt-purifycss ## +# ##################### +# ### + +# [OVERVIEW] Remove unused CSS for kristinita.netlify.app design: +# https://www.npmjs.com/package/purify-css +# https://www.npmjs.com/package/grunt-purifycss + +# [NOTE] Needs separate task for each style. Because theme use different styles: + +# [BUG] Doesn’t work with grunt-newer: +# https://github.com/purifycss/grunt-purifycss/issues/30 +# ### +# module.exports = +# options: +# ### +# [WARNING] PurifyCSS support elements, that include simply methods. +# Example:
in HTML; +# .SashaClass { color: black } in CSS; +# If elements generated by JavaScript, PurifyCSS doesn’t work: +# https://github.com/purifycss/purifycss/issues/194 +# ### +# whitelist: [ +# # [WARNING] Don't use multiline comments inside list! +# # Coffeelint will show “unexpected newline” error: +# # No issue, because coffeelint not maintained at March, 2019: +# # https://github.com/clutchski/coffeelint/issues +# # [INFO] Wildfire classes +# # [INFO] “div” for parent classes not required. +# # [FIXME] Migrate to PurgeCSS, that not add each Wildfire class separately: +# # https://github.com/FullHuman/grunt-purgecss/issues/9 +# ".animate-flicker" +# ".ivu-modal-body" +# ".ivu-btn" +# ".ivu-tabs-tabpane" +# # [NOTE] Adjoining classes required in this case. +# ".wf.wf-theme-dark" +# ".ivu-btn-primary" +# ".wf-separator" +# ".wf-no-content-tip" +# ":not(.v-transfer-dom)" +# ".ivu-menu-submenu-title-icon" +# ".ivu-input-wrapper" +# ".wf-post-btn" +# ".ivu-menu-horizontal" +# ".ivu-menu-light" +# ".ivu-icon-heart-broken" +# ".ivu-icon-heart" +# ".wf-inactive" +# ".ivu-icon-at" +# ".ivu-menu-item-selected" +# ".ivu-menu" +# "svg" +# # [INFO] Tooltipster classes. +# # [NOTE] Use parent classes: +# # For: +# # .tooltipster-punk-aquamarine .tooltipster-box +# # .tooltipster-punk-purple .tooltipster-box +# # “.tooltipster-box” in “whitelist” option will not works +# ".tooltipster-punk-purple .tooltipster-box" +# ".tooltipster-punk-aquamarine .tooltipster-box" +# ] +# indextarget: +# src: ["<%= templates.yamlconfig.OUTPUT_PATH %>/index.html"] +# css: ["<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/kristinita.css"] +# dest: "<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/kristinita.css" +# sublimetexttarget: +# src: [ +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Erics-Rooms/*.html" +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Programs/*.html" +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Sublime-Text/*.html" +# ] +# css: ["<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/programs.css"] +# dest: "<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/programs.css" +# gingerinastarget: +# src: [ +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Erics-Rooms/*.html" +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Gingerinas/*.html" +# ] +# css: ["<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/gingerinas.css"] +# dest: "<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/gingerinas.css" +# itarticlestarget: +# src: [ +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Erics-Rooms/*.html" +# "<%= templates.yamlconfig.OUTPUT_PATH %>/IT-articles/*.html" +# ] +# css: ["<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/it-articles.css"] +# dest: "<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/it-articles.css" +# giologicabluetarget: +# src: ["<%= templates.yamlconfig.OUTPUT_PATH %>/Giologica/Valerywork-Kiravel.html"] +# css: ["<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/giologica-blue.css"] +# dest: "<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/giologica-blue.css" +# giologicatarget: +# src: [ +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Books-Reviews/*.html" +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Giologica/*.html" +# "<%= templates.yamlconfig.OUTPUT_PATH %>/G-Rights/*.html" +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Special/*.html" +# ] +# css: ["<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/giologica.css"] +# dest: "<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/giologica.css" +# sashablacktarget: +# # Pages and Sasha Black +# src: [ +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Sasha-Black/*.html" +# "<%= templates.yamlconfig.OUTPUT_PATH %>/Pages/*.html" +# ] +# css: ["<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/sasha-black-description.css"] +# dest: "<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/sasha-black-description.css" +# smertsvobodetarget: +# src: ["<%= templates.yamlconfig.OUTPUT_PATH %>/Smert-svobode/*.html"] +# css: ["<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/smert-svobode.css"] +# dest: "<%= templates.yamlconfig.OUTPUT_PATH %>/theme/css/sections/smert-svobode.css" + + +# [DECLINED] +# 1. posthtml-img-autosize doesn’t work for relative paths: +# https://github.com/posthtml/grunt-posthtml/issues/4 +# 2. lazysizes plugin required for my environment, +# I don’t add native lazy loading via posthtml-lazyload +# #################### +# ## grunt-posthtml ## +# #################### +# ### +# [INFO] Framework to transform HTML/XML via JavaScript plugins: +# https://posthtml.org/#/ +# https://www.npmjs.com/package/posthtml + +# [INFO] Plugins: +# https://www.npmjs.com/package/posthtml#plugins + +# [INFO] Grunt wrapper: +# https://www.npmjs.com/package/grunt-juwain-posthtml + +# [FIXED] https://github.com/posthtml/grunt-posthtml/issues/4 +# [NOTE] Default version — “https://www.npmjs.com/package/grunt-posthtml” — +# doesn’t work for me. I use grunt-juwain-posthtml version: +# https://github.com/posthtml/grunt-posthtml/issues/3 +# ### +# module.exports = +# options: +# use: [ +# ##################### +# # posthtml-lazyload # +# ##################### +# # [SOON] Currently, I still use JQuery Lazy for lazy loading images and iframes. +# # We have polyfill for browsers that not supported loading="lazy": +# # https://github.com/mfranzke/loading-attribute-polyfill +# # Polyfill problems: +# # 1. It not valid: +# # https://github.com/mfranzke/loading-attribute-polyfill/issues/90 +# # 2. Additional syntax required: +# # https://github.com/mfranzke/loading-attribute-polyfill#simple-image + + +# # [ACTION] Add “loading="lazy"” to all images and iframes: +# # https://www.npmjs.com/package/posthtml-lazyload + +# # [NOTE] I couldn’t find any method for applying lazy loading for +# # all images and frames without adding “loading="lazy"” each time + +# # [INFO] “loading="eager"” — load resources immediatly: +# # https://web.dev/browser-level-image-lazy-loading/ + +# # [INFO] For “picture” tag the “loading” attribute required solely for +# # the fallback “img” element: +# # https://web.dev/browser-level-image-lazy-loading/ + +# # [NOTE] CSS background images haven’t “loading” attribute: +# # https://web.dev/browser-level-image-lazy-loading/\ +# #can-css-background-images-take-advantage-of-the-loading-attribute + +# # require('posthtml-lazyload')(loading: 'lazy') + + +# ######################### +# # posthtml-img-autosize # +# ######################### +# # [BUG] Plugin doesn’t work with relative paths: +# # https://github.com/posthtml/posthtml-img-autosize/issues/17#issuecomment-706592803 + +# # [OVERVIEW] Plugin adds “height” and “width” attributes to all images: +# # https://www.npmjs.com/package/posthtml-img-autosize +# # [INFO] It required for 2020: +# # https://www.smashingmagazine.com/2020/03/setting-height-width-images-important-again/ + +# # require('posthtml-img-autosize')( +# # processEmptySize: true +# # root: "output/Programs" +# # ) +# ] +# target: +# files: [ +# expand: true +# cwd: "." +# src: "output/Programs/*.html" +# dest: "." +# ] diff --git a/grunt/htmlhint.coffee b/grunt/htmlhint.coffee index c8ee24a2..1e056893 100644 --- a/grunt/htmlhint.coffee +++ b/grunt/htmlhint.coffee @@ -10,17 +10,26 @@ # [NOTE] All options in “.htmlhintrc” required module.exports = options: - # [NOTE] I prefer tabs, not spaces. - # [LINK] “.editorconfig” - # "space-tab-mixed-disabled": "tab", - # [NOTE] BEM required underlines and dashes both: - # https://en.bem.info/methodology/quick-start/#element - # https://github.com/htmlhint/HTMLHint/issues/340 - # "id-class-value": false, - # [NOTE] “script” tag must contain in head: - # https://stackoverflow.com/a/24070373/5951529 - # https://github.com/htmlhint/HTMLHint/issues/340 - # "head-script-disabled": false + ### + [NOTE] I prefer tabs, not spaces. + [LINK] “.editorconfig” + "space-tab-mixed-disabled": "tab" + + [NOTE] BEM required underlines and dashes both: + https://en.bem.info/methodology/quick-start/#element + https://github.com/htmlhint/HTMLHint/issues/340 + "id-class-value": false + + [NOTE] “script” tag must contain in head: + https://stackoverflow.com/a/24070373/5951529 + https://github.com/htmlhint/HTMLHint/issues/340 + "head-script-disabled": false + + [INFO] Comments before DOCTYPE allowed for modern browsers: + https://stackoverflow.com/a/4897850/5951529 + https://github.com/htmlhint/HTMLHint/wiki/doctype-first + "doctype-first": false + ### htmlhintrc: ".htmlhintrc" target: src: "<%= templates.paths.html %>" diff --git a/grunt/htmllint.coffee b/grunt/htmllint.coffee index 7b1b53e0..c5d30e08 100644 --- a/grunt/htmllint.coffee +++ b/grunt/htmllint.coffee @@ -2,39 +2,54 @@ # htmllint # ############ ### -Lint HTML: +[OVERWIEW] Lint HTML: http://htmllint.github.io/ +https://www.npmjs.com/package/htmllint + +[INFO] Grunt wrapper: https://www.npmjs.com/package/grunt-htmllint -Configuration: + +[INFO] Configuration: https://github.com/htmllint/htmllint/wiki/Options -Inline options ignoring: + +[INFO] Inline options ignoring: https://github.com/htmllint/htmllint/wiki/Inline-Configurations + [WARNING] 1 error — 1 toast. The number of toasts may be large! https://github.com/htmllint/grunt-htmllint/issues/25 -Run “htmllint” after “grunt” or “grunt publish” task, not after “pelican” command/ -[DONE] -# [BUG] “opts” argument erroneous: -# https://github.com/htmllint/grunt-htmllint/pull/24 + +[INFO] Run “htmllint” after “grunt” or “grunt publish” task, not after “pelican” command. + [NOTE] “attr-bans” modified, because Progressbar needs “style” attribute: https://github.com/facelessuser/pymdown-extensions/issues/293 https://github.com/htmllint/htmllint/wiki/Options#attr-bans + +[NOTE] I remove “width” attribute from “attr-bans”, because: +1. “width” and “height” for “img” is best practice. +2. I couldn’t find tools that add “width” and “height” to CSS, not to HTML +https://github.com/htmllint/htmllint-cli/issues/22#issuecomment-724600363 + [FIXME] Migrate to BEM → remove “id-class-style” https://github.com/htmllint/htmllint/wiki/Options#id-class-style -[NOTE] “raw-ignore-regex” for ignoring linting inside style and script tags: + +[INFO] “raw-ignore-regex” for ignoring linting inside style and script tags: "raw-ignore-regex": "/(\\.*\\<\/script\\>|\\.*\\<\/style\\>)/", https://github.com/htmllint/htmllint/issues/257 https://github.com/htmllint/htmllint/wiki/Options#raw-ignore-regex [NOTE] This regex not work as expected: "raw-ignore-regex": "/(\\<(script|style)\\>.*\\<\/(script|style)\\>|/" -[NOTE] “tag-bans” — I enable “style” tag, because it needest for speed performance: + +[INFO] “tag-bans” — I enable “style” tag, because it required for speed performance: https://developers.google.com/web/tools/lighthouse/audits/blocking-resources https://github.com/htmllint/htmllint/wiki/Options#tag-bans ### module.exports = options: - # For correct exit codes for builds: - # https://www.npmjs.com/package/grunt-htmllint#optionsforce + ### + [INFO] fail the build after any error: + https://www.npmjs.com/package/grunt-htmllint#optionsforce + ### force: false - # Support configuration file “.htmllintrc” + # [INFO] Support configuration file “.htmllintrc” htmllintrc: true src: "<%= templates.paths.html %>" diff --git a/grunt/http-server.coffee b/grunt/http-server.coffee index d6bf0f4c..a1ed7ced 100644 --- a/grunt/http-server.coffee +++ b/grunt/http-server.coffee @@ -11,9 +11,9 @@ module.exports = # [INFO] “Specify "0.0.0.0" to be available everywhere”: # https://divhide.com/node-grunt-http-server-1-x/#configuration host: "0.0.0.0" - # [BUG] clean-console PnahtomJS doesn't support https + # [BUG] clean-console PhantomJS doesn’t support https https: false port: 4147 - # If true, run parallel with other tasks + # [INFO] If true, run parallel with other tasks runInBackground: true root: "<%= templates.paths.cwd %>" diff --git a/grunt/humans_txt.coffee b/grunt/humans_txt.coffee index b5728e9d..7ebbae05 100644 --- a/grunt/humans_txt.coffee +++ b/grunt/humans_txt.coffee @@ -18,7 +18,7 @@ module.exports = (grunt) -> options: pkg: grunt.file.readJSON('package.json') - intro: 'humans.txt file for Kristinita\'s Search' + intro: 'humans.txt file for Kristinita’s Search' commentStyle: 'c' # Indentation of nested values: # https://github.com/robinpokorny/grunt-humans-txt#tab @@ -30,8 +30,8 @@ module.exports = (grunt) -> team: [ 'Web developer': "<%= humans_txt.options.pkg.author %>" 'Site': "<%= humans_txt.options.pkg.homepage %>" - 'Contacts': 'https://vk.com/hair_in_the_wind' - 'Location': 'Там, где Саша' + 'Contacts': 'https://vk.com/psychologist_kira_k' + 'Location': 'Там, где Кира' ] thanks: [ 'Name': 'Alfy Centauri' diff --git a/grunt/pageres.coffee b/grunt/pageres.coffee index fc676cb2..6fc2e0af 100644 --- a/grunt/pageres.coffee +++ b/grunt/pageres.coffee @@ -1,46 +1,47 @@ ################# # grunt-pageres # ################# -# Screenshots of site pages: -# https://www.npmjs.com/package/pageres -# https://www.npmjs.com/package/grunt-pageres -# [DONE] -# # [WARNING] PhantomJS make screenshots for old browser, that detect as Safari 4: -# # "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1" -# # screenshots can differ a lot by real pages for modern browsers. -# # [BUG] pageres works bad with absolute paths, -# # I use pageres use local server via grunt-http-server -# # [BUG] Native scrollbars displayed: -# # https://github.com/sindresorhus/pageres/issues/331 -# [FIXME] Publish screenshots to Imgur after_success and overwrite current Imgur album +### +[OVERWIEW] Screenshots of site pages: +https://www.npmjs.com/package/pageres + +[INFO] Grunt wrapper: +https://www.npmjs.com/package/grunt-pageres + +[INFO] Options: +https://www.npmjs.com/package/pageres#options + +[FIXME] Publish screenshots to Imgur “after_success” and overwrite current Imgur album: +https://github.com/sindresorhus/pageres/issues/358 +### module.exports = screenshots: options: delay: 4 dest: "<%= templates.yamlconfig.OUTPUT_PATH %>/screenshots" - # [WARNING] Viewport sizes is obsolete: - # http://viewportsizes.com - # I use 2 most popular screen resolutions for PC: - # https://www.w3counter.com/globalstats.php - ### - 640x360 - 1366x768 - ### - # And resolutions of supported mobile and tablet devices: ### + [INFO] I use 2 most popular screen resolutions for PC: + https://www.w3counter.com/globalstats.php + + [NOTE] Viewport sizes is obsolete: + http://viewportsizes.com + + [DECLINED] pageres will not show how web pages look on real mobile devices; + it will take screenshots that have nothing to do with the actual display + of web pages on mobile devices + [INFO] Add resolutions of supported mobile and tablet devices: iPhone XS Max — 1242x2688 iPad Pro 12.9.2018 — 2048x2732 Samsung Galaxy S9+ — 1440x2960 ### sizes: [ - "1024x768" "1366x768" - "1242x2688" - "2048x2732" - "1440x2960" + "640x360" ] - # [FIXME] Add cwd for templates, that no duplicate template: - # https://github.com/sindresorhus/pageres/issues/352#issuecomment-464048880 + ### + [NOTE] It would be nice add “cwd” for templates, so that there are no duplicates: + https://github.com/sindresorhus/pageres/issues/352#issuecomment-464048880 + ### urls: ["<%= templates.yamlconfig.OUTPUT_PATH %>/index.html" "<%= templates.yamlconfig.OUTPUT_PATH %>/404.html" "<%= templates.yamlconfig.OUTPUT_PATH %>/Sasha-Black.html" diff --git a/grunt/postcss.coffee b/grunt/postcss.coffee index af6b79cc..3557bde9 100644 --- a/grunt/postcss.coffee +++ b/grunt/postcss.coffee @@ -1,14 +1,16 @@ ################### ## grunt-postcss ## ################### -# PostCSS — CSS operations: -# https://www.npmjs.com/package/postcss -# Grunt adapter: -# https://www.npmjs.com/package/@lodder/grunt-postcss -# [NOTE] Original repository is abandoned, use C-Lodder fork: -# https://github.com/nDmitry/grunt-postcss/issues/121 -# [WARNING] PostCSS doesn't support “ -{% endblock %} - -{% block base_progressbar -%} - {%- if article.progressbar -%} - - {%- endif -%} -{%- endblock %} - - -{% block base_customcss -%} - {%- if article.customcss -%} - - {%- endif -%} -{%- endblock %} - -{% block galleryblock -%} - {% if article.photo_image %}{% endif %} -{%- endblock %} + {% block base_atom_feed -%} + https://github.com/getpelican/pelican/blob/master/docs/changelog.rst#401-2018-11-30 --> {# Use dot, no pipe: https://github.com/getpelican/pelican/issues/2442#issuecomment-449426117 #} {%- endblock %} - - - -{% block base_asidetitle %}{{ article.pagetitle }}{% endblock %} - -{% block base_h1 %}{{ article.pagetitle }}{% endblock %} -{% block base_noco %}{{ article.noco }}{% endblock %} -{% block base_version %}{{ article.version }}{% endblock %} -{# “locale_date” and “locale_modified” variables as in notmyidea theme #} -{% block base_date %}{{ article.locale_date }}{% endblock %} -{% block base_date_modified %}{{ article.locale_modified }}{% endblock %} - - -{% block base_epigraph -%} - {%- if article.epigraph -%} -
- {{ article.epigraphtext }} -
- {% endif %} -{%- endblock %} - - -{% block base_titleimage -%} - {# [LEARN][JINJA] “if article.titleimage” = “if article.titleimage == 'true'” #} - {%- if article.titleimage -%} - {# Picture tag: - https://ru.stackoverflow.com/a/915298/199934 #} -

- - - Header image - -

- {% endif %} -{%- endblock %} + - -{% block base_content %}{{ article.content }}{% endblock %} {% block base_neighbors -%} - {%- if article.lang == 'ru' -%} +
+ {%- if kira_object.lang == 'ru' -%} {% include 'includes/neighbors-ru.html' %} {% else %} {% include 'includes/neighbors-en.html' %} {% endif %} +
{%- endblock %} -{# {% block base_addtoany -%} - {% include 'includes/addtoany-articles.html' %} -{%- endblock %} #} - - -{% block base_new_russian %} - {%- if article.lang == 'ru' -%} - {% include 'includes/footer-ru.html' %} - {% else %} - {% include 'includes/footer-en.html' %} - {% endif %} -{% endblock %} -{% block base_noscript %} - {% include 'includes/noscript-articles.html' %} -{% endblock %} diff --git a/themes/sashapelican/templates/base.html b/themes/sashapelican/templates/base.html index be21f5b4..66b0a0e5 100644 --- a/themes/sashapelican/templates/base.html +++ b/themes/sashapelican/templates/base.html @@ -1,257 +1,191 @@ - -{# [NOTE] DOCTYPE must be declared first: +{# [INFO] Same template for articles, pages and another types without duplicates: +http://bit.ly/pelican__articles_and_pages #} + +{% if article %} + {% set kira_object = article %} +{% elif page %} + {% set kira_object = page %} +{% endif %} + + + +{# [INFO] Internet Explorer may not support сomments before DOCTYPE: https://stackoverflow.com/a/4897850/5951529 -[WARNING] Needs same language, that text in article/page: -https://webref.ru/css/lang -https://travis-ci.org/Kristinita/KristinitaPelican/jobs/381246941#L1202 +But I don’t want support IE. #} - + + + + + + + + - - - - - - {% block base_pagetitle %}{% endblock %} - - - - - - {# Open Graph: - http://ruogp.me - [NOTE] All basic metadata required; - Yandex Structured data validator gives errors, if no all: - https://webmaster.yandex.com/tools/microtest/ - https://ruogp.me/#metadata - [INFO] In Jinja2 you can use blocks multiple times: - http://stackoverflow.com/a/1245030/5951529 - #} - {# [INFO] See full types list for 2018: - https://stackoverflow.com/a/50273929/5951529 #} - {# [LEARN][JINJA] “|e” filter remove HTML chars “>”, “<”, “&”, “"”, from Pelican tags: - http://jinja.pocoo.org/docs/latest/templates/#working-with-manual-escaping - https://stackoverflow.com/a/1556570/5951529 - #} - {% if article %} - {% for tag in article.ogtags %} - - {% endfor %} - {% endif %} - - {% if page %} - {% for tag in page.ogtags %} - - {% endfor %} - {% endif %} - {% block base_json_ld %}{% endblock %} - - - - - {# [INFO] Icons formats: - https://stackoverflow.com/a/53795508/5951529 #} - - - {% block base_atom_feed %}{% endblock %} + + + {% include "includes/meta.html" %} + + + + {% include "includes/structured-data.html" %} + + + + {% include "includes/css-critical.html" %} + + + + {% include "includes/fonts.html" %} - - {# No browser-update, because some issues: - https://github.com/browser-update/browser-update/issues #} - {# [NOTE] Don't use protocol-relative URLs: - https://stackoverflow.com/a/54386928/5951529 #} - - {# target-blank - Add “target="_blank"” for all external links: - https://bogdandragomir.com/blog/2016/12/add-target-_blank-attribute-external-anchors-page-javascript-jquery-one-single-line/ #} - - - - - - - - - {# jquery-responsive-tables #} - {% block base_responsive_tables %}{% endblock %} - {# Browser-Update #} - - - {% block base_typoreporter %}{% endblock %} - - - - - {% block base_tooltipster %}{% endblock %} - - {% block base_clipboardjs %}{% endblock %} - - {% block base_visualize %}{% endblock %} - {# [INFO] Runkit, see https://runkit.com/docs/embed #} - {% block base_runkit %}{% endblock %} - {# [INFO] AddToAny, see https://www.addtoany.com #} - - {# [INFO] async required #} - - {# [INFO] Wildfire: - https://stackoverflow.com/a/63869810/5951529 #} - - {# [INFO] Ostr.io — ethical analythics: - https://github.com/VeliovGroup/ostrio-analytics#why-ostrio-analytics #} - - {# [FIXME] MailerLite bugs for RSS and CoffeeScript: - # https://github.com/Kristinita/SashaMiscellaneous/issues/18 - # https://github.com/Kristinita/SashaMiscellaneous/issues/19 - #} - - {% block base_customjs %}{% endblock %} - - - - - - - - - - - - - {% block base_modernizr %}{% endblock %} - - - - - - - - {# Progressbar #} - {% block base_progressbar %}{% endblock %} - - {% block base_customcss %}{% endblock %} - {# [DEPRECATED] - [NOTE] Script required, because Google Fonts doesn't support “font-display”: - https://css-tricks.com/google-fonts-and-font-display/ - https://github.com/google/fonts/issues/358 - - Fonts: - [INFO] Material icons font for admonition: - https://google.github.io/material-design-icons/ - [NOTE] “display: swap” required at May 2019, not default as in this article: - https://www.zachleat.com/web/google-fonts-display/ - [NOTE] “|” character must be replace in fonts URL for validator: - https://stackoverflow.com/a/22469221/5951529 - [NOTE] “&” → “&” replace required for HTML Tidy: - https://stackoverflow.com/a/15606103/5951529 + {% include "includes/js-critical.html" %} + + + + {# + [INFO] These scripts and styles will run if some string will matched in HTMl files: + https://stackoverflow.com/a/19628156/5951529 + + [INFO] Pelican/Jinja2 is looking for matches in HTML, not in Markdown files #} - + + + + {% include "includes/tables.html" %} + + + + {% include "includes/code-blocks.html" %} + + + + {# [INFO] Admonition, Visualize, RunKit, ProgressBar #} + + {% include "includes/js-specific.html" %} + + + + {# [INFO] Scripts for each page that can be removed #} + + {% include "includes/js-low-priority.html" %} + + + + {% include "includes/base-tag.html" %} + + + + {% block base_atom_feed %}{% endblock %} + - {# Message, if JavaScript disabled - ARIA roles: - http://prgssr.ru/development/ispolzovanie-aria-v-html5.html#heading-aria - [NOTE] “section” tag wrong in this case, I use “div” instead it: - “Section lacks heading. Consider using “h2”-“h6” elements to add identifying headings to all sections.” - https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/alert/index.html - #} -
- {% block base_noscript %}{% endblock %} -
- {# AddToAny buttons. - aside — a tag for these buttons: - https://stackoverflow.com/a/18974422/5951529 - Using multiple aside is possible: - https://stackoverflow.com/a/27688129/5951529 #} -
- - - {# [INFO] “Main” must include “article” and “aside”: + + + + {% include "includes/noscript.html" %} + + + + {% include "includes/side-icon.html" %} + + + + {# [LEARN][HTML] “Main” must include “article” and “aside”: https://webref.ru/html/main http://disq.us/p/16r46ia #} +
- {# Article must included header and footer: + + {# [LEARN][HTML] Article must include header and footer: https://webref.ru/html/article https://html.spec.whatwg.org/multipage/sections.html#the-article-element #} +
+ + +
-

{% block base_h1 %}{% endblock %}

- Page loading, please, little wait -
Version {% block base_version %}{% endblock %}
-
- {# [LEARN][JINJA] Multiple blocks with same name — - https://stackoverflow.com/a/1245030/5951529 #} - Posted — {{ self.base_date() }} -
-
- {# [WARNING] pubdate attribute is obsolete, use itemprop: datePublished - https://stackoverflow.com/a/24455070/5951529 #} - Last modified — {{ self.base_date_modified() }} -
-
- {% block base_epigraph %}{% endblock %} - {% block base_titleimage %}{% endblock %} -
+ + {% include "includes/header.html" %} +
+ + +
- {% block base_content %}{% endblock %} + + {% include "includes/content.html" %} +
+ + +
-
+ + {# [INFO] Previous and past articles: + https://github.com/pelican-plugins/neighbors #} + {% block base_neighbors %}{% endblock %} -
-
- {% block base_new_russian %}{% endblock %} -
Работайте над собой
+ + {% include "includes/footer.html" %}
+
+ + + + {% include "includes/share-buttons.html" %} + diff --git a/themes/sashapelican/templates/includes/base-tag.html b/themes/sashapelican/templates/includes/base-tag.html new file mode 100644 index 00000000..9db937e1 --- /dev/null +++ b/themes/sashapelican/templates/includes/base-tag.html @@ -0,0 +1,24 @@ +{# [DECLINED] It open all links in new tabs. +I can’t do this behavior solely for external links: +https://stackoverflow.com/a/28781184/5951529 +Therefore, I migrated to the “markdown-link-attr-modifier”, +despite the fact that the HTML size is increasing: +https://github.com/Phuker/markdown_link_attr_modifier + +[ACTION] Open all links in pages in new tabs: +https://forum.squarespace.com/topic/21952-force-all-external-links-into-a-new-tab/?do=findComment&comment=219538 +[PURPOSE] I regularly click to links on web pages. +When I read new page, I may forget to read to the end the previous page I need. +Therefore, I use middle-click for opening links in new tabs. +The previous page is nearby, and I don’t forget about its existence. +I want that this behavior will default. + +[INFO] “htmllint”, “html-nu” and “htmlhint” consider it valid + +[FIXME][ISSUE][POSTHTML] PostHTML plugins “link-noreferrer” and “noopener” +doesn’t work for me both: +https://github.com/webistomin/posthtml-link-noreferrer +https://github.com/posthtml/posthtml-noopener + + +#} diff --git a/themes/sashapelican/templates/includes/code-blocks.html b/themes/sashapelican/templates/includes/code-blocks.html new file mode 100644 index 00000000..2c38145a --- /dev/null +++ b/themes/sashapelican/templates/includes/code-blocks.html @@ -0,0 +1,50 @@ +{# +[INFO] Scripts and styles, if code blocks exists on the page +#} +{%- if "
" in kira_object.content -%}
+
+	{# [DECLINED]
+	Tooltipster + JQuery = 40 kb; it’s too big for non-critical dependency:
+	https://atomiks.github.io/tippyjs/v6/motivation/#comparison-with-tooltipster
+
+	[INFO] Tooltipster — tooltips:
+	http://calebjacob.github.io/tooltipster/
+	[INFO] Usage:
+	http://ru.stackoverflow.com/a/584718/199934
+
+	
+	
+	
+	 #}
+
+
+	{# [INFO] Balloon.css — pure CSS tooltips:
+	https://kazzkiq.github.io/balloon.css/
+
+	[WARNING] Tooltips goes off a screen! Not use big text for tooltips!
+	https://github.com/kazzkiq/balloon.css/issues/153
+	#}
+
+
+	{#
+	[INFO] Clipboard.js — copy block to clipboard without Flash:
+	https://clipboardjs.com/
+	[INFO] Usage:
+	http://ru.stackoverflow.com/a/582520/199934
+	#}
+
+
+	{#
+	[LEARN][JAVASCRIPT] “clipboard-js” must be loaded before “clipboard-js-local”
+
+	[LEARN][CSS] “balloon” must be loaded before “code-block-css”.
+	Properties in the last uploaded CSS file has a higher priority
+	https://stackoverflow.com/a/16913205/5951529
+	#}
+	
+{%- endif -%}
diff --git a/themes/sashapelican/templates/includes/content.html b/themes/sashapelican/templates/includes/content.html
new file mode 100644
index 00000000..58f0ef97
--- /dev/null
+++ b/themes/sashapelican/templates/includes/content.html
@@ -0,0 +1,15 @@
+{# [INFO] Site content #}
+{{ kira_object.content }}
+
+{# [NOTUSED] Therefore commented out
+
+[INFO] photos plugin:
+https://github.com/getpelican/pelican-plugins/tree/master/photos
+[NOTE] Declined, because now I don’t use this plugin at the time:
+
+{% block galleryblock -%}
+	{% if kira_object.photo_image %}
+		
+	{% endif %}
+{%- endblock %}
+#}
diff --git a/themes/sashapelican/templates/includes/css-critical.html b/themes/sashapelican/templates/includes/css-critical.html
new file mode 100644
index 00000000..d168c493
--- /dev/null
+++ b/themes/sashapelican/templates/includes/css-critical.html
@@ -0,0 +1,44 @@
+{# [INFO] Styles to be loaded with page load:
+https://prgssr.ru/images/development/css/02-browser-opt-small.jpg
+
+
+[LEARN][CSS][JAVASCRIPT] In modern browsers doesn’t matter, will we put styles before scripts or vice versa:
+https://stackoverflow.com/a/9272730/5951529
+https://www.benmccann.com/css-or-js-first-for-performance/
+
+
+[INFO] I use critical for “”:
+https://www.npmjs.com/package/critical
+
+[NOTE] “link rel="preload"” instead of "stylesheet" doesn’t work in Firefox 58, wait Firefox 59.
+https://github.com/filamentgroup/loadCSS#how-to-use-loadcss-recommended-example
+https://github.com/filamentgroup/loadCSS/issues/246
+https://bugzilla.mozilla.org/show_bug.cgi?id=1222633
+[NOTE] In Firefox 59 also doesn’t work. Wait Firefox 60. #}
+
+
+{# [INFO] Gemini Scrollbar styles
+
+[NOTE] Gemini styles must load first, otherwise bugs on the page #}
+
+
+
+{# [INFO] Styles for all articles and pages #}
+
+
+{# [INFO] Styles for fonts #}
+
+
+{# [INFO] Styles for aside with icon #}
+
+
+{# [INFO] Different styles depending on whether the icon is on the left or right #}
+
+
+{# [INFO] Color scheme #}
+
+
+{# [INFO] Custom CSS #}
+{%- if kira_object.customcss -%}
+	
+{%- endif -%}
diff --git a/themes/sashapelican/templates/includes/favicons.html b/themes/sashapelican/templates/includes/favicons.html
new file mode 100644
index 00000000..7f0a0d06
--- /dev/null
+++ b/themes/sashapelican/templates/includes/favicons.html
@@ -0,0 +1,23 @@
+
+
+{# [DECLINED]
+[INFO] Back in 2012—3 years, “link rel” was not required for modern browsers at that time
+according to user messages;
+placing “favicon.icon” to site root directory enough:
+https://stackoverflow.com/a/32909089/5951529
+https://stackoverflow.com/a/9943834/5951529
+https://stackoverflow.com/a/17042508/5951529
+https://stackoverflow.com/a/18300418/5951529
+
+[INFO] Argumentation, why we don’t need add “link rel”:
+https://realfavicongenerator.net/faq/#why_ico_not_declared
+https://mathiasbynens.be/notes/rel-shortcut-icon
+https://web.archive.org/web/20170715203800/http://www.jonathantneal.com/blog/understand-the-favicon
+
+[INFO] Icons formats:
+https://stackoverflow.com/a/53795508/5951529
+
+
+#}
diff --git a/themes/sashapelican/templates/includes/fonts.html b/themes/sashapelican/templates/includes/fonts.html
index 592c031e..1f693bda 100644
--- a/themes/sashapelican/templates/includes/fonts.html
+++ b/themes/sashapelican/templates/includes/fonts.html
@@ -1,9 +1,10 @@
-{# Google Fonts:
+{# [INFO] Google Fonts:
 https://medium.freecodecamp.org/how-to-use-google-fonts-in-your-next-web-design-project-e1ad48f1adfa
 Open Fonts License for fonts:
 https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL_web
 
-[NOTE] I migrate from FontLibrary to Google Fonts:
+
+[INFO] I migrate from FontLibrary to Google Fonts:
 1. FontLibrary haven't CDN and load to page more slow:
 https://i.imgur.com/mH0qSvs.png
 2. FontLibrary fonts no cached:
@@ -16,27 +17,31 @@
 Tracker for Google Fonts:
 https://github.com/google/fonts
 
-Play for h1 headers:
+
+Used fonts:
+
+[INFO] Play for h1 headers:
 https://fonts.google.com/specimen/Play
 https://github.com/google/fonts/tree/master/ofl/play
 
-El-Messiri for links:
+[INFO] El-Messiri for links:
 https://fontlibrary.org/en/font/el-messiri
 https://github.com/Gue3bara/El-Messiri
 
-Scada for h2 headers:
+[INFO] Scada for h2 headers:
 https://www.fontsquirrel.com/fonts/scada
 https://fonts.google.com/specimen/Scada
 https://github.com/googlefonts/scada
 
-Fira Mono for code:
+[INFO] Fira Mono for code:
 http://mozilla.github.io/Fira/
 https://github.com/mozilla/Fira
 
-Marck Script for “Работайте над собой”:
+[INFO] Marck Script for “Работайте над собой”:
 https://fonts.google.com/specimen/Marck+Script
 https://github.com/google/fonts/tree/master/ofl/marckscript
 
+
 [INFO] Needs combine fonts for leverage browser caching:
 https://stackoverflow.com/a/34356311/5951529
 
@@ -46,33 +51,116 @@
 [FIXME] Script instead of link required, because Google Fonts doesn't support “font-display”:
 https://css-tricks.com/google-fonts-and-font-display/
 https://github.com/google/fonts/issues/358
+
+
+
 #}
 
-{# 
+
+{#
+[INFO] Material icons font for admonition:
+https://google.github.io/material-design-icons/
+[NOTE] “display: swap” required at May 2019, not default as in this article:
+https://www.zachleat.com/web/google-fonts-display/
+[NOTE] “|” character must be replace in fonts URL for validator:
+https://stackoverflow.com/a/22469221/5951529
+[NOTE] “&” → “&” replace required for HTML Tidy:
+https://stackoverflow.com/a/15606103/5951529
+
+[INFO] Variable fonts:
+https://web.dev/variable-fonts/
+Fonts that I use isn’t variable
+
+[NOTREQUIRED] “&subset=cyrillic” for all modern browsers, that supports “unicode-range”:
+https://github.com/google/fonts/issues/113
+https://stackoverflow.com/a/56367174/5951529
+https://caniuse.com/font-unicode-range
+https://github.com/google/fonts/issues/2480
+https://github.com/google/fonts/issues/384
+
+[NOTE][FIXME] We can load “Marck Script” font
+that used solely for “Работайте над собой” in the bottom of the page
+lazy, but possibly it may not matter much on site performance:
+https://stackoverflow.com/a/14919928/5951529
+https://stackoverflow.com/a/63869810/5951529
+
+
+[INFO] “Some types of resources, such as fonts, are loaded in anonymous mode.
+For those you must set the crossorigin attribute with the preconnect hint”:
+https://web.dev/preconnect-and-dns-prefetch/#how-to-implement-relpreconnect
+
+
+[INFO] Fastest Google fonts downloading for May 2020:
+https://csswizardry.com/2020/05/the-fastest-google-fonts/
+
+1. Preemptively warm up the fonts’ origin.
+
+2. Initiate a high-priority, asynchronous fetch for the CSS file. Works in
+	most modern browsers.
+
+3. Initiate a low-priority, asynchronous fetch that gets applied to the page
+	only after it’s arrived. Works in all browsers with JavaScript enabled.
+
+4. In the unlikely event that a visitor has intentionally disabled
+	JavaScript, fall back to the original method. The good news is that,
+	although this is a render-blocking request, it can still make use of the
+	preconnect which makes it marginally faster than the default.
 #}
 
-{# Open source fonts from Font Library:
+
+{# 1 #}
+
+
+{# 2 #}
+
+
+{# 3 #}
+
+
+{# 4 #}
+
+
+
+{# [DECLINED] I migrated from Font Library to Google Fonts
+
+[INFO] Open source fonts from Font Library:
 https://fontlibrary.org/en
-Documentation:
+[INFO] Documentation:
 https://fontlibrary.org/en/guidebook
-Licenses:
+[INFO] Licenses:
 https://fontlibrary.org/en/guidebook/font_licensing
-[NOTE] Select fonts, that support Cyrillic symbols.
 
-Xolonium for h1 headers:
+[INFO] Select fonts, that support Cyrillic symbols.
+
+Used fonts:
+
+[INFO] Xolonium for h1 headers:
 https://fontlibrary.org/en/font/xolonium
 
-Sansus-webissimo for h2 headers:
+
+[INFO] Sansus-webissimo for h2 headers:
 https://fontlibrary.org/en/font/sansus-webissimo
 
-el-messiri for links:
+
+[INFO] el-messiri for links:
 https://fontlibrary.org/en/font/el-messiri
 https://github.com/Gue3bara/El-Messiri
 
-inconsolata-lgc for code:
+
+[INFO] inconsolata-lgc for code:
 https://fontlibrary.org/en/font/inconsolata-lgc
 https://github.com/DeLaGuardo/Inconsolata-LGC
 
-miama-nueva for “Работайте над собой”:
+
+[INFO] miama-nueva for “Работайте над собой”:
 https://fontlibrary.org/en/font/miama-nueva
  #}
diff --git a/themes/sashapelican/templates/includes/footer-en.html b/themes/sashapelican/templates/includes/footer-en.html
index 1ca41495..a35c22f0 100644
--- a/themes/sashapelican/templates/includes/footer-en.html
+++ b/themes/sashapelican/templates/includes/footer-en.html
@@ -15,10 +15,13 @@ 

Problems?

  1. (PC only, not for mobile devices). If you find in this article typo or small error, please, report about it use typo-reporter. Select text with typo → press Ctrl+Enter (⌘Enter for Mac) → write comment → send typo report.
  2. If you find more serious errors in this article and/or site, create GitHub issue.
  3. -
  4. You can also edit this page yourself and send pull request.
  5. +
  6. You can also edit this page yourself and send pull request.
  7. Or write comment here. Markdown GFM support in comments. You can use GhostText, that write issue in your preferred editor.
  8. -
+ {# [LEARN][HTML] List must contains “div” elements solely: + https://web.dev/list/?utm_source=lighthouse&utm_medium=devtools + “wildfire_thread” shouldn’t be listed. #} +

I hate private communication, solely open support.

If you write in the style of new disgruntled Russian I reserve the right to dispose of my own discretion.

All rights reserved ©.

diff --git a/themes/sashapelican/templates/includes/footer-pages.html b/themes/sashapelican/templates/includes/footer-pages.html deleted file mode 100644 index 6750469c..00000000 --- a/themes/sashapelican/templates/includes/footer-pages.html +++ /dev/null @@ -1,20 +0,0 @@ -
-

-

Like?

-
    -
  1. Share this page in your preferred social network, use share buttons on the side of web-page.
  2. -
-

-

Problems?

-
    -
  1. (PC only, not for mobile devices). If you find in this article typo or small error, please, report about it use typo-reporter. Select text with typo → press Ctrl+Enter (⌘Enter for Mac) → write comment → send typo report.
  2. -
  3. If you find more serious errors in this page and/or site, create GitHub issue.
  4. -
  5. You can also edit this page yourself and send pull request.
  6. -
  7. Or write comment here. Markdown GFM support in comments. You can use GhostText, that write issue in your preferred editor.
  8. -
    -
-

I hate private communication, solely open support.

-

If you write in the style of new disgruntled Russian I reserve the right to dispose of my own discretion.

-

All rights reserved ©.

-
- diff --git a/themes/sashapelican/templates/includes/footer-ru.html b/themes/sashapelican/templates/includes/footer-ru.html index 89480ec5..3604e0db 100644 --- a/themes/sashapelican/templates/includes/footer-ru.html +++ b/themes/sashapelican/templates/includes/footer-ru.html @@ -15,10 +15,13 @@

Проблемы?

  1. (Только для ПК, не мобильных устройств). Eсли Вы увидели на данной странице опечатку или мелкую ошибку, пожалуйста, сообщите об этом, используя typo-reporter. Выделите текст с опечаткой/ошибкой → нажмите Ctrl+Enter (⌘Enter для Mac) → напишите комментарий → Отправить.
  2. Если Вы нашли более серьёзные недочёты для этой страницы или сайта в целом, создайте issue на GitHub.
  3. -
  4. Также Вы можете самостоятельно отредактировать эту страницу и отправить pull request.
  5. +
  6. Также Вы можете самостоятельно отредактировать эту страницу и отправить pull request.
  7. Или написать комментарий здесь. Для комментариев поддерживается синтаксис Markdown GFM. Через GhostText Вы можете набирать сообщение в своём любимом Markdown-редакторе.
  8. -
+ {# [LEARN][HTML] List must contains “div” elements solely: + https://web.dev/list/?utm_source=lighthouse&utm_medium=devtools + “wildfire_thread” shouldn’t be listed. #} +

я ненавижу приватное общение, поддержка только через открытые источники.

С сообщениями в стиле новых недовольных русских оставляю право распоряжаться по собственному усмотрению.

Все права защищены ©.

diff --git a/themes/sashapelican/templates/includes/footer.html b/themes/sashapelican/templates/includes/footer.html new file mode 100644 index 00000000..ed23b89a --- /dev/null +++ b/themes/sashapelican/templates/includes/footer.html @@ -0,0 +1,37 @@ +{# +[FIXME] Horisontal AddToAny + Gemini Scrollbar is not compatible: +https://github.com/noeldelgado/gemini-scrollbar/issues/64 +It not reproduced at September 2020 + +[FIXME][BUG] New bug. Blank area after clicking to internal link: +https://i.imgur.com/jTJiVt6.png + +{% include 'includes/rss-subscribe.html' %} +#} + + +
+ + +{# [DECLINED] I want support solely open feedback + +[INFO] Footer: new disgruntled Russian and sign + +[INFO] E-Mail obfuscate: +http://rot13.florianbersier.com/ +Get relative source path like +https://github.com/kura/kura.io/blob/e8f2c6801a0013201d734aa1ac48d9ac92a40b96/ghastly/templates/article.html#L10 + +[INFO] Paths must be relative to “base.html”, not “footer.html”: +“{% include 'includes/footer-en.html' %}”, not “{% include 'footer-en.html' %}” +#} +{%- if kira_object.lang == 'ru' -%} + {% include 'includes/footer-ru.html' %} +{% else %} + {% include 'includes/footer-en.html' %} +{% endif %} + + +{# [INFO] “Работайте над собой” legend #} +
Работайте над собой
+ diff --git a/themes/sashapelican/templates/includes/header.html b/themes/sashapelican/templates/includes/header.html new file mode 100644 index 00000000..ae41f645 --- /dev/null +++ b/themes/sashapelican/templates/includes/header.html @@ -0,0 +1,64 @@ +{# [INFO] Title #} +

+ {% if kira_object.pagetitle %} + {{ kira_object.pagetitle }} + {% else %} + {{ kira_object.title }} + {% endif %} +

+ +{# [INFO] Page loading progress bar #} +Page loading, please, little wait + +{# [INFO] Page version #} +
Version {{ kira_object.version }}
+ +{# [INFO] Created date #} +
+ {# [LEARN][JINJA] Multiple blocks with the same name: + https://stackoverflow.com/a/1245030/5951529 + + Example: + First usage — {% block base_date %}{{ kira_object.locale_date }}{% endblock %} + Second usage — “{{ self.base_date() }}” + #} + Posted — {{ kira_object.locale_date }} +
+ +{# [INFO] Last modified date #} +
+ {# [INFO] “pubdate” attribute is obsolete, use “itemprop: datePublished”: + https://stackoverflow.com/a/24455070/5951529 #} + Last modified — {{ kira_object.locale_modified }} +
+ + +
+ + {# [INFO] Epigraph #} + {%- if kira_object.epigraph -%} +
+ {{ kira_object.epigraphtext }} +
+ {% endif %} + + {# [INFO] Article/page image + + [LEARN][JINJA] “if kira_object.titleimage” = “if kira_object.titleimage == 'true'” + #} + {%- if kira_object.titleimage -%} + + {# [SOON] Safari 14 supports webp; + https://caniuse.com/?search=webp + Soon we can use webp solely without “jpg” callback. + + [INFO] Picture tag for webp images: + https://ru.stackoverflow.com/a/915298/199934 #} +

+ + + Header icon + +

+ {% endif %} +
diff --git a/themes/sashapelican/templates/includes/js-critical.html b/themes/sashapelican/templates/includes/js-critical.html new file mode 100644 index 00000000..57814114 --- /dev/null +++ b/themes/sashapelican/templates/includes/js-critical.html @@ -0,0 +1,212 @@ +{# [LEARN][JAVASCRIPT] Put scripts to the “head” tag, not to the bottom of “body”: +https://stackoverflow.com/a/24070373/5951529 +https://flaviocopes.com/javascript-async-defer/ + +Location of scripts in the end of “body” is “antiquated recommendation”: +“This approach has its own problem: the browser cannot +start downloading the scripts until the entire document is parsed. +For larger websites with large scripts & stylesheets, +being able to download the script as soon as possible is very important for performance. +If your website doesn’t load within 2 seconds, people will go to another website.” +#} + + +{# [INFO] Defer.js — deferred loading scripts, styles +and another types of the content: +https://appseeds.net/defer.js/demo.html + +[NOTE] If “async” or “defer”, defer.js will not work + +[INFO] We need to place scripts inside “head” tag: +https://github.com/shinsenter/defer.js/#install-to-your-page + +[INFO] +1. No defer.js — critical scripts and styles that must be run when page loaded; +2. 400ms — scripts and styles which need if we open a page on the specifc anchor; +3. 1000 — analytics; +4. 7000 — low priority scripts, which aren’t needed in the first seconds of a page loading. +#} + + + +{# +[INFO] Gemini scrollbar — custom scrollbar: +https://noeldelgado.github.io/gemini-scrollbar/ + +[PATCH] https://github.com/noeldelgado/gemini-scrollbar/pull/67 +[REQUIRED] Production, not development link on the RawCDN: +https://raw.githack.com/#what-happens-to-jerks + +[FIXME] Migrate to the native scrollbars: +https://www.digitalocean.com/community/tutorials/css-scrollbars +#} + + + + +{# +[DEPRECATED] +Use modernizr; grunt-modernizr generate custom modernizr file automatically: +https://www.npmjs.com/package/grunt-modernizr +Solution from https://stackoverflow.com/a/54223755/5951529 doesn’t work for Safari in 2019: +Safari support “-webkit-image-set”, but doesn’t support “webp” → +Safari doesn’t show images. + +[LEARN][STYLUS] Using templates in URLs +https//github.com/stylus/stylus/issues/2147#issuecomment-197338391 +[INFO] 1x — for normal display, 2x — for high-res +https//www.hongkiat.com/blog/css-image-set/ +[INFO] Use “-webkit-image-set” below “url” last property have higher priority +https//stackoverflow.com/a/1637380/5951529 +#} + + +{# [SOON] Safari 14 supports webp: +https://caniuse.com/?search=webp +Soon we can use webp solely without Modernizr + +[INFO] Use webp for browsers, that support it and jpg for others: +https://stackoverflow.com/a/54223755/5951529 +https://andywalpole.me/blog/142790/using-webp-image-format + +[INFO] Modernizr self-hosted, CDNs not supported: +https://css-tricks.com/using-webp-images/ +https://modernizr.com/download/ +https://github.com/Modernizr/Modernizr/issues/2214 + +[INFO] Modernizr automatically generate minified file. +It would be nice use “.min.js”, not {{MIN}} template: +https://stackoverflow.com/a/41319855/5951529 +#} + + + + + +{# [INFO] Cash — small alternative for JQuery and Zepto: +https://github.com/fabiospampinato/cash +https://kenwheeler.github.io/cash/ +https://news.ycombinator.com/item?id=19535940 + +[INFO] Migration from JQuery to Cash: +https://github.com/fabiospampinato/cash/blob/master/docs/migration_guide.md +https://www.peterbe.com/plog/from-jquery-to-cash + +[INFO] CDN vs Locally, see: +http://stackoverflow.com/a/3832498/5951529 + +[INFO] defer preferred, than async, see: +https://stackoverflow.com/a/39711009/5951529 + +[INFO] Don’t use protocol-relative URLs: +https://stackoverflow.com/a/54386928/5951529 + +[INFO] Place Cash script before lazysizes, so that scripts dependent +so that dependency scripts have time to load + +[FIXME][ISSUE][CASH] More help for porting third-party plugins: +https://github.com/fabiospampinato/cash/issues/259 +https://github.com/fabiospampinato/cash/issues/75 +https://github.com/fabiospampinato/cash/issues/192 + +[FIXME][ISSUE][CASH] Custom builds: +https://github.com/fabiospampinato/cash/blob/master/docs/partial_builds.md +https://github.com/fabiospampinato/cash/blob/master/docs/extending_cash.md +#} + + + +{# +[DECLINED] Confict with lazysizes. +In general, I need to migrate to the native way. + + +#} + + +{# [DECLINED] I migrated to defer.js + lazysizes + +[INFO] No smooth scrolling, if JQuery Lazy: +https://github.com/eisbehr-/jquery.lazy/issues/98#issuecomment-376064894 + +[INFO] JQuery Lazy plugins: +http://jquery.eisbehr.de/lazy/#plugins + +[INFO] I use lazy loading for iframes, so that I selected solely this plugin + + + +#} + + +{# [FIXME] Migrate to the native lazy loading, when will I find a replacement for unveilhooks: +https://web.dev/browser-level-image-lazy-loading/ +https://web.dev/iframe-lazy-loading/ + +[INFO] lazysizes — lazy loading images and iframes: +https://afarkas.github.io/lazysizes/index.html +https://dev.to/carlesnunez/deep-dive-into-lazy-loading-images-211f +#} + + + +{# +[INFO] unveilhooks plugin — run script when user scroll to the specific element: +https://afarkas.github.io/lazysizes/index.html +https://stackoverflow.com/q/63753845/5951529 + +[NOTE] I can’t found the solution without lazysizes/unveilhooks dependencies. +Methods, described below, doesn’t worked for me: +https://stackoverflow.com/a/40410131/5951529 +https://stackoverflow.com/q/21561480/5951529 +#} + + +{# [INFO] Update scrollbar position after lazy load event #} + + + +{# [DECLINED] I migrated to Cash, because it much smaller: +https://github.com/fabiospampinato/cash#comparison + +[INFO] JQuery not a good candidate for “async”, see: +https://stackoverflow.com/a/10808243/5951529 + + +#} + + +{# [DECLINED] Additional JavaScript — isn’t good for the web performance. +I migrated to “markdown-link-attr-modifier”: +https://github.com/Phuker/markdown_link_attr_modifier + +[INFO] Add “target="_blank"” for all external links via JQuery: +https://bogdandragomir.com/blog/2016/12/add-target-_blank-attribute-external-anchors-page-javascript-jquery-one-single-line/ + #} + + +{# [NOTUSED] Commented, because for September 2020 I don’t use it, +but i don’t rule out using this in the future + +[INFO] Custom scripts for specific articles/pages + +[REQUIRED] “Customjs: true” and “Customjs1: ” in article metadata + +{%- if kira_object.customjs -%} + +{%- endif -%} #} diff --git a/themes/sashapelican/templates/includes/js-low-priority.html b/themes/sashapelican/templates/includes/js-low-priority.html new file mode 100644 index 00000000..1a5f6a36 --- /dev/null +++ b/themes/sashapelican/templates/includes/js-low-priority.html @@ -0,0 +1,134 @@ +{# [INFO] Ostr.io — ethical analythics: +https://github.com/VeliovGroup/ostrio-analytics#why-ostrio-analytics + +[NOTE] Development mode must be enabled for correct clean-console work: +https://github.com/VeliovGroup/ostrio-analytics/issues/2#issuecomment-421593817 +#} + + +{# +[INFO] typo-reporter + +[NOTE] I migrated from npmcdn to JSDelivr; npmcdn hangs +#} + + +{# [INFO] AddToAny — social share buttons: +https://www.addtoany.com + +[REQUIRED] “async” and “defer” as in example +#} + + +{# [INFO] Browser-Update — notification, if site visitor use old or bad browser: +https://browser-update.org/ #} + + +{# [INFO] Wildfire — comments for static sites: +https://wildfire.js.org + +[WARNING] I can’t get Wildfire notifications: +https://github.com/cheng-kang/wildfire/issues/47 + +[INFO] Add Wildfire lazy, because it makes web pages load faster: +https://stackoverflow.com/a/63869810/5951529 #} + + +{%- if kira_object.lang == 'ru' -%} + +{% else %} + +{%- endif -%} + + +{# +[INFO] HesGallery — lightweight pure JavaScript lightbox library: +https://demtario.github.io/hes-gallery/demo/ +[INFO] Options: +https://github.com/demtario/hes-gallery#possible-options +[NOTE] HesGallery haven’t thumbnails bar: +https://github.com/demtario/hes-gallery/issues/10 + +[FIXME][WARNING] hes-gallery doesn’t work for me with Defer.js + +[PATCH] https://github.com/demtario/hes-gallery/pull/12 +#} + + + +{# +[DECLINED] + +1. Fancybox doesn’t work with gemini-scrollbar ++ Fancybox author quickly closes my detailed issue: +https://github.com/fancyapps/fancybox/issues/2186 +2. JQuery required for Fancybox + +[INFO] Fancybox — lightbox library for presenting various types of media: +https://fancyapps.com/fancybox/3/ + +[NOTE] In CDNJS not possible latest version +https://stackoverflow.com/q/14801334/5951529 + + + + + +#} + + +{# +[DECLINED] + +1. Developer type — closer, see: +https://github.com/nicolas-t/Chocolat/issues/121 +https://github.com/nicolas-t/Chocolat/issues/120 +2. hes-gallery is smaller +[COMPARE] https://cdn.jsdelivr.net/npm/hes-gallery/dist/hes-gallery.min.js +https://cdn.jsdelivr.net/npm/hes-gallery/dist/hes-gallery.min.js + +[INFO] Chocolat — vanilla js library for images zoom: +http://chocolat.insipi.de/ +[INFO] Documentation: +https://chocolat.gitbook.io/chocolat/ + + + + +#} + + +{# [DECLINED] In 2020 modern browsers supports “details/summary”: +https://caniuse.com/#search=details + +[INFO] Add support for “details” and “summary” tags for old browsers: +http://ru.stackoverflow.com/a/498984/199934 +{% block base_detailspolyfill -%} + {%- if kira_object.detailspolyfill == 'true' -%} + + + {%- endif -%} +{%- endblock %} #} + + +{# [INFO] Mailerlite — subscribe to categories/tags by RSS: +http://help.mailerlite.com/article/show/28992-how-do-rss-campaigns-work + +[FIXME][ISSUE] RSS displayed not correctly in subscriber’s e-mail: +https://github.com/Kristinita/SashaMiscellaneous/issues/18 + +[FIXME][ISSUE] CoffeeScript doesn’t supported: +https://github.com/Kristinita/SashaMiscellaneous/issues/19 + #} diff --git a/themes/sashapelican/templates/includes/js-specific.html b/themes/sashapelican/templates/includes/js-specific.html new file mode 100644 index 00000000..7aa6cf40 --- /dev/null +++ b/themes/sashapelican/templates/includes/js-specific.html @@ -0,0 +1,83 @@ +{# +[INFO] Admonition — note, warning etc. blocks: +https://python-markdown.github.io/extensions/admonition/ + +[INFO] My design from MkDocs Material theme: +https://squidfunk.github.io/mkdocs-material/reference/admonitions/#supported-types + +[INFO] Use big Material Icons font solely for icons in admonition: +https://google.github.io/material-design-icons/ +https://google.github.io/material-design-icons/#setup-method-1-using-via-google-web-fonts + +[LINK] See “includes/fonts.html” file for description about font download: +#} +{% if "
+ + + + + +{% endif %} + + +{# [INFO] Visualize — generate bar and pie charts via JavaScript: +http://www.kellyking.me/projects/visualize/ +https://github.com/kellyk/visualize + +[FIXME] Replace to Mermaid on other tool, that generate charts in build process, +not during page loading +#} +{%- if "
  • + deferscript('{{SITEURL}}/{{ THEME_STATIC_DIR }}/js/Visualize/visualize{{MIN}}.js', 'visualize-local', 400); + deferscript('{{SITEURL}}/{{ THEME_STATIC_DIR }}/js/Visualize/visualize-bar-chart{{MIN}}.js', 'visualize-bar-chart', 700); + deferscript('{{SITEURL}}/{{ THEME_STATIC_DIR }}/js/Visualize/visualize-pie-chart{{MIN}}.js', 'visualize-pie-chart', 700); + +{%- endif -%} + + +{# [INFO] RunKit — embed Node.js on any website: +https://runkit.com/docs/embed + +[FIXME] Update RunKit to latest versions. +#} +{%- if "
    " in kira_object.content -%} + +{%- endif -%} + + +{# +[INFO] ProgressBar — progress/status bar: +https://facelessuser.github.io/pymdown-extensions/extensions/progressbar/ + +[FIXME] Replace ProgressBar to bar chart extension + +[NOTE] Ansible and Saltstack solutions like below doesn’t work in Pelican: +https://stackoverflow.com/a/42087938/5951529 +https://stackoverflow.com/a/54350773/5951529 + +{%- if kira_object.content is match('^\\[=\\d+% .*\\]$') -%} + +{%- endif -%} +#} +{%- if "
    + deferstyle('{{SITEURL}}/{{THEME_STATIC_DIR}}/css/script-colors/ProgressBar/progressbar{{MIN}}.css', 'progressbar', 400); + +{%- endif -%} diff --git a/themes/sashapelican/templates/includes/json-ld-articles.html b/themes/sashapelican/templates/includes/json-ld-articles.html deleted file mode 100644 index bcb4c2a4..00000000 --- a/themes/sashapelican/templates/includes/json-ld-articles.html +++ /dev/null @@ -1,44 +0,0 @@ -{# JSON-LD -https://developers.google.com/search/docs/guides/intro-structured-data -[INFO] Use JSON-LD instead of schema.org: -https://stackoverflow.com/a/29869449/5951529 -https://webmasters.stackexchange.com/a/102176/71131 -[INFO] Plase for JSON-LD paste: -https://stackoverflow.com/a/30956615/5951529 -[INFO] Basic Metadata required, that validators doesn't show errors: -http://ogp.me/#metadata -[INFO] JSON-LD validators; Google haven't API: -https://webmasters.stackexchange.com/a/56578/71131 -[BUG] Yandex Structured Data Validator have bugs, so I don't use it API in project: -https://github.com/Kristinita/SashaMiscellaneous/issues/21 -https://github.com/Kristinita/SashaMiscellaneous/issues/22 #} - diff --git a/themes/sashapelican/templates/includes/lang-attribute.html b/themes/sashapelican/templates/includes/lang-attribute.html new file mode 100644 index 00000000..7064f823 --- /dev/null +++ b/themes/sashapelican/templates/includes/lang-attribute.html @@ -0,0 +1,27 @@ +{# [BUG] In this case “en” value will be for all articles; +“kira_object.lang” exists always. +Use “” and manually add lang to +articles/pages metadata. + +[REQUIRED] The same language, that text in article/page, for The Nu Html Checker: +https://validator.github.io/validator/ +https://travis-ci.org/Kristinita/KristinitaPelican/jobs/381246941#L1202 + +[INFO] Russian is default language for my site; +if article is English this must be indicated in the article/page metadata. + +[LEARN][JINJA2] “-” sign for whitespace control: +https://ttl255.com/jinja2-tutorial-part-3-whitespace-control/ + +[WARNING] I couldn’t find any tool for automatically generate value of “lang” attribute: +https://github.com/posthtml/posthtml-plugins-idea/issues/11 + +[FIXME][ISSUE] Validator: +https://github.com/validator/validator + +{%- if kira_object.lang -%} + en +{%- else -%} + ru +{%- endif -%} +#} diff --git a/themes/sashapelican/templates/includes/meta.html b/themes/sashapelican/templates/includes/meta.html new file mode 100644 index 00000000..e6723ddb --- /dev/null +++ b/themes/sashapelican/templates/includes/meta.html @@ -0,0 +1,72 @@ +{# +[DECLINED] +Plugins as Pelican Open Graph still use “kira_object.title” without Jinja2 filters, +see 5.1 item: +https://stackoverflow.com/q/64058029/5951529 + +[LEARN][JINJA2] Set variable: +https://stackoverflow.com/a/4181605/5951529 + +{% set kira_title_variable = kira_object.title|replace('-', " ") %} +#} + + +{# [INFO] Title +So far, manually add it to the articles/pages metadata: +https://stackoverflow.com/q/64058029/5951529 +#} +{{ kira_object.title }} + + +{# [INFO] Encoding #} + + + +{# [INFO] Content description: +https://stackoverflow.com/a/11202372/5951529 + +[INFO] In meta description content of “kira_object.summary” will without images in Markdown syntax; +but preview of RSS feed will include them, if “summary” tag in “FORMATTED_FIELDS”. +See, how it looks: +“%PATH_KRISTINITA%\pelican-config\generation.yaml” +https://docs.getpelican.com/en/latest/settings.html#basic-settings + +[LEARN][JINJA] Remove tags from HMTL/XML: +https://jinja.palletsprojects.com/en/master/templates/#filters +https://jinja.palletsprojects.com/en/master/templates/#striptags +#} + + + +{# [INFO] Mobile-friendly: +https://web.dev/viewport/#how-to-add-a-viewport-meta-tag #} + + + +{# [DECLINED] +Since 2015, new IE and Edge versions doesn’t required it; +I don’t support old versions: +https://stackoverflow.com/a/6771584/5951529 + +[INFO] Internet Explorer/Edge support + #} + + +{# [INFO] Hide specific pages/articles from bots: +https://www.link-assistant.com/blog/hiding-from-indexation-part-1/ + +[INFO] I hide these types of articles/pages: +1. Drafts +2. Pages with controversial content + +[NOTE] I use “meta” tag, no “robots.txt”: +1. “law-abiding” bots as Google, Yahoo! and Bing bots use “robots.txt”, +but malicious bots — no. +“meta” tag guarantees the blocking of all robots: +https://www.woorank.com/en/blog/robots-txt-a-beginners-guide +2. “meta” tag solution is more automated +#} +{%- if kira_object.status == 'draft' or kira_object.noindex -%} + {# [INFO] No index page, but index third-party links #} + +{% endif %} diff --git a/themes/sashapelican/templates/includes/neighbors-en.html b/themes/sashapelican/templates/includes/neighbors-en.html index 1d948309..faa70f25 100644 --- a/themes/sashapelican/templates/includes/neighbors-en.html +++ b/themes/sashapelican/templates/includes/neighbors-en.html @@ -1,10 +1,14 @@ -{% if article.prev_article_in_category %} - ← Previous article +{# [INFO] Neighbors — a Pelican plugin that adds Next/Previous links to articles: +https://github.com/pelican-plugins/neighbors +#} +{% if kira_object.prev_article_in_category %} + ← Previous article {% else %} - Kristinita's Search + Kristinita’s Search {% endif %} -{% if article.next_article_in_category %} - Next article → + +{% if kira_object.next_article_in_category %} + Next article → {% else %} - Kristinita's Search + Kristinita’s Search {% endif %} diff --git a/themes/sashapelican/templates/includes/neighbors-ru.html b/themes/sashapelican/templates/includes/neighbors-ru.html index 031eea37..60d7cd77 100644 --- a/themes/sashapelican/templates/includes/neighbors-ru.html +++ b/themes/sashapelican/templates/includes/neighbors-ru.html @@ -1,10 +1,14 @@ -{% if article.prev_article_in_category %} - ← Предыдущая статья +{# [INFO] Neighbors — a Pelican plugin that adds Next/Previous links to articles: +https://github.com/pelican-plugins/neighbors +#} +{% if kira_object.prev_article_in_category %} + ← Предыдущая статья {% else %} - Поиск Кристиниты + Поиск Кристиниты {% endif %} -{% if article.next_article_in_category %} - Следующая статья → + +{% if kira_object.next_article_in_category %} + Следующая статья → {% else %} - Поиск Кристиниты + Поиск Кристиниты {% endif %} diff --git a/themes/sashapelican/templates/includes/noscript-articles.html b/themes/sashapelican/templates/includes/noscript-articles.html deleted file mode 100644 index 4c1c2ea7..00000000 --- a/themes/sashapelican/templates/includes/noscript-articles.html +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/sashapelican/templates/includes/noscript-pages.html b/themes/sashapelican/templates/includes/noscript-pages.html deleted file mode 100644 index 74fb6042..00000000 --- a/themes/sashapelican/templates/includes/noscript-pages.html +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/sashapelican/templates/includes/noscript.html b/themes/sashapelican/templates/includes/noscript.html new file mode 100644 index 00000000..9daebb15 --- /dev/null +++ b/themes/sashapelican/templates/includes/noscript.html @@ -0,0 +1,18 @@ +{# [INFO] Message, if JavaScript disabled + +[LEARN][HTML] ARIA roles: +http://prgssr.ru/development/ispolzovanie-aria-v-html5.html#heading-aria + +[INFO] “section” tag wrong in this case, I use “div” instead it: +“Section lacks heading. Consider using “h2”-“h6” elements to add identifying headings to all sections.” +https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/alert/index.html +#} +
    + +
    diff --git a/themes/sashapelican/templates/includes/preconnecting.html b/themes/sashapelican/templates/includes/preconnecting.html new file mode 100644 index 00000000..7f2e5ee6 --- /dev/null +++ b/themes/sashapelican/templates/includes/preconnecting.html @@ -0,0 +1,40 @@ +{# [DECLINED] Currently, I haven’t use cases. + +[INFO] Use cases: +“These two resource hints are helpful for improving page speed +when you know you’ll download something from a third-party domain soon, +but you don’t know the exact URL for the resource.”: +https://web.dev/preconnect-and-dns-prefetch/#conclusion +https://web.dev/preconnect-and-dns-prefetch/#use-cases-for-relpreconnect + + +[OVERVIEW] Preconnecting domains. + + +[INFO] “preconnect” +“You can speed up the load time by 100–500 ms by establishing +early connections to important third-party origins.”: +https://web.dev/preconnect-and-dns-prefetch/ +https://webdev.imgix.net/preconnect-and-dns-prefetch/preconnect.png + +[INFO] “Preconnecting is only effective for domains other than the origin domain, +so you shouldn’t use it for your site.”. + +[INFO] “Only preconnect to critical domains you will use soon”. +“Unnecessary preconnecting can delay other important resources, +so limit the number of preconnected domain”: +https://web.dev/preconnect-and-dns-prefetch/#how-to-implement-relpreconnect + + +[INFO] “dns-prefetch”. + +[INFO] “If a page needs to make connections to many third-party domains, +preconnecting all of them is counterproductive. +The "preconnect" hint is best used for only the most critical connections. +For all the rest, use ""”: +https://web.dev/preconnect-and-dns-prefetch/#resolve-domain-name-early-with-reldns-prefetch + +[INFO] Use “preconnect” and “dns-prefetch” in different tags: +https://web.dev/preconnect-and-dns-prefetch/#resolve-domain-name-early-with-reldns-prefetch +#} + diff --git a/themes/sashapelican/templates/includes/addtoany-rss.html b/themes/sashapelican/templates/includes/rss-subscribe.html similarity index 70% rename from themes/sashapelican/templates/includes/addtoany-rss.html rename to themes/sashapelican/templates/includes/rss-subscribe.html index 21ef9a26..93f9870f 100644 --- a/themes/sashapelican/templates/includes/addtoany-rss.html +++ b/themes/sashapelican/templates/includes/rss-subscribe.html @@ -1,13 +1,14 @@ - - - -{# [INFO] RSS feed subscribe buttons: +{# +[BUG] Critical page display bug on some browsers: +https://github.com/noeldelgado/gemini-scrollbar/issues/64 + +[INFO] RSS feed subscribe buttons: https://www.addtoany.com/buttons/customize/follow_buttons [INFO] Horizontal scrollbar; hide and show on scroll: https://www.addtoany.com/buttons/customize/floating_share_buttons #}
    -
    +
    diff --git a/themes/sashapelican/templates/includes/share-buttons.html b/themes/sashapelican/templates/includes/share-buttons.html new file mode 100644 index 00000000..d6a5c105 --- /dev/null +++ b/themes/sashapelican/templates/includes/share-buttons.html @@ -0,0 +1,21 @@ +{# +[INFO] AddToAny buttons. + +[INFO] “aside” — a tag for these buttons: +https://stackoverflow.com/a/18974422/5951529 + +[INFO] Using multiple aside is possible: +https://stackoverflow.com/a/27688129/5951529 + +[FIXME][ISSUE] WAVE accessibility problems +#} + diff --git a/themes/sashapelican/templates/includes/side-icon.html b/themes/sashapelican/templates/includes/side-icon.html new file mode 100644 index 00000000..1e38bbbb --- /dev/null +++ b/themes/sashapelican/templates/includes/side-icon.html @@ -0,0 +1,20 @@ +{# [INFO] Part of the screen area where are icons placed #} + +{# [INFO] Icon on the part of the screen #} + + diff --git a/themes/sashapelican/templates/includes/structured-data.html b/themes/sashapelican/templates/includes/structured-data.html new file mode 100644 index 00000000..3922ad26 --- /dev/null +++ b/themes/sashapelican/templates/includes/structured-data.html @@ -0,0 +1,86 @@ +{# [INFO] Open Graph: +http://ruogp.me + +[NIFO] All basic metadata required in articles and pages; +Yandex Structured data validator gives errors, if no all: +https://webmaster.yandex.com/tools/microtest/ +https://ruogp.me/#metadata + +[INFO] See full types list for 2018: +https://stackoverflow.com/a/50273929/5951529 + + +[LEARN][JINJA] “|e” (“escape”) filter remove HTML chars “>”, “<”, “&”, “"”, from Pelican tags: +http://jinja.pocoo.org/docs/latest/templates/#working-with-manual-escaping +https://jinja.palletsprojects.com/en/master/templates/#escape +https://stackoverflow.com/a/1556570/5951529 +#} +{% for tag in kira_object.ogtags %} + +{% endfor %} + + +{# [DECLINED] +[LINK] Read “title” section for details + +[LEARN][JINJA2] Pass variable to “include”: +https://github.com/pallets/jinja/issues/241 +https://stackoverflow.com/a/32657364/5951529 + +[FIXME][JINJA2] Duplicate “kira_title_variable=kira_title_variable”: + +{% with kira_title_variable=kira_title_variable %} + {% include 'includes/json-ld.html' %} +{% endwith %} +#} + + +{# [OVERVIEW] JSON-LD: +https://developers.google.com/search/docs/guides/intro-structured-data + +[INFO] Use JSON-LD instead of schema.org: +https://stackoverflow.com/a/29869449/5951529 +https://webmasters.stackexchange.com/a/102176/71131 + +[INFO] Place for JSON-LD paste: +https://stackoverflow.com/a/30956615/5951529 + +[INFO] Basic Metadata required, that validators doesn’t show errors: +http://ogp.me/#metadata + +[INFO] JSON-LD validators; Google haven’t API: +https://webmasters.stackexchange.com/a/56578/71131 + +[BUG] Yandex Structured Data Validator have bugs, so I don’t use it API in project: +https://github.com/Kristinita/SashaMiscellaneous/issues/21 +https://github.com/Kristinita/SashaMiscellaneous/issues/22 #} + diff --git a/themes/sashapelican/templates/includes/tables.html b/themes/sashapelican/templates/includes/tables.html new file mode 100644 index 00000000..72093896 --- /dev/null +++ b/themes/sashapelican/templates/includes/tables.html @@ -0,0 +1,26 @@ +{# +[INFO] jquery-responsive-tables — responsive tables: +https://www.npmjs.com/package/jquery-responsive-tables + +[INFO] Cash-compatible, JQuery not required + +[NOTE] I can’t find another method make tables responsive: +https://stackoverflow.com/q/50274179/5951529 + +[NOTE] Collapse by orientation change (“landscape/portrait”) isn’t available: +https://github.com/ryanwellsdotcom/jquery-responsive-tables/issues/2 + +[FIXME] Bad tables quality: +https://i.imgur.com/WLyEBkb.png + +[NOTE] Delay time is “700” and “1000”, not “400”/“700”, +because sometimes “responsive-tables” can’t boot after cash +and I get error in the console. +#} +{%- if "" in kira_object.content -%} + +{%- endif -%} diff --git a/themes/sashapelican/templates/index.html b/themes/sashapelican/templates/index.html index 269a9e62..47b8a297 100644 --- a/themes/sashapelican/templates/index.html +++ b/themes/sashapelican/templates/index.html @@ -50,7 +50,7 @@ {# [NOTE] Don't use protocol-relative URLs: https://stackoverflow.com/a/54386928/5951529 #} - + @@ -93,7 +93,7 @@ ПримерыОписание - Page loading, please, little wait + Page loading, please, little wait
    {# Status role: diff --git a/themes/sashapelican/templates/page.html b/themes/sashapelican/templates/page.html index 6b3e5516..10900384 100644 --- a/themes/sashapelican/templates/page.html +++ b/themes/sashapelican/templates/page.html @@ -1,172 +1,11 @@ -{# [LEARN][PELICAN] Differences pages and articles: -1. In pages disable categories. -2. Replace any files with “articles”. #} -{% extends 'base.html' %} - - - -{% block base_language %}{{ page.lang }}{% endblock %} - -{% block base_pagetitle %}{{ page.pagetitle }}{% endblock %} - -{% block base_summary_striptags %}{{ page.summary|striptags}}{% endblock %} - -{% block base_opengraphimage %}{{ page.opengraphimage }}{% endblock %} - - - -{# jquery-responsive-tables #} -{% block base_responsive_tables -%} - {%- if page.table == 'standard' -%} - - - - {%- elif page.table == 'onecolumn' -%} - - {%- endif -%} -{%- endblock %} - - -{% block base_typoreporter -%} - - {%- if page.lang == 'ru' -%} - - {% else %} - - {%- endif -%} -{%- endblock %} - - -{% block base_tooltipster -%} - {%- if page.tooltipster -%} - - - - - {%- endif -%} -{%- endblock %} - - -{% block base_clipboardjs -%} - {%- if page.clipboardjs -%} - - - {%- endif -%} -{%- endblock %} - - -{# JavaScript pie and bar charts: -http://www.kellyking.me/projects/visualize/ -https://github.com/kellyk/visualize #} -{% block base_visualize -%} - {%- if page.visualize -%} - - - - {%- endif -%} -{%- endblock %} - - - -{# - -{% block base_detailspolyfill -%} - {%- if page.detailspolyfill == 'true' -%} - - - {%- endif -%} -{%- endblock %} #} - - -{% block base_customjs -%} - {%- if page.customjs -%} - - {%- endif -%} -{%- endblock %} +{# [LEARN][PELICAN] Differences between pages and articles: +> The idea behind “pages” is that they are usually not temporal in nature and +are used for content that does not change very often (e.g., “About” or “Contact” pages). - +https://docs.getpelican.com/en/latest/content.html - -{% block base_iconleftorright %}{{ page.iconleftorright }}{% endblock %} - -{% block base_pagecolors %}{{ page.pagecolors }}{% endblock %} - -{% block base_modernizr %} -{# [NOTE] Modernizr automatically generate minified file. -It would be nice use “.min.js”, not {{MIN}} template: -https://stackoverflow.com/a/41319855/5951529 +[NOTE] Categories disable in pages. #} - - -{% endblock %} - - -{% block base_customcss -%} - {%- if page.customcss -%} - - {%- endif -%} -{%- endblock %} - -{% block galleryblock -%} -{% if page.photo_image %}{% endif %} -{%- endblock %} - - - - -{% block base_asidetitle %}{{ page.pagetitle }}{% endblock %} - - -{% block base_h1 %}{{ page.pagetitle }}{% endblock %} -{% block base_noco %}{{ page.noco }}{% endblock %} -{% block base_version %}{{ page.version }}{% endblock %} -{% block base_date %}{{ page.locale_date }}{% endblock %} -{% block base_date_modified %}{{ page.locale_modified }}{% endblock %} - - -{% block base_epigraph -%} - {%- if page.epigraph -%} -
    - {{ page.epigraphtext }} -
    - {% endif %} -{%- endblock %} - - -{% block base_titleimage -%} - {%- if page.titleimage -%} -

    Header image

    - {% endif %} -{%- endblock %} - - -{% block base_content %}{{ page.content }}{% endblock %} - - -{% block base_new_russian %} - {% include 'includes/footer-pages.html' %} -{% endblock %} - -{% block base_noscript %} - {% include 'includes/noscript-pages.html' %} -{% endblock %} +{% extends 'base.html' %} diff --git a/themes/sashapelican/templates/sasha-black.html b/themes/sashapelican/templates/sasha-black.html index 83e2e912..a811d325 100644 --- a/themes/sashapelican/templates/sasha-black.html +++ b/themes/sashapelican/templates/sasha-black.html @@ -17,6 +17,7 @@ + {# [INFO] JSON-LD for Web Applications: https://www.darrenlester.com/blog/json-ld-structured-data-for-web-applications [WARNING] Google required “aggregateRating” and “offers” keys: @@ -137,14 +138,7 @@ 1. Введите URL заглавной страницы. Неважно, в каком виде: kristinita.netlify.app , https://kristinita.netlify.app , kristinita.netlify.app/ или www.kristinita.netlify.app .
    2. Нажимайте на кнопки, и по ссылкам всё должно быть понятно. Если нет, читайте - {# [LEARN][HTML] Use “rel="noopener"” for “target="_blank"”: - https://mathiasbynens.github.io/rel-noopener/ - Htmllint require it: - https://github.com/htmllint/htmllint/issues/232 - [WARNING] Edge not support it: - https://caniuse.com/#search=noopener - https://github.com/MicrosoftEdge/Status/issues/450 #} - + справку. diff --git a/third-party-plugins/just_table/.gitignore b/third-party-plugins/just_table/.gitignore deleted file mode 100644 index d2c59194..00000000 --- a/third-party-plugins/just_table/.gitignore +++ /dev/null @@ -1,57 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] - -# C extensions -*.so - -# Distribution / packaging -.Python -env/ -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -*.egg-info/ -.installed.cfg -*.egg - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*,cover - -# Translations -*.mo -*.pot - -# Django stuff: -*.log - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ \ No newline at end of file diff --git a/third-party-plugins/just_table/LICENSE b/third-party-plugins/just_table/LICENSE deleted file mode 100644 index 148616ff..00000000 --- a/third-party-plugins/just_table/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {description} - Copyright (C) {year} {fullname} - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - {signature of Ty Coon}, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. \ No newline at end of file diff --git a/third-party-plugins/just_table/README.md b/third-party-plugins/just_table/README.md deleted file mode 100644 index a02c9e20..00000000 --- a/third-party-plugins/just_table/README.md +++ /dev/null @@ -1,210 +0,0 @@ -# Just Table - -Just table is a plugin for Pelican to create an easily table. Before this plugin, you can create tables like below way or maybe another way that I don't know :). -``` -| | | | | | -|---|---|---|---|---| -| | | | | | -| | | | | | -| | | | | | -``` -It looks easy, but sometimes you want to create a basic table quickly by the different way. Actually, I hate above way. Now, time to the just table's way. -## Usage - - - -* Basic table - - - -``` -[jtable] -Year,Make,Model,Length -1994,Ford,E350,2.34 -2000,Mercury,Cougar,2.38 -[/jtable] -``` - - - -| Year | Make | Model | Length | -|:----:|:-------:|:------:|:------:| -| 1994 | Ford | E350 | 2.34 | -| 2000 | Mercury | Cougar | 2.38 | - - - - -* More complicated - - -``` -[jtable] -Year,Make,Model,Description,Price -1997,Ford,E350,ac,3000.00 -1999,Chevy,Venture Extended Edition,,4900.00 -1999,Chevy,Venture Extended Edition and Very Large,,5000.00 -1996,Jeep,Grand Cherokee,MUST SELL!,4799.00 -[/jtable] -``` - - - -| Year | Make | Model | Description | Price | -|------|-------|---------------------------------------------|---------------|---------| -| 1997 | Ford | E350 | ac | 3000.00 | -| 1999 | Chevy | Venture Extended Edition | | 4900.00 | -| 1999 | Chevy | Venture Extended Edition and Very Large | | 5000.00 | -| 1996 | Jeep | Grand Cherokee | MUST SELL! | 4799.00 | - - -* Table with no heading - - - -``` -[jtable th="0"] -row1col1,row1col2,row1col3 -row2col1,row2col2,row2col3 -row3col1,row3col2,row3col3 -[/jtable] -``` - - - -| | | | -|----------|----------|----------| -| row1col1 | row1col2 | row1col3 | -| row2col1 | row2col2 | row2col3 | -| row3col1 | row3col2 | row3col3 | - - - - -* Table with caption without heading - - - -``` -[jtable caption="This is caption" th="0"] -row1col1,row1col2,row1col3 -row2col1,row2col2,row2col3 -row3col1,row3col2,row3col3 -[/jtable] -``` - - -||This is caption || -|----------|----------|----------| -| row1col1 | row1col2 | row1col3 | -| row2col1 | row2col2 | row2col3 | -| row3col1 | row3col2 | row3col3 | - - -or if you want to head and caption both, you can delete ```th="0"``` - - -* Table with auto index and It'll start from 1 - - - -``` -[jtable ai="1"] -head1,head2,head3 -row1col1,row1col2,row1col3 -row2col1,row2col2,row2col3 -row3col1,row3col2,row3col3 -row4col1,row4col2,row4col3 -[/jtable] -``` - - -| No. | head1 | head2 | head3 | -|:----:|:-------:|:------:|:------:| -| 1 | row1col1 | row1col2 | row1col3 | -| 2 | row2col1 | row2col2 | row2col3 | -| 3 | row3col1 | row3col2 | row3col3 | -| 4 | row4col1 | row4col2 | row4col3 | - - -* Custom separator for specific table - - -``` -[jtable separator="|"] -head1|head2|head3 -row1col1|row1col2|row1col3 -row2col1|row2col2|row2col3 -row3col1|row3col2|row3col3 -row4col1|row4col2|row4col3 -[/jtable] -``` - - -### Installation - -Add the plugin path to your PLUGINS setting in the pelicanconf.py file. - - - -```PLUGINS = [... , 'just_table' , ... ]``` - - -### Configuration - -**Custom template** - -You can customize table look by specifying `JTABLE_TEMPLATE` in your -`pelicanconf.py`. For example to match your bootstrap theme: - -```` -JTABLE_TEMPLATE = """ -
    - {% if caption %} - - {% endif %} - {% if th != 0 %} - - - {% if ai == 1 %} - - {% endif %} - {% for head in heads %} - - {% endfor %} - - - {% endif %} - - {% for body in bodies %} - - {% if ai == 1 %} - - {% endif %} - {% for entry in body %} - - {% endfor %} - - {% endfor %} - -
    {{ caption }}
    No. {{ head }}
    {{ loop.index }} {{ entry }}
    -""" -```` - -**Custom separator** - -Custom separator for all tables also can be specified: - -```` -JTABLE_SEPARATOR = '|' -```` - - -### Todo's - - - Read from CSV - - - -### License -GPL \ No newline at end of file diff --git a/third-party-plugins/just_table/__init__.py b/third-party-plugins/just_table/__init__.py deleted file mode 100644 index 8ecf34d0..00000000 --- a/third-party-plugins/just_table/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -"""Initialize plugin.""" -from .just_table import * # noqa diff --git a/third-party-plugins/just_table/just_table.py b/third-party-plugins/just_table/just_table.py deleted file mode 100644 index f95366cf..00000000 --- a/third-party-plugins/just_table/just_table.py +++ /dev/null @@ -1,164 +0,0 @@ -"""just_table. - -Table embedding plugin for Pelican -================================= - -This plugin allows you to create easily table. - -""" -import re - -from jinja2 import Template -from pelican import signals - -JTABLE_SEPARATOR = "JTABLE_SEPARATOR" -JTABLE_TEMPLATE = "JTABLE_TEMPLATE" -DEFAULT_SEPARATOR = "," - -AUTO_INCREMENT_REGEX = re.compile(r"ai ?\= ?\" ?(1) ?\"") -CAPTION_REGEX = re.compile('caption ?= ?"(.+?)"') -SEPARATOR_REGEX = re.compile('separator ?= ?"(.+?)"') -TABLE_HEADER_REGEX = re.compile(r"th ?\= ?\" ?(0) ?\"") -MAIN_REGEX = re.compile(r"(\[jtable(.*?)\]([\s\S]*?)\[\/jtable\])") - -DEFAULT_TEMPATE = """ -
    - - {%- if caption %} - - {%- endif %} - {%- if th != 0 %} - - - {%- if ai == 1 %} - - {%- endif %} - {%- for head in heads %} - - {%- endfor %} - - - {%- endif %} - - {%- for body in bodies %} - - {%- if ai == 1 %} - - {%- endif %} - {%- for entry in body %} - - {%- endfor %} - - {%- endfor %} - -
    {{ caption }}
    No. {{ head }}
    {{ loop.index }} {{ entry }}
    -
    -""" - - -def generate_table(generator): # pylint: disable=too-many-branches - """Generate table.""" - if JTABLE_SEPARATOR in generator.settings: - separator = generator.settings[JTABLE_SEPARATOR] - else: - separator = DEFAULT_SEPARATOR - - if JTABLE_TEMPLATE in generator.settings: - table_template = generator.settings[JTABLE_TEMPLATE] - else: - table_template = DEFAULT_TEMPATE - - template = Template(table_template) - - for article in generator.articles + generator.drafts: - for match in MAIN_REGEX.findall(article._content): - all_match_str, props, table_data = match - param = {"ai": 0, "th": 1, "caption": "", "sep": separator} - - if AUTO_INCREMENT_REGEX.search(props): - param["ai"] = 1 - if CAPTION_REGEX.search(props): - param["caption"] = CAPTION_REGEX.findall(props)[0] - if TABLE_HEADER_REGEX.search(props): - param["th"] = 0 - if SEPARATOR_REGEX.search(props): - param["sep"] = SEPARATOR_REGEX.findall(props)[0] - - table_data_list = table_data.strip().split("\n") - - if len(table_data_list) >= 1: - heads = table_data_list[0].split( - param["sep"]) if param["th"] else None - if heads: - bodies = [ - n.split(param["sep"], len(heads) - 1) - for n in table_data_list[1:] - ] - else: - bodies = [n.split(param["sep"]) for n in table_data_list] - - context = generator.context.copy() - context.update({"heads": heads, "bodies": bodies}) - context.update(param) - - replacement = template.render(context) - article._content = article._content.replace( - "".join(all_match_str), replacement - ) - - -def generate_table_pages(generator): # pylint: disable=too-many-branches - """Generate tables for pages.""" - if JTABLE_SEPARATOR in generator.settings: - separator = generator.settings[JTABLE_SEPARATOR] - else: - separator = DEFAULT_SEPARATOR - - if JTABLE_TEMPLATE in generator.settings: - table_template = generator.settings[JTABLE_TEMPLATE] - else: - table_template = DEFAULT_TEMPATE - - template = Template(table_template) - - for page in generator.pages: - for match in MAIN_REGEX.findall(page._content): - all_match_str, props, table_data = match - param = {"ai": 0, "th": 1, "caption": "", "sep": separator} - - if AUTO_INCREMENT_REGEX.search(props): - param["ai"] = 1 - if CAPTION_REGEX.search(props): - param["caption"] = CAPTION_REGEX.findall(props)[0] - if TABLE_HEADER_REGEX.search(props): - param["th"] = 0 - if SEPARATOR_REGEX.search(props): - param["sep"] = SEPARATOR_REGEX.findall(props)[0] - - table_data_list = table_data.strip().split("\n") - - if len(table_data_list) >= 1: - heads = table_data_list[0].split( - param["sep"]) if param["th"] else None - if heads: - bodies = [ - n.split(param["sep"], len(heads) - 1) - for n in table_data_list[1:] - ] - else: - bodies = [n.split(param["sep"]) for n in table_data_list] - - context = generator.context.copy() - context.update({"heads": heads, "bodies": bodies}) - context.update(param) - - replacement = template.render(context) - page._content = page._content.replace( - "".join(all_match_str), replacement - ) - - -def register(): - """Plugin registration.""" - signals.article_generator_finalized.connect(generate_table) - signals.page_generator_finalized.connect(generate_table_pages) diff --git a/third-party-plugins/open_graph/.gitignore b/third-party-plugins/open_graph/.gitignore deleted file mode 100644 index d00bd8cb..00000000 --- a/third-party-plugins/open_graph/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.pyc -.ropeproject \ No newline at end of file diff --git a/third-party-plugins/open_graph/.travis.yml b/third-party-plugins/open_graph/.travis.yml deleted file mode 100644 index 5daec5d3..00000000 --- a/third-party-plugins/open_graph/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Needs Xenial, not Trusty for Python 3.7 works: -# https://travis-ci.community/t/unable-to-download-python-3-7-archive-on-travis-ci/639/2 -# https://github.com/travis-ci/travis-ci/issues/9815#issuecomment-425867404 -dist: xenial - -# [INFO] Don't download all repository history, that save a time: -# https://docs.travis-ci.com/user/customizing-the-build/#git-clone-depth -git: - depth: 1 - -language: python - -python: 3.7 - -install: -- pip install --upgrade pip -- pip install flake8 pydocstyle pylint - -script: -- flake8 . -- pydocstyle -- pylint . \ No newline at end of file diff --git a/third-party-plugins/open_graph/LICENSE b/third-party-plugins/open_graph/LICENSE deleted file mode 100644 index dba13ed2..00000000 --- a/third-party-plugins/open_graph/LICENSE +++ /dev/null @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. diff --git a/third-party-plugins/open_graph/Readme.rst b/third-party-plugins/open_graph/Readme.rst deleted file mode 100644 index 9fcea66a..00000000 --- a/third-party-plugins/open_graph/Readme.rst +++ /dev/null @@ -1,46 +0,0 @@ -============ - Open Graph -============ - -This plugin adds Open Graph Protocol tags to your articles. - - -Usage -===== - -To output the tags generated by this plugin, simply add this code in -your base.html template: - -.. code-block:: jinja2 - - - {% if article %} - {% for tag in article.ogtags %} - - {% endfor %} - {% endif %} - - {% if page %} - {% for tag in page.ogtags %} - - {% endfor %} - {% endif %} - -Metadata values are constructed from the SITENAME and SITEURL -settings, from the article title, from the article slug, from the -article category and from these standard metadata tags: - -- ``date`` -- ``modified`` -- ``tags`` - -The plugin also reads these metadata tags: - -- ``og_image``, an URL to an image that will represent your article; -- ``og_description``, a short description of your article. If not - provided, the description will be set to ``summary``, which is often - too long; -- ``og_locale``, the locale of your article (e.g. 'fr_CA'). If not provided, - the locale will be set to your Pelican settings ``LOCALE``. - -Additionally, the plugin reads article.related_posts to set ``og:see_also``. diff --git a/third-party-plugins/open_graph/__init__.py b/third-party-plugins/open_graph/__init__.py deleted file mode 100644 index 818c63b6..00000000 --- a/third-party-plugins/open_graph/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -"""open_graph initialize.""" -from .open_graph import * # noqa diff --git a/third-party-plugins/open_graph/open_graph.py b/third-party-plugins/open_graph/open_graph.py deleted file mode 100644 index 2d11c381..00000000 --- a/third-party-plugins/open_graph/open_graph.py +++ /dev/null @@ -1,125 +0,0 @@ -# -*- coding: utf-8 -*- # -"""Open Graph. - -This plugin adds Open Graph Protocol tags to articles. - -Use like this in your base.html template: - -.. code-block:: jinja2 - - {% if article %} - {% for tag in article.ogtags %} - - {% endfor %} - {% endif %} - - {% if page %} - {% for tag in page.ogtags %} - - {% endfor %} - {% endif %} - -""" -from __future__ import unicode_literals - -import os.path - -from bs4 import BeautifulSoup -from pelican import generators -from pelican import signals -from pelican.utils import strftime - - -def open_graph_tag_articles(content_generators): - """Get different Pelican objects.""" - for generator in content_generators: - if isinstance(generator, generators.ArticlesGenerator): - for article in ( - generator.articles + - generator.translations + - generator.drafts): - open_graph_tag(article) - elif isinstance(generator, generators.PagesGenerator): - for page in generator.pages: - open_graph_tag(page) - - return True - - -def open_graph_tag(item): # pylint: disable=too-many-branches - """Open Graph items.""" - ogtags = [('og:title', item.title), - ('og:type', 'article')] - - image = item.metadata.get('og_image', '') - if image: - ogtags.append(('og:image', image)) - else: - soup = BeautifulSoup( - item.content, - 'html.parser') - img_links = soup.find_all('img') - if img_links: - img_src = img_links[0].get('src') - if "http" not in img_src: - if item.settings.get('SITEURL', ''): - img_src = item.settings.get('SITEURL', '') + "/" + img_src - ogtags.append(('og:image', img_src)) - - url = os.path.join( - item.settings.get( - 'SITEURL', - ''), - item.url) - ogtags.append(('og:url', url)) - - default_summary = item.summary - description = item.metadata.get('og_description', default_summary) - ogtags.append(('og:description', description)) - - default_locale = item.settings.get('LOCALE', []) - if len(default_locale[0]) > 3: - default_locale = default_locale[0] - ogtags.append( - ('og:locale', item.metadata.get('og_locale', default_locale))) - - ogtags.append(('og:site_name', item.settings.get('SITENAME', ''))) - - if hasattr(item, 'date'): - ogtags.append(('article:published_time', - strftime(item.date, "%Y-%m-%d"))) - - if hasattr(item, 'modified'): - ogtags.append(('article:modified_time', strftime( - item.modified, "%Y-%m-%d"))) - - if hasattr(item, 'related_posts'): - for related_post in item.related_posts: - url = os.path.join( - item.settings.get( - 'SITEURL', - ''), - related_post.url) - ogtags.append(('og:see_also', url)) - - author_fb_profiles = item.settings.get('AUTHOR_FB_ID', {}) - if author_fb_profiles: - for author in item.authors: - if author.name in author_fb_profiles: - ogtags.append( - ('article:author', author_fb_profiles[author.name])) - - ogtags.append(('article:section', item.category.name)) - - try: - for tag in item.tags: - ogtags.append(('article:tag', tag.name)) - except AttributeError: - pass - - item.ogtags = ogtags - - -def register(): - """Register pelican plugin.""" - signals.all_generators_finalized.connect(open_graph_tag_articles) diff --git a/tidy.conf b/tidy.conf index 1cb779ce..76d84c1e 100644 --- a/tidy.conf +++ b/tidy.conf @@ -1,42 +1,55 @@ ############# # HTML Tidy # ############# -# Validate and fix HTML files: +# [OVERVIEW] Validate and fix HTML files: # http://www.html-tidy.org/ -# Description: +# [INFO] Description: # http://api.html-tidy.org/tidy/tidylib_api_next/index.html -# Options: +# [INFO] Binaries: +# https://binaries.html-tidy.org/ +# [INFO] Options: # http://api.html-tidy.org/tidy/quickref_next.html -# Configuration file format: +# [INFO] Configuration file format: # http://api.html-tidy.org/tidy/tidylib_api_next/tidy_config.html -# No official configuration filename, I use common: +# [NOTE] No official configuration filename, I use common: # https://github.com/search?utf8=%E2%9C%93&q=filename%3Atidy.conf&type=Code -# [BUG] ASCII symbols must be in HTML Tidy configuration file: +# [BUG] Solely ASCII symbols must be in HTML Tidy configuration file: # https://github.com/htacg/tidy-html5/issues/737 -# -# Doesn't print content of HTML files to console: + + +# [INFO] Not convert tabs to spaces and not add additional spaces: +# https://api.html-tidy.org/tidy/quickref_next.html#keep-tabs +keep-tabs: yes + +# [WARNING] I disable it, because if "-modify" command line argument, +# + "markup: no", files doesn't modified. +# [INFO] Doesn't print content of HTML files to console: # http://api.html-tidy.org/tidy/quickref_next.html#markup -# [WARNING] Disable, because if "-modify" command line argument, files doesn't modified. # For validating use "--markup no" command line argument. # markup: no -# Preserve &, that valid, but no default: + +# [INFO] Preserve &, that valid, but no default: # http://api.html-tidy.org/tidy/quickref_next.html#preserve-entities # https://github.com/htacg/tidy-html5/issues/732 preserve-entities: yes -# Disable information about HTML Tidy in console: + +# [INFO] Disable information about HTML Tidy in console: # http://api.html-tidy.org/tidy/quickref_next.html#quiet quiet: yes -# Remove meta name="generator": + +# [INFO] Remove extra meta name="generator", that adds to each HTML file by HTML Tidy: # http://api.html-tidy.org/tidy/quickref_next.html#tidy-mark -# Arguments: +# [INFO] Argumentation: # https://github.com/htacg/tidy-html5/issues/558#issuecomment-388899700 tidy-mark: no -# Disable warnings, if proprietary attributes: + +# [INFO] Disable warnings, if proprietary attributes: # http://api.html-tidy.org/tidy/quickref_next.html#warn-proprietary-attributes -# I need delete this option in 5.8.0 HTML Tidy version: +# [SOON] The problem fixed, I need delete this option in 5.8.0 HTML Tidy version: # https://github.com/htacg/tidy-html5/issues/686 warn-proprietary-attributes: no -# Disable line breaks: + +# [INFO] Disable line breaks: # http://api.html-tidy.org/tidy/quickref_next.html#wrap # https://github.com/gavinballard/grunt-htmltidy/issues/6 wrap: 0