Skip to content
Open

Wiky #13

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
3ec7176
Simplify README.md
ok300 Oct 21, 2025
41df806
Initial plan
Copilot Oct 21, 2025
2be54d5
Initialize Rust project with egui v0.33 and pubky v0.6.0-rc.6
Copilot Oct 21, 2025
1cf5b4a
Implement egui desktop app with Pubky login flow and QR code display
Copilot Oct 21, 2025
0c4db3b
Add tests, documentation, and demo script
Copilot Oct 21, 2025
727de71
Add comprehensive documentation including app flow and project summary
Copilot Oct 21, 2025
c159be9
Add detailed UI mockups and screenshots documentation
Copilot Oct 21, 2025
5d89acb
Apply cargo fmt for consistent code formatting
Copilot Oct 21, 2025
d687541
Scale down QR code to fit within window boundaries
Copilot Oct 21, 2025
650c25a
Update documentation to reflect smaller QR code size
Copilot Oct 21, 2025
ebbbcc8
Update .gitignore
ok300 Oct 21, 2025
a3e3582
Delete superfluous files
ok300 Oct 21, 2025
51f6a57
Update .gitignore
ok300 Oct 21, 2025
b798d82
Update Cargo.toml
ok300 Oct 21, 2025
5fd64cb
Update README.md
ok300 Oct 21, 2025
e1e61df
Extract QR building to utils.rs
ok300 Oct 22, 2025
56c617a
Use anyhow instead of Box<dyn Error>
ok300 Oct 22, 2025
01d651c
Add TESTING.md
ok300 Oct 22, 2025
9dde938
Merge pull request #10 from ok300/copilot/create-desktop-rust-app
ok300 Oct 22, 2025
fa692ea
Initial plan
Copilot Oct 22, 2025
bd6a382
Add file listing and wiki page creation features
Copilot Oct 22, 2025
e223200
Update wiki page ID, file path, capabilities
ok300 Oct 22, 2025
993bbf1
Add create wiki page view with textarea and save/cancel buttons
Copilot Oct 22, 2025
c1b0d07
Replace file listing with wiki list view and add view wiki functionality
Copilot Oct 22, 2025
e7535fb
Fix merge conflicts
ok300 Oct 22, 2025
b9c55da
Update files vector immediately after creating wiki post
Copilot Oct 22, 2025
c82b5e4
Simplify edit_wiki.rs
ok300 Oct 22, 2025
ff1a175
Revert "Simplify edit_wiki.rs"
ok300 Oct 22, 2025
48f3af5
Remove superfluous pk reference
ok300 Oct 22, 2025
ef8c349
Merge pull request #11 from ok300/copilot/add-file-listing-and-wiki-b…
ok300 Oct 22, 2025
3fd4503
Add markdown rendering
ok300 Oct 22, 2025
12b9d59
Merge pull request #14 from ok300/ok300-render-markdown-v2
ok300 Oct 22, 2025
8f6d219
Render custom markdown link format
ok300 Oct 22, 2025
9ef6a04
Replace println with logging
ok300 Oct 22, 2025
dd9c388
Merge pull request #15 from ok300/ok300-markdwn-custom-links-and-handler
ok300 Oct 22, 2025
6659770
Remove auth link from UI
ok300 Oct 22, 2025
aeaeadd
Consolidate app title
ok300 Oct 22, 2025
1f9a1bc
Avoid instantiating new Runtimes
ok300 Oct 22, 2025
4191a35
Merge pull request #16 from ok300/ok300-minor-fixes
ok300 Oct 22, 2025
c962c13
Add delete page button for editing wiki pages (#17)
Copilot Oct 22, 2025
82968db
Add Share Page Link button to View Wiki page with clipboard copy func…
Copilot Oct 22, 2025
53ef8cd
Rename files list to file_urls
ok300 Oct 22, 2025
26e22b1
Fetch and cache wiki page titles (#21)
ok300 Oct 22, 2025
0253d26
List wiki pages: show page ID, page title
ok300 Oct 22, 2025
6eaf547
Re-order title on wiki page list
ok300 Oct 22, 2025
fe8530d
Minor UX fixes
ok300 Oct 22, 2025
0d411e1
Add GitHub Actions workflow to build Linux AppImage (x64 and ARM64) a…
Copilot Oct 23, 2025
fa43ae6
Add Fork page button to enable forking wiki pages with preserved file…
Copilot Oct 23, 2025
d09aa0b
Fix ARM64 AppImage build failure by using Ubuntu Ports repository (#25)
Copilot Oct 23, 2025
d05569d
Add Windows x64 binary build to GitHub Actions workflow (#26)
Copilot Oct 23, 2025
d98a9a9
Correctly show and navigate to available forks (#28)
ok300 Oct 23, 2025
ca2dc3e
feat: icon + logo (#27)
ovitrif Oct 23, 2025
d2a14f1
Forks: show current user's version (#29)
ok300 Oct 23, 2025
281704a
Add workaround for HS 401 error
ok300 Oct 23, 2025
65e5c60
Enhance UI with improved typography, spacing, and visual hierarchy (#30)
Copilot Oct 23, 2025
a1dd11c
Update build-binaries.yml to modify apt sources
ok300 Oct 23, 2025
56bf179
Add comprehensive README.md with project description, use-cases, and …
Copilot Oct 23, 2025
19c32ca
Move files into project folder
ok300 Oct 23, 2025
a58286b
Move .gitignore to project folder
ok300 Oct 23, 2025
9b6f3ca
Update README with Downloads link
ok300 Oct 23, 2025
a4bfbb5
Update README.md
ok300 Oct 23, 2025
13a58f3
Restore original README.md
ok300 Oct 23, 2025
2245f51
Push back original LICENSE
ok300 Oct 23, 2025
3de0df8
Update README.md
ok300 Oct 23, 2025
736b61f
Embed logo asset at compile time to fix Windows binary runtime depend…
Copilot Nov 12, 2025
164262f
Move sources back to root folder (#35)
ok300 Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
291 changes: 291 additions & 0 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
name: Build Binaries

on:
push:
branches:
- main

permissions:
contents: read

jobs:
build-linux-appimage:
name: Build Linux AppImage (x64)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-unknown-linux-gnu

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev

- name: Cache cargo registry
uses: actions/cache@v4
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v4
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo build
uses: actions/cache@v4
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}

- name: Build release binary
run: cargo build --release --target x86_64-unknown-linux-gnu

- name: Install AppImage tools
run: |
wget -O /tmp/appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x /tmp/appimagetool

- name: Create AppImage structure
run: |
mkdir -p AppDir/usr/bin
mkdir -p AppDir/usr/share/applications
mkdir -p AppDir/usr/share/icons/hicolor/256x256/apps

# Copy binary
cp target/x86_64-unknown-linux-gnu/release/pubky-wiki AppDir/usr/bin/

# Create desktop file
cat > AppDir/usr/share/applications/pubky-wiki.desktop << 'EOF'
[Desktop Entry]
Name=Pubky Wiki
Exec=pubky-wiki
Icon=pubky-wiki
Type=Application
Categories=Utility;
EOF

# Create a simple icon (placeholder - would be replaced with actual icon)
touch AppDir/usr/share/icons/hicolor/256x256/apps/pubky-wiki.png

# Create AppRun
cat > AppDir/AppRun << 'EOF'
#!/bin/bash
SELF=$(readlink -f "$0")
HERE=${SELF%/*}
export PATH="${HERE}/usr/bin/:${PATH}"
exec "${HERE}/usr/bin/pubky-wiki" "$@"
EOF
chmod +x AppDir/AppRun

# Symlink desktop file and icon to root
ln -s usr/share/applications/pubky-wiki.desktop AppDir/
ln -s usr/share/icons/hicolor/256x256/apps/pubky-wiki.png AppDir/

- name: Build AppImage
run: |
ARCH=x86_64 /tmp/appimagetool --appimage-extract-and-run AppDir pubky-wiki-x86_64.AppImage

- name: Upload AppImage artifact
uses: actions/upload-artifact@v4
with:
name: pubky-wiki-linux-x86_64-appimage
path: pubky-wiki-x86_64.AppImage

build-linux-arm-appimage:
name: Build Linux AppImage (ARM64)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-unknown-linux-gnu

- name: Install cross-compilation tools
run: |
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

- name: Setup ARM64 repository sources
run: |
# Add ARM64 architecture
sudo dpkg --add-architecture arm64

# Configure sources to use ports.ubuntu.com for ARM64 packages
sudo sed -i 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble main universe multiverse restricted" | sudo tee -a /etc/apt/sources.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble-updates main universe multiverse restricted" | sudo tee -a /etc/apt/sources.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble-security main universe multiverse restricted" | sudo tee -a /etc/apt/sources.list

- name: Install dependencies
run: |
sudo sed -i '/security.ubuntu.com.*arm64/d' /etc/apt/sources.list
sudo apt-get update
sudo apt-get install -y libgtk-3-dev:arm64 libxcb-render0-dev:arm64 libxcb-shape0-dev:arm64 libxcb-xfixes0-dev:arm64 libxkbcommon-dev:arm64 libssl-dev:arm64

- name: Cache cargo registry
uses: actions/cache@v4
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-arm64-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v4
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-git-arm64-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo build
uses: actions/cache@v4
with:
path: target
key: ${{ runner.os }}-cargo-build-target-arm64-${{ hashFiles('**/Cargo.lock') }}

- name: Configure cross-compilation
run: |
mkdir -p .cargo
cat >> .cargo/config.toml << 'EOF'
[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"
EOF

- name: Build release binary
run: cargo build --release --target aarch64-unknown-linux-gnu

- name: Install AppImage tools
run: |
wget -O /tmp/appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-aarch64.AppImage
chmod +x /tmp/appimagetool

- name: Create AppImage structure
run: |
mkdir -p AppDir/usr/bin
mkdir -p AppDir/usr/share/applications
mkdir -p AppDir/usr/share/icons/hicolor/256x256/apps

# Copy binary
cp target/aarch64-unknown-linux-gnu/release/pubky-wiki AppDir/usr/bin/

# Create desktop file
cat > AppDir/usr/share/applications/pubky-wiki.desktop << 'EOF'
[Desktop Entry]
Name=Pubky Wiki
Exec=pubky-wiki
Icon=pubky-wiki
Type=Application
Categories=Utility;
EOF

# Create a simple icon (placeholder - would be replaced with actual icon)
touch AppDir/usr/share/icons/hicolor/256x256/apps/pubky-wiki.png

# Create AppRun
cat > AppDir/AppRun << 'EOF'
#!/bin/bash
SELF=$(readlink -f "$0")
HERE=${SELF%/*}
export PATH="${HERE}/usr/bin/:${PATH}"
exec "${HERE}/usr/bin/pubky-wiki" "$@"
EOF
chmod +x AppDir/AppRun

# Symlink desktop file and icon to root
ln -s usr/share/applications/pubky-wiki.desktop AppDir/
ln -s usr/share/icons/hicolor/256x256/apps/pubky-wiki.png AppDir/

- name: Build AppImage
run: |
ARCH=aarch64 /tmp/appimagetool --appimage-extract-and-run AppDir pubky-wiki-aarch64.AppImage

- name: Upload AppImage artifact
uses: actions/upload-artifact@v4
with:
name: pubky-wiki-linux-aarch64-appimage
path: pubky-wiki-aarch64.AppImage

build-macos-arm:
name: Build macOS Binary (arm64)
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-darwin

- name: Cache cargo registry
uses: actions/cache@v4
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v4
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo build
uses: actions/cache@v4
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}

- name: Build release binary
run: cargo build --release --target aarch64-apple-darwin

- name: Upload macOS binary artifact
uses: actions/upload-artifact@v4
with:
name: pubky-wiki-macos-arm64
path: target/aarch64-apple-darwin/release/pubky-wiki

build-windows-x64:
name: Build Windows Binary (x64)
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc

- name: Cache cargo registry
uses: actions/cache@v4
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v4
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo build
uses: actions/cache@v4
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}

- name: Build release binary
run: cargo build --release --target x86_64-pc-windows-msvc

- name: Upload Windows binary artifact
uses: actions/upload-artifact@v4
with:
name: pubky-wiki-windows-x64
path: target/x86_64-pc-windows-msvc/release/pubky-wiki.exe
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.idea

# Generated by Cargo
debug
target
.cargo

Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk
17 changes: 17 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[package]
name = "pubky-wiki"
version = "0.1.0"
edition = "2021"

[dependencies]
anyhow = "1"
eframe = "0.33"
egui = "0.33"
egui_commonmark = "0.22"
image = "0.25"
log = "0.4"
qrcode = "0.14"
pubky = "0.6.0-rc.6"
tokio = { version = "1", features = ["full"] }
tracing-subscriber = "0.3"
uuid = { version = "1", features = ["v4"] }
Binary file added assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions doc/TESTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Test Suite

## Create a Staging user

Get a invite code on Staging:

```
curl -X GET \
"https://admin.homeserver.staging.pubky.app/generate_signup_token" \
-H "X-Admin-Password: voyage tuition cabin arm stock guitar soon salute"
```

On Pubky Ring, register an account

- with this invite code
- with the Staging Homeserver PK: ufibwbmed6jeq9k4p583go95wofakh9fwpp4k734trq79pd9u1uy
Loading