Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This change adds a first draft of a docs site for `gh-dash` using Hugo. It includes: - Install instructions - Full CLI usage information - Enumerated information for the builtin keybinding commands - Full coverage of the configuration, including schematization and docs - Instructions for how to get hover-help, IntelliSense, and validation for configurations in VS Code. - A unified UI that displays UI icon elements in the docs the same as in the terminal - Examples - The contribution guide, minimally ported There is a lot this does not address: - This was high-touch work to get the schemas generated and available - There is no "live edit" for configurations so users can select options - This does not add CI or deployment - that needs to be worked out (Netlify or GitHub Pages, likely) - This does not have a changelog on the site - This does not have additional gifs of usage - This does not have a versioning scheme for the configuration - This does not have a custom favicon for the site But it *is* a first draft and something we can start from, look to port to another toolset, or investigate improved maintainability for the schemas in the future - maybe with `go generate` or similar. > **Note:** > The entire addition is colocated in `/docs`. We could split out everything but the content > into `/site` and reference the docs from there, which might be cleaner/less burdensome to > docs contributors. The schemas are defined in `/docs/data/schemas` and use some custom > properties that the site uses for documentation but throws away when publishing the schema. - Resolves #260
- Loading branch information
1 parent
a499a22
commit 80a40aa
Showing
51 changed files
with
3,008 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
.hugo_build.lock | ||
resources/ | ||
public/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,327 @@ | ||
// Tokyo Night Colors | ||
$tn-comment: #444b6a; | ||
$tn-variable: #a9b1cb; | ||
$tn-constant: #9ece6a; | ||
$tn-function: #0db9d7; | ||
$tn-string: #7cce6a; | ||
$tn-black: #1a1b26; | ||
$tn-red: #f7768e; | ||
$tn-green: #41a6b5; | ||
$tn-yellow: #e0af68; | ||
$tn-blue: #7aa2f7; | ||
$tn-purple: #bb9af7; | ||
$tn-cyan: #7dcfff; | ||
$tn-white: #9a989f; | ||
$tn-brightBlack: #1a1b26; | ||
$tn-brightRed: #f7768e; | ||
$tn-brightGreen: #41a6b5; | ||
$tn-brightYellow: #e0af68; | ||
$tn-brightBlue: #7aa2f7; | ||
$tn-brightPurple: #bb9af7; | ||
$tn-brightCyan: #7dcfff; | ||
$tn-brightWhite: #acb0d0; | ||
$tn-background: #16161e; | ||
$tn-foreground: #787c99; | ||
// Set the background colors for displaying UI icons | ||
$ui-background-light: #e1e2e7; // Solarized Light background | ||
$ui-background-dark: $tn-black; // TokyoNight background | ||
// Defined by their order in the config | ||
$ui-text-primary-light: #000000; | ||
$ui-text-primary-dark: #ffffff; | ||
$ui-text-secondary-light: #808080; | ||
$ui-text-secondary-dark: #c6c6c6; | ||
$ui-text-inverted-light: #ffffff; | ||
$ui-text-inverted-dark: #303030; | ||
$ui-text-faint-light: #c0c0c0; | ||
$ui-text-faint-dark: #8a8a8a; | ||
$ui-text-warning-light: #800000; | ||
$ui-text-warning-dark: #800000; | ||
$ui-text-success-light: #008000; | ||
$ui-text-success-dark: #008000; | ||
$ui-border-primary-light: #ffffff; | ||
$ui-border-primary-dark: #808080; | ||
$ui-border-secondary-light: #808080; | ||
$ui-border-secondary-dark: #c0c0c0; | ||
$ui-border-faint-light: #e4e4e4; | ||
$ui-border-faint-dark: #000000; | ||
$ui-background-selected-light: #c0c0c0; | ||
$ui-background-selected-dark: #808080; | ||
// Arbitrary from source code | ||
$open-work-item: #42a0fa; | ||
$pr-merged: #a371f7; | ||
$pr-closed: #c38080; | ||
|
||
pre.chroma { | ||
background: $tn-black; | ||
} | ||
|
||
.ui-icon { | ||
code { | ||
padding: 0.25rem 0.5rem; | ||
background-color: inherit; | ||
} | ||
background-color: $ui-background-light; | ||
@media (prefers-color-scheme: dark) { | ||
background-color: $ui-background-dark; | ||
} | ||
} | ||
|
||
.ui-background { | ||
background-color: $ui-background-light; | ||
@media (prefers-color-scheme: dark) { | ||
background-color: $ui-background-dark; | ||
} | ||
} | ||
|
||
|
||
.primary-text { | ||
color: $ui-text-primary-light; | ||
@media (prefers-color-scheme: dark) { | ||
color: $ui-text-primary-dark | ||
} | ||
&.dark { | ||
background-color: $ui-background-dark; | ||
color: $ui-text-primary-dark; | ||
} | ||
&.light { | ||
background-color: $ui-background-light; | ||
color: $ui-text-primary-light; | ||
} | ||
} | ||
|
||
.secondary-text { | ||
color: $ui-text-secondary-light; | ||
@media (prefers-color-scheme: dark) { | ||
color: $ui-text-secondary-dark | ||
} | ||
&.dark { | ||
background-color: $ui-background-dark; | ||
color: $ui-text-secondary-dark; | ||
} | ||
&.light { | ||
background-color: $ui-background-light; | ||
color: $ui-text-secondary-light; | ||
} | ||
} | ||
|
||
.inverted-text { | ||
background-color: $ui-background-light; | ||
color: $ui-text-inverted-light; | ||
@media (prefers-color-scheme: dark) { | ||
background-color: $ui-background-dark; | ||
color: $ui-text-inverted-dark | ||
} | ||
&.dark { | ||
background-color: $ui-background-light; | ||
color: $ui-text-inverted-dark; | ||
} | ||
&.light { | ||
background-color: $ui-background-dark; | ||
color: $ui-text-inverted-light; | ||
} | ||
} | ||
|
||
.faint-text { | ||
color: $ui-text-faint-light; | ||
@media (prefers-color-scheme: dark) { | ||
color: $ui-text-faint-dark | ||
} | ||
&.dark { | ||
background-color: $ui-background-dark; | ||
color: $ui-text-faint-dark; | ||
} | ||
&.light { | ||
background-color: $ui-background-light; | ||
color: $ui-text-faint-light; | ||
} | ||
} | ||
|
||
.warning-text { | ||
color: $ui-text-warning-light; | ||
@media (prefers-color-scheme: dark) { | ||
color: $ui-text-warning-dark | ||
} | ||
&.dark { | ||
background-color: $ui-background-dark; | ||
color: $ui-text-warning-dark; | ||
} | ||
&.light { | ||
background-color: $ui-background-light; | ||
color: $ui-text-warning-light; | ||
} | ||
} | ||
|
||
.success-text { | ||
color: $ui-text-success-light; | ||
@media (prefers-color-scheme: dark) { | ||
color: $ui-text-success-dark | ||
} | ||
&.dark { | ||
background-color: $ui-background-dark; | ||
color: $ui-text-success-dark; | ||
} | ||
&.light { | ||
background-color: $ui-background-light; | ||
color: $ui-text-success-light; | ||
} | ||
} | ||
|
||
.primary-border { | ||
color: $ui-border-primary-light; | ||
@media (prefers-color-scheme: dark) { | ||
color: $ui-border-primary-dark | ||
} | ||
&.dark { | ||
background-color: $ui-background-dark; | ||
color: $ui-border-primary-dark; | ||
} | ||
&.light { | ||
background-color: $ui-background-light; | ||
color: $ui-border-primary-light; | ||
} | ||
} | ||
|
||
.secondary-border { | ||
color: $ui-border-secondary-light; | ||
@media (prefers-color-scheme: dark) { | ||
color: $ui-border-secondary-dark | ||
} | ||
&.dark { | ||
background-color: $ui-background-dark; | ||
color: $ui-border-secondary-dark; | ||
} | ||
&.light { | ||
background-color: $ui-background-light; | ||
color: $ui-border-secondary-light; | ||
} | ||
} | ||
|
||
.faint-border { | ||
color: $ui-border-faint-light; | ||
@media (prefers-color-scheme: dark) { | ||
color: $ui-border-faint-dark | ||
} | ||
&.dark { | ||
background-color: $ui-background-dark; | ||
color: $ui-border-faint-dark; | ||
} | ||
&.light { | ||
background-color: $ui-background-light; | ||
color: $ui-border-faint-light; | ||
} | ||
} | ||
|
||
.selected-background { | ||
color: $ui-background-selected-light; | ||
@media (prefers-color-scheme: dark) { | ||
color: $ui-background-selected-dark | ||
} | ||
&.dark { | ||
color: $ui-text-primary-dark; | ||
background-color: $ui-background-selected-dark; | ||
} | ||
&.light { | ||
color: $ui-text-primary-light; | ||
background-color: $ui-background-selected-light; | ||
} | ||
} | ||
|
||
.merged { | ||
color: $pr-merged; | ||
} | ||
|
||
.closed-pr { | ||
color: $pr-closed; | ||
} | ||
|
||
.ready-review, .open-issue { | ||
color: $open-work-item; | ||
} | ||
|
||
// Chroma syntax highlighting | ||
/* Background */ .bg { color: $tn-white; background-color: $tn-black; } | ||
/* PreWrapper */ .chroma { color: $tn-white; background-color: $tn-black; } | ||
/* Other */ .chroma .x { } | ||
/* Error */ .chroma .err { color: $tn-red; background-color: $tn-black } | ||
/* CodeLine */ .chroma .cl { } | ||
/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } | ||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } | ||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } | ||
/* LineHighlight */ .chroma .hl { background-color: #ffffcc } | ||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } | ||
/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } | ||
/* Line */ .chroma .line { display: flex; } | ||
/* Keyword */ .chroma .k { color: $tn-blue } | ||
/* KeywordConstant */ .chroma .kc { color: $tn-brightYellow } | ||
/* KeywordDeclaration */ .chroma .kd { color: $tn-blue } | ||
/* KeywordNamespace */ .chroma .kn { color: $tn-purple } | ||
/* KeywordPseudo */ .chroma .kp { color: $tn-blue } | ||
/* KeywordReserved */ .chroma .kr { color: $tn-blue } | ||
/* KeywordType */ .chroma .kt { color: $tn-blue } | ||
/* Name */ .chroma .n { } | ||
/* NameAttribute */ .chroma .na { color: $tn-constant } | ||
/* NameBuiltin */ .chroma .nb { } | ||
/* NameBuiltinPseudo */ .chroma .bp { } | ||
/* NameClass */ .chroma .nc { color: $tn-constant } | ||
/* NameConstant */ .chroma .no { color: $tn-blue } | ||
/* NameDecorator */ .chroma .nd { color: $tn-constant } | ||
/* NameEntity */ .chroma .ni { } | ||
/* NameException */ .chroma .ne { color: $tn-constant } | ||
/* NameFunction */ .chroma .nf { color: $tn-function } | ||
/* NameFunctionMagic */ .chroma .fm { } | ||
/* NameLabel */ .chroma .nl { } | ||
/* NameNamespace */ .chroma .nn { } | ||
/* NameOther */ .chroma .nx { color: $tn-variable } | ||
/* NameProperty */ .chroma .py { } | ||
/* NameTag */ .chroma .nt { color: $tn-red } | ||
/* NameVariable */ .chroma .nv { } | ||
/* NameVariableClass */ .chroma .vc { } | ||
/* NameVariableGlobal */ .chroma .vg { } | ||
/* NameVariableInstance */ .chroma .vi { } | ||
/* NameVariableMagic */ .chroma .vm { } | ||
/* Literal */ .chroma .l { color: $tn-string } | ||
/* LiteralDate */ .chroma .ld { color: $tn-brightYellow } | ||
/* LiteralString */ .chroma .s { color: $tn-string } | ||
/* LiteralStringAffix */ .chroma .sa { color: $tn-brightYellow } | ||
/* LiteralStringBacktick */ .chroma .sb { color: $tn-brightYellow } | ||
/* LiteralStringChar */ .chroma .sc { color: $tn-brightYellow } | ||
/* LiteralStringDelimiter */ .chroma .dl { color: $tn-brightYellow } | ||
/* LiteralStringDoc */ .chroma .sd { color: $tn-string } | ||
/* LiteralStringDouble */ .chroma .s2 { color: $tn-string } | ||
/* LiteralStringEscape */ .chroma .se { color: $tn-purple } | ||
/* LiteralStringHeredoc */ .chroma .sh { color: $tn-brightYellow } | ||
/* LiteralStringInterpol */ .chroma .si { color: $tn-brightYellow } | ||
/* LiteralStringOther */ .chroma .sx { color: $tn-brightYellow } | ||
/* LiteralStringRegex */ .chroma .sr { color: $tn-brightYellow } | ||
/* LiteralStringSingle */ .chroma .s1 { color: $tn-string } | ||
/* LiteralStringSymbol */ .chroma .ss { color: $tn-brightYellow } | ||
/* LiteralNumber */ .chroma .m { color: $tn-brightYellow } | ||
/* LiteralNumberBin */ .chroma .mb { color: $tn-brightYellow } | ||
/* LiteralNumberFloat */ .chroma .mf { color: $tn-brightYellow } | ||
/* LiteralNumberHex */ .chroma .mh { color: $tn-brightYellow } | ||
/* LiteralNumberInteger */ .chroma .mi { color: $tn-brightYellow } | ||
/* LiteralNumberIntegerLong */ .chroma .il { color: $tn-brightYellow } | ||
/* LiteralNumberOct */ .chroma .mo { color: $tn-brightYellow } | ||
/* Operator */ .chroma .o { color: $tn-red } | ||
/* OperatorWord */ .chroma .ow { color: $tn-red } | ||
/* Punctuation */ .chroma .p { color: $tn-purple } | ||
/* Comment */ .chroma .c { color: $tn-comment } | ||
/* CommentHashbang */ .chroma .ch { color: $tn-comment } | ||
/* CommentMultiline */ .chroma .cm { color: $tn-comment } | ||
/* CommentSingle */ .chroma .c1 { color: $tn-comment } | ||
/* CommentSpecial */ .chroma .cs { color: $tn-comment } | ||
/* CommentPreproc */ .chroma .cp { color: $tn-comment } | ||
/* CommentPreprocFile */ .chroma .cpf { color: $tn-comment } | ||
/* Generic */ .chroma .g { } | ||
/* GenericDeleted */ .chroma .gd { color: $tn-red } | ||
/* GenericEmph */ .chroma .ge { font-style: italic } | ||
/* GenericError */ .chroma .gr { } | ||
/* GenericHeading */ .chroma .gh { } | ||
/* GenericInserted */ .chroma .gi { color: $tn-constant } | ||
/* GenericOutput */ .chroma .go { } | ||
/* GenericPrompt */ .chroma .gp { } | ||
/* GenericStrong */ .chroma .gs { font-weight: bold } | ||
/* GenericSubheading */ .chroma .gu { color: $tn-comment } | ||
/* GenericTraceback */ .chroma .gt { } | ||
/* GenericUnderline */ .chroma .gl { } | ||
/* TextWhitespace */ .chroma .w { } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
@import url('/fonts/fira-code-retina-nf.ttf'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
@font-face { | ||
font-family: 'Mona Sans'; | ||
src: | ||
url('/fonts/Mona-Sans.woff2') format('woff2 supports variations'), | ||
url('/fonts/Mona-Sans.woff2') format('woff2-variations'); | ||
font-weight: 200 900; | ||
font-stretch: 75% 125%; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
title: gh-dash | ||
summary: >- | ||
This is an example site for digital books, built on Platen! | ||
--- | ||
|
||
![icon:stars](lucide) A GitHub (`gh`) CLI extension to display a dashboard with **pull requests** | ||
and **issues** by filters you care about. | ||
|
||
[![Latest Release][shield-release]][releases] | ||
|
||
![Preview gif showing gh-dash in the terminal][preview] | ||
|
||
## ![icon:stars](lucide) Features | ||
|
||
- ![icon:settings](lucide) fully configurable - define sections using github filters | ||
- ![icon:search](lucide) search for both prs and issues | ||
- ![icon:edit](lucide) customize columns with `hidden`, `width` and `grow` props | ||
- ![icon:zap](lucide) act on prs and issues with checkout, comment, open, merge, diff, etc... | ||
- ![icon:keyboard](lucide) set custom actions with new keybindings | ||
- ![icon:palette](lucide) use custom themes | ||
- ![icon:view](lucide) view details about a pr/issue with a detailed sidebar | ||
- ![icon:layout-dashboard](lucide) write multiple configuration files to easily switch between | ||
completely different dashboards | ||
- ![icon:recycle](lucide) set an interval for auto refreshing the dashboard | ||
|
||
<!-- Link reference definitions --> | ||
[shield-release]: https://img.shields.io/github/release/dlvhdr/gh-dash.svg | ||
[releases]: https://github.com/dlvhdr/gh-dash/releases | ||
[preview]: https://user-images.githubusercontent.com/6196971/198704107-6775a0ba-669d-418b-9ae9-59228aaa84d1.gif |
Oops, something went wrong.