Add shell prompt support
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -5,22 +5,25 @@
|
|||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
|
|
||||||
|
.line.prompt::before {
|
||||||
|
content: "$ ";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Error */
|
/* Error */
|
||||||
.chroma .err {
|
.err {
|
||||||
color: var(--accent-500);
|
color: var(--accent-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LineLink */
|
/* LineLink */
|
||||||
.chroma .lnlinks {
|
.lnlinks {
|
||||||
outline: none;
|
outline: none;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LineTableTD */
|
/* LineTableTD */
|
||||||
.chroma .lntd {
|
.lntd {
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -28,7 +31,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* LineTable */
|
/* LineTable */
|
||||||
.chroma .lntable {
|
.lntable {
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -36,12 +39,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* LineHighlight */
|
/* LineHighlight */
|
||||||
.chroma .hl {
|
.hl {
|
||||||
background-color: var(--background-200);
|
background-color: var(--background-200);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LineNumbersTable */
|
/* LineNumbersTable */
|
||||||
.chroma .lnt {
|
.lnt {
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
@@ -50,7 +53,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* LineNumbers */
|
/* LineNumbers */
|
||||||
.chroma .ln {
|
.ln {
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
@@ -60,358 +63,359 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Line */
|
/* Line */
|
||||||
.chroma .line {
|
.line {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Keyword */
|
/* Keyword */
|
||||||
.chroma .k {
|
.k {
|
||||||
color: var(--secondary-600);
|
color: var(--secondary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* KeywordConstant */
|
/* KeywordConstant */
|
||||||
.chroma .kc {
|
.kc {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* KeywordDeclaration */
|
/* KeywordDeclaration */
|
||||||
.chroma .kd {
|
.kd {
|
||||||
color: var(--secondary-600);
|
color: var(--secondary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* KeywordNamespace */
|
/* KeywordNamespace */
|
||||||
.chroma .kn {
|
.kn {
|
||||||
color: var(--secondary-600);
|
color: var(--secondary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* KeywordPseudo */
|
/* KeywordPseudo */
|
||||||
.chroma .kp {
|
.kp {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* KeywordReserved */
|
/* KeywordReserved */
|
||||||
.chroma .kr {
|
.kr {
|
||||||
color: var(--secondary-600);
|
color: var(--secondary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* KeywordType */
|
/* KeywordType */
|
||||||
.chroma .kt {
|
.kt {
|
||||||
color: var(--secondary-600);
|
color: var(--secondary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Name */
|
/* Name */
|
||||||
.chroma .nc {
|
.nc {
|
||||||
color: var(--accent-600);
|
color: var(--accent-600);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameConstant */
|
/* NameConstant */
|
||||||
.chroma .no {
|
.no {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameDecorator */
|
/* NameDecorator */
|
||||||
.chroma .nd {
|
.nd {
|
||||||
color: var(--secondary-700);
|
color: var(--secondary-700);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameEntity */
|
/* NameEntity */
|
||||||
.chroma .ni {
|
.ni {
|
||||||
color: var(--accent-600);
|
color: var(--accent-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameException */
|
/* NameException */
|
||||||
.chroma .ne {
|
.ne {
|
||||||
color: var(--accent-600);
|
color: var(--accent-600);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameLabel */
|
/* NameLabel */
|
||||||
.chroma .nl {
|
.nl {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameNamespace */
|
/* NameNamespace */
|
||||||
.chroma .nn {
|
.nn {
|
||||||
color: var(--secondary-600);
|
color: var(--secondary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameProperty */
|
/* NameProperty */
|
||||||
.chroma .py {
|
.py {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameTag */
|
/* NameTag */
|
||||||
.chroma .nt {
|
.nt {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameVariable */
|
/* NameVariable */
|
||||||
.chroma .nv {
|
.nv {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameVariableClass */
|
/* NameVariableClass */
|
||||||
.chroma .vc {
|
.vc {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameVariableGlobal */
|
/* NameVariableGlobal */
|
||||||
.chroma .vg {
|
.vg {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameVariableInstance */
|
/* NameVariableInstance */
|
||||||
.chroma .vi {
|
.vi {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameVariableMagic */
|
/* NameVariableMagic */
|
||||||
.chroma .vm {
|
.vm {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameFunction */
|
/* NameFunction */
|
||||||
.chroma .nf {
|
.nf {
|
||||||
color: var(--secondary-700);
|
color: var(--secondary-700);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NameFunctionMagic */
|
/* NameFunctionMagic */
|
||||||
.chroma .fm {
|
.fm {
|
||||||
color: var(--secondary-700);
|
color: var(--secondary-700);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Literal */
|
/* Literal */
|
||||||
.chroma .l {
|
.l {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralDate */
|
/* LiteralDate */
|
||||||
.chroma .ld {
|
.ld {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralString */
|
/* LiteralString */
|
||||||
.chroma .s {
|
.s {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringAffix */
|
/* LiteralStringAffix */
|
||||||
.chroma .sa {
|
.sa {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringBacktick */
|
/* LiteralStringBacktick */
|
||||||
.chroma .sb {
|
.sb {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringChar */
|
/* LiteralStringChar */
|
||||||
.chroma .sc {
|
.sc {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringDelimiter */
|
/* LiteralStringDelimiter */
|
||||||
.chroma .dl {
|
.dl {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringDoc */
|
/* LiteralStringDoc */
|
||||||
.chroma .sd {
|
.sd {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringDouble */
|
/* LiteralStringDouble */
|
||||||
.chroma .s2 {
|
.s2 {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringEscape */
|
/* LiteralStringEscape */
|
||||||
.chroma .se {
|
.se {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringHeredoc */
|
/* LiteralStringHeredoc */
|
||||||
.chroma .sh {
|
.sh {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringInterpol */
|
/* LiteralStringInterpol */
|
||||||
.chroma .si {
|
.si {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringOther */
|
/* LiteralStringOther */
|
||||||
.chroma .sx {
|
.sx {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringRegex */
|
/* LiteralStringRegex */
|
||||||
.chroma .sr {
|
.sr {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringSingle */
|
/* LiteralStringSingle */
|
||||||
.chroma .s1 {
|
.s1 {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralStringSymbol */
|
/* LiteralStringSymbol */
|
||||||
.chroma .ss {
|
.ss {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralNumber */
|
/* LiteralNumber */
|
||||||
.chroma .m {
|
.m {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralNumberBin */
|
/* LiteralNumberBin */
|
||||||
.chroma .mb {
|
.mb {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralNumberFloat */
|
/* LiteralNumberFloat */
|
||||||
.chroma .mf {
|
.mf {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralNumberHex */
|
/* LiteralNumberHex */
|
||||||
.chroma .mh {
|
.mh {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralNumberInteger */
|
/* LiteralNumberInteger */
|
||||||
.chroma .mi {
|
.mi {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralNumberIntegerLong */
|
/* LiteralNumberIntegerLong */
|
||||||
.chroma .il {
|
.il {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LiteralNumberOct */
|
/* LiteralNumberOct */
|
||||||
.chroma .mo {
|
.mo {
|
||||||
color: var(--primary-600);
|
color: var(--primary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Operator */
|
/* Operator */
|
||||||
.chroma .o {
|
.o {
|
||||||
color: var(--secondary-600);
|
color: var(--secondary-600);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* OperatorWord */
|
/* OperatorWord */
|
||||||
.chroma .ow {
|
.ow {
|
||||||
color: var(--secondary-600);
|
color: var(--secondary-600);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Comment */
|
/* Comment */
|
||||||
.chroma .c {
|
.c {
|
||||||
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CommentHashbang */
|
/* CommentHashbang */
|
||||||
.chroma .ch {
|
.ch {
|
||||||
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CommentMultiline */
|
/* CommentMultiline */
|
||||||
.chroma .cm {
|
.cm {
|
||||||
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CommentSingle */
|
/* CommentSingle */
|
||||||
.chroma .c1 {
|
.c1 {
|
||||||
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CommentSpecial */
|
/* CommentSpecial */
|
||||||
.chroma .cs {
|
.cs {
|
||||||
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CommentPreproc */
|
/* CommentPreproc */
|
||||||
.chroma .cp {
|
.cp {
|
||||||
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CommentPreprocFile */
|
/* CommentPreprocFile */
|
||||||
.chroma .cpf {
|
.cpf {
|
||||||
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
color: color-mix(in srgb, var(--text) 50%, var(--background-50));
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericDeleted */
|
/* GenericDeleted */
|
||||||
.chroma .gd {
|
.gd {
|
||||||
color: var(--accent-900);
|
color: var(--accent-900);
|
||||||
background-color: var(--accent-300);
|
background-color: var(--accent-300);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericEmph */
|
/* GenericEmph */
|
||||||
.chroma .ge {
|
.ge {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericError */
|
/* GenericError */
|
||||||
.chroma .gr {
|
.gr {
|
||||||
color: var(--accent-500);
|
color: var(--accent-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericHeading */
|
/* GenericHeading */
|
||||||
.chroma .gh {
|
.gh {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericInserted */
|
/* GenericInserted */
|
||||||
.chroma .gi {
|
.gi {
|
||||||
color: var(--primary-800);
|
color: var(--primary-800);
|
||||||
background-color: var(--primary-200);
|
background-color: var(--primary-200);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericOutput */
|
/* GenericOutput */
|
||||||
.chroma .go {
|
.go {
|
||||||
color: color-mix(in srgb, var(--text) 70%, var(--background-50));
|
color: color-mix(in srgb, var(--text) 70%, var(--background-50));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericPrompt */
|
/* GenericPrompt */
|
||||||
.chroma .gp {
|
.gp {
|
||||||
color: color-mix(in srgb, var(--text) 70%, var(--background-50));
|
color: color-mix(in srgb, var(--text) 70%, var(--background-50));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericStrong */
|
/* GenericStrong */
|
||||||
.chroma .gs {
|
.gs {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericSubheading */
|
/* GenericSubheading */
|
||||||
.chroma .gu {
|
.gu {
|
||||||
color: var(--primary-500);
|
color: var(--primary-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericTraceback */
|
/* GenericTraceback */
|
||||||
.chroma .gt {
|
.gt {
|
||||||
color: var(--secondary-600);
|
color: var(--secondary-600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GenericUnderline */
|
/* GenericUnderline */
|
||||||
.chroma .gl {
|
.gl {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@@ -59,6 +59,6 @@ p {
|
|||||||
margin: 1.5rem 0 1.5rem 0;
|
margin: 1.5rem 0 1.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
li:not(:last-child) {
|
li {
|
||||||
margin-bottom: 0.5rem;
|
margin: 0.5rem 0 0.5rem 0;
|
||||||
}
|
}
|
||||||
|
4
layouts/_default/_markup/render-codeblock-bash.html
Normal file
4
layouts/_default/_markup/render-codeblock-bash.html
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{{ $result := transform.HighlightCodeBlock . }}
|
||||||
|
{{ $pattern := `(?s)<span class="line"([^>]*)>(\s*<span[^>]*>)?\$ (.*?)(</span>\s*)</span>` }}
|
||||||
|
{{ $processed := replaceRE $pattern `<span class="line prompt"$1>$2$3$4</span>` $result.Wrapped }}
|
||||||
|
{{ $processed | safeHTML }}
|
Reference in New Issue
Block a user