Giter VIP home page Giter VIP logo

novelibre's People

Contributors

peter88213 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

cnulatienpo

novelibre's Issues

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.

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.

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.

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.

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.

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.

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.

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.

Make the Action/Reaction scheme more general

Rationale

Currently (novelibre v3.9), each section can be assigned a "pacing" attribute that is derived from the yWriter scene "Action/Reaction" scheme. In contrast to yWriter, there is a third "custom" state.

On the other hand, not every section is a scene to which the "pacing" applies. Sections can be characterized by mode of discourse (e.g. Narration, Dramatic action, Dialogue, Description, Exposition, according to Jack M. Bickham).

The goal is to replace the "pacing" attribute (DTD: pacing (0 | 1 | 2) "0") with a more general attribute that may apply to non-staged sections as well.

Process

  • Create DTD version 1.4 considering non-staged sections.
    Introduce a new SECTION attribute scene (0: Not a scene, 1: Action scene, 2: Reaction scene, 3: Other scene).
  • Read and write the new "scene" attribute.
    • When reading novx, convert the "pacing" attribute, where "0" without a Goal, Conflict, or Outcome entry means "Not a scene".
    • When writing novx, omit the "pacing" attribute and just write the scene attribute.
  • Consider the new data structure when reading and writing yw7 files.
  • In the section properties view, rename the "Action/Reaction" collapsible frame to "Scene".
  • In the Scene frame, rename the "Custom" text field to "Other".
  • In the Scene frame, add Not a scene to the section view radio buttons.
  • In the book properties view, add Renaming entries for the Not a scene text fields.
  • Set default titles for the Not a scene and Other scene text fields.
    • Not a scene: Plot progress - Characterization - World building
    • Other scene: Opening - Peak emotional moment - Ending (according to Christopher Downing).
  • Refactor the code for version 4.
  • Update plugins and tools.
  • Update the user guide.

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.