For developers
1. Unsupported ¶
Developer of this site doesn’t support:
- Older than 2 last version of each browser
- Any versions of Internet Explorer and other deprecated browsers
- JavaScript turn off
- 32-bit Windows
2. Testing ¶
Site tested via BrowserStack on these latest BrowserStack devices and browsers version at August 2022:
- macOS Monterey, Safari 15.3
- Windows 11 64-bit
- Firefox
- Opera
- Edge
- Chrome
- iPhone 14
- iPad Pro 12.9.2020
- (iOS and Safari) 16
- Google Pixel 6 Pro, Android 13
3. Devices and browsers ¶
2 latest stable versions of these browsers including mobile browsers:
- Firefox
- Opera
- Safari
- Chrome
4. Site building ¶
4.1. Demonstration ¶
4.2. Pre-installation ¶
You must install in your machine latest versions:
4.2.1. All operating systems ¶
- Python 3,
- Node.js,
- Git (even if you use another VCS).
4.2.2. Windows ¶
4.2.3. UNIX and macOS ¶
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:
Windows:
SETX API_KEY_PAGESPEED_INSIGHTS_V5 your_token
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-keys → API keys → Generate new API token → copy your token.
Add environment variable to your local PC:
Windows:
SETX API_KEY_APPVEYOR your_token
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:
- File Explorer or alternatives,
- Default Windows console (cmd.exe),
- 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 F9 → Options → System 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:
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:
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.
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:
- Python — check all files with .py extension
- 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.
- comments — file, where comments about options in configuration JSON file
- issue — feature request for support non-JSON configuration format
5.3. Validation table ¶
For all Sasha Chernykh projects:
5.3.1. Non-used tools ¶
In this section checking/linting/validation tools, that I don’t use. Required argumentation.
Type | Checking tool | Argumentation |
---|---|---|
CSS | CSSLint | CSSLint 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. |