Fixed names and/or command-line options.
Look at how some existing gamebooks are formatted.
They are the same, sort of, and it might be good to be able to add other similar entities as well, like skills or spells or whatever.
Sections with some markup (has number 0?) are added as chapters of introduction, otherwise formatted identical to other sections.
eg [a-z][a-z_0-9]+
Allow sections with same name as long as only one is included. Add book config for what section to use for references to excluded sections (eg links to outside of demo version can lead to section explaining that)
count tag to declare new counter, text in tag is display name optional argument sets the starting value of the tag display somewhere on page (in HTML output)
and in inferior browsers
buy tag to specify what can be bought, eg [buy item]sword[/buy] followed by cost tag to specify what it will cost, eg [cost gold]3[/cost] Implemented by adding cost to the old found tag (put cost tag after it). Might reconsider and make explicit buy tag for clarity?
The big scripts in html templates are split out into separate files already (script.html and endscript.html). It should be possible to test those from nodejs?
Will be taken care of when implementing JSON output.
Many tags can default to do the same as a b-tag for bold for instance. Make as many DEFAULT templates as possible and remove format-specific ones. This will make further development so much more nice. Actually not doing this, because the default just showing inner text is the best default anyway. Option -o paged to make each section render on its own page. Add template overrides for at least html, tex, and rtf. Probably change the style for section headers as well.start, separator, end (probably only for JSON and HTML now)
start, separator, end (probably only for JSON and HTML now)
Many strange things can happen when clicking one link changes something that should now enable or disable some link. Instead of the current hacks all links should be re-calculated every time something have been clicked, doing the same checks as when first displaying a section.
Show in dynamic HTML only, and only after something was changed in current section. Eg if player picks something up or buys something, then wants to undo that, there should be a link to do so. Text inside of tags is displayed as the clickable link to reset section.
Insert reference link to return to most recent section tagged as :RETURNHERE:. This will be based on the order sections are written in the file (for now?). This is probably a special case (ie hack) based on normal references.
If a section has a :UNIQUE: tag, every link to it creates a new unique copy with automatically generated name. This is not recursive, so to make entire subtrees that are unique every section in the subtree must be tagged. This is done early in the parsing, so everything will treat the clones as different sections. If a number is given it is applied to first generated clone. That is probably not very useful but whatever.
Used to pick up one or more of something found, or before starting. Create counter and set to how many are allowed to be picked. Add buy (and cost) tags for what can be taken. Need to make sure it is rendered in a good way (might need more tags). This will also work for picking eg starting skills.
This is the cost tag again, when it immediately follows a reference.
Trade one thing from a collection to add something else to some collection.
This is a new tag that follows a reference similar to a cost tag.
This is a new tag that follows a reference similar to a cost tag.
It is possible sometimes to follow a disabled reference or pick something up even when not having enough to pay its price. Seems to only happen with things that do have a price, not those disabled for other reasons.
The js code to make sure that something you have had but later dropped can not be picked up again seems to be broken for things that have a price.
When disabling something found because it was dropped, display a warning after automatically,eg default “(not available because you already picked it up)” in some good style.
Eg to buy starting values for some attributes in introsection.
Use cost tag following inc tag to set price for increasing a counter. Set max for points to 0. Do not allow navigation until all points are spent (ie never allows following links while a counter is above its max value). The same mechanism can of course be used in-game at any section to allow the player to buy increases in different counters.
What if a reference leads back to somewhere that counter is used? In that case will revive the counter automatically. Remove will only hide from GUI really.
Tag to set config parameters for combat system (probably in introsection). Tag to mark up the link to use to trigger next round. Tag to mark up retreat link. Tag to mark up enemy starting values. JavaScript easy to override parts of system, but quite configurable just using the config parameters. Allow multiple combat systems in the same book.
Using a PNG image is not nice. Not sure yet what tags are needed. Probably a charactersheet template that is only non-empty for formats it makes sense in. For HTML all the inventory stuff etc could be moved into the character sheet, making it also available in the static HTML.
Look at existing gamebooks to get ideas to add to this todo list.
Currently a modifier (eg cost) always applies to tag on its left or right, and it can be a bit confusing to remember what direction, or awkward to write the text in a good way to follow that rule. Make it possible to add to a tag what it applies to (eg what item or reference the cost should apply to, anywhere in the section).
Preferably headless (in nodejs?). Run tests on gamebook html example(s). Work on laptop stashed as zombietest (using zombietest obviously).
When using the list option, and only including only sections for a tag, there currently has to be a missingto section, and that section is always listed even if it is not tagged.
This output format down-prioed because requires some changes to handle new-lines. All previously supported formats handles new-lines in text without problems, JSON do not. New-lines are added in ways that can currently not be affected by quoting functions. Made debug format json. Will fix new-line problems when seen (not so far).sell tag to specify what can be bought, eg [sell item]sword[/sell] followed by cost tag to specify what it will cost, eg [cost gold]2[/cost] Might want to wait with this and add normal drop function first? This is like payPrice but a negative cost? Sort of.
Automatic upper-case tags excluded not matching output format, eg when generating a HTML file all sections tagged PDF or TXT are excluded (unless also tagged as HTML of course). Sections with no format tag are always included, so this has to be handled somewhat differently from the normal include/exclude tags unfortunately. Allow multiple sections with the same name, only use one that matches, or treat as any other missing section otherwise.
Some tag that can be set on incomplete sections to trigger warnings as a reminder that the book is not done yet, and show you what sections remain to be written.
Use generated MAP file to insert section numbers in any external file.