- Rust 97.4%
- Python 2.5%
|
Brie
bfcca5e6cb
All checks were successful
cheese-paper ci build and publish / build (bundle/osx/cheese-paper.app.zip, bundle/osx/cheese-paper.app, macos.app.zip, macos-arm64) (push) Successful in 3m16s
cheese-paper ci build and publish / build (cheese-paper.exe, cheese-paper.exe, windows.exe, windows-x86_64) (push) Successful in 14m56s
cheese-paper ci build and publish / build (cheese-paper, cheese-paper, linux-x86_64, linux-x86_64) (push) Successful in 13m25s
We would accidentally overwrite with random data if we tried to save a theme twice, this should avoid it |
||
|---|---|---|
| .forgejo/workflows | With hunspell-rs gone, don't set RUSTFLAGS anymore | |
| .github/workflows | ||
| build | Switch back to spellbook | |
| resources | Update project in screenshots | |
| scripts | ||
| src | Only allow saving a theme once ( #313 | |
| wix | ||
| .gitattributes | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | Switch back to spellbook | |
| Cargo.toml | Switch back to spellbook | |
| CHANGELOG.md | Add 1.0.0 changelog | |
| COPYING | ||
| manual.md | Update README again ( #110 ) | |
| README.md | Update README now that we're back to spellbook | |
| RELEASE.md | ||
Cheese Paper
Cheese Paper is a text editor specifically designed for writing, particularly fiction. Whether it's the story itself or notes about your characters, Cheese Paper files are simple and support syncing, so you can create, edit, move, or delete things, no matter what device you're on.
The underlying text is Markdown, so the file format is simple. Metadata is added to the underlying format in a TOML header, also simple and easy to edit. Any files created outside the editor are automatically read in and processed like any other files, even if some or all of the metadata is missing. It is entirely possible to create, edit, move, and delete files from another text editor, even your phone. Cheese Paper also plays nicely with syncing programs - if you sync the files on disk, it will happily load them.
Cheese Paper's home is on Codeberg, but also has an official GitHub mirror (at least for now). I am making no promises to keep up with GitHub in any way (although it might happen anyway).
For more information about the features, see the features section below or the Cheese Paper website
Installing
You can get the latest release on Codeberg. On Windows and MacOS, installers are generally recommended for most users, but the portable versions are also available, although without default spellcheck or start menu/dock icons.
Compiling
This project uses git lfs to track the icon and dictionary files. If you have git lfs set up on your system, this should automatically work. Otherwise, the project should still work, but you will not be able to create release builds.
To pull these in later, type
git lfs install
git lfs pull
Finally, use cargo to build and run:
cargo build --release
cargo run --release
(Note that if you are intending to actually use the Cheese Paper you built, it should be a release build, especially if you're writing in a language that isn't English, otherwise the spellcheck suggestions may be slow (e.g., French spelling suggestions will be quite slow otherwise))
There are more complex commands to deal with packaging, but many of these are awful and complex and I don't think anyone else should suffer through that. For anyone who also wishes to suffer, look at the release workflow (but you brought this upon yourself)
Other
Comparisons to other projects
Both Manuskript (FOSS) or Scrivener (closed source, paid) are similar in concept to Cheese Paper, although they have their differences. I've used both extensively, although neither of these quite met my use case, which is why Cheese Paper exists.
Obsidian is also often compared to Cheese Paper - it is wonderful for taking notes, but I found it less useful for actually writing the content of the story, since my notes were in different files.
Cheese Paper is simply different from these projects, not necessarily better. If you don't care about any of the features that Cheese Paper prioritizes, one of the other projects may be a better fit.
Rights/Ownership
Cheese Paper is an open source project, meaning that users are free to modify the code (and distribute it to other under the terms of the GPLv3, see the COPYING file for more information).
We have absolutely no rights related to anything produced in Cheese Paper. Your data is yours.
There is nothing stopping Cheese Paper from being distributed in official Linux repos (beyond effort), feel free to reach out for assistance.
Your Data/Privacy
Cheese Paper does not have any telemetry, and we do not ever intend to collect data about our user's writing. We do not want your data. Please keep it to yourself.
Cheese Paper makes exactly one network request: if checking for updates is enabled, on startup it fetches the latest version of Cheese Paper available on Codeberg. No network requests are ever sent if checking for updates is disabled.
AI
Cheese Paper was written by humans without the assistance of AI/LLM tools. There are various concerns around the ethics, quality, and copyright status of AI created code, please avoid submitting any code authored/assisted by LLMs.
Contributing
Cheese Paper welcomes contributions. If you are planning on making a larger change, especially one that is not already covered by an issue created by one of the main devs, please reach out (e.g., create an issue) before doing so -- there might be some other considerations, and you would not want to do work that isn't mergeable.
Missing feature? Need help? Found a bug?
Please try searching the issues, then opening an issue if it has not already been reported, providing as much detail as possible.
Features
For the most complete view of features, check out features on the Cheese Paper website
See your notes as you write
Cheese Paper keeps your notes visible as you're writing the scene. This can be used to jot down something for later, to plan our where a scene will go before writing, or to summarize a scene after you've written it to get a better high level overview of your story.
Cheese Paper opened to a project. There is a view of folders and scenes on the left, a main editor window with the text of the scene, and a summary and notes section on the right sidebarSet the colors how you want
Cheese Paper comes with both a dark and light theme out of the box, and has the ability to customize nearly every color used in the editor.
Cheese Paper editor with a light themeCharacters
Characters are a handy place to fill out some information about who is in your story. It's easy to reference it in one place, and conveniently located on the sidebar below the story text. You can also set characters to be the POV of a scene.
Cheese Paper Character view, for Amaryllis. Visible sections include: notes about her appearance (Smooth fake-skin panels with some visible seams...), her personality (She's still figuring this out for herself. She'll end up being a little bit bubbly and outgoing...), a summary (An ex-combat bot, one of the two main love interests in the story. She's really into Rose, but is also incredibly out of her depth in dealing with nuanced human interactions like flirting...), and notes (I'd like to have a little bit of her choosing her own individuality...)Worldbuilding
This is almost the same as characters, but for information about the world. This can be places, real or fictional, and as specific as desired. This could also be about organizations or magic systems in your world, if the plot/setting calls for that.
Cheese Paper Worldbuilding view for Rose's Workshop. Visible sections include: notes about it's connection to the story (The setting for literally every scene in this story), description (Mechanic's workshop, somewhat messy (so Amaryllis has things to trip on)), appearance (Concrete flooring and industrial appearance, a little bit messy, but the type where Rose knows *exactly* where everything is), other senses (In the industrial district, so things are a bit loud. Some smells of machine oil), and notes (Not much is defined so far in terms of blocking. There's a chair where work is done and some shelving, but more might be added later on)Outline Export
Cheese Paper projects split their contents over a lot of different files. This is wonderful for when you're trying to navigate around a larger project, especially outside of the editor, but makes it annoying to share a high level summary with someone else, particularly if that person is not lucky enough to also be using Cheese Paper. We have a solution, however: the outline export:
The outline export produces a single file containing your notes (but not story prose) which can easily be shared.
For example:
Unexpected Failure Mode
Story Summary:
Robot girl who doesn't know how to talk to her cute mechanic, but has specialized hardware and software for dealing with collisions with large stationary objects
The mechanic is really confused why the combat bot keeps asking for the same maintenance that never finds anything wrong, but is too intimidated by how cool and hot the bot is to point it out. Or to ask how the bot keeps hitting these walls. The robot girl is clearly super calm so she must have a plan
Scenes
Visit 1
Notes:
This is almost definitely going to be more than one chapter in reality
Initial falling
Summary:
Amaryllis trips on something on the workshop floor and gets checked out by her mechanic, Rose. Rose says something that can be interpreted in a flirty way, which Amaryllis is super super normal about
Story Export
Cheese Paper combines all of the scenes (that have not explicitly been excluded) into a single file in the outline process. This produces a markdown file, which is then easily transformed into any file format you might desire. For the transformation, I highly recommend Pandoc, which has a fantastic online tool here. Pandoc is a great way to convert markdown to an epub, docx, html, or pdf.
Here is an example of some of the output:
Visit 1
"Okay Lis, all done."
Amaryllis got a bit of a thrill every time Rose said her name. Sure, she had a massive crush on her mechanic, but it was even deeper than that. And she couldn’t say anything. How would she even start? ‘Hey, I think you’re cute. Also, I picked my name because I wanted to be named after a flower like you and Amaryllis reminds me of my serial number.’
Amaryllis didn’t exactly understand all of the nuance of human interactions, but that was clearly too far. It was much safer to always use a nickname and hope that her mechanic never made the connection about why she picked that name.
Randomize your theme
Is the text too readable? Colors too pleasant? Not enough whimsy?
Thankfully, Cheese Paper has a solution: a button that randomizes every single color used in the theme. There is no coordination, no consistency, and no concern for contrast. If you restart Cheese Paper with this option selected, it will helpfully generate a new random theme. You can also save your randomized theme if you somehow generate one that looks somewhat okay.
Cheese Paper editor with a randomly generated theme. The left sidebar is bright green, the text is blue, the buttons are also blue (and barely readable). The main settings window is a pale orange/yellow. It looks awful.My roommate suggested this feature, then was horrified to find me actually using it while editing a story. You can also horrify others around you!