|
|
14 ore fa | |
|---|---|---|
| doc | 6 mesi fa | |
| public | 14 ore fa | |
| scripts | 2 settimane fa | |
| src | 14 ore fa | |
| .dockerignore | 14 ore fa | |
| .env | 3 mesi fa | |
| .env.example | 3 mesi fa | |
| .eslintrc.cjs | 1 anno fa | |
| .gitignore | 3 mesi fa | |
| Dockerfile | 14 ore fa | |
| LICENSE | 1 anno fa | |
| README.md | 14 ore fa | |
| README_webpage.md | 1 anno fa | |
| README_zh.md | 14 ore fa | |
| aws-sdk.js | 11 mesi fa | |
| commitlint.config.cjs | 1 anno fa | |
| config.js.template | 14 ore fa | |
| env.d.ts | 14 ore fa | |
| index.html | 14 ore fa | |
| nginx.conf | 14 ore fa | |
| package-lock.json | 2 mesi fa | |
| package.json | 2 settimane fa | |
| tsconfig.app.json | 1 anno fa | |
| tsconfig.json | 1 anno fa | |
| tsconfig.node.json | 1 anno fa | |
| vite.config.ts | 3 mesi fa | |
| vite.config.ts.timestamp-1776177942564-bd5d74ad073e1.mjs | 2 mesi fa |
简体中文 | English
PowerPoint-ist(/'pauəpɔintist/), A web-based presentation (slideshow) application. This application replicates most of the commonly used features of Microsoft Office PowerPoint. It supports various essential element types such as text, images, shapes, lines, charts, tables, videos, audio, and formulas. You can edit and present slides directly in a web browser.
Try it online👉:https://pipipi-pikachu.github.io/PPTist/
npm install
npm run dev
Browser access: http://127.0.0.1:5173/
Note: If you deploy this project on your own server and find that it fails to initialize, it's because the initialization data is stored in the author's private object storage and is not publicly accessible. You'll need to transfer the data to your own server, object storage service, database, or front-end local storage.
Packaged as a static nginx image. The image contains no environment-specific values and no credentials — all configuration is injected at container startup, so the same image runs in any environment and changing configuration never requires a rebuild.
docker build --platform linux/arm64 -t pptist:2.0.0 .
--platform determines the target architecture. Check with uname -m first: aarch64 → linux/arm64, x86_64 → linux/amd64. A mismatch leaves the operator with nothing but exec format error after docker load.
docker run -d --name pptist -p 8080:80 \
-e SPEAKING_API_HOST=https://your-api-host \
-e AZURE_SPEECH_KEY=xxxxxxxx \
-e AZURE_SPEECH_REGION=eastasia \
-e TZ=Asia/Shanghai \
pptist:2.0.0
| Variable | Required | Description |
|---|---|---|
SPEAKING_API_HOST |
✅ | Backend API address. Must be reachable from the browser (public domain or http://server-ip:8000) — a container name will not work. If omitted, falls back to the domain hardcoded in the source |
AZURE_SPEECH_KEY |
✅ | Azure Speech key, used by the frontend for TTS playback. Without it, playback throws |
AZURE_SPEECH_REGION |
✅ | Azure region, e.g. eastasia |
TZ |
Timezone. Defaults to UTC, affects nginx log timestamps only |
⚠️
AZURE_SPEECH_KEYis written into/config.js, which is readable by anyone in the browser. This is inherited from the existing design (the frontend calls Azure directly); moving to runtime injection improved flexibility, not security.
curl http://localhost:8080/config.js
All three values should be non-empty. An empty value means that environment variable was not passed in; the output carries an explanatory comment.
Re-run the container with new -e flags — no rebuild required:
docker rm -f pptist
docker run -d --name pptist -p 8080:80 -e SPEAKING_API_HOST=... pptist:2.0.0
How it works: on startup nginx renders config.js.template into /config.js via envsubst, and the page loads it synchronously before the app bundle. The lookup order in code is window.__APP_CONFIG__ > import.meta.env.VITE_* > hardcoded fallback, so local npm run dev and the existing non-container build behave exactly as before.
AI PPT
Add/delete pages
Copy/paste pages
Adjust page order
Create sections
Background settings (solid color, gradient, image)
Set canvas size
Gridlines
Rulers
Canvas zoom and move
Theme settings
Extract slides style
Speaker notes (rich text)
Slide templates
Transition animations
Element animations (entrance, exit, emphasis)
Selection panel (hide elements, layer sorting, element naming)
Labels for Page and Node Types (usable for template-related features)
Find/replace
Annotations
Add/delete elements
Copy/paste elements
Drag and move elements
Rotate elements
Scale elements
Multiple element selection (marquee, point selection)
Group multiple elements
Batch edit multiple elements
Lock elements
Magnetic alignment of elements (move and scale)
Adjust element layer
Align elements to canvas
Align elements to other elements
Evenly distribute multiple elements
Drag to add text and images
Paste external images
Set element coordinates, size, and rotation
Element hyperlinks (link to webpage, link to other slide pages)
Rich text editing (color, highlight, font, font size, bold, italic, underline, strikethrough, subscript, inline code, quote, hyperlink, alignment, numbering, bullet points, paragraph indent, clear formatting)
Line height
Character spacing
Paragraph spacing
First line indent
Fill color
Border
Shadow
Transparency
Vertical text
AI Rewrite/Expand/Abbreviate
Crop (custom, shape, aspect ratio)
Rounding
Filters
Tint (mask)
Flip
Border
Shadow
Replace image
Reset image
Set as background
Draw any polygon
Draw any line (unclosed shape simulation)
Replace shape
Fill (solid color, gradient, image)
Border
Shadow
Transparency
Flip
Shape format painter
Edit text (supports rich text, similar to text element’s rich text editing)
Straight lines, polylines, curves
Color
Width
Style (solid, dashed, dotted)
Endpoint style
Chart type conversion
Data editing
Background fill
Theme color
Coordinate system and axis text color
Grid color
Other chart settings
Border
Add/delete rows and columns
Theme settings (theme color, header, total row, first column, last column)
Merge cells
Cell styles (fill color, text color, bold, italic, underline, strikethrough, alignment)
Border
Preview cover settings
Auto play
Icon color
Auto play
Loop play
LaTeX editing
Color settings
Formula line thickness settings
Brush tools (pen/shape/arrow/highlighter annotation, eraser, blackboard mode)
Preview all slides
Bottom thumbnails navigation
Timer tool
Laser pointer
Auto play
Speaker view
Basic editing
Basic preview
Play preview
Some common problems: FAQ
There is currently no complete development documentation, but the following documents may be of some help to you:
Here are some auxiliary development tools/repositories:
AGPL-3.0 License | Copyright © 2020-PRESENT pipipi-pikachu
If you wish to use this project for commercial gain, I hope you will respect open source and strictly adhere to the AGPL-3.0 license, giving back to the open source community. Or contact the author for an independent commercial license.
important contribution标签);协议的核心要求用通俗的语言解释如下:
详细协议内容见官方文档:AGPL-3.0 协议