For developers

Page loading, please, little wait
Version 0.0.3
Posted —
Last modified —
  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. Windows
        1. Terminal selection
        2. Batch file
      2. 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
  3. JavaScript turn off
  4. 32-bit Windows

2. Testing

Site tested via BrowserStack on these devices and latest browsers version at May 2018:

3. Devices and browsers

2 latest stable versions of these browsers:

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

4.2.2. Windows

4.2.3. UNIX and macOS

4.3. Installation

4.3.1. Windows

4.3.1.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 environment variables are updated for current session automatically.

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

Far Manager

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.1.2. Batch file

Try run this batch file:

SETX PIPENV_VENV_IN_PROJECT 1
CALL RefreshEnv.cmd
git clone --depth=1 --branch=master https://github.com/Kristinita/KristinitaPelican.git
CD KristinitaPelican
START /B CMD /C "choco install 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
CALL RefreshEnv.cmd
git clone --depth=1 --branch=master https://github.com/Kristinita/KristinitaPelican.git
CD KristinitaPelican
choco install 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:

4.3.2. UNIX and macOS

Try run this shell file:

export PIPENV_VENV_IN_PROJECT=1
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 && npm install'

Except pexpect.exceptions.TIMEOUT:

install all sequentially:

export PIPENV_VENV_IN_PROJECT=1
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
npm install

See comments to the script in files:

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

Type of object.

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

Example:

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.

5.3. Validation table

For all Sasha Chernykh projects:

TypeChecking toolRules descriptionConfiguration file
commitscommitlint1, WARNING — no default levels for rules.commitlintrc.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
supported browsersBrowserslist1browserslist
PythonFlake81.flake8
Pythonpydocstyle1
MarkdownMarkdownlint1.markdownlint.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
StylusStylint1.stylintrc, comments, issue
CoffeeScriptCoffeeLint1coffeelint.json, comments, issue
BashShellCheck1
Bashbashate1bashate.sh (no configuration file for bashate)
YAMLyamllint1.yamllint
.travis.ymlTravis CI Client1

5.3.1. Non-used tools

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

TypeChecking toolArgumentation
PythonPython BlackVertical spaces format to one line (example); author “hate options