docs: improve typography with Inter, Plus Jakarta Sans, and tailwind-typography

This commit is contained in:
rishikanthc
2025-11-30 12:59:44 -08:00
parent 77795b9847
commit ab292de2b6
34 changed files with 245 additions and 209 deletions

View File

@@ -7,9 +7,9 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&display=swap" rel="stylesheet">
<script type="module" crossorigin src="/assets/api-HgmcJAbB.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-FGtNfnpR.js">
<link rel="stylesheet" crossorigin href="/assets/styles-DObRu5Af.css">
<script type="module" crossorigin src="/assets/api-BI0bFv_E.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-CUNhQwI0.js">
<link rel="stylesheet" crossorigin href="/assets/styles-B3t5QDqx.css">
</head>
<body>
<div id="root"></div>

View File

@@ -1 +1 @@
import{r as t,j as s,G as c}from"./styles-FGtNfnpR.js";function h({active:e="intro",children:a}){const[l,i]=t.useState(!1);return s.jsxs("div",{className:"min-h-screen bg-white",children:[s.jsx("header",{className:"api-topbar",children:s.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[s.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none min-w-0",children:[s.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),s.jsx("span",{className:"text-gray-300",children:"/"}),s.jsx("span",{className:"text-sm text-gray-600",children:"Docs"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Toggle sidebar",onClick:()=>i(n=>!n),children:s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:s.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),s.jsx("div",{className:"hidden md:block",children:s.jsx(c,{})})]})]})}),s.jsxs("main",{className:"container-narrow py-10",children:[l&&s.jsx("div",{className:"md:hidden mb-4 border border-gray-200 rounded-lg p-3",children:s.jsx(d,{active:e,onClick:()=>i(!1)})}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[240px_minmax(0,1fr)] gap-8",children:[s.jsx("aside",{className:"api-sidebar",children:s.jsxs("div",{className:"sticky top-24 pr-6",children:[s.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Docs"}),s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"space-y-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:r(e==="intro"),children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/features.html",className:r(e==="features"),children:"Features"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:r(e==="installation"),children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/configuration.html",className:r(e==="configuration"),children:"Configuration"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/usage.html",className:r(e==="usage"),children:"Usage Guide"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/contributing.html",className:r(e==="contributing"),children:"Contributing"})})]})})]})}),s.jsx("section",{className:"space-y-8 docs-prose",children:a})]})]})]})}function r(e){return`block rounded px-2 py-1 ${e?"bg-gray-100 text-gray-900":"text-gray-600 hover:text-gray-900"}`}function d({active:e,onClick:a}){return s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"grid grid-cols-2 gap-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:r(e==="intro"),onClick:a,children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/features.html",className:r(e==="features"),onClick:a,children:"Features"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:r(e==="installation"),onClick:a,children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/configuration.html",className:r(e==="configuration"),onClick:a,children:"Configuration"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/usage.html",className:r(e==="usage"),onClick:a,children:"Usage Guide"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/contributing.html",className:r(e==="contributing"),onClick:a,children:"Contributing"})})]})})}export{h as D};
import{r as t,j as s,G as c}from"./styles-CUNhQwI0.js";function h({active:e="intro",children:a}){const[l,i]=t.useState(!1);return s.jsxs("div",{className:"min-h-screen bg-white",children:[s.jsx("header",{className:"api-topbar",children:s.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[s.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none min-w-0",children:[s.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),s.jsx("span",{className:"text-gray-300",children:"/"}),s.jsx("span",{className:"text-sm text-gray-600",children:"Docs"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Toggle sidebar",onClick:()=>i(n=>!n),children:s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:s.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),s.jsx("div",{className:"hidden md:block",children:s.jsx(c,{})})]})]})}),s.jsxs("main",{className:"container-narrow py-10",children:[l&&s.jsx("div",{className:"md:hidden mb-4 border border-gray-200 rounded-lg p-3",children:s.jsx(d,{active:e,onClick:()=>i(!1)})}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[240px_minmax(0,1fr)] gap-8",children:[s.jsx("aside",{className:"api-sidebar",children:s.jsxs("div",{className:"sticky top-24 pr-6",children:[s.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Docs"}),s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"space-y-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:r(e==="intro"),children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/features.html",className:r(e==="features"),children:"Features"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:r(e==="installation"),children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/configuration.html",className:r(e==="configuration"),children:"Configuration"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/usage.html",className:r(e==="usage"),children:"Usage Guide"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/contributing.html",className:r(e==="contributing"),children:"Contributing"})})]})})]})}),s.jsx("section",{className:"space-y-8 docs-prose",children:a})]})]})]})}function r(e){return`block rounded px-2 py-1 ${e?"bg-gray-100 text-gray-900":"text-gray-600 hover:text-gray-900"}`}function d({active:e,onClick:a}){return s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"grid grid-cols-2 gap-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:r(e==="intro"),onClick:a,children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/features.html",className:r(e==="features"),onClick:a,children:"Features"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:r(e==="installation"),onClick:a,children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/configuration.html",className:r(e==="configuration"),onClick:a,children:"Configuration"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/usage.html",className:r(e==="usage"),onClick:a,children:"Usage Guide"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/contributing.html",className:r(e==="contributing"),onClick:a,children:"Contributing"})})]})})}export{h as D};

View File

@@ -1 +1 @@
import{j as s}from"./styles-FGtNfnpR.js";function o({src:e,alt:l,className:a}){return s.jsxs("div",{className:`rounded-2xl shadow-soft overflow-hidden bg-white hover-lift ${a??""}`,children:[s.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[s.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),s.jsx("img",{src:e,alt:l,className:"w-full object-cover"})]})}export{o as W};
import{j as s}from"./styles-CUNhQwI0.js";function o({src:e,alt:l,className:a}){return s.jsxs("div",{className:`rounded-2xl shadow-soft overflow-hidden bg-white hover-lift ${a??""}`,children:[s.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[s.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),s.jsx("img",{src:e,alt:l,className:"w-full object-cover"})]})}export{o as W};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{c as r,j as e,R as t}from"../styles-FGtNfnpR.js";import{D as n}from"../DocsLayout-ubRFirKM.js";function s(){return e.jsxs(n,{active:"configuration",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Configuration"}),e.jsx("p",{className:"mt-2",children:"Setting up advanced features like Speaker Diarization."})]}),e.jsxs("article",{className:"docs-prose mt-8",children:[e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4 mb-8",children:[e.jsx("h3",{className:"text-blue-800 font-semibold mt-0",children:"Note on Local Execution"}),e.jsxs("p",{className:"text-blue-700 mt-2 mb-0",children:["While you need to accept user agreements on Hugging Face to download the models, the actual diarization process happens entirely ",e.jsx("strong",{children:"locally on your machine"}),". No audio data is sent to Hugging Face or any third party."]})]}),e.jsx("h2",{children:"Speaker Diarization Setup"}),e.jsxs("p",{className:"mt-4",children:["Scriberr uses ",e.jsx("a",{href:"https://github.com/pyannote/pyannote-audio",target:"_blank",rel:"noopener noreferrer",children:"pyannote.audio"})," for speaker diarization. To use this feature, you need to obtain an access token from Hugging Face."]}),e.jsx("h3",{className:"mt-6",children:"Step 1: Hugging Face Account"}),e.jsxs("p",{className:"mt-2",children:["If you don't have one, create an account on ",e.jsx("a",{href:"https://huggingface.co/join",target:"_blank",rel:"noopener noreferrer",children:"Hugging Face"}),"."]}),e.jsx("h3",{className:"mt-6",children:"Step 2: Accept User Agreement"}),e.jsx("p",{className:"mt-2",children:"Visit the following model page and accept the user agreement:"}),e.jsx("ul",{className:"mt-2 list-disc pl-5",children:e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-community-1",target:"_blank",rel:"noopener noreferrer",children:"pyannote/speaker-diarization-community-1"})})}),e.jsx("p",{className:"mt-2 text-sm text-gray-600",children:e.jsx("em",{children:"Note: Previous versions required accepting agreements for multiple models. You now only need access to this single community model."})}),e.jsx("h3",{className:"mt-6",children:"Step 3: Create Access Token"}),e.jsxs("ol",{className:"mt-2 list-decimal pl-5 space-y-2",children:[e.jsxs("li",{children:["Go to your ",e.jsx("a",{href:"https://huggingface.co/settings/tokens",target:"_blank",rel:"noopener noreferrer",children:"Access Tokens settings"}),"."]}),e.jsxs("li",{children:["Create a new token with ",e.jsx("strong",{children:"Read"})," permissions."]}),e.jsx("li",{children:"Copy the token."})]}),e.jsx("h3",{className:"mt-6",children:"Step 4: Configure Scriberr"}),e.jsxs("p",{className:"mt-2",children:["Open Scriberr, go to ",e.jsx("strong",{children:"Settings"}),", and paste your token into the ",e.jsx("strong",{children:"Hugging Face Token"})," field. Save the settings."]}),e.jsx("p",{className:"mt-2",children:"Scriberr will now be able to download the diarization model the first time you run a transcription with diarization enabled."}),e.jsx("hr",{className:"my-12 border-gray-200"}),e.jsx("h2",{children:"NVIDIA Sortformer"}),e.jsx("p",{className:"mt-4",children:"If you are using the NVIDIA Docker image, Sortformer is supported out of the box for diarization and does not require a Hugging Face token."})]})]})}const a=r(document.getElementById("root"));a.render(e.jsx(t.StrictMode,{children:e.jsx(s,{})}));
import{c as r,j as e,R as t}from"../styles-CUNhQwI0.js";import{D as n}from"../DocsLayout-GqKUjnoJ.js";function s(){return e.jsxs(n,{active:"configuration",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Configuration"}),e.jsx("p",{className:"mt-2",children:"Setting up advanced features like Speaker Diarization."})]}),e.jsxs("article",{className:"docs-prose mt-8",children:[e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4 mb-8",children:[e.jsx("h3",{className:"text-blue-800 font-semibold mt-0",children:"Note on Local Execution"}),e.jsxs("p",{className:"text-blue-700 mt-2 mb-0",children:["While you need to accept user agreements on Hugging Face to download the models, the actual diarization process happens entirely ",e.jsx("strong",{children:"locally on your machine"}),". No audio data is sent to Hugging Face or any third party."]})]}),e.jsx("h2",{children:"Speaker Diarization Setup"}),e.jsxs("p",{className:"mt-4",children:["Scriberr uses ",e.jsx("a",{href:"https://github.com/pyannote/pyannote-audio",target:"_blank",rel:"noopener noreferrer",children:"pyannote.audio"})," for speaker diarization. To use this feature, you need to obtain an access token from Hugging Face."]}),e.jsx("h3",{className:"mt-6",children:"Step 1: Hugging Face Account"}),e.jsxs("p",{className:"mt-2",children:["If you don't have one, create an account on ",e.jsx("a",{href:"https://huggingface.co/join",target:"_blank",rel:"noopener noreferrer",children:"Hugging Face"}),"."]}),e.jsx("h3",{className:"mt-6",children:"Step 2: Accept User Agreement"}),e.jsx("p",{className:"mt-2",children:"Visit the following model page and accept the user agreement:"}),e.jsx("ul",{className:"mt-2 list-disc pl-5",children:e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-community-1",target:"_blank",rel:"noopener noreferrer",children:"pyannote/speaker-diarization-community-1"})})}),e.jsx("p",{className:"mt-2 text-sm text-gray-600",children:e.jsx("em",{children:"Note: Previous versions required accepting agreements for multiple models. You now only need access to this single community model."})}),e.jsx("h3",{className:"mt-6",children:"Step 3: Create Access Token"}),e.jsxs("ol",{className:"mt-2 list-decimal pl-5 space-y-2",children:[e.jsxs("li",{children:["Go to your ",e.jsx("a",{href:"https://huggingface.co/settings/tokens",target:"_blank",rel:"noopener noreferrer",children:"Access Tokens settings"}),"."]}),e.jsxs("li",{children:["Create a new token with ",e.jsx("strong",{children:"Read"})," permissions."]}),e.jsx("li",{children:"Copy the token."})]}),e.jsx("h3",{className:"mt-6",children:"Step 4: Configure Scriberr"}),e.jsxs("p",{className:"mt-2",children:["Open Scriberr, go to ",e.jsx("strong",{children:"Settings"}),", and paste your token into the ",e.jsx("strong",{children:"Hugging Face Token"})," field. Save the settings."]}),e.jsx("p",{className:"mt-2",children:"Scriberr will now be able to download the diarization model the first time you run a transcription with diarization enabled."}),e.jsx("hr",{className:"my-12 border-gray-200"}),e.jsx("h2",{children:"NVIDIA Sortformer"}),e.jsx("p",{className:"mt-4",children:"If you are using the NVIDIA Docker image, Sortformer is supported out of the box for diarization and does not require a Hugging Face token."})]})]})}const a=r(document.getElementById("root"));a.render(e.jsx(t.StrictMode,{children:e.jsx(s,{})}));

View File

@@ -1,4 +1,4 @@
import{c as s,j as e,R as n}from"../styles-FGtNfnpR.js";import{D as r}from"../DocsLayout-ubRFirKM.js";function t(){return e.jsxs(r,{active:"contributing",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Contributing"}),e.jsx("p",{className:"mt-2",children:"Thanks for your interest in improving Scriberr! Heres how to get set up and contribute."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Guidelines"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Open an issue first for large changes to discuss scope and approach."}),e.jsx("li",{children:"Keep pull requests focused and small; write clear descriptions."}),e.jsxs("li",{children:["Use conventional, imperative commit messages (e.g., ",e.jsx("code",{children:"add docs sidebar link"}),", ",e.jsx("code",{children:"fix queue status endpoint"}),")."]}),e.jsxs("li",{children:["Follow coding styles: run ",e.jsx("code",{children:"go fmt ./..."}),", ",e.jsx("code",{children:"go vet ./..."})," and ",e.jsx("code",{children:"npm run lint"})," in the frontend."]}),e.jsxs("li",{children:["Add tests where appropriate (Go tests live under ",e.jsx("code",{children:"tests/"})," or next to packages)."]}),e.jsx("li",{children:"Update docs (README, swagger) when you change API shapes."})]})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Prerequisites"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Node.js 18+ and npm"}),e.jsx("li",{children:"Go 1.24+"}),e.jsxs("li",{children:["Python 3.11+ and ",e.jsx("a",{href:"https://docs.astral.sh/uv/",target:"_blank",rel:"noopener noreferrer",children:"uv"})," (for transcription features)"]})]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:e.jsx("pre",{children:`# macOS (Homebrew)
import{c as s,j as e,R as n}from"../styles-CUNhQwI0.js";import{D as r}from"../DocsLayout-GqKUjnoJ.js";function t(){return e.jsxs(r,{active:"contributing",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Contributing"}),e.jsx("p",{className:"mt-2",children:"Thanks for your interest in improving Scriberr! Heres how to get set up and contribute."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Guidelines"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Open an issue first for large changes to discuss scope and approach."}),e.jsx("li",{children:"Keep pull requests focused and small; write clear descriptions."}),e.jsxs("li",{children:["Use conventional, imperative commit messages (e.g., ",e.jsx("code",{children:"add docs sidebar link"}),", ",e.jsx("code",{children:"fix queue status endpoint"}),")."]}),e.jsxs("li",{children:["Follow coding styles: run ",e.jsx("code",{children:"go fmt ./..."}),", ",e.jsx("code",{children:"go vet ./..."})," and ",e.jsx("code",{children:"npm run lint"})," in the frontend."]}),e.jsxs("li",{children:["Add tests where appropriate (Go tests live under ",e.jsx("code",{children:"tests/"})," or next to packages)."]}),e.jsx("li",{children:"Update docs (README, swagger) when you change API shapes."})]})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Prerequisites"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Node.js 18+ and npm"}),e.jsx("li",{children:"Go 1.24+"}),e.jsxs("li",{children:["Python 3.11+ and ",e.jsx("a",{href:"https://docs.astral.sh/uv/",target:"_blank",rel:"noopener noreferrer",children:"uv"})," (for transcription features)"]})]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:e.jsx("pre",{children:`# macOS (Homebrew)
brew install node go python
curl -LsSf https://astral.sh/uv/install.sh | sh

View File

@@ -1 +1 @@
import{c as s,j as e,R as r}from"../styles-FGtNfnpR.js";import{D as i}from"../DocsLayout-ubRFirKM.js";function n(){return e.jsxs(i,{active:"features",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Features"}),e.jsx("p",{className:"mt-2",children:"A comprehensive list of everything Scriberr can do."})]}),e.jsxs("article",{className:"docs-prose mt-8",children:[e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{children:"Transcription & Audio"}),e.jsxs("ul",{className:"mt-4 space-y-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Multi-Model Support:"})," Choose between Whisper, NVIDIA Parakeet, and NVIDIA Canary models to balance speed and accuracy."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"GPU Acceleration:"})," Full CUDA support for NVIDIA GPUs, ensuring lightning-fast transcription."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Speaker Diarization:"}),' Identify "who said what" with high accuracy using PyAnnote audio models (requires configuration).']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Word-Level Timestamps:"})," Precise alignment of text with audio for accurate seeking and editing."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"In-App Recording:"})," Record audio directly from your microphone without needing external tools."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Batch Processing:"})," Upload multiple files at once and let Scriberr handle the queue."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{children:"Productivity & Organization"}),e.jsxs("ul",{className:"mt-4 space-y-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Click-to-Seek:"})," CMD/CTRL + Click on any word to jump the audio to that exact moment."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Highlighting & Notes:"})," Highlight text and add notes for easy reference."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Export Options:"})," Export transcripts to TXT, SRT, or JSON formats."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{children:"AI & Automation"}),e.jsxs("ul",{className:"mt-4 space-y-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"LLM Chat:"})," Chat with your transcripts to ask questions, extract insights, or generate summaries."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Custom Prompts:"}),' Create and save custom prompts for repetitive tasks like "Summarize meeting" or "Extract action items".']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Scriberr Watcher:"})," A CLI tool that monitors folders and automatically transcribes new audio files in the background."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{children:"Deployment & Access"}),e.jsxs("ul",{className:"mt-4 space-y-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Single Binary:"})," Easy to deploy with no complex dependencies (for CPU mode)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Docker Support:"})," Ready-to-use Docker images for both CPU and CUDA environments."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"PWA:"})," Install as a Progressive Web App on iOS, Android, macOS, and Windows."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"API Access:"})," Full REST API for integrating Scriberr into your own workflows."]})]})]})]})]})}const t=s(document.getElementById("root"));t.render(e.jsx(r.StrictMode,{children:e.jsx(n,{})}));
import{c as s,j as e,R as r}from"../styles-CUNhQwI0.js";import{D as i}from"../DocsLayout-GqKUjnoJ.js";function n(){return e.jsxs(i,{active:"features",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Features"}),e.jsx("p",{className:"mt-2",children:"A comprehensive list of everything Scriberr can do."})]}),e.jsxs("article",{className:"docs-prose mt-8",children:[e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{children:"Transcription & Audio"}),e.jsxs("ul",{className:"mt-4 space-y-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Multi-Model Support:"})," Choose between Whisper, NVIDIA Parakeet, and NVIDIA Canary models to balance speed and accuracy."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"GPU Acceleration:"})," Full CUDA support for NVIDIA GPUs, ensuring lightning-fast transcription."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Speaker Diarization:"}),' Identify "who said what" with high accuracy using PyAnnote audio models (requires configuration).']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Word-Level Timestamps:"})," Precise alignment of text with audio for accurate seeking and editing."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"In-App Recording:"})," Record audio directly from your microphone without needing external tools."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Batch Processing:"})," Upload multiple files at once and let Scriberr handle the queue."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{children:"Productivity & Organization"}),e.jsxs("ul",{className:"mt-4 space-y-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Click-to-Seek:"})," CMD/CTRL + Click on any word to jump the audio to that exact moment."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Highlighting & Notes:"})," Highlight text and add notes for easy reference."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Export Options:"})," Export transcripts to TXT, SRT, or JSON formats."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{children:"AI & Automation"}),e.jsxs("ul",{className:"mt-4 space-y-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"LLM Chat:"})," Chat with your transcripts to ask questions, extract insights, or generate summaries."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Custom Prompts:"}),' Create and save custom prompts for repetitive tasks like "Summarize meeting" or "Extract action items".']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Scriberr Watcher:"})," A CLI tool that monitors folders and automatically transcribes new audio files in the background."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{children:"Deployment & Access"}),e.jsxs("ul",{className:"mt-4 space-y-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Single Binary:"})," Easy to deploy with no complex dependencies (for CPU mode)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Docker Support:"})," Ready-to-use Docker images for both CPU and CUDA environments."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"PWA:"})," Install as a Progressive Web App on iOS, Android, macOS, and Windows."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"API Access:"})," Full REST API for integrating Scriberr into your own workflows."]})]})]})]})]})}const t=s(document.getElementById("root"));t.render(e.jsx(r.StrictMode,{children:e.jsx(n,{})}));

View File

@@ -1,4 +1,4 @@
import{c as s,j as e,R as r}from"../styles-FGtNfnpR.js";import{D as a}from"../DocsLayout-ubRFirKM.js";function t(){return e.jsxs(a,{active:"installation",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Installation"}),e.jsx("p",{className:"mt-2",children:"Get Scriberr running on your system in a few minutes."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Install with Homebrew (macOS & Linux)"}),e.jsxs("p",{className:"mt-2",children:["The easiest way to install Scriberr is using Homebrew. If you dont have Homebrew installed,",e.jsx("a",{href:"https://brew.sh",target:"_blank",rel:"noopener noreferrer",className:"ml-1",children:"get it here first"}),"."]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-3",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Add the Scriberr tap"}),e.jsx("br",{}),"brew tap rishikanthc/scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Install Scriberr (automatically installs UV dependency)"}),e.jsx("br",{}),"brew install scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Start the server"}),e.jsx("br",{}),"scriberr"]})}),e.jsxs("p",{className:"mt-3",children:["Open ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"http://localhost:8080"})," in your browser."]}),e.jsx("h3",{className:"mt-8",children:"Configuration"}),e.jsxs("p",{className:"mt-2",children:["Scriberr works out of the box. To customize settings, create a ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:".env"})," file:"]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Server settings"}),e.jsx("br",{}),"HOST=localhost",e.jsx("br",{}),"PORT=8080",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Data storage (optional)"}),e.jsx("br",{}),"DATABASE_PATH=./data/scriberr.db",e.jsx("br",{}),"UPLOAD_DIR=./data/uploads",e.jsx("br",{}),"WHISPERX_ENV=./data/whisperx-env",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Custom paths (if needed)"}),e.jsx("br",{}),"UV_PATH=/custom/path/to/uv"]})}),e.jsx("h3",{className:"mt-8",children:"Troubleshooting"}),e.jsxs("div",{className:"space-y-3 mt-2",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Command not found"}),e.jsxs("p",{className:"mt-1",children:["Make sure the binary is in your PATH or run it with the full path: ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"./scriberr"})]})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Transcription not working"}),e.jsx("p",{className:"mt-1",children:"Ensure Python 3.11+ and UV are installed. Check logs on start for Python environment issues."})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Port already in use"}),e.jsxs("p",{className:"mt-1",children:["Set a different port with ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"PORT=8081 scriberr"})," or add it to your .env file."]})]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"mt-12",children:"Install with Docker"}),e.jsx("p",{className:"mt-2",children:"Run Scriberr in a container with all dependencies included. We provide images for both CPU and NVIDIA GPU (CUDA) environments."}),e.jsx("h3",{className:"mt-4",children:"CPU Version (Standard)"}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:[e.jsx("span",{className:"text-green-600",children:"# Run with Docker (data persisted in volume)"}),e.jsx("pre",{className:"mt-2",children:`docker run -d \\
import{c as s,j as e,R as r}from"../styles-CUNhQwI0.js";import{D as a}from"../DocsLayout-GqKUjnoJ.js";function t(){return e.jsxs(a,{active:"installation",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Installation"}),e.jsx("p",{className:"mt-2",children:"Get Scriberr running on your system in a few minutes."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Install with Homebrew (macOS & Linux)"}),e.jsxs("p",{className:"mt-2",children:["The easiest way to install Scriberr is using Homebrew. If you dont have Homebrew installed,",e.jsx("a",{href:"https://brew.sh",target:"_blank",rel:"noopener noreferrer",className:"ml-1",children:"get it here first"}),"."]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-3",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Add the Scriberr tap"}),e.jsx("br",{}),"brew tap rishikanthc/scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Install Scriberr (automatically installs UV dependency)"}),e.jsx("br",{}),"brew install scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Start the server"}),e.jsx("br",{}),"scriberr"]})}),e.jsxs("p",{className:"mt-3",children:["Open ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"http://localhost:8080"})," in your browser."]}),e.jsx("h3",{className:"mt-8",children:"Configuration"}),e.jsxs("p",{className:"mt-2",children:["Scriberr works out of the box. To customize settings, create a ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:".env"})," file:"]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Server settings"}),e.jsx("br",{}),"HOST=localhost",e.jsx("br",{}),"PORT=8080",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Data storage (optional)"}),e.jsx("br",{}),"DATABASE_PATH=./data/scriberr.db",e.jsx("br",{}),"UPLOAD_DIR=./data/uploads",e.jsx("br",{}),"WHISPERX_ENV=./data/whisperx-env",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Custom paths (if needed)"}),e.jsx("br",{}),"UV_PATH=/custom/path/to/uv"]})}),e.jsx("h3",{className:"mt-8",children:"Troubleshooting"}),e.jsxs("div",{className:"space-y-3 mt-2",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Command not found"}),e.jsxs("p",{className:"mt-1",children:["Make sure the binary is in your PATH or run it with the full path: ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"./scriberr"})]})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Transcription not working"}),e.jsx("p",{className:"mt-1",children:"Ensure Python 3.11+ and UV are installed. Check logs on start for Python environment issues."})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Port already in use"}),e.jsxs("p",{className:"mt-1",children:["Set a different port with ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"PORT=8081 scriberr"})," or add it to your .env file."]})]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"mt-12",children:"Install with Docker"}),e.jsx("p",{className:"mt-2",children:"Run Scriberr in a container with all dependencies included. We provide images for both CPU and NVIDIA GPU (CUDA) environments."}),e.jsx("h3",{className:"mt-4",children:"CPU Version (Standard)"}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:[e.jsx("span",{className:"text-green-600",children:"# Run with Docker (data persisted in volume)"}),e.jsx("pre",{className:"mt-2",children:`docker run -d \\
--name scriberr \\
-p 8080:8080 \\
-v scriberr_data:/app/data \\

View File

@@ -1 +1 @@
import{c as r,j as e,R as i}from"../styles-FGtNfnpR.js";import{D as s}from"../DocsLayout-ubRFirKM.js";import{W as t}from"../Window-DilhFYew.js";function a(){return e.jsxs(s,{active:"intro",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Introduction"}),e.jsx("p",{className:"mt-2",children:"A quick overview of Scriberr and what you can do with it."})]}),e.jsxs("article",{className:"docs-prose",children:[e.jsx("h2",{children:"What is Scriberr?"}),e.jsx("p",{className:"mt-4",children:"Scriberr is a powerful, self-hosted transcription application designed for privacy and performance. It converts audio files into text entirely offline, ensuring your data never leaves your machine. Whether you're a journalist, researcher, or developer, Scriberr provides a seamless workflow for transcribing, summarizing, and interacting with your audio content."}),e.jsx("p",{className:"mt-4",children:"Built with a robust Go backend and a modern React frontend, Scriberr is distributed as a single binary for easy deployment. It leverages state-of-the-art models like Whisper, NVIDIA Parakeet, and NVIDIA Canary to deliver high-accuracy transcriptions with word-level timestamps."}),e.jsx("h3",{className:"mt-8 text-xl font-semibold text-gray-900",children:"Key Features"}),e.jsxs("ul",{className:"mt-4 list-disc pl-5 space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Advanced Transcription Engines:"})," Support for Whisper, NVIDIA Parakeet, and NVIDIA Canary models for superior accuracy and speed."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Offline & Private:"})," All processing happens locally on your device. No data is sent to the cloud."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Hardware Acceleration:"})," Optimized for NVIDIA GPUs (CUDA) with fallback to CPU execution."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Speaker Diarization:"})," Automatically identify and label different speakers in your audio (powered by PyAnnote)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Scriberr Watcher CLI:"})," A background service that automatically detects and transcribes new audio files in monitored directories."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Interactive Player:"})," Click-to-seek, waveform visualization, and synchronized playback."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"LLM Integration:"})," Summarize and chat with your transcripts using your preferred LLM provider (Ollama, OpenAI, Anthropic, etc.)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"PWA Support:"})," Install Scriberr as a Progressive Web App on mobile and desktop for a native-like experience."]})]}),e.jsx("div",{className:"mt-8",children:e.jsx(t,{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage"})}),e.jsxs("p",{className:"mt-8",children:["Ready to get started? Check out the ",e.jsx("a",{href:"/docs/installation.html",children:"Installation Guide"})," to set up Scriberr on your machine."]})]})]})}const n=r(document.getElementById("root"));n.render(e.jsx(i.StrictMode,{children:e.jsx(a,{})}));
import{c as r,j as e,R as i}from"../styles-CUNhQwI0.js";import{D as s}from"../DocsLayout-GqKUjnoJ.js";import{W as t}from"../Window-DF2NPLXn.js";function a(){return e.jsxs(s,{active:"intro",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Introduction"}),e.jsx("p",{className:"mt-2",children:"A quick overview of Scriberr and what you can do with it."})]}),e.jsxs("article",{className:"docs-prose",children:[e.jsx("h2",{children:"What is Scriberr?"}),e.jsx("p",{className:"mt-4",children:"Scriberr is a powerful, self-hosted transcription application designed for privacy and performance. It converts audio files into text entirely offline, ensuring your data never leaves your machine. Whether you're a journalist, researcher, or developer, Scriberr provides a seamless workflow for transcribing, summarizing, and interacting with your audio content."}),e.jsx("p",{className:"mt-4",children:"Built with a robust Go backend and a modern React frontend, Scriberr is distributed as a single binary for easy deployment. It leverages state-of-the-art models like Whisper, NVIDIA Parakeet, and NVIDIA Canary to deliver high-accuracy transcriptions with word-level timestamps."}),e.jsx("h3",{className:"mt-8 text-xl font-semibold text-gray-900",children:"Key Features"}),e.jsxs("ul",{className:"mt-4 list-disc pl-5 space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Advanced Transcription Engines:"})," Support for Whisper, NVIDIA Parakeet, and NVIDIA Canary models for superior accuracy and speed."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Offline & Private:"})," All processing happens locally on your device. No data is sent to the cloud."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Hardware Acceleration:"})," Optimized for NVIDIA GPUs (CUDA) with fallback to CPU execution."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Speaker Diarization:"})," Automatically identify and label different speakers in your audio (powered by PyAnnote)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Scriberr Watcher CLI:"})," A background service that automatically detects and transcribes new audio files in monitored directories."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Interactive Player:"})," Click-to-seek, waveform visualization, and synchronized playback."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"LLM Integration:"})," Summarize and chat with your transcripts using your preferred LLM provider (Ollama, OpenAI, Anthropic, etc.)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"PWA Support:"})," Install Scriberr as a Progressive Web App on mobile and desktop for a native-like experience."]})]}),e.jsx("div",{className:"mt-8",children:e.jsx(t,{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage"})}),e.jsxs("p",{className:"mt-8",children:["Ready to get started? Check out the ",e.jsx("a",{href:"/docs/installation.html",children:"Installation Guide"})," to set up Scriberr on your machine."]})]})]})}const n=r(document.getElementById("root"));n.render(e.jsx(i.StrictMode,{children:e.jsx(a,{})}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -7,9 +7,9 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&display=swap" rel="stylesheet">
<script type="module" crossorigin src="/assets/changelog-UuMgX0Vi.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-FGtNfnpR.js">
<link rel="stylesheet" crossorigin href="/assets/styles-DObRu5Af.css">
<script type="module" crossorigin src="/assets/changelog-qdngCJYo.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-CUNhQwI0.js">
<link rel="stylesheet" crossorigin href="/assets/styles-B3t5QDqx.css">
</head>
<body>
<div id="root"></div>

View File

@@ -8,12 +8,12 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap"
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/configuration-BhTjP_h1.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-FGtNfnpR.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-ubRFirKM.js">
<link rel="stylesheet" crossorigin href="../assets/styles-DObRu5Af.css">
<script type="module" crossorigin src="../assets/docs/configuration-DfPPue_1.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-CUNhQwI0.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-GqKUjnoJ.js">
<link rel="stylesheet" crossorigin href="../assets/styles-B3t5QDqx.css">
</head>
<body>

View File

@@ -1,18 +1,23 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Contributing</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/contributing--nx8_ufZ.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-FGtNfnpR.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-ubRFirKM.js">
<link rel="stylesheet" crossorigin href="../assets/styles-DObRu5Af.css">
</head>
<body>
<div id="root"></div>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Contributing</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/contributing-CiDZvzN1.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-CUNhQwI0.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-GqKUjnoJ.js">
<link rel="stylesheet" crossorigin href="../assets/styles-B3t5QDqx.css">
</head>
<body>
<div id="root"></div>
</body>
</html>

View File

@@ -8,12 +8,12 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap"
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/features-Vu7MCtcI.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-FGtNfnpR.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-ubRFirKM.js">
<link rel="stylesheet" crossorigin href="../assets/styles-DObRu5Af.css">
<script type="module" crossorigin src="../assets/docs/features-CAg870sO.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-CUNhQwI0.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-GqKUjnoJ.js">
<link rel="stylesheet" crossorigin href="../assets/styles-B3t5QDqx.css">
</head>
<body>

View File

@@ -1,18 +1,23 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Installation</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/installation-a9aodD82.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-FGtNfnpR.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-ubRFirKM.js">
<link rel="stylesheet" crossorigin href="../assets/styles-DObRu5Af.css">
</head>
<body>
<div id="root"></div>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Installation</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/installation-B28K7cdK.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-CUNhQwI0.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-GqKUjnoJ.js">
<link rel="stylesheet" crossorigin href="../assets/styles-B3t5QDqx.css">
</head>
<body>
<div id="root"></div>
</body>
</html>

View File

@@ -1,19 +1,24 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Introduction</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/intro-m9TMcto_.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-FGtNfnpR.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-ubRFirKM.js">
<link rel="modulepreload" crossorigin href="../assets/Window-DilhFYew.js">
<link rel="stylesheet" crossorigin href="../assets/styles-DObRu5Af.css">
</head>
<body>
<div id="root"></div>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Introduction</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/intro-D21Ml_gl.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-CUNhQwI0.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-GqKUjnoJ.js">
<link rel="modulepreload" crossorigin href="../assets/Window-DF2NPLXn.js">
<link rel="stylesheet" crossorigin href="../assets/styles-B3t5QDqx.css">
</head>
<body>
<div id="root"></div>
</body>
</html>

View File

@@ -8,12 +8,12 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap"
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/usage-CKvWSzDg.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-FGtNfnpR.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-ubRFirKM.js">
<link rel="stylesheet" crossorigin href="../assets/styles-DObRu5Af.css">
<script type="module" crossorigin src="../assets/docs/usage-D6VpAVAT.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-CUNhQwI0.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-GqKUjnoJ.js">
<link rel="stylesheet" crossorigin href="../assets/styles-B3t5QDqx.css">
</head>
<body>

View File

@@ -1,24 +1,29 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" sizes="32x32" href="/scriberr-thumb.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/scriberr-thumb.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/scriberr-thumb.png" />
<link rel="shortcut icon" href="/scriberr-thumb.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Scriberr — sleek, minimal transcription app. Transcribe, summarize and annotate audio effortlessly." />
<title>Scriberr — Transcribe audio. Summarize. Annotate.</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Outfit:wght@100..900&display=swap" rel="stylesheet">
<script type="module" crossorigin src="/assets/index-2Fq4xc8E.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-FGtNfnpR.js">
<link rel="modulepreload" crossorigin href="/assets/Window-DilhFYew.js">
<link rel="stylesheet" crossorigin href="/assets/styles-DObRu5Af.css">
</head>
<body>
<div id="root"></div>
</body>
</html>
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" sizes="32x32" href="/scriberr-thumb.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/scriberr-thumb.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/scriberr-thumb.png" />
<link rel="shortcut icon" href="/scriberr-thumb.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description"
content="Scriberr — sleek, minimal transcription app. Transcribe, summarize and annotate audio effortlessly." />
<title>Scriberr — Transcribe audio. Summarize. Annotate.</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
<script type="module" crossorigin src="/assets/index-Y03hbhXZ.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-CUNhQwI0.js">
<link rel="modulepreload" crossorigin href="/assets/Window-DF2NPLXn.js">
<link rel="stylesheet" crossorigin href="/assets/styles-B3t5QDqx.css">
</head>
<body>
<div id="root"></div>
</body>
</html>

View File

@@ -8,7 +8,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap"
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
</head>

View File

@@ -1,15 +1,20 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Contributing</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/docs/contributing.tsx"></script>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Contributing</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/docs/contributing.tsx"></script>
</body>
</html>

View File

@@ -8,7 +8,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap"
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
</head>

View File

@@ -1,15 +1,20 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Installation</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/docs/installation.tsx"></script>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Installation</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/docs/installation.tsx"></script>
</body>
</html>

View File

@@ -1,15 +1,20 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Introduction</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/docs/intro.tsx"></script>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scriberr Docs — Introduction</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/docs/intro.tsx"></script>
</body>
</html>

View File

@@ -8,7 +8,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap"
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
</head>

View File

@@ -1,21 +1,26 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" sizes="32x32" href="/scriberr-thumb.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/scriberr-thumb.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/scriberr-thumb.png" />
<link rel="shortcut icon" href="/scriberr-thumb.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Scriberr — sleek, minimal transcription app. Transcribe, summarize and annotate audio effortlessly." />
<title>Scriberr — Transcribe audio. Summarize. Annotate.</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Outfit:wght@100..900&display=swap" rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" sizes="32x32" href="/scriberr-thumb.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/scriberr-thumb.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/scriberr-thumb.png" />
<link rel="shortcut icon" href="/scriberr-thumb.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description"
content="Scriberr — sleek, minimal transcription app. Transcribe, summarize and annotate audio effortlessly." />
<title>Scriberr — Transcribe audio. Summarize. Annotate.</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>

View File

@@ -12,6 +12,7 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
"@tailwindcss/typography": "^0.5.19",
"@types/react": "^18.2.48",
"@types/react-dom": "^18.2.18",
"@vitejs/plugin-react": "^4.3.1",
@@ -1115,6 +1116,33 @@
"win32"
]
},
"node_modules/@tailwindcss/typography": {
"version": "0.5.19",
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz",
"integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==",
"dev": true,
"license": "MIT",
"dependencies": {
"postcss-selector-parser": "6.0.10"
},
"peerDependencies": {
"tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1"
}
},
"node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": {
"version": "6.0.10",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
"integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
"dev": true,
"license": "MIT",
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",

View File

@@ -18,11 +18,12 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
"@tailwindcss/typography": "^0.5.19",
"@types/react": "^18.2.48",
"@types/react-dom": "^18.2.18",
"@vitejs/plugin-react": "^4.3.1",
"autoprefixer": "^10.4.17",
"postcss": "^8.4.35",
"@vitejs/plugin-react": "^4.3.1",
"tailwindcss": "^3.4.9",
"typescript": "^5.4.0",
"vite": "^5.3.0"

View File

@@ -44,7 +44,7 @@ html {
}
.headline {
@apply text-4xl sm:text-5xl md:text-6xl font-semibold tracking-tight leading-tight;
@apply text-4xl sm:text-5xl md:text-6xl font-semibold tracking-tight leading-[1.1];
}
.subcopy {
@@ -122,49 +122,15 @@ html {
}
/* Docs + Changelog typography */
/* Docs + Changelog typography handled by @tailwindcss/typography */
.docs-prose {
@apply font-sans;
@apply prose prose-slate prose-lg max-w-none;
@apply prose-headings:font-display prose-headings:font-semibold prose-headings:tracking-tight;
@apply prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline;
}
.docs-prose h1 {
@apply font-display text-[32px] md:text-[36px] font-semibold tracking-tight text-gray-900;
}
.docs-prose h2 {
@apply text-xl md:text-2xl font-semibold text-gray-900;
}
.docs-prose p {
@apply text-[15px] md:text-base leading-7 text-gray-700;
}
.docs-prose ul {
@apply text-[15px] md:text-base leading-7 text-gray-700;
}
.docs-prose li {
@apply my-0.5;
}
.docs-prose a {
@apply text-blue-600 hover:text-blue-700 underline-offset-2 hover:underline;
}
.changelog-prose h2 {
@apply text-xl md:text-2xl font-semibold text-gray-900;
}
.changelog-prose p,
.changelog-prose li,
.changelog-prose ul,
.changelog-prose div {
@apply text-[15px] md:text-base leading-7;
}
.changelog-prose li {
@apply my-0.5;
}
.changelog-prose a {
@apply text-blue-600 hover:text-blue-700 underline-offset-2 hover:underline;
.changelog-prose {
@apply prose prose-slate prose-lg max-w-none;
@apply prose-headings:font-display prose-headings:font-semibold;
@apply prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline;
}

View File

@@ -17,20 +17,18 @@ export default {
},
fontFamily: {
sans: [
'DM Sans',
'Inter',
'ui-sans-serif',
'system-ui',
'sans-serif',
],
display: [
'Outfit',
'DM Sans',
'Plus Jakarta Sans',
'Inter',
'sans-serif',
],
accent: [
'Outfit',
'DM Sans',
'Inter',
'sans-serif',
]
},
@@ -49,5 +47,8 @@ export default {
}
}
},
darkMode: 'class'
darkMode: 'class',
plugins: [
require('@tailwindcss/typography'),
],
} satisfies Config;