Code Monkey home page Code Monkey logo

novelibre's Introduction

Download the latest release Changelog News Online help

N novelibre

novelibre is an application for novelists who prefer to write with the Writer word processor of LibreOffice or OpenOffice, but need additional features for the organization of their work.

Screenshot

Features

  • With novelibre, extensive novels can be broken down into parts, chapters, and sections.
  • You can store data on characters, locations, and items that are important for the story. This includes the optional definition of a viewpoint character for each section.
  • All of this appears as a clear and editable tree structure with listed information.
  • Summaries can be entered at all these levels, from which synopses and lists can be generated.
  • If you choose a narrative structure, novelibre can display stages (e.g. acts or steps) in the tree. When plotting, descriptions of these stages can be entered, from which novelibre can generate its own documentation. Prefabricated structural models can also be imported from templates.
  • novelibre also allows you to create and document an underlying structure of plot lines (e.g. subplots or character arcs) apart from the chapters and sections. This can then be linked to the sections of the novel text.
  • novelibre povides a plot grid with plot line notes for each section. This allows you to see the big picture and keep track of multiple subplots.
  • To keep track of progress, the word count and the completion status of the sections are displayed.
  • Individual chapters and sections can be flagged as "unused" to exclude them from document export.
  • You can add information about the narrative time and duration to each section. If you enter a date, the day of the week is displayed. You can also call up the age of characters that are assigned to a section. The date and time information can be synchronised with dedicated timeline software.
  • For the actual writing work, novelibre starts the Writer word processor with a structured manuscript in Open Document Text format (.odt). At the end of a work cycle, novelibre reimports the manuscript and updates the writing project. New chapters and sections can also be created in the process.
  • For printing, novelibre exports a neatly designed novel manuscript that can be formatted as you wish applying Writer document templates.
  • novelibre saves its data in a well-documented, XML-based file format (.novx), which can also be read as plain text and displayed with a standard web browser.
  • novelibre is written in Python and should run on several operating systems, like Windows and Linux.
  • The application is ready for internationalization with GNU gettext. German translations are provided.

Plugins

novelibre's functionality can be extended by plugins. Here are some examples:

Tools

Stand-alone Python scripts for novx file conversion.

  • scap_novx: Generate a novelibre project from a Scapple outline.
  • novx_xtg: XPress tagged text export from novelibre projects.

Requirements

  • Python version 3.6+.
    • For current Windows versions, use version 3.9.10 or above.
    • For Vista and Windows 7, use version 3.7.2.
    • Linux users: Make sure you have the python3-tk package installed.
  • Either LibreOffice or OpenOffice.

General note about the fitness for use

At present, this program is still under active development. Therefore it is recommended to check for updates from time to time, as well as for the plugins.

I use the program myself and fix errors immediately if I notice any. As far as I can tell, novelibre runs fast and reliably under Windows and Linux. It should also under other operating systems for which there is a reasonably up-to-date Python 3 installation. However, there is a lack of a broad user base, which is why one cannot speak of real proven operation.

Download and install

Download the latest release (version 3.9.0)

  • Extract the "novelibre_v3.9.0" folder from the downloaded zipfile "novelibre_v3.9.0.zip".
  • Move into this new folder and open "README.md" for further instructions.
  • You may wish to install plugins; the update checker is highly recommended.

Changelog

News

Discussions

Usage

See the instructions for use

Credits

  • The logos and file icons are made using the free Pusab font by Ryoichi Tsunekawa, Flat-it.
  • The toolbar icons are based on the Eva Icons, published under the MIT License. The original black and white icons were colored for this plugin by the maintainer.

License

This is Open Source software, and novelibre is licensed under GPLv3. See the GNU General Public License website for more details, or consult the LICENSE file.

The modules in the widgets package are licenced under the MIT License.

novelibre's People

Contributors

peter88213 avatar

Watchers

 avatar

Forkers

cnulatienpo

novelibre's Issues

Keep text viewer position when changing properties

Currently (v3.6.3), the text viewer is updated via the "on element change" callback when a property is changed. This first resets the position to the start, then sets it to the currently selected "book" subelement. This may lead to jumps, if the initial text viewer position was manually set elsewhere.

Solution: Strictly separate the text box content from the view position. If this is not possible, find a way to cache the viewer's position and restore it after updating.

Export partial manuscripts

Export manuscripts with sections filtered either by viewpoint, or by arc.
The selection could be done either with a dialog in the Export menu, or by context menu.

Fixing broken links

If novelibre cannot open a link, search for the file and propose fixing the path.
How to limit the search range?

Consider always saving link addresses as relative paths.

Option for importing documents even if open in OO/LO

This interferes with discarding the document if changed.

  • Replace discard_tmp_docs wit an enumeration type.
    0: Discard document only when split
    1: Always discard document
    2: Import even if locked, never discard document
  • Select with radiobuttons.
  • If sections are split, cancel the import in mode 2.

Open Zim links

The correct way to launch the Zim Desktop Wiki with a specified page located at zim-dir\Home\page.txt is as follows:
"C:/Program Files (x86)/Zim Desktop Wiki/zim.exe" zim-dir/notebook.zim Home:page

  • Provide a "zim file picker" that creates the right command line argument from the TXT file.
  • Modify the program launcher in order to recognize such a command line argument.
  • Consider "Link handler" strategy class that can be replaced by a plugin.

Use local date format for display

Currently (v3.0), novelibre uses YYYY-MM-DD, according to ISO 8601.

This is an example for getting the localized date format:

import locale
from datetime import datetime
locale.setlocale(locale.LC_TIME, "")
datetime.fromisoformat('2024-03-12').strftime('%x')

This format could be used for the tree view and the section list.
In the section properties, it could be displayed along with the weekday.

Improve the "pick mode"

Always terminate the pick mode on mouse click. Add the picked element if a proper one is selected.
This may require a hook in the BasicView._end_picking_mode method.

Rename the application

I would like to have a unique name for my program, so I will change it in the near future.

See: #1 (comment)

  • Rename the help pages and the plugins so that "noveltree" no longer appears in their URLs.
  • Provide a script for moving the installation from ~/.noveltree to ~/.novx.
  • Change the installation directory in the setup and registry scripts.
  • Rename packages that have "noveltree" in their name.
  • Replace all occurrences of "noveltree" in the code and documentation with the new name.
  • Rename the application.
  • Rename the GitHub repository and publish v2.1.

Copy/paste tree elements

Copy an xml reperesentation of the model element to the clipboard.
Generate a model element object from the xml representation stored in the clipboard.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.