GithubHelp home page GithubHelp logo

lithl / scribe-app Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 559 KB

Story-creation assistance tool web app similar to Scrivener

License: ISC License

HTML 44.70% JavaScript 2.97% CSS 5.15% TypeScript 47.18%

scribe-app's People

Contributors

lithl avatar

Watchers

 avatar  avatar

scribe-app's Issues

Implement Format > Text... > *

All of these menu items should be relatively simple to implement once the text editor (#6) is going, although they may cause some corner cases for other issues.

Implement Format > Clear formatting

This might be tricky with inline formatting. For paragraph formatting this is equivalent to Format > Paragraph... > Normal plus Format > Paragraph... > Left.

Increase documentation

Probably don't need anything too extensive, but more than "absolutely nothing" is preferred

Delete paper-tree nodes

Right-clicking on a paper-tree node opens a context menu with "Rename" and "Delete". Neither option does anything right now.

Correctly populate File > Open recent...

Currently the Open recent menu is populated by dummy menu items used to test the menus code. This needs to be populated correctly from the user's data.

When the user signs in or out of their Google account, this needs to be updated.

If the user is signed in to Google, we want to show Projects associated with both their Google account and their IP address, not just one or the other.

If the user has no saved projects, handle the special case of a single disabled menu item here.

Rename paper-tree nodes

Right-clicking on a paper-tree node opens a context menu with "Rename" and "Delete". Neither option currently does anything.

Implement Help > Keyboard shortcuts

Mimic Google Docs keyboard shortcut dialog; essentially a static HTML page with headings and a TOC on the side to scroll to each heading.

Implement Insert > Emoticon

Will create a dialog for picking the emoticon.

The original intent was for Fimfiction writing, so would insert the emoticon code (eg, :yay:), but may want to have more universal emoticons as well.

Implement text editor

Now that the project sidebar is largely working, the actual text editor needs to be implemented.

Current plan is to have single text editor areas for non-Scene leaf nodes, while Scenes can be scrolled between, traversing the Manuscript. Probably want some designation of which Scene is "current" that's easy to distinguish without making it difficult to read between. Definitely want to update the selected node in the sidebar as scrolling progresses. Typing will always stay in the current Scene, but perhaps quick switch between Scenes using Tab and Shift+Tab?

Implement Insert > Image

This will require a dialog for specifying the image link. This app will not have image uploads of its own.

If a Manuscript export to Google Drive ends up being an export to Google Docs (see #8), the lack of an upload may get sticky, IIRC.

Implement Format > List... > *

Creating the list element should be as easy as other paragraph-level formatting (#26). The tricky part here will be correctly handling new list items, and escaping out of the list into a new paragraph.

Implement Edit > Undo and Edit > Redo

With naive text editing, this can probably be left up to the browser. However, we probably need to create some sort of implementation to handle undo/redo of applying styles to things.

While it's worth consideration, currently undo/redo will not apply to actions in the Project that are not text editing (eg, create Character -> undo -> redo), as it'll just get confusing with shortcuts. Perhaps an alternative menu item/shortcut will be introduced later for that purpose.

Drag and drop paper-tree elements

  • Scenes should be droppable on Chapters (add to end of Chapter), or between other Scenes (insert at drop point)
  • Chapters should be droppable on Manuscripts (add to end of Manuscript), or between other Chapters (insert at drop point)
  • Other leaf nodes should be droppable between other nodes of the same type (insert at drop point)
  • Root nodes should be droppable between other root nodes (insert at drop point)

Implement Edit > Cut/Copy/Paste/Delete/Select all

This should be correctly handled by the browser, but there might be corner cases with styled text.

Also worth consideration is whether Select all should select only within the current Scene, or further?

Implement File > Open

Need a Project selection dialog

Depends on having saved data to server, so need a Project file format

Implement Format > Paragraph... > *

The text editor should naturally have HTML paragraphs if I recall the contenteditable behavior correctly. As such, these should all be simple to implement once the text editor is running (see #6)

Implement autosave

(See #7)

This requires settling on a file structure to save the Project to. May need to implement multiple other features first, or come up with something that's easily expandable.

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.