diff --git a/doc/sphinx/book/box/authentication.rst b/doc/sphinx/book/box/authentication.rst
index 46dacbeccfb77cabb52dbc19ee10e3db52cf477e..24345dcbe11c5463a7ab2f9003d88f1379eacdc9 100644
--- a/doc/sphinx/book/box/authentication.rst
+++ b/doc/sphinx/book/box/authentication.rst
@@ -129,19 +129,27 @@ Notes: The maximum number of users is 32.
                Privileges and the _priv space
 ===========================================================
 
-The fields in the _priv space are: the numeric id of the user who gave the
-privilege ("grantor_id"), the numeric id of the user who received the
-privilege ("grantee_id"), the id of the object, the type of object - "space"
-or "function" or "universe", the type of operation - "read" or "write" or
-"execute" or a combination such as "read,write,execute".
-
-The function for granting a privilege is:
-:samp:`box.schema.user.grant({user-name-of-grantee}, {operation-type}, {object-type}, {object-name})` or
-:samp:`box.schema.user.grant({user-name-of-grantee}, {operation-type}, 'universe')`.
-
-The function for revoking a privilege is:
-:samp:`box.schema.user.revoke({user-name-of-grantee}, {operation-type}, {object-type}, {object-name})` or
-:samp:`box.schema.user.revoke({user-name-of-grantee}, {operation-type}, 'universe')`.
+The fields in the _priv space are:
+the numeric id of the user who gave the privilege ("grantor_id"),
+the numeric id of the user who received the privilege ("grantee_id"),
+the type of object - "space" or "function" or "universe",
+the numeric id of the object,
+the type of operation - "read" = 1, or "write" = 2, or
+"execute" = 4, or a combination such as "read,write,execute".
+
+The function for granting a privilege is: |br|
+:samp:`box.schema.user.grant({grantee-user-name-or-id}, {operation-type}, {object-type}, {object-name}[, {grant-option}])`
+or |br|
+:samp:`box.schema.user.grant({grantee-user-name-or-id}, {operation-type}, 'universe'[, {grant-option}])` |br|
+where 'universe' means 'all objects',
+and the optional grant-option can be :code:`{grantor=grantor_id}`,
+:code:`{if_not_exists=true|false}`, or both.
+
+The function for revoking a privilege is: |br|
+:samp:`box.schema.user.revoke({grantee-user-name-or-id}, {operation-type}, {object-type}, {object-name}[, {revoke-option}])`
+or |br|
+:samp:`box.schema.user.revoke({grantee-user-name-or-id}, {operation-type}, 'universe'[, {revoke-option}])` |br|
+where the optional revoke-option can be :code:`{if_exists=true|false}`.
 
 For example, here is a session where the admin user gave the guest user the
 privilege to read from a space named space55, and then took the privilege away:
@@ -156,8 +164,7 @@ privilege to read from a space named space55, and then took the privilege away:
 Notes: Generally privileges are granted or revoked by the owner of the object (the
 user who created it), or by the 'admin' user. Before dropping any objects
 or users, steps should be taken to ensure that all their associated
-privileges have been revoked. Only the 'admin' user can grant privileges
-for the 'universe'.
+privileges have been revoked. Only the 'admin' user can grant privileges for the 'universe'.
 
 
 ===========================================================
@@ -278,10 +285,6 @@ or indirectly.
 
     Drop a role.
 
-.. function:: info()
-
-    Get information about a role, including what privileges have been granted to the role.
-
 .. function:: grant(role-name, 'execute', 'role', role-name)
 
     Grant a role to a role.
diff --git a/doc/sphinx/book/box/index.rst b/doc/sphinx/book/box/index.rst
index 368dcf76fa43820a76d4b5e276bb239402fec1f2..a4481d185118f487bb45c998e23df1b139920239 100644
--- a/doc/sphinx/book/box/index.rst
+++ b/doc/sphinx/book/box/index.rst
@@ -112,7 +112,7 @@ all other indexes are called “secondary” indexes.
 
 An index definition may include identifiers of tuple fields
 and their expected types. The allowed types for indexed fields are NUM
-(64-bit unsigned integer between -9,223,372,036,854,775,807 and
+(unsigned integer between 0 and
 18,446,744,073,709,551,615), or STR (string, any sequence of octets), or ARRAY
 (a series of numbers for use with :ref:`RTREE indexes <RTREE>`.
 Take our example, which has the request:
@@ -120,7 +120,7 @@ Take our example, which has the request:
   i = s:create_index('primary', {type = 'hash', parts = {1, 'NUM'}})
 
 The effect is that, for all tuples in tester,
-field number 1 must exist and must be a 64-bit integer.
+field number 1 must exist and must contain an unsigned integer.
 
 Space definitions and index definitions are stored permanently
 in system spaces. It is possible to add, drop, or alter the
@@ -157,19 +157,24 @@ Tarantool can work with numbers, strings, booleans, tables, and userdata.
 .. _table: http://www.lua.org/pil/2.5.html
 .. _userdata: http://www.lua.org/pil/28.1.html
 
-In Lua a "number" is double-precision floating-point;
-however, for database storage Tarantool uses MsgPack rules,
-and MsgPack allows for both integer and floating-point values.
-So Tarantool will store a number as a float if the value
-contains a decimal point, and otherwise will store as an integer.
-Tarantool can store signed numbers, but not in indexed fields
--- when a field has a 'NUM' index, the values must be unsigned
-64-bit integers. Large numbers can be entered with exponential
-notation, for example 9e99. Large integers greater than
-100,000,000,000,000 (1e14) should be entered with the
-:func:`tonumber64 <tonumber64>`
-function. Storage is variable-length, so the smallest number
+In Lua a "number" is double-precision floating-point,
+but Tarantool allows both integer and floating-point values.
+Tarantool will try to store a number as floating-point if
+the value contains a decimal point or is very large (greater than 100 quadrillion = 1e14),
+otherwise Tarantool will store it as an integer.
+To ensure that even very large numbers will be treated as
+integers, use the :func:`tonumber64 <tonumber64>`
+function, or the LL (Long Long) suffix, or the ULL
+(Unsigned Long Long) suffix. Here are examples of numbers
+using regular notation, exponential notation, the ULL suffix,
+and the tonumber64 function:
+-55,  -2.7e+20, 100000000000000ULL, tonumber64('18446744073709551615').
+
+For database storage Tarantool uses MsgPack rules.
+Storage is variable-length, so the smallest number
 requires only one byte but the largest number requires nine bytes.
+When a field has a 'NUM' index, all values must be unsigned
+integers between 0 and 18,446,744,073,709,551,615.
 
 A "string" is a variable-length sequence of bytes,
 usually represented with alphanumeric characters inside single quotes.
diff --git a/doc/sphinx/book/box/triggers.rst b/doc/sphinx/book/box/triggers.rst
index d00b628b8869ae6b5cec13128554a2e12936b0e2..80864adbe38b83695107cefcb3fc164b113961bd 100644
--- a/doc/sphinx/book/box/triggers.rst
+++ b/doc/sphinx/book/box/triggers.rst
@@ -204,3 +204,34 @@ each trigger by replacing with ``nil``.
     box.space.T:run_triggers(false)
     box.space.T:on_replace(nil, F)
     box.space.T:on_replace(nil, F)
+
+===========================================================
+                    Getting a list of triggers
+===========================================================
+
+The code :code:`on_connect()` -- with no arguments --
+lists all connect-trigger functions;
+:code:`on_auth()` lists all authentication-trigger functions;
+:code:`on_disconnect()` lists all disconnect-trigger functions;
+:code:`on_replace()` lists all replace-trigger functions.
+In the following example a user finds that there are
+three functions associated with :code:`on_connect`
+triggers, and executes the third function, which happens to
+contain the line "print('function #3')".
+
+  | :codenormal:`tarantool>` :codebold:`box.session.on_connect()`
+  | :codenormal:`---`
+  | :codenormal:`- - 'function: 0x416ab6f8'`
+  | |nbsp| |nbsp| :codenormal:`- 'function: 0x416ab6f8'`
+  | |nbsp| |nbsp| :codenormal:`- 'function: 0x416ad800'`
+  | :codenormal:`...`
+  |
+  | :codenormal:`tarantool>` :codebold:`box.session.on_connect()[3]()`
+  | :codenormal:`function #3`
+  | :codenormal:`---`
+  | :codenormal:`...`
+
+
+
+
+
diff --git a/doc/sphinx/reference/fun.rst b/doc/sphinx/reference/fun.rst
index 6fbbd21b6f0bc82b2af3c4170e8bfdc31d2e8c0d..b51e968bd850192e055841dbeb0f684b4f03d4e0 100644
--- a/doc/sphinx/reference/fun.rst
+++ b/doc/sphinx/reference/fun.rst
@@ -16,20 +16,18 @@ Standard ML, Haskell, or Erlang.
 
 The full documentation is `On the luafun section of github`_.
 However, the first chapter can be skipped because installation
-is already done, it's inside Tarantool. All that is needed is the usual require request.
+is already done, it's inside Tarantool. All that is needed is the usual :code:`require` request.
 After that, all the operations described in the
 Lua fun manual will work, provided they are preceded by the
-name returned by the require request.
+name returned by the :code:`require` request.
 For example:
 
-.. code-block:: lua
-
-    localhost> fun = require('fun')
-    localhost> for _k, a in fun.range(3) do print(a) end
-    1
-    2
-    3
-    ---
-    ...
+    | :codenormal:`tarantool>` :codebold:`fun = require('fun')`
+    | :codenormal:`tarantool>` :codebold:`for _k, a in fun.range(3) do print(a) end`
+    | :codenormal:`1`
+    | :codenormal:`2`
+    | :codenormal:`3`
+    | :codenormal:`---`
+    | :codenormal:`...`
 
 .. _On the luafun section of github: http://rtsisyk.github.io/luafun
diff --git a/doc/sphinx/reference/json.rst b/doc/sphinx/reference/json.rst
index c1d5c20d3e60cbd2f4c600e3156ebf415521201d..977827293ed7189e2674bc741f9b73705f107fb3 100644
--- a/doc/sphinx/reference/json.rst
+++ b/doc/sphinx/reference/json.rst
@@ -16,31 +16,31 @@ The json package provides JSON manipulation routines. It is based on the
     :return: the original value reformatted as a JSON string.
     :rtype: string
 
-    .. code-block:: lua
-
-        tarantool> json=require('json')
-        ---
-        ...
-        tarantool> json.encode(123)
-        ---
-        - '123'
-        ...
-        tarantool> json.encode({123})
-        ---
-        - '[123]'
-        ...
-        tarantool> json.encode({123, 234, 345})
-        ---
-        - '[123,234,345]'
-        ...
-        tarantool> json.encode({abc = 234, cde = 345})
-        ---
-        - '{"cde":345,"abc":234}'
-        ...
-        tarantool> json.encode({hello = {'world'}})
-        ---
-        - '{"hello":["world"]}'
-        ...
+    | EXAMPLE
+    |
+    | :codenormal:`tarantool>` :codebold:`json=require('json')`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`json.encode(123)`
+    | :codenormal:`---`
+    | :codenormal:`- '123'`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`json.encode({123})`
+    | :codenormal:`---`
+    | :codenormal:`- '[123]'`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`json.encode({123, 234, 345})`
+    | :codenormal:`---`
+    | :codenormal:`- '[123,234,345]'`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`json.encode({abc = 234, cde = 345})`
+    | :codenormal:`---`
+    | :codenormal:`- '{"cde":345,"abc":234}'`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`json.encode({hello = {'world'}})`
+    | :codenormal:`---`
+    | :codenormal:`- '{"hello":["world"]}'`
+    | :codenormal:`...`
 
 .. function:: decode(string)
 
@@ -50,23 +50,23 @@ The json package provides JSON manipulation routines. It is based on the
     :return: the original contents formatted as a Lua table.
     :rtype: table
 
-    .. code-block:: lua
-
-        tarantool> json=require('json')
-        ---
-        ...
-        tarantool> json.decode('123')
-        ---
-        - 123
-        ...
-        tarantool> json.decode('[123, "hello"]')[2]
-        ---
-        - hello
-        ...
-        tarantool> json.decode('{"hello": "world"}').hello
-        ---
-        - world
-        ...
+    | EXAMPLE
+    |
+    | :codenormal:`tarantool>` :codebold:`json=require('json')`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`json.decode('123')`
+    | :codenormal:`---`
+    | :codenormal:`- 123`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`json.decode('[123, "hello"]')[2]`
+    | :codenormal:`---`
+    | :codenormal:`- hello`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`json.decode('{"hello": "world"}').hello`
+    | :codenormal:`---`
+    | :codenormal:`- world`
+    | :codenormal:`...`
 
 .. _json-null:
 
@@ -74,26 +74,26 @@ The json package provides JSON manipulation routines. It is based on the
 
     A value comparable to Lua "nil" which may be useful as a placeholder in a tuple.
 
-    .. code-block:: lua
-
-        tarantool> -- When nil is assigned to a Lua-table field, the field is null
-        tarantool> {nil, 'a', 'b'}
-        - - null
-        - a
-        - b
-        ...
-        tarantool>  -- When json.NULL is assigned to a Lua-table field, the field is json.NULL
-        tarantool> {json.NULL, 'a', 'b'}
-        ---
-        - - null
-        - a
-        - b
-        ...
-        tarantool> -- When json.NULL is assigned to a JSON field, the field is null
-        tarantool> json.encode({field2 = json.NULL, field1 = 'a',  field3 = 'c'})
-        ---
-        - '{"field2":null,"field1":"a","field3":"c"}'
-        ...
+    | EXAMPLE
+    |
+    | :codenormal:`tarantool>` :codebold:`-- When nil is assigned to a Lua-table field, the field is null`
+    | :codenormal:`tarantool>` :codebold:`{nil, 'a', 'b'}`
+    | :codenormal:`- - null`
+    | :codenormal:`- a`
+    | :codenormal:`- b`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`-- When json.NULL is assigned to a Lua-table field, the field is json.NULL`
+    | :codenormal:`tarantool>` :codebold:`{json.NULL, 'a', 'b'}`
+    | :codenormal:`---`
+    | :codenormal:`- - null`
+    | :codenormal:`- a`
+    | :codenormal:`- b`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`-- When json.NULL is assigned to a JSON field, the field is null`
+    | :codenormal:`tarantool>` :codebold:`json.encode({field2 = json.NULL, field1 = 'a',  field3 = 'c'})`
+    | :codenormal:`---`
+    | :codenormal:`- '{"field2":null,"field1":"a","field3":"c"}'`
+    | :codenormal:`...`
 
 .. _Lua-CJSON package by Mark Pulford: http://www.kyne.com.au/~mark/software/lua-cjson.php
 .. _the official documentation: http://www.kyne.com.au/~mark/software/lua-cjson-manual.html
diff --git a/doc/sphinx/reference/log.rst b/doc/sphinx/reference/log.rst
index 6ce6e77b95ee57ec80d9f87f2a4c6b924871c047..52cf0ee0057f2dc4553691c88054d72f74adc60e 100644
--- a/doc/sphinx/reference/log.rst
+++ b/doc/sphinx/reference/log.rst
@@ -23,6 +23,9 @@ system-generated by the server's internal code, or user-generated with the
                            ``log_level_function_name``, and ``message``.
                            Output will not occur if ``log_level_function_name``
                            is for a type greater than :ref:`log_level <logger>`.
+                           Messages may contain C-style format specifiers
+                           %d or %s, so :samp:`log.error('...%d...%s',{x},{y})`
+                           will work if x is a number and y is a string.
     :return: nil
 
 .. function:: logger_pid()
@@ -33,26 +36,22 @@ system-generated by the server's internal code, or user-generated with the
                      Example
 =================================================
 
-.. code-block:: lua
-
-        #From the shell:
-        #Start the server, do some requests, exit, and display the log, thus:
-        $ ~/tarantool/src/tarantool
-        tarantool> box.cfg{log_level=3, logger='tarantool.txt'}
-        tarantool> log = require('log')
-        tarantool> log.error('Error')
-        tarantool> log.info('Info')
-        tarantool> os.exit()
-        $ less tarantool.txt
+    | :codebold:`#From the shell:`
+    | :codebold:`#Start the server, do some requests, exit, and display the log, thus:`
+    | :codenormal:`$` :codebold:`~/tarantool/src/tarantool`
+    | :codenormal:`tarantool>` :codebold:`box.cfg{log_level=3, logger='tarantool.txt'}`
+    | :codenormal:`tarantool>` :codebold:`log = require('log')`
+    | :codenormal:`tarantool>` :codebold:`log.error('Error')`
+    | :codenormal:`tarantool>` :codebold:`log.info('Info %s', box.info.version)`
+    | :codenormal:`tarantool>` :codebold:`os.exit()`
+    | :codenormal:`$` :codebold:`less tarantool.txt`
 
 The output from the less command will look approximately like this:
 
-.. code-block:: lua
-
-    2...0 [5257] main/101/interactive C> version 1.6.3-355-ga4f762d
-    2...1 [5257] main/101/interactive C> log level 3
-    2...1 [5261] main/101/spawner C> initialized
-    2...0 [5257] main/101/interactive [C]:-1 E> Error
+    | :codenormal:`2...0 [5257] main/101/interactive C> version 1.6.3-355-ga4f762d`
+    | :codenormal:`2...1 [5257] main/101/interactive C> log level 3`
+    | :codenormal:`2...1 [5261] main/101/spawner C> initialized`
+    | :codenormal:`2...0 [5257] main/101/interactive [C]:-1 E> Error`
 
 The 'Error' line is visible in tarantool.txt preceded by the letter E.
 The 'Info' line is not present because the log_level is 3.
diff --git a/doc/sphinx/reference/other.rst b/doc/sphinx/reference/other.rst
index 3942560bdd7817e4e19eab4a0242eac61d09b059..e1c041686e78f77718b3d29354df7067990c2ff2 100644
--- a/doc/sphinx/reference/other.rst
+++ b/doc/sphinx/reference/other.rst
@@ -10,26 +10,26 @@
     number use floating-point arithmetic.) The ``tonumber64()`` function is
     added by Tarantool; the name is global.
 
-    .. code-block:: lua
-
-        tarantool> type(123456789012345), type(tonumber64(123456789012345))
-        ---
-        - number
-        - number
-        ...
-        tarantool> i = tonumber64('1000000000')
-        ---
-        ...
-        tarantool> type(i), i / 2, i - 2, i * 2, i + 2, i % 2, i ^ 2
-        ---
-        - number
-        - 500000000
-        - 999999998
-        - 2000000000
-        - 1000000002
-        - 0
-        - 1000000000000000000
-        ...
+    | EXAMPLE
+    |
+    | :codenormal:`tarantool>` :codebold:`type(123456789012345), type(tonumber64(123456789012345))`
+    | :codenormal:`---`
+    | :codenormal:`- number`
+    | :codenormal:`- number`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`i = tonumber64('1000000000')`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`type(i), i / 2, i - 2, i * 2, i + 2, i % 2, i ^ 2`
+    | :codenormal:`---`
+    | :codenormal:`- number`
+    | :codenormal:`- 500000000`
+    | :codenormal:`- 999999998`
+    | :codenormal:`- 2000000000`
+    | :codenormal:`- 1000000002`
+    | :codenormal:`- 0`
+    | :codenormal:`- 1000000000000000000`
+    | :codenormal:`...`
 
 .. function:: dostring(lua-chunk-string [, lua-chunk-string-argument ...])
 
@@ -44,32 +44,32 @@
     :return: whatever is returned by the Lua code chunk.
     :except: If there is a compilation error, it is raised as a Lua error.
 
-    .. code-block:: lua
-
-        tarantool> dostring('abc')
-        ---
-        error: '[string "abc"]:1: ''='' expected near ''<eof>'''
-        ...
-        tarantool> dostring('return 1')
-        ---
-        - 1
-        ...
-        tarantool> dostring('return ...', 'hello', 'world')
-        ---
-        - hello
-        - world
-        ...
-        tarantool> console = require('console'); console.delimiter('!')
-        tarantool> -- This means ignore line feeds until next '!'
-        tarantool> -- Use `double square brackets`_ to enclose multi-line literal here!
-        tarantool> dostring([[local f = function(key)
-                ->               t = box.space.tester:select{key};
-                ->               if t ~= nil then return t[1] else return nil end
-                ->               end
-                ->               return f(...)]], 1)!
-        ---
-        - null
-        ...
-        tarantool> console.delimiter('')!
+    | EXAMPLE
+    |
+    | :codenormal:`tarantool>` :codebold:`dostring('abc')`
+    | :codenormal:`---`
+    | :codenormal:`error: '[string "abc"]:1: ''='' expected near ''<eof>'''`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`dostring('return 1')`
+    | :codenormal:`---`
+    | :codenormal:`- 1`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`dostring('return ...', 'hello', 'world')`
+    | :codenormal:`---`
+    | :codenormal:`- hello`
+    | :codenormal:`- world`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`console = require('console'); console.delimiter('!')`
+    | :codenormal:`tarantool>` :codebold:`-- This means ignore line feeds until next '!'`
+    | :codenormal:`tarantool>` :codebold:`-- Use` `double square brackets`_ :codebold:`to enclose multi-line literal here!`
+    | :codenormal:`tarantool>` :codebold:`dostring([[local f = function(key)`
+    | |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| :codenormal:`->` :codebold:`t = box.space.tester:select{key};`
+    | |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| :codenormal:`->` :codebold:`if t ~= nil then return t[1] else return nil end`
+    | |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| :codenormal:`->` :codebold:`end`
+    | |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| :codenormal:`->` :codebold:`return f(...)]], 1)!`
+    | :codenormal:`---`
+    | :codenormal:`- null`
+    | :codenormal:`...`
+    | :codenormal:`tarantool> console.delimiter('')!`
 
 .. _double square brackets: http://www.lua.org/pil/2.4.html
diff --git a/doc/sphinx/reference/pickle.rst b/doc/sphinx/reference/pickle.rst
index c4a0747545490c09e246057ee2d51f87976408c9..39e0844f5ecc45c8cbe4a24c8f8f70dcd1c37d8b 100644
--- a/doc/sphinx/reference/pickle.rst
+++ b/doc/sphinx/reference/pickle.rst
@@ -60,35 +60,36 @@
 
     :except: unknown format specifier.
 
-    .. code-block:: lua
-
-        tarantool> pickle = require('pickle')
-        ---
-        ...
-        tarantool> box.space.tester:insert{0, 'hello world'}
-        ---
-        - [0, 'hello world']
-        ...
-        tarantool> box.space.tester:update({0}, {{'=', 2, 'bye world'}})
-        ---
-        - [0, 'bye world']
-        ...
-        tarantool> box.space.tester:update({0}, {{'=', 2, pickle.pack('iiA', 0, 3, 'hello')}})
-        ---
-        - [0, "\0\0\0\0\x03\0\0\0hello"]
-        ...
-        tarantool> box.space.tester:update({0}, {{'=', 2, 4}})
-        ---
-        - [0, 4]
-        ...
-        tarantool> box.space.tester:update({0}, {{'+', 2, 4}})
-        ---
-        - [0, 8]
-        ...
-        tarantool> box.space.tester:update({0}, {{'^', 2, 4}})
-        ---
-        - [0, 12]
-        ...
+    | EXAMPLE
+    |
+    | 
+    | :codenormal:`tarantool>` :codebold:`pickle = require('pickle')`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`box.space.tester:insert{0, 'hello world'}`
+    | :codenormal:`---`
+    | :codenormal:`- [0, 'hello world']`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`box.space.tester:update({0}, {{'=', 2, 'bye world'}})`
+    | :codenormal:`---`
+    | :codenormal:`- [0, 'bye world']`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`box.space.tester:update({0}, {{'=', 2, pickle.pack('iiA', 0, 3, 'hello')}})`
+    | :codenormal:`---`
+    | :codenormal:`- [0, "\0\0\0\0\x03\0\0\0hello"]`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`box.space.tester:update({0}, {{'=', 2, 4}})`
+    | :codenormal:`---`
+    | :codenormal:`- [0, 4]`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`box.space.tester:update({0}, {{'+', 2, 4}})`
+    | :codenormal:`---`
+    | :codenormal:`- [0, 8]`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`box.space.tester:update({0}, {{'^', 2, 4}})`
+    | :codenormal:`---`
+    | :codenormal:`- [0, 12]`
+    | :codenormal:`...`
 
 .. function:: unpack(format, binary-string)
 
@@ -100,40 +101,39 @@
     :return: A list of strings or numbers.
     :rtype:  table
 
-    .. code-block:: lua
-
-        tarantool> pickle = require('pickle')
-        ---
-        ...
-        tarantool> -- this means following commands must end with '!'
-        tarantool> console = require('console'); console.delimiter('!')
-        tarantool> tuple = box.space.tester:replace{0}!
-        ---
-        ...
-        tarantool> string.len(tuple[1])!
-        ---
-        - 1
-        ...
-        tarantool> pickle.unpack('b', tuple[1])!
-        ---
-        - 48
-        ...
-        tarantool> pickle.unpack('bsi', pickle.pack('bsi', 255, 65535, 4294967295))!
-        ---
-        - 255
-        - 65535
-        - 4294967295
-        ...
-        tarantool> pickle.unpack('ls', pickle.pack('ls', tonumber64('18446744073709551615'), 65535))!
-        ---
-        - 18446744073709551615
-        - 65535
-        ...
-        tarantool> num, str, num64 = pickle.unpack('sAl', pickle.pack('sAl', 666, 'string',
-                ->                   tonumber64('666666666666666')))!
-        ---
-        ...
-        tarantool> console.delimiter('') -- back to normal: commands end with line feed!
-
+    | EXAMPLE
+    |
+    | :codenormal:`tarantool>` :codebold:`pickle = require('pickle')`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`-- this means following commands must end with '!'`
+    | :codenormal:`tarantool>` :codebold:`console = require('console'); console.delimiter('!')`
+    | :codenormal:`tarantool>` :codebold:`tuple = box.space.tester:replace{0}!`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`string.len(tuple[1])!`
+    | :codenormal:`---`
+    | :codenormal:`- 1`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`pickle.unpack('b', tuple[1])!`
+    | :codenormal:`---`
+    | :codenormal:`- 48`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`pickle.unpack('bsi', pickle.pack('bsi', 255, 65535, 4294967295))!`
+    | :codenormal:`---`
+    | :codenormal:`- 255`
+    | :codenormal:`- 65535`
+    | :codenormal:`- 4294967295`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`pickle.unpack('ls', pickle.pack('ls', tonumber64('18446744073709551615'), 65535))!`
+    | :codenormal:`---`
+    | :codenormal:`- 18446744073709551615`
+    | :codenormal:`- 65535`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`num, str, num64 = pickle.unpack('sAl', pickle.pack('sAl', 666, 'string',`
+    | |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| :codenormal:`->` :codebold:`tonumber64('666666666666666')))!`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`console.delimiter('') -- back to normal: commands end with line feed!`
 
 .. _pack: http://perldoc.perl.org/functions/pack.html
diff --git a/doc/sphinx/reference/socket.rst b/doc/sphinx/reference/socket.rst
index d6ae0dbcec7f8762c81323047ad48545fbd67033..9ad7f28849959233df2b3b048b6e982dd3b4d47f 100644
--- a/doc/sphinx/reference/socket.rst
+++ b/doc/sphinx/reference/socket.rst
@@ -115,11 +115,8 @@ the function invocations will look like ``sock:function_name(...)``.
     :return: A table containing these fields: "host", "family", "type", "protocol", "port".
     :rtype:  table
 
-    .. code-block:: lua
-
-        tarantool> socket.getaddrinfo('tarantool.org', 'http')
-
-    will return variable information such as
+    | :codenormal:`tarantool>` :codebold:`socket.getaddrinfo('tarantool.org', 'http')`
+    | will return variable information such as
 
     .. code-block:: yaml
 
@@ -430,35 +427,32 @@ server and tarantool.org, then an HTTP "head" message is sent, and a response
 is received: "``HTTP/1.1 200 OK``". This is not a useful way to communicate
 with this particular site, but shows that the system works.
 
-
-.. code-block:: lua
-
-    tarantool> socket = require('socket')
-    ---
-    ...
-    tarantool> sock = socket.tcp_connect('tarantool.org', 80)
-    ---
-    ...
-    tarantool> type(sock)
-    ---
-    - table
-    ...
-    tarantool> sock:error()
-    ---
-    - null
-    ...
-    tarantool> sock:send("HEAD / HTTP/1.0\r\nHost: tarantool.org\r\n\r\n")
-    ---
-    - true
-    ...
-    tarantool> sock:read(17)
-    ---
-    - "HTTP/1.1 200 OK\r\n"
-    ...
-    tarantool> sock:close()
-    ---
-    - true
-    ...
+    | :codenormal:`tarantool>` :codebold:`socket = require('socket')`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock = socket.tcp_connect('tarantool.org', 80)`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`type(sock)`
+    | :codenormal:`---`
+    | :codenormal:`- table`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock:error()`
+    | :codenormal:`---`
+    | :codenormal:`- null`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock:send("HEAD / HTTP/1.0\r\nHost: tarantool.org\r\n\r\n")`
+    | :codenormal:`---`
+    | :codenormal:`- true`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock:read(17)`
+    | :codenormal:`---`
+    | :codenormal:`- "HTTP/1.1 200 OK\r\n"`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock:close()`
+    | :codenormal:`---`
+    | :codenormal:`- true`
+    | :codenormal:`...`
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Use of a UDP socket on localhost
@@ -470,40 +464,38 @@ to ``sock_1``. Using ``sock_1``, receive a message. Display the received
 message. Close both connections. |br| This is not a useful way for a
 computer to communicate with itself, but shows that the system works.
 
-.. code-block:: lua
-
-    tarantool> socket = require('socket')
-    ---
-    ...
-    tarantool>  sock_1 = socket('AF_INET', 'SOCK_DGRAM', 'udp')
-    ---
-    ...
-    tarantool>  sock_1:bind('127.0.0.1')
-    ---
-    - true
-    ...
-    tarantool>  sock_2 = socket('AF_INET', 'SOCK_DGRAM', 'udp')
-    ---
-    ...
-    tarantool>  sock_2:sendto('127.0.0.1', sock_1:name().port,'X')
-    ---
-    - true
-    ...
-    tarantool>  message = sock_1:recvfrom()
-    ---
-    ...
-    tarantool>  message
-    ---
-    - X
-    ...
-    tarantool>  sock_1:close()
-    ---
-    - true
-    ...
-    tarantool>  sock_2:close()
-    ---
-    - true
-    ...
+    | :codenormal:`tarantool>` :codebold:`socket = require('socket')`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock_1 = socket('AF_INET', 'SOCK_DGRAM', 'udp')`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock_1:bind('127.0.0.1')`
+    | :codenormal:`---`
+    | :codenormal:`- true`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock_2 = socket('AF_INET', 'SOCK_DGRAM', 'udp')`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock_2:sendto('127.0.0.1', sock_1:name().port,'X')`
+    | :codenormal:`---`
+    | :codenormal:`- true`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`message = sock_1:recvfrom()`
+    | :codenormal:`---`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`message`
+    | :codenormal:`---`
+    | :codenormal:`- X`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock_1:close()`
+    | :codenormal:`---`
+    | :codenormal:`- true`
+    | :codenormal:`...`
+    | :codenormal:`tarantool>` :codebold:`sock_2:close()`
+    | :codenormal:`---`
+    | :codenormal:`- true`
+    | :codenormal:`...`
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Use tcp_server to accept file contents sent with socat