Sign-up for occasional updates on New York Noir!

* indicates required

Intuit Mailchimp

And don't forget to visit our boardgamegeek game page!

This is the New York Noir / Casebook Web Services Website v4.32 (4/17/25).

This site provides online tools for building cases for our game, New York Noir, and for Sherlock Holmes Constulting Detective style board games.

It's built using open source code libraries and tools including Latex, Django, Lark, Python, and Docker.

Please contact Jesse Reichler (jessereichler@gmail.com) if you are interested in authoring cases using this website; you will need an author account to build pdfs.

Documentation for Casebook Syntax

New York Noir Downloads

Other Links

Version History

# v4.32 (4/17/25) Fixed batch build errors about custom user function redefinition Improved $blurbStop() function Falls back to using debug cover for internal game list Added support for $dayDate() function with "dayOfWeek" output format; support for referring to days prior to first day using negative day numbers # v4.31 (4/13/25) Improved labels for inline hints ("xxx contd." part) Added ('helpful' parameters to mark $mark() function, and default inline hint text, so that it tells player to demerit only if hint was helpful. Made address subheading info small and italic to reduce temptation to read it. # v4.30 (4/12/25) Fixed but with lettrine in short newspaper articles # v4.29 (4/9/25) Modified newspaper headline/byline styling to take var=val| pair for more easy overriding Moved page numbers a bit lower # v4.27 (4/7/25) Added database dName and address to mind map nodes for leads; added dName to table of contents lines in debug report When you do a debug build and html version of source is created, this source can be copied and pasted to a google doc for a nicely formatted source file (headers as h1,h2, etc) In addition, the html export now adds comments for leads that are found in the db, listing the entry name and address Fixed github login (thanks Peter) # v4.25 (3/26/25) # adding get(identifier, defaultVal) and setDefault(identifier, defaultVal) # Added variables from task configuration to environment (taskLeadSectionBreak, taskLeadSectionColumns, taskLeadBreak, taskLeadColumns); these are controlled by the prefferred or batch buiild # You can now use these in the configuration of sections so that non-lead sections (like hints) can obey the build task settings for number of columns and lead breaks, etc. # Prior to v4.25 only the lead section options would be changed by task options. # In future versions, the aim will be to allow the batch task builds to be configured by author to build any number of configurations of different options, rather than preset to page formatting presets # Added support for arbitrary font size specification in points in addition to latex preset sizes of [tiny, script, footnode, small, normal, large, Large, LARGE, Huge] by using the size string fs## or fs##.## # Fixed issue when table of contents was not linking proplely to sections with no headiers; where label="", toc="something" where # v4.24 (3/24/25) # Improving admin backend model view to show user group memberships, etc. # v4.23 (3/23/25) # Updated home page banner image # v4.23 (3/22/25) # Fixed django warning in template of main menu when user is not logged in # Again trying to fix generated files list of what version was last built # v4.22 (3/21/25) # Fixed oddity when reporting that last build started soon after last edit # Separate line listed the case date separate from case system # Replaced latex loruem ipsum with homebrew text placeholder function # Added new lead plugin for numbered paragraphs (alphaNumeric) and leaddb variants (numbers99, numbers999, numbers9999) for unused leads # v4.19 (3/14/25) # Added formNumber() function for short form line/box # Improved newspaper spacing, and spacing options; added divider and indent options # Numbered and unnumbered lists are now formatting nicely via markdown and latex # function $fingerprintPath() added, to be used with $image() instead of $fingerprintImage() # v4.18 (3/13/25) # added a function to configure the dividers used between leasds; a custom png can now bed used # improved newspaper functions; you can now much more easily set visual features for all articles and groups in a newspaper # you no longer have to use $newsGroup() you can just set columns in $newspaper # you no longer have to user $newsHeadline() or $newsByline() you can now pass headling and byline as parameters in $newspaper() # you can now set headlingStyle and bylineStyle in the $newspaper() function which will effect all articles; style string can be any pipe separated list of: bold|italic|underline|large|Large|Huge|small|fit|upper... # v4.17 (3/12/25) # Fixed bug in modifying global options # Added document on upgrading case to latest version of casebook # Added style="bordered" to images (just border no padding) # Improved user profile; Added homepage and bggname urls, as well as a list of group memberships; links to user profile from game list page # Fixed bug where documents were not properly referring back to the page where they were gained if they were gained in a section introduction rather than a lead # Improved global admin settings for home and about page; added chimpmail newsletter signup to about page. # v4.16 (3/11/25) # Improving error messages in reporting problems parsing settings # Improving error messages in calling function with unnknown arguments # Fixed bug in parsing of block comments /* ... */ # v4.15 (3/5/25) # Improved newspaper styles so you can set headline style and dropcaps options for newspaper at a whole which will filter down to articles # Improved the look of some dropcaps effects # Added $textup() function # v4.13 (3/5/25) # Fixed logging errors on production server # v4.10 (3/4/25) # Added reference to lead where gained for documents # Fixing some margin layout issue on two-sided layouts when switching to footer-based titles for documents (full sized newspapers, etc.) # Improved linespace for lead subheadings, especially for smaller page sizes # Added version history to website about page # v4.09 # Added code to suport language translation for casebook common text strings # v4.07 # New marker labeling system uses A1 instead of A, and labels all markers sequentially in the order they are DEFINED; in this way you should always define prerequisite markers before those that depend on them. # e.g. if you have a marker("cond.foundNameOfCat") and a marker ("cond.foundOutMrXHasACat") then you should define the latter before the former. # the reason this is important is that when the casebook tells the player what tags they must find for the day, they are sorted in the order they are defined # v4.06 # Improved form functions for questions and answers # v4.05 # Added newspaper image dithering function (when you go to detail page of a file upload) # v4.04 # Giving up trying to get http login to work (if we ever need to test on a new domain temporarily without https this will haunt us) # Enforcing https redirect # v4.03 # improved default newspaper layouts # added options to newspaper function to control paragraph and line spacing # v3.99 # improved logging system in django site # added 'fit' arguement to newspaper headlines to adjust headline to fit on one line # widths for images and format/boxes can not be specified either in % of page width, or explicitly eg "5in" # fixed bug with draft building resulting in error on custom largefont build # slightly improved latex error detection # improved newspaper layout # improved custom font underlining and strikethrough (bolder and matching color) # v3.96 - fixed background transparency of full cover page images # moved cover page function to latex function # fixed bug in start and end day time to support fractional values (with minutes) # added support for specifying day start and end as a string like "8:00 am" # unified some image/font/finding functions # added support for hyphenate=false in defineFont