For developers

Page loading, please, little wait
Version 0.0.4
Posted — 2018-03-27T07:55:14+0300
Last modified — 2022-09-26T11:06:20+0300
You can comment this web-page
  1. Unsupported
  2. Testing
  3. Devices and browsers
  4. Site building
    1. Demonstration
    2. Pre-installation
      1. All operating systems
      2. Windows
      3. UNIX and macOS
    3. Installation
      1. Environment variables
        1. PageSpeed Insights
        2. AppVeyor
      2. Windows
        1. Terminal selection
        2. Batch file
      3. UNIX and macOS
    4. Build
  5. Linting and validation
    1. General rules
    2. Glossary for table heading
      1. Type
      2. Checking tool
      3. Rules description
      4. Configuration file
      5. comments, issue
    3. Validation table
      1. Non-used tools

1. Unsupported

Developer of this site doesn’t support:

  1. Older than 2 last version of each browser
  2. Any versions of Internet Explorer and other deprecated browsers
  3. JavaScript turn off
  4. 32-bit Windows

2. Testing

Site tested via BrowserStack on these latest BrowserStack devices and browsers version at August 2022:

  1. macOS Monterey, Safari 15.3
  2. Windows 11 64-bit
    1. Firefox
    2. Opera
    3. Edge
    4. Chrome
  3. iPhone 14
  4. iPad Pro 12.9.2020
    1. (iOS and Safari) 16
  5. Google Pixel 6 Pro, Android 13

3. Devices and browsers

2 latest stable versions of these browsers including mobile browsers:

  1. Firefox
  2. Opera
  3. Safari
  4. Chrome

4. Site building

4.1. Demonstration

  1. AppVeyor,
  2. Travis CI.

4.2. Pre-installation

You must install in your machine latest versions:

4.2.1. All operating systems

  1. Python 3,
  2. Node.js,
  3. Git (even if you use another VCS).

4.2.2. Windows

4.2.3. UNIX and macOS

  1. GNU Parallel,
  2. HTML Tidy.

4.3. Installation

4.3.1. Environment variables

4.3.1.1. PageSpeed Insights

Get PageSpeed Insights API key

Add environment variable to your local PC:

  1. Windows:

    SETX API_KEY_PAGESPEED_INSIGHTS_V5 your_token
    
  2. Linux:

    export API_KEY_PAGESPEED_INSIGHTS_V5 your_token
    

Replace your_token to token, that you get.

4.3.1.2. AppVeyor

Get AppVeyor API token. Register on AppVeyor, if already no → ci.appveyor.com/api-keysAPI keysGenerate new API token → copy your token.

Add environment variable to your local PC:

  1. Windows:

    SETX API_KEY_APPVEYOR your_token
    
  2. Linux:

    export API_KEY_APPVEYOR your_token
    

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 or pathed. don’t use SETX, you can lose your PATH data.

4.3.2. Windows

4.3.2.1. Terminal selection

Run batch file below from:

  1. File Explorer or alternatives,
  2. Default Windows console (cmd.exe),
  3. Your preferred terminal, if you sure, that refreshenv update your environment variables for current session or terminal update them automatically.

In Far Manager you need F9OptionsSystem settings → mark settings Automatic update of environment variables and Auto save setup.

Environment variables will update automatically in current session, but that apply updated environment variables for another session, you need to make another actions.

4.3.2.2. Batch file

Try run this batch file:

SETX PIPENV_VENV_IN_PROJECT 1
SETX PIPENV_IGNORE_VIRTUALENVS 1
SETX DOTNET_CLI_TELEMETRY_OPTOUT 1
CALL RefreshEnv.cmd
git clone --depth=1 --branch=master https://github.com/Kristinita/KristinitaPelican.git
CD KristinitaPelican
START /B CMD /C "choco install phantomjs html-tidy -y -ignoredependencies"
START /B CMD /C "python -m pip install --upgrade pip & pip install pipenv & pipenv install --dev"
START /B CMD /C "npm install -g grunt-cli & npm install"

Except pexpect.exceptions.TIMEOUT:

    install all sequentially:

SETX PIPENV_VENV_IN_PROJECT 1
SETX PIPENV_IGNORE_VIRTUALENVS 1
SETX DOTNET_CLI_TELEMETRY_OPTOUT 1
SETX path "%path%;D:\Kristinita"
CALL RefreshEnv.cmd
git clone --depth=1 --branch=master https://github.com/Kristinita/KristinitaPelican.git
CD KristinitaPelican
choco install phantomjs html-tidy -y -ignoredependencies
python -m pip install --upgrade pip
pip install pipenv
pipenv install --dev
npm install -g grunt-cli
npm install

See comments to the script in files:

  1. appveyor.yml,
  2. appveyor-install.bat.

4.3.3. UNIX and macOS

Try run this shell file:

export PIPENV_VENV_IN_PROJECT=1
export PIPENV_IGNORE_VIRTUALENVS=1
export DOTNET_CLI_TELEMETRY_OPTOUT=1
PATH=$PATH:$HOME/.dotnet/tools
git clone --depth=1 --branch=master https://github.com/Kristinita/KristinitaPelican.git
cd KristinitaPelican
wait
parallel ::: 'pip install --upgrade pip && pip install pipenv && pipenv install --dev' \
			'npm install --global npm && npm install -g grunt-cli phantomjs-prebuilt && npm install'

Except pexpect.exceptions.TIMEOUT:

    install all sequentially:

export PIPENV_VENV_IN_PROJECT=1
export PIPENV_IGNORE_VIRTUALENVS=1
export DOTNET_CLI_TELEMETRY_OPTOUT=1
PATH=$PATH:$HOME/.dotnet/tools
git clone --depth=1 --branch=master https://github.com/Kristinita/KristinitaPelican.git
cd KristinitaPelican
wait
pip install --upgrade pip
pip install pipenv
pipenv install --dev
npm install --global npm
npm install -g grunt-cli phantomjs-prebuilt
npm install

See comments to the script in files:

  1. .travis.yml,
  2. travis-install.sh.

4.4. Build

For build site run in KristinitaPelican folder:

Development site version:

grunt

Production version:

grunt publish

See comments in files of grunt folder.

5. Linting and validation

All original files and commits of Sasha Chernykh repositories must be 100% valid.

Please, consider this, if you make a pull request.

“Original” — not from third-party frameworks, libraries, packages, scripts and so on. I'm not responsible, if third-party files not valid.

5.1. General rules

Accept for all files, if no exceptions.

  1. Tabs, not spaces
  2. Indent size — 4
  3. Line lenght — 120 in syntaxes, where needed
  4. Syntactic sugar welcome

5.2. Glossary for table heading

For validating table below.

5.2.1. Type

If in this column name of markup or programming language — I mean files, specific for this language.

Example:

  1. Python — check all files with .py extension
  2. Markdown — all files with .md, .mdown and .markdown extensions

5.2.2. Checking tool

Checking/linting/validating tool.

5.2.3. Rules description

Link(s) to detailed description of checking tool rules.

5.2.4. Configuration file

File for checking tool, if I use non-default rules.

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.

5.2.5. comments, issue

Some linters use JSON for configuration files (I think, this is bad) + JSON doesn’t support comments → I can’t use comments in JSON configuration files. In these cases I add comments and issue links to Configuration file section.

  1. comments — file, where comments about options in configuration JSON file
  2. issue — feature request for support non-JSON configuration format

5.3. Validation table

For all Sasha Chernykh projects:

TypeChecking toolRules descriptionConfiguration file
English languagewrite-good + remark-lint-write-good1, WARNING — no in default repository.remarkrc.yaml
commitscommitlint + Husky1, WARNING — no default levels for rules.commitlintrc.yml, .huckyrc.yml
all files and folders namesgrunt-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, 2, 3, 4, 5path_validator.coffee (for Grunt projects, I can’t find tool for all project types)
all filesEditorConfig1.editorconfig
internal linkscheck-pages1check-pages.coffee
supported browsersBrowserslist1browserslist
browsers console errorsclean-consoleNo errors in browsers consoleclean-console.coffee
site performancePageSpeed Insights1
Pythonpylint1
PythonFlake81.flake8
Pythonpydocstyle1
MarkdownMarkdownlint1.markdownlint.yaml
Markdownremark1, 2.remarkrc.yaml
HTML, CSS, JavaScript (not minified)JS Beautifier1.jsbeautifyrc, comments, issue
HTMLThe Nu Html Checkerno regulated rules list
HTMLHTML Tidy1tidy.conf
HTMLhtmllint1.htmllintrc, comments, issue
HTMLHTMLHint1.htmlhintrc, comments, issue
StylusStylint1.stylintrc, comments, issue
CSSstylelint, stylelint-config-recommended1.stylelintrc.yaml
CSSstylelint-no-unsupported-browser-features1browserslist
CSSdoiuse1browserslist
CoffeeScriptCoffeeLint1coffeelint.json, comments, issue
BashShellCheck1
Bashbashate1bashate.sh (no configuration file for bashate)
YAMLyamllint1.yamllint
JinjadjLint1pyproject.toml, [tool.djlint] section
.travis.ymlTravis CI Client1
appveyor.ymlLocalAppVeyor1

5.3.1. Non-used tools

In this section checking/linting/validation tools, that I don’t use. Required argumentation.

TypeChecking toolArgumentation
CSSCSSLintCSSLint no longer maintained. If I use CSS3 syntax, I will get CSSLint error in any case. I can’t ignore parts of CSS files that contains CSS3 variables.

Share

You can share this page on social networks using the AddToAny social buttons widget on the side of the page

Subcsribe

You can subscribe to the Atom or RSS feeds of all site materials and any of its categories and tags. To subscribe, you need to install any feed reader software. Choose subscriptions to Atom if preferable for you reading articles in your feed reader. Choose subscriptions to RSS feeds if more convenient for you to fully read articles in the browser; your feed reader will display solely the article abstracts.

Report a typo or error

(Solely for desktop, not mobile devices). If you see a typo, inaccuracy or error on this page, please report it using typo-reporter: select text with a typo/mistake → press Ctrl+Enter (⌘Enter for Mac) → write your comment → Send.

Edit page

You can edit this page yourself on GitHub and send pull request.

Comment

For any questions please contact via utterances comment widget below. Please be polite and constructive.

To leave a comment, you need to be registered with GitHub. When writing comments, use Markdown syntax.

Once sended, your comment should appear at the top of the list of issues for this site. Notification of a reply to your comment should be sent to the email associated with your GitHub account.

You can also write and send your message use GitHub Issues directly.

Работайте над собой