Skip to content

Commit baa253d

Browse files
authored
Frontend Refactor (#43)
* new frontend * local * index new ui * clean * links * links fix * notepad * buttons fix * static catpp bg fix * del weekly notif * readme + ss * form clear + clipb file paste
1 parent 00ad44b commit baa253d

33 files changed

Lines changed: 931 additions & 1186 deletions

.github/workflows/notifications.yml

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,6 @@ on:
1313
types: [opened, closed, edited, review_requested]
1414

1515
jobs:
16-
weekly-summary:
17-
if: github.event_name == 'schedule'
18-
runs-on: ubuntu-latest
19-
steps:
20-
- name: Calculate Summary
21-
run: |
22-
REPO="${{ github.repository }}"
23-
STARS=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/$REPO" | jq .stargazers_count)
24-
FORKS=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/$REPO" | jq .forks_count)
25-
COMMITS=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
26-
"https://api.github.com/repos/$REPO/commits?since=$(date -u -d 'last saturday' '+%Y-%m-%dT%H:%M:%SZ')" | jq length)
27-
curl -H "Content-Type: application/json" -X POST \
28-
-d "{\"content\": \"*Weekly summary for **$REPO***\nStars - $STARS, Forks - $FORKS, Commits this week - $COMMITS\"}" ${{ secrets.DISCORD_WEBHOOK }}
29-
3016
issue-comment-notification:
3117
if: github.event_name == 'issues' || github.event_name == 'issue_comment'
3218
runs-on: ubuntu-latest

README.md

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,26 @@
44

55
<a href="https://github.com/tanq16/local-content-share/actions/workflows/binary-build.yml"><img alt="Build Workflow" src="https://github.com/tanq16/local-content-share/actions/workflows/binary-build.yml/badge.svg"></a>&nbsp;<a href="https://github.com/tanq16/local-content-share/actions/workflows/docker-publish.yml"><img alt="Container Workflow" src="https://github.com/tanq16/local-content-share/actions/workflows/docker-publish.yml/badge.svg"></a><br>
66
<a href="https://github.com/Tanq16/local-content-share/releases"><img alt="GitHub Release" src="https://img.shields.io/github/v/release/tanq16/local-content-share"></a>&nbsp;<a href="https://hub.docker.com/r/tanq16/local-content-share"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/tanq16/local-content-share"></a><br><br>
7-
<a href="#screenshots">Screenshots</a> &bull; <a href="#installation-and-usage">Install & Use</a> &bull; <a href="#tips-and-notes">Tips & Notes</a> &bull; <a href="#acknowledgements">Acknowledgements</a>
7+
<a href="#screenshots">Screenshots</a> &bull; <a href="#installation-and-usage">Install & Use</a> &bull; <a href="#tips-and-notes">Tips & Notes</a>
88
</div>
99

1010
---
1111

12-
A simple & elegant self-hosted app for **storing/sharing text snippets and files** in your **local network** with **no setup on client devices**. Think of this as an *all-in-one alternative* to **airdrop**, **local-pastebin**, and a **scratchpad**. The primary features are:
12+
A simple & elegant self-hosted app for **storing/sharing text snippets, files, and links** in your **local network** with **no setup on client devices**. Think of this as an *all-in-one alternative* to **airdrop**, **local-pastebin**, and a **scratchpad**. The primary features are:
1313

1414
- Make plain text **snippets** available to **view/share** on any device in the local network
1515
- **Upload files** and make them available to **view/download** on any device in the local network
16-
- Built-in **Notepad** with both **Markdown** and **Rich Text** editing capabilities
16+
- **Store links** to **share** in last in, first show order in its own section
17+
- Built-in **Notepad** with **Markdown** editing and preview capabilities
1718
- **Rename** text snippets and files uploaded to easily find them in the UI
1819
- **Edit** text snippets to modify their content as needed
19-
- **Multi-file** **drag-n-drop** (drop into the text area) support for uploading files
20+
- **Multi-file** **drag-n-drop** support for uploading files
2021
- Configurable **expiration (or TTL, i.e., time to live)** per file/snippet for Never, 1 hour, 4 hours, 1 day, or Custom
2122
- Use of **SSE** to automatically inform all clients of new/deleted/edited files
2223
- Completely **local assets**, so the app works in your network even without internet
2324
- **Multi-arch** (x86-64 and ARM64) **Docker image** for **homelab** deployments
24-
- Frontend available over **browsers** and as a **PWA** (progressive web apps)
25-
- Clean, modern interface with **automatic light/dark** UI that looks good on mobile too
25+
- Frontend accessible via **browsers** and as a **PWA** (progressive web apps)
26+
- Clean, modern interface with **automatic light/dark** Catppuccin themed UI that looks good on mobile too
2627

2728
Make sure to look into [Tips & Notes](#tips-and-notes) if you have questions about individual functionalities.
2829

@@ -36,22 +37,6 @@ Make sure to look into [Tips & Notes](#tips-and-notes) if you have questions abo
3637
| Light | <img src="assets/dlight.png" alt="Light"> | <img src="assets/mlight.png" alt="Light"> |
3738
| Dark | <img src="assets/ddark.png" alt="Dark"> | <img src="assets/mdark.png" alt="Dark"> |
3839

39-
<details>
40-
<summary>Expand for more screenshots</summary>
41-
42-
| Desktop View | Mobile View |
43-
| --- | --- |
44-
| <img src="assets/dmdlight.png"> | <img src="assets/mmdlight.png"> |
45-
| <img src="assets/dmddark.png"> | <img src="assets/mmddark.png"> |
46-
| <img src="assets/dmdrlight.png"> | <img src="assets/mmdrlight.png"> |
47-
| <img src="assets/dmdrdark.png"> | <img src="assets/mmdrdark.png"> |
48-
| <img src="assets/drtextlight.png"> | <img src="assets/mrtextlight.png"> |
49-
| <img src="assets/drtextdark.png"> | <img src="assets/mrtextdark.png"> |
50-
| <img src="assets/dsnippetlight.png"> | <img src="assets/msnippetlight.png"> |
51-
| <img src="assets/dsnippetdark.png"> | <img src="assets/msnippetdark.png"> |
52-
53-
</details>
54-
5540
## Installation and Usage
5641

5742
### Using Docker (Recommended for Self-Hosting)
@@ -121,6 +106,7 @@ go build .
121106
- To share files:
122107
- Click the upload button and select your file
123108
- OR drag and drop your file (even multiple files) to the text area
109+
- OR click into the text area and paste a file or screenshot from clipboard
124110
- It will automatically append 4 random digits if filename isn't unique
125111
- To view content, click the eye icon:
126112
- For text content, it shows the raw text, which can be copied with a button on top
@@ -138,7 +124,7 @@ go build .
138124
- This value will be set as default on the home page instead of `Never`
139125
- The other options will still be available by cycling if needed
140126
- The Notepad is for writing something quickly and getting back to it from any device
141-
- It supports both markdown and richtext modes
127+
- It supports both markdown edit and preview modes
142128
- Content is automatically saved upon inactivity in the backend and will load as is on any device
143129

144130
### A Note on Reverse Proxies
@@ -161,11 +147,4 @@ This configuration will set the maximum accept size for file transfer through NP
161147

162148
### Backend Data Structure
163149

164-
The application creates a `data` directory to store all uploaded files, uploaded text snippets, notepad notes (in `files`, `text`, and `notepad` subfolders respectively). File expirations are saved in an `expiration.json` file in the data directory. Make sure the application has write permissions for the directory where it runs.
165-
166-
## Acknowledgements
167-
168-
The following people have contributed to the project:
169-
170-
- [TheArktect](https://github.com/TheArktect) - Added CLI argument for listen address.
171-
- A lot of other users who created feature requests via GitHub issues.
150+
The application creates a `data` directory to store all uploaded files, text snippets, notepad notes, and links (in `files/`, `text/`, `md.file`, and `links.file` respectively). File expirations are saved in an `expiration.json` file in the data directory. Make sure the application has write permissions for the directory where it runs.

assets/ddark.png

-9.13 KB
Loading

assets/dlight.png

-18.3 KB
Loading

assets/dmddark.png

-177 KB
Binary file not shown.

assets/dmdlight.png

-175 KB
Binary file not shown.

assets/dmdrdark.png

-183 KB
Binary file not shown.

assets/dmdrlight.png

-182 KB
Binary file not shown.

assets/drtextdark.png

-236 KB
Binary file not shown.

assets/drtextlight.png

-234 KB
Binary file not shown.

0 commit comments

Comments
 (0)