ClickHouse/docs/tools
Ivan Blinkov 21d8b6288d
[docs] generate AMP versions for docs articles (#10732)
* Refactoring in preparation for AMP support

* infrastructure for AMP validation

* Add Metrika counter on AMP page + adjust layout

* more content fixes

* improve amp layout

* improve navigation

* Move converting admonitions to generation time

* strict amp test check

* Batch AMP validation

* Add date published/modified to docs articles and their ld+json meta

* few more content fixes

* improve ld+json meta

* adjust margins

* skip published/modified for stable release docs

* adapt single page mode

* update po

* skip published/modified for single page docs

* update po

* adjust layout

* adjust layout
2020-05-08 11:04:09 +03:00
..
translate DOCS-624: re-generate select.md (#10689) 2020-05-06 13:20:58 +03:00
amp.py [docs] generate AMP versions for docs articles (#10732) 2020-05-08 11:04:09 +03:00
build.py [docs] generate AMP versions for docs articles (#10732) 2020-05-08 11:04:09 +03:00
deploy-to-test.sh Try to purge website cache less aggressively (#9668) 2020-03-15 13:53:00 +03:00
easy_diff.py Major website front page refactoring (#9300) 2020-03-13 22:35:03 +03:00
easy_edit.sh Build Japanese docs (#7938) 2019-12-02 12:21:34 +03:00
github.py [docs] generate AMP versions for docs articles (#10732) 2020-05-08 11:04:09 +03:00
make_links.sh Turkish docs translation stub (#10282) 2020-04-15 16:56:49 +03:00
mdx_clickhouse.py [docs] generate AMP versions for docs articles (#10732) 2020-05-08 11:04:09 +03:00
nav.py [docs] generate AMP versions for docs articles (#10732) 2020-05-08 11:04:09 +03:00
output.md [experimental] add "es" docs language as machine translated draft (#9787) 2020-03-21 07:11:51 +03:00
README.md Update README.md 2020-04-15 17:22:04 +03:00
redirects.py [docs] generate AMP versions for docs articles (#10732) 2020-05-08 11:04:09 +03:00
release.sh Update release.sh 2020-04-15 17:59:44 +03:00
requirements.txt Bump numpy from 1.18.3 to 1.18.4 in /docs/tools 2020-05-04 07:49:19 +00:00
single_page.py [docs] generate AMP versions for docs articles (#10732) 2020-05-08 11:04:09 +03:00
test.py [docs] generate AMP versions for docs articles (#10732) 2020-05-08 11:04:09 +03:00
util.py Get rid of toc_en.yml (#10023) 2020-04-03 16:23:32 +03:00
website.py [docs] generate AMP versions for docs articles (#10732) 2020-05-08 11:04:09 +03:00

How ClickHouse documentation is generated?

ClickHouse documentation is built using build.py script that uses mkdocs library and its dependencies to separately build all version of documentations (all languages in either single and multi page mode) as static HTMLs and then a PDF for each single page version. The results are then put in the correct directory structure. It is recommended to use Python 3.7 to run this script.

release.sh also pulls static files needed for official ClickHouse website from ../../website folder then pushes to specified GitHub repo to be served via GitHub Pages.

How to check if the documentation will look fine?

There are few options that are all useful depending on how large or complex your edits are.

Use GitHub web interface to edit

GitHub has Markdown support with preview feature, but the details of GitHub Markdown dialect are a bit different in ClickHouse documentation.

Install Markdown editor or plugin for your IDE

Usually those also have some way to preview how Markdown will look like, which allows to catch basic errors like unclosed tags very early.

Use build.py

Itll take some effort to go through, but the result will be very close to production documentation.

For the first time youll need to install wkhtmltopdf and set up virtualenv:

$ cd ClickHouse/docs/tools
$ mkdir venv
$ virtualenv -p $(which python3) venv
$ source venv/bin/activate
$ pip3 install -r requirements.txt

Then running build.py without args (there are some, check build.py --help) will generate ClickHouse/docs/build folder with complete static html website.

The easiest way to see the result is to use --livereload=8888 argument of build.py. Alternatively, you can manually launch a HTTP server to serve the docs, for example by running cd ClickHouse/docs/build && python3 -m http.server 8888. Then go to http://localhost:8888 in browser. Feel free to use any other port instead of 8888.

How to subscribe on documentation changes?

At the moment theres no easy way to do just that, but you can consider:

  • To hit the “Watch” button on top of GitHub web interface to know as early as possible, even during pull request. Alternative to this is #github-activity channel of public ClickHouse Slack.
  • Some search engines allow to subscribe on specific website changes via email and you can opt-in for that for https://clickhouse.tech.