Блоки кода#
Используемая разметка примеров кода основана на синтаксических возможностях MyST. Более подробная информация: https://myst-parser.readthedocs.io/en/latest/syntax/code_and_apis.html
Строчный (inline) код#
Строчные (inline) кодовые элементы обычно используются внутри строки текста (без выделения в отдельный абзац) для выделения `названий параметров`, `переменных`, `функций`, `команд`, `методов` и т. п.
В качестве идентификатора языка можно использовать любое значение, указанное в колонке Short name(s) в таблице [Pygments syntax highlighter - Languages](https://pygments.org/languages/).
Inline Java code: `a = "some string;"`{l=java}
Inline JS code: `document.getElementById("hello").innerHTML = "Hello, world!";`{l=js}
Строчные (inline) кодовые элементы обычно используются внутри строки текста (без выделения в отдельный абзац) для выделения названий параметров, переменных, функций, команд, методов и т. п.
В качестве идентификатора языка можно использовать любое значение, указанное в колонке Short name(s) в таблице Pygments syntax highlighter - Languages.
Inline Java code: a = "some string;"
Inline JS code: document.getElementById("hello").innerHTML = "Hello, world!";
Блок кода#
{lineno-start=1 emphasize-lines="10,14"}
```yaml
server:
port: 8080
liquibase:
base: &base
user: <admin>
password: <admin_password>
test:
<<: *base
default-schema: ds
url: ${database.test.url}
access-control:
<<: *base
default-schema: test_access_control
url: ${database.access-control.url}
```
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Вставка кода из файла#
Код примера может быть размещен в отдельном файле, а его фрагменты (диапазон строк) можно включать в текст документа как кодовые блоки c помощью директивы literalinclude. Путь до файла может быть относительным или абсолютным (корнем в данном случае является папка, где расположен doc-config.ini). Для указания языка используйте опцию :language:.
Весь файл#
```{literalinclude} resources/application-local.yml
:language: yaml
```
server:
port: 8080
liquibase:
base: &base
user: admin_user
password: admin_password
test:
<<: *base
default-schema: test
url: ${database.test.url}
access-control:
<<: *base
default-schema: test_access_control
url: ${database.access-control.url}
database:
base: &base
username: app_user
password: app_password
ip: 10.0.0.1
port: 5432
instance: test
test:
<<: *base
schema: test
url: jdbc:postgresql://${database.test.ip}:${database.test.port}/${database.test.instance}?currentSchema=${database.test.schema}&stringtype=unspecified&prepareThreshold=0
access-control:
<<: *base
schema: test_access_control
url: jdbc:postgresql://${database.access-control.ip}:${database.access-control.port}/${database.access-control.instance}?currentSchema=${database.access-control.schema}&stringtype=unspecified&prepareThreshold=0
keycloak:
url: http://10.0.0.1:8081/auth
login: kc_user
password: kc_password
togglz:
console:
enabled: false
springdoc:
api-docs:
enabled: false
swagger-ui:
enabled: false
test:
core:
unit:
confidential:
mask:
enabled: true
file-srv:
#Обратите внимание: изменение данных параметров в промышленной среде может привести к потере файлов
tenants:
DEFAULT:
functions:
STANDART:
storageName: s3test
bucketName: test_bucket
rootFolder: temp_folder
storages:
s3test:
type: S3
url: https://test_bucket.ru-moscow.sbercloud.ru
disableSsl: true
accessKeyId: key
secretKey: secret
signingRegion: "ru"
event:
kafka:
enabled: true
servers: 10.0.0.1:9092
stand.name: dev
clientId: local-notifications-consumer
notifications:
producer:
mainNotificationProducer:
# Deprecated(since = 0.17)
topicName: notifications
topicNameV2: notifications
consumer:
mainNotificationConsumer:
# Deprecated(since = 0.17)
topicName: notifications
topicNameV2: notifications
groupName: notifications-group
concurrency: 1
email:
host: 10.0.0.1
port: 25
mailFrom: "noreply@sbt.test"
properties:
domain: http://10.0.0.1/test/
auth:
context-token-mapping:
tenant: organization
externalId: sberpdi
firstName: given_name
lastName: family_name
middleName: patronymic
login: sberpdi
email: email
role-to-powers:
ROLE_USER: >
unit:read,
unit:write,
unit:create,
unit:update,
unit:delete,
unit_type:read,
space:read,
space:write,
user:read,
space_type:read,
user_group:read
ROLE_TENANT_ADMIN: >
unit_type:read,
unit_type:write,
link_type:write,
permission:write,
space_type:write,
space_type:read,
notification_schema:write,
notification_schema:read,
user_group:read,
user_group:write,
board:write
Часть файла#
Чтобы включить определенные фрагменты кода из файла, можно использовать следующие опции:
start-atилиstart-afterend-atилиend-beforelines
Пример 1#
Блок настроек между liquibase: и database::
```{literalinclude} resources/application-local.yml
:language: yaml
:start-at: "liquibase:"
:end-at: "database:"
```
liquibase:
base: &base
user: admin_user
password: admin_password
test:
<<: *base
default-schema: test
url: ${database.test.url}
access-control:
<<: *base
default-schema: test_access_control
url: ${database.access-control.url}
database:
Пример 2#
Блок настроек на 15-29 строке:
```{literalinclude} resources/application-local.yml
:language: yaml
:lines: 15-29
```
database:
base: &base
username: app_user
password: app_password
ip: 10.0.0.1
port: 5432
instance: test
test:
<<: *base
schema: test
url: jdbc:postgresql://${database.test.ip}:${database.test.port}/${database.test.instance}?currentSchema=${database.test.schema}&stringtype=unspecified&prepareThreshold=0
access-control:
<<: *base
schema: test_access_control
url: jdbc:postgresql://${database.access-control.ip}:${database.access-control.port}/${database.access-control.instance}?currentSchema=${database.access-control.schema}&stringtype=unspecified&prepareThreshold=0
Интерактивные аннотации строк кода#
С помощью синтаксиса rST есть возможность динамически показывать аннотации к строкам кода и оформлять содержимое аннотаций в произвольном виде. Используйте rST директиву code-annotations для создания аннотаций. Внутри code-annotations каждая аннотация идентифицируется как конкретный элемент упорядоченного списка. В комментируемой строке кода ссылка на аннотацию указывается после символа комментария характерного для используемого языка программирования.
```{eval-rst}
.. code-block:: python
width = 300; # (1)
height = 500; # (2)
.. code-annotations::
1. Задаем ширину области.
2. .. admonition:: Внимание
:class: attention
Высота не должна быть больше чем 500.
```
width = 300; # (1)
height = 500; # (2)
Задаем ширину области.
Внимание
Высота не должна быть больше чем 500.