|
1 | 1 | # Neo-Brutalist Blog Editor for Github |
2 | 2 |
|
| 3 | +A **no-CMS**, no-lock-in **blog editor** that publishes directly to your **GitHub** repo. |
| 4 | + |
3 | 5 | <img src="https://raw.githubusercontent.com/monapdx/publish-to-github/refs/heads/main/neo-butalist-blog-editor-github.png"> |
4 | 6 |
|
5 | | -A small, **browser-only app** for drafting **blog posts** and publishing them as **HTML files** to a **GitHub repository** via the [Contents API](https://docs.github.com/en/rest/repos/contents). Think of it as a personal utility: write in a rich editor or raw HTML, keep drafts locally, and push files into a folder you choose (for example `blog/`). |
| 7 | +Publishes posts as **HTML files** to a **GitHub repository** via the [Contents API](https://docs.github.com/en/rest/repos/contents). Think of it as a personal utility: write in a rich editor or raw HTML, keep drafts locally, and push files into a folder you choose (for example `blog/`). |
6 | 8 |
|
7 | 9 | ## Features |
8 | 10 |
|
9 | | -### Editing |
| 11 | +### Toolbar |
10 | 12 |
|
11 | 13 | <img src="https://raw.githubusercontent.com/monapdx/publish-to-github/refs/heads/main/toolbar.png"> |
12 | 14 |
|
13 | 15 | - **Visual mode:** [TipTap](https://tiptap.dev/) v3 (ProseMirror) with headings (H1–H3), paragraph, bold, italic, underline, bullet and ordered lists, blockquote, horizontal rule, links, and undo/redo. **Ctrl/Cmd+S** saves the current draft (same as **Save draft**). |
14 | 16 |
|
15 | 17 | - **Code mode:** plain `textarea` for the post body HTML. |
16 | 18 |
|
| 19 | +<img src="https://raw.githubusercontent.com/monapdx/publish-to-github/refs/heads/main/visual-code-editors.gif" width="732"> |
| 20 | + |
17 | 21 | - **Tables:** insert a sized table (header row), then add/remove rows and columns or remove the whole table while the cursor is inside the table. |
18 | 22 |
|
| 23 | +<img src="https://raw.githubusercontent.com/monapdx/publish-to-github/refs/heads/main/insert-table.png"> |
| 24 | + |
| 25 | +- **Upload Media:** |
| 26 | + |
| 27 | +<img src="https://raw.githubusercontent.com/monapdx/publish-to-github/refs/heads/main/upload-media.png"> |
| 28 | + |
19 | 29 | - **Code snippets:** insert a multiline snippet from a dialog; optional language label becomes a `language-*` class on `<code>`. In Visual mode the block is styled with decorative triple-backtick lines; exported HTML is a normal `<pre><code>` block. |
20 | 30 |
|
21 | 31 | - **Images:** paste a URL or upload a file (embedded as a data URL in the draft). Alt text, width, height, and alignment classes (`blog-image align-*`) are supported. |
22 | 32 |
|
| 33 | +<img src="https://raw.githubusercontent.com/monapdx/publish-to-github/refs/heads/main/insert-image.png"> |
| 34 | + |
23 | 35 | ### Sidebar |
24 | 36 |
|
25 | 37 | - Switch between **Drafts** (local) and **Published** (files in your configured **Posts folder** on GitHub). |
@@ -60,3 +72,12 @@ Use a **fine-grained token** that can **read** repository contents (to list and |
60 | 72 | - `npm run build` — production build |
61 | 73 | - `npm run preview` — preview the production build |
62 | 74 | - `npm run lint` — ESLint |
| 75 | + |
| 76 | +## Why this exists |
| 77 | + |
| 78 | +- No databases |
| 79 | +- No dashboards |
| 80 | +- No subscriptions |
| 81 | +- Just files in your repo |
| 82 | + |
| 83 | +**Write → Save locally → Publish to GitHub** |
0 commit comments