소스코드 플러그인 비교

개요

기술 블로그에서 코드를 게시글에 넣을 때 단순히 일반 텍스트로 삽입하면 가독성이 크게 떨어집니다. 들여쓰기가 무너지고, 문법 요소가 구분되지 않으며, 긴 줄은 줄 번호 없이 보기 어렵습니다. WordPress에서 소스코드를 게시글에 삽입하고 구문 강조(Syntax Highlight) 처리하기 위해 사용하는 소스코드 플러그인들을 비교합니다. Code Syntax Block, Enlighter, SyntaxHighlighter Evolved 등 주요 플러그인의 기능, 지원 언어, 편의성을 비교하여 환경에 맞는 플러그인 선택에 도움을 드립니다.

이 글에서는 Code Syntax Block, Enlighter, SyntaxHighlighter Evolved 세 플러그인을 비교하고, Enlighter의 다양한 테마를 같은 Python 코드로 시각적으로 비교합니다.

플러그인 비교 — 특징 및 추천

세 플러그인은 각각 다른 방향성을 가집니다. Code Syntax Block은 WordPress 5.0 이후의 블록 에디터(Gutenberg)와 완벽하게 통합되며 별도 설정 없이 바로 사용할 수 있습니다. 지원 언어는 제한적이지만 최신 WordPress 블록 기반 편집 경험에 가장 잘 맞습니다. 가볍고 추가 JavaScript 의존성이 없다는 것이 장점입니다.

Enlighter는 이 블로그에서 사용 중인 플러그인으로, 가장 많은 테마(Enlighter, Godzilla, Beyond, Classic, Mowtwo, Eclipse, Dracula, Monokai 등)를 제공합니다. 텍스트 에디터 환경에서도 잘 동작하며, EnlighterJSRAW 클래스를 가진 <pre> 블록만 있으면 JavaScript가 자동으로 렌더링합니다. 터미널/쉘 출력을 포함한 generic 언어 지원이 특히 인프라 관련 블로그에 유용합니다.

SyntaxHighlighter Evolved는 Alex Gorbatchev의 SyntaxHighlighter 라이브러리 기반으로 오랜 역사를 가집니다. 단축코드(shortcode) 방식([code lang="java"])으로 작성하며, 클래식 에디터와의 호환성이 좋습니다.

  • Code Syntax Block ( Python, Default )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Default )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Enlighter )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Godzilla )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Beyond )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Classic )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Mowtwo )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Eclipse )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Droide )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Minimal )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Atomic )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Rowhammer )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Bootstrap4 )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Dracula )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

  • Enlighter Sourcecode ( Python, Monokai )
def get_prime_nums(s, e):
    prime_nums = []

    for i in range(s, e + 1):
        flag = 1
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                flag = 0
                break

        if flag == 1:
            prime_nums.append(i)

    return prime_nums

if __name__ == '__main__':
    s = int(input("Insert Start Number : "))
    e = int(input("Insert Finish Number : "))
#    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
"""
    print(get_prime_nums(s, e))
// 소수를 출력합니다.

Enlighter 테마 선택 기준

Enlighter는 사이트 전체 기본 테마를 WordPress 관리자 화면의 Enlighter 설정(Settings > Enlighter)에서 지정할 수 있습니다. 개별 코드 블록에서 data-enlighter-theme 속성으로 테마를 덮어쓸 수도 있습니다. 위에서 비교한 결과 개인적으로는 다크 계열의 Dracula 또는 Monokai 테마가 터미널 명령어와 함께 쓸 때 가독성이 높습니다. 라이트 테마를 선호한다면 Enlighter(기본)Classic이 깔끔합니다. 어두운 배경과 높은 대비를 원하면 GodzillaEclipse가 좋습니다.

참고

참고 문서: SyntaxHighlighter Evolved 플러그인 · Code Syntax Block 플러그인

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.