iPython Notebook - Показване на изходния код за bash скрипт с подчертаване на синтаксиса

Как мога да покажа съдържанието на bash скрипта с подчертаване на синтаксиса в бележника на iPython?

Моят работен процес обикновено се състои от извикване на различни bash скриптове и бих искал да документирам изходния код за тези скриптове в моя бележник. Текущото ми решение е да направя bash клетка и cat скрипта, така че съдържанието й да се показва в изхода на клетката. Скриптът обаче не е форматиран и това също е малко тромаво.

Пример:

Клетка с код:

%%bash
cat myScript.sh

Изход:

#! /bin/bash for i in {1..3}; do [ "$i" == "2" ] && echo "This is my bash script"; done

Желан изход (с подчертаване на синтаксиса):

#! /bin/bash
for i in {1..3}; do [ "$i" == "2" ] && echo "This is my bash script"; done

person mlbendall    schedule 07.11.2014    source източник


Отговори (1)


Можете да използвате пигменти по подобен начин на този въпрос. Ето един пример:

def highlight_source_bash(filename):
    """For use inside an IPython notebook: given a filename, print the source code. Bash version."""

    from pygments import highlight
    from pygments.lexers import BashLexer
    from pygments.formatters import HtmlFormatter
    from IPython.core.display import HTML

    with open (filename, "r") as myfile:
        data = myfile.read()

    return HTML(highlight(data, BashLexer(), HtmlFormatter(full=True)))

Тогава извикването на highlight_source_bash('myScript.sh') трябва да даде желания резултат.

person Ian    schedule 08.11.2014