MCPcopy Index your code
hub / github.com/NUKnightLab/StoryMapJS

github.com/NUKnightLab/StoryMapJS @0.9.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.9.5 ↗ · + Follow
1,462 symbols 3,928 edges 124 files 112 documented · 8%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

StoryMapJS: Maps that tell stories.

StoryMapJS is a simple tool to help you tell stories with maps. If you're not a programmer, you don't need to spend much time on the GitHub page—instead, go StoryMapJS

If you want information on creating JSON with your own code and embedding it, see the "Advanced" documentation on the StoryMap website.

Development

See DEVELOPMENT.md to get setup for local development of StoryMap.

Contributing language translations

StoryMap's older sibling, TimelineJS has proven internationally popular, in part because users have contributed translation support for dozens of languages. StoryMap is also ready to be used in languages other than English, but once again, we'll need your help.

For each language, we need a simple file with a name like *xx*.js, where xx is the two letter code for the language. (Technically, it's the ISO 639-1 code—you can find a list of them on Wikipedia.) The file defines a Javascript object with language specific translations. To make one for your language, copy one of the existing files (like this one for Spanish) and edit the quoted strings. Please don't change the "keys"—the unquoted strings. If you know how to use GitHub to make a pull request, that's the best way to submit it to us. If that's not your thing, you can add a comment to this support thread and upload your translation as an attachment.

GigaPixel

Images are rendered so when set to be map_as_image the entire image is shown. When set as cartography the zoom will set so that all the markers fit.

Points are set to only display on mouseover in image mode, but you can set map_as_image to false in the config options to always show the points. The points are hidden when the intent is an image so that nothing obstructs the image the viewer is looking at. Looking at a painting is hard with a bunch of points on it.

Map Options

To disable connecting lines on maps use the StoryMap options: "Treat as Image" (as opposed to the default, "Treat as Cartography")

More config options available to do what you want with the line:

line_follows_path:      true,       // Map history path follows default line, if false it will connect previous and current only
line_color:             "#c34528",,
line_color_inactive:    "#CCC",
line_join:              "miter",
line_weight:            3,
line_opacity:           0.80,
line_dash:              "5,5",
show_lines:             true,
show_history_line:      true,

To disable zoom calculation/edit zoom level set calculate_zoom to false in the config options.

Images can now be used in place of map pins. Use image inside the location object and include a url to use. use_custom_markers also has to be set to true in the story map options. Same goes for custom icons except you need icon inside the location object and include a url to use.

Troubleshooting

Users may be directed to our userinfo page to help with troubleshooting. This page provides information about the user's account and saved storymaps. The endpoint is https://storymap.knightlab.com/userinfo/

Core symbols most depended-on inside this repo

on
called by 390
src/js/core/Events.js
fire
called by 388
src/js/core/Events.js
create
called by 217
src/js/dom/Dom.js
get
called by 146
src/js/dom/Dom.js
css
called by 141
src/js/core/Load.js
off
called by 134
src/js/core/Events.js
hide
called by 62
src/js/map/Map.js
updateMessage
called by 53
src/js/ui/Message.js

Shape

Function 919
Method 427
Class 80
Route 36

Languages

TypeScript87%
Python13%

Modules by API surface

storymap/static/bootstrap-wysihtml5/lib/js/wysihtml5-0.3.0.js172 symbols
storymap/api.py107 symbols
compiled/js/storymap.js100 symbols
compiled/js/library/moment.js65 symbols
src/js/map/Map.js58 symbols
storymap/static/js/moment.min.js54 symbols
storymap/static/js/gdrive.js51 symbols
storymap/static/bootstrap-wysihtml5/lib/js/jquery-1.7.2.min.js42 symbols
src/js/animation/Ease.js42 symbols
compiled/lib/jquery-min.js42 symbols
storymap/static/bootstrap-wysihtml5/lib/js/wysihtml5-0.3.0.min.js39 symbols
src/js/slider/StorySlider.js36 symbols

For agents

$ claude mcp add StoryMapJS \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact