본문으로 건너뛰기

CLI

shikiphp에는 bin/shikiphp에 있는 소형 명령줄 도구가 포함되어 있습니다(프로젝트에 vendor/bin/shikiphp로 설치됨). 명령어는 세 가지입니다. highlight는 파일 하나를 HTML로 렌더링하고, langs와 themes는 번들에 포함된 항목을 나열합니다.

highlight

파일을 HTML 형식으로 하이라이트해 stdout에 출력합니다.

셸
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
  • <file> — 읽을 파일의 경로입니다. 기존 파일이어야 하며 표준 입력은 읽지 않습니다.
  • --lang — 언어 ID 또는 별칭입니다. 생략하면 파일 확장자를 그대로 ID로 사용하며, 확장자가 없으면 txt로 대체합니다.
  • --theme — 테마 ID입니다. 기본값은 github-dark입니다.
셸
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord

출력은 codeToHtml가 반환하는 단일 테마 <pre class="shiki …"> 블록과 동일하며, 뒤에 줄바꿈이 추가됩니다. 따라서 파일로 바로 리디렉션할 수 있습니다:

셸
vendor/bin/shikiphp highlight src/App.php --theme=github-light > app.html

이 명령어에는 다른 옵션이 없습니다. 이중 테마, 변환기 또는 다른 옵션이 필요하면 대신 PHP API를 호출하세요.

옵션 및 인수

옵션은 --name=value 형식이어야 합니다. --로 시작하는 다른 인수는 무시되며, --로 시작하지 않는 마지막 인수를 파일로 취급합니다. 따라서 --lang php file.rs는 file.rs를 Rust로 하이라이트합니다. --lang은 무시되고, php은 file.rs로 대체되며, 언어는 .rs 확장자에서 가져옵니다.

언어 추론

--lang가 없으면 확장자를 변경 없이 언어 ID로 사용합니다. 확장자 자체가 번들 ID 또는 별칭인 경우에는 작동합니다(php, js, ts, tsx, py, rs, go, md, yml, json, sh 등. 언어 참조). 다음의 경우에는 작동하지 않습니다:

  • Makefile 또는 Dockerfile처럼 확장자가 없는 파일은 txt로 대체됩니다.
  • .txt처럼 언어 ID가 아닌 확장자입니다.

txt는 번들 언어가 아니므로 현재 두 경우 모두 Unknown language "txt" 오류(#3)로 중단됩니다. 이러한 파일에는 --lang를 전달하세요:

셸
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make

langs

번들이 언어로 허용하는 모든 ID를 한 줄에 하나씩 출력합니다.

셸
vendor/bin/shikiphp langs

목록은 350줄입니다. 253개의 번들 문법 ID가 번들 순서(알파벳순 아님)로 나오고, 이어서 별칭 97개(js, cjs, mjs 등)가 표시됩니다. 문법 ID에는 vue-directives 및 es-tag-css처럼 다른 문법에 포함되는 보조 문법 18개도 포함됩니다. 이름과 별칭이 있는 전체 목록은 언어를 참조하세요. 알파벳순 목록을 보려면 sort로 파이프하세요.

themes

번들에 포함된 모든 테마 ID를 알파벳순으로 한 줄에 하나씩 출력합니다(테마 65개).

셸
vendor/bin/shikiphp themes

이름과 라이트/다크 유형이 포함된 목록은 테마를 참조하세요.

도움말 및 종료 상태

명령어 없이 실행하거나 -h / --help / help를 사용하면 사용법을 출력합니다.

셸
vendor/bin/shikiphp --help
상황 출력 종료 상태
성공 또는 도움말 stdout 0
알 수 없는 명령어 stderr에 Unknown command: <name> 1
파일 없이 highlight를 실행하거나 파일이 존재하지 않음 stderr에 사용법 줄 1
알 수 없는 언어 또는 테마 처리되지 않은 Shikiphp\Exceptions\Highlight(스택 추적을 포함한 PHP 치명적 오류) 255