olivierkes / manuskript

A open-source tool for writers
http://www.theologeek.ch/manuskript
GNU General Public License v3.0
1.78k stars 236 forks source link

Labeling function #98

Open gorgophol opened 7 years ago

gorgophol commented 7 years ago

Hi,

I would really appreciate a labeling function for the scenes / chapters. Labels could be used to add additional useful information, which could later be the base for new graphics and information tables.

That could be a mix of

As I'm really struggling with this problem right now, I thought this might be interesting for others too. Besides that and with the new export in the development version, it's really a great and easy to use tool for writers, especially on linux :-)

Thanks for your work.

Cu, Benjamin

gedakc commented 7 years ago

Hi Benjamin,

Were you aware of the Labels available under the Edit -> Labels... menu? These are also available under the Edit -> Settings menu when you select the Label item on the left-hand-side.

Here you can create new labels with names you create and colours you choose. Then you can choose how the labels are displayed in the user interface under the View menu with the Tree, Index cards, and Outline entries.

Following are some screen shots of manuskript in Redaction and Outline views:

Note 1: I think Redaction should be called something different, perhaps Edit or Write because this is the main area where I enter and edit the text of scenes.

Note 2: These screen shots were taken from a sample-book I created for my EBookGenTools project using the current develop branch of the manuskript git repository. The manuskript develop branch contains updates that have been developed since version 0.3.0.

Manuskript Redaction with POV Colouring Manuskript Redaction with POV Colouring

Manuskript Outline with POVs and Labels Manuscript Outline with POVs and Labels

You can also use Status to track your progress with a scene or chapter.

The Outline screen can be used to assign Labels, Status, and POV to Chapters and Scenes.

'Hope that helps.

Curtis

gorgophol commented 7 years ago

Hi Curtis,

thanks for your answer. I already use the label function as you explain it. And you made me think of using the "note" label more often, to get more information with the currect development version. Thanks for that :+1:

Just to explain what I think of exactly (well at least I hope that it explains that more clearly :-) ) My problem is, that I can only use one label per scene. So if I label it as a scene or idea, I can't add more labels. So I could create new labels like "Character A", "Character B ", "Place C" and "Autum 2005", but I can't use them, as far as I know.

Trying to organize a bigger story, with lots of characters, different places and different times, the current label concept doesn't help that much.

What I wished for would be automatic labels for every character and place I create (and time, which is not a feature yet), that I can use for scenes, chapters, plots chapters and that could be used to create information charts about the appearance of my characters in my chapters, in my places and in my different times. (Currently there's only the "Story line" feature for the POV and Plots).

Additionally there could be free labels, that could just be used in any way the other tries to organize himself and which you just could just click on to collect all the scenes tagged in that way.

To me that sounds like a lot of work and there may be other, more important things to do first, so I just wanted to drop it as an idea for future development.

Cu, Benjamin

gedakc commented 7 years ago

Thanks Benjamin for the further explanation. As far as I can tell, only one label can be applied per scene or chapter.

Your suggestion of using Notes / References could work in the meantime. For example you might use something like _CHARS, _PLACE, _TIME, and _OBJS to track various things in Notes / References.

Redaction with Notes / References Manuskript Redaction Notes /References

If you disable Save to one single file in the Edit -> Settings menu, then the book contents will be stored in folders and plain text files. This enables you to use standard GNU/Linux tools to search the files for the contents. For example:

find your-book-directory -name "*.md" -exec egrep -li "keyword1|keyword2|keyword3" {} \;

If you wished to find all the scenes with either autumn or candlestick you might use the find command along with the egrep command:

gedakc@kaby:~/ebookgentools$ find . -name "*.md" -exec egrep -li "autumn|candlestick" {} \;
./sample-book/outline/0-Book_1/3-Chapter_4_-_checkbookhtml_Validating/0-Types_of_Validation.md
./sample-book/outline/0-Book_1/1-Chapter_2_-_Required_Text_Format/1-POV_and_Scene_Breaks-_Bold-_Italic.md
gedakc@kaby:~/ebookgentools$

Just thinking about these labels makes me realize that a local and a global search/replace function would be helpful, but that's a whole different topic. :-)

Curtis

olivierkes commented 7 years ago

Hi Benjamin,

Did you know that you could reference most objects (scene, character, world object, ...) in the Notes / References text area? Just type CTRL+Space and a popup opens:

image

Those references link to the referenced object:

image

In the references, for example {C:0:Peter}, the letter C means character (W for world, P for plot, T for text/scene), the number is the unique ID of the object, and the text is used simply to make it human readable. This allow you to change names without breaking references. For example if you changed the name of the character "Peter" to "Simon", the reference {C:0:Peter} would still work. (A tool should be implemented in the future to update all outdated references).

And they are used in the Cheat Sheet:

image

It's not the perfect system, and very little analysis / search tools are included yet, but I think it's flexible enough for many things. Probably the Storyline will in the future allow much more visualisation, taking into account those references. Also the Search widget could be improved (to allow for multiple keyword search for example), but for now you could search for {C:0: to find all referenced of the character whose ID==0.

Does that answer your need somehow?

gorgophol commented 7 years ago

Hi Olivier,

I didn't know that feature yet. I always wondered what the cheat sheet might be for :-) Now after some short testing I'm sure that this will make my work a lot easier.

Thanks a lot for your help :-)

Cu, Benjamin