Feature Request?: Working with timelines.

397 views
Skip to first unread message

Fletcher Kauffman

unread,
Jul 12, 2021, 3:50:00 PM7/12/21
to yWriter

I know there are others here who would have even greater need for this than I would, but I often write things that are impossible to get my head 'round without a timeline. And, by timeline, I mean a visual representation of when world and character events happen, relative to an absolute clock/calendar and relative to one-another. (I didn't mean to be pedantic, I just wanted to distinguish it from a storyboard).

In my, and probably others', case, the timeline is meant to tell me when things occurred in my characters' world-- specifically, like when two characters met, or where a given character lived on a specific date, when their parents died, etc. For me, this is not about timelining the history of some great empire (though that's important in other stories), it's more about keeping track of how old two people are v. say, the drinking age where they were, at that time, or how long ago someone would've graduated from college, or knowing that a character is still in the military when 9/11 happens. That kind of stuff.

A storyboard is very useful, of course, for telling me what I'll be telling and in what order, but it doesn't help me know what's true at any given time, or what's appropriate, as I'm writing. For example, until I timelined it, I didn't realize that at the time two of my major characters meet, one's father had died just a month earlier-- certainly colors how I write the scene. If the timeline is complete enough, it lets me actually pick what scenes I need to write to pluck a story out of a world.

For this purpose, I've been using the open source "Timeline" (clever name), which does a really good job of representing what I need. There are only a few writer-centric features it needs, but I haven't been able to get it running on Linux (so there goes a lot of my productivity), and it doesn't really integrate with anything-- though it can export a CSV of this info.

This is a long way to ask for some integration with a timeline-- either a new timeline feature (a challenge), or ways of importing from and/or exporting to various timeline formats (a group of challenges).

Imagine being able to draw out a timeline in Timeline, with dates/times and event info, then export as a CSV, have yWriter import that CSV and create an outline using those dates/times, and the textual data from the timeline. And, pro-mode, be able to make changes in yWriter, and send it back to the timeline.

I mean, just in case you were looking for something to do. :)

Peter T.

unread,
Jul 13, 2021, 4:13:41 AM7/13/21
to yWriter
On Monday, July 12, 2021 at 9:50:00 PM UTC+2 fletcher...@gmail.com wrote:

[...] Imagine being able to draw out a timeline in Timeline, with dates/times and event info, then export as a CSV, have yWriter import that CSV and create an outline using those dates/times, and the textual data from the timeline.

Do you mean The Timeline Project? I looked at that once six years ago, but then decided to go with Aeon Timeline, which was much more mature and user-friendly at the time. 

Turning a csv file into a new yWriter project is no big deal if you know a little scripting. Do you happen to know anything about Python? I use it to provide a class library that can read and write csv files as well as yWriter 7 projects.
 
And, pro-mode, be able to make changes in yWriter, and send it back to the timeline.

This is a bit more challenging, though, because it requires analyzing and modeling Timeline's data format first. I made a corresponding approach at Aeon Timeline earlier this year, but failed due to the complexity and redundancy of its data structures, which are partially binary. Maybe that's designed a bit simpler in your Timeline program. 
As I said -- if you know programming (which is not unlikely for a Linux user), you can help yourself here. 

Quite apart from that -- I make a strict distinction between a chronological sequence of events and the structure of a narrative text, which need not be linear. In this respect, I basically have no problem with a transition between the tools here. 
 
I mean, just in case you were looking for something to do. :)

 I would, but I just made a vow to finish my current novel first.  

Cheers, 
Peter

Fletcher Kauffman

unread,
Jul 13, 2021, 12:46:35 PM7/13/21
to yWriter
I do mean The Timeline Project (but I believe the "product" is just called Timeline-- clever). I'd say that it is, now, a very robust application that is closest to what I'm looking for. I'd have to call it fully functional, and my gripes about it are minor, in comparison to other timeline software I've looked at.

My use case, specifically, I think is like many others-- I'm not presenting to materials to Congress, I just need to be able to see, visually, in time, where things are at a given time, and when events occur-- especially with as much visual economy as possible. Don't give me "pretty", give me cluttered.

Funny, enough, I just spent about six hours with Aeon Timeline and-- I almost want to say "I hate it". It has some excellent features but its presentation isn't what I need-- it's horribly uneconomical with space, and gives almost zero control over presentation (e.g., how to layout the timeline, what info to show with each item on the timeline, etc.). Why I hate it is why I wind up hating lots of applications-- it's the easy design mistakes, and all the near-misses. Like bibisco's date picker? Who in the world thought that was a good idea? Is those frustrations that make me hate something that is otherwise good. My fundamental issue with Aeon is that, when I look at the screen for a given time, I don't instantly know what's overlapping or happening simultaneously, largely because they elected to format everything in waterfall and, frankly, if I wanted a Gantt Chart, I'd use MS Project-- which has far better facilities for ordering, scheduling, etc., but is impractical in this case (you still wind up with a Gantt).

I can certainly code, but at the moment, it seems like my mind wants to write fiction instead of code. Timeline's data format is dead simple. You can CSV it and it's all regular columns. I was able to take my Timeline data and bring it into Aeon with a few steps in the middle.

I too need the timeline to tell the story of the world, not the narrative. There are all kinds of things that happen in my characters' world that I'm not necessarily going to show the reader, but the characters must be aware of them to be alive. A timeline helps me know what they know at a glance.

I appreciate the reply.

Peter T.

unread,
Jul 13, 2021, 2:00:43 PM7/13/21
to yWriter
Glad to hear the Timeline Project is usable now. At that time there was not even undo/redo, probably it was in the early development stage. Maybe I'll have a look at it, but at the moment I don't have the time. 

If you nevertheless feel like programming, you can modify my prototype script that I wrote for the Aeon 2 csv export. It creates a Ywriter 7 project with one chapter containing all events as scenes. Scene titles, descriptions, and date/time are written in. Also the story arcs are converted to scene tags, but the chronological sorting is still missing. Also characters and locations are not yet imported. As I said, it's a project that has been on hold for a while. The csv import was basically just a preliminary study, but I have now added it to my Aeon-yWriter-sync project so you can take it.

If you have already compared the csv structures of Timeline and Aeon, it should not be difficult to adapt the class CsvTimeline (from line 4010) accordingly. 

Here's the zipped script on GitHub:

If you are experienced with Python 3, you can also import my script as a class library into your own program. That would be a nice open source project, wouldn't it?

Have fun, 
Peter

Peter T.

unread,
Jul 25, 2021, 3:54:32 PM7/25/21
to yWriter
Now I have taken a closer look at the Timeline Project and have come to the conclusion that it is quite a good complement to yWriter when it comes to visualizing narrated time. I could actually use something like that.

You could generate a yWriter project from a timeline outline, whereby date/time specifications are taken over, or also generate a timeline from a yWriter project the other way around. Afterwards, the whole thing can be synchronized, so that you can manage the date/time information of the scenes in Timeline. 

In practice, this would look like having a program icon on the desktop. If you drag a Timeline project onto it and drop it, either a new yWriter project is generated or an existing one is synchronized. But if you drag a yWriter project and drop it on the icon, a new timeline will be generated or an existing one will be synchronized. So much for the idea. Whether it works that easily has yet to be seen.

However, this can only work based on some conventions. For example, we need a mapping of the event properties with the scene properties, also a rule according to which the events to be synchronized should be filtered, and lastly it wouldn't be bad to define a unique ID that keeps the connection between scene and event even if a title has been changed. 

Open points
The problem is that I don't have any practical experience with Timeline, so I need some help with the specification. 
So if anyone else is interested in this topic, I would like some ideas on the following suggestions: 

Mapping of properties
Which is better: 

Event category --> scene tag?
or 
event label --> scene tag?

Does anyone use categories and labels in Timeline? For what purposes? It would probably help to have a "real-world"  example timeline.

Marking of events to which scenes are assigned
Presumably, you won't want to have all the events in a timeline as scenes in yWriter. So how to mark the events to be exported?

Event category (e.g. "scene") or event label (e.g. "scene")?

When using the category, the events of the narrative part are color-coded in the timeline. But if you already use the categories in other ways, for example for narrative strands or character arcs, it would limit these possibilities or lead to confusion.

Labels on the other hand, if I'm not mistaken, are only seen in the properties dialog of the events. So to separate the narrative part from the background events, you would have to examine each event separately. 

Another possibility I see is to export all events and mark what is not belonging to the narrative as a "Notes" scene in yWriter, or delete it. But this can be time-consuming and may interfere with synchronization. 

Are there any other ideas?

Link between event and scene
Is there a problem if the synchronization program adds the scene IDs as labels to the timeline when exporting a yWriter project?

As an outlook for the future
Since Timeline is open source and also has a plugin interface, it does not seem impossible to integrate yWriter export/import and synchronization into the Timeline program, as I have already done with Open/LibreOffice. However, there is a huge learning curve in between, and the API may be limited in many ways. I think the easier way is to program a stand alone Python script first. 

It probably won't be finished very soon because I'm actually writing. But at the moment the side effects of the Covid vaccination are still dragging on, so I might as well use the slack time for programming a little bit.

Cheers, 
Peter

On Monday, July 12, 2021 at 9:50:00 PM UTC+2 fletcher...@gmail.com wrote:

Peter T.

unread,
Jul 26, 2021, 5:39:04 PM7/26/21
to yWriter
Good news for those who want a narrative timeline along with their yWriter project: Here is the alpha version of the yWriter-Timeline synchronizer, which already works quite well for me. If you want to try it out, you should first do so with a copy of your project to be on the safe side. And be sure to read the instructions carefully. 
Also remember to check back every now and then for updates, as I have some improvements to come.


I had planned this program for Aeon Timeline for a very long time, but didn't make any progress because of its tricky file format. After the switch to The Timeline Project it was quite easy. 

By the way, for Aeon Timeline I have a csv-converter in work, which turns an outline into a yWriter-project, including characters, locations etc.
When I get around to it, I will also put the program online for download. 

Have fun, 
Peter

Fletcher Kauffman

unread,
Jul 26, 2021, 5:44:50 PM7/26/21
to yWriter
Hi, Peter--
I'm glad to see that you picked this up, because this is the biggest headache I have right now in the thing I'm writing-- keeping everyone's story straight!

My hunch at it is that, perhaps, it could be user-selected whether to convert the TL::Category into a Tag, or what I was thinking is that Categories could map to Chapters also.
There are probably situational, programmatic ways to use this. For example, map the Category to the Chapter, ideal if you're telling the story out-of-chronological order, map the Category to main character/narrator, map the category to Location... in fact, there are a lot of options, huh? Also, depending which direction you're going.

Ultimately, I think your hunch could be right as to using Category for "Item Type" (e.g., "Scene", "Note"), etc. with the idea being that only certain items are paid attention to by yWriter-- or, at least, only certain things become scenes, and other things become reference material.

I think Labels is the way to go for most of this-- if you the user cedes the Labels entirely to yWriter/the Import Process, then it should be straightforward to rip through it and parse the important bits.

The main use case that I have is to be able to create a history in Timeline, then use that to generate Chapters/Scenes, but in the future, if I want to update the Timeline, I can run the import again without re-generating the Chapters/Scenes that already exist and having it verify the existing Chapters/Scenes to make sure nothing has changed.

For some things, it appears, I "write" on the Timeline, then that becomes bullet points, and then it gets written. But I will go back to the Timeline when something doesn't work and switch stuff around. Having an unbreakable Label (like a UUID) would make sure it's captured properly, even if I rename an Event/Scene.

I also think Containers could be used for Chapters, which would visually make some sense if the story is told out of chronological order.

There might be a way around having to learn the API for Timeline, as Timeline's file format is simply XML-- very easy to whip through.

So, to sum up, because that was rambling:
Timeline -> yWriter
Check whether the Chapter exists or not.
For New Chapters & Scenes:
Generate YW::Chapters based on TL::Containers - Danger here, it appears that the TL::Containers don't have a field to place a UUID in. Is it possible to insert it into TL::Document's XML durably?
Generate YW::Scenes based on TL::Events with Scene Tag, placing them in the appropriate YW::Chapters. For TL::Events without a TL::Category, place them in a null YW::Chapter (named 'scraps?'). Place contents of Description field into Scene as Summary.

For Existing Chapters &  Scenes:
Verify each field above, and if different, either overwrite with TL::Data or prompt user to see if they want to do so. Match Scene to Scene using UUID in Labels field.
Verifying YW::Chapters would depend on whether we can UUID Categories or not.

Annnd you've just done one. Let's see that you've got!
Message has been deleted
Message has been deleted

Fletcher Kauffman

unread,
Jul 26, 2021, 6:13:41 PM7/26/21
to yWriter
I'm sure you know this-- but I was curious what it would take to calculate the time interval, so the "transporter" would be feature-complete.

Peter T.

unread,
Jul 26, 2021, 7:31:52 PM7/26/21
to yWriter
Yes, you bring up some appealing ideas there, Fletcher. However, I have found that symmetrical synchronization between yWriter and Timeline can only be done with considerable risks as soon as deeper structures come into play. And I think there is a good reason for that:

The basic idea is to have two different views of the story in Timeline and yWriter. The reading flow is organized in yWriter, the chronological flow and background events in Timeline. If you actually want to include structural information of a foreign view, you can do that by hand using the tools of choice, but you have to wonder what the point is.

The two views are loosely coupled via the events/scenes. The UUIDs are stored as event labels in Timeline and have their counterpart in the built-in scene IDs in yWriter. This is flat and robust. Strictly speaking, you don't really need the scene date/time information in yWriter, because you have a much better overview in Timeline. In the meantime, I wonder if the synchronization of the scene time stamps is necessary at all. Anyway, you can put them above the chapters or scenes when exporting, as is often seen in thrillers.

The structures of the timeline view with categories and containers are thus preserved during synchronization, including the non-narrative events. The same applies to the novel structure in yWriter: chapters, notes, todos, and world-building elements remain unaffected by the synchronization. 

By the way, I participated in the beta test program of Aeon Timeline 3 at the beginning of the year. There they actually pulled in a parallel structure for a "narrative" to make it a full outliner, supporting tree structures, including a mindmap and a "subway" diagram. It looks very, very cool, but is getting incredibly complex to my mind, and the new major release seems to keep getting delayed. As for me, I prefer to organize my chapters in yWriter then. 

As you noticed, I still have to solve the problem of time differences. The thing is that the library functions discussed on StackOverflow are made that way more in terms of computer uptime or backup intervals. How something like this works for a time span of millennia, even with negative date calculation, I still have to figure out. I am considering including the "fuzzy" attribute and then rounding the times to appropriate orders of magnitude.

However, now I'm concerned with making sure my program runs reliably within the current specification, and hope to get some positive feedback.

Cheers, 
Peter

Fletcher Kauffman

unread,
Jul 26, 2021, 10:26:36 PM7/26/21
to yWriter
Thanks for the speedy and detailed response.

I do understand that these waters are fraught with peril. The TL::TimeStamps have reference value, to me, so I know what time of day I'm supposed to be writing for. Yes, definitely not the end of the world, but it seems like it's in easy reach-- and to be able to change the YW::TimeStamp and have it update the TL::Timeline without having to close both the TL::Timeline and the yW::Project is a big help to people who are writing to a tight timeline in their story.

For all my prattling on, I haven't even tested it yet, but what I'm reading here, only Scenes marked as Scenes get synchronized. I guess then it doesn't matter if they move around Chapters, etc. I was thinking of situations where a brand-new Timeline could contain hundreds of scenes, but they'd come in to yWriter as a mass. Kind of an edge case, I suppose, and a bridge to cross later, if needed.

What you describe for Aeon Timeline sounds promising, as timelines and subway maps (and mindmaps, come to mention it) are positive, but I'm rather finicky about presentation and Aeon (2) insisted on being pretty over useful, so I'd get enormous boxes spread all over the screen that contain hardly any relevant information to my story. A timeline application that can't make a clear timeline. Womp womp. I tried all the other tools within reach for both writing and timelining, and this was the combo I found easiest to work with, despite yWriter's quirks (VB.net, from Hell's Heart, I stab at thee), and Timeline's limitations.

Oh, yeah, I didn't think about the time difference format, but I'd bet there is a library with a function to do that. Easy enough (even if annoying) to write one. To that end, I suppose it's possible that the year could have five or more digits. :) No Y10K bug for me!

Okay. I'm gonna run my current project through this using my Timeline file and using the Project file.

Cheers,
Fletcher

Fletcher Kauffman

unread,
Jul 26, 2021, 10:36:52 PM7/26/21
to yWriter
Tiny note--
Your install.bat contains a reference to yw-timeline.pyw that isn't qualified, so unless the .bat is run in the source (file) directory, it will fail.

Fletcher Kauffman

unread,
Jul 26, 2021, 10:59:22 PM7/26/21
to yWriter
I hope this won't turn into a series of micro-messages from me.

I don't work in Python at all, but it appears that your code requires one of your own modules(? packages?)  from pywriter.ui.ui_tk import UiTk

So, when it runs now, it doesn't complain or anything, it just returns to the commandline without outputting anything at all.

Cheers, again!

Peter T.

unread,
Jul 27, 2021, 7:28:46 AM7/27/21
to yWriter
On Tuesday, July 27, 2021 at 4:36:52 AM UTC+2 fletcher...@gmail.com wrote:
Tiny note--
Your install.bat contains a reference to yw-timeline.pyw that isn't qualified, so unless the .bat is run in the source (file) directory, it will fail.

That is correct. for this reason the installation instruction is:  
  • Unzip the downloaded zipfile “yw-timeline_v0.1.6.zip” into a new folder.
  • Move into this new folder and launch install.bat. This installs the script for the local user and creates a shortcut on the desktop.

From the technical point of view, no installation is necessary. The Python script can be placed and called anywhere. The purpose of the batch file is to create the shortcut for inexperienced users and to copy the script where it cannot be accidentally moved or deleted. If I should add a configuration mechanism later on, I also have a place for the INI file right away.
 
On Tuesday, July 27, 2021 at 4:59:22 AM UTC+2 fletcher...@gmail.com wrote:
> I hope this won't turn into a series of micro-messages from me.
> I don't work in Python at all, but it appears that your code requires one of your own modules(? packages?)  from pywriter.ui.ui_tk import UiTk

The release for download contains a Python script that inlines all my own library modules, so only standard library modules need to be imported. 
You probably saw the quoted import instruction in the source file on GitHub. You can only do something with these source files in a carefully built development environment where all dependencies are resolved and version consistency is controlled. I can only advise against this. 
For example, if you need to make small changes to my code, you'd better do it with the monolithic script of the release. Its classes can also be imported from a custom script if you want to create a slightly more sophisticated variant yourself. For example, the architecture with UI facades would allow to use another GUI library, or to enclose the script in another Python application. 


> So, when it runs now, it doesn't complain or anything, it just returns to the commandline without outputting anything at all.

If you start the script without parameters, it does nothing. The easiest way to pass the parameter, i.e. the path to the source file for synchronization, is via drag-and-drop.
Quite an effort in such projects is the user documentation. I hope my work was not in vain. 



Fletcher Kauffman

unread,
Jul 27, 2021, 10:11:43 AM7/27/21
to yWriter
The mistake I made was assuming that the .zip you were pointing to was the same .zip I'd get were I to pull down the source from github (I cloned the repo). My comment about your missing modules was, indeed, based on looking at the source to figure out why it was not working. I was, however, running it from the command-line correctly, with a .yw7 file as the argument and I was getting no output/no activity.

In any case, I pulled the indicated download (0.1.7) and installed it the intended way and lo-and-behold, it did run! The only point in my running the install.bat previously was to make sure it worked as expected. :)

Apologies for the runaround-- I was too eager to be helpful in a case where I didn't read the label closely enough.

If I find anything else, I will triple-check first...

Fletcher Kauffman

unread,
Jul 27, 2021, 12:08:47 PM7/27/21
to yWriter
(I meant to say before that that was the most-polite RTFM I've ever seen-- I hope this is more useful)

Just some quality-of-life issues I've found. I've been working with test data and found these things:
  • The "Overwrite existing.. ?" prompts don't quite reflect what's going to happen. I would hate for people to get a nasty surprise.
  • If you process a .timeline file, the warning is "Overwrite existing..?" if the .yw7 file exists, even though it is actually going to synchronize, not overwrite (lossless-ish). Perhaps a blurb/warning about what will be synchronized and what won't and what may be lost?
  • Going the reverse direction, processing a .yw7 file to a timeline, it also says "Overwrite existing..?" though it's going to synchronize, but will be potentially lossy at that (e.g., even if you had gone Timeline -> yWriter and then wanted to update your Timeline, the replacement would lose any time periods that may have existed-- possibly other stuff). That's definitely worth a warning.
  • Adding information in yWriter like in the Description field for a Scene causes Timeline to choke (see image). Even going back into yWriter and removing the information still produces the same error. Deleting completely and generating a new .timeline from the yWriter file, with that Description field emptied produces a similar, but different error (KeyError: 9).
Overall, though, I was able to generate a blank timeline with a bunch of scenes and bring them over. I have to say, it really does work as a workflow, so well done you, once again. Now, if only Timeline would give me a way to add the same Label to 140 events at one time.

Cheers.
Fletcher

Unrecognized <description>
Traceback (most recent call last):
  File "timelinelib\dataimport\timelinexml.py", line 87, in _load
  File "timelinelib\general\xmlparser.py", line 260, in parse
  File "xml\sax\__init__.py", line 33, in parse
  File "xml\sax\expatreader.py", line 111, in parse
  File "xml\sax\xmlreader.py", line 125, in parse
  File "xml\sax\expatreader.py", line 217, in feed
  File "c:\_work\5\s\modules\pyexpat.c", line 417, in StartElement
  File "xml\sax\expatreader.py", line 333, in start_element
  File "timelinelib\general\xmlparser.py", line 235, in startElement
  File "timelinelib\general\xmlparser.py", line 162, in handle_start_tag
  File "timelinelib\general\xmlparser.py", line 215, in _find_next_child
timelinelib.general.xmlparser.ValidationError: Did not expect <description>.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "timelinelib\wxgui\frames\mainframe\mainframecontroller.py", line 143, in _open_or_create_timeline
  File "timelinelib\db\__init__.py", line 47, in db_open
  File "timelinelib\db\__init__.py", line 81, in db_open_timeline
  File "timelinelib\db\__init__.py", line 87, in db_open_newtype_timeline
  File "timelinelib\dataimport\timelinexml.py", line 56, in import_db_from_timeline_xml
  File "timelinelib\dataimport\timelinexml.py", line 74, in parse
  File "timelinelib\dataimport\timelinexml.py", line 91, in _load
timelinelib.canvas.data.exceptions.TimelineIOError: Unable to read timeline data from 'D:\SafetyCache\Writing\Hailey - Test_TL\New_Blank_File_Test.timeline'.

Did not expect <description>.

KeyError: 9
Traceback (most recent call last):
  File "timelinelib\dataimport\timelinexml.py", line 87, in _load
  File "timelinelib\general\xmlparser.py", line 260, in parse
  File "xml\sax\__init__.py", line 33, in parse
  File "xml\sax\expatreader.py", line 111, in parse
  File "xml\sax\xmlreader.py", line 125, in parse
  File "xml\sax\expatreader.py", line 217, in feed
  File "c:\_work\5\s\modules\pyexpat.c", line 471, in EndElement
  File "xml\sax\expatreader.py", line 336, in end_element
  File "timelinelib\general\xmlparser.py", line 244, in endElement
  File "timelinelib\general\xmlparser.py", line 171, in handle_end_tag
  File "timelinelib\dataimport\timelinexml.py", line 259, in _parse_event
KeyError: 9

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "timelinelib\wxgui\frames\mainframe\mainframecontroller.py", line 143, in _open_or_create_timeline
  File "timelinelib\db\__init__.py", line 47, in db_open
  File "timelinelib\db\__init__.py", line 81, in db_open_timeline
  File "timelinelib\db\__init__.py", line 87, in db_open_newtype_timeline
  File "timelinelib\dataimport\timelinexml.py", line 56, in import_db_from_timeline_xml
  File "timelinelib\dataimport\timelinexml.py", line 74, in parse
  File "timelinelib\dataimport\timelinexml.py", line 91, in _load
timelinelib.canvas.data.exceptions.TimelineIOError: Unable to read timeline data from 'D:\SafetyCache\Writing\Hailey - Test_TL\New_Blank_File_Test.timeline'.

9


Fletcher Kauffman

unread,
Jul 27, 2021, 12:21:33 PM7/27/21
to yWriter
Clipboarder.2021.07.27-003.png

Peter T.

unread,
Jul 27, 2021, 2:26:16 PM7/27/21
to yWriter
Thanks, Fletcher, for Alpha-testing yw-timeline

There are some technical details that might interest you:

1. My Python script uses Tkinter GUI widgets for user interaction. The file extension ".pyw" ensures, that no additional console window pops up during program execution. The side effect is, that the standard output is disabled, so you get no console message in case of wrong invocation.  If you copy the script and rename it to yw-timeline.py, you should get a neat message in case of missing parameters. You even might invoke a help function with the -h or --help Parameter. 

2. The Timeline software uses a probably self-made XML parser for its project files. Unlike e.g. yWriter, it works only if all XML tags are in a fixed order. It is obviously not intended to process project files that are not created by the Timeline app itself. The first error message shown above indicates, that the <description> field was inserted (by yw-timeline) in an existing XML event structure, disturbing the expected order of the XML elements. I shall look after that. 
In my system, I use a Python 3 standardlib XML parser that is newer than the whole Timeline project, and provides random access to the complete XML element tree. I'll have to find out how to insert a new element at a fixed position. In worst case, I'll have to delete and rebuild the <event> subtree for this. 

I've only had Timeline for a few days now, and have yet to get behind its secrets myself. That's why I still call yw-timeline an "Alpha release". But patience, with time it will all be solved. Anyway, it's helpful to run the software with more than just my own tiny test projects.

Since Timeline's error messages refer to the internal call structure, they are useful for debugging, but provide little information about faulty input files. So far I could only help myself by modifying rejected XML files in a text editor until Timeline accepted them, and then adapting my program. I shall have a closer look at the Timeline documentation -- maybe, there is a file specification somewhere. 

3. Synchronizing means overwriting target data with source data. Since yw-timeline works in both directions, there is always a danger of confusing source and target. Better ask once more ...
If you don't like the "overwrite?" prompt, you can use the silent mode which is intended for automatic testing. For this you best create a batch file with a shortcut on the Desktop. It could look like this: 

yw-timeline.pyw --silent %1

There might also be a way to add the parameter --silent to the shortcut created by the installation batch.

Cheers, 
Peter

Peter T.

unread,
Jul 27, 2021, 5:11:17 PM7/27/21
to yWriter
Fletcher, 

after having investigated the issue you reported, I decided to provide a new release v0.2.0 which disables the rewriting of existing timelines in order to prevent damage. You can download this version via the Download link on the project homepage:

As soon as the rewriting of existing timelines works satisfactorily, there will be a fully functional release v0.4.0. 

For further investigations and bugfixing, there is now a "v0.3.x bugfix" branch that doesn't interfere with the provided releases. By the way, the bugfixing progress (if any) can be seen here.

I'm thinking about an option to generate a new yWriter project with all events from an existing timeline, even if there are no labels with scene markers . Would something like this help in your case?

Cheers, 
Peter

On Tuesday, July 27, 2021 at 6:08:47 PM UTC+2 fletcher...@gmail.com wrote:
[...]

Slery

unread,
Jul 27, 2021, 8:00:16 PM7/27/21
to ywr...@googlegroups.com
All of this makes me want to do a timeline for my current series.

Cindy


On July 27, 2021 5:11:20 PM "Peter T." <peter.pape...@gmail.com> wrote:

> Fletcher,
>
> after having investigated the issue you reported, I decided to provide a
> new release v0.2.0 which disables the rewriting of existing timelines in
> order to prevent damage. You can download this version via the Download
> link on the project homepage:
> https://peter88213.github.io/yw-timeline/
>
> As soon as the rewriting of existing timelines works satisfactorily, there
> will be a fully functional release v0.4.0.
>
> For further investigations and bugfixing, there is now a "v0.3.x bugfix"
> branch that doesn't interfere with the provided releases. By the way, the
> bugfixing progress (if any) can be seen here
> <https://github.com/peter88213/yw-timeline/issues>.
>
> I'm thinking about an option to generate a new yWriter project with all
> events from an existing timeline, even if there are no labels with scene
> markers . Would something like this help in your case?
>
> Cheers,
> Peter
>
> On Tuesday, July 27, 2021 at 6:08:47 PM UTC+2 fletcher...@gmail.com wrote:
>
>> [...]
>> *Unrecognized <description>*
>> *KeyError: 9*
> --
> You received this message because you are subscribed to the Google Groups
> "yWriter" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ywriter+u...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ywriter/6de22bd1-add5-48c6-83c6-faf1b8da7939n%40googlegroups.com.


Fletcher Kauffman

unread,
Jul 27, 2021, 9:52:11 PM7/27/21
to yWriter
1. Ahh. I now understand the .py versus .pyw. It's not that important, it was just expected behavior, and at the time, I wasn't even getting output.
2. I follow what you're saying. So <description> is a valid element, just not in the order it was encountered by Timeline. So, Timeline is exceedingly rigid about the element order. How perfectly XMLlian.
3. "Synchronizing" to me means "makings two sets of data the same, accounting for changes on each-side, or on one side, in the case of a one-way sync". I get how you're achieving it. To be clear, it's NOT the "Overwrite" prompt that I have a problem with, it's that "Overwrite" means something different than "Synchronize", so I'd think that my destination data was going to be destroyed in the process (which should raise alarm bells for someone who did carefully RTFM to find out that some data will not synchronize, but will remain intact). This has nothing to do, for me, with the --silent switch. I'm only saying the presented prompt could be more informative and convey something closer to what it does.
Next post..
I think that's a prudent course to take, disabling the sync back to the timeline for now. I'm sure you'll get it sorted in no time.
I will grab both versions to see where I can help.

As far as the "create all events as scenes!" option goes, that may be useful for someone but not really. And, in fairness, the major project I'm writing on has a kind of ridiculous Timeline that covers several decades, but also has areas with events down to the minute. I wouldn't expect the sync'er to handle it how I'd like. For a future project, though, I might start with that as the workflow, and build the blocks accordingly.
Howeverrr... my existing timeline might raise some interesting adaptations for use-cases.

For example, I have stuff on my timeline that is:
  • a perfect analog to a scene (e.g., "Cooper and Hailey make dinner"), which has duration
  • an event with duration, but which would actually be represented by multiple scenes-- it may be that once the y->T is working, this handles itself as the scenes are broken down and renamed.
  • purely informational and only relevant on the timeline (e.g., "Detective Bob is in Shreveport"), but might be useful in yW as a Note of some kind, and may or may not have duration. I use things like this to track the locations of characters or, (because Timeline will calculate it automatically) quickly look up the lifespan of a character by creating a "lifeline" for them from birth to death.
  • world events, which may or may not have duration, but most of them are just points. These would never be scenes
  • I just realized,  it would be HUGE. HUGE. HUGELY helpful to be able to generate these (the last two types) from y->T. I'm very often inventing something on the fly (or a character is) that refers to a past or future event ("Oh, my family's going to Bangor for Christmas," or "Her birthday is May 7, don't forget!". I lose track of these so easily. In fact, the kind above might fall into this category, also: It would be great to be able to create a special type of Scene (maybe via tag, maybe in a more-expedient way) and have it become one of these two (or more) types of events on the timeline. Wow, that would be huge. It would account for nearly everything extra on my Timeline. It just needs a convenient way to do it from yWriter. I was hoping there was a [highlight]->Create New Scene from.. but there isn't. Create new scene and then set tags.. ?
  • I've attached a screenshot of just part of my timeline.
Clipboarder.2021.07.27-015.png

Peter T.

unread,
Jul 28, 2021, 5:34:35 AM7/28/21
to yWriter
On Wednesday, July 28, 2021 at 2:00:16 AM UTC+2 slery wrote:
All of this makes me want to do a timeline for my current series.

Cindy

Go for it, Cindy! Especially for a series, this is a great help. The "Timeline" software basically offers nothing more than a graphical view and easier handling of chonologically sorted events. Therefore the stored information can be exported completely as a table and used further. 

However, you won't need the yw-timeline program presented here for that. That has rather the purpose to bring all scenes of a single book into a chronological order. It can't handle multiple books, and in a series this level of detail won't be useful either. That's where other things come in, like "how old was Nanas when she first met Longfinger?" Or "when and where did Fandalg and Orogarn cross paths?" Or "where was Jaroh when Nyda was captured?" The events for these may or may not be tied to specific scenes and books.

A word about timeline software: 
I know "Aeon Timeline" and "Timeline" by "The Timeline Project". While Timeline visualizes a list of events in a simple way, Aeon is extremely complex and allows a high degree of customization.  Especially here it is possible to define all categories that serve the purpose mentioned above, i.e. characters with different roles, storylines, life histories, locations of different categories, birthdates, custom calendars, etc. Multiple assignments are possible, filtered display, and there is an alternative view as a manageable matrix. The catch is that you have to learn all this first, so you can't avoid reading the manual.
Both programs have their strengths for different purposes, so I have now installed both. But as I said: The information can basically also be managed completely with a spreadsheet, which you build up as a matrix (for each event a row, and for date/time, description, and for each character and location a column). 

Cheers, 
Peter


Peter T.

unread,
Jul 28, 2021, 7:36:23 AM7/28/21
to yWriter
Fletcher, 

It looks like yesterday's bugs are now fixed. I made the last commit at half past three in the night, so I'm a bit woozy today. From the "bugfix" branch in the "dist" directory you can now download the release v0.3.1. 
I think I'll make it an official release only after further testing. 

As for the "confirm overwrite", I understand your point. Despite all that, syncing is about overwriting a subset of the target data, and if you make a mistake on the roundtrip, you lose your changes. I certainly want users to be aware of this. And as you may recall, I never tire of reminding people to read the instructions.

Thanks for the insight into your timeline. I really don't want to advertise now, but it seems to me that some of the stuff you enter by hand (like "Cooper is 32") is delivered automatically in Aeon. For example, if you add Cooper to the characters and enter his date of birth, you may see his age in all the events Cooper participates in. Life spans are generated automatically and can be shown/hidden on demand, if I'm not mistaken. Anyway, when the screen gets too crowded, it's time to look into filtering the display. Well, everything else about this topic I wrote in my previous post to Cindy. 

To the last point of your posting, the events that are only mentioned or lie in the future: Basically, this has to do with chains of effects, i.e. plot-determining goals, plans and motives. I have seen an interesting approach here with the screenwriting software "Causality". I've been thinking for a long time about how to combine this concept with what other plotting/writing tools provide us. So far I've been using a simple diagram with arrows for something like this, Scapple to be exact. Not everything has to be integrated with yWriter, after all. 
However, if I had this in Timeline, I might add a "motivation" category or something. If needed, I would link "motivating events"  to tags or items in yWriter.This should work without automatic synchronization, but (warning: SciFi) a yw-causality tool might come into play here some day.

As for synchronizing time periods, I now have an idea. This could be realized with the release v0.6.

Cheers, 
Peter

Peter T.

unread,
Jul 28, 2021, 5:19:33 PM7/28/21
to yWriter
Well, now the bugfixed version 0.4.0 is available. Hopefully Timeline now accepts any output of yw-timeline without problems.

In addition, the items are now synchronized so that we can try out the "causality concept". That is, all yWriter items are associated with Timeline events that belong to the "item" category. They can be created, deleted and modified on both sides. The start timestamps of the "Item category" events determine the sort order in yWriter's item list. As you know, in yWriter any item can be associated with any scene. This opens up a wide range of possibilities for referencing timeline elements with any meaning from within scenes. Such elements can also be subsequently decoupled from yWriter by changing their category assignment in Timeline. The other way around, you can use the category assignment to turn existing events into yWriter items. 
The only limitation is: An "Item category" event can not be a "Scene" event at the same time. When creating a new yWriter project from a timeline, the "Item" category has priority over the "Scene" label.

To implement this without interfering with the scene system, a whole lot of new code was needed. So first test it carefully .

Enjoy, 
Peter

On Wednesday, July 28, 2021 at 1:36:23 PM UTC+2 Peter T. wrote:
[...]

To the last point of your posting, the events that are only mentioned or lie in the future: Basically, this has to do with chains of effects, i.e. plot-determining goals, plans and motives. I have seen an interesting approach here with the screenwriting software "Causality". I've been thinking for a long time about how to combine this concept with what other plotting/writing tools provide us. So far I've been using a simple diagram with arrows for something like this, Scapple to be exact. Not everything has to be integrated with yWriter, after all. 
However, if I had this in Timeline, I might add a "motivation" category or something. If needed, I would link "motivating events"  to tags or items in yWriter.This should work without automatic synchronization, but (warning: SciFi) a yw-causality tool might come into play here some day.
[...]

Fletcher Kauffman

unread,
Jul 29, 2021, 12:34:38 PM7/29/21
to yWriter
Wow, Peter-- you are a machine!

Since it's fun to argue semantics with a fellow writer/software developer: "Overwrite" has the specific meaning that "all your data will be destroyed and replaced with this". If I "Overwrite" a Gimp file, the old one is gone-- it doesn't just replace some of the colors, alter the histogram, and leave everything else intact. My preference is that rather than "Overwrite" there is an explicit warning about what is going to happen-- as I articulated (what'll be copied and what won't, and its implications). My big contribution to software design was to move people away from reading the instructions, since they won't anyway, and instead, provide them with knowledge as its application arises. Again, this is just a semantic discussion, since we're talking about a subset of a subset of a subset of the user community at large! I'll see if I can demonstrate what I mean.

The thing I didn't like about Aeon's use of ages was a few things-- one, I want to know how old Cooper is where there isn't an event, so I know where to place things, and to know, relative to, say, existing events he isn't in, how old he was at the time. It was also odd to me that age was the one preoccupative piece of data that seemed to need to be provided about a character in every event. And, yes, you are correct about the lifespan stuff in Aeon-- that was helpful, though I achieved the same thing in Timeline with as many steps, and hovering on any period event in Timeline gives you (in the lower-left corner, the start, end, and duration of the event-- REALLY helpful when I don't need that data displayed on everything on the screen, but do want to get to it quickly). Like I said, Aeon had stuff I like, but there's something about software when it's a near-miss to me; it feel uncomfortable like a scratchy sweater. You can filter stuff in Timeline, but my complaint was that Aeon is not crowded enough. I don't need it to look pretty, I need it to convey information, and if I'm going to open a window beside another window, I don't want to be limited to see six boxes on the screen at once because the layout requires an inch of gutter.

Oh, man, I wish you hadn't shown me Causality. Because now my brain thinks I need that, just because I wrote 130,000 words in about a month and can't keep all the character's referenced asides, relatives, anecdotes, and characteristics straight.

I didn't even get to testing the previous versions I said I would-- I re-pulled the repo and I was surprised to see so many different point releases! Again, sir, you are a machine.
Fletcher

Fletcher Kauffman

unread,
Jul 29, 2021, 4:19:06 PM7/29/21
to yWriter
I can't believe I just remembered this. This was in the back of my mind about why I wanted usable timelining.

I've had a "concept" in my notebook for (not an exaggeration) about 20 years. Some bits of it have been written (or re-written) over the years.. but never has the whole skeleton been put together.
The idea is:
26 stories that all take place in the same universe, even if not at the same time, or era, or epoch.
Each story's title is that of a profession, title, label, etc. of a person ("The Astronaut", "The Beggar", "The Clown").
The stories are told in alphabetical order, but in such a way that they could be read in any order.
Subsequent stories recontextualize prior stories.
Every story should be related to the general narrative, even if in only a tangential way.
I called this The Lexicon.

I thought of opening up this format as a writing challenge, even open to other languages, according to their own alphabets, but it's a helluvalotta work. To keep mine manageable, I started telling it in a fabled, alt-history way.

You can see where the timelining and being able to adjust from either side is almost a requirement-- to make the stories interesting, I had to line up so many different threads, and that became more of a task than the writing.

Peter T.

unread,
Jul 29, 2021, 6:08:18 PM7/29/21
to yWriter
Fletcher, 

If you want a new version, you don't have to download the whole repository; actually the download link for the last release on the project homepage is sufficient, where the user manual and the changelog are linked as well. 

The current Alpha release yw-timeline 0.6.0 is now controllable via configuration files, if you want to make customizations or toggle options. But be sure to read the neat and pretty manual before.

Yes, in the last few days I've gotten some things working here; as I've explained, it's the only thing I can really do at the moment. But that will soon come to an end. I really want to get back to writing. Also, my Aeon importer is now running satisfactorily (I already got what you don't like about Aeon, so it's a blessing that there's such a nice alternative for you with "Timeline". So to each according to his taste, right?)

Yes, the semantics of the warning messages, you're right of course. Also from a programming point of view, it makes a big difference to me whether I create a completely new target file, or whether I read in the target file, merge its contents with those of the source file, and then save it as a new file with the result. But if there is a malfunction, and this can also happen due to a configuration error by the user, the target file is just mercilessly overwritten and might be unusable as a whole. Just think how picky Timeline is here! That's why I don't feel bad about keeping my blunt warning message.

As for your writing plans, it looks to me like this is going to be the Ulysses of the 21st century. It's quite possible that the literature students who will analyze it one day will need the same tools you're using to plan it. 

Cheers, 
Peter



Fletcher Kauffman

unread,
Jul 29, 2021, 7:38:41 PM7/29/21
to yWriter
Grabbing the repo is simple, because I just tell Git to pull it, and then if I wanted to, I could flip between versions easily. Very cool about the configuration files! That's certainly handy for retrofitting an existing timeline!

Don't hold your breath for another Ulysses. At best, it will be that year's series of safety pamphlets regarding the proper use of a specific national park.

Fletcher Kauffman

unread,
Jul 29, 2021, 8:19:08 PM7/29/21
to yWriter
But something did just occur to me-- in the case of The Lexicon, each Story might be a chapter, but contain many scenes. I suppose I could name them: "Astronaut - Daybreak", "Astronaut - Landing", etc. but this is a place where the containers/chapters analog fits perfectly.

S B

unread,
Jul 29, 2021, 8:51:12 PM7/29/21
to ywr...@googlegroups.com
I would get this one since I use Aeontimeline too. But for some reason its making my antivirus really mad.lol

--
You received this message because you are subscribed to the Google Groups "yWriter" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ywriter+u...@googlegroups.com.

Peter T.

unread,
Jul 30, 2021, 5:22:09 AM7/30/21
to yWriter
On Friday, July 30, 2021 at 2:51:12 AM UTC+2 s.m....@gmail.com wrote:
I would get this one since I use Aeontimeline too. But for some reason its making my antivirus really mad.lol

Could you please be  more specific? I take this seriously, however, it is not fair to simply put a suspicion of malware into the world. 
The release is a zip file that contains nothing but text files, i.e. no binaries. I'd like to know which sort of virus warnings this could generate. 
The only thing that comes to mind is the installation script that calls Windows Powershell to create the applicatoin shortcut on the Desktop. On some Windows systems, Powershell scripting is prohibited. 


Peter T.

unread,
Jul 30, 2021, 7:10:13 AM7/30/21
to yWriter
Just a hint: You can add another layer above the normal chapters in yWriter by marking chapters as "Start of a new section" in the properties dialog. Then this chapter will appear in bold type in the chapter list. In all my export/import tools I call such chapters "parts" and give them headings one level higher. Such chapters usually have no scenes, they serve with their headings the book structure.

By the way, I already realize that scenes are often arranged chronologically in a chapter. But that is not a matter of principle. That's why I would never technically link chapters and containers. 
Chapters serve to structure the amount of text, while containers summarize narrative time sequences. In my profession, this is called 'orthogonal', meaning that changing one does not have to change the other. 
It wouldn't be particularly hard to map containers to chapters when synchronizing, but then the result would just be another storyboard.

Cheers, 
Peter

Dave Richardson

unread,
Jul 30, 2021, 9:26:06 AM7/30/21
to yWriter
Hmmm...  I will probably be putting in a bug report on this, but I thought that this group would appreciate a heads up - I started using Timeline to analyze a work-in-progress, and when I started juggling event dates around in it, it started changing the dates on unrelated events. This may be a misunderstanding on my part, but if there are implicit relationships between events I don't understand them. If I am just being stupid, please let me know.

I may just go back to using a Gantt charting program like I used for project management as an engineer. At least the relationships between things are explicit.

S B

unread,
Jul 30, 2021, 11:56:30 AM7/30/21
to ywr...@googlegroups.com
I have bit defender and it decided that it must be malware for some reason. Here is screen shot of reprouduce what happened when I tried to get one for the aeon timeline  tweak
Screenshot 2021-07-30 at 11-53-49 Web Protection by Bitdefender.png

--
You received this message because you are subscribed to the Google Groups "yWriter" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ywriter+u...@googlegroups.com.

S B

unread,
Jul 30, 2021, 11:57:46 AM7/30/21
to ywr...@googlegroups.com
I think it's just the antivirus software being a jerk. It's done this to mee over certain websites that I have gone too for years.

Fletcher Kauffman

unread,
Jul 30, 2021, 3:06:25 PM7/30/21
to ywr...@googlegroups.com

Yeah, it isn't a bug. Everything that is in a container moves together. This is both useful AND frustrating.

It's obviously useful if you have a complex sequence of events but you're not sure when that will take place, but for nearly anything else, it's a mess.

--
You received this message because you are subscribed to a topic in the Google Groups "yWriter" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ywriter/j57QzJUP2GY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ywriter+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ywriter/01093301-c0bb-457b-8f96-328d0eda9812n%40googlegroups.com.

Peter T.

unread,
Jul 31, 2021, 3:05:45 AM7/31/21
to yWriter
On Friday, July 30, 2021 at 3:26:06 PM UTC+2 Dave Richardson wrote:
Hmmm...  I will probably be putting in a bug report on this, but I thought that this group would appreciate a heads up - I started using Timeline to analyze a work-in-progress, and when I started juggling event dates around in it, it started changing the dates on unrelated events. This may be a misunderstanding on my part, but if there are implicit relationships between events I don't understand them. If I am just being stupid, please let me know.

Before you put a bug report, Dave, consider this:

In case the events in question are grouped in a "container", they are not unrelated. Containers are designed to establish explicit temporal relations. 
Difficulties arise only if you are not familiar with this concept and want to use the containers for other purposes. 
To group events according to other criteria, better use the "categories". 

Cheers, 
Peter


Peter T.

unread,
Jul 31, 2021, 3:31:20 AM7/31/21
to yWriter
On Friday, July 30, 2021 at 5:57:46 PM UTC+2 s.m....@gmail.com wrote:
I think it's just the antivirus software being a jerk. It's done this to mee over certain websites that I have gone too for years.

Well. Apparently, the protection program blocks links that do not lead to a website but trigger a download. Perhaps it can be turned off in the settings. After all, the link is clearly labeled as a download.
In order not to accidentally trigger downloads, better set in the web browser what happens when you click on such a link. In Firefox, these are the "Applications" settings. With ZIP you can select there whether there's a request before the download.

I don't like overzealous malware warnings, because at first they make you feel insecure, and over time they make you stop taking them seriously at all. I prefer Windows 10's built-in "Defender", which doesn't make itself known all the time to justify the purchase.


S B

unread,
Jul 31, 2021, 2:09:51 PM7/31/21
to ywr...@googlegroups.com
I have actually had instances where it flat out blocked a website. I used to go to editminion. Now for some reason it won't allow me to even go there. We've been considering other alternatives for antivirus. 


--
You received this message because you are subscribed to the Google Groups "yWriter" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ywriter+u...@googlegroups.com.

Fletcher Kauffman

unread,
Jul 31, 2021, 2:49:36 PM7/31/21
to ywr...@googlegroups.com

I had that problem with BitDefender, too-- and it made the exception process too annoying to make it usable. So, now I just use MalwareBytes and Windows Defender.

You received this message because you are subscribed to a topic in the Google Groups "yWriter" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ywriter/j57QzJUP2GY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ywriter+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ywriter/CAKjtxa0wbXFJ2Ud%3DiCDf36_AGUsU3vPx5YAZA3ad3AwtFnjnRw%40mail.gmail.com.

Peter T.

unread,
Aug 6, 2021, 9:36:00 AM8/6/21
to yWriter
On Friday, July 30, 2021 at 5:57:46 PM UTC+2 s.m....@gmail.com wrote:
I think it's just the antivirus software being a jerk. It's done this to mee over certain websites that I have gone too for years.

By now I'm pretty sure it's about calling powershell from within my installation batch script. 
To avoid such disturbing security warnings in future, I decided to revise all my installation scripts and remove the automatic shortcut creation using powershell. 
Now the install script displays a message on the screen and opens an explorer window so you can manually create the shortcut to the application on the desktop.

Oddly enough, but a batch file can't actually create a quite normal shortcut on the desktop with the regular console commands. 

S B

unread,
Aug 6, 2021, 12:16:52 PM8/6/21
to ywr...@googlegroups.com
It installed okay now.  I'm sorry you've had to go through all this trouble.  

--
You received this message because you are subscribed to the Google Groups "yWriter" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ywriter+u...@googlegroups.com.

Peter T.

unread,
Aug 6, 2021, 3:16:49 PM8/6/21
to yWriter
On Friday, August 6, 2021 at 6:16:52 PM UTC+2 s.m....@gmail.com wrote:
It installed okay now.  I'm sorry you've had to go through all this trouble.  

It is not your fault. It's good that you reported the problem.

And now I hope you get some benefit from the program. Unlike yw-timeline, aeon2yw can only work in one direction, i.e. generate a yWriter project from an outline created with Aeon Timeline 2. But if the configuration fits, something quite remarkable can be achieved. 
To try it out, you can export the provided example project "Murder on the Orient Express" as csv. A yWriter project with all scenes in which Hercules Poirot appears can be created with these yw-timeline settings: 

[SETTINGS]
title_label = Title
scene_label = Participant
scene_marker = Poirot
date_time_label = Start Date
description_label = Description
notes_label = Notes
tag_label = Tags
location_label = Location
item_label = Item
character_label = Participant

[OPTIONS] 
export_all_events = Yes  
 
The generated yWriter project then also includes the characters assigned to the scenes. 
The same works for locations and items, if you have defined something like that as "entities" in your Aeon project.

Also here I might add some features like in yw-timeline, for example add the scene durations. So if you like the program, check back from time to time for updates.

Have fun, 
Peter
Message has been deleted
Message has been deleted

Peter T.

unread,
Aug 13, 2021, 4:02:59 PM8/13/21
to yWriter
The yWriter-Timeline synchronizing tool is now complete and goes into beta testing.

There are some cool features now, for example you can change the scene date/time stamp between the two modes "date/time" and "Day/Hour/Minute" per option. Also the scene duration is now synchronized with the timeline and can be set or changed in both applications. 

Many thanks to Fletcher and Dave for early alpha testing. 
If you try the program and find bugs, please report them off-list or directly here, if you have got a GitHub account: 

Cheers, 
Peter

Reply all
Reply to author
Forward
0 new messages