Skip to content
Snippets Groups Projects
Commit 18c344ac authored by Yaroslav Dynnikov's avatar Yaroslav Dynnikov Committed by Yaroslav Dynnikov
Browse files

feat: implicit anchors for snake_case headers

parent 935a89c9
No related branches found
No related tags found
1 merge request!360feat: implicit anchors for snake_case headers
Pipeline #35886 passed
......@@ -11,7 +11,7 @@ Picodata 23.06.0-287-ga98dc6919
## Описание схемы данных {: #schema }
### _pico_table {: #_pico_table }
### _pico_table
Содержит информацию о пользовательских
[таблицах](../overview/glossary.md#table) Picodata.
......@@ -61,7 +61,7 @@ Picodata 23.06.0-287-ga98dc6919
* `id` (unique), parts: `[id]`
* `name` (unique), parts: `[name]`
### _pico_index {: #_pico_index }
### _pico_index
Содержит информацию об [индексах](../overview/glossary.md#index) БД.
......@@ -81,7 +81,7 @@ Picodata 23.06.0-287-ga98dc6919
* `id` (unique), parts: `[table_id, id]`
* `name` (unique), parts: `[table_id, name]`
### _pico_routine {: #_pico_routine }
### _pico_routine
Содержит информацию о пользовательских
[хранимых процедурах](../reference/sql_queries.md#proc) Picodata.
......@@ -114,7 +114,7 @@ Picodata 23.06.0-287-ga98dc6919
## Описание свойств кластера {: #cluster_properties }
### _pico_property {: #_pico_property }
### _pico_property
Содержит свойства кластера в формате «ключ—значение».
......@@ -129,7 +129,7 @@ Picodata 23.06.0-287-ga98dc6919
## Описание топологии кластера {: #cluster_topology }
### _pico_peer_address {: #_pico_peer_address }
### _pico_peer_address
Содержит адреса всех пиров кластера.
......@@ -142,7 +142,7 @@ Picodata 23.06.0-287-ga98dc6919
* `raft_id` (unique), parts: `[raft_id]`
### _pico_instance {: #_pico_instance }
### _pico_instance
Содержит информацию обо всех инстансах кластера.
......@@ -164,7 +164,7 @@ Picodata 23.06.0-287-ga98dc6919
* `raft_id` (unique), parts: `[raft_id]`
* `replicaset_id` (non-unique), parts: `[replicaset_id]`
### _pico_replicaset {: #_pico_replicaset }
### _pico_replicaset
Содержит информацию обо всех репликасетах кластера.
......@@ -183,7 +183,7 @@ Picodata 23.06.0-287-ga98dc6919
* `replicaset_id` (unique), parts: `[replicaset_id]`
### _pico_tier {: #_pico_tier }
### _pico_tier
Содержит информацию обо всех тирах в кластере.
......@@ -198,7 +198,7 @@ Picodata 23.06.0-287-ga98dc6919
## Описание управления доступом {: #access_control }
### _pico_user {: #_pico_user }
### _pico_user
Содержит информацию обо всех пользователях и ролях Picodata.
......@@ -216,7 +216,7 @@ Picodata 23.06.0-287-ga98dc6919
* `id` (unique), parts: `[id]`
* `name` (unique), parts: `[name]`
### _pico_privilege {: #_pico_privilege }
### _pico_privilege
Содержит информацию обо всех привилегиях, предоставленных пользователям Picodata.
......
......@@ -192,13 +192,13 @@ GRANT <role name> TO <role name>
Помимо создаваемых пользователями ролей, Picodata предоставляет
следующие системные роли:
##### public {: #public }
##### public
Роль `public` автоматически назначается всем создаваемым
пользователям. Наделение роли `publiс` привилегией на какой-либо объект
делает этот объект общедоступным.
##### super {: #super }
##### super
Роль `super` имеет все привилегии, доступные пользователю [`admin`](#admin).
......
......@@ -10,6 +10,12 @@ from markdown.extensions.attr_list import AttrListTreeprocessor, get_attrs
log = get_plugin_logger(os.path.basename(__file__))
# Markdown headers style guide:
#
# # Page title doesn't need an anchor
# ## All other headers need an explicit anchor {: #explicit_anchor }
# ## snake_case_headers_have_an_implicit_anchor
#
# https://www.mkdocs.org/dev-guide/plugins/#events
# https://github.com/mkdocs/mkdocs/blob/1.5.3/mkdocs/commands/build.py#L258
def on_files(files: Files, config: MkDocsConfig):
......@@ -33,6 +39,13 @@ def on_files(files: Files, config: MkDocsConfig):
anchors[file.src_path] = file_anchors
for line in headers:
# Anchors are optional for snake_case headers
match = re.search("^##+ ([a-z_]+)$", line)
if match:
anchor = match.group(1)
file_anchors.append(anchor)
continue
# https://python-markdown.github.io/extensions/attr_list/
match = AttrListTreeprocessor.HEADER_RE.search(line)
if not match:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment