An open API service indexing awesome lists of open source software.

https://github.com/luigichopper/simplewriterhtml

A single-file HTML-based book writing application
https://github.com/luigichopper/simplewriterhtml

browser-based html lightweight writing-application

Last synced: 4 months ago
JSON representation

A single-file HTML-based book writing application

Awesome Lists containing this project

README

          

# SimpleWriter

![SimpleWriter Logo](https://img.shields.io/badge/SimpleWriter-Book%20Writing%20Made%20Simple-4a6fa5)
![Version](https://img.shields.io/badge/version-1.0-blue)
![License](https://img.shields.io/badge/license-MIT-green)

SimpleWriter is a lightweight, browser-based book writing application designed to be minimal yet powerful. Write your novel, short story, or non-fiction book with a distraction-free interface and essential writing tools—no installation, no cloud service, no subscription fees.

![image](https://github.com/user-attachments/assets/337cc2d2-838d-4e77-90b2-a10fc944aeef)

## Features

- **Distraction-free writing environment** with a clean, modern interface
- **Chapter management** to organize your book
- **Rich text formatting** including headings, bold, italic, quotes, and lists
- **Word & character counting** with real-time statistics
- **Writing goals** to track your progress
- **Auto-save** to browser storage every 30 seconds
- **Import & export** in various formats (JSON, HTML, Markdown, Plain Text)
- **Extensible architecture** with plugin support for custom features
- **No account required** - your data stays on your device
- **Works offline** once loaded in your browser

## Getting Started

1. **Download the HTML file** from the [releases page](https://github.com/luigichopper/simplewriter/releases) or clone this repository.
2. **Open the HTML file** in any modern web browser (Chrome, Firefox, Safari, Edge).
3. **Start writing!** Your work is automatically saved to your browser's local storage.

That's it! No installation, no setup, no account creation.

## Usage

### Managing Chapters

- Click the **+** button next to "Chapters" to add a new chapter
- Click on a chapter in the sidebar to switch to it
- Click the rename/delete icons to modify or remove chapters

### Setting Goals

- Click the **+** button next to "Writing Goals" to add a new goal
- Set a target word count and description
- Track your progress with the visual progress bars

### Formatting Text

Use the toolbar to format your text:
- **B** - Bold text
- **I** - Italic text
- **U** - Underline text
- **H1/H2/H3** - Headings
- **Quote** - Blockquote
- **List icons** - Bulleted or numbered lists

### Saving Your Work

- Work is automatically saved to your browser's local storage every 30 seconds
- Click "Export" to save your book as JSON, HTML, Markdown, or Plain Text
- Use "Import" to restore from a previously exported JSON file

## Extension System

SimpleWriter features a powerful extension system that allows you to add new functionality. Extensions can modify the UI, add new features, or change the behavior of the editor.

### Built-in Extensions

SimpleWriter comes with several built-in extensions:

1. **Dark Mode** - Switch to a dark theme for night-time writing
2. **Focus Mode** - Fade out everything except the current paragraph
3. **Pomodoro Timer** - Built-in writing timer with work/break cycles

### Installing External Extensions

1. Click the extension icon in the top-right corner
2. Select the "Add New" tab
3. Click "Choose File" and select an extension file (.js)
4. Click "Upload Extension"
5. Enable the extension using the toggle switch

### Available Extensions

These extensions are available in the `extensions` folder:

- **Spell Check** - Basic spell checking with suggestions
- **Enhanced Spell Check** - Multi-language spell checking using Typo.js
- [More extensions coming soon!]

## Creating Your Own Extensions

You can create custom extensions to add features to SimpleWriter. Here's a basic template:

```javascript
(function(env) {
env.registerExtension({
id: 'your-extension-id',
name: 'Your Extension Name',
description: 'Description of what your extension does',
enabled: false,
enabledByDefault: false,

// Lifecycle methods
onEnable: function() {
// Code that runs when the extension is enabled
},

onDisable: function() {
// Code that runs when the extension is disabled
},

// Extension hooks
hooks: {
// Hook into app events
onEditorInput: function(editor) {
// Process editor input
return editor;
},

onChapterLoad: function(editor, chapter) {
// Do something when a chapter is loaded
return editor;
}
}
});
})(env);
```

See the [Extension Development Guide](docs/extensions.md) for more detailed information.

## Data Privacy

SimpleWriter is committed to your privacy:

- **All data stays local** on your device using browser storage
- **No server connections** - everything happens in your browser
- **No tracking or analytics** - we don't collect any data
- **No cloud sync** - for maximum privacy (but remember to export your work regularly!)

## Browser Compatibility

SimpleWriter works with all modern browsers:

- Chrome 60+
- Firefox 60+
- Safari 12+
- Edge 79+

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details.

## Acknowledgments

- [Typo.js](https://github.com/cfinke/Typo.js) for spell checking functionality
- [Bootstrap Icons](https://icons.getbootstrap.com/) for UI icons
- All the open-source contributors who made this project possible

---

Made with ❤️ for writers everywhere