Как добавить подсветку синтаксиса в магию строк SQL, магию ячеек и настраиваемую команду в блокноте jupyter?

Я искал способы выделить коды SQL в блокноте jupyter. Мне удалось выделить только магию ячеек SQL, но не магию линий и пользовательские настройки.

Дело 1 (работает)

Выделите магию ячейки (ячейка начинается с %% sql)

Ссылка: добавление подсветки синтаксиса в магию ячеек ноутбука Jupyter

require(['notebook/js/codecell'], function(codecell) {
  codecell.CodeCell.options_default.highlight_modes['magic_text/x-mssql'] = {'reg':[/^%%sql/]} ;
  Jupyter.notebook.events.one('kernel_ready.Kernel', function(){
  Jupyter.notebook.get_cells().map(function(cell){
      if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;
  });
});

Случай 2 (не работает)

Line Magic: строка начинается с% sql
Моя попытка: изменить регулярное выражение на ^%sql, но оно не сработало.

%sql select * from Products limit 5;

Случай 3 (не работает)

Как синтаксически подсветить пользовательские ячейки (ячейка начинается С## %%)
Моя попытка: пытался изменить регулярное выражение на ^##%%sql

##%%sql
q = " select * from customer limit 2;"
execute_query(q,dbname)

Пример изображения

На рисунке мы видим, что команды cell magic% sql не выделены. Я хочу, чтобы они были выделены. enter image description here

Ссылки по теме

Ответы

Ответ 1

Это будет работать даже для заданий, как в третьей ячейке. В настоящее время несколько языков подсветки недоступны. Так что это будет синтаксис Python или SQL, что бы ни стояло первым.

require(['notebook/js/codecell'], function (codecell) {
    codecell.CodeCell.options_default.highlight_modes['magic_text/x-mssql'] = { 'reg': [/%?%sql/] };
    Jupyter.notebook.events.one('kernel_ready.Kernel', function () {
        Jupyter.notebook.get_cells().map(function (cell) {
            if (cell.cell_type == 'code') { cell.auto_highlight(); }
        });
    });
});

enter image description here