9
.github/workflows/changelog.yml
vendored
@ -1,14 +1,11 @@
|
||||
name: changelog
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '[v]?[0-9]+.[0-9]+.[0-9]+'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
changelog:
|
||||
name: Generate changelog
|
||||
@ -21,7 +18,6 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Generate changelog
|
||||
uses: orhun/git-cliff-action@v4
|
||||
with:
|
||||
@ -30,12 +26,13 @@ jobs:
|
||||
env:
|
||||
OUTPUT: CHANGELOG.md
|
||||
GITHUB_REPO: ${{ github.repository }}
|
||||
|
||||
- name: Copy changelog to docs
|
||||
run: |
|
||||
cp CHANGELOG.md 'docs/02-Developers/03-patch-notes.md
|
||||
- name: Extract branch name
|
||||
shell: bash
|
||||
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
|
||||
id: extract_branch
|
||||
|
||||
- name: Create PR
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
|
37
.github/workflows/deploy-docs.yml
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
name: deploy docs
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- "README.md"
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
deploy:
|
||||
name: Build Docusaurus to gh-pages
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Setup node env
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version-file: "website/.nvmrc"
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
run_install: false
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
working-directory: website
|
||||
- name: Build website
|
||||
run: pnpm run build
|
||||
working-directory: website
|
||||
- name: Deploy to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: website/build
|
||||
user_name: github-actions[bot]
|
||||
user_email: github-actions[bot]@users.noreply.github.com
|
47
.github/workflows/static.yml
vendored
@ -1,47 +0,0 @@
|
||||
# Simple workflow for deploying static content to GitHub Pages
|
||||
name: Deploy static content to Pages
|
||||
|
||||
on:
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# Runs when the publishing of the Linux .deb file is successfully completed in the CD workflow.
|
||||
# So that it can be installed through apt
|
||||
workflow_run:
|
||||
workflows: ["CD"]
|
||||
branches: [main]
|
||||
types:
|
||||
- completed
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
# Single deploy job since we're just deploying
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v5
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
# Upload entire repository
|
||||
path: "."
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
24
.github/workflows/test-deploy-docs.yml
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
name: Test docs deployment
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
# Review gh actions docs if you want to further define triggers, paths, etc
|
||||
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on
|
||||
jobs:
|
||||
test-deploy:
|
||||
name: Test deployment
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 18
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
working-directory: website
|
||||
- name: Build website
|
||||
run: pnpm run build
|
||||
working-directory: website
|
14
CHANGELOG.md
@ -177,10 +177,22 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- [825e974](https://github.com/alexpasmantier/television/commit/825e97436360f3cbb5b40d4053c10c435352e6c9) *(cable)* Update channel documentation (auto) by @github-actions[bot] in [#594](https://github.com/alexpasmantier/television/pull/594)
|
||||
|
||||
- [185f789](https://github.com/alexpasmantier/television/commit/185f7890ac27ca1580231c2f24fe6a696fd3f322) *(cable)* Update channel documentation (auto) by @github-actions[bot]
|
||||
|
||||
- [8bdebd3](https://github.com/alexpasmantier/television/commit/8bdebd382ef9fe1f8ac74106b91cbdfdd308ef27) *(channels)* Autogenerate channel documentation + CI action by @alexpasmantier
|
||||
|
||||
- [6015809](https://github.com/alexpasmantier/television/commit/601580953a11b4c1061c97c5417ffeacd154354d) *(tests)* Simple documentation for the `PtyTester` by @alexpasmantier
|
||||
|
||||
- [7bbf538](https://github.com/alexpasmantier/television/commit/7bbf5388984ea4a9afa4daad695add4c258c0fb1) *(utils)* Add documentation for string formatting logic by @alexpasmantier in [#517](https://github.com/alexpasmantier/television/pull/517)
|
||||
|
||||
- [a9badbc](https://github.com/alexpasmantier/television/commit/a9badbc088f332add3396a8f835b5dd1f06aa2f8) *(uncategorized)* Add docusaurus website by @alexpasmantier
|
||||
|
||||
- [e797aba](https://github.com/alexpasmantier/television/commit/e797aba7c1e5fbdc6afabac69d2bbcb32767bf80) *(uncategorized)* Reorganize docs by @alexpasmantier
|
||||
|
||||
- [106004d](https://github.com/alexpasmantier/television/commit/106004de948327f248c14f8eebdc40b54af58a4c) *(uncategorized)* Architecture by @alexpasmantier
|
||||
|
||||
- [1d33c93](https://github.com/alexpasmantier/television/commit/1d33c9391039f703b3b9848784ab58d3f5372a7d) *(uncategorized)* Add readme banner by @alexpasmantier
|
||||
|
||||
- [3ac6c76](https://github.com/alexpasmantier/television/commit/3ac6c762335dd239a72556e36368858e97a13691) *(uncategorized)* Update readme by @alexpasmantier
|
||||
@ -235,6 +247,8 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- [f58e46c](https://github.com/alexpasmantier/television/commit/f58e46c40aca9a31003c2120bcd6772643d38bbb) *(changelog)* Update changelog (auto) by @github-actions[bot] in [#591](https://github.com/alexpasmantier/television/pull/591)
|
||||
|
||||
- [d106ada](https://github.com/alexpasmantier/television/commit/d106adafc0a8f4d17bc4235e3bc439487db4a0b4) *(changelog)* Update changelog (auto) by @github-actions[bot] in [#513](https://github.com/alexpasmantier/television/pull/513)
|
||||
|
||||
- [64c599e](https://github.com/alexpasmantier/television/commit/64c599ef103d18e852d1070c6b313800646f1940) *(changelog)* Update changelog (auto) by @github-actions[bot] in [#491](https://github.com/alexpasmantier/television/pull/491)
|
||||
|
@ -17,7 +17,7 @@ Default keybindings are as follows:
|
||||
| <kbd>Ctrl</kbd> + <kbd>o</kbd> | Toggle the preview panel |
|
||||
| <kbd>Esc</kbd> | Quit the application |
|
||||
|
||||
These keybindings are all configurable via tv's configuration file (see [Configuration](Configuration-file)).
|
||||
These keybindings are all configurable via tv's configuration file (see [Configuration](./configuration)).
|
||||
|
||||
# Keybindings Guide
|
||||
|
||||
|
@ -575,7 +575,7 @@ Television uses a layered configuration system where each layer can override the
|
||||
|
||||
Television features support dual-state control: **enabled/disabled** and **visible/not visible**.
|
||||
|
||||
> **📖 For more details on the ui feature documentation**, see [`ui-features.md`](ui-features.md).
|
||||
> **📖 For more details on the ui feature documentation**, see [`ui-features.md`](../02-Developers/02-ui-features.md).
|
||||
|
||||
#### Quick Feature Overview
|
||||
|
||||
|
@ -19,4 +19,4 @@ Here is a list of terminal emulators that have currently been tested with `telev
|
||||
| Warp | macOS | ✅ |
|
||||
| Hyper | macOS | ✅ |
|
||||
|
||||
If you're able to test the application with a configuration not yet listed above, we'd love to [hear from your experience](./CONTRIBUTING) 🙏
|
||||
If you're able to test the application with a configuration not yet listed above, we'd love to [hear from your experience](https://github.com/alexpasmantier/television/blob/main/CONTRIBUTING.md) 🙏
|
||||
|
48
man/tv.1
@ -2,11 +2,11 @@
|
||||
.el .ds Aq '
|
||||
.TH television 1 "television 0.11.9"
|
||||
.SH NAME
|
||||
television \- A cross\-platform, fast and extensible general purpose fuzzy finder TUI.
|
||||
television \- Cross\-platform, fast and extensible general purpose fuzzy finder TUI.
|
||||
.SH SYNOPSIS
|
||||
\fBtelevision\fR [\fB\-\-preview\-offset\fR] [\fB\-\-no\-preview\fR] [\fB\-\-hide\-preview\fR] [\fB\-\-show\-preview\fR] [\fB\-\-no\-status\-bar\fR] [\fB\-\-hide\-status\-bar\fR] [\fB\-\-show\-status\-bar\fR] [\fB\-\-no\-remote\fR] [\fB\-\-hide\-remote\fR] [\fB\-\-show\-remote\fR] [\fB\-\-no\-help\-panel\fR] [\fB\-\-hide\-help\-panel\fR] [\fB\-\-show\-help\-panel\fR] [\fB\-t\fR|\fB\-\-tick\-rate\fR] [\fB\-\-watch\fR] [\fB\-k\fR|\fB\-\-keybindings\fR] [\fB\-i\fR|\fB\-\-input\fR] [\fB\-\-input\-header\fR] [\fB\-\-preview\-header\fR] [\fB\-\-preview\-footer\fR] [\fB\-\-source\-command\fR] [\fB\-\-source\-display\fR] [\fB\-\-source\-output\fR] [\fB\-p\fR|\fB\-\-preview\-command\fR] [\fB\-\-layout\fR] [\fB\-\-autocomplete\-prompt\fR] [\fB\-\-exact\fR] [\fB\-\-select\-1\fR] [\fB\-\-take\-1\fR] [\fB\-\-take\-1\-fast\fR] [\fB\-\-ui\-scale\fR] [\fB\-\-preview\-size\fR] [\fB\-\-height\fR] [\fB\-\-width\fR] [\fB\-\-inline\fR] [\fB\-\-config\-file\fR] [\fB\-\-cable\-dir\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-\-global\-history\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fICHANNEL\fR] [\fIPATH\fR] [\fIsubcommands\fR]
|
||||
\fBtelevision\fR [\fB\-\-preview\-offset\fR] [\fB\-\-no\-preview\fR] [\fB\-\-hide\-preview\fR] [\fB\-\-show\-preview\fR] [\fB\-\-no\-status\-bar\fR] [\fB\-\-hide\-status\-bar\fR] [\fB\-\-show\-status\-bar\fR] [\fB\-t\fR|\fB\-\-tick\-rate\fR] [\fB\-\-watch\fR] [\fB\-k\fR|\fB\-\-keybindings\fR] [\fB\-i\fR|\fB\-\-input\fR] [\fB\-\-input\-header\fR] [\fB\-\-preview\-header\fR] [\fB\-\-preview\-footer\fR] [\fB\-\-source\-command\fR] [\fB\-\-source\-display\fR] [\fB\-\-source\-output\fR] [\fB\-\-source\-delimiter\fR] [\fB\-p\fR|\fB\-\-preview\-command\fR] [\fB\-\-layout\fR] [\fB\-\-autocomplete\-prompt\fR] [\fB\-\-exact\fR] [\fB\-\-select\-1\fR] [\fB\-\-take\-1\fR] [\fB\-\-take\-1\-fast\fR] [\fB\-\-no\-remote\fR] [\fB\-\-hide\-remote\fR] [\fB\-\-show\-remote\fR] [\fB\-\-no\-help\-panel\fR] [\fB\-\-hide\-help\-panel\fR] [\fB\-\-show\-help\-panel\fR] [\fB\-\-ui\-scale\fR] [\fB\-\-preview\-size\fR] [\fB\-\-config\-file\fR] [\fB\-\-cable\-dir\fR] [\fB\-\-global\-history\fR] [\fB\-\-height\fR] [\fB\-\-width\fR] [\fB\-\-inline\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fICHANNEL\fR] [\fIPATH\fR] [\fIsubcommands\fR]
|
||||
.SH DESCRIPTION
|
||||
A cross\-platform, fast and extensible general purpose fuzzy finder TUI.
|
||||
Cross\-platform, fast and extensible general purpose fuzzy finder TUI.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-\-preview\-offset\fR=\fISTRING\fR
|
||||
@ -146,6 +146,12 @@ When no channel is specified: This flag requires \-\-source\-command to be set.
|
||||
The template is used to format the final output when an entry is selected.
|
||||
Example: "{}" (output the full entry)
|
||||
.TP
|
||||
\fB\-\-source\-delimiter\fR=\fISTRING\fR
|
||||
The delimiter byte to use for splitting the source\*(Aqs command output into entries.
|
||||
|
||||
This can be useful when the source command outputs multiline entries and you want to
|
||||
rely on another delimiter to split the entries such a null byte or a custom character.
|
||||
.TP
|
||||
\fB\-p\fR, \fB\-\-preview\-command\fR=\fISTRING\fR
|
||||
Preview command to use for the current channel.
|
||||
|
||||
@ -276,6 +282,24 @@ Percentage of the screen to allocate to the preview panel (1\-99).
|
||||
When a channel is specified: This overrides any `preview_size` defined in configuration files or channel prototypes.
|
||||
When no channel is specified: This flag requires \-\-preview\-command to be set.
|
||||
.TP
|
||||
\fB\-\-config\-file\fR=\fIPATH\fR
|
||||
Provide a custom configuration file to use.
|
||||
|
||||
This flag works identically in both channel mode and ad\-hoc mode.
|
||||
.TP
|
||||
\fB\-\-cable\-dir\fR=\fIPATH\fR
|
||||
Provide a custom cable directory to use.
|
||||
|
||||
This flag works identically in both channel mode and ad\-hoc mode.
|
||||
.TP
|
||||
\fB\-\-global\-history\fR
|
||||
Use global history instead of channel\-specific history.
|
||||
|
||||
This flag only works in channel mode.
|
||||
|
||||
When enabled, history navigation will show entries from all channels.
|
||||
When disabled (default), history navigation is scoped to the current channel.
|
||||
.TP
|
||||
\fB\-\-height\fR=\fIINTEGER\fR
|
||||
Height in lines for non\-fullscreen mode.
|
||||
|
||||
@ -298,24 +322,6 @@ When enabled, the picker will be displayed as an inline interface that uses
|
||||
all available empty space at the bottom of the terminal. If there is insufficient
|
||||
space to meet the minimum height the terminal will scroll.
|
||||
.TP
|
||||
\fB\-\-config\-file\fR=\fIPATH\fR
|
||||
Provide a custom configuration file to use.
|
||||
|
||||
This flag works identically in both channel mode and ad\-hoc mode.
|
||||
.TP
|
||||
\fB\-\-cable\-dir\fR=\fIPATH\fR
|
||||
Provide a custom cable directory to use.
|
||||
|
||||
This flag works identically in both channel mode and ad\-hoc mode.
|
||||
.TP
|
||||
\fB\-\-global\-history\fR
|
||||
Enable global history for the current session.
|
||||
|
||||
This flag only works in channel mode.
|
||||
|
||||
When enabled, history navigation will show entries from all channels.
|
||||
When disabled (default), history navigation is scoped to the current channel.
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Print help (see a summary with \*(Aq\-h\*(Aq)
|
||||
.TP
|
||||
|
@ -3,8 +3,7 @@ from toml import load as load_toml, dumps
|
||||
|
||||
|
||||
CABLE_DIR = Path("./cable")
|
||||
DOCS_DIR = Path("./docs")
|
||||
DOCS_CABLE_DIR = DOCS_DIR.joinpath("community_channels")
|
||||
DOCS_DIR = Path("./docs/01-Users")
|
||||
|
||||
|
||||
def generate_cable_docs(os_name: str) -> str:
|
||||
@ -52,7 +51,7 @@ def generate_cable_docs(os_name: str) -> str:
|
||||
if __name__ == "__main__":
|
||||
for os_name in ("unix", "windows"):
|
||||
docs_content = generate_cable_docs(os_name)
|
||||
docs_file = DOCS_CABLE_DIR.joinpath(f"{os_name}.md")
|
||||
docs_file = DOCS_DIR.joinpath(f"10-community-channels-{os_name}.md")
|
||||
# write the new docs
|
||||
with open(docs_file, "w+", encoding="utf-8") as f:
|
||||
f.write(docs_content)
|
||||
|
20
website/.gitignore
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
# Dependencies
|
||||
/node_modules
|
||||
|
||||
# Production
|
||||
/build
|
||||
|
||||
# Generated files
|
||||
.docusaurus
|
||||
.cache-loader
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
1
website/.nvmrc
Normal file
@ -0,0 +1 @@
|
||||
v23.11.0
|
41
website/README.md
Normal file
@ -0,0 +1,41 @@
|
||||
# Website
|
||||
|
||||
This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pnpm
|
||||
```
|
||||
|
||||
## Local Development
|
||||
|
||||
```bash
|
||||
pnpm start
|
||||
```
|
||||
|
||||
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
pnpm build
|
||||
```
|
||||
|
||||
This command generates static content into the `build` directory and can be served using any static contents hosting service.
|
||||
|
||||
## Deployment
|
||||
|
||||
Using SSH:
|
||||
|
||||
```bash
|
||||
USE_SSH=true pnpm deploy
|
||||
```
|
||||
|
||||
Not using SSH:
|
||||
|
||||
```bash
|
||||
GIT_USER=<Your GitHub username> pnpm deploy
|
||||
```
|
||||
|
||||
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
|
133
website/docusaurus.config.ts
Normal file
@ -0,0 +1,133 @@
|
||||
import { themes as prismThemes } from "prism-react-renderer";
|
||||
import type { Config } from "@docusaurus/types";
|
||||
import type * as Preset from "@docusaurus/preset-classic";
|
||||
|
||||
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
|
||||
|
||||
const config: Config = {
|
||||
title: "Television",
|
||||
tagline: "The cross-platform, fast and extensible fuzzy finder.",
|
||||
favicon: "img/tv-icon-150.png",
|
||||
|
||||
// Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future
|
||||
future: {
|
||||
v4: true, // Improve compatibility with the upcoming Docusaurus v4
|
||||
},
|
||||
|
||||
// Set the production url of your site here
|
||||
url: "https://alexpasmantier.github.io",
|
||||
// Set the /<baseUrl>/ pathname under which your site is served
|
||||
// For GitHub pages deployment, it is often '/<projectName>/'
|
||||
baseUrl: process.env.NODE_ENV === "production" ? "/television/" : "/",
|
||||
|
||||
// GitHub pages deployment config.
|
||||
// If you aren't using GitHub pages, you don't need these.
|
||||
organizationName: "alexpasmantier", // Usually your GitHub org/user name.
|
||||
projectName: "television", // Usually your repo name.
|
||||
deploymentBranch: "gh-pages",
|
||||
|
||||
onBrokenLinks: "throw",
|
||||
onBrokenMarkdownLinks: "warn",
|
||||
|
||||
// Even if you don't use internationalization, you can use this field to set
|
||||
// useful metadata like html lang. For example, if your site is Chinese, you
|
||||
// may want to replace "en" with "zh-Hans".
|
||||
i18n: {
|
||||
defaultLocale: "en",
|
||||
locales: ["en"],
|
||||
},
|
||||
|
||||
presets: [
|
||||
[
|
||||
"classic",
|
||||
{
|
||||
docs: {
|
||||
path: "../docs",
|
||||
routeBasePath: "docs",
|
||||
sidebarPath: "./sidebars.ts",
|
||||
// editUrl:
|
||||
// "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/",
|
||||
},
|
||||
blog: {
|
||||
showReadingTime: true,
|
||||
feedOptions: {
|
||||
type: ["rss", "atom"],
|
||||
xslt: true,
|
||||
},
|
||||
// Please change this to your repo.
|
||||
// Remove this to remove the "edit this page" links.
|
||||
// editUrl:
|
||||
// "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/",
|
||||
// Useful options to enforce blogging best practices
|
||||
onInlineTags: "warn",
|
||||
onInlineAuthors: "warn",
|
||||
onUntruncatedBlogPosts: "warn",
|
||||
},
|
||||
theme: {
|
||||
customCss: "./src/css/custom.css",
|
||||
},
|
||||
} satisfies Preset.Options,
|
||||
],
|
||||
],
|
||||
|
||||
themeConfig: {
|
||||
// Replace with your project's social card
|
||||
image: "img/tv-social.png",
|
||||
colorMode: {
|
||||
defaultMode: "dark",
|
||||
disableSwitch: true,
|
||||
},
|
||||
docs: {
|
||||
sidebar: {
|
||||
hideable: true,
|
||||
},
|
||||
},
|
||||
navbar: {
|
||||
title: "Television",
|
||||
logo: {
|
||||
alt: "Television Logo",
|
||||
src: "img/tv-icon-80.png",
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: "docSidebar",
|
||||
position: "left",
|
||||
label: "docs",
|
||||
sidebarId: "docSidebar",
|
||||
},
|
||||
{
|
||||
href: "https://github.com/alexpasmantier/television/releases",
|
||||
label: "releases",
|
||||
position: "left",
|
||||
},
|
||||
{
|
||||
href: "https://crates.io/crates/television",
|
||||
label: "crates.io",
|
||||
position: "left",
|
||||
},
|
||||
{
|
||||
href: "https://github.com/alexpasmantier/television",
|
||||
label: "GitHub",
|
||||
position: "right",
|
||||
},
|
||||
],
|
||||
},
|
||||
footer: {
|
||||
copyright: `Copyright © ${new Date().getFullYear()} alexpasmantier`,
|
||||
},
|
||||
prism: {
|
||||
theme: prismThemes.github,
|
||||
darkTheme: prismThemes.dracula,
|
||||
additionalLanguages: ["bash", "json", "yaml", "toml", "diff"],
|
||||
},
|
||||
} satisfies Preset.ThemeConfig,
|
||||
|
||||
themes: ["@docusaurus/theme-mermaid"],
|
||||
// In order for Mermaid code blocks in Markdown to work,
|
||||
// you also need to enable the Remark plugin with this option
|
||||
markdown: {
|
||||
mermaid: true,
|
||||
},
|
||||
};
|
||||
|
||||
export default config;
|
49
website/package.json
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
"name": "television-website",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
"start": "docusaurus start",
|
||||
"build": "docusaurus build",
|
||||
"swizzle": "docusaurus swizzle",
|
||||
"deploy": "docusaurus deploy",
|
||||
"clear": "docusaurus clear",
|
||||
"serve": "docusaurus serve",
|
||||
"write-translations": "docusaurus write-translations",
|
||||
"write-heading-ids": "docusaurus write-heading-ids",
|
||||
"typecheck": "tsc"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.8.1",
|
||||
"@docusaurus/preset-classic": "3.8.1",
|
||||
"@docusaurus/theme-mermaid": "^3.8.1",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
"clsx": "^2.0.0",
|
||||
"prism-react-renderer": "^2.3.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "3.8.1",
|
||||
"@docusaurus/tsconfig": "3.8.1",
|
||||
"@docusaurus/types": "3.8.1",
|
||||
"typescript": "~5.6.2"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.5%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 3 chrome version",
|
||||
"last 3 firefox version",
|
||||
"last 5 safari version"
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
},
|
||||
"packageManager": "pnpm@10.12.4"
|
||||
}
|
12027
website/pnpm-lock.yaml
generated
Normal file
33
website/sidebars.ts
Normal file
@ -0,0 +1,33 @@
|
||||
import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";
|
||||
|
||||
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
|
||||
|
||||
/**
|
||||
* Creating a sidebar enables you to:
|
||||
- create an ordered group of docs
|
||||
- render a sidebar for each doc of that group
|
||||
- provide next/previous navigation
|
||||
|
||||
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||
|
||||
Create as many sidebars as you want.
|
||||
*/
|
||||
const sidebars: SidebarsConfig = {
|
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
docSidebar: [{ type: "autogenerated", dirName: "." }],
|
||||
|
||||
// But you can create a sidebar manually
|
||||
/*
|
||||
tutorialSidebar: [
|
||||
'intro',
|
||||
'hello',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['tutorial-basics/create-a-document'],
|
||||
},
|
||||
],
|
||||
*/
|
||||
};
|
||||
|
||||
export default sidebars;
|
73
website/src/components/HomepageFeatures/index.tsx
Normal file
@ -0,0 +1,73 @@
|
||||
import type { ReactNode } from "react";
|
||||
import clsx from "clsx";
|
||||
import Heading from "@theme/Heading";
|
||||
import styles from "./styles.module.css";
|
||||
|
||||
type FeatureItem = {
|
||||
title: string;
|
||||
Svg: React.ComponentType<React.ComponentProps<"svg">>;
|
||||
description: ReactNode;
|
||||
};
|
||||
|
||||
const FeatureList: FeatureItem[] = [
|
||||
{
|
||||
title: "Integrates with your shell",
|
||||
Svg: require("@site/static/img/integrate_icon.svg").default,
|
||||
description: (
|
||||
<>
|
||||
Television integrates with your shell and lets you quickly search
|
||||
through any kind of data source (files, git repositories, environment
|
||||
variables, docker images, you name it) using a fuzzy matching algorithm
|
||||
and is designed to be extensible.
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: "Insipred by great tools",
|
||||
Svg: require("@site/static/img/inspired_icon.svg").default,
|
||||
description: (
|
||||
<>
|
||||
It is inspired by the neovim{" "}
|
||||
<a href="https://github.com/nvim-telescope/telescope.nvim">telescope</a>{" "}
|
||||
plugin and leverages{" "}
|
||||
<a href="https://github.com/tokio-rs/tokio">tokio</a> and the{" "}
|
||||
<a href="https://github.com/helix-editor/nucleo">nucleo</a> matcher used
|
||||
by the <a href="https://github.com/helix-editor/helix">helix</a> editor
|
||||
to ensure optimal performance.
|
||||
</>
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
function Feature({ title, Svg, description }: FeatureItem) {
|
||||
return (
|
||||
<div className={clsx("col col--6", styles.featureItem)}>
|
||||
<div className="text--center">
|
||||
<Svg className={styles.featureSvg} role="img" />
|
||||
</div>
|
||||
<div
|
||||
className={clsx(
|
||||
"text--center padding-horiz--md",
|
||||
styles.titleContainer
|
||||
)}
|
||||
>
|
||||
<Heading as="h3">{title}</Heading>
|
||||
<p>{description}</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default function HomepageFeatures(): ReactNode {
|
||||
return (
|
||||
<section className={styles.features}>
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
{FeatureList.map((props, idx) => (
|
||||
<Feature key={idx} {...props} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
26
website/src/components/HomepageFeatures/styles.module.css
Normal file
@ -0,0 +1,26 @@
|
||||
.features {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 2rem 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.featureSvg {
|
||||
height: 120px;
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
html[data-theme='dark'] .featureSvg {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
.titleContainer {
|
||||
max-width: 500px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.featureItem {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
12
website/src/components/InstallationTabItem/index.tsx
Normal file
@ -0,0 +1,12 @@
|
||||
import React from "react";
|
||||
import TabItem from "@theme/TabItem";
|
||||
import { TabItemProps } from "@docusaurus/theme-common/internal";
|
||||
import clsx from "clsx";
|
||||
import styles from "./styles.module.css";
|
||||
|
||||
export default function InstallationTabItem({
|
||||
className,
|
||||
...props
|
||||
}: TabItemProps) {
|
||||
return <TabItem {...props} className={clsx(className, styles.item)} />;
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
.item {
|
||||
white-space: nowrap;
|
||||
}
|
9
website/src/components/InstallationTabs/index.tsx
Normal file
@ -0,0 +1,9 @@
|
||||
import React from "react";
|
||||
import Tabs from "@theme/Tabs";
|
||||
import { TabsProps } from "@docusaurus/theme-common/internal";
|
||||
import styles from "./styles.module.css";
|
||||
import clsx from "clsx";
|
||||
|
||||
export default function InstallationTabs({ className, ...props }: TabsProps) {
|
||||
return <Tabs {...props} className={clsx(styles.container, className)} />;
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
.container :global(.tabs__item) {
|
||||
white-space: nowrap;
|
||||
}
|
152
website/src/css/custom.css
Normal file
@ -0,0 +1,152 @@
|
||||
/**
|
||||
* Any CSS included here will be global. The classic template
|
||||
* bundles Infima by default. Infima is a CSS framework designed to
|
||||
* work well for content-centric websites.
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: "Doto";
|
||||
src: url("/fonts/Doto.ttf");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Ubuntu Mono";
|
||||
src: url("/fonts/UbuntuMono-Regular.ttf");
|
||||
}
|
||||
|
||||
/* You can override the default Infima variables here. */
|
||||
:root {
|
||||
--ifm-color-primary: #aeaed1;
|
||||
--ifm-color-primary-dark: #9696c3;
|
||||
--ifm-color-primary-darker: #8989bc;
|
||||
--ifm-color-primary-darkest: #6565a7;
|
||||
--ifm-color-primary-light: #c6c6df;
|
||||
--ifm-color-primary-lighter: #d3d3e6;
|
||||
--ifm-color-primary-lightest: #f7f7fb;
|
||||
--ifm-background-color: #241f31;
|
||||
|
||||
--ifm-font-family-base: "Ubuntu Mono", monospace;
|
||||
--ifm-font-color-base: #aeaed1;
|
||||
--ifm-font-color-secondary: #545c8c;
|
||||
--ifm-font-size-base: 1.1rem;
|
||||
--ifm-code-font-size: 95%;
|
||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.05);
|
||||
--ifm-heading-font-family: "Doto", sans-serif;
|
||||
--ifm-heading-color: var(--ifm-color-primary-darkest);
|
||||
--ifm-menu-color-active: var(--ifm-color-primary-lightest);
|
||||
--ifm-menu-color-background-active: var(--ifm-color-primary-darkest);
|
||||
--ifm-toc-link-color: var(--ifm-color-primary-dark);
|
||||
|
||||
}
|
||||
|
||||
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
||||
[data-theme='dark'] {}
|
||||
|
||||
.navbar {
|
||||
background-color: var(--ifm-background-color);
|
||||
border-bottom: 3px solid var(--ifm-color-primary-darkest);
|
||||
font-family: "Doto", sans-serif;
|
||||
font-size: 1.5rem;
|
||||
font-optical-sizing: auto;
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-variation-settings:
|
||||
"ROND" 0;
|
||||
}
|
||||
|
||||
.navbar__logo {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
.navbar__title {
|
||||
color: var(--ifm-color-primary-darkest);
|
||||
margin-right: 2rem;
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
.navbar__item {
|
||||
color: var(--ifm-color-primary-lightest);
|
||||
font-size: 1.3rem;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.navbar__item:hover {
|
||||
color: var(--ifm-color-primary-darker);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hero {
|
||||
background-color: var(--ifm-background-color);
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
.hero__title {
|
||||
color: var(--ifm-font-color-base);
|
||||
margin-bottom: 0;
|
||||
font-family: "Doto", sans-serif;
|
||||
font-size: 3rem;
|
||||
font-optical-sizing: auto;
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-variation-settings:
|
||||
"ROND" 0;
|
||||
}
|
||||
|
||||
.hero__subtitle {
|
||||
color: var(--ifm-font-color-secondary);
|
||||
|
||||
font-family: "Ubuntu Mono", monospace;
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-size: 1.3rem;
|
||||
margin-bottom: 6rem;
|
||||
margin-top: 0rem;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: var(--ifm-background-color);
|
||||
color: var(--ifm-font-color-base);
|
||||
border-top: 3px solid var(--ifm-color-primary-darkest);
|
||||
}
|
||||
|
||||
.button-mainpage {
|
||||
border: 1px solid var(--ifm-color-primary-darker);
|
||||
outline: none;
|
||||
background-color: var(--ifm-background-color);
|
||||
padding: 10px 20px;
|
||||
margin: auto;
|
||||
font-weight: 800;
|
||||
font-family: "Doto", sans-serif;
|
||||
font-size: 1.2rem;
|
||||
color: var(--ifm-font-color-base);
|
||||
border-radius: 6px;
|
||||
transition: all ease 0.1s;
|
||||
box-shadow: 0px 5px 0px 0px var(--ifm-color-primary-darker);
|
||||
}
|
||||
|
||||
.button-mainpage:hover {
|
||||
text-decoration: none;
|
||||
background-color: var(--ifm-font-color-base);
|
||||
color: var(--ifm-background-color);
|
||||
}
|
||||
|
||||
.button-mainpage:active {
|
||||
box-shadow: 0px 0px 0px 0px var(--ifm-font-color-base);
|
||||
transform: translateY(5px);
|
||||
}
|
||||
|
||||
nav.menu {
|
||||
border-right: 1px solid var(--ifm-color-primary-darkest);
|
||||
padding-right: 1rem;
|
||||
font-family: "Doto", sans-serif;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.table-of-contents__left-border {
|
||||
border-left: 1px solid var(--ifm-color-primary-darkest);
|
||||
font-family: "Ubuntu Mono", monospace;
|
||||
}
|
||||
|
||||
.theme-doc-markdown a {
|
||||
color: var(--ifm-color-primary-darker)
|
||||
}
|
82
website/src/pages/index.module.css
Normal file
@ -0,0 +1,82 @@
|
||||
/**
|
||||
* CSS files with the .module.css suffix will be treated as CSS modules
|
||||
* and scoped locally.
|
||||
*/
|
||||
|
||||
.heroBanner {
|
||||
padding: 4rem 0;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.heroContent {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
justify-content: center;
|
||||
gap: 2rem;
|
||||
flex-wrap: wrap; /* Allows stacking on small screens */
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.heroImage {
|
||||
flex: 0 0 auto;
|
||||
max-width: 70%;
|
||||
}
|
||||
|
||||
.heroImageImg {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.heroAbout {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
flex: 1 1 0;
|
||||
max-width: 65%;
|
||||
min-width: 350px;
|
||||
color: var(--ifm-color-primary);
|
||||
font-family: "Ubuntu Mono", monospace;
|
||||
font-weight: 100;
|
||||
font-size: 1rem;
|
||||
text-align: left;
|
||||
line-height: 1.5;
|
||||
margin: 0;
|
||||
margin-top: 1rem;
|
||||
padding-bottom: 1.6rem;
|
||||
}
|
||||
|
||||
.heroAbout a {
|
||||
color: var(--ifm-color-primary-darker);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 996px) {
|
||||
.heroBanner {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.heroAbout {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.buttons {
|
||||
position: static;
|
||||
margin-top: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.buttons a {
|
||||
width: 100%;
|
||||
max-width: 350px;
|
||||
text-align: center;
|
||||
display: block;
|
||||
}
|
71
website/src/pages/index.tsx
Normal file
@ -0,0 +1,71 @@
|
||||
import type { ReactNode } from "react";
|
||||
import clsx from "clsx";
|
||||
import Link from "@docusaurus/Link";
|
||||
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
|
||||
import Layout from "@theme/Layout";
|
||||
import Heading from "@theme/Heading";
|
||||
|
||||
import styles from "./index.module.css";
|
||||
import HomepageFeatures from "../components/HomepageFeatures";
|
||||
|
||||
function HomepageHeader() {
|
||||
const { siteConfig } = useDocusaurusContext();
|
||||
return (
|
||||
<header className={clsx("hero hero--primary", styles.heroBanner)}>
|
||||
<div className="container">
|
||||
<Heading as="h1" className="hero__title">
|
||||
{siteConfig.title}
|
||||
</Heading>
|
||||
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
||||
<div className={styles.heroContent}>
|
||||
<div className={styles.heroImage}>
|
||||
<img
|
||||
src={require("@site/static/img/tv-transparent.png").default}
|
||||
alt="Television"
|
||||
className={styles.heroImageImg}
|
||||
/>
|
||||
</div>
|
||||
<div className={styles.heroAbout}>
|
||||
<div>
|
||||
<p>
|
||||
Television is a cross-platform, fast and extensible fuzzy finder
|
||||
for the terminal.
|
||||
</p>
|
||||
<p>
|
||||
It integrates with your shell and lets you quickly search
|
||||
through any kind of data source (files, git repositories,
|
||||
environment variables, docker images, you name it) using a fuzzy
|
||||
matching algorithm and is designed to be extensible.
|
||||
</p>
|
||||
<p>
|
||||
It is inspired by the neovim{" "}
|
||||
<a href="https://github.com/nvim-telescope/telescope.nvim">
|
||||
telescope
|
||||
</a>{" "}
|
||||
plugin and leverages{" "}
|
||||
<a href="https://github.com/tokio-rs/tokio">tokio</a> and the
|
||||
nucleo matcher used by{" "}
|
||||
<a href="https://helix-editor.com/">helix</a> to ensure optimal
|
||||
performance.
|
||||
</p>
|
||||
</div>
|
||||
<div className={styles.buttons}>
|
||||
<Link className="button-mainpage" to="/docs/Users/installation">
|
||||
Getting Started
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
}
|
||||
|
||||
export default function Home(): ReactNode {
|
||||
return (
|
||||
<Layout description="Description will go into a meta tag in <head />">
|
||||
<HomepageHeader />
|
||||
<main>{/* <HomepageFeatures /> */}</main>
|
||||
</Layout>
|
||||
);
|
||||
}
|
7
website/src/pages/markdown-page.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Markdown page example
|
||||
---
|
||||
|
||||
# Markdown page example
|
||||
|
||||
You don't need React to write simple standalone pages.
|
0
website/static/.nojekyll
Normal file
BIN
website/static/fonts/Doto.ttf
Normal file
BIN
website/static/fonts/NotoSans-Italic.ttf
Normal file
BIN
website/static/fonts/NotoSans.ttf
Normal file
BIN
website/static/fonts/UbuntuMono-Bold.ttf
Normal file
BIN
website/static/fonts/UbuntuMono-BoldItalic.ttf
Normal file
BIN
website/static/fonts/UbuntuMono-Italic.ttf
Normal file
BIN
website/static/fonts/UbuntuMono-Regular.ttf
Normal file
BIN
website/static/img/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
1
website/static/img/inspired_icon.svg
Normal file
After Width: | Height: | Size: 7.1 KiB |
1
website/static/img/integrate_icon.svg
Normal file
After Width: | Height: | Size: 14 KiB |
10
website/static/img/logo.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<svg width="100" height="82" viewBox="0 0 100 82" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M86 12H14C7.37258 12 2 17.3726 2 24V64C2 70.6274 7.37258 76 14 76H86C92.6274 76 98 70.6274 98 64V24C98 17.3726 92.6274 12 86 12Z" fill="#A2765A" stroke="#CA9471" stroke-width="4"/>
|
||||
<path d="M80 24H20C16.6863 24 14 26.6863 14 30V58C14 61.3137 16.6863 64 20 64H80C83.3137 64 86 61.3137 86 58V30C86 26.6863 83.3137 24 80 24Z" fill="#020202" stroke="#2A2A2A" stroke-width="2"/>
|
||||
<path d="M59 74H41C39.3431 74 38 75.3431 38 77V79C38 80.6569 39.3431 82 41 82H59C60.6569 82 62 80.6569 62 79V77C62 75.3431 60.6569 74 59 74Z" fill="#AFAFAF"/>
|
||||
<path d="M94 78C96.2091 78 98 76.2091 98 74C98 71.7909 96.2091 70 94 70C91.7909 70 90 71.7909 90 74C90 76.2091 91.7909 78 94 78Z" fill="#AFAFAF"/>
|
||||
<path d="M6 78C8.20914 78 10 76.2091 10 74C10 71.7909 8.20914 70 6 70C3.79086 70 2 71.7909 2 74C2 76.2091 3.79086 78 6 78Z" fill="#AFAFAF"/>
|
||||
<path d="M52 0H48V18H52V0Z" fill="#444444"/>
|
||||
<path d="M41.7588 1L38 2.36808L42.1042 13.6444L45.863 12.2763L41.7588 1Z" fill="#444444"/>
|
||||
<path d="M62.863 2.36808L59.1042 1L55 12.2763L58.7588 13.6444L62.863 2.36808Z" fill="#444444"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
10
website/static/img/logo_dark.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<svg width="100" height="82" viewBox="0 0 100 82" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M86 12H14C7.37258 12 2 17.3726 2 24V64C2 70.6274 7.37258 76 14 76H86C92.6274 76 98 70.6274 98 64V24C98 17.3726 92.6274 12 86 12Z" fill="#A2765A" stroke="#CA9471" stroke-width="4"/>
|
||||
<path d="M80 24H20C16.6863 24 14 26.6863 14 30V58C14 61.3137 16.6863 64 20 64H80C83.3137 64 86 61.3137 86 58V30C86 26.6863 83.3137 24 80 24Z" fill="#020202" stroke="#2A2A2A" stroke-width="2"/>
|
||||
<path d="M59 74H41C39.3431 74 38 75.3431 38 77V79C38 80.6569 39.3431 82 41 82H59C60.6569 82 62 80.6569 62 79V77C62 75.3431 60.6569 74 59 74Z" fill="white"/>
|
||||
<path d="M94 78C96.2091 78 98 76.2091 98 74C98 71.7909 96.2091 70 94 70C91.7909 70 90 71.7909 90 74C90 76.2091 91.7909 78 94 78Z" fill="white"/>
|
||||
<path d="M6 78C8.20914 78 10 76.2091 10 74C10 71.7909 8.20914 70 6 70C3.79086 70 2 71.7909 2 74C2 76.2091 3.79086 78 6 78Z" fill="white"/>
|
||||
<path d="M52 0H48V18H52V0Z" fill="white"/>
|
||||
<path d="M41.7588 1L38 2.36808L42.1042 13.6444L45.863 12.2763L41.7588 1Z" fill="white"/>
|
||||
<path d="M62.863 2.36808L59.1042 1L55 12.2763L58.7588 13.6444L62.863 2.36808Z" fill="white"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
BIN
website/static/img/tv-bg.png
Normal file
After Width: | Height: | Size: 349 KiB |
BIN
website/static/img/tv-icon-150.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
website/static/img/tv-icon-80.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
website/static/img/tv-icon-huge.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
website/static/img/tv-social.png
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
website/static/img/tv-transparent.png
Normal file
After Width: | Height: | Size: 339 KiB |
8
website/tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
// This file is not used in compilation. It is here just for a nice editor experience.
|
||||
"extends": "@docusaurus/tsconfig",
|
||||
"compilerOptions": {
|
||||
"baseUrl": "."
|
||||
},
|
||||
"exclude": [".docusaurus", "build"]
|
||||
}
|