Full Code of TiddlyWiki/TiddlyWiki5 for AI

master 962692c90ce4 cached
8546 files
22.9 MB
6.5M tokens
2210 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (25,814K chars total). Download the full file to get everything.
Repository: TiddlyWiki/TiddlyWiki5
Branch: master
Commit: 962692c90ce4
Files: 8546
Total size: 22.9 MB

Directory structure:
gitextract_q58fy6tj/

├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── PULL_REQUEST_TEMPLATE/
│   │   └── pull_request_template.md
│   └── workflows/
│       ├── ci.yml
│       ├── cla-check.yml
│       ├── cla-signed.yml
│       ├── eslint.yml
│       ├── pr-check-build-size.yml
│       ├── pr-comment-build-size.yml
│       └── pr-validation.yml
├── .gitignore
├── .jshintignore
├── .npmignore
├── bin/
│   ├── build-site.sh
│   ├── build-tw-org.sh
│   ├── ci-pre-build.sh
│   ├── ci-push.sh
│   ├── ci-test.sh
│   ├── clean.sh
│   ├── get-plugin-library-version-number
│   ├── ginsu.cmd
│   ├── ginsu.sh
│   ├── lazy.cmd
│   ├── lazy.sh
│   ├── npm-publish.sh
│   ├── optimise-svgs.js
│   ├── quick-bld.sh
│   ├── readme-bld.sh
│   ├── readme.md
│   ├── serve.cmd
│   ├── serve.sh
│   ├── tankbld.cmd
│   ├── tankbld.sh
│   ├── test.cmd
│   ├── test.sh
│   ├── update-translation-from-html-file.sh
│   └── verbump.sh
├── boot/
│   ├── boot.css.tid
│   ├── boot.js
│   ├── bootprefix.js
│   ├── sjcl.js
│   └── tiddlywiki.files
├── code-of-conduct.md
├── community/
│   ├── docs/
│   │   ├── Community Cards Caveats.tid
│   │   ├── Community Cards.tid
│   │   ├── Displaying Community Cards.tid
│   │   └── Submitting a Community Card.tid
│   ├── people/
│   │   ├── Arlen22.tid
│   │   ├── ChristianByron.tid
│   │   ├── EricShulman.tid
│   │   ├── Jermolene.tid
│   │   ├── LinOnetwo.tid
│   │   ├── MotovunJack.tid
│   │   ├── PMario.tid
│   │   ├── SaqImtiaz.tid
│   │   └── kjharcombe.tid
│   ├── project/
│   │   ├── TiddlyWiki People.tid
│   │   ├── TiddlyWiki Project.tid
│   │   ├── Vacant Positions.tid
│   │   └── teams/
│   │       ├── Core Team.tid
│   │       ├── Developer Experience Team.tid
│   │       ├── Infrastructure Team.tid
│   │       ├── MultiWikiServer Team.tid
│   │       ├── Project Team.tid
│   │       ├── Quality Assurance Team.tid
│   │       ├── Succession Team.tid
│   │       ├── TiddlyWiki Newsletter Team.tid
│   │       └── tagCommunityTeam.tid
│   ├── readme.md
│   └── tools/
│       ├── cards/
│       │   ├── DefaultColourMappings.multids
│       │   ├── Procedures.tid
│       │   ├── Styles.tid
│       │   ├── ViewTemplateBodyCascade.tid
│       │   ├── ViewTemplateBodyTemplatePerson.tid
│       │   └── ViewTemplateBodyTemplateTeam.tid
│       └── icons/
│           ├── person.tid
│           ├── project-team.tid
│           └── team.tid
├── contributing.md
├── core/
│   ├── acknowledgements.tid
│   ├── copyright.tid
│   ├── icon.tid
│   ├── images/
│   │   ├── add-comment.tid
│   │   ├── advanced-search-button.tid
│   │   ├── auto-height.tid
│   │   ├── blank.tid
│   │   ├── bold.tid
│   │   ├── cancel-button.tid
│   │   ├── chevron-down.tid
│   │   ├── chevron-left.tid
│   │   ├── chevron-right.tid
│   │   ├── chevron-up.tid
│   │   ├── clone-button.tid
│   │   ├── close-all-button.tid
│   │   ├── close-button.tid
│   │   ├── close-others-button.tid
│   │   ├── copy-clipboard.tid
│   │   ├── delete-button.tid
│   │   ├── discord.tid
│   │   ├── done-button.tid
│   │   ├── down-arrow.tid
│   │   ├── download-button.tid
│   │   ├── edit-button.tid
│   │   ├── erase.tid
│   │   ├── excise.tid
│   │   ├── export-button.tid
│   │   ├── file.tid
│   │   ├── fixed-height.tid
│   │   ├── fold-all-button.tid
│   │   ├── fold-button.tid
│   │   ├── fold-others-button.tid
│   │   ├── folder.tid
│   │   ├── full-screen-button.tid
│   │   ├── github.tid
│   │   ├── gitter.tid
│   │   ├── globe.tid
│   │   ├── heading-1.tid
│   │   ├── heading-2.tid
│   │   ├── heading-3.tid
│   │   ├── heading-4.tid
│   │   ├── heading-5.tid
│   │   ├── heading-6.tid
│   │   ├── help.tid
│   │   ├── home-button.tid
│   │   ├── import-button.tid
│   │   ├── info-button.tid
│   │   ├── input-button.tid
│   │   ├── italic.tid
│   │   ├── language.tid
│   │   ├── layout-button.tid
│   │   ├── left-arrow.tid
│   │   ├── line-width.tid
│   │   ├── link.tid
│   │   ├── linkify.tid
│   │   ├── list-bullet.tid
│   │   ├── list-number.tid
│   │   ├── list.tid
│   │   ├── locked-padlock.tid
│   │   ├── mail.tid
│   │   ├── mastodon.tid
│   │   ├── menu-button.tid
│   │   ├── minus-button.tid
│   │   ├── mono-block.tid
│   │   ├── mono-line.tid
│   │   ├── network-activity.tid
│   │   ├── new-button.tid
│   │   ├── new-here-button.tid
│   │   ├── new-image-button.tid
│   │   ├── new-journal-button.tid
│   │   ├── opacity.tid
│   │   ├── open-window.tid
│   │   ├── options-button.tid
│   │   ├── paint.tid
│   │   ├── palette.tid
│   │   ├── permalink-button.tid
│   │   ├── permaview-button.tid
│   │   ├── picture.tid
│   │   ├── plugin-generic-language.tid
│   │   ├── plugin-generic-plugin.tid
│   │   ├── plugin-generic-theme.tid
│   │   ├── plus-button.tid
│   │   ├── preview-closed.tid
│   │   ├── preview-open.tid
│   │   ├── print-button.tid
│   │   ├── quote.tid
│   │   ├── refresh-button.tid
│   │   ├── right-arrow.tid
│   │   ├── rotate-left.tid
│   │   ├── save-button-dynamic.tid
│   │   ├── save-button.tid
│   │   ├── size.tid
│   │   ├── spiral.tid
│   │   ├── stamp.tid
│   │   ├── standard-layout.tid
│   │   ├── star-filled.tid
│   │   ├── storyview-classic.tid
│   │   ├── storyview-pop.tid
│   │   ├── storyview-zoomin.tid
│   │   ├── strikethrough.tid
│   │   ├── subscript.tid
│   │   ├── superscript.tid
│   │   ├── tag-button.tid
│   │   ├── theme-button.tid
│   │   ├── timestamp-off.tid
│   │   ├── timestamp-on.tid
│   │   ├── tip.tid
│   │   ├── transcludify.tid
│   │   ├── twitter.tid
│   │   ├── underline.tid
│   │   ├── unfold-all-button.tid
│   │   ├── unfold-button.tid
│   │   ├── unlocked-padlock.tid
│   │   ├── up-arrow.tid
│   │   ├── video.tid
│   │   └── warning.tid
│   ├── language/
│   │   ├── en-GB/
│   │   │   ├── Buttons.multids
│   │   │   ├── ControlPanel.multids
│   │   │   ├── Dates.multids
│   │   │   ├── Docs/
│   │   │   │   ├── ModuleTypes.multids
│   │   │   │   └── PaletteColours.multids
│   │   │   ├── Draft.multids
│   │   │   ├── EditTemplate.multids
│   │   │   ├── Exporters.multids
│   │   │   ├── Fields.multids
│   │   │   ├── Filters.multids
│   │   │   ├── GettingStarted.tid
│   │   │   ├── Help/
│   │   │   │   ├── build.tid
│   │   │   │   ├── clearpassword.tid
│   │   │   │   ├── commands.tid
│   │   │   │   ├── default.tid
│   │   │   │   ├── deletetiddlers.tid
│   │   │   │   ├── editions.tid
│   │   │   │   ├── fetch.tid
│   │   │   │   ├── help.tid
│   │   │   │   ├── import.tid
│   │   │   │   ├── init.tid
│   │   │   │   ├── listen.tid
│   │   │   │   ├── load.tid
│   │   │   │   ├── makelibrary.tid
│   │   │   │   ├── notfound.tid
│   │   │   │   ├── output.tid
│   │   │   │   ├── password.tid
│   │   │   │   ├── render.tid
│   │   │   │   ├── rendertiddler.tid
│   │   │   │   ├── rendertiddlers.tid
│   │   │   │   ├── save.tid
│   │   │   │   ├── savetiddler.tid
│   │   │   │   ├── savetiddlers.tid
│   │   │   │   ├── savewikifolder.tid
│   │   │   │   ├── server.tid
│   │   │   │   ├── setfield.tid
│   │   │   │   ├── unpackplugin.tid
│   │   │   │   ├── verbose.tid
│   │   │   │   └── version.tid
│   │   │   ├── Import.multids
│   │   │   ├── Misc.multids
│   │   │   ├── Modals/
│   │   │   │   └── Download.tid
│   │   │   ├── NewJournal.multids
│   │   │   ├── NewJournalTags.tid
│   │   │   ├── Notifications.multids
│   │   │   ├── Search.multids
│   │   │   ├── SideBar.multids
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── Snippets/
│   │   │   │   ├── FunctionDefinition.tid
│   │   │   │   ├── ListByTag.tid
│   │   │   │   ├── MacroDefinition.tid
│   │   │   │   ├── ProcedureDefinition.tid
│   │   │   │   ├── Table 4x3.tid
│   │   │   │   └── TableOfContents.tid
│   │   │   ├── ThemeTweaks.multids
│   │   │   ├── TiddlerInfo.multids
│   │   │   └── Types/
│   │   │       ├── application_javascript.tid
│   │   │       ├── application_json.tid
│   │   │       ├── application_x_tiddler_dictionary.tid
│   │   │       ├── image_gif.tid
│   │   │       ├── image_jpeg.tid
│   │   │       ├── image_png.tid
│   │   │       ├── image_svg_xml.tid
│   │   │       ├── text_css.tid
│   │   │       ├── text_html.tid
│   │   │       ├── text_plain.tid
│   │   │       ├── text_vnd.tiddlywiki.tid
│   │   │       └── text_vnd.tiddlywiki_multiple.tid
│   │   └── en-GB.tid
│   ├── modules/
│   │   ├── background-actions.js
│   │   ├── config.js
│   │   ├── deserializers.js
│   │   ├── editor/
│   │   │   ├── engines/
│   │   │   │   ├── framed.js
│   │   │   │   └── simple.js
│   │   │   ├── factory.js
│   │   │   └── operations/
│   │   │       ├── bitmap/
│   │   │       │   ├── clear.js
│   │   │       │   ├── resize.js
│   │   │       │   └── rotate-left.js
│   │   │       └── text/
│   │   │           ├── excise.js
│   │   │           ├── focus-editor.js
│   │   │           ├── insert-text.js
│   │   │           ├── make-link.js
│   │   │           ├── prefix-lines.js
│   │   │           ├── replace-all.js
│   │   │           ├── replace-selection.js
│   │   │           ├── save-selection.js
│   │   │           ├── wrap-lines.js
│   │   │           └── wrap-selection.js
│   │   ├── filter-tracker.js
│   │   ├── filterrunprefixes/
│   │   │   ├── all.js
│   │   │   ├── and.js
│   │   │   ├── cascade.js
│   │   │   ├── else.js
│   │   │   ├── except.js
│   │   │   ├── filter.js
│   │   │   ├── intersection.js
│   │   │   ├── let.js
│   │   │   ├── map.js
│   │   │   ├── or.js
│   │   │   ├── reduce.js
│   │   │   ├── sort.js
│   │   │   └── then.js
│   │   ├── filters/
│   │   │   ├── addprefix.js
│   │   │   ├── addsuffix.js
│   │   │   ├── after.js
│   │   │   ├── all/
│   │   │   │   ├── current.js
│   │   │   │   ├── missing.js
│   │   │   │   ├── orphans.js
│   │   │   │   ├── shadows.js
│   │   │   │   ├── tags.js
│   │   │   │   └── tiddlers.js
│   │   │   ├── all.js
│   │   │   ├── backlinks.js
│   │   │   ├── backtranscludes.js
│   │   │   ├── before.js
│   │   │   ├── commands.js
│   │   │   ├── compare.js
│   │   │   ├── contains.js
│   │   │   ├── count.js
│   │   │   ├── crypto.js
│   │   │   ├── days.js
│   │   │   ├── deserialize.js
│   │   │   ├── deserializers.js
│   │   │   ├── duplicateslugs.js
│   │   │   ├── each.js
│   │   │   ├── eachday.js
│   │   │   ├── editiondescription.js
│   │   │   ├── editions.js
│   │   │   ├── else.js
│   │   │   ├── encodings.js
│   │   │   ├── enlist.js
│   │   │   ├── field.js
│   │   │   ├── fields.js
│   │   │   ├── filter.js
│   │   │   ├── format/
│   │   │   │   ├── date.js
│   │   │   │   ├── json.js
│   │   │   │   ├── relativedate.js
│   │   │   │   ├── timestamp.js
│   │   │   │   └── titlelist.js
│   │   │   ├── format.js
│   │   │   ├── function.js
│   │   │   ├── get.js
│   │   │   ├── getindex.js
│   │   │   ├── getvariable.js
│   │   │   ├── has.js
│   │   │   ├── haschanged.js
│   │   │   ├── indexes.js
│   │   │   ├── insertafter.js
│   │   │   ├── insertbefore.js
│   │   │   ├── is/
│   │   │   │   ├── binary.js
│   │   │   │   ├── blank.js
│   │   │   │   ├── current.js
│   │   │   │   ├── draft.js
│   │   │   │   ├── image.js
│   │   │   │   ├── missing.js
│   │   │   │   ├── orphan.js
│   │   │   │   ├── shadow.js
│   │   │   │   ├── system.js
│   │   │   │   ├── tag.js
│   │   │   │   ├── tiddler.js
│   │   │   │   └── variable.js
│   │   │   ├── is.js
│   │   │   ├── json-ops.js
│   │   │   ├── limit.js
│   │   │   ├── links.js
│   │   │   ├── list.js
│   │   │   ├── listed.js
│   │   │   ├── listops.js
│   │   │   ├── lookup.js
│   │   │   ├── match.js
│   │   │   ├── math.js
│   │   │   ├── minlength.js
│   │   │   ├── moduleproperty.js
│   │   │   ├── modules.js
│   │   │   ├── moduletypes.js
│   │   │   ├── next.js
│   │   │   ├── plugintiddlers.js
│   │   │   ├── prefix.js
│   │   │   ├── previous.js
│   │   │   ├── range.js
│   │   │   ├── reduce.js
│   │   │   ├── regexp.js
│   │   │   ├── removeprefix.js
│   │   │   ├── removesuffix.js
│   │   │   ├── sameday.js
│   │   │   ├── search.js
│   │   │   ├── shadowsource.js
│   │   │   ├── slugify.js
│   │   │   ├── sort.js
│   │   │   ├── sortsub.js
│   │   │   ├── splitbefore.js
│   │   │   ├── storyviews.js
│   │   │   ├── strings.js
│   │   │   ├── subfilter.js
│   │   │   ├── substitute.js
│   │   │   ├── subtiddlerfields.js
│   │   │   ├── suffix.js
│   │   │   ├── tag.js
│   │   │   ├── tagging.js
│   │   │   ├── tags.js
│   │   │   ├── then.js
│   │   │   ├── title.js
│   │   │   ├── transcludes.js
│   │   │   ├── unknown.js
│   │   │   ├── untagged.js
│   │   │   ├── variables.js
│   │   │   ├── wikiparserrules.js
│   │   │   └── x-listops.js
│   │   ├── filters.js
│   │   ├── indexers/
│   │   │   ├── back-indexer.js
│   │   │   ├── field-indexer.js
│   │   │   └── tag-indexer.js
│   │   ├── info/
│   │   │   ├── dimensions.js
│   │   │   ├── mediaquerytracker.js
│   │   │   └── platform.js
│   │   ├── keyboard.js
│   │   ├── language.js
│   │   ├── macros/
│   │   │   ├── changecount.js
│   │   │   ├── contrastcolour.js
│   │   │   ├── csvtiddlers.js
│   │   │   ├── displayshortcuts.js
│   │   │   ├── jsontiddler.js
│   │   │   ├── jsontiddlers.js
│   │   │   ├── makedatauri.js
│   │   │   ├── now.js
│   │   │   ├── qualify.js
│   │   │   ├── resolvepath.js
│   │   │   ├── unusedtitle.js
│   │   │   └── version.js
│   │   ├── parsers/
│   │   │   ├── audioparser.js
│   │   │   ├── binaryparser.js
│   │   │   ├── csvparser.js
│   │   │   ├── htmlparser.js
│   │   │   ├── imageparser.js
│   │   │   ├── parseutils.js
│   │   │   ├── pdfparser.js
│   │   │   ├── textparser.js
│   │   │   ├── videoparser.js
│   │   │   └── wikiparser/
│   │   │       ├── rules/
│   │   │       │   ├── codeblock.js
│   │   │       │   ├── codeinline.js
│   │   │       │   ├── commentblock.js
│   │   │       │   ├── commentinline.js
│   │   │       │   ├── conditional.js
│   │   │       │   ├── dash.js
│   │   │       │   ├── emphasis/
│   │   │       │   │   ├── bold.js
│   │   │       │   │   ├── italic.js
│   │   │       │   │   ├── strikethrough.js
│   │   │       │   │   ├── subscript.js
│   │   │       │   │   ├── superscript.js
│   │   │       │   │   └── underscore.js
│   │   │       │   ├── entity.js
│   │   │       │   ├── extlink.js
│   │   │       │   ├── filteredtranscludeblock.js
│   │   │       │   ├── filteredtranscludeinline.js
│   │   │       │   ├── fnprocdef.js
│   │   │       │   ├── hardlinebreaks.js
│   │   │       │   ├── heading.js
│   │   │       │   ├── horizrule.js
│   │   │       │   ├── html.js
│   │   │       │   ├── image.js
│   │   │       │   ├── import.js
│   │   │       │   ├── list.js
│   │   │       │   ├── macrocallblock.js
│   │   │       │   ├── macrocallinline.js
│   │   │       │   ├── macrodef.js
│   │   │       │   ├── mvvdisplayinline.js
│   │   │       │   ├── parameters.js
│   │   │       │   ├── parsermode.js
│   │   │       │   ├── prettyextlink.js
│   │   │       │   ├── prettylink.js
│   │   │       │   ├── quoteblock.js
│   │   │       │   ├── rules.js
│   │   │       │   ├── styleblock.js
│   │   │       │   ├── styleinline.js
│   │   │       │   ├── syslink.js
│   │   │       │   ├── table.js
│   │   │       │   ├── transcludeblock.js
│   │   │       │   ├── transcludeinline.js
│   │   │       │   ├── typedblock.js
│   │   │       │   ├── whitespace.js
│   │   │       │   ├── wikilink.js
│   │   │       │   └── wikilinkprefix.js
│   │   │       ├── wikiparser.js
│   │   │       └── wikirulebase.js
│   │   ├── pluginswitcher.js
│   │   ├── saver-handler.js
│   │   ├── savers/
│   │   │   ├── andtidwiki.js
│   │   │   ├── custom.js
│   │   │   ├── download.js
│   │   │   ├── fsosaver.js
│   │   │   ├── gitea.js
│   │   │   ├── github.js
│   │   │   ├── gitlab.js
│   │   │   ├── manualdownload.js
│   │   │   ├── msdownload.js
│   │   │   ├── postmessage.js
│   │   │   ├── put.js
│   │   │   ├── tiddlyfox.js
│   │   │   ├── tiddlyie.js
│   │   │   ├── twedit.js
│   │   │   └── upload.js
│   │   ├── startup/
│   │   │   ├── browser-messaging.js
│   │   │   ├── eventbus.js
│   │   │   ├── favicon.js
│   │   │   ├── info.js
│   │   │   ├── load-modules.js
│   │   │   ├── password.js
│   │   │   ├── plugins.js
│   │   │   ├── render.js
│   │   │   ├── rootwidget.js
│   │   │   ├── startup.js
│   │   │   ├── story.js
│   │   │   └── windows.js
│   │   ├── story.js
│   │   ├── storyviews/
│   │   │   ├── classic.js
│   │   │   ├── pop.js
│   │   │   └── zoomin.js
│   │   ├── syncer.js
│   │   ├── tiddler.js
│   │   ├── upgraders/
│   │   │   ├── plugins.js
│   │   │   ├── system.js
│   │   │   └── themetweaks.js
│   │   ├── utils/
│   │   │   ├── base64.js
│   │   │   ├── crypto.js
│   │   │   ├── csv.js
│   │   │   ├── deprecated.js
│   │   │   ├── diff-match-patch/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── README.md
│   │   │   │   ├── diff_match_patch.js
│   │   │   │   ├── diff_match_patch_uncompressed.js
│   │   │   │   └── tiddlywiki.files
│   │   │   ├── dom/
│   │   │   │   ├── animations/
│   │   │   │   │   └── slide.js
│   │   │   │   ├── animator.js
│   │   │   │   ├── browser.js
│   │   │   │   ├── csscolorparser.js
│   │   │   │   ├── csscolorparser.js.meta
│   │   │   │   ├── dom.js
│   │   │   │   ├── dragndrop.js
│   │   │   │   ├── http.js
│   │   │   │   ├── keyboard.js
│   │   │   │   ├── modal.js
│   │   │   │   ├── notifier.js
│   │   │   │   ├── popup.js
│   │   │   │   └── scroller.js
│   │   │   ├── errors.js
│   │   │   ├── escapecss.js
│   │   │   ├── fakedom.js
│   │   │   ├── linked-list.js
│   │   │   ├── logger.js
│   │   │   ├── messaging.js
│   │   │   ├── parsetree.js
│   │   │   ├── performance.js
│   │   │   ├── pluginmaker.js
│   │   │   ├── transliterate.js
│   │   │   └── utils.js
│   │   ├── widgets/
│   │   │   ├── action-confirm.js
│   │   │   ├── action-createtiddler.js
│   │   │   ├── action-deletefield.js
│   │   │   ├── action-deletetiddler.js
│   │   │   ├── action-listops.js
│   │   │   ├── action-log.js
│   │   │   ├── action-navigate.js
│   │   │   ├── action-popup.js
│   │   │   ├── action-sendmessage.js
│   │   │   ├── action-setfield.js
│   │   │   ├── action-setmultiplefields.js
│   │   │   ├── audio.js
│   │   │   ├── browse.js
│   │   │   ├── button.js
│   │   │   ├── checkbox.js
│   │   │   ├── codeblock.js
│   │   │   ├── count.js
│   │   │   ├── data.js
│   │   │   ├── diff-text.js
│   │   │   ├── draggable.js
│   │   │   ├── droppable.js
│   │   │   ├── dropzone.js
│   │   │   ├── edit-binary.js
│   │   │   ├── edit-bitmap.js
│   │   │   ├── edit-shortcut.js
│   │   │   ├── edit-text.js
│   │   │   ├── edit.js
│   │   │   ├── element.js
│   │   │   ├── encrypt.js
│   │   │   ├── entity.js
│   │   │   ├── error.js
│   │   │   ├── eventcatcher.js
│   │   │   ├── fieldmangler.js
│   │   │   ├── fields.js
│   │   │   ├── fill.js
│   │   │   ├── genesis.js
│   │   │   ├── image.js
│   │   │   ├── importvariables.js
│   │   │   ├── jsontiddler.js
│   │   │   ├── keyboard.js
│   │   │   ├── let.js
│   │   │   ├── link.js
│   │   │   ├── linkcatcher.js
│   │   │   ├── list.js
│   │   │   ├── log.js
│   │   │   ├── macrocall.js
│   │   │   ├── messagecatcher.js
│   │   │   ├── navigator.js
│   │   │   ├── parameters.js
│   │   │   ├── password.js
│   │   │   ├── qualify.js
│   │   │   ├── radio.js
│   │   │   ├── range.js
│   │   │   ├── raw.js
│   │   │   ├── reveal.js
│   │   │   ├── scrollable.js
│   │   │   ├── select.js
│   │   │   ├── setmultiplevariables.js
│   │   │   ├── setvariable.js
│   │   │   ├── slot.js
│   │   │   ├── testcase.js
│   │   │   ├── text.js
│   │   │   ├── tiddler.js
│   │   │   ├── transclude.js
│   │   │   ├── vars.js
│   │   │   ├── view.js
│   │   │   ├── void.js
│   │   │   ├── widget.js
│   │   │   └── wikify.js
│   │   ├── wiki-bulkops.js
│   │   └── wiki.js
│   ├── palettes/
│   │   ├── Blanca.tid
│   │   ├── Blue.tid
│   │   ├── BrightMute.tid
│   │   ├── ContrastDark.tid
│   │   ├── ContrastLight.tid
│   │   ├── CupertinoDark.tid
│   │   ├── DarkPhotos.tid
│   │   ├── DesertSand.tid
│   │   ├── FlexokiDark.tid
│   │   ├── FlexokiLight.tid
│   │   ├── GruvBoxDark.tid
│   │   ├── Nord.tid
│   │   ├── Rocker.tid
│   │   ├── SolarFlare.tid
│   │   ├── SolarizedDark.tid
│   │   ├── SolarizedLight.tid
│   │   ├── SpartanDay.tid
│   │   ├── SpartanNight.tid
│   │   ├── Twilight.tid
│   │   └── Vanilla.tid
│   ├── plugin.info
│   ├── readme.tid
│   ├── sjcl-license.tid
│   ├── stylesheets/
│   │   └── custom-properties.tid
│   ├── templates/
│   │   ├── MOTW.html.tid
│   │   ├── alltiddlers.template.html.tid
│   │   ├── canonical-uri-external-image.tid
│   │   ├── canonical-uri-external-raw.tid
│   │   ├── canonical-uri-external-text.tid
│   │   ├── css-tiddler.tid
│   │   ├── exporters/
│   │   │   ├── CsvFile.tid
│   │   │   ├── JsonFile.tid
│   │   │   ├── StaticRiver.tid
│   │   │   ├── StaticRiverContent.tid
│   │   │   └── TidFile.tid
│   │   ├── external-js/
│   │   │   ├── save-all-external-js.tid
│   │   │   ├── save-offline-external-js.tid
│   │   │   ├── tiddlywiki.js.load.tid
│   │   │   ├── tiddlywiki.js.tid
│   │   │   ├── tiddlywiki.js.tiddlers.tid
│   │   │   └── tiddlywiki5-external-js.html.tid
│   │   ├── html-div-skinny-tiddler.tid
│   │   ├── html-div-tiddler.tid
│   │   ├── html-json-skinny-tiddler.tid
│   │   ├── html-json-tiddler.tid
│   │   ├── html-tiddler.tid
│   │   ├── javascript-tiddler.tid
│   │   ├── json-tiddler.tid
│   │   ├── module-tiddler.tid
│   │   ├── plain-text-tiddler.tid
│   │   ├── raw-static-tiddler.tid
│   │   ├── save-all.tid
│   │   ├── save-empty.tid
│   │   ├── save-lazy-all.tid
│   │   ├── save-lazy-images.tid
│   │   ├── server/
│   │   │   ├── static.sidebar.wikitext.tid
│   │   │   ├── static.tiddler.html.tid
│   │   │   └── static.tiddler.wikitext.tid
│   │   ├── single.tiddler.window.tid
│   │   ├── social-metadata.tid
│   │   ├── split-recipe.tid
│   │   ├── static-tiddler.tid
│   │   ├── static.area.tid
│   │   ├── static.content.tid
│   │   ├── static.template.css.tid
│   │   ├── static.template.html.tid
│   │   ├── static.tiddler.html.tid
│   │   ├── store.area.template.html.tid
│   │   ├── tid-tiddler.tid
│   │   ├── tiddler-metadata.tid
│   │   ├── tiddlywiki5.html.tid
│   │   ├── version.tid
│   │   └── wikified-tiddler.tid
│   ├── ui/
│   │   ├── AboveStory/
│   │   │   └── tw2-plugin-check.tid
│   │   ├── Actions/
│   │   │   ├── new-image.tid
│   │   │   ├── new-journal.tid
│   │   │   └── new-tiddler.tid
│   │   ├── AdvancedSearch/
│   │   │   ├── Filter.tid
│   │   │   ├── FilterButtons/
│   │   │   │   ├── clear.tid
│   │   │   │   ├── delete.tid
│   │   │   │   ├── dropdown.tid
│   │   │   │   └── export.tid
│   │   │   ├── Shadows.tid
│   │   │   ├── Standard.tid
│   │   │   └── System.tid
│   │   ├── AdvancedSearch.tid
│   │   ├── AlertTemplate.tid
│   │   ├── BinaryWarning.tid
│   │   ├── Components/
│   │   │   ├── VisibleTransclude.tid
│   │   │   ├── plugin-info.tid
│   │   │   └── tag-link.tid
│   │   ├── ControlPanel/
│   │   │   ├── Advanced.tid
│   │   │   ├── Appearance.tid
│   │   │   ├── Basics/
│   │   │   │   └── retain-story-ordering-button.tid
│   │   │   ├── Basics.tid
│   │   │   ├── Cascades/
│   │   │   │   ├── EditTemplateBody.tid
│   │   │   │   ├── FieldEditor.tid
│   │   │   │   ├── StoryTiddler.tid
│   │   │   │   ├── TiddlerColour.tid
│   │   │   │   ├── TiddlerIcon.tid
│   │   │   │   ├── ViewTemplateBody.tid
│   │   │   │   ├── ViewTemplateSubtitle.tid
│   │   │   │   ├── ViewTemplateTags.tid
│   │   │   │   └── ViewTemplateTitle.tid
│   │   │   ├── Cascades.tid
│   │   │   ├── EditorTypes.tid
│   │   │   ├── Info.tid
│   │   │   ├── KeyboardShortcuts.tid
│   │   │   ├── LoadedModules.tid
│   │   │   ├── Modals/
│   │   │   │   └── AddPlugins.tid
│   │   │   ├── Palette.tid
│   │   │   ├── Parsing.tid
│   │   │   ├── Plugins/
│   │   │   │   ├── Add/
│   │   │   │   │   ├── Languages.tid
│   │   │   │   │   ├── Plugins.tid
│   │   │   │   │   ├── Themes.tid
│   │   │   │   │   └── Updates.tid
│   │   │   │   ├── AddPlugins.tid
│   │   │   │   └── Installed/
│   │   │   │       ├── Languages.tid
│   │   │   │       ├── Plugins.tid
│   │   │   │       └── Themes.tid
│   │   │   ├── Plugins.tid
│   │   │   ├── Saving/
│   │   │   │   ├── DownloadSaver.tid
│   │   │   │   ├── General.tid
│   │   │   │   ├── GitHub.tid
│   │   │   │   ├── GitLab.tid
│   │   │   │   ├── TiddlySpot.tid
│   │   │   │   └── gitea.tid
│   │   │   ├── Saving.tid
│   │   │   ├── Settings/
│   │   │   │   ├── ButtonStyles/
│   │   │   │   │   ├── Borderless.tid
│   │   │   │   │   ├── Boxed.tid
│   │   │   │   │   └── Rounded.tid
│   │   │   │   ├── CamelCase.tid
│   │   │   │   ├── DefaultMoreSidebarTab.tid
│   │   │   │   ├── DefaultSidebarTab.tid
│   │   │   │   ├── DefaultTiddlerInfoTab.tid
│   │   │   │   ├── EditorToolbar.tid
│   │   │   │   ├── InfoPanelMode.tid
│   │   │   │   ├── LinkToBehaviour.tid
│   │   │   │   ├── MissingLinks.tid
│   │   │   │   ├── NavigationAddressBar.tid
│   │   │   │   ├── NavigationHistory.tid
│   │   │   │   ├── NavigationPermalinkviewMode.tid
│   │   │   │   ├── PerformanceInstrumentation.tid
│   │   │   │   ├── RecentLimit.tid
│   │   │   │   ├── TitleLinks.tid
│   │   │   │   ├── ToolbarButtonStyle.tid
│   │   │   │   └── ToolbarButtons.tid
│   │   │   ├── Settings.tid
│   │   │   ├── SocialCard.tid
│   │   │   ├── StoryView.tid
│   │   │   ├── Stylesheets.tid
│   │   │   ├── TestCases.tid
│   │   │   ├── TestCasesAll.tid
│   │   │   ├── TestCasesFailed.tid
│   │   │   ├── Theme.tid
│   │   │   ├── TiddlerFields.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   ├── Toolbars/
│   │   │   │   ├── EditToolbar.tid
│   │   │   │   ├── EditorItemTemplate.tid
│   │   │   │   ├── EditorToolbar.tid
│   │   │   │   ├── ItemTemplate.tid
│   │   │   │   ├── PageControls.tid
│   │   │   │   └── ViewToolbar.tid
│   │   │   └── Toolbars.tid
│   │   ├── ControlPanel.tid
│   │   ├── DefaultSearchResultList.tid
│   │   ├── DownloadFullWiki.tid
│   │   ├── EditTemplate/
│   │   │   ├── Preview/
│   │   │   │   ├── diffs-current.tid
│   │   │   │   ├── diffs-shadow.tid
│   │   │   │   ├── output.tid
│   │   │   │   └── showeditpreview.tid
│   │   │   ├── body/
│   │   │   │   ├── canonical-uri.tid
│   │   │   │   └── default.tid
│   │   │   ├── body-editor.tid
│   │   │   ├── body-toolbar-button.tid
│   │   │   ├── body.tid
│   │   │   ├── controls.tid
│   │   │   ├── fieldEditor-default.tid
│   │   │   ├── fields.tid
│   │   │   ├── shadow.tid
│   │   │   ├── tags.tid
│   │   │   ├── title.tid
│   │   │   └── type.tid
│   │   ├── EditTemplate.tid
│   │   ├── EditToolbar/
│   │   │   ├── cancel.tid
│   │   │   ├── delete.tid
│   │   │   └── save.tid
│   │   ├── EditorToolbar/
│   │   │   ├── bold.tid
│   │   │   ├── clear-dropdown.tid
│   │   │   ├── clear.tid
│   │   │   ├── editor-height-dropdown.tid
│   │   │   ├── editor-height.tid
│   │   │   ├── excise-dropdown.tid
│   │   │   ├── excise.tid
│   │   │   ├── file-import.tid
│   │   │   ├── heading-1.tid
│   │   │   ├── heading-2.tid
│   │   │   ├── heading-3.tid
│   │   │   ├── heading-4.tid
│   │   │   ├── heading-5.tid
│   │   │   ├── heading-6.tid
│   │   │   ├── italic.tid
│   │   │   ├── line-width-dropdown.tid
│   │   │   ├── line-width.tid
│   │   │   ├── link-dropdown.tid
│   │   │   ├── link.tid
│   │   │   ├── linkify.tid
│   │   │   ├── list-bullet.tid
│   │   │   ├── list-number.tid
│   │   │   ├── mono-block.tid
│   │   │   ├── mono-line.tid
│   │   │   ├── more-dropdown.tid
│   │   │   ├── more.tid
│   │   │   ├── opacity-dropdown.tid
│   │   │   ├── opacity.tid
│   │   │   ├── paint-dropdown.tid
│   │   │   ├── paint.tid
│   │   │   ├── picture-dropdown.tid
│   │   │   ├── picture.tid
│   │   │   ├── preview-type-dropdown.tid
│   │   │   ├── preview-type.tid
│   │   │   ├── preview.tid
│   │   │   ├── quote.tid
│   │   │   ├── rotate-left.tid
│   │   │   ├── size-dropdown.tid
│   │   │   ├── size.tid
│   │   │   ├── stamp-dropdown-item-template.tid
│   │   │   ├── stamp-dropdown.tid
│   │   │   ├── stamp.tid
│   │   │   ├── strikethrough.tid
│   │   │   ├── subscript.tid
│   │   │   ├── superscript.tid
│   │   │   ├── transcludify.tid
│   │   │   └── underline.tid
│   │   ├── ExportTiddlyWikiCore.tid
│   │   ├── Filters/
│   │   │   ├── AllTags.tid
│   │   │   ├── AllTiddlers.tid
│   │   │   ├── Drafts.tid
│   │   │   ├── Missing.tid
│   │   │   ├── Orphans.tid
│   │   │   ├── OverriddenShadowTiddlers.tid
│   │   │   ├── RecentSystemTiddlers.tid
│   │   │   ├── RecentTiddlers.tid
│   │   │   ├── SessionTiddlers.tid
│   │   │   ├── ShadowTiddlers.tid
│   │   │   ├── StoryList.tid
│   │   │   ├── SystemTags.tid
│   │   │   ├── SystemTiddlers.tid
│   │   │   └── TypedTiddlers.tid
│   │   ├── ImportListing.tid
│   │   ├── ImportPreviews/
│   │   │   ├── Diff.tid
│   │   │   ├── DiffFields.tid
│   │   │   ├── Fields.tid
│   │   │   ├── Text.tid
│   │   │   └── TextRaw.tid
│   │   ├── KeyboardShortcuts/
│   │   │   ├── advanced-search.tid
│   │   │   ├── change-sidebar-layout.tid
│   │   │   ├── new-image.tid
│   │   │   ├── new-journal.tid
│   │   │   ├── new-tiddler.tid
│   │   │   ├── open-control-panel.tid
│   │   │   ├── refresh.tid
│   │   │   ├── save-wiki.tid
│   │   │   ├── sidebar-search.tid
│   │   │   ├── switcher.tid
│   │   │   └── toggle-sidebar.tid
│   │   ├── LayoutSwitcher.tid
│   │   ├── ListItemTemplate.tid
│   │   ├── ListTaggedCascade.tid
│   │   ├── Manager/
│   │   │   ├── ItemMainFields.tid
│   │   │   ├── ItemMainRawText.tid
│   │   │   ├── ItemMainWikifiedText.tid
│   │   │   ├── ItemSidebarColour.tid
│   │   │   ├── ItemSidebarIcon.tid
│   │   │   ├── ItemSidebarTags.tid
│   │   │   └── ItemSidebarTools.tid
│   │   ├── Manager.tid
│   │   ├── MissingTemplate.tid
│   │   ├── MoreSideBar/
│   │   │   ├── All.tid
│   │   │   ├── Drafts.tid
│   │   │   ├── Explorer.tid
│   │   │   ├── Missing.tid
│   │   │   ├── Orphans.tid
│   │   │   ├── Plugins.tid
│   │   │   ├── Recent.tid
│   │   │   ├── Shadows.tid
│   │   │   ├── System.tid
│   │   │   ├── Tags.tid
│   │   │   ├── Types.tid
│   │   │   └── plugins/
│   │   │       ├── Languages.tid
│   │   │       ├── Plugins.tid
│   │   │       └── Theme.tid
│   │   ├── PageControls/
│   │   │   ├── advanced-search.tid
│   │   │   ├── closeall.tid
│   │   │   ├── controlpanel.tid
│   │   │   ├── encryption.tid
│   │   │   ├── export-page.tid
│   │   │   ├── export-tiddlywikicore.tid
│   │   │   ├── fold-all.tid
│   │   │   ├── full-screen.tid
│   │   │   ├── home.tid
│   │   │   ├── import.tid
│   │   │   ├── language.tid
│   │   │   ├── layout.tid
│   │   │   ├── manager.tid
│   │   │   ├── more-page-actions.tid
│   │   │   ├── network-activity.tid
│   │   │   ├── new-image.tid
│   │   │   ├── new-journal.tid
│   │   │   ├── newtiddler.tid
│   │   │   ├── palette.tid
│   │   │   ├── print.tid
│   │   │   ├── refresh.tid
│   │   │   ├── savewiki.tid
│   │   │   ├── storyview.tid
│   │   │   ├── tag-button.tid
│   │   │   ├── theme.tid
│   │   │   ├── timestamp.tid
│   │   │   └── unfold-all.tid
│   │   ├── PageControls.tid
│   │   ├── PageStylesheet.tid
│   │   ├── PageTemplate/
│   │   │   ├── alerts.tid
│   │   │   ├── drafts.tid
│   │   │   ├── pluginreloadwarning.tid
│   │   │   ├── sidebar.tid
│   │   │   ├── story.tid
│   │   │   ├── topleftbar.tid
│   │   │   └── toprightbar.tid
│   │   ├── PageTemplate.tid
│   │   ├── PaletteManager.tid
│   │   ├── PluginInfo.tid
│   │   ├── PluginInfoDefaultContents.tid
│   │   ├── PluginListItemTemplate.tid
│   │   ├── RootTemplate.tid
│   │   ├── SearchResults.tid
│   │   ├── SideBar/
│   │   │   ├── More.tid
│   │   │   ├── Open.tid
│   │   │   ├── Recent.tid
│   │   │   └── Tools.tid
│   │   ├── SideBarLists.tid
│   │   ├── SideBarSegments/
│   │   │   ├── page-controls.tid
│   │   │   ├── search.tid
│   │   │   ├── site-subtitle.tid
│   │   │   ├── site-title.tid
│   │   │   └── tabs.tid
│   │   ├── StoryTiddlerTemplate.tid
│   │   ├── SwitcherModal.tid
│   │   ├── TagManager.tid
│   │   ├── TagPickerTagTemplate.tid
│   │   ├── TagTemplate.tid
│   │   ├── TestCaseTemplate.tid
│   │   ├── TestCases/
│   │   │   ├── DefaultTemplate.tid
│   │   │   ├── DefaultTemplateSourceTabs.tid
│   │   │   ├── RawJSONTemplate.tid
│   │   │   └── actions/
│   │   │       ├── Export.tid
│   │   │       └── Import.tid
│   │   ├── TiddlerFieldTemplate.tid
│   │   ├── TiddlerFields.tid
│   │   ├── TiddlerIcon.tid
│   │   ├── TiddlerInfo/
│   │   │   ├── Advanced/
│   │   │   │   ├── CascadeInfo.tid
│   │   │   │   ├── PluginInfo.tid
│   │   │   │   └── ShadowInfo.tid
│   │   │   ├── Advanced.tid
│   │   │   ├── Fields.tid
│   │   │   ├── List.tid
│   │   │   ├── Listed.tid
│   │   │   ├── References.tid
│   │   │   ├── Tagging.tid
│   │   │   └── Tools.tid
│   │   ├── TiddlerInfo.tid
│   │   ├── TopRightBar/
│   │   │   └── menu.tid
│   │   ├── UntaggedTemplate.tid
│   │   ├── ViewTemplate/
│   │   │   ├── body/
│   │   │   │   ├── blank.tid
│   │   │   │   ├── code.tid
│   │   │   │   ├── default.tid
│   │   │   │   ├── import.tid
│   │   │   │   ├── plugin.tid
│   │   │   │   └── rendered-plain-text/
│   │   │   │       ├── css.tid
│   │   │   │       └── html.tid
│   │   │   ├── body.tid
│   │   │   ├── classic.tid
│   │   │   ├── lazy-loading.tid
│   │   │   ├── subtitle/
│   │   │   │   ├── default.tid
│   │   │   │   ├── modified.tid
│   │   │   │   └── modifier.tid
│   │   │   ├── subtitle.tid
│   │   │   ├── tags/
│   │   │   │   └── default.tid
│   │   │   ├── tags.tid
│   │   │   ├── title/
│   │   │   │   ├── default.tid
│   │   │   │   └── system.tid
│   │   │   ├── title.tid
│   │   │   └── unfold.tid
│   │   ├── ViewTemplate.tid
│   │   ├── ViewToolbar/
│   │   │   ├── clone.tid
│   │   │   ├── close-others.tid
│   │   │   ├── close.tid
│   │   │   ├── edit.tid
│   │   │   ├── export-tiddler.tid
│   │   │   ├── fold-bar.tid
│   │   │   ├── fold-others.tid
│   │   │   ├── fold.tid
│   │   │   ├── info.tid
│   │   │   ├── more-tiddler-actions.tid
│   │   │   ├── new-here.tid
│   │   │   ├── new-journal-here.tid
│   │   │   ├── open-window.tid
│   │   │   ├── permalink.tid
│   │   │   └── permaview.tid
│   │   └── WikiInformation.tid
│   └── wiki/
│       ├── DefaultTiddlers.tid
│       ├── advancedsearch.tid
│       ├── allfields.tid
│       ├── config/
│       │   ├── AnimationDuration.tid
│       │   ├── AutoFocus.tid
│       │   ├── AutoSave.tid
│       │   ├── BitmapEditorColour.tid
│       │   ├── BitmapEditorImageSizes.tid
│       │   ├── BitmapEditorLineWidth.tid
│       │   ├── BitmapEditorLineWidths.tid
│       │   ├── BitmapEditorOpacities.tid
│       │   ├── BitmapEditorOpacity.tid
│       │   ├── DefaultMoreSidebarTab.tid
│       │   ├── DefaultSidebarTab.tid
│       │   ├── DefaultTiddlersRetainStory.tid
│       │   ├── DownloadSaverAutoSave.tid
│       │   ├── Drafts-TypingTimeout.tid
│       │   ├── EditModeFieldnameFilter.tid
│       │   ├── EditTabIndex.tid
│       │   ├── EditTemplateBodyFilters.multids
│       │   ├── EditTemplateFields.multids
│       │   ├── EditorEnableImportFilter.tid
│       │   ├── EditorImportContentTypesFilter.tid
│       │   ├── EditorToolbarButtons.multids
│       │   ├── EditorTypeMappings.multids
│       │   ├── FieldEditorFilters.multids
│       │   ├── GlobalImportFilter.tid
│       │   ├── Manager.multids
│       │   ├── ManagerItemState.multids
│       │   ├── MediaQueryTrackers/
│       │   │   └── DarkLightPreferred.tid
│       │   ├── MissingLinks.tid
│       │   ├── NavigationUpdateAddressBar.tid
│       │   ├── NavigationUpdateHistory.tid
│       │   ├── NewImageType.tid
│       │   ├── OfficialPluginLibrary.tid
│       │   ├── OpenLinkFromInsideRiver.tid
│       │   ├── OpenLinkFromOutsideRiver.tid
│       │   ├── PageControlButtons.multids
│       │   ├── PerformanceInstrumentation.tid
│       │   ├── RecentLimit.tid
│       │   ├── RegisterPluginTypes.multids
│       │   ├── SaveWikiButtonTemplate.tid
│       │   ├── SaverFilter.tid
│       │   ├── SearchAutoFocus.tid
│       │   ├── SearchMinLength.tid
│       │   ├── SearchResultsDefault.tid
│       │   ├── ServerExternalFiltersDefault.tid
│       │   ├── ShortcutInfo.multids
│       │   ├── StoryTiddlerTemplateFilters.multids
│       │   ├── SwitcherTargets.multids
│       │   ├── SyncFilter.tid
│       │   ├── SyncSystemTiddlersFromServer.tid
│       │   ├── TagPillDragFilter.tid
│       │   ├── TagsMinLength.tid
│       │   ├── TextEditorEditorHeightHeight.tid
│       │   ├── TextEditorEditorHeightMode.tid
│       │   ├── TiddlerColourFilters.multids
│       │   ├── TiddlerIconFilters.multids
│       │   ├── TiddlerInfoDefault.tid
│       │   ├── TiddlerInfoMode.tid
│       │   ├── TitleLinks.tid
│       │   ├── ToolbarButtonClass.tid
│       │   ├── ToolbarIcons.tid
│       │   ├── ToolbarText.tid
│       │   ├── ViewTemplateBodyFilters.multids
│       │   ├── ViewTemplateSubtitleFilters.multids
│       │   ├── ViewTemplateTagsFilters.multids
│       │   ├── ViewTemplateTitleFilters.multids
│       │   ├── ViewToolbarButtons.multids
│       │   ├── shortcuts/
│       │   │   ├── shortcuts-linux.multids
│       │   │   ├── shortcuts-mac.multids
│       │   │   ├── shortcuts-not-linux.multids
│       │   │   ├── shortcuts-not-mac.multids
│       │   │   ├── shortcuts-not-windows.multids
│       │   │   ├── shortcuts-windows.multids
│       │   │   └── shortcuts.multids
│       │   ├── ui/
│       │   │   ├── EditTemplate.tid
│       │   │   └── ViewTemplate.tid
│       │   └── wikilink.tid
│       ├── currpalettepreview.tid
│       ├── debugstylesheets.tid
│       ├── download-wiki-button.tid
│       ├── language.tid
│       ├── languageswitcher.tid
│       ├── macros/
│       │   ├── CSS-property.tid
│       │   ├── CSS.tid
│       │   ├── colour-picker.tid
│       │   ├── copy-to-clipboard.tid
│       │   ├── deprecated.tid
│       │   ├── diff.tid
│       │   ├── dumpvariables.tid
│       │   ├── export.tid
│       │   ├── image-picker.tid
│       │   ├── keyboard-driven-input.tid
│       │   ├── lingo.tid
│       │   ├── list.tid
│       │   ├── show-filter-count.tid
│       │   ├── tabs.tid
│       │   ├── tag-picker.tid
│       │   ├── tag.tid
│       │   ├── testcase.tid
│       │   ├── thumbnails.tid
│       │   ├── timeline.tid
│       │   ├── toc.tid
│       │   ├── translink.tid
│       │   ├── tree.tid
│       │   └── utils.tid
│       ├── minifocuseditswitcher.tid
│       ├── minifocusswitcher.tid
│       ├── minilanguageswitcher.tid
│       ├── minithemeswitcher.tid
│       ├── modules.tid
│       ├── palette.tid
│       ├── paletteeditor.tid
│       ├── palettepreview.tid
│       ├── paletteswitcher.tid
│       ├── peek-stylesheets.tid
│       ├── search.tid
│       ├── tags/
│       │   ├── AdvancedSearch.tid
│       │   ├── AdvancedSearchFilterButton.tid
│       │   ├── ControlPanel.tid
│       │   ├── ControlPanelInfo.tid
│       │   ├── ControlPanelPlugins.tid
│       │   ├── EditTemplate.tid
│       │   ├── EditTemplateBodyFilter.tid
│       │   ├── EditToolbar.tid
│       │   ├── EditorToolbar.tid
│       │   ├── ManagerItemMain.tid
│       │   ├── ManagerItemSidebar.tid
│       │   ├── MoreSideBar.tid
│       │   ├── PageControls.tid
│       │   ├── PageTemplate.tid
│       │   ├── PluginLibrary.tid
│       │   ├── SideBar.tid
│       │   ├── SideBarSegment.tid
│       │   ├── StoryTiddlerTemplateFilter.tid
│       │   ├── TestCaseActions.tid
│       │   ├── TextEditorSnippet.tid
│       │   ├── TiddlerColourFilter.tid
│       │   ├── TiddlerIconFilter.tid
│       │   ├── TiddlerInfo.tid
│       │   ├── TiddlerInfoAdvanced.tid
│       │   ├── ViewTemplate.tid
│       │   ├── ViewTemplateBodyFilter.tid
│       │   ├── ViewTemplateSubtitle.tid
│       │   ├── ViewTemplateTitleFilter.tid
│       │   └── ViewToolbar.tid
│       ├── themeswitcher.tid
│       ├── title.tid
│       ├── view.tid
│       └── viewswitcher.tid
├── core-server/
│   ├── commander.js
│   ├── commands/
│   │   ├── build.js
│   │   ├── clearpassword.js
│   │   ├── commands.js
│   │   ├── deletetiddlers.js
│   │   ├── editions.js
│   │   ├── fetch.js
│   │   ├── help.js
│   │   ├── import.js
│   │   ├── init.js
│   │   ├── listen.js
│   │   ├── load.js
│   │   ├── makelibrary.js
│   │   ├── output.js
│   │   ├── password.js
│   │   ├── render.js
│   │   ├── rendertiddler.js
│   │   ├── rendertiddlers.js
│   │   ├── save.js
│   │   ├── savelibrarytiddlers.js
│   │   ├── savetiddler.js
│   │   ├── savetiddlers.js
│   │   ├── savewikifolder.js
│   │   ├── server.js
│   │   ├── setfield.js
│   │   ├── unpackplugin.js
│   │   ├── verbose.js
│   │   └── version.js
│   ├── filesystem.js
│   ├── plugin.info
│   ├── readme.tid
│   ├── server/
│   │   ├── authenticators/
│   │   │   ├── basic.js
│   │   │   └── header.js
│   │   ├── routes/
│   │   │   ├── delete-tiddler.js
│   │   │   ├── get-favicon.js
│   │   │   ├── get-file.js
│   │   │   ├── get-index.js
│   │   │   ├── get-login-basic.js
│   │   │   ├── get-status.js
│   │   │   ├── get-tiddler-html.js
│   │   │   ├── get-tiddler.js
│   │   │   ├── get-tiddlers-json.js
│   │   │   └── put-tiddler.js
│   │   └── server.js
│   ├── startup/
│   │   └── commands.js
│   └── utils/
│       ├── base64.js
│       ├── edition-info.js
│       ├── escapecss.js
│       └── repository.js
├── editions/
│   ├── aws/
│   │   ├── tiddlers/
│   │   │   └── HelloThere.tid
│   │   └── tiddlywiki.info
│   ├── classicparserdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__ShowEditPreview.tid
│   │   │   ├── $__SiteSubtitle.tid
│   │   │   ├── $__SiteTitle.tid
│   │   │   ├── $__coreURL.tid
│   │   │   ├── Basic Formatting.tid
│   │   │   ├── Blockquotes.tid
│   │   │   ├── CSS Formatting.tid
│   │   │   ├── Classic Parser Plugin Demo.tid
│   │   │   ├── Classic Slider Demo.tid
│   │   │   ├── Classic Transclusion.tid
│   │   │   ├── ClassicTabsDemo.tid
│   │   │   ├── Code.tid
│   │   │   ├── Comment Formatting.tid
│   │   │   ├── Developers Notes.tid
│   │   │   ├── HTML Entities.tid
│   │   │   ├── HTML Formatting.tid
│   │   │   ├── Headings.tid
│   │   │   ├── Horizontal Rules.tid
│   │   │   ├── Images.tid
│   │   │   ├── Issues.tid
│   │   │   ├── Line Breaks.tid
│   │   │   ├── Links.tid
│   │   │   ├── Lists.tid
│   │   │   ├── Markup.tid
│   │   │   ├── Monospaced Text.tid
│   │   │   ├── Suppressing Formatting.tid
│   │   │   ├── Tables.tid
│   │   │   ├── slidertest.tid
│   │   │   └── text_x-tiddlywiki typeblock.tid
│   │   └── tiddlywiki.info
│   ├── codemirrordemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── DefaultSidebarTab.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── Draft of LoremIpsum.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── KeyMap.tid
│   │   │   ├── KeymapCheatsheet.tid
│   │   │   ├── LoremIpsum.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── cm-theme.tid
│   │   │   ├── lineNumbers.tid
│   │   │   ├── sidebarlayout.tid
│   │   │   └── styleActiveLine.tid
│   │   └── tiddlywiki.info
│   ├── de-AT/
│   │   ├── tiddlers/
│   │   │   ├── Bilder.tid
│   │   │   ├── Community.tid
│   │   │   ├── Einfuhrung.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── InhaltsVerzeichnis.tid
│   │   │   ├── Konzept.tid
│   │   │   ├── Lexikon.tid
│   │   │   ├── Makros.tid
│   │   │   ├── Referenz.tid
│   │   │   ├── Releases.tid
│   │   │   ├── TWclassic.tid
│   │   │   ├── Video.tid
│   │   │   ├── Widgets.tid
│   │   │   ├── WikiText mehr Beispiele.tid
│   │   │   ├── beispiele/
│   │   │   │   ├── Befreie die Prinzessin.tid
│   │   │   │   ├── EinsA.tid
│   │   │   │   ├── EinsA1.tid
│   │   │   │   ├── EinsB.tid
│   │   │   │   ├── EinsB1.tid
│   │   │   │   ├── EinsC.tid
│   │   │   │   ├── Erstellen von Notizen.tid
│   │   │   │   ├── Finde den Ring.tid
│   │   │   │   ├── Gehe nach Mordor.tid
│   │   │   │   ├── Ideensammlung.tid
│   │   │   │   ├── ReiterDrei.tid
│   │   │   │   ├── ReiterEins.tid
│   │   │   │   ├── ReiterZwei.tid
│   │   │   │   ├── Rette die Welt.tid
│   │   │   │   ├── Task Management Plugins.tid
│   │   │   │   ├── Task Management mit Listen.tid
│   │   │   │   ├── Task Management mit Tags.tid
│   │   │   │   ├── TaskManagement.tid
│   │   │   │   ├── Verhaue den Drachen.tid
│   │   │   │   ├── Was kann TiddlyWiki.tid
│   │   │   │   ├── ZweiA.tid
│   │   │   │   ├── done.tid
│   │   │   │   ├── task.tid
│   │   │   │   ├── tocDrei.tid
│   │   │   │   ├── tocEins.tid
│   │   │   │   └── tocZwei.tid
│   │   │   ├── bilder/
│   │   │   │   ├── AT-DE-CH-favicon.png.meta
│   │   │   │   ├── Bilder Gallerie Beispiel.tid
│   │   │   │   ├── Dev_Thumbnail.jpg.meta
│   │   │   │   ├── Introduction_Video_Thumbnail.jpg.meta
│   │   │   │   ├── Motovun Jack.jpg.meta
│   │   │   │   ├── Motovun_Jack.svg.tid
│   │   │   │   ├── Save-TW.gif.tid
│   │   │   │   ├── Tiddler_Poster.png.tid
│   │   │   │   ├── TiddlyWiki_Classic.png.tid
│   │   │   │   └── download.png.tid
│   │   │   ├── community/
│   │   │   │   ├── Fur_Entwickler.tid
│   │   │   │   └── Wie_kann_ich_helfen_.tid
│   │   │   ├── external/
│   │   │   │   └── tiddlywiki.files
│   │   │   ├── howto/
│   │   │   │   ├── Importieren von Tiddlern.tid
│   │   │   │   ├── Installation von TiddlyWiki mit Node.js.tid
│   │   │   │   ├── Installation.tid
│   │   │   │   ├── Liste aller HowTo's.tid
│   │   │   │   ├── Liste aller Tiddler.tid
│   │   │   │   ├── Speichern auf TiddlySpot.tid
│   │   │   │   ├── Speichern mit Android.tid
│   │   │   │   ├── Speichern mit Chrome.tid
│   │   │   │   ├── Speichern mit Safari.tid
│   │   │   │   ├── Speichern mit TiddlyFox - Android.tid
│   │   │   │   ├── Speichern mit TiddlyFox.tid
│   │   │   │   ├── Speichern mit TiddlyIE.tid
│   │   │   │   ├── Speichern mit Verschlusselung.tid
│   │   │   │   ├── Speichern mit iPad_iPhone.tid
│   │   │   │   ├── TiddlyWiki mit Node.js.tid
│   │   │   │   ├── TiddlyWiki und TiddlyDesktop.tid
│   │   │   │   └── Windows HTA Hack.tid
│   │   │   ├── howto.tid
│   │   │   ├── intro/
│   │   │   │   ├── ErsteSchritte - Android.tid
│   │   │   │   ├── ErsteSchritte - Chrome.tid
│   │   │   │   ├── ErsteSchritte - Firefox.tid
│   │   │   │   ├── ErsteSchritte - Internet Explorer.tid
│   │   │   │   ├── ErsteSchritte - Node.js.tid
│   │   │   │   ├── ErsteSchritte - Safari.tid
│   │   │   │   ├── ErsteSchritte - iOS.tid
│   │   │   │   ├── ErsteSchritte.tid
│   │   │   │   ├── HelloThumbnail.tid
│   │   │   │   ├── HelloThumbnail_-_Classic.tid
│   │   │   │   ├── HelloThumbnail_-_Developers.tid
│   │   │   │   ├── HelloThumbnail_-_Gentle_Guide.tid
│   │   │   │   ├── HelloThumbnail_-_HelpingTiddlyWiki.tid
│   │   │   │   ├── HelloThumbnail_-_Introduction_Video.tid
│   │   │   │   ├── HelloThumbnail_-_Latest_Version.tid
│   │   │   │   └── HelloThumbnail_-_Save.tid
│   │   │   ├── konzept/
│   │   │   │   ├── Informationen_weitergeben.tid
│   │   │   │   ├── Permalink.tid
│   │   │   │   ├── Permaview.tid
│   │   │   │   ├── Philosophy_von_Tiddlern.tid
│   │   │   │   ├── Tagging.tid
│   │   │   │   ├── TiddlyWiki Speichern.tid
│   │   │   │   ├── TiddlyWiki_Strukturieren.tid
│   │   │   │   ├── TiddlyWiki_mit_Dropbox_teilen.tid
│   │   │   │   └── Titel_Listen.tid
│   │   │   ├── lexikon/
│   │   │   │   ├── AddOn.tid
│   │   │   │   ├── AndTidWiki.tid
│   │   │   │   ├── CSS Klassen.tid
│   │   │   │   ├── DataTiddlers.tid
│   │   │   │   ├── Filter.tid
│   │   │   │   ├── FireFox.tid
│   │   │   │   ├── Geviertstrich.tid
│   │   │   │   ├── GitHub.tid
│   │   │   │   ├── Halbgeviertstrich.tid
│   │   │   │   ├── Hyperlinks.tid
│   │   │   │   ├── JeremyRuston.tid
│   │   │   │   ├── MIME-Type.tid
│   │   │   │   ├── Makro.tid
│   │   │   │   ├── MarkDown.tid
│   │   │   │   ├── Node.js.tid
│   │   │   │   ├── OpenSource.tid
│   │   │   │   ├── Open_Source_Initiative.tid
│   │   │   │   ├── Stanford JavaScript Crypto Library.tid
│   │   │   │   ├── Status Tiddler.tid
│   │   │   │   ├── Stylesheet.tid
│   │   │   │   ├── Tags.tid
│   │   │   │   ├── TextReferenz.tid
│   │   │   │   ├── Tiddler.tid
│   │   │   │   ├── TiddlyDesktop.tid
│   │   │   │   ├── TiddlyFox.tid
│   │   │   │   ├── TiddlyIE.tid
│   │   │   │   ├── TiddlySpot.tid
│   │   │   │   ├── TiddlyWiki mit node.js.tid
│   │   │   │   ├── TiddlyWiki on node-webkit.tid
│   │   │   │   ├── TiddlyWiki.tid
│   │   │   │   ├── Transklusion.tid
│   │   │   │   ├── URL.tid
│   │   │   │   ├── UnaMesa.tid
│   │   │   │   ├── Was geschah mit dem alten TiddlyWiki.tid
│   │   │   │   └── WikiLinks.tid
│   │   │   ├── maintainer/
│   │   │   │   ├── ChrisK.tid
│   │   │   │   ├── Wer pflegt diese Edition_.tid
│   │   │   │   └── pmario.tid
│   │   │   ├── makros/
│   │   │   │   ├── Inhaltsverzeichnis-Einfach.tid
│   │   │   │   ├── Inhaltsverzeichnis-Erweiterbar.tid
│   │   │   │   ├── Inhaltsverzeichnis-Selektiv-Erweiterbar.tid
│   │   │   │   ├── Inhaltsverzeichnis-Sortiert.tid
│   │   │   │   ├── ListMacro.tid
│   │   │   │   ├── TableOfContentsMacro.tid
│   │   │   │   ├── TabsMakro.tid
│   │   │   │   ├── VersionMacro.tid
│   │   │   │   ├── list-check.svg.tid
│   │   │   │   ├── list-done.svg.tid
│   │   │   │   └── list-task.svg.tid
│   │   │   ├── referenz/
│   │   │   │   └── Lizenzen.tid
│   │   │   ├── system/
│   │   │   │   ├── $__DefaultTiddlers.tid
│   │   │   │   ├── $__StaticBanner.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__core_ui_Buttons_language.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__editions_tw5.com_github-fork-ribbon.tid
│   │   │   │   ├── $__editions_de-AT-DE_download-empty.tid
│   │   │   │   ├── $__editions_de-AT-DE_iframe-responsive.tid
│   │   │   │   ├── $__editions_de-AT-DE_snippets_download-empty-button.tid
│   │   │   │   ├── $__editions_de-AT-DE_wikitext-macros.tid
│   │   │   │   ├── $__language.tid
│   │   │   │   ├── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   │   │   ├── SelectDefaultTab.tid
│   │   │   │   └── static.content.tid
│   │   │   ├── systemtag/
│   │   │   │   ├── $__TaskStylesheet.tid
│   │   │   │   ├── $___tags_ListIcon.tid
│   │   │   │   ├── $__tags_Stylesheet.tid
│   │   │   │   └── SystemTag.tid
│   │   │   ├── video/
│   │   │   │   ├── Einfuhrungsvideo.tid
│   │   │   │   └── TiddlyWiki mit Firefox fur Android Video.tid
│   │   │   ├── widgets/
│   │   │   │   ├── ImageWidget.tid
│   │   │   │   ├── ImportVariablesWidget.tid
│   │   │   │   ├── LinkWidget.tid
│   │   │   │   ├── ListWidget.tid
│   │   │   │   └── TranscludeWidget.tid
│   │   │   └── wikitext/
│   │   │       ├── Absatz in WikiText.tid
│   │   │       ├── Bilder in WikiText.tid
│   │   │       ├── Code Block in WikiText.tid
│   │   │       ├── Definitionen in WikiText.tid
│   │   │       ├── Formatierungen in WikiText.tid
│   │   │       ├── Gedankenstrich in WikiText.tid
│   │   │       ├── HTML in WikiText.tid
│   │   │       ├── Listen in WikiText.tid
│   │   │       ├── Makros in WikiText.tid
│   │   │       ├── Stil und CSS Klassen in WikiText.tid
│   │   │       ├── Tabellen in WikiText.tid
│   │   │       ├── Transclusion in WikiText.tid
│   │   │       ├── Transklusion in WikiText.tid
│   │   │       ├── Trennlinie in WikiText.tid
│   │   │       ├── Typisierte Blocke in WikiText.tid
│   │   │       ├── Uberschriften in WikiText.tid
│   │   │       ├── Verknupfungen in WikiText.tid
│   │   │       ├── Widgets in WikiText.tid
│   │   │       ├── WikiText.tid
│   │   │       ├── Zeilenumbruch in WikiText.tid
│   │   │       └── Zitate in WikiText.tid
│   │   └── tiddlywiki.info
│   ├── de-AT-server/
│   │   ├── tiddlers/
│   │   │   └── system/
│   │   │       └── favicon.png.meta
│   │   └── tiddlywiki.info
│   ├── de-DE/
│   │   ├── tiddlers/
│   │   │   └── system/
│   │   │       ├── $__StaticBanner.tid
│   │   │       └── $__language.tid
│   │   └── tiddlywiki.info
│   ├── dev/
│   │   ├── tiddlers/
│   │   │   ├── $__github-ribbon.tid
│   │   │   ├── Continuous Deployment.tid
│   │   │   ├── GitHub Branches.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── How to Create a Custom Cascade Entry.tid
│   │   │   ├── How to run a local plugin library for testing.tid
│   │   │   ├── Widget `destroy` method examples.tid
│   │   │   ├── _tw_shared/
│   │   │   │   └── tiddlywiki.files
│   │   │   ├── build/
│   │   │   │   ├── ReadMe for build.jermolene.github.io.tid
│   │   │   │   ├── Releasing a new version of TiddlyWiki.tid
│   │   │   │   ├── Releasing new content for TiddlyWiki.tid
│   │   │   │   └── Scripts for building tiddlywiki.com.tid
│   │   │   ├── from Heigele and Jurke/
│   │   │   │   ├── Caching.tid
│   │   │   │   ├── Conclusion.tid
│   │   │   │   ├── Data Management during Runtime.tid
│   │   │   │   ├── Data Persistence.tid
│   │   │   │   ├── Data-Storage.tid
│   │   │   │   ├── Datamodel.tid
│   │   │   │   ├── Deserializer.tid
│   │   │   │   ├── Event Mechanism.tid
│   │   │   │   ├── Extended Persistence.tid
│   │   │   │   ├── Extending the Store.tid
│   │   │   │   ├── Introduction.tid
│   │   │   │   ├── Messages.tid
│   │   │   │   ├── Microkernel Architecture.tid
│   │   │   │   ├── Microkernel Description.tid
│   │   │   │   ├── Microkernel and Datamodel.tid
│   │   │   │   ├── Microkernel.tid
│   │   │   │   ├── Modularization.tid
│   │   │   │   ├── Module System.tid
│   │   │   │   ├── NEW NEW TOC.tid
│   │   │   │   ├── Parser.tid
│   │   │   │   ├── Persist data.tid
│   │   │   │   ├── RootWidget and Rendering Startup.tid
│   │   │   │   ├── Saver.tid
│   │   │   │   ├── Section Overview.tid
│   │   │   │   ├── Selective Update.tid
│   │   │   │   ├── Startup Process.tid
│   │   │   │   ├── StartupTimeline.png.tid
│   │   │   │   ├── Syncadaptor.tid
│   │   │   │   ├── System Tiddlers.tid
│   │   │   │   ├── Table of Contents.tid
│   │   │   │   ├── Tags and Filter Mechanism.tid
│   │   │   │   ├── The Heart of TiddlyWiki Boot-Kernel.tid
│   │   │   │   ├── The Plugin and Module concept.tid
│   │   │   │   ├── The TiddlyWiki data management concept.tid
│   │   │   │   ├── The User Interface.tid
│   │   │   │   ├── Tiddler as Basic Element.tid
│   │   │   │   ├── TiddlyWiki - A quick Overview.tid
│   │   │   │   ├── TiddlyWiki Core Application.tid
│   │   │   │   ├── TiddlyWiki as Single Page Application.tid
│   │   │   │   ├── TiddlyWiki.tid
│   │   │   │   ├── Timeline of the startup Process.tid
│   │   │   │   ├── Toc.tid
│   │   │   │   ├── Transclusion and TextReference.tid
│   │   │   │   ├── UI and Rendering Pipeline.tid
│   │   │   │   ├── Using Modules to build a Single File Application.tid
│   │   │   │   ├── Widgets.tid
│   │   │   │   ├── WikiText Markup.tid
│   │   │   │   ├── Wikitext.tid
│   │   │   │   └── wikimethod module type.tid
│   │   │   ├── from tw5.com/
│   │   │   │   ├── Contributing to the TiddlyWiki Core.tid
│   │   │   │   ├── Contributing to the TiddlyWiki Plugin Library.tid
│   │   │   │   ├── Developing plugins using Node.js and GitHub.tid
│   │   │   │   ├── FakeDomMechanism.tid
│   │   │   │   ├── How to create a translation for TiddlyWiki.tid
│   │   │   │   ├── How to create plugins in the browser.tid
│   │   │   │   ├── How to customise the password prompt.tid
│   │   │   │   ├── JavaScript Macros.tid
│   │   │   │   ├── TiddlyWiki Architecture.tid
│   │   │   │   ├── TiddlyWiki Coding Style Guidelines.tid
│   │   │   │   ├── TiddlyWiki for Developers.tid
│   │   │   │   ├── TiddlyWiki on node-webkit.tid
│   │   │   │   ├── TiddlyWiki5 Development Environment.tid
│   │   │   │   ├── mechanisms/
│   │   │   │   │   ├── BootMechanism.tid
│   │   │   │   │   ├── EncryptionMechanism.tid
│   │   │   │   │   ├── LazyLoadingMechanism.tid
│   │   │   │   │   ├── ParsingMechanism.tid
│   │   │   │   │   ├── RenderingMechanism.tid
│   │   │   │   │   ├── StartupMechanism.tid
│   │   │   │   │   └── TestingMechanism.tid
│   │   │   │   ├── moduletypes/
│   │   │   │   │   ├── SyncAdaptorModules.tid
│   │   │   │   │   ├── WidgetModules.tid
│   │   │   │   │   └── WikiRuleModules.tid
│   │   │   │   └── package.json for node-webkit.tid
│   │   │   ├── images/
│   │   │   │   ├── Server Architecture.svg.meta
│   │   │   │   ├── Startup Modules.svg.meta
│   │   │   │   ├── TiddlyWiki Architecture.svg.meta
│   │   │   │   ├── apptree.svg.meta
│   │   │   │   ├── arch.svg.meta
│   │   │   │   ├── favicon.png.meta
│   │   │   │   ├── index.svg.meta
│   │   │   │   ├── overview.svg.meta
│   │   │   │   └── rendering.svg.meta
│   │   │   ├── indexer modules.tid
│   │   │   ├── javascript-widget-tutorial/
│   │   │   │   ├── Child widgets tutorial.tid
│   │   │   │   ├── Do nothing widget demo.tid
│   │   │   │   ├── Do nothing widget tutorial.tid
│   │   │   │   ├── Hello World demo.tid
│   │   │   │   ├── Hello World widget tutorial.tid
│   │   │   │   ├── Javascript Widget Tutorial.tid
│   │   │   │   ├── Undefined widget demo.tid
│   │   │   │   ├── Undefined widget tutorial.tid
│   │   │   │   ├── Widget attributes demo I.tid
│   │   │   │   ├── Widget attributes demo II.tid
│   │   │   │   ├── Widget attributes tutorial part I.tid
│   │   │   │   ├── Widget attributes tutorial part II.tid
│   │   │   │   ├── Widget refresh demo I.tid
│   │   │   │   ├── Widget refresh demo II.tid
│   │   │   │   ├── Widget refresh demo III.tid
│   │   │   │   ├── Widget refresh tutorial part I.tid
│   │   │   │   ├── Widget refresh tutorial part II.tid
│   │   │   │   ├── Widget refresh tutorial part III.tid
│   │   │   │   ├── domwidget.js
│   │   │   │   ├── domwidget.js.meta
│   │   │   │   ├── donothing.js
│   │   │   │   ├── donothing.js.meta
│   │   │   │   ├── hello-attribute-optimized.js
│   │   │   │   ├── hello-attribute-optimized.js.meta
│   │   │   │   ├── hello-attribute.js
│   │   │   │   ├── hello-attribute.js.meta
│   │   │   │   ├── hello.js
│   │   │   │   ├── hello.js.meta
│   │   │   │   ├── refreshcount.js
│   │   │   │   ├── refreshcount.js.meta
│   │   │   │   ├── tiddlerfield-norefresh.js
│   │   │   │   ├── tiddlerfield-norefresh.js.meta
│   │   │   │   ├── tiddlerfield.js
│   │   │   │   └── tiddlerfield.js.meta
│   │   │   ├── new/
│   │   │   │   ├── Adding Babel Polyfill to TiddlyWiki.tid
│   │   │   │   ├── Data Storage in Single File TiddlyWiki.tid
│   │   │   │   ├── Data Storage.tid
│   │   │   │   ├── Filter Operators.tid
│   │   │   │   ├── HookMechanism.tid
│   │   │   │   ├── Hook_ th-before-importing.tid
│   │   │   │   ├── Hook_ th-closing-tiddler.tid
│   │   │   │   ├── Hook_ th-page-refreshed.tid
│   │   │   │   ├── Hook_ th-page-refreshing.tid
│   │   │   │   ├── Hook__th-deleting-tiddler.tid
│   │   │   │   ├── Hook__th-editing-tiddler.tid
│   │   │   │   ├── Hook__th-importing-file.tid
│   │   │   │   ├── Hook__th-importing-tiddler.tid
│   │   │   │   ├── Hook__th-navigating.tid
│   │   │   │   ├── Hook__th-relinking-tiddler.tid
│   │   │   │   ├── Hook__th-renaming-tiddler.tid
│   │   │   │   ├── Hook__th-rendering-element.tid
│   │   │   │   ├── Hook__th-server-command-post-start.tid
│   │   │   │   ├── Hook_th-make-tiddler-path.tid
│   │   │   │   ├── ImportLogging.tid
│   │   │   │   ├── ParserSubclassingMechanism.tid
│   │   │   │   ├── TiddlyWiki Drag and Drop Interop.tid
│   │   │   │   ├── Using ES2016 for Writing Plugins.tid
│   │   │   │   ├── Using Notifications.tid
│   │   │   │   ├── Using TiddlyWiki as a library.tid
│   │   │   │   ├── WidgetSubclassingMechanism.tid
│   │   │   │   ├── dragndropinterop.html
│   │   │   │   ├── dragndropinterop.html.meta
│   │   │   │   ├── save-dragndropinterop.tid
│   │   │   │   ├── th-opening-default-tiddlers-list.tid
│   │   │   │   └── th-saving-tiddler.tid
│   │   │   └── system/
│   │   │       ├── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   │       ├── ContributionBanner.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── PatchEncryptionPrompt.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── Sources.tid
│   │   │       ├── StaticBanner.tid
│   │   │       ├── configWikiParserRulesInlineWikilink.tid
│   │   │       ├── fontfamily.tid
│   │   │       ├── github-fork-ribbon.tid
│   │   │       ├── language.tid
│   │   │       ├── palette.tid
│   │   │       ├── palettes-Dev.tid
│   │   │       ├── static.content.tid
│   │   │       ├── theme.tid
│   │   │       └── tw5.com-dev-styles.tid
│   │   └── tiddlywiki.info
│   ├── dynaviewdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── AnimationDuration.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── PerformanceInstrumentation.tid
│   │   │   ├── PreserveScrollPosition.tid
│   │   │   ├── RestoreScrollPositionAtStartup.tid
│   │   │   ├── SideBar-Open.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── TableOfContents.tid
│   │   │   ├── ViewTemplate.tid
│   │   │   └── alice/
│   │   │       ├── Alice TableOfContents.json
│   │   │       ├── Alice in Wonderland (sliced).json
│   │   │       ├── Alice in Wonderland License.tid
│   │   │       └── Alice in Wonderland.tid
│   │   └── tiddlywiki.info
│   ├── empty/
│   │   └── tiddlywiki.info
│   ├── es-ES/
│   │   ├── tiddlers/
│   │   │   ├── $__Acknowledgements.tid
│   │   │   ├── $__AdvancedSearch.tid
│   │   │   ├── $__ContributionBanner.tid
│   │   │   ├── $__CurvedText.tid
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__SVGExampleRadius.tid
│   │   │   ├── $__SiteSubtitle.tid
│   │   │   ├── $__UploadName.tid
│   │   │   ├── $__UploadURL.tid
│   │   │   ├── $__core_ui_DefaultSearchResultList.tid
│   │   │   ├── $__core_ui_ListItemTemplate.tid
│   │   │   ├── $__core_ui_SideBar_Open.tid
│   │   │   ├── $__core_ui_TagTemplate.tid
│   │   │   ├── $__core_ui_ViewTemplate_title.tid
│   │   │   ├── $__edition_tw5.com_dropbox-url.js.tid
│   │   │   ├── $__editions_tw5.com_wikitext-macros.tid
│   │   │   ├── $__plugins_tiddlywiki_railroad_readme.tid
│   │   │   ├── $__theme.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_sidebarbreakpoint.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_storyleft.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_storyright.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_storywidth.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_tiddlerwidth.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_themetweaks.tid
│   │   │   ├── A_Gentle_Guide_to_TiddlyWiki.tid
│   │   │   ├── About.tid
│   │   │   ├── Acknowledgements.tid
│   │   │   ├── Adding_Babel_Polyfill_to_TiddlyWiki.tid
│   │   │   ├── Adding_a_Table_of_Contents_to_the_Sidebar.tid
│   │   │   ├── Adding_a_Twitter_Follow_button.tid
│   │   │   ├── Adopt_a_Titles_Policy.tid
│   │   │   ├── AlertMechanism.tid
│   │   │   ├── Articles.tid
│   │   │   ├── Audio.tid
│   │   │   ├── AutoSave.tid
│   │   │   ├── Blog_Edition.tid
│   │   │   ├── BrowserCompatibility.tid
│   │   │   ├── CamelCase.tid
│   │   │   ├── CodeMirror_Plugin.tid
│   │   │   ├── ColourPalettes.tid
│   │   │   ├── Commands.tid
│   │   │   ├── Community.tid
│   │   │   ├── Compose_ballad.tid
│   │   │   ├── Concepts.tid
│   │   │   ├── Configuring_the_default_TiddlerInfo_tab.tid
│   │   │   ├── Contributing.tid
│   │   │   ├── Contributor_License_Agreement.tid
│   │   │   ├── Contributors.tid
│   │   │   ├── Copying_tiddlers_between_TiddlyWiki_files.tid
│   │   │   ├── CountWidget.tid
│   │   │   ├── Creating_SubStories.tid
│   │   │   ├── Creating_a_custom_export_format.tid
│   │   │   ├── Creating_and_editing_tiddlers.tid
│   │   │   ├── Creating_journal_tiddlers.tid
│   │   │   ├── Current_Tiddler.tid
│   │   │   ├── Customise_TiddlyWiki.tid
│   │   │   ├── Customising_search_results.tid
│   │   │   ├── D3_Plugin.tid
│   │   │   ├── DataTiddlers.tid
│   │   │   ├── DateFormat.tid
│   │   │   ├── Date_Fields.tid
│   │   │   ├── DictionaryTiddlers.tid
│   │   │   ├── Discover_TiddlyWiki.tid
│   │   │   ├── Documentation_Macros.tid
│   │   │   ├── Documentation_Style_Guide.tid
│   │   │   ├── Dominant_Append.tid
│   │   │   ├── Editing_Tiddlers_with_Emacs.tid
│   │   │   ├── Editing_Tiddlers_with_Vim.tid
│   │   │   ├── Editions.tid
│   │   │   ├── Empty_Edition.tid
│   │   │   ├── Encryption.tid
│   │   │   ├── Examples.tid
│   │   │   ├── ExternalImages.tid
│   │   │   ├── Features.tid
│   │   │   ├── Filter_Expression.tid
│   │   │   ├── Filter_Parameter.tid
│   │   │   ├── Filter_Run.tid
│   │   │   ├── Filter_Step.tid
│   │   │   ├── Filter_Syntax.tid
│   │   │   ├── Filter_Whitespace.tid
│   │   │   ├── Filters.tid
│   │   │   ├── Formatting_text_in_TiddlyWiki.tid
│   │   │   ├── Forums.tid
│   │   │   ├── Full_Edition.tid
│   │   │   ├── Future_Proof.tid
│   │   │   ├── Get_the_Ring.tid
│   │   │   ├── GettingStarted.tid
│   │   │   ├── GettingStarted_-_Android.tid
│   │   │   ├── GettingStarted_-_Chrome.tid
│   │   │   ├── GettingStarted_-_Firefox.tid
│   │   │   ├── GettingStarted_-_Internet_Explorer.tid
│   │   │   ├── GettingStarted_-_Node.js.tid
│   │   │   ├── GettingStarted_-_Safari.tid
│   │   │   ├── GettingStarted_-_iOS.tid
│   │   │   ├── Getting_Started_Video.tid
│   │   │   ├── Glosario_en-GB_-__es-ES.tid
│   │   │   ├── Go_to_Mordor.tid
│   │   │   ├── Hard_and_Soft_Links.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── HelloThumbnail_-_Classic.tid
│   │   │   ├── HelloThumbnail_-_Developers.tid
│   │   │   ├── HelloThumbnail_-_Gentle_Guide.tid
│   │   │   ├── HelloThumbnail_-_HelpingTiddlyWiki.tid
│   │   │   ├── HelloThumbnail_-_Introduction_Video.tid
│   │   │   ├── HelloThumbnail_-_Latest_Version.tid
│   │   │   ├── Hidden_Setting__Search_AutoFocus.tid
│   │   │   ├── Hidden_Setting__Typing_Refresh_Delay.tid
│   │   │   ├── Hidden_Settings.tid
│   │   │   ├── Highlight_Plugin.tid
│   │   │   ├── How_to_add_a_banner_for_GitHub_contributions.tid
│   │   │   ├── How_to_add_a_new_tab_to_the_sidebar.tid
│   │   │   ├── How_to_apply_custom_styles_by_tag.tid
│   │   │   ├── How_to_export_tiddlers.tid
│   │   │   ├── How_to_put_the_last_modification_date_in_a_banner.tid
│   │   │   ├── ImageGallery_Example.tid
│   │   │   ├── Images_in_WikiText.tid
│   │   │   ├── ImportTiddlers.tid
│   │   │   ├── Improving_TiddlyWiki_Documentation.tid
│   │   │   ├── InfoPanel.tid
│   │   │   ├── Informacion_para_traductores.tid
│   │   │   ├── Installing_TiddlyWiki_on_Node.js.tid
│   │   │   ├── Installing_a_plugin_from_the_plugin_library.tid
│   │   │   ├── Instruction_Tiddlers.tid
│   │   │   ├── Interactive_Git_Documentation_by_Devin_Weaver.tid
│   │   │   ├── Introducing_TiddlyDesktop_Video.tid
│   │   │   ├── Introduction_Video.tid
│   │   │   ├── Introduction_to_filter_notation.tid
│   │   │   ├── JavaScript.tid
│   │   │   ├── KaTeX_Plugin.tid
│   │   │   ├── KeyboardShortcuts.tid
│   │   │   ├── Kill_the_Dragon.tid
│   │   │   ├── Languages.tid
│   │   │   ├── Latest.tid
│   │   │   ├── LazyLoading.tid
│   │   │   ├── Learning.tid
│   │   │   ├── ListField.tid
│   │   │   ├── ListWidget.tid
│   │   │   ├── Make_the_beds.tid
│   │   │   ├── Making_curved_text_with_SVG.tid
│   │   │   ├── Manually_installing_a_plugin.tid
│   │   │   ├── Markdown_Plugin.tid
│   │   │   ├── MathML.tid
│   │   │   ├── Meetups.tid
│   │   │   ├── Messages.tid
│   │   │   ├── MiSubHistoria.tid
│   │   │   ├── Modals.tid
│   │   │   ├── MySubHistoryList.tid
│   │   │   ├── MySubStoryList.tid
│   │   │   ├── Navigating_between_open_tiddlers.tid
│   │   │   ├── NavigatorWidget.tid
│   │   │   ├── Notifications.tid
│   │   │   ├── OXTWIG.tid
│   │   │   ├── Obadiah_TOC.tid
│   │   │   ├── Order_of_Tagged_Tiddlers.tid
│   │   │   ├── PESpot_Lesson_Planner_by_Patrick_Detzner.tid
│   │   │   ├── Page_and_tiddler_layout_customisation.tid
│   │   │   ├── PermaLinks.tid
│   │   │   ├── Philosophy_of_Tiddlers.tid
│   │   │   ├── Platforms.tid
│   │   │   ├── Plugin_Editions.tid
│   │   │   ├── Plugins.tid
│   │   │   ├── Preserving_open_tiddlers_at_startup.tid
│   │   │   ├── Quine.tid
│   │   │   ├── Railroad_Diagrams.tid
│   │   │   ├── Railroad_Plugin.tid
│   │   │   ├── Reference.tid
│   │   │   ├── Reference_Tiddlers.tid
│   │   │   ├── Resources.tid
│   │   │   ├── Resume_Builder_Edition.tid
│   │   │   ├── SafeMode.tid
│   │   │   ├── SampleAlert.tid
│   │   │   ├── SampleModal.tid
│   │   │   ├── SampleNotification.tid
│   │   │   ├── SampleWizard.tid
│   │   │   ├── SampleWizard2.tid
│   │   │   ├── Saving.tid
│   │   │   ├── Saving_on_Android.tid
│   │   │   ├── Saving_on_InternetExplorer.tid
│   │   │   ├── Saving_on_Safari.tid
│   │   │   ├── Saving_on_TiddlySpot.tid
│   │   │   ├── Saving_on_a_PHP_Server.tid
│   │   │   ├── Saving_on_iPad_iPhone.tid
│   │   │   ├── Saving_with_TiddlyFox.tid
│   │   │   ├── Saving_with_TiddlyFox_on_Android.tid
│   │   │   ├── Saving_with_TiddlyIE.tid
│   │   │   ├── Saving_with_the_HTML5_fallback_saver.tid
│   │   │   ├── Saving_with_the_HTML5_saver.tid
│   │   │   ├── Scalability.tid
│   │   │   ├── Searching_in_TiddlyWiki.tid
│   │   │   ├── Selection_Constructors.tid
│   │   │   ├── Setting_a_favicon.tid
│   │   │   ├── Setting_a_page_background_image.tid
│   │   │   ├── Sharing_a_TiddlyWiki_on_Dropbox.tid
│   │   │   ├── Sharing_your_tiddlers_with_others.tid
│   │   │   ├── Signing_the_Contributor_License_Agreement.tid
│   │   │   ├── Simple_Zork-like_Game_by_Jed_Carty.tid
│   │   │   ├── SingleFileApplication.tid
│   │   │   ├── SinglePageApplication.tid
│   │   │   ├── Some_of_the_things_you_can_do_with_TiddlyWiki.tid
│   │   │   ├── Spelling.tid
│   │   │   ├── Structuring_TiddlyWiki.tid
│   │   │   ├── TW2Parser_Plugin.tid
│   │   │   ├── TagTiddlers.tid
│   │   │   ├── Tagging.tid
│   │   │   ├── TaskManagementExample.tid
│   │   │   ├── Technical_Prose_Style.tid
│   │   │   ├── Ten_reasons_to_switch_to_TiddlyWiki.tid
│   │   │   ├── Text-Slicer_Edition.tid
│   │   │   ├── The_First_Rule_of_Using_TiddlyWiki.tid
│   │   │   ├── TiddlerLinks.tid
│   │   │   ├── Tiddler_Structure.tid
│   │   │   ├── Tiddler_Title_Policy.tid
│   │   │   ├── Tiddlers.tid
│   │   │   ├── TiddlyDesktop.tid
│   │   │   ├── TiddlySpace.tid
│   │   │   ├── TiddlySpot.tid
│   │   │   ├── TiddlyWeb.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   ├── TiddlyWiki5.tid
│   │   │   ├── TiddlyWikiClassic.tid
│   │   │   ├── TiddlyWikiFolders.tid
│   │   │   ├── TiddlyWiki_Hangouts.tid
│   │   │   ├── TiddlyWiki_Video_Tutorials_by_Francis_Meetze.tid
│   │   │   ├── TiddlyWiki_in_the_Sky_for_TiddlyWeb.tid
│   │   │   ├── TiddlyWiki_on_Firefox_for_Android_Video.tid
│   │   │   ├── TiddlyWiki_on_Node.js.tid
│   │   │   ├── TitleField.tid
│   │   │   ├── Title_List.tid
│   │   │   ├── Title_Selection.tid
│   │   │   ├── Tutorials.tid
│   │   │   ├── Typography.tid
│   │   │   ├── Uninstalling_a_plugin.tid
│   │   │   ├── Upgrading.tid
│   │   │   ├── Upgrading_TiddlyWiki_on_Node.js.tid
│   │   │   ├── UsingSVG.tid
│   │   │   ├── Using_Stylesheets.tid
│   │   │   ├── Using_TiddlyWiki_on_Node.js.tid
│   │   │   ├── Using_links_to_navigate_between_tiddlers.tid
│   │   │   ├── Videos.tid
│   │   │   ├── What_happened_to_the_original_TiddlyWiki_.tid
│   │   │   ├── WidgetMessage__tm-add-field.tid
│   │   │   ├── WidgetMessage__tm-add-tag.tid
│   │   │   ├── WidgetMessage__tm-auto-save-wiki.tid
│   │   │   ├── WidgetMessage__tm-browser-refresh.tid
│   │   │   ├── WidgetMessage__tm-cancel-tiddler.tid
│   │   │   ├── WidgetMessage__tm-clear-password.tid
│   │   │   ├── WidgetMessage__tm-close-all-tiddlers.tid
│   │   │   ├── WidgetMessage__tm-close-other-tiddlers.tid
│   │   │   ├── WidgetMessage__tm-close-tiddler.tid
│   │   │   ├── WidgetMessage__tm-delete-tiddler.tid
│   │   │   ├── WidgetMessage__tm-download-file.tid
│   │   │   ├── WidgetMessage__tm-edit-tiddler.tid
│   │   │   ├── WidgetMessage__tm-full-screen.tid
│   │   │   ├── WidgetMessage__tm-home.tid
│   │   │   ├── WidgetMessage__tm-import-tiddlers.tid
│   │   │   ├── WidgetMessage__tm-login.tid
│   │   │   ├── WidgetMessage__tm-logout.tid
│   │   │   ├── WidgetMessage__tm-modal.tid
│   │   │   ├── WidgetMessage__tm-navigate.tid
│   │   │   ├── WidgetMessage__tm-new-tiddler.tid
│   │   │   ├── WidgetMessage__tm-notify.tid
│   │   │   ├── WidgetMessage__tm-perform-import.tid
│   │   │   ├── WidgetMessage__tm-permalink.tid
│   │   │   ├── WidgetMessage__tm-permaview.tid
│   │   │   ├── WidgetMessage__tm-remove-field.tid
│   │   │   ├── WidgetMessage__tm-remove-tag.tid
│   │   │   ├── WidgetMessage__tm-save-tiddler.tid
│   │   │   ├── WidgetMessage__tm-save-wiki.tid
│   │   │   ├── WidgetMessage__tm-server-refresh.tid
│   │   │   ├── WidgetMessage__tm-set-password.tid
│   │   │   ├── Windows_HTA_Hack.tid
│   │   │   ├── Working_with_TiddlyWiki.tid
│   │   │   ├── _A_Thesis_Notebook__by_Alberto_Molina.tid
│   │   │   ├── _PETTIL_-_Forth_for_the_Commodore_PET__by_Charlie_Hitselberger.tid
│   │   │   ├── _TiddlyWiki_for_Scholars__by_Alberto_Molina.tid
│   │   │   ├── images/
│   │   │   │   ├── favicon.png.meta
│   │   │   │   └── green_favicon.png.meta
│   │   │   ├── prueba.tid
│   │   │   ├── system/
│   │   │   │   ├── download-empty-button.tid
│   │   │   │   ├── download-empty.tid
│   │   │   │   └── language.tid
│   │   │   ├── task.tid
│   │   │   └── tv-auto-open-on-import_Variable.tid
│   │   └── tiddlywiki.info
│   ├── es-ES-server/
│   │   ├── tiddlers/
│   │   │   ├── config-Navigation-UpdateAddressBar.tid
│   │   │   ├── config-more-button.tid
│   │   │   └── system/
│   │   │       └── favicon.png.meta
│   │   └── tiddlywiki.info
│   ├── fr-FR/
│   │   ├── tiddlers/
│   │   │   ├── $ _config_ViewTemplateTitleFilters_fr-default.tid
│   │   │   ├── $ _core_ui_ViewTemplate_title_fr-default.tid
│   │   │   ├── $__Acknowledgements.tid
│   │   │   ├── $__ContributionBanner.tid
│   │   │   ├── $__CurvedText.tid
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__SiteSubtitle.tid
│   │   │   ├── $__core_ui_DefaultSearchResultList.tid
│   │   │   ├── $__core_ui_ListItemTemplate.tid
│   │   │   ├── $__deprecated.tid
│   │   │   ├── $__editions_fr-FR_CSS Stylesheets_mesStyles.tid
│   │   │   ├── $__editions_fr-FR_CSS Stylesheets_utils.tid
│   │   │   ├── $__editions_fr-FR_CSS stylesheets_latex.tid
│   │   │   ├── $__editions_fr-FR_Macros_list.tid
│   │   │   ├── $__editions_fr-FR_Macros_timeline-title.tid
│   │   │   ├── $__editions_fr-FR_Macros_toc-caption.tid
│   │   │   ├── $__editions_fr-FR_Macros_wikitexte-exemple.tid
│   │   │   ├── $__editions_tw5.com_doc-macros.tid
│   │   │   ├── $__editions_tw5.com_macro-examples_say-hi-using-variables.tid
│   │   │   ├── $__editions_tw5.com_macro-examples_say-hi.tid
│   │   │   ├── $__editions_tw5.com_operator-macros.tid
│   │   │   ├── $__editions_tw5.com_railroad_macro-parameter-value.tid
│   │   │   ├── $__editions_tw5.com_variable-macros.tid
│   │   │   ├── $__editions_tw5.com_version-macros.tid
│   │   │   ├── $__language_Help_build.tid
│   │   │   ├── $__plugins_tiddlywiki_railroad_readme.tid
│   │   │   ├── $__plugins_tiddlywiki_railroad_syntax-string.tid
│   │   │   ├── $__plugins_tiddlywiki_railroad_syntax.tid
│   │   │   ├── About.tid
│   │   │   ├── Acknowledgements.tid
│   │   │   ├── Adding_a_Twitter_Follow_button.tid
│   │   │   ├── Adopt a Titles Policy.tid
│   │   │   ├── AllTiddlers.tid
│   │   │   ├── Articles.tid
│   │   │   ├── AutoSave.tid
│   │   │   ├── BT Acquisition.tid
│   │   │   ├── BT.tid
│   │   │   ├── Base64.tid
│   │   │   ├── BrowserCompatibility.tid
│   │   │   ├── BuildCommand.tid
│   │   │   ├── ButtonWidget.tid
│   │   │   ├── CamelCase.tid
│   │   │   ├── Cascading_Style_Sheets.tid
│   │   │   ├── Changes to filters in 5.0.9-beta.tid
│   │   │   ├── Chinese (Simplified) Edition.tid
│   │   │   ├── Chinese (Traditional) Edition.tid
│   │   │   ├── CodeMirror_Plugin.tid
│   │   │   ├── Codes HTML.tid
│   │   │   ├── ColourPalettes.tid
│   │   │   ├── Comma-Separated_Values.tid
│   │   │   ├── Commands.tid
│   │   │   ├── Community Links Aggregator.tid
│   │   │   ├── Community.tid
│   │   │   ├── Compose ballad.tid
│   │   │   ├── Concepts.tid
│   │   │   ├── Configurations.tid
│   │   │   ├── ContentType.tid
│   │   │   ├── Contents.tid
│   │   │   ├── Contributing.tid
│   │   │   ├── ContributingTemplate.tid
│   │   │   ├── Contributors.tid
│   │   │   ├── Copying_tiddlers_between_TiddlyWiki_files.tid
│   │   │   ├── Core_Variables.tid
│   │   │   ├── Creating and editing tiddlers.tid
│   │   │   ├── Creating_SubStories.tid
│   │   │   ├── Creating_a_custom_export_format.tid
│   │   │   ├── Creating_journal_tiddlers.tid
│   │   │   ├── Current_Tiddler.tid
│   │   │   ├── Customise TiddlyWiki.tid
│   │   │   ├── Customising_search_results.tid
│   │   │   ├── D3_Plugin.tid
│   │   │   ├── DataTiddlers.tid
│   │   │   ├── Data_URI.tid
│   │   │   ├── DateFormat.tid
│   │   │   ├── Date_Fields.tid
│   │   │   ├── Definitions.tid
│   │   │   ├── Deprecated - What does it mean.tid
│   │   │   ├── Developers.tid
│   │   │   ├── Development of TiddlyWiki5.tid
│   │   │   ├── DictionaryTiddlers.tid
│   │   │   ├── Discover TiddlyWiki.tid
│   │   │   ├── Document_Object_Model.tid
│   │   │   ├── Documentation Style Guide.tid
│   │   │   ├── Documentation pour les traducteurs.tid
│   │   │   ├── Documentation_Macros.tid
│   │   │   ├── Dominant_Append.tid
│   │   │   ├── DraftMechanism.tid
│   │   │   ├── EditTextWidget.tid
│   │   │   ├── Editing_Tiddlers_with_Emacs.tid
│   │   │   ├── Editions.tid
│   │   │   ├── Empty Edition.tid
│   │   │   ├── Encryption.tid
│   │   │   ├── Environment Variables on Node.js.tid
│   │   │   ├── Example_Table_of_Contents__Expandable.tid
│   │   │   ├── Examples.tid
│   │   │   ├── Exporter un sous-ensemble de tiddlers.tid
│   │   │   ├── ExternalImages.tid
│   │   │   ├── Features.tid
│   │   │   ├── Federatial.tid
│   │   │   ├── FederatialLimited.tid
│   │   │   ├── Filter Expression.tid
│   │   │   ├── Filter Parameter.tid
│   │   │   ├── Filter Run.tid
│   │   │   ├── Filter Step.tid
│   │   │   ├── Filter Syntax.tid
│   │   │   ├── Filter Whitespace.tid
│   │   │   ├── FilterOperator_ fields.tid
│   │   │   ├── FilterOperators.tid
│   │   │   ├── Filter_Operators.tid
│   │   │   ├── Filters.tid
│   │   │   ├── First.tid
│   │   │   ├── FirstOne.tid
│   │   │   ├── FirstThree.tid
│   │   │   ├── FirstTwo.tid
│   │   │   ├── Formatting text in TiddlyWiki.tid
│   │   │   ├── Forums.tid
│   │   │   ├── French (France) Edition.tid
│   │   │   ├── Full_Edition.tid
│   │   │   ├── Future.tid
│   │   │   ├── Future_Proof.tid
│   │   │   ├── German (Austria) Edition.tid
│   │   │   ├── German (Germany) Edition.tid
│   │   │   ├── Get the Ring.tid
│   │   │   ├── Getting Started Video.tid
│   │   │   ├── GettingStarted - Android.tid
│   │   │   ├── GettingStarted - Chrome.tid
│   │   │   ├── GettingStarted - Firefox.tid
│   │   │   ├── GettingStarted - Internet Explorer.tid
│   │   │   ├── GettingStarted - Node.js.tid
│   │   │   ├── GettingStarted - Safari.tid
│   │   │   ├── GettingStarted - iOS.tid
│   │   │   ├── GettingStarted.tid
│   │   │   ├── GitHub.tid
│   │   │   ├── Glossaire en-GB -_ fr-FR.tid
│   │   │   ├── Go to Mordor.tid
│   │   │   ├── GroupedLists.tid
│   │   │   ├── Growth of TiddlyWiki.tid
│   │   │   ├── HTML in WikiText.tid
│   │   │   ├── Hard_and_Soft_Links.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── HelloThumbnail - Classic.tid
│   │   │   ├── HelloThumbnail - Developers.tid
│   │   │   ├── HelloThumbnail - Gentle Guide.tid
│   │   │   ├── HelloThumbnail - HelpingTiddlyWiki.tid
│   │   │   ├── HelloThumbnail - Introduction Video.tid
│   │   │   ├── HelloThumbnail - Latest Version.tid
│   │   │   ├── HelpingTiddlyWiki.tid
│   │   │   ├── Highlight_Plugin.tid
│   │   │   ├── History of TiddlyWiki.tid
│   │   │   ├── HistoryMechanism.tid
│   │   │   ├── How to add a banner for GitHub contributions.tid
│   │   │   ├── How to add a new tab to the sidebar.tid
│   │   │   ├── How to build a TiddlyWiki5 from individual tiddlers.tid
│   │   │   ├── How to export tiddlers.tid
│   │   │   ├── How_to_apply_custom_styles_by_tag.tid
│   │   │   ├── How_to_put_the_last_modification_date_in_a_banner.tid
│   │   │   ├── HyperText_Markup_Language.tid
│   │   │   ├── ImageGallery Example.tid
│   │   │   ├── ImageWidget.tid
│   │   │   ├── Images in WikiText.tid
│   │   │   ├── Importing Tiddlers.tid
│   │   │   ├── Improving TiddlyWiki Documentation.tid
│   │   │   ├── InfoPanel.tid
│   │   │   ├── Informations pour les traducteurs.tid
│   │   │   ├── Instruction_Tiddlers.tid
│   │   │   ├── Introducing TiddlyDesktop Video.tid
│   │   │   ├── Introduction Video.tid
│   │   │   ├── Introduction to Filters.tid
│   │   │   ├── Introduction_to_filter_notation.tid
│   │   │   ├── JSONTiddlers.tid
│   │   │   ├── JavaScript.tid
│   │   │   ├── JavaScript_Object_Notation.tid
│   │   │   ├── JeremyRuston.tid
│   │   │   ├── Jermolene.tid
│   │   │   ├── KaTeX_Plugin.tid
│   │   │   ├── KeyboardShortcuts.tid
│   │   │   ├── Kill the Dragon.tid
│   │   │   ├── Languages.tid
│   │   │   ├── Latest.tid
│   │   │   ├── Launch of TiddlyWiki.tid
│   │   │   ├── LazyLoading.tid
│   │   │   ├── Learning.tid
│   │   │   ├── Leaving BT.tid
│   │   │   ├── Lexique.tid
│   │   │   ├── Linking in WikiText.tid
│   │   │   ├── ListField.tid
│   │   │   ├── ListWidget.tid
│   │   │   ├── MacroCallWidget.tid
│   │   │   ├── Macro_Call_Syntax.tid
│   │   │   ├── Macro_Calls_in_WikiText_(Examples).tid
│   │   │   ├── Macro_Definition_Syntax.tid
│   │   │   ├── Macro_Definitions_in_WikiText.tid
│   │   │   ├── Macro_Syntax.tid
│   │   │   ├── Macros in WikiText.tid
│   │   │   ├── Macros.tid
│   │   │   ├── Make the beds.tid
│   │   │   ├── MakeLibraryCommand.tid
│   │   │   ├── Making curved text with SVG.tid
│   │   │   ├── Markdown Plugin.tid
│   │   │   ├── Markdown.tid
│   │   │   ├── MathML.tid
│   │   │   ├── Mechanisms.tid
│   │   │   ├── Meetups.tid
│   │   │   ├── Messages.tid
│   │   │   ├── ModuleType.tid
│   │   │   ├── Modules.tid
│   │   │   ├── Motovun Jack.svg.tid
│   │   │   ├── NW.js.tid
│   │   │   ├── Navigating between open tiddlers.tid
│   │   │   ├── Node.js.tid
│   │   │   ├── NowMacro.tid
│   │   │   ├── Obadiah_TOC.tid
│   │   │   ├── OpenSource.tid
│   │   │   ├── Order_of_Tagged_Tiddlers.tid
│   │   │   ├── Origins of Tiddlywiki.tid
│   │   │   ├── Osmosoft and TiddlySpace.tid
│   │   │   ├── Osmosoft.tid
│   │   │   ├── PESpot_Lesson_Planner_by_Patrick_Detzner.tid
│   │   │   ├── Page and tiddler layout customisation.tid
│   │   │   ├── Percent_Encoding.tid
│   │   │   ├── PermaLinks.tid
│   │   │   ├── Philosophy of Tiddlers.tid
│   │   │   ├── Platforms.tid
│   │   │   ├── Plugins.tid
│   │   │   ├── Preserving_open_tiddlers_at_startup.tid
│   │   │   ├── Quine.tid
│   │   │   ├── Railroad_Plugin.tid
│   │   │   ├── ReadMe.tid
│   │   │   ├── ReadMeBinFolder.tid
│   │   │   ├── Reference.tid
│   │   │   ├── Reference_Tiddlers.tid
│   │   │   ├── Release 5.1.2.tid
│   │   │   ├── ReleaseTemplate.tid
│   │   │   ├── Release_5.1.8.tid
│   │   │   ├── Releases.tid
│   │   │   ├── ReportingBugs.tid
│   │   │   ├── Resources.tid
│   │   │   ├── RevealWidget.tid
│   │   │   ├── RoadMap.tid
│   │   │   ├── SafeMode.tid
│   │   │   ├── Sainte_Anastasie.png.tid
│   │   │   ├── SampleNotification.tid
│   │   │   ├── SampleTabFour.tid
│   │   │   ├── SampleTabOne.tid
│   │   │   ├── SampleTabThree.tid
│   │   │   ├── SampleTabTwo.tid
│   │   │   ├── SampleWizard.tid
│   │   │   ├── SampleWizard2.tid
│   │   │   ├── Saving with the HTML5 saver.tid
│   │   │   ├── Scalability.tid
│   │   │   ├── Searching_in_TiddlyWiki.tid
│   │   │   ├── Selection_Constructors.tid
│   │   │   ├── SetVariableWidget.tid
│   │   │   ├── SetWidget.tid
│   │   │   ├── Setting a favicon.tid
│   │   │   ├── Setting_a_page_background_image.tid
│   │   │   ├── ShadowTiddlers.tid
│   │   │   ├── Share Plugin.tid
│   │   │   ├── Sharing a TiddlyWiki on Dropbox.tid
│   │   │   ├── Sharing your tiddlers with others.tid
│   │   │   ├── Simple_Zork-like_Game_by_Jed_Carty.tid
│   │   │   ├── Some of the things you can do with TiddlyWiki.tid
│   │   │   ├── Spelling.tid
│   │   │   ├── Structuring TiddlyWiki.tid
│   │   │   ├── Styles and Classes in WikiText.tid
│   │   │   ├── SystemTags.tid
│   │   │   ├── SystemTiddlers.tid
│   │   │   ├── TW2Parser_Plugin.tid
│   │   │   ├── TabbedExampleType.tid
│   │   │   ├── Table-of-Contents_Macros.tid
│   │   │   ├── Table-of-Contents_Macros_(Examples).tid
│   │   │   ├── TableOfContents.tid
│   │   │   ├── TableOfContentsMacro Expandable Example.tid
│   │   │   ├── TableOfContentsMacro Selective Expandable Example.tid
│   │   │   ├── TableOfContentsMacro Simple Example.tid
│   │   │   ├── TableOfContentsMacro Sorted Expandable Example.tid
│   │   │   ├── TableOfContentsMacro Tabbed Example.tid
│   │   │   ├── TableOfContentsMacro Tabbed External Example.tid
│   │   │   ├── TableOfContentsMacro.tid
│   │   │   ├── TabsMacro.tid
│   │   │   ├── TagTiddlers.tid
│   │   │   ├── Tagging.tid
│   │   │   ├── TaskManagementExample.tid
│   │   │   ├── Technical_Prose_Style.tid
│   │   │   ├── TemplateTiddlers.tid
│   │   │   ├── Ten reasons to switch to TiddlyWiki.tid
│   │   │   ├── TextReference.tid
│   │   │   ├── The First Rule of Using TiddlyWiki.tid
│   │   │   ├── Third.tid
│   │   │   ├── TiddlerFields.tid
│   │   │   ├── TiddlerFiles.tid
│   │   │   ├── TiddlerLinks.tid
│   │   │   ├── Tiddler_Structure.tid
│   │   │   ├── Tiddler_Title_Policy.tid
│   │   │   ├── Tiddlers.tid
│   │   │   ├── TiddlyFox Apocalypse.tid
│   │   │   ├── TiddlyFox.tid
│   │   │   ├── TiddlyWiki Hangouts.tid
│   │   │   ├── TiddlyWiki on Firefox for Android Video.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   ├── TiddlyWiki2ReadMe.tid
│   │   │   ├── TiddlyWiki5.tid
│   │   │   ├── TiddlyWiki5_Versioning.tid
│   │   │   ├── TiddlyWikiFiles.tid
│   │   │   ├── TiddlyWikiFolders.tid
│   │   │   ├── TiddlyWiki_Releases.tid
│   │   │   ├── TiddlyWiki_in_the_Sky_for_TiddlyWeb.tid
│   │   │   ├── Tirets.tid
│   │   │   ├── Title_List.tid
│   │   │   ├── Title_Selection.tid
│   │   │   ├── Transclusion.tid
│   │   │   ├── Transclusion_Basic_Usage.tid
│   │   │   ├── Tutorials.tid
│   │   │   ├── URI.tid
│   │   │   ├── Upgrading TiddlyWiki on Node.js.tid
│   │   │   ├── Upgrading.tid
│   │   │   ├── Using TiddlyWiki on Node.js.tid
│   │   │   ├── UsingSVG.tid
│   │   │   ├── Using_Stylesheets.tid
│   │   │   ├── Using_links_to_navigate_between_tiddlers.tid
│   │   │   ├── Variables.tid
│   │   │   ├── ViewWidget.tid
│   │   │   ├── What happened to the original TiddlyWiki_.tid
│   │   │   ├── WidgetMessage_ tm-home.tid
│   │   │   ├── Widgets.tid
│   │   │   ├── Wiki.tid
│   │   │   ├── Working with TiddlyWiki.tid
│   │   │   ├── _A Thesis Notebook_ by Alberto Molina.tid
│   │   │   ├── _BJTools_ by buggyj.tid
│   │   │   ├── _BrainTest - tools for a digital brain_ by Danielo Rodriguez.tid
│   │   │   ├── _Briefcase_ by Roma Hicks.tid
│   │   │   ├── _CouchDB Adaptor_ by William Shallum.tid
│   │   │   ├── _PETTIL - Forth for the Commodore PET_ by Charlie Hitselberger.tid
│   │   │   ├── _TiddlyWiki for Scholars_ by Alberto Molina.tid
│   │   │   ├── _TiddlyWiki guide FR_ by Sylvain Naudin.tid
│   │   │   ├── _TiddlyWiki5 Bourbon_ by mkt_memory.tid
│   │   │   ├── _Un wiki sur votre BiblioBox avec TiddlyWiki.tid
│   │   │   ├── community/
│   │   │   │   ├── editions/
│   │   │   │   │   └── _Noteself_ by Danielo Rodriguez.tid
│   │   │   │   └── resources/
│   │   │   │       ├── TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid
│   │   │   │       ├── TiddlyDrive Add-on for Google Drive by Joshua Stubbs.tid
│   │   │   │       ├── TiddlyServer by Arlen Beiler.tid
│   │   │   │       ├── Twexe_ Single File Tiddlywiki5 executable.tid
│   │   │   │       ├── _Timimi_ Extension and executable by Riz.tid
│   │   │   │       ├── _file-backups_ Extension for Firefox by pmario.tid
│   │   │   │       └── _savetiddlers_ Extension for Firefox by buggyj.tid
│   │   │   ├── concepts/
│   │   │   │   ├── Pragma.tid
│   │   │   │   └── WikiText.tid
│   │   │   ├── currentTiddler_Variable.tid
│   │   │   ├── currentTiddler_Variable_(Examples).tid
│   │   │   ├── definitions/
│   │   │   │   └── TiddlyDesktop.tid
│   │   │   ├── done.tid
│   │   │   ├── dumpvariables_Macro.tid
│   │   │   ├── dumpvariables_Macro_(Examples).tid
│   │   │   ├── gettingstarted/
│   │   │   │   ├── GettingStarted - Internet Explorer.tid
│   │   │   │   └── GettingStarted - Safari.tid
│   │   │   ├── hellothere/
│   │   │   │   └── A Gentle Guide to TiddlyWiki.tid
│   │   │   ├── howtos/
│   │   │   │   ├── How to Customize TiddlyDesktop.tid
│   │   │   │   └── Windows HTA Hack.tid
│   │   │   ├── images/
│   │   │   │   ├── favicon.png.meta
│   │   │   │   └── green_favicon.png.meta
│   │   │   ├── list-links_Macro.tid
│   │   │   ├── list-links_Macro_(Examples).tid
│   │   │   ├── nodejs/
│   │   │   │   ├── Installing TiddlyWiki on Node.js.tid
│   │   │   │   ├── Serving TW5 from Android.tid
│   │   │   │   └── TiddlyWiki on Node.js.tid
│   │   │   ├── sampletag1.tid
│   │   │   ├── sampletag2.tid
│   │   │   ├── saving/
│   │   │   │   ├── Emergency Tiddler Export.tid
│   │   │   │   ├── Example config-tiddlyweb-host for IIS.tid
│   │   │   │   ├── Example package.json for IIS.tid
│   │   │   │   ├── Example tiddlywiki.info for IIS.tid
│   │   │   │   ├── Example web.config for IIS.tid
│   │   │   │   ├── Installing TiddlyWiki on Microsoft Internet Information Server.tid
│   │   │   │   ├── Saving on Android.tid
│   │   │   │   ├── Saving on Browser with File System Access API.tid
│   │   │   │   ├── Saving on TidGi Desktop.tid
│   │   │   │   ├── Saving on TiddlyDesktop.tid
│   │   │   │   ├── Saving on TiddlyHost.tid
│   │   │   │   ├── Saving on TiddlySpot.tid
│   │   │   │   ├── Saving on a PHP Server.tid
│   │   │   │   ├── Saving on iPad_iPhone.tid
│   │   │   │   ├── Saving to a Git service.tid
│   │   │   │   ├── Saving via WebDAV.tid
│   │   │   │   ├── Saving via a Minimal Ruby Server.tid
│   │   │   │   ├── Saving with Polly.tid
│   │   │   │   ├── Saving with TW Receiver.tid
│   │   │   │   ├── Saving with TiddlyFox on Android.tid
│   │   │   │   ├── Saving with TiddlyFox.tid
│   │   │   │   ├── Saving with TiddlyIE.tid
│   │   │   │   ├── Saving with the HTML5 fallback saver.tid
│   │   │   │   ├── Saving.tid
│   │   │   │   └── TiddlyWiki Cloud.tid
│   │   │   ├── storyTiddler_Variable.tid
│   │   │   ├── system/
│   │   │   │   ├── $__core_macros_list.tid
│   │   │   │   ├── $__core_macros_tag.tid
│   │   │   │   ├── $__core_ui_SideBar_Open.tid
│   │   │   │   ├── $__core_ui_TagPickerTagTemplate.tid
│   │   │   │   ├── $__editions_fr-FR_util-macros.tid
│   │   │   │   ├── $__editions_tw5.com_wikitext-macros.tid
│   │   │   │   ├── download-empty-button.tid
│   │   │   │   ├── download-empty.tid
│   │   │   │   ├── language.tid
│   │   │   │   └── tw5.com-card-template.tid
│   │   │   ├── task.tid
│   │   │   ├── tiddlydesktop/
│   │   │   │   └── TiddlyDesktop_Releases.tid
│   │   │   ├── widgets/
│   │   │   │   └── TranscludeWidget.tid
│   │   │   └── wikitext/
│   │   │       ├── Block Quotes in WikiText.tid
│   │   │       ├── Code Blocks in WikiText.tid
│   │   │       ├── Dashes in WikiText.tid
│   │   │       ├── Definitions in WikiText.tid
│   │   │       ├── Formatting in WikiText.tid
│   │   │       ├── Hard Linebreaks in WikiText.tid
│   │   │       ├── Headings in WikiText.tid
│   │   │       ├── Horizontal Rules in WikiText.tid
│   │   │       ├── Lists in WikiText.tid
│   │   │       ├── Macro Calls in WikiText.tid
│   │   │       ├── Paragraphs in WikiText.tid
│   │   │       ├── Tables in WikiText.tid
│   │   │       ├── Transclusion and Substitution.tid
│   │   │       ├── Transclusion in WikiText.tid
│   │   │       ├── Transclusion with Templates.tid
│   │   │       ├── Typed Blocks in WikiText.tid
│   │   │       ├── Variables in WikiText.tid
│   │   │       ├── Widgets in WikiText.tid
│   │   │       └── parser/
│   │   │           ├── Block Mode WikiText (Examples).tid
│   │   │           ├── Block Mode WikiText.tid
│   │   │           ├── Inline Mode WikiText.tid
│   │   │           ├── Places where the parser ignores WikiText.tid
│   │   │           ├── WikiText Parser Modes.tid
│   │   │           ├── WikiText parser mode HTML examples.tid
│   │   │           ├── WikiText parser mode transitions.tid
│   │   │           ├── WikiText parser mode_ macro examples.tid
│   │   │           ├── WikiText parser mode_ transclusion examples.tid
│   │   │           └── table-example.tid
│   │   └── tiddlywiki.info
│   ├── fr-FR-server/
│   │   ├── tiddlers/
│   │   │   ├── config-Navigation-UpdateAddressBar.tid
│   │   │   ├── config-more-button.tid
│   │   │   └── system/
│   │   │       └── favicon.png.meta
│   │   └── tiddlywiki.info
│   ├── full/
│   │   ├── tiddlers/
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   └── Startup-SetLanguage.tid
│   │   └── tiddlywiki.info
│   ├── geospatialdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── Features.tid
│   │   │   ├── Flickr Demo.tid
│   │   │   ├── Geospatial Plugin Logo.png.meta
│   │   │   ├── HelloThere.tid
│   │   │   ├── Markers.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── cascades/
│   │   │   │   └── ViewTemplateBodyFilters.tid
│   │   │   ├── cities/
│   │   │   │   ├── LimehouseTownHall-image.jpeg.meta
│   │   │   │   ├── LimehouseTownHall.tid
│   │   │   │   ├── Motovun-image.jpeg.meta
│   │   │   │   ├── Motovun.tid
│   │   │   │   ├── NewYork-image.jpeg.meta
│   │   │   │   ├── NewYork.tid
│   │   │   │   ├── Oxford-image.jpeg.meta
│   │   │   │   ├── Oxford.tid
│   │   │   │   ├── Toronto-image.jpeg.meta
│   │   │   │   ├── Toronto.tid
│   │   │   │   ├── Winchester-image.jpeg.meta
│   │   │   │   └── Winchester.tid
│   │   │   ├── config/
│   │   │   │   ├── FeatureVisbility.multids
│   │   │   │   └── flickr-param.multids
│   │   │   ├── default-import-spec.tid
│   │   │   ├── favicon.png.meta
│   │   │   ├── features/
│   │   │   │   ├── canada-census-subdivision-millesime-popuptemplate.tid
│   │   │   │   ├── canada-census-subdivision-millesime.geojson
│   │   │   │   ├── canada-census-subdivision-millesime.geojson.meta
│   │   │   │   ├── denver-bikerental.tid
│   │   │   │   ├── denver-campus.tid
│   │   │   │   ├── denver-freebus.tid
│   │   │   │   ├── denver-lightrail.tid
│   │   │   │   ├── harvard-glb-volc-geojson-popuptemplate.tid
│   │   │   │   ├── harvard-glb-volc-geojson.json
│   │   │   │   ├── harvard-glb-volc-geojson.json.meta
│   │   │   │   ├── natural-earth-countries-low-res-popuptemplate.tid
│   │   │   │   ├── natural-earth-countries-low-res.json
│   │   │   │   ├── natural-earth-countries-low-res.json.meta
│   │   │   │   ├── us-states-popuptemplate.tid
│   │   │   │   ├── us-states.geojson
│   │   │   │   └── us-states.geojson.meta
│   │   │   ├── real-estate-demo/
│   │   │   │   ├── real-estate-demo.tid
│   │   │   │   ├── schema.json
│   │   │   │   ├── schema.json.meta
│   │   │   │   └── xlsx-utils-import-specs/
│   │   │   │       ├── PropertiesRow.tid
│   │   │   │       ├── PropertiesRowFieldAddress.tid
│   │   │   │       ├── PropertiesRowFieldBroker.tid
│   │   │   │       ├── PropertiesRowFieldCity.tid
│   │   │   │       ├── PropertiesRowFieldLat.tid
│   │   │   │       ├── PropertiesRowFieldLong.tid
│   │   │   │       ├── PropertiesRowFieldPrice.tid
│   │   │   │       ├── PropertiesRowFieldSalesAgent.tid
│   │   │   │       ├── PropertiesRowFieldState.tid
│   │   │   │       ├── PropertiesRowFieldTags.tid
│   │   │   │       ├── PropertiesRowFieldTitle.tid
│   │   │   │       ├── PropertiesRowFieldZipCode.tid
│   │   │   │       ├── PropertiesSheet.tid
│   │   │   │       └── workbook.tid
│   │   │   ├── sidebarlayout.tid
│   │   │   └── ui/
│   │   │       ├── geofeature.tid
│   │   │       ├── geomarker.tid
│   │   │       └── popuptemplate.tid
│   │   └── tiddlywiki.info
│   ├── highlightdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── HighlightExample.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   └── SiteTitle.tid
│   │   └── tiddlywiki.info
│   ├── innerwikidemo/
│   │   ├── tiddlers/
│   │   │   ├── HelloThere.tid
│   │   │   ├── screenshot-7-anchor-1-x.tid
│   │   │   ├── screenshot-7-anchor-1-y.tid
│   │   │   └── system/
│   │   │       ├── $__coreURL.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       └── SiteTitle.tid
│   │   └── tiddlywiki.info
│   ├── introduction/
│   │   ├── themes/
│   │   │   └── hidefurniture/
│   │   │       ├── base.tid
│   │   │       └── plugin.info
│   │   ├── tiddlers/
│   │   │   ├── audio/
│   │   │   │   └── TiddlyWiki.mp3.meta
│   │   │   ├── images/
│   │   │   │   ├── Motovun Jack Big.jpg.meta
│   │   │   │   └── Motovun Jack.svg.meta
│   │   │   ├── slides/
│   │   │   │   ├── Audio.tid
│   │   │   │   ├── CecilyMap.tid
│   │   │   │   ├── Customisation.tid
│   │   │   │   ├── Formatting.tid
│   │   │   │   ├── FormattingDemoText.tid
│   │   │   │   ├── Get Started.tid
│   │   │   │   ├── Images.tid
│   │   │   │   ├── Links.tid
│   │   │   │   ├── Lists.tid
│   │   │   │   ├── Other Story Views.tid
│   │   │   │   ├── Plugins.tid
│   │   │   │   ├── Story Views.tid
│   │   │   │   ├── Tags.tid
│   │   │   │   ├── Themes.tid
│   │   │   │   ├── This is a tag.tid
│   │   │   │   ├── This is another tag.tid
│   │   │   │   ├── Tiddlers.tid
│   │   │   │   ├── TiddlyWiki.tid
│   │   │   │   ├── Transclusion.tid
│   │   │   │   ├── Translations.tid
│   │   │   │   └── blank.json
│   │   │   └── system/
│   │   │       ├── AnimationDuration.tid
│   │   │       ├── BitmapEditorColour.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── page-toolbar-buttons.multids
│   │   │       ├── state-sidebar.tid
│   │   │       ├── styles.tid
│   │   │       ├── theme.tid
│   │   │       ├── view-toolbar-buttons.multids
│   │   │       └── view.tid
│   │   └── tiddlywiki.info
│   ├── ja-JP/
│   │   ├── tiddlers/
│   │   │   ├── $_config_ViewTemplateSubtitle_original-modified.tid
│   │   │   ├── $_config_ViewTemplateTitleFilters_ja-default.tid
│   │   │   ├── $_core_ui_ViewTemplate_title_ja-default.tid
│   │   │   ├── $_editions_ja-JP_Macros_list.tid
│   │   │   ├── $_editions_ja-JP_Macros_timeline-title.tid
│   │   │   ├── $_editions_ja-JP_Macros_toc-caption.tid
│   │   │   ├── $_plugins_tiddlywiki_menubar_items_contents.tid
│   │   │   ├── Hidden Setting_ Import Content Types for Editor.tid
│   │   │   ├── TiddlyWiki Docs PR Maker.tid
│   │   │   ├── Welcome.tid
│   │   │   ├── _TiddlyStudy_ by Kebi.tid
│   │   │   ├── _tw_shared/
│   │   │   │   ├── sites/
│   │   │   │   │   ├── classic.tiddlywiki.com.tid
│   │   │   │   │   ├── links.tiddlywiki.org.tid
│   │   │   │   │   ├── marketplace.tid
│   │   │   │   │   ├── talk.tiddlywiki.org.tid
│   │   │   │   │   ├── tiddlywiki.com.dev.tid
│   │   │   │   │   ├── tiddlywiki.com.prerelease.tid
│   │   │   │   │   ├── tiddlywiki.com.tid
│   │   │   │   │   ├── tiddlywiki.com.upgrade.tid
│   │   │   │   │   └── tiddlywiki.org.tid
│   │   │   │   └── sites.tid
│   │   │   ├── about/
│   │   │   │   ├── About.tid
│   │   │   │   ├── Acknowledgements.tid
│   │   │   │   ├── Archive.tid
│   │   │   │   ├── Contributors.tid
│   │   │   │   ├── Developers.tid
│   │   │   │   ├── Funding TiddlyWiki.tid
│   │   │   │   ├── History of TiddlyWiki.tid
│   │   │   │   ├── License.tid
│   │   │   │   ├── Open Collective.tid
│   │   │   │   ├── Philosophy of Tiddlers.tid
│   │   │   │   ├── The Story of TiddlyWiki.tid
│   │   │   │   └── TiddlyWiki Anniversaries.tid
│   │   │   ├── commands/
│   │   │   │   ├── BuildCommand.tid
│   │   │   │   ├── ClearPasswordCommand.tid
│   │   │   │   ├── Commands.tid
│   │   │   │   ├── CommandsCommand.tid
│   │   │   │   ├── DeleteTiddlersCommand.tid
│   │   │   │   ├── EditionsCommand.tid
│   │   │   │   ├── FetchCommand.tid
│   │   │   │   ├── HelpCommand.tid
│   │   │   │   ├── ImportCommand.tid
│   │   │   │   ├── InitCommand.tid
│   │   │   │   ├── ListenCommand.tid
│   │   │   │   ├── LoadCommand.tid
│   │   │   │   ├── MakeLibraryCommand.tid
│   │   │   │   ├── NamedCommandParameters.tid
│   │   │   │   ├── OutputCommand.tid
│   │   │   │   ├── PasswordCommand.tid
│   │   │   │   ├── RenderCommand.tid
│   │   │   │   ├── RenderTiddlerCommand.tid
│   │   │   │   ├── RenderTiddlersCommand.tid
│   │   │   │   ├── SaveCommand.tid
│   │   │   │   ├── SaveTiddlerCommand.tid
│   │   │   │   ├── SaveTiddlersCommand.tid
│   │   │   │   ├── SaveWikiFolderCommand.tid
│   │   │   │   ├── ServerCommand.tid
│   │   │   │   ├── SetFieldCommand.tid
│   │   │   │   ├── UnpackPluginCommand.tid
│   │   │   │   ├── VerboseCommand.tid
│   │   │   │   └── VersionCommand.tid
│   │   │   ├── community/
│   │   │   │   ├── Articles.tid
│   │   │   │   ├── Community Editions.tid
│   │   │   │   ├── Community Links Aggregator.tid
│   │   │   │   ├── Community Palettes.tid
│   │   │   │   ├── Community Plugins.tid
│   │   │   │   ├── Community Themes.tid
│   │   │   │   ├── Community.tid
│   │   │   │   ├── Examples.tid
│   │   │   │   ├── Forums.tid
│   │   │   │   ├── Improving TiddlyWiki Documentation.tid
│   │   │   │   ├── Latest.tid
│   │   │   │   ├── Meetups.tid
│   │   │   │   ├── OXTWIG.tid
│   │   │   │   ├── Other Resources.tid
│   │   │   │   ├── Resources.tid
│   │   │   │   ├── TiddlyWiki European Meetup 2016.tid
│   │   │   │   ├── TiddlyWiki European Meetup 2017.tid
│   │   │   │   ├── TiddlyWiki Hangouts.tid
│   │   │   │   ├── TiddlyWiki Newsletter.tid
│   │   │   │   ├── TiddlyWiki on the Web.tid
│   │   │   │   ├── Translate TiddlyWiki into your language.tid
│   │   │   │   ├── Tutorials.tid
│   │   │   │   ├── articles/
│   │   │   │   │   ├── _A free, open source wiki revisited_ by Mark Gibbs, NetworkWorld.tid
│   │   │   │   │   ├── _Notizen mit TiddlyWiki systemubergreifend nutzen_ by Michael Sonntag.tid
│   │   │   │   │   ├── _Setting Up a Personal TiddlyWiki Server on OS X_ by Kris Johnson.tid
│   │   │   │   │   ├── _TiddlyWiki 5 im Betatest_ by besim.tid
│   │   │   │   │   └── _TiddlyWiki_ by Sander de Boer.tid
│   │   │   │   ├── docs/
│   │   │   │   │   ├── Community Cards Caveats.tid
│   │   │   │   │   ├── Community Cards.tid
│   │   │   │   │   ├── Displaying Community Cards.tid
│   │   │   │   │   └── Submitting a Community Card.tid
│   │   │   │   ├── editions/
│   │   │   │   │   ├── Drift by Tony K.tid
│   │   │   │   │   ├── Stroll by David Gifford.tid
│   │   │   │   │   ├── Tidme by oflg.tid
│   │   │   │   │   ├── _Cardo-A Task and Project Management Wiki_ by David_Szego.tid
│   │   │   │   │   └── _Noteself_ by Danielo Rodriguez.tid
│   │   │   │   ├── examples/
│   │   │   │   │   ├── A Thesis Notebook.tid
│   │   │   │   │   ├── GitFixUm.tid
│   │   │   │   │   ├── PESpot Lesson Planner by Patrick Detzner.tid
│   │   │   │   │   ├── PETTIL.tid
│   │   │   │   │   ├── Simple Zork like Game.tid
│   │   │   │   │   ├── TriTarget.org by Devin Weaver.tid
│   │   │   │   │   └── _Lucky Sushi_ online shop by sini-Kit.tid
│   │   │   │   ├── plugins/
│   │   │   │   │   ├── GSD5.tid
│   │   │   │   │   ├── TW5-Graph by Flibbles.tid
│   │   │   │   │   └── TiddlyWiki for Scholars.tid
│   │   │   │   ├── project/
│   │   │   │   │   ├── TiddlyWiki People.tid
│   │   │   │   │   ├── TiddlyWiki Project.tid
│   │   │   │   │   └── Vacant Positions.tid
│   │   │   │   ├── resources/
│   │   │   │   │   ├── Gospel_Bubbles_by_Rev_David_Gifford.tid
│   │   │   │   │   ├── Projectify by Nicolas Petton.tid
│   │   │   │   │   ├── TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid
│   │   │   │   │   ├── TiddlyDrive Add-on for Google Drive by Joshua Stubbs.tid
│   │   │   │   │   ├── TiddlyServer by Arlen Beiler.tid
│   │   │   │   │   ├── TiddlyWiki Posts.tid
│   │   │   │   │   ├── Twexe_ Single File Tiddlywiki5 executable.tid
│   │   │   │   │   ├── Wikilabs by PMario.tid
│   │   │   │   │   ├── _Timimi_ Extension and executable by Riz.tid
│   │   │   │   │   ├── _file-backups_ Extension Firefox by pmario.tid
│   │   │   │   │   └── _savetiddlers_ Extension for Firefox by buggyj.tid
│   │   │   │   └── tools/
│   │   │   │       └── cards/
│   │   │   │           └── Procedures.tid
│   │   │   ├── concepts/
│   │   │   │   ├── ExternalImages.tid
│   │   │   │   ├── Filters.tid
│   │   │   │   ├── InfoPanel.tid
│   │   │   │   ├── Order of Tagged Tiddlers.tid
│   │   │   │   ├── PermaLinks.tid
│   │   │   │   ├── Selection Constructors.tid
│   │   │   │   ├── TagTiddlers.tid
│   │   │   │   └── TiddlyWikiFolders.tid
│   │   │   ├── customising/
│   │   │   │   ├── Alternative page layouts.tid
│   │   │   │   ├── Configuring startup tiddlers.tid
│   │   │   │   ├── Creating new toolbar buttons.tid
│   │   │   │   ├── Customise TiddlyWiki.tid
│   │   │   │   ├── Customising TiddlyWiki's user interface.tid
│   │   │   │   └── Customising search results.tid
│   │   │   ├── definitions/
│   │   │   │   └── TiddlyDesktop.tid
│   │   │   ├── demonstrations/
│   │   │   │   ├── KeyboardDrivenInput/
│   │   │   │   │   └── Demonstration_ keyboard-driven-input Macro.tid
│   │   │   │   ├── SampleNotification.tid
│   │   │   │   ├── SampleWizard.tid
│   │   │   │   ├── SampleWizard2.tid
│   │   │   │   └── Tasks/
│   │   │   │       ├── Compose ballad.tid
│   │   │   │       ├── Get the Ring.tid
│   │   │   │       ├── Go to Mordor.tid
│   │   │   │       ├── Kill the Dragon.tid
│   │   │   │       ├── Make the beds.tid
│   │   │   │       ├── TaskManagementExample.tid
│   │   │   │       ├── TaskManagementExampleDraggable.tid
│   │   │   │       ├── TaskManagementExampleDraggableTemplate.tid
│   │   │   │       ├── done.tid
│   │   │   │       └── task.tid
│   │   │   ├── editions/
│   │   │   │   ├── Blog Edition.tid
│   │   │   │   ├── Editions.tid
│   │   │   │   ├── Empty Edition.tid
│   │   │   │   ├── Full Edition.tid
│   │   │   │   ├── Résumé Builder Edition.tid
│   │   │   │   ├── Text Slicer Edition.tid
│   │   │   │   └── XLSX Utilities Edition.tid
│   │   │   ├── features/
│   │   │   │   ├── AutoSave.tid
│   │   │   │   ├── Core Icons.tid
│   │   │   │   ├── DateFormat.tid
│   │   │   │   ├── Deserializers.tid
│   │   │   │   ├── Drag and Drop.tid
│   │   │   │   ├── Features.tid
│   │   │   │   ├── Future Proof.tid
│   │   │   │   ├── Importing Tiddlers.tid
│   │   │   │   ├── JSON in TiddlyWiki.tid
│   │   │   │   ├── LazyLoading.tid
│   │   │   │   ├── Modals.tid
│   │   │   │   ├── Notifications.tid
│   │   │   │   ├── Performance Instrumentation.tid
│   │   │   │   ├── SafeMode.tid
│   │   │   │   ├── Scalability.tid
│   │   │   │   ├── Searching in TiddlyWiki.tid
│   │   │   │   └── StartupActions.tid
│   │   │   ├── fileformats/
│   │   │   │   ├── MultiTiddlerFileSyntax.tid
│   │   │   │   ├── MultiTiddlerFiles.tid
│   │   │   │   └── TiddlerFiles.tid
│   │   │   ├── filters/
│   │   │   │   ├── Introduction to filter notation.tid
│   │   │   │   └── syntax/
│   │   │   │       ├── All Filter Run Prefix.tid
│   │   │   │       ├── And Filter Run Prefix.tid
│   │   │   │       ├── Cascade Filter Run Prefix (Examples).tid
│   │   │   │       ├── Cascade Filter Run Prefix.tid
│   │   │   │       ├── Else Filter Run Prefix.tid
│   │   │   │       ├── Except Filter Run Prefix.tid
│   │   │   │       ├── Filter Expression.tid
│   │   │   │       ├── Filter Filter Run Prefix (Examples).tid
│   │   │   │       ├── Filter Filter Run Prefix.tid
│   │   │   │       ├── Filter Parameter.tid
│   │   │   │       ├── Filter Run Prefix.tid
│   │   │   │       ├── Filter Run.tid
│   │   │   │       ├── Filter Step.tid
│   │   │   │       ├── Filter Syntax.tid
│   │   │   │       ├── Filter Whitespace.tid
│   │   │   │       ├── Interchangeable Filter Run Prefixes.tid
│   │   │   │       ├── Intersection Filter Run Prefix (Examples).tid
│   │   │   │       ├── Intersection Filter Run Prefix.tid
│   │   │   │       ├── Map Filter Run Prefix (Examples).tid
│   │   │   │       ├── Map Filter Run Prefix.tid
│   │   │   │       ├── Named Filter Run Prefix.tid
│   │   │   │       ├── Or Filter Run Prefix.tid
│   │   │   │       ├── Reduce Filter Run Prefix (Examples).tid
│   │   │   │       ├── Reduce Filter Run Prefix.tid
│   │   │   │       ├── Shortcut Filter Run Prefixes.tid
│   │   │   │       ├── Sort Filter Run Prefix (Examples).tid
│   │   │   │       ├── Sort Filter Run Prefix.tid
│   │   │   │       ├── Then Filter Run Prefix (Examples).tid
│   │   │   │       └── then Filter Run Prefix.tid
│   │   │   ├── gettingstarted/
│   │   │   │   ├── GettingStarted - Android.tid
│   │   │   │   ├── GettingStarted - Chrome.tid
│   │   │   │   ├── GettingStarted - Firefox.tid
│   │   │   │   ├── GettingStarted - Internet Explorer.tid
│   │   │   │   ├── GettingStarted - Node.js.tid
│   │   │   │   ├── GettingStarted - Online.tid
│   │   │   │   ├── GettingStarted - Safari.tid
│   │   │   │   ├── GettingStarted - iOS.tid
│   │   │   │   └── GettingStarted.tid
│   │   │   ├── hellothere/
│   │   │   │   ├── A Gentle Guide to TiddlyWiki.tid
│   │   │   │   ├── Discover TiddlyWiki.tid
│   │   │   │   ├── Find Out More.tid
│   │   │   │   ├── HelloThere.tid
│   │   │   │   ├── HelloThumbnail.tid
│   │   │   │   ├── Some of the things you can do with TiddlyWiki.tid
│   │   │   │   ├── Ten reasons to switch to TiddlyWiki.tid
│   │   │   │   ├── Testimonials and Reviews.tid
│   │   │   │   ├── What happened to the original TiddlyWiki_.tid
│   │   │   │   ├── quickstart/
│   │   │   │   │   ├── Quick Start.tid
│   │   │   │   │   ├── desktop.tid
│   │   │   │   │   ├── diy.tid
│   │   │   │   │   ├── tiddlyhost.tid
│   │   │   │   │   └── xememex.tid
│   │   │   │   └── thumbnails/
│   │   │   │       ├── HelloThumbnail - Community Survey.tid
│   │   │   │       ├── HelloThumbnail - Funding.tid
│   │   │   │       ├── HelloThumbnail - Grok TiddlyWiki.tid
│   │   │   │       ├── HelloThumbnail - Intertwingled Innovations.tid
│   │   │   │       ├── HelloThumbnail - Introduction Video.tid
│   │   │   │       ├── HelloThumbnail - Latest Version.tid
│   │   │   │       ├── HelloThumbnail - Marketplace.tid
│   │   │   │       ├── HelloThumbnail - MultiWikiServer.tid
│   │   │   │       ├── HelloThumbnail - Newsletter.tid
│   │   │   │       ├── HelloThumbnail - TW5-Graph.tid
│   │   │   │       ├── HelloThumbnail - TiddlyWiki Privacy.tid
│   │   │   │       ├── HelloThumbnail - TiddlyWikiLinks.tid
│   │   │   │       └── HelloThumbnail - Twenty Years of TiddlyWiki.tid
│   │   │   ├── hiddensettings/
│   │   │   │   ├── Hidden Setting Content to be displayed for empty story.tid
│   │   │   │   ├── Hidden Setting Default Story Ordering.tid
│   │   │   │   ├── Hidden Setting Default Tiddler Colour.tid
│   │   │   │   ├── Hidden Setting Default Tiddler Icon.tid
│   │   │   │   ├── Hidden Setting EditTabIndex.tid
│   │   │   │   ├── Hidden Setting HtmlParserDisableSandbox.tid
│   │   │   │   ├── Hidden Setting NewImageType.tid
│   │   │   │   ├── Hidden Setting SaveWikiButton Filename.tid
│   │   │   │   ├── Hidden Setting SaveWikiButton Template.tid
│   │   │   │   ├── Hidden Setting Search-NavigateOnEnter.tid
│   │   │   │   ├── Hidden Setting SearchMinLength.tid
│   │   │   │   ├── Hidden Setting ShowEditPreviewPerTiddler.tid
│   │   │   │   ├── Hidden Setting Sync System Tiddlers From Server.tid
│   │   │   │   ├── Hidden Setting SyncLogging.tid
│   │   │   │   ├── Hidden Setting SyncPollingInterval.tid
│   │   │   │   ├── Hidden Setting TagsMinLength.tid
│   │   │   │   ├── Hidden Setting ViewTemplate and EditTemplate.tid
│   │   │   │   ├── Hidden Setting_ Disable Drag and Drop.tid
│   │   │   │   ├── Hidden Setting_ Disable Lazy Loading.tid
│   │   │   │   ├── Hidden Setting_ Enable File Import in Editor_1.tid
│   │   │   │   ├── Hidden Setting_ More Tabs Horizontal.tid
│   │   │   │   ├── Hidden Setting_ Scroll Top Adjustment.tid
│   │   │   │   ├── Hidden Setting_ Search AutoFocus.tid
│   │   │   │   ├── Hidden Setting_ Tag Pill Drag Filter.tid
│   │   │   │   ├── Hidden Setting_ Typin Refresh Delay.tid
│   │   │   │   └── Hidden Settings.tid
│   │   │   ├── hire-jeremy/
│   │   │   │   ├── Hire Jeremy Sidebar Segment.tid
│   │   │   │   └── HireJeremy.tid
│   │   │   ├── howtos/
│   │   │   │   ├── Adding a Twitter Follow button.tid
│   │   │   │   ├── Adding_a_table_of_contents_to_the_sidebar.tid
│   │   │   │   ├── Adopt a Titles Policy.tid
│   │   │   │   ├── Concatenating text and variables using macro substitution.tid
│   │   │   │   ├── Configuring the default TiddlerInfo tab.tid
│   │   │   │   ├── Constructing JSON tiddlers.tid
│   │   │   │   ├── Creating SubStories.tid
│   │   │   │   ├── Creating a custom export format.tid
│   │   │   │   ├── Creating a splash screen.tid
│   │   │   │   ├── Custom Styles by title.tid
│   │   │   │   ├── Custom Styles by userClass.tid
│   │   │   │   ├── Custom tag pill styles.tid
│   │   │   │   ├── Custom_Attribute_Selectors.tid
│   │   │   │   ├── Custom_Styles_FAQ.tid
│   │   │   │   ├── Custom_styles_by_data-tags.tid
│   │   │   │   ├── Debugging Stylesheets.tid
│   │   │   │   ├── Editing Tiddlers with Emacs.tid
│   │   │   │   ├── Editing Tiddlers with Vim.tid
│   │   │   │   ├── Editor toolbar.tid
│   │   │   │   ├── Formatting List Results as Tables with CSS - Specified Columns Methods.tid
│   │   │   │   ├── Formatting List Results as Tables with CSS - Variable Column Method.tid
│   │   │   │   ├── Formatting_List_Results_as_Tables_(no_CSS).tid
│   │   │   │   ├── Generating Static Sites with TiddlyWiki.tid
│   │   │   │   ├── Height of text editor.tid
│   │   │   │   ├── How to add a banner for GitHub contributions.tid
│   │   │   │   ├── How to apply custom styles by tag.tid
│   │   │   │   ├── How to apply custom styles.tid
│   │   │   │   ├── How to build a TiddlyWiki5 from individual tiddlers.tid
│   │   │   │   ├── How to change the sort order of sub-branches in a TOC macro.tid
│   │   │   │   ├── How to create a custom story tiddler template.tid
│   │   │   │   ├── How to create a custom tiddler colour rule.tid
│   │   │   │   ├── How to create a custom tiddler icon rule.tid
│   │   │   │   ├── How to create keyboard shortcuts.tid
│   │   │   │   ├── How to customize TiddlyDesktop.tid
│   │   │   │   ├── How to embed PDF and other documents.tid
│   │   │   │   ├── How to export tiddlers.tid
│   │   │   │   ├── How to hide the authors and other fields with CSS.tid
│   │   │   │   ├── How to put the last modification date in a banner.tid
│   │   │   │   ├── How to update TiddlyWiki to the latest version.tid
│   │   │   │   ├── How to widen tiddlers (aka story river).tid
│   │   │   │   ├── How_to_add_a_new_tab_to_the_sidebar.tid
│   │   │   │   ├── How_to_turn_off_camel_case_linking.tid
│   │   │   │   ├── Insert link.tid
│   │   │   │   ├── Insert picture.tid
│   │   │   │   ├── KeyboardShortcuts.tid
│   │   │   │   ├── Making a custom journal button.tid
│   │   │   │   ├── Making curved text with SVG.tid
│   │   │   │   ├── Modifying JSON tiddlers.tid
│   │   │   │   ├── More actions.tid
│   │   │   │   ├── Preserving open tiddlers at startup.tid
│   │   │   │   ├── Reading data from JSON tiddlers.tid
│   │   │   │   ├── Setting a favicon.tid
│   │   │   │   ├── Setting a page background image.tid
│   │   │   │   ├── Sharing a TiddlyWiki on Dropbox.tid
│   │   │   │   ├── Simple ways to write protect tiddlers.tid
│   │   │   │   ├── Structuring TiddlyWiki.tid
│   │   │   │   ├── Tagging.tid
│   │   │   │   ├── Text preview.tid
│   │   │   │   ├── The First Rule of Using TiddlyWiki.tid
│   │   │   │   ├── Upgrading.tid
│   │   │   │   ├── Using Excise.tid
│   │   │   │   ├── Using SVG.tid
│   │   │   │   ├── Using Stamp.tid
│   │   │   │   ├── Using Stylesheets.tid
│   │   │   │   ├── Using TiddlyWiki for GitHub project documentation.tid
│   │   │   │   ├── Using a custom path prefix with the client-server edition.tid
│   │   │   │   ├── Visible Transclusions.tid
│   │   │   │   ├── Windows HTA Hack.tid
│   │   │   │   └── faq/
│   │   │   │       ├── csFAQ_dynamic_stylesheet.tid
│   │   │   │       ├── csFAQ_how_can_i_use_custom_field.tid
│   │   │   │       ├── csFAQ_what_if_tiddler_has_no_tags.tid
│   │   │   │       ├── csFAQ_what_this_and_that_tag.tid
│   │   │   │       └── csFAQ_what_this_or_that_tag.tid
│   │   │   ├── images/
│   │   │   │   ├── Icon Gallery.tid
│   │   │   │   ├── favicon.png.meta
│   │   │   │   └── green_favicon.png.meta
│   │   │   ├── languages/
│   │   │   │   ├── Castellano (Espana) Edition.tid
│   │   │   │   ├── Chinese (Simplified) Edition.tid
│   │   │   │   ├── Chinese (Traditional) Edition.tid
│   │   │   │   ├── French (France) Edition.tid
│   │   │   │   ├── German (Austria) Edition.tid
│   │   │   │   ├── German (Germany) Edition.tid
│   │   │   │   ├── Japanese (Japan) Edition.tid
│   │   │   │   ├── Korean (Korea Republic) Edition.tid
│   │   │   │   └── Languages.tid
│   │   │   ├── learning/
│   │   │   │   ├── Copying tiddlers between TiddlyWiki files.tid
│   │   │   │   ├── Introduction to Lists.tid
│   │   │   │   └── Learning.tid
│   │   │   ├── marketplace/
│   │   │   │   └── TiddlyWiki Marketplace.tid
│   │   │   ├── mechanisms/
│   │   │   │   ├── AlertMechanism.tid
│   │   │   │   └── DragAndDropMechanism.tid
│   │   │   ├── menubar/
│   │   │   │   └── gettingstarted.tid
│   │   │   ├── nodejs/
│   │   │   │   ├── Building TiddlyWikiClassic.tid
│   │   │   │   ├── Customising Tiddler File Naming.tid
│   │   │   │   ├── Environment Variables on Node.js.tid
│   │   │   │   ├── Installing TiddlyWiki Prerelease on Node.js.tid
│   │   │   │   ├── Installing TiddlyWiki on Node.js.tid
│   │   │   │   ├── Installing custom plugins on Node.js.tid
│   │   │   │   ├── Installing official plugins on Node.js.tid
│   │   │   │   ├── Scripts for TiddlyWiki on Node.js.tid
│   │   │   │   ├── Serving TW5 from Android.tid
│   │   │   │   ├── TiddlyWiki on Node.js.tid
│   │   │   │   ├── Uninstalling a plugin with Node.js.tid
│   │   │   │   ├── Upgrading TiddlyWiki on Node.js.tid
│   │   │   │   ├── Using TiddlyWiki on Node.js.tid
│   │   │   │   ├── Working with the TiddlyWiki5 repository.tid
│   │   │   │   ├── tiddlywiki.files_Files.tid
│   │   │   │   └── tiddlywiki.info_Files.tid
│   │   │   ├── platforms/
│   │   │   │   └── Platforms.tid
│   │   │   ├── plugins/
│   │   │   │   ├── Amazon Web Services Plugin.tid
│   │   │   │   ├── BrowserStorage Plugin.tid
│   │   │   │   ├── CodeMirror Plugin.tid
│   │   │   │   ├── Consent Banner Plugin.tid
│   │   │   │   ├── D3 Plugin.tid
│   │   │   │   ├── Dynaview Plugin.tid
│   │   │   │   ├── External Attachments Plugin.tid
│   │   │   │   ├── Highlight Plugin.tid
│   │   │   │   ├── Innerwiki Plugin.tid
│   │   │   │   ├── Installing a plugin from the plugin library.tid
│   │   │   │   ├── JSZip Plugin.tid
│   │   │   │   ├── KaTeX Plugin.tid
│   │   │   │   ├── Manually installing a plugin.tid
│   │   │   │   ├── Markdown Plugin.tid
│   │   │   │   ├── Mobile Drag And Drop Shim Plugin.tid
│   │   │   │   ├── OfficialPlugins.tid
│   │   │   │   ├── Plugin Editions.tid
│   │   │   │   ├── Plugin Ordering.tid
│   │   │   │   ├── Plugins.tid
│   │   │   │   ├── Railroad Plugin.tid
│   │   │   │   ├── SaveTrail Plugin.tid
│   │   │   │   ├── Share Plugin.tid
│   │   │   │   ├── TW2Parser Plugin.tid
│   │   │   │   ├── Twitter Plugin.tid
│   │   │   │   └── Uninstalling a plugin.tid
│   │   │   ├── releasenotes/
│   │   │   │   └── Releases.tid
│   │   │   ├── roadmap/
│   │   │   │   └── RoadMap.tid
│   │   │   ├── saving/
│   │   │   │   ├── Emergency Tiddler Export.tid
│   │   │   │   ├── Encryption.tid
│   │   │   │   ├── Example config-tiddlyweb-host for IIS.txt
│   │   │   │   ├── Example config-tiddlyweb-host for IIS.txt.meta
│   │   │   │   ├── Example package.json for IIS.txt
│   │   │   │   ├── Example package.json for IIS.txt.meta
│   │   │   │   ├── Example tiddlywiki.info for IIS.txt
│   │   │   │   ├── Example tiddlywiki.info for IIS.txt.meta
│   │   │   │   ├── Example web.config for IIS.txt
│   │   │   │   ├── Example web.config for IIS.txt.meta
│   │   │   │   ├── Installing TiddlyWiki on Microsoft Internet Information Server.tid
│   │   │   │   ├── Saving on Android.tid
│   │   │   │   ├── Saving on Browser with TiddlyStow.tid
│   │   │   │   ├── Saving on Browser with the File System Access API.tid
│   │   │   │   ├── Saving on TidGi.tid
│   │   │   │   ├── Saving on TiddlyDesktop.tid
│   │   │   │   ├── Saving on TiddlyHost.tid
│   │   │   │   ├── Saving on a PHP Server.tid
│   │   │   │   ├── Saving on iPad_iPhone.tid
│   │   │   │   ├── Saving to a Git service.tid
│   │   │   │   ├── Saving via WebDAV.tid
│   │   │   │   ├── Saving via a Minimal Web Server.tid
│   │   │   │   ├── Saving via minimal Ruby server.tid
│   │   │   │   ├── Saving with Polly.tid
│   │   │   │   ├── Saving with TW Receiver.tid
│   │   │   │   ├── Saving with TiddlyFox.tid
│   │   │   │   ├── Saving with TiddlyIE.tid
│   │   │   │   ├── Saving with TiddlyPWA.tid
│   │   │   │   ├── Saving with the HTML5 saver.tid
│   │   │   │   ├── Saving.tid
│   │   │   │   ├── TiddlyBucket - Save to AWS or Google Storage.tid
│   │   │   │   └── TiddlyWiki in the Sky for Dropbox.tid
│   │   │   ├── system/
│   │   │   │   ├── $_core_macros_list.tid
│   │   │   │   ├── $_core_macros_tag.tid
│   │   │   │   ├── $_core_ui_SideBar_Open.tid
│   │   │   │   ├── $_core_ui_TagPickerTagTemplate.tid
│   │   │   │   ├── TableOfContents.tid
│   │   │   │   ├── download-empty-button.tid
│   │   │   │   ├── download-empty.tid
│   │   │   │   └── language.tid
│   │   │   ├── testimonials/
│   │   │   │   ├── Testimonials - Joe Armstrong.tid
│   │   │   │   ├── Testimonials - Network World.tid
│   │   │   │   └── Testimonials - Product Hunt.tid
│   │   │   ├── videos/
│   │   │   │   ├── Getting Started Video.tid
│   │   │   │   ├── Introducing TiddlyDesktop Video.tid
│   │   │   │   ├── Introduction Video.tid
│   │   │   │   ├── TiddlyWiki on Firefox for Android Video.tid
│   │   │   │   ├── Videos.tid
│   │   │   │   └── Working with the TiddlyWiki5 repository video.tid
│   │   │   ├── wikitext/
│   │   │   │   ├── Images in WikiText.tid
│   │   │   │   └── Styles and Classes in WikiText.tid
│   │   │   └── workingwithtw/
│   │   │       ├── Audio.tid
│   │   │       ├── BrowserCompatibility.tid
│   │   │       ├── Creating and editing tiddlers.tid
│   │   │       ├── Creating journal tiddlers.tid
│   │   │       ├── Formatting text in TiddlyWiki.tid
│   │   │       ├── Navigating between open tiddlers.tid
│   │   │       ├── Performance.tid
│   │   │       ├── Sharing your tiddlers with others.tid
│   │   │       ├── Using links to navigate between tiddlers.tid
│   │   │       └── Working with TiddlyWiki.tid
│   │   └── tiddlywiki.info
│   ├── katexdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__coreURL.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── KaTeX.tid
│   │   │   ├── LaTeX.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   └── TiddlyWiki5.tid
│   │   └── tiddlywiki.info
│   ├── ko-KR/
│   │   ├── tiddlers/
│   │   │   ├── images/
│   │   │   │   ├── favicon.png.meta
│   │   │   │   └── green_favicon.png.meta
│   │   │   └── system/
│   │   │       ├── $--core-ui-DefaultSearchResultList.tid
│   │   │       ├── $--core-ui-ListItemTemplate.tid
│   │   │       ├── $--core-ui-SideBar-Open.tid
│   │   │       ├── $--core-ui-TagTemplate.tid
│   │   │       ├── $--core-ui-ViewTemplate-title.tid
│   │   │       ├── $--editions-ko-KR-Macros-list.tid
│   │   │       ├── $--editions-ko-KR-Macros-timeline-title.tid
│   │   │       ├── $--editions-ko-KR-Macros-toc-caption.tid
│   │   │       ├── ContributionBanner.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── Sources.tid
│   │   │       ├── StaticBanner.tid
│   │   │       ├── download-empty-button.tid
│   │   │       ├── download-empty.tid
│   │   │       ├── language.tid
│   │   │       └── static.content.tid
│   │   └── tiddlywiki.info
│   ├── ko-KR-server/
│   │   ├── tiddlers/
│   │   │   ├── config-Navigation-UpdateAddressBar.tid
│   │   │   ├── config-more-button.tid
│   │   │   └── system/
│   │   │       └── favicon.png.meta
│   │   └── tiddlywiki.info
│   ├── markdowndemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── DefaultMissingType.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── MarkdownTutorial.tid
│   │   │   ├── QuickDemo.tid
│   │   │   ├── QuickDemoSource.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   └── SiteTitle.tid
│   │   └── tiddlywiki.info
│   ├── pluginlibrary/
│   │   ├── tiddlers/
│   │   │   ├── GettingStarted.tid
│   │   │   ├── PrereleaseLocalPluginLibrary.tid
│   │   │   ├── meta/
│   │   │   │   ├── SiteSubtitle.tid
│   │   │   │   └── SiteTitle.tid
│   │   │   └── system/
│   │   │       └── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   └── tiddlywiki.info
│   ├── prerelease/
│   │   ├── tiddlers/
│   │   │   ├── SaveTrailPlugin-enable.tid
│   │   │   ├── palette.tid
│   │   │   ├── sidebarlayout.tid
│   │   │   ├── sidebarwidth.tid
│   │   │   ├── system/
│   │   │   │   ├── DefaultTiddlers.tid
│   │   │   │   ├── PrereleaseLocalPluginLibrary.tid
│   │   │   │   ├── PrereleaseOfficialPluginLibrary.tid
│   │   │   │   ├── SiteDomain.tid
│   │   │   │   ├── SitePreviewUrl.tid
│   │   │   │   ├── SiteSubtitle.tid
│   │   │   │   ├── SiteTitle.tid
│   │   │   │   ├── SiteUrl.tid
│   │   │   │   ├── TiddlyWiki Pre-release.tid
│   │   │   │   ├── configPerformanceInstrumentation.tid
│   │   │   │   ├── configWikiParserRulesInlineWikilink.tid
│   │   │   │   ├── download-empty.tid
│   │   │   │   ├── favicon.png.meta
│   │   │   │   ├── stickytitles.tid
│   │   │   │   ├── styles.tid
│   │   │   │   └── temp-my-scroll-position.tid
│   │   │   ├── theme.tid
│   │   │   └── view.tid
│   │   └── tiddlywiki.info
│   ├── resumebuilder/
│   │   ├── tiddlers/
│   │   │   ├── Edit Existing Items.tid
│   │   │   ├── Preview and Set Options.tid
│   │   │   ├── Preview.tid
│   │   │   ├── Print Version.tid
│   │   │   ├── Resume Options.tid
│   │   │   ├── Resume Wizard.tid
│   │   │   ├── Top Bar Buttons.tid
│   │   │   ├── data/
│   │   │   │   ├── $__data_Personal Information.tid
│   │   │   │   ├── $__data_ResumeList.tid
│   │   │   │   ├── $__data_ResumeTitle_Resume.tid
│   │   │   │   └── $__data_ResumeTitle_Resume2.tid
│   │   │   ├── display/
│   │   │   │   ├── $__display_Contact Information Display.tid
│   │   │   │   ├── $__display_Education Display.tid
│   │   │   │   ├── $__display_Objective Display.tid
│   │   │   │   ├── $__display_Previous Employment Display.tid
│   │   │   │   ├── $__display_Resume Title Display.tid
│   │   │   │   └── $__display_Skills and Expertise Display.tid
│   │   │   ├── documentation/
│   │   │   │   ├── Help.tid
│   │   │   │   └── Making a new section.tid
│   │   │   ├── input/
│   │   │   │   ├── $__input_Contact Information.tid
│   │   │   │   ├── $__input_Education.tid
│   │   │   │   ├── $__input_ObjectiveInput1.tid
│   │   │   │   ├── $__input_ObjectiveInput2.tid
│   │   │   │   ├── $__input_Previous Employment.tid
│   │   │   │   ├── $__input_Resume Title.tid
│   │   │   │   ├── $__input_Resume Title2.tid
│   │   │   │   └── $__input_Skills and Expertise.tid
│   │   │   ├── options/
│   │   │   │   ├── $__options_Contact Information Options.tid
│   │   │   │   ├── $__options_Education Options.tid
│   │   │   │   ├── $__options_Objective Options.tid
│   │   │   │   ├── $__options_Previous Employment Options.tid
│   │   │   │   ├── $__options_Skills Options.tid
│   │   │   │   ├── $__options_Title Options.tid
│   │   │   │   └── Layout Options.tid
│   │   │   ├── settings/
│   │   │   │   ├── $__settings_Default_Contact Information Display.tid
│   │   │   │   ├── $__settings_Default_Education Display.tid
│   │   │   │   ├── $__settings_Default_Objective Display.tid
│   │   │   │   ├── $__settings_Default_Objective.tid
│   │   │   │   ├── $__settings_Default_Previous Employment Display.tid
│   │   │   │   ├── $__settings_Default_Resume Title Display.tid
│   │   │   │   ├── $__settings_Default_ResumeTitle.tid
│   │   │   │   ├── $__settings_Default_Skills and Expertise Display.tid
│   │   │   │   └── $__settings_Global.tid
│   │   │   ├── system/
│   │   │   │   ├── $__DefaultTiddlers.tid
│   │   │   │   ├── $__SiteSubtitle.tid
│   │   │   │   ├── $__SiteTitle.tid
│   │   │   │   ├── $__config_DefaultSidebarTab.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__core_ui_Buttons_new-tiddler.tid
│   │   │   │   ├── $__core_ui_SideBar_More.tid
│   │   │   │   ├── $__core_ui_SideBar_Open.tid
│   │   │   │   ├── $__core_ui_SideBar_Recent.tid
│   │   │   │   ├── $__core_ui_SideBar_Tools.tid
│   │   │   │   └── $__view.tid
│   │   │   ├── temp tiddlers/
│   │   │   │   ├── $__temp_NewSection_InputTiddler.tid
│   │   │   │   ├── $__temp_NewSection_OptionsTiddler.tid
│   │   │   │   ├── $__temp_NewSection_TemplateTiddler.tid
│   │   │   │   └── $__temp_Objective.tid
│   │   │   ├── templates/
│   │   │   │   ├── $__template_ContactInformationTemplate.tid
│   │   │   │   ├── $__template_EducationTemplate.tid
│   │   │   │   ├── $__template_ObjectiveTemplate.tid
│   │   │   │   ├── $__template_ObjectiveTemplate2.tid
│   │   │   │   ├── $__template_PreviousEmploymentTemplate.tid
│   │   │   │   ├── $__template_ResumeTitleTemplate.tid
│   │   │   │   ├── $__template_ResumeTitleTemplate2.tid
│   │   │   │   ├── $__template_SkillsAndExpertiseTemplate.tid
│   │   │   │   └── GenericSectionDisplayTemplate.tid
│   │   │   └── tools/
│   │   │       └── New Section Creation Tool.tid
│   │   └── tiddlywiki.info
│   ├── server/
│   │   └── tiddlywiki.info
│   ├── server-external-js/
│   │   ├── tiddlers/
│   │   │   ├── config/
│   │   │   │   ├── $__DefaultTiddlers.tid
│   │   │   │   └── $__config_SaveWikiButton_Filename.tid
│   │   │   └── external/
│   │   │       └── tiddlywiki.files
│   │   └── tiddlywiki.info
│   ├── share/
│   │   └── tiddlywiki.info
│   ├── test/
│   │   ├── playwright.spec.js
│   │   ├── tiddlers/
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   └── tests/
│   │   │       ├── data/
│   │   │       │   ├── conditionals/
│   │   │       │   │   ├── Basic.tid
│   │   │       │   │   ├── BlockMode.tid
│   │   │       │   │   ├── Else.tid
│   │   │       │   │   ├── Elseif.tid
│   │   │       │   │   ├── MissingEndIf.tid
│   │   │       │   │   ├── MultipleResults.tid
│   │   │       │   │   ├── Nested.tid
│   │   │       │   │   └── NestedElseif.tid
│   │   │       │   ├── csv-cases.tid
│   │   │       │   ├── custom-operators/
│   │   │       │   │   ├── NestedParameterised.tid
│   │   │       │   │   ├── Parameterised.tid
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── data-widget/
│   │   │       │   │   ├── ImportCompound.tid
│   │   │       │   │   ├── ImportCustomTitle.tid
│   │   │       │   │   ├── ImportFilter.tid
│   │   │       │   │   ├── ImportTiddler.tid
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── deserializers/
│   │   │       │   │   ├── case 1.tid
│   │   │       │   │   ├── case 2.tid
│   │   │       │   │   ├── case 3.tid
│   │   │       │   │   ├── case 4.tid
│   │   │       │   │   ├── case 5.tid
│   │   │       │   │   └── case 6.tid
│   │   │       │   ├── filters/
│   │   │       │   │   ├── Base64.tid
│   │   │       │   │   ├── DiffMergePatch1.tid
│   │   │       │   │   ├── DiffMergePatch2.tid
│   │   │       │   │   ├── DiffMergePatch3.tid
│   │   │       │   │   ├── Recursion.tid
│   │   │       │   │   ├── fake-variables.tid
│   │   │       │   │   └── substitute.tid
│   │   │       │   ├── functions/
│   │   │       │   │   ├── FunctionAttributes.tid
│   │   │       │   │   ├── FunctionDefaultValues.tid
│   │   │       │   │   ├── FunctionFilterrunVariables.tid
│   │   │       │   │   ├── FunctionFilterrunVariables2.tid
│   │   │       │   │   ├── FunctionFilterrunVariables3.tid
│   │   │       │   │   ├── FunctionFilterrunVariables4.tid
│   │   │       │   │   ├── FunctionOperator.tid
│   │   │       │   │   ├── FunctionSubstituteResolution.tid
│   │   │       │   │   ├── IndentedFunctions.tid
│   │   │       │   │   ├── MissingFunction.tid
│   │   │       │   │   ├── RunawayRecursiveFunctions.tid
│   │   │       │   │   ├── UndefinedParameters.tid
│   │   │       │   │   ├── VariableLeakage.tid
│   │   │       │   │   ├── VariablesEnumeration.tid
│   │   │       │   │   └── WikifiedFunctions.tid
│   │   │       │   ├── genesis-widget/
│   │   │       │   │   ├── Block.tid
│   │   │       │   │   ├── DollarSigns.tid
│   │   │       │   │   ├── EmptyType.tid
│   │   │       │   │   ├── MultipleAttributes.tid
│   │   │       │   │   ├── RedefineLet.tid
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── importvariables/
│   │   │       │   │   ├── WithSetWidgets.tid
│   │   │       │   │   ├── WithSetWidgets2.tid
│   │   │       │   │   └── WithSetWidgetsAndMacros.tid
│   │   │       │   ├── let-filter-prefix/
│   │   │       │   │   ├── ResultList.tid
│   │   │       │   │   ├── ResultListUnnamedVariable.tid
│   │   │       │   │   ├── ShortcutSyntax.tid
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── list-widget/
│   │   │       │   │   ├── WithEmptyParagraphTemplate.tid
│   │   │       │   │   ├── WithExplicitTemplates.tid
│   │   │       │   │   ├── WithExplicitTemplatesInBlockMode.tid
│   │   │       │   │   ├── WithExplicitTemplatesOverriddenByAttributes.tid
│   │   │       │   │   ├── WithJoinTemplate.tid
│   │   │       │   │   ├── WithJoinTemplateInBlockMode.tid
│   │   │       │   │   ├── WithLimit.tid
│   │   │       │   │   └── WithMissingTemplate.tid
│   │   │       │   ├── macros/
│   │   │       │   │   ├── EndInBody.tid
│   │   │       │   │   ├── IndentedEnd.tid
│   │   │       │   │   ├── MismatchedNamedEnd.tid
│   │   │       │   │   ├── WhitespaceOnlyWithEnd.tid
│   │   │       │   │   ├── WhitespaceOnlyWithEnd2.tid
│   │   │       │   │   ├── dynamic-macros/
│   │   │       │   │   │   ├── Attribute.tid
│   │   │       │   │   │   └── Standalone.tid
│   │   │       │   │   ├── nested-macros/
│   │   │       │   │   │   ├── NestedMacros-indented.tid
│   │   │       │   │   │   ├── NestedMacros-indented2.tid
│   │   │       │   │   │   └── NestedMacros.tid
│   │   │       │   │   ├── trailing-newlines/
│   │   │       │   │   │   └── TrailingNewlines.tid
│   │   │       │   │   └── unusedtitle/
│   │   │       │   │       ├── basic-params-draft-exists.tid
│   │   │       │   │       ├── basic-params-empty-tiddler-exists.tid
│   │   │       │   │       ├── basic-params-empty.tid
│   │   │       │   │       ├── basic-params-tiddlers-exist.tid
│   │   │       │   │       ├── basic-params.tid
│   │   │       │   │       ├── template-empty-params-tiddler-exist.tid
│   │   │       │   │       ├── template-empty-params.tid
│   │   │       │   │       ├── template-startCount.tid
│   │   │       │   │       └── template.tid
│   │   │       │   ├── messages/
│   │   │       │   │   ├── tm-import-tiddler/
│   │   │       │   │   │   ├── CustomTitle.tid
│   │   │       │   │   │   ├── NoAutoOpen.tid
│   │   │       │   │   │   ├── NoAutoOpenViaVar.tid
│   │   │       │   │   │   └── default.tid
│   │   │       │   │   └── tm-new-tiddler/
│   │   │       │   │       ├── create-a-new-tiddler-with-a-tag.tid
│   │   │       │   │       ├── default.tid
│   │   │       │   │       ├── new-from-template-with-tag.tid
│   │   │       │   │       ├── new-from-template-without-tag.tid
│   │   │       │   │       └── new-with-tag.tid
│   │   │       │   ├── multi-valued-variables/
│   │   │       │   │   ├── AttributeFirstValue.tid
│   │   │       │   │   ├── DefaultParameterMVV.tid
│   │   │       │   │   ├── Function.tid
│   │   │       │   │   ├── InlineDisplay.tid
│   │   │       │   │   ├── InlineDisplaySeparator.tid
│   │   │       │   │   ├── InlineFilterDisplay.tid
│   │   │       │   │   ├── InlineFilterDisplaySeparator.tid
│   │   │       │   │   ├── MissingVariable.tid
│   │   │       │   │   ├── NegatedTitle.tid
│   │   │       │   │   ├── Operands.tid
│   │   │       │   │   ├── Parameters.tid
│   │   │       │   │   ├── ParametersShortcut.tid
│   │   │       │   │   ├── Simple.tid
│   │   │       │   │   ├── TranscludeParameter.tid
│   │   │       │   │   ├── TranscludeParameterDirectly.tid
│   │   │       │   │   └── TranscludeParameterFunction.tid
│   │   │       │   ├── pragmas/
│   │   │       │   │   ├── Parsermode-indented.tid
│   │   │       │   │   ├── Parsermode.tid
│   │   │       │   │   ├── WhitespaceAfterPragma.tid
│   │   │       │   │   └── WhitespaceNoPragma.tid
│   │   │       │   ├── procedures/
│   │   │       │   │   ├── EndInBody.tid
│   │   │       │   │   ├── IndentedEnd.tid
│   │   │       │   │   ├── MismatchedNamedEnd.tid
│   │   │       │   │   ├── Nested-indented.tid
│   │   │       │   │   ├── Nested.tid
│   │   │       │   │   ├── TrailingNewlines.tid
│   │   │       │   │   ├── WhitespaceOnlyWithEnd.tid
│   │   │       │   │   └── WhitespaceOnlyWithEnd2.tid
│   │   │       │   ├── reserved-wikitext/
│   │   │       │   │   └── ReservedWikiText.tid
│   │   │       │   ├── serialize/
│   │   │       │   │   ├── Attribute.tid
│   │   │       │   │   ├── BlockRule.tid
│   │   │       │   │   ├── BoldEmphasis.tid
│   │   │       │   │   ├── CodeBlock.tid
│   │   │       │   │   ├── CommentBlock.tid
│   │   │       │   │   ├── CommentInline.tid
│   │   │       │   │   ├── Conditional.tid
│   │   │       │   │   ├── Dash.tid
│   │   │       │   │   ├── DynamicMacroMixed.tid
│   │   │       │   │   ├── DynamicMacroParams.tid
│   │   │       │   │   ├── DynamicWidgetAttribute.tid
│   │   │       │   │   ├── Entity.tid
│   │   │       │   │   ├── ExtLink.tid
│   │   │       │   │   ├── FilteredTranscludeBlock.tid
│   │   │       │   │   ├── FilteredTranscludeInline.tid
│   │   │       │   │   ├── FunctionDefinition.tid
│   │   │       │   │   ├── HardLineBreaks.tid
│   │   │       │   │   ├── Heading.tid
│   │   │       │   │   ├── Html.tid
│   │   │       │   │   ├── Image.tid
│   │   │       │   │   ├── Import.tid
│   │   │       │   │   ├── ItalicEmphasis.tid
│   │   │       │   │   ├── List.tid
│   │   │       │   │   ├── MacroCallBlock.tid
│   │   │       │   │   ├── MacroCallInline.tid
│   │   │       │   │   ├── MacroDef.tid
│   │   │       │   │   ├── Parameters.tid
│   │   │       │   │   ├── ParserMode.tid
│   │   │       │   │   ├── PrettyExtLink.tid
│   │   │       │   │   ├── PrettyLink.tid
│   │   │       │   │   ├── QuoteBlock.tid
│   │   │       │   │   ├── RulesPragma.tid
│   │   │       │   │   ├── SimpleText.tid
│   │   │       │   │   ├── SoftLineBreak.tid
│   │   │       │   │   ├── StrikethroughEmphasis.tid
│   │   │       │   │   ├── StyleBlock.tid
│   │   │       │   │   ├── StyleBlock2.tid
│   │   │       │   │   ├── StyleInline.tid
│   │   │       │   │   ├── SubscriptEmphasis.tid
│   │   │       │   │   ├── SuperscriptEmphasis.tid
│   │   │       │   │   ├── SysLink.tid
│   │   │       │   │   ├── Table.tid
│   │   │       │   │   ├── TranscludeBlock.tid
│   │   │       │   │   ├── TranscludeInline.tid
│   │   │       │   │   ├── TypedBlock1.tid
│   │   │       │   │   ├── TypedBlock2.tid
│   │   │       │   │   ├── UnderscoreEmphasis.tid
│   │   │       │   │   ├── VoidElements.tid
│   │   │       │   │   ├── WikiLink.tid
│   │   │       │   │   └── WikiLinkPrefix.tid
│   │   │       │   ├── tabs-macro/
│   │   │       │   │   ├── expected-test-tabs-horizontal-a.tid
│   │   │       │   │   ├── expected-test-tabs-horizontal-all.tid
│   │   │       │   │   └── expected-test-tabs-vertical.tid
│   │   │       │   ├── this-tiddler/
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── transclude/
│   │   │       │   │   ├── CustomWidget-ActionWidget.tid
│   │   │       │   │   ├── CustomWidget-CodeblockOverride-TextParser.tid
│   │   │       │   │   ├── CustomWidget-Fail.tid
│   │   │       │   │   ├── CustomWidget-Override-Codeblock.tid
│   │   │       │   │   ├── CustomWidget-OverrideTransclude.tid
│   │   │       │   │   ├── CustomWidget-RawAndSlotted.tid
│   │   │       │   │   ├── CustomWidget-Simple-Indented.tid
│   │   │       │   │   ├── CustomWidget-Simple.tid
│   │   │       │   │   ├── CustomWidget-Slotted-Empty.tid
│   │   │       │   │   ├── CustomWidget-Slotted.tid
│   │   │       │   │   ├── CustomWidget-TextWidgetOverride.tid
│   │   │       │   │   ├── CustomWidget-TextWidgetOverrideWithSlot.tid
│   │   │       │   │   ├── CustomWidget-Unoverride-Codeblock.tid
│   │   │       │   │   ├── CustomWidget-VariableAttribute.tid
│   │   │       │   │   ├── JavaScript-Macro.tid
│   │   │       │   │   ├── Macro-Missing.tid
│   │   │       │   │   ├── Macro-Plain.tid
│   │   │       │   │   ├── Macro-Simple.tid
│   │   │       │   │   ├── MissingTarget.tid
│   │   │       │   │   ├── MissingTiddlerAttribute.tid
│   │   │       │   │   ├── MissingTiddlerAttributeFiltered.tid
│   │   │       │   │   ├── Parameterised-Depth.tid
│   │   │       │   │   ├── Parameterised-Mode.tid
│   │   │       │   │   ├── Parameterised-Name-Values.tid
│   │   │       │   │   ├── Parameterised-ParseTreeNodes.tid
│   │   │       │   │   ├── Parameterised-Positional-Shortcut-Parameters.tid
│   │   │       │   │   ├── Parameterised-Positional-Shortcut.tid
│   │   │       │   │   ├── Parameterised-Positional-Variables.tid
│   │   │       │   │   ├── Parameterised-Positional.tid
│   │   │       │   │   ├── Parameterised-Shortcut-Parameters.tid
│   │   │       │   │   ├── Parameterised-Shortcut-ParametersIndented.tid
│   │   │       │   │   ├── Parameterised-Shortcut.tid
│   │   │       │   │   ├── Parameterised-Simple.tid
│   │   │       │   │   ├── Parameterised-SlotFillParseTreeNodes.tid
│   │   │       │   │   ├── Parameterised-Slotted-Missing.tid
│   │   │       │   │   ├── Parameterised-Slotted.tid
│   │   │       │   │   ├── Procedures-Double-Underscore.tid
│   │   │       │   │   ├── Procedures-Whitespace.tid
│   │   │       │   │   ├── Procedures-Whitespace2.tid
│   │   │       │   │   ├── Procedures-Whitespace3.tid
│   │   │       │   │   ├── Recursion.tid
│   │   │       │   │   ├── Typed.tid
│   │   │       │   │   ├── Variable-Refreshing.tid
│   │   │       │   │   └── Variable-Static.tid
│   │   │       │   └── widgets/
│   │   │       │       ├── DataAttributes/
│   │   │       │       │   ├── ButtonWidget-DataAttributes.tid
│   │   │       │       │   ├── CheckboxWidget-DataAttributes.tid
│   │   │       │       │   ├── DraggableWidget-DataAttributes.tid
│   │   │       │       │   ├── DroppableWidget-DataAttributes.tid
│   │   │       │       │   ├── LinkWidget-DataAttributes.tid
│   │   │       │       │   ├── OrderedStyleAttributes.tid
│   │   │       │       │   └── SelectWidget-DataAttributes.tid
│   │   │       │       ├── ElementWidgetEventAttributes.tid
│   │   │       │       ├── ElementWidgetStyleAttributes.tid
│   │   │       │       ├── ElementWidgetStyleAttributes2.tid
│   │   │       │       ├── LetWidgetSelfReferences.tid
│   │   │       │       ├── LetWidgetUndefinedVariable.tid
│   │   │       │       ├── SubstitutedAttributes.tid
│   │   │       │       └── view/
│   │   │       │           ├── ViewWidget-field-format-text-doubleurlencoded.tid
│   │   │       │           ├── ViewWidget-field-format-text-htmlencoded.tid
│   │   │       │           ├── ViewWidget-field-format-text-htmltextencoded.tid
│   │   │       │           ├── ViewWidget-field-format-text-urlencoded.tid
│   │   │       │           ├── ViewWidget-field-format-text.tid
│   │   │       │           ├── ViewWidget-field-index.tid
│   │   │       │           ├── ViewWidget-field-text.tid
│   │   │       │           ├── ViewWidget-field-title.tid
│   │   │       │           └── ViewWidget-format-date-template.tid
│   │   │       ├── from-tw5.com/
│   │   │       │   └── tiddlywiki.files
│   │   │       ├── modules/
│   │   │       │   └── utils/
│   │   │       │       └── test-csv.js
│   │   │       ├── test-action-deletefield.js
│   │   │       ├── test-action-widgets.js
│   │   │       ├── test-backlinks.js
│   │   │       ├── test-backtranscludes.js
│   │   │       ├── test-checkbox-widget.js
│   │   │       ├── test-compare-filter.js
│   │   │       ├── test-deserialize-operator.js
│   │   │       ├── test-deserializers.js
│   │   │       ├── test-fakedom.js
│   │   │       ├── test-filters.js
│   │   │       ├── test-html-parser.js
│   │   │       ├── test-json-filters.js
│   │   │       ├── test-linked-list.js
│   │   │       ├── test-parsetextreference.js
│   │   │       ├── test-plugins.js
│   │   │       ├── test-popup.js
│   │   │       ├── test-prefixes-filter.js
│   │   │       ├── test-tags-operator.js
│   │   │       ├── test-tags.js
│   │   │       ├── test-tiddler.js
│   │   │       ├── test-utils.js
│   │   │       ├── test-widget-event.js
│   │   │       ├── test-widget-getVariableInfo.js
│   │   │       ├── test-widget.js
│   │   │       ├── test-wikitext-parser.js
│   │   │       ├── test-wikitext-serialize.js
│   │   │       ├── test-wikitext-tabs-macro.js
│   │   │       └── test-wikitext.js
│   │   └── tiddlywiki.info
│   ├── testcommonjs/
│   │   ├── tiddlers/
│   │   │   ├── GettingStarted.tid
│   │   │   ├── absolute/
│   │   │   │   ├── b.js
│   │   │   │   ├── program.js
│   │   │   │   └── submodule/
│   │   │   │       └── a.js
│   │   │   ├── allTests.js
│   │   │   ├── cyclic/
│   │   │   │   ├── a.js
│   │   │   │   ├── b.js
│   │   │   │   └── program.js
│   │   │   ├── determinism/
│   │   │   │   ├── program.js
│   │   │   │   └── submodule/
│   │   │   │       └── a.js
│   │   │   ├── exactExports/
│   │   │   │   ├── a.js
│   │   │   │   └── program.js
│   │   │   ├── hasOwnProperty/
│   │   │   │   ├── hasOwnProperty.js
│   │   │   │   ├── program.js
│   │   │   │   └── toString.js
│   │   │   ├── method/
│   │   │   │   ├── a.js
│   │   │   │   └── program.js
│   │   │   ├── missing/
│   │   │   │   └── program.js
│   │   │   ├── monkeys/
│   │   │   │   ├── a.js
│   │   │   │   └── program.js
│   │   │   ├── nested/
│   │   │   │   ├── a/
│   │   │   │   │   └── b/
│   │   │   │   │       └── c/
│   │   │   │   │           └── d.js
│   │   │   │   └── program.js
│   │   │   ├── relative/
│   │   │   │   ├── program.js
│   │   │   │   └── submodule/
│   │   │   │       ├── a.js
│   │   │   │       └── b.js
│   │   │   ├── test.js
│   │   │   └── transitive/
│   │   │       ├── a.js
│   │   │       ├── b.js
│   │   │       ├── c.js
│   │   │       └── program.js
│   │   └── tiddlywiki.info
│   ├── text-slicer/
│   │   ├── tiddlers/
│   │   │   ├── HelloThere.tid
│   │   │   ├── Sample Text.tid
│   │   │   └── system/
│   │   │       ├── $__coreURL.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── sidebarlayout.tid
│   │   │       └── storyleft.tid
│   │   └── tiddlywiki.info
│   ├── tiddlywiki-surveys/
│   │   ├── scripts/
│   │   │   ├── extract-text-tiddlers-via-console.js
│   │   │   ├── import-great-interview-project-json.sh
│   │   │   └── readme.md
│   │   ├── tiddlers/
│   │   │   ├── 2010-great-interview-project/
│   │   │   │   ├── images/
│   │   │   │   │   ├── aamaadmitw5.jpg.meta
│   │   │   │   │   ├── alexhough.jpg.meta
│   │   │   │   │   ├── amalfaro-wrk.jpg.meta
│   │   │   │   │   ├── andrewbarbour.jpg.meta
│   │   │   │   │   ├── calmo.jpg.meta
│   │   │   │   │   ├── climatechange3.jpg.meta
│   │   │   │   │   ├── colmbritton.jpg.meta
│   │   │   │   │   ├── dickon.jpg.meta
│   │   │   │   │   ├── frankfurtkid.jpg.meta
│   │   │   │   │   ├── gjrobert.jpg.meta
│   │   │   │   │   ├── kosmaton.jpg.meta
│   │   │   │   │   ├── mama.jpg.meta
│   │   │   │   │   ├── martinlindner.jpg.meta
│   │   │   │   │   ├── matt.jpg.meta
│   │   │   │   │   ├── passingby.jpg.meta
│   │   │   │   │   ├── pmario.jpg.meta
│   │   │   │   │   ├── poulstaugaard.jpg.meta
│   │   │   │   │   ├── rouilj.jpg.meta
│   │   │   │   │   ├── smandoli.jpg.meta
│   │   │   │   │   ├── ubi.jpg.meta
│   │   │   │   │   ├── webid4me.jpg.meta
│   │   │   │   │   └── yakov.jpg.meta
│   │   │   │   └── text/
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - amalfaro-wrk - 2013-07-01T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - climatechange3 - 2010-12-01T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - aamaadmitw5 - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - calmo - 2010-12-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - climatechange3 - 2010-12-01T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - gjrobert - 2013-09-15T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - pmario - 2011-04-05T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - poulstaugaard - 2011-03-06T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - ubi - 2010-11-29T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - webid4me - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for you as an information publisher_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for you as an information publisher_ - mama - 2010-11-25T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for you as an information publisher_.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for your target audience_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for your target audience_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for your target audience_.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - andrewbarbour - 2010-11-28T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - climatechange3 - 2010-12-01T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - mama - 2010-11-26T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_ - smandoli - 2010-12-25T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - mama - 2010-11-25T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - andrewbarbour - 2010-11-28T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - colmbritton - 2010-12-21T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - matt - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - yakov - 2011-02-21T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - mama - 2011-08-17T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - martinlindner - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_ - mama - 2010-12-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_ - martinlindner - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_.tid
│   │   │   │       ├── 2010 - Interview Question.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - andrewbarbour - 2010-11-28T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - gjrobert - 2013-09-15T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - kosmaton - 2011-03-10T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - mama - 2010-12-02T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - poulstaugaard - 2011-03-06T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__.tid
│   │   │   │       ├── 2010 - What features of TiddlyWiki made it suitable for your target audience_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What features of TiddlyWiki made it suitable for your target audience_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What features of TiddlyWiki made it suitable for your target audience_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What features of TiddlyWiki made it suitable for your target audience_.tid
│   │   │   │       ├── 2010 - What is the most challenging thing about using TiddlyWiki_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What is the most challenging thing about using TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What is the most challenging thing about using TiddlyWiki_ - smandoli - 2010-12-25T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What is the most challenging thing about using TiddlyWiki_.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - aamaadmitw5 - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - climatechange3 - 2010-12-02T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - mama - 2010-11-20T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - martinlindner - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - pmario - 2011-04-05T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - poulstaugaard - 2011-03-12T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - webid4me - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - aamaadmitw5 - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - alexhough - 2010-12-08T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - pmario - 2011-04-05T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - webid4me - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_ - climatechange3 - 2010-12-01T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - webid4me - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       └── 2010 - Who is the target audience for your TiddlyWiki(s)_.tid
│   │   │   ├── 2025-community-survey/
│   │   │   │   ├── Community Survey 2025 Answer 00001.json
│   │   │   │   ├── Community Survey 2025 Answer 00002.json
│   │   │   │   ├── Community Survey 2025 Answer 00003.json
│   │   │   │   ├── Community Survey 2025 Answer 00004.tid
│   │   │   │   ├── Community Survey 2025 Answer 00005.json
│   │   │   │   ├── Community Survey 2025 Answer 00006.json
│   │   │   │   ├── Community Survey 2025 Answer 00007.tid
│   │   │   │   ├── Community Survey 2025 Answer 00008.tid
│   │   │   │   ├── Community Survey 2025 Answer 00009.json
│   │   │   │   ├── Community Survey 2025 Answer 00010.tid
│   │   │   │   ├── Community Survey 2025 Answer 00011.tid
│   │   │   │   ├── Community Survey 2025 Answer 00012.json
│   │   │   │   ├── Community Survey 2025 Answer 00013.tid
│   │   │   │   ├── Community Survey 2025 Answer 00014.json
│   │   │   │   ├── Community Survey 2025 Answer 00015.json
│   │   │   │   ├── Community Survey 2025 Answer 00016.tid
│   │   │   │   ├── Community Survey 2025 Answer 00017.json
│   │   │   │   ├── Community Survey 2025 Answer 00018.json
│   │   │   │   ├── Community Survey 2025 Answer 00019.json
│   │   │   │   ├── Community Survey 2025 Answer 00020.json
│   │   │   │   ├── Community Survey 2025 Answer 00021.tid
│   │   │   │   ├── Community Survey 2025 Answer 00022.json
│   │   │   │   ├── Community Survey 2025 Answer 00023.json
│   │   │   │   ├── Community Survey 2025 Answer 00024.json
│   │   │   │   ├── Community Survey 2025 Answer 00025.tid
│   │   │   │   ├── Community Survey 2025 Answer 00026.json
│   │   │   │   ├── Community Survey 2025 Answer 00027.tid
│   │   │   │   ├── Community Survey 2025 Answer 00028.json
│   │   │   │   ├── Community Survey 2025 Answer 00029.json
│   │   │   │   ├── Community Survey 2025 Answer 00030.json
│   │   │   │   ├── Community Survey 2025 Answer 00031.json
│   │   │   │   ├── Community Survey 2025 Answer 00032.tid
│   │   │   │   ├── Community Survey 2025 Answer 00033.json
│   │   │   │   ├── Community Survey 2025 Answer 00034.json
│   │   │   │   ├── Community Survey 2025 Answer 00035.tid
│   │   │   │   ├── Community Survey 2025 Answer 00036.tid
│   │   │   │   ├── Community Survey 2025 Answer 00037.json
│   │   │   │   ├── Community Survey 2025 Answer 00038.json
│   │   │   │   ├── Community Survey 2025 Answer 00039.json
│   │   │   │   ├── Community Survey 2025 Answer 00040.json
│   │   │   │   ├── Community Survey 2025 Answer 00041.json
│   │   │   │   ├── Community Survey 2025 Answer 00042.json
│   │   │   │   ├── Community Survey 2025 Answer 00043.json
│   │   │   │   ├── Community Survey 2025 Answer 00044.json
│   │   │   │   ├── Community Survey 2025 Answer 00045.json
│   │   │   │   ├── Community Survey 2025 Answer 00046.json
│   │   │   │   ├── Community Survey 2025 Answer 00047.json
│   │   │   │   ├── Community Survey 2025 Answer 00048.tid
│   │   │   │   ├── Community Survey 2025 Answer 00049.json
│   │   │   │   ├── Community Survey 2025 Answer 00050.json
│   │   │   │   ├── Community Survey 2025 Answer 00051.json
│   │   │   │   ├── Community Survey 2025 Answer 00052.json
│   │   │   │   ├── Community Survey 2025 Answer 00053.json
│   │   │   │   ├── Community Survey 2025 Answer 00054.json
│   │   │   │   ├── Community Survey 2025 Answer 00055.json
│   │   │   │   ├── Community Survey 2025 Answer 00056.tid
│   │   │   │   ├── Community Survey 2025 Answer 00057.json
│   │   │   │   ├── Community Survey 2025 Answer 00058.json
│   │   │   │   ├── Community Survey 2025 Answer 00059.json
│   │   │   │   ├── Community Survey 2025 Answer 00060.tid
│   │   │   │   ├── Community Survey 2025 Answer 00061.json
│   │   │   │   ├── Community Survey 2025 Answer 00062.json
│   │   │   │   ├── Community Survey 2025 Answer 00063.json
│   │   │   │   ├── Community Survey 2025 Answer 00064.json
│   │   │   │   ├── Community Survey 2025 Answer 00065.tid
│   │   │   │   ├── Community Survey 2025 Answer 00066.json
│   │   │   │   ├── Community Survey 2025 Answer 00067.tid
│   │   │   │   ├── Community Survey 2025 Answer 00068.json
│   │   │   │   ├── Community Survey 2025 Answer 00069.tid
│   │   │   │   ├── Community Survey 2025 Answer 00070.tid
│   │   │   │   ├── Community Survey 2025 Answer 00071.json
│   │   │   │   ├── Community Survey 2025 Answer 00072.json
│   │   │   │   ├── Community Survey 2025 Answer 00073.tid
│   │   │   │   ├── Community Survey 2025 Answer 00074.tid
│   │   │   │   ├── Community Survey 2025 Answer 00075.json
│   │   │   │   ├── Community Survey 2025 Answer 00076.json
│   │   │   │   ├── Community Survey 2025 Answer 00077.json
│   │   │   │   ├── Community Survey 2025 Answer 00078.json
│   │   │   │   ├── Community Survey 2025 Answer 00079.json
│   │   │   │   ├── Community Survey 2025 Answer 00080.json
│   │   │   │   ├── Community Survey 2025 Answer 00081.json
│   │   │   │   ├── Community Survey 2025 Answer 00082.json
│   │   │   │   ├── Community Survey 2025 Answer 00083.json
│   │   │   │   ├── Community Survey 2025 Answer 00084.json
│   │   │   │   ├── Community Survey 2025 Answer 00085.json
│   │   │   │   ├── Community Survey 2025 Answer 00086.json
│   │   │   │   ├── Community Survey 2025 Answer 00087.tid
│   │   │   │   ├── Community Survey 2025 Answer 00088.tid
│   │   │   │   ├── Community Survey 2025 Answer 00089.json
│   │   │   │   ├── Community Survey 2025 Answer 00090.json
│   │   │   │   ├── Community Survey 2025 Answer 00091.tid
│   │   │   │   ├── Community Survey 2025 Answer 00092.json
│   │   │   │   ├── Community Survey 2025 Answer 00093.json
│   │   │   │   ├── Community Survey 2025 Answer 00094.tid
│   │   │   │   ├── Community Survey 2025 Answer 00095.json
│   │   │   │   ├── Community Survey 2025 Answer 00096.tid
│   │   │   │   ├── Community Survey 2025 Answer 00097.json
│   │   │   │   ├── Community Survey 2025 Answer 00098.json
│   │   │   │   ├── Community Survey 2025 Answer 00099.json
│   │   │   │   ├── Community Survey 2025 Answer 00100.json
│   │   │   │   ├── Community Survey 2025 Answer 00101.json
│   │   │   │   ├── Community Survey 2025 Answer 00102.tid
│   │   │   │   ├── Community Survey 2025 Answer 00103.json
│   │   │   │   ├── Community Survey 2025 Answer 00104.json
│   │   │   │   ├── Community Survey 2025 Answer 00105.json
│   │   │   │   ├── Community Survey 2025 Answer 00106.tid
│   │   │   │   ├── Community Survey 2025 Answer 00107.json
│   │   │   │   ├── Community Survey 2025 Answer 00108.json
│   │   │   │   ├── Community Survey 2025 Answer 00109.json
│   │   │   │   ├── Community Survey 2025 Answer 00110.json
│   │   │   │   ├── Community Survey 2025 Answer 00111.json
│   │   │   │   ├── Community Survey 2025 Answer 00112.json
│   │   │   │   ├── Community Survey 2025 Answer 00113.json
│   │   │   │   ├── Community Survey 2025 Answer 00114.json
│   │   │   │   ├── Community Survey 2025 Answer 00115.tid
│   │   │   │   ├── Community Survey 2025 Answer 00116.json
│   │   │   │   ├── Community Survey 2025 Answer 00117.json
│   │   │   │   ├── Community Survey 2025 Answer 00118.json
│   │   │   │   ├── Community Survey 2025 Answer 00119.json
│   │   │   │   ├── Community Survey 2025 Answer 00120.json
│   │   │   │   ├── Community Survey 2025 Answer 00121.json
│   │   │   │   ├── Community Survey 2025 Answer 00122.json
│   │   │   │   ├── Community Survey 2025 Answer 00123.json
│   │   │   │   ├── Community Survey 2025 Answer 00124.json
│   │   │   │   ├── Community Survey 2025 Answer 00125.tid
│   │   │   │   ├── Community Survey 2025 Answer 00126.json
│   │   │   │   ├── Community Survey 2025 Answer 00127.json
│   │   │   │   ├── Community Survey 2025 Answer 00128.json
│   │   │   │   ├── Community Survey 2025 Answer 00129.json
│   │   │   │   ├── Community Survey 2025 Answer 00130.json
│   │   │   │   ├── Community Survey 2025 Answer 00131.json
│   │   │   │   ├── Community Survey 2025 Answer 00132.json
│   │   │   │   ├── Community Survey 2025 Answer 00133.tid
│   │   │   │   ├── Community Survey 2025 Answer 00134.tid
│   │   │   │   ├── Community Survey 2025 Answer 00135.json
│   │   │   │   ├── Community Survey 2025 Answer 00136.tid
│   │   │   │   ├── Community Survey 2025 Answer 00137.json
│   │   │   │   ├── Community Survey 2025 Answer 00138.tid
│   │   │   │   ├── Community Survey 2025 Answer 00139.json
│   │   │   │   ├── Community Survey 2025 Answer 00140.json
│   │   │   │   ├── Community Survey 2025 Answer 00141.json
│   │   │   │   ├── Community Survey 2025 Answer 00142.json
│   │   │   │   ├── Community Survey 2025 Answer 00143.json
│   │   │   │   ├── Community Survey 2025 Answer 00144.json
│   │   │   │   ├── Community Survey 2025 Answer 00145.tid
│   │   │   │   ├── Community Survey 2025 Answer 00146.tid
│   │   │   │   ├── Community Survey 2025 Answer 00147.tid
│   │   │   │   ├── Community Survey 2025 Answer 00148.json
│   │   │   │   ├── Community Survey 2025 Answer 00149.json
│   │   │   │   ├── Community Survey 2025 Answer 00150.json
│   │   │   │   ├── Community Survey 2025 Answer 00151.json
│   │   │   │   ├── Community Survey 2025 Answer 00152.json
│   │   │   │   ├── Community Survey 2025 Answer 00153.json
│   │   │   │   ├── Community Survey 2025 Answer 00154.json
│   │   │   │   ├── Community Survey 2025 Answer 00155.tid
│   │   │   │   ├── Community Survey 2025 Answer 00156.json
│   │   │   │   ├── Community Survey 2025 Answer 00157.json
│   │   │   │   ├── Community Survey 2025 Answer 00158.json
│   │   │   │   ├── Community Survey 2025 Answer 00159.json
│   │   │   │   ├── Community Survey 2025 Answer 00160.json
│   │   │   │   ├── Community Survey 2025 Answer 00161.json
│   │   │   │   ├── Community Survey 2025 Answer 00162.json
│   │   │   │   ├── Community Survey 2025 Answer 00163.json
│   │   │   │   ├── Community Survey 2025 Answer 00164.tid
│   │   │   │   ├── Community Survey 2025 Answer 00165.json
│   │   │   │   ├── Community Survey 2025 Answer 00166.json
│   │   │   │   ├── Community Survey 2025 Answer 00167.json
│   │   │   │   ├── Community Survey 2025 Answer 00168.tid
│   │   │   │   ├── Community Survey 2025 Answer 00169.json
│   │   │   │   ├── Community Survey 2025 Answer 00170.json
│   │   │   │   ├── Community Survey 2025 Answer 00171.json
│   │   │   │   ├── Community Survey 2025 Answer 00172.json
│   │   │   │   ├── Community Survey 2025 Answer 00173.json
│   │   │   │   ├── Community Survey 2025 Answer 00174.tid
│   │   │   │   ├── Community Survey 2025 Answer 00175.tid
│   │   │   │   ├── Community Survey 2025 Answer 00176.tid
│   │   │   │   ├── Community Survey 2025 Answer 00177.json
│   │   │   │   ├── Community Survey 2025 Answer 00178.tid
│   │   │   │   ├── Community Survey 2025 Answer 00179.json
│   │   │   │   ├── Community Survey 2025 Answer 00180.json
│   │   │   │   ├── Community Survey 2025 Answer 00181.json
│   │   │   │   ├── Community Survey 2025 Answer 00182.tid
│   │   │   │   ├── Community Survey 2025 Answer 00183.json
│   │   │   │   ├── Community Survey 2025 Answer 00184.json
│   │   │   │   ├── Community Survey 2025 Answer 00185.json
│   │   │   │   ├── Community Survey 2025 Answer 00186.json
│   │   │   │   ├── Community Survey 2025 Answer 00187.json
│   │   │   │   ├── Community Survey 2025 Answer 00188.tid
│   │   │   │   ├── Community Survey 2025 Answer 00189.json
│   │   │   │   ├── Community Survey 2025 Answer 00190.tid
│   │   │   │   ├── Community Survey 2025 Answer 00191.json
│   │   │   │   ├── Community Survey 2025 Answer 00192.json
│   │   │   │   ├── Community Survey 2025 Answer 00193.json
│   │   │   │   ├── Community Survey 2025 Answer 00194.tid
│   │   │   │   ├── Community Survey 2025 Answer 00195.json
│   │   │   │   ├── Community Survey 2025 Answer 00196.json
│   │   │   │   ├── Community Survey 2025 Answer 00197.tid
│   │   │   │   └── Community Survey 2025 Answer 00198.json
│   │   │   └── app/
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── Definitions.tid
│   │   │       ├── HelloThere.tid
│   │   │       ├── Questions.json
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── Styles.tid
│   │   │       ├── The Great TiddlyWiki Interview Project 2010.tid
│   │   │       ├── TiddlyWiki Community Survey 2025.tid
│   │   │       ├── ViewTemplate.tid
│   │   │       ├── XLSX Import Specs/
│   │   │       │   ├── row.tid
│   │   │       │   ├── sheet.tid
│   │   │       │   └── workbook.tid
│   │   │       ├── default-import-spec.tid
│   │   │       ├── open-state.multids
│   │   │       ├── palette.tid
│   │   │       ├── palettes - Naporitan.tid
│   │   │       └── state - sidebar.tid
│   │   └── tiddlywiki.info
│   ├── tour/
│   │   ├── tiddlers/
│   │   │   ├── Solar System/
│   │   │   │   ├── Asteroid (253) Mathilde Image.png.meta
│   │   │   │   ├── Asteroid.tid
│   │   │   │   ├── Comet Image.png.meta
│   │   │   │   ├── Comet.tid
│   │   │   │   ├── Earth Image.png.meta
│   │   │   │   ├── Earth's Moon Image.png.meta
│   │   │   │   ├── Earth's Moon.tid
│   │   │   │   ├── Earth.tid
│   │   │   │   ├── Jupiter Image.png.meta
│   │   │   │   ├── Jupiter.tid
│   │   │   │   ├── Kuiper belt.tid
│   │   │   │   ├── Mars Image.png.meta
│   │   │   │   ├── Mars.tid
│   │   │   │   ├── Mercury Image.png.meta
│   │   │   │   ├── Mercury.tid
│   │   │   │   ├── Milky Way Image.png.meta
│   │   │   │   ├── Milky Way.tid
│   │   │   │   ├── Moon.tid
│   │   │   │   ├── Neptune Image.png.meta
│   │   │   │   ├── Neptune.tid
│   │   │   │   ├── Planet Image.png.meta
│   │   │   │   ├── Planet.tid
│   │   │   │   ├── Pluto Image.png.meta
│   │   │   │   ├── Pluto.tid
│   │   │   │   ├── Saturn Image.png.meta
│   │   │   │   ├── Saturn.tid
│   │   │   │   ├── Solar System Image.png.meta
│   │   │   │   ├── Solar System.tid
│   │   │   │   ├── Sun Image.png.meta
│   │   │   │   ├── Sun.tid
│   │   │   │   ├── Uranus Image.png.meta
│   │   │   │   ├── Uranus.tid
│   │   │   │   ├── Venus Image.png.meta
│   │   │   │   └── Venus.tid
│   │   │   └── System/
│   │   │       ├── $__coreURL.tid
│   │   │       ├── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── HelloThere.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── configAutoStartTour.tid
│   │   │       └── styles.tid
│   │   └── tiddlywiki.info
│   ├── translators/
│   │   ├── tiddlers/
│   │   │   ├── Extracting Translations.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── Instructions for Translators.tid
│   │   │   └── system/
│   │   │       ├── $__status_UserName.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── PageControlButtonsVisibility.multids
│   │   │       ├── palette.tid
│   │   │       └── sidebarstate.tid
│   │   └── tiddlywiki.info
│   ├── tw.org/
│   │   ├── tiddlers/
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__SiteSubtitle.tid
│   │   │   ├── $__SiteTitle.tid
│   │   │   ├── $__config_DefaultSidebarTab.tid
│   │   │   ├── $__core_templates_static.content.tid
│   │   │   ├── $__favicon.ico.png.meta
│   │   │   ├── $__palette.tid
│   │   │   ├── $__palettes_BlueFlavour
│   │   │   ├── $__palettes_BlueFlavour.meta
│   │   │   ├── $__palettes_FlowingSun
│   │   │   ├── $__palettes_FlowingSun.meta
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_bodyfontsize.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_bodylineheight.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   │   ├── Code of Conduct.tid
│   │   │   ├── Fundraising.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── Table of Contents.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   └── _tw_shared/
│   │   │       └── tiddlywiki.files
│   │   └── tiddlywiki.info
│   ├── tw5.com/
│   │   ├── tiddlers/
│   │   │   ├── Concatenating a text reference to create a URL.tid
│   │   │   ├── Concatenating variables to create a URL.tid
│   │   │   ├── Core CSS Variables.tid
│   │   │   ├── Core Classes.tid
│   │   │   ├── Core Functions.tid
│   │   │   ├── Core Messages.tid
│   │   │   ├── Core Procedures.tid
│   │   │   ├── Core Widgets.tid
│   │   │   ├── Deprecated Core Classes.tid
│   │   │   ├── Deprecated core macros.tid
│   │   │   ├── HTML Tags.tid
│   │   │   ├── Hidden Setting_ Import Content Types for Editor.tid
│   │   │   ├── Operators without parameters.tid
│   │   │   ├── Selection Constructors Conditional.tid
│   │   │   ├── String Operators.tid
│   │   │   ├── Tag Operators.tid
│   │   │   ├── Tags.tid
│   │   │   ├── TestCases_WikifyWidget_RenderHTML.tid
│   │   │   ├── TestCases_WikifyWidget_RenderSVGURI.tid
│   │   │   ├── TestCases_WikifyWidget_WidgetValue_Fail.tid
│   │   │   ├── TestCases_WikifyWidget_WidgetValue_Success.tid
│   │   │   ├── TestCases_WikifyWidget_WordCount_Fail.tid
│   │   │   ├── TestCases_WikifyWidget_WordCount_Success.tid
│   │   │   ├── TiddlyWiki Docs PR Maker.tid
│   │   │   ├── Title.tid
│   │   │   ├── Welcome.tid
│   │   │   ├── Writing stylesheets in vanilla CSS.tid
│   │   │   ├── _TiddlyStudy_ by Kebi.tid
│   │   │   ├── _tw_shared/
│   │   │   │   ├── Motovun Jack.svg.meta
│   │   │   │   ├── doc-utilities/
│   │   │   │   │   ├── doc-macros.tid
│   │   │   │   │   ├── doc-styles.tid
│   │   │   │   │   ├── version-macros.tid
│   │   │   │   │   └── wikitext-macros.tid
│   │   │   │   ├── favicons/
│   │   │   │   │   ├── classic.tiddlywiki.com.png.meta
│   │   │   │   │   ├── links.tiddlywiki.org.png.meta
│   │   │   │   │   ├── markplace.png.meta
│   │   │   │   │   ├── mws.tiddlywiki.com.png.meta
│   │   │   │   │   ├── talk.tiddlywiki.org.svg.meta
│   │   │   │   │   ├── tiddlywiki.com.dev.png.meta
│   │   │   │   │   ├── tiddlywiki.com.png.meta
│   │   │   │   │   ├── tiddlywiki.com.prerelease.png.meta
│   │   │   │   │   ├── tiddlywiki.com.upgrade.png.meta
│   │   │   │   │   └── tiddlywiki.org.png.meta
│   │   │   │   ├── sites/
│   │   │   │   │   ├── classic.tiddlywiki.com.tid
│   │   │   │   │   ├── links.tiddlywiki.org.tid
│   │   │   │   │   ├── marketplace.tid
│   │   │   │   │   ├── mws.tiddlywiki.com.tid
│   │   │   │   │   ├── talk.tiddlywiki.org.tid
│   │   │   │   │   ├── tiddlywiki.com.dev.tid
│   │   │   │   │   ├── tiddlywiki.com.prerelease.tid
│   │   │   │   │   ├── tiddlywiki.com.tid
│   │   │   │   │   ├── tiddlywiki.com.upgrade.tid
│   │   │   │   │   └── tiddlywiki.org.tid
│   │   │   │   ├── sites.tid
│   │   │   │   ├── styles.tid
│   │   │   │   └── tags-TiddlyWikiSites.tid
│   │   │   ├── about/
│   │   │   │   ├── About.tid
│   │   │   │   ├── Acknowledgements.tid
│   │   │   │   ├── Archive.tid
│   │   │   │   ├── Contributors.tid
│   │   │   │   ├── Developers.tid
│   │   │   │   ├── Filter Syntax History.tid
│   │   │   │   ├── Funding TiddlyWiki.tid
│   │   │   │   ├── History of TiddlyWiki.tid
│   │   │   │   ├── License.tid
│   │   │   │   ├── Open Collective.tid
│   │   │   │   ├── Philosophy of Tiddlers.tid
│   │   │   │   ├── The Story of TiddlyWiki.tid
│   │   │   │   └── TiddlyWiki Anniversaries.tid
│   │   │   ├── actionTiddlerList Variable.tid
│   │   │   ├── cards/
│   │   │   │   ├── card-procedures.tid
│   │   │   │   └── card-styles.tid
│   │   │   ├── commands/
│   │   │   │   ├── BuildCommand.tid
│   │   │   │   ├── ClearPasswordCommand.tid
│   │   │   │   ├── Commands.tid
│   │   │   │   ├── CommandsCommand.tid
│   │   │   │   ├── DeleteTiddlersCommand.tid
│   │   │   │   ├── EditionsCommand.tid
│   │   │   │   ├── FetchCommand.tid
│   │   │   │   ├── HelpCommand.tid
│   │   │   │   ├── ImportCommand.tid
│   │   │   │   ├── InitCommand.tid
│   │   │   │   ├── ListenCommand.tid
│   │   │   │   ├── LoadCommand.tid
│   │   │   │   ├── MakeLibraryCommand.tid
│   │   │   │   ├── NamedCommandParameters.tid
│   │   │   │   ├── OutputCommand.tid
│   │   │   │   ├── PasswordCommand.tid
│   │   │   │   ├── RenderCommand.tid
│   │   │   │   ├── RenderTiddlerCommand.tid
│   │   │   │   ├── RenderTiddlersCommand.tid
│   │   │   │   ├── SaveCommand.tid
│   │   │   │   ├── SaveTiddlerCommand.tid
│   │   │   │   ├── SaveTiddlersCommand.tid
│   │   │   │   ├── SaveWikiFolderCommand.tid
│   │   │   │   ├── ServerCommand.tid
│   │   │   │   ├── SetFieldCommand.tid
│   │   │   │   ├── UnpackPluginCommand.tid
│   │   │   │   ├── VerboseCommand.tid
│   │   │   │   └── VersionCommand.tid
│   │   │   ├── community/
│   │   │   │   ├── Articles.tid
│   │   │   │   ├── Chinese Community.tid
│   │   │   │   ├── Community Editions.tid
│   │   │   │   ├── Community Links Aggregator.tid
│   │   │   │   ├── Community Palettes.tid
│   │   │   │   ├── Community Plugins.tid
│   │   │   │   ├── Community Survey 2025.tid
│   │   │   │   ├── Community Themes.tid
│   │   │   │   ├── Community.tid
│   │   │   │   ├── Contributing.tid
│   │   │   │   ├── Contributor License Agreement.tid
│   │   │   │   ├── Examples.tid
│   │   │   │   ├── Forums.tid
│   │   │   │   ├── HelpingTiddlyWiki.tid
│   │   │   │   ├── Improving TiddlyWiki Documentation.tid
│   │   │   │   ├── Latest.tid
│   │   │   │   ├── Meetups.tid
│   │   │   │   ├── OXTWIG.tid
│   │   │   │   ├── Other Resources.tid
│   │   │   │   ├── ReportingBugs.tid
│   │   │   │   ├── Resources.tid
│   │   │   │   ├── Signing the Contributor License Agreement.tid
│   │   │   │   ├── TW Icons by morosanuae.tid
│   │   │   │   ├── TiddlyWiki Camp Paris.tid
│   │   │   │   ├── TiddlyWiki Hangouts.tid
│   │   │   │   ├── TiddlyWiki Newsletter.tid
│   │   │   │   ├── TiddlyWiki on the Web.tid
│   │   │   │   ├── TiddlyWiki_European_Meetup_2016.tid
│   │   │   │   ├── TiddlyWiki_European_Meetup_2017.tid
│   │   │   │   ├── Translate TiddlyWiki into your language.tid
│   │   │   │   ├── Tutorials.tid
│   │   │   │   ├── articles/
│   │   │   │   │   ├── _A free, open source wiki revisited_ by Mark Gibbs, NetworkWorld.tid
│   │   │   │   │   ├── _Notizen mit TiddlyWiki systemubergreifend nutzen_ by Michael Sonntag.tid
│   │   │   │   │   ├── _Setting Up a Personal TiddlyWiki Server on OS X_ by Kris Johnson.tid
│   │   │   │   │   ├── _TiddlyWiki 5 im Betatest_ by besim.tid
│   │   │   │   │   └── _TiddlyWiki_ by Sander de Boer.tid
│   │   │   │   ├── editions/
│   │   │   │   │   ├── Drift by Tony K.tid
│   │   │   │   │   ├── Stroll by David Gifford.tid
│   │   │   │   │   ├── Tidme by oflg.tid
│   │   │   │   │   ├── _Cardo-A Task and Project Management Wiki_ by David_Szego.tid
│   │   │   │   │   └── _Noteself_ by Danielo Rodriguez.tid
│   │   │   │   ├── examples/
│   │   │   │   │   ├── A Thesis Notebook.tid
│   │   │   │   │   ├── GitFixUm.tid
│   │   │   │   │   ├── PESpot Lesson Planner by Patrick Detzner.tid
│   │   │   │   │   ├── PETTIL.tid
│   │   │   │   │   ├── Reveal.js by Devin Weaver.tid
│   │   │   │   │   ├── Simple Zork like Game.tid
│   │   │   │   │   ├── TriTarget.org by Devin Weaver.tid
│   │   │   │   │   └── _Lucky Sushi_ online shop by sini-Kit.tid
│   │   │   │   ├── links/
│   │   │   │   │   ├── TalkTiddlyWiki.tid
│   │   │   │   │   ├── TiddlyWiki on Discord.tid
│   │   │   │   │   ├── TiddlyWiki on GitHub.tid
│   │   │   │   │   ├── TiddlyWiki on Mastodon.tid
│   │   │   │   │   ├── TiddlyWiki on Open Collective.tid
│   │   │   │   │   ├── TiddlyWiki on Reddit.tid
│   │   │   │   │   ├── TiddlyWiki on YouTube.tid
│   │   │   │   │   └── external-links-view-template.tid
│   │   │   │   ├── palettes/
│   │   │   │   │   ├── Dracula for tiddlywiki.tid
│   │   │   │   │   └── palletes by JD.tid
│   │   │   │   ├── plugins/
│   │   │   │   │   ├── Ace Editor Plugin by Joerg Plewe.tid
│   │   │   │   │   ├── BJHacks.tid
│   │   │   │   │   ├── Disqus comments plugin by bimlas.tid
│   │   │   │   │   ├── Encrypt single tiddler plugin.tid
│   │   │   │   │   ├── Eucalys Tiddly World.tid
│   │   │   │   │   ├── FSRS4TW by oflg.tid
│   │   │   │   │   ├── Favorites by Mohammad.tid
│   │   │   │   │   ├── Full Text Search Plugin by Rob Hoelz.tid
│   │   │   │   │   ├── GSD5.tid
│   │   │   │   │   ├── IndexedDB Plugin by Andreas Abeck.tid
│   │   │   │   │   ├── Json Mangler plugin by Joshua Fontany.tid
│   │   │   │   │   ├── Kin filter operator by bimlas.tid
│   │   │   │   │   ├── Kookma Plugin Library by Mohammad.tid
│   │   │   │   │   ├── Leaflet_maps_plugin_by_Sylvain_Comte.tid
│   │   │   │   │   ├── Locator plugin by bimlas.tid
│   │   │   │   │   ├── MathJax Plugin by Martin Kantor.tid
│   │   │   │   │   ├── Plugins by TheDiveO.tid
│   │   │   │   │   ├── Refnotes by Mohammad.tid
│   │   │   │   │   ├── Searchwikis by Mohammad.tid
│   │   │   │   │   ├── Shiraz by Mohammad.tid
│   │   │   │   │   ├── Slider by Mohammad.tid
│   │   │   │   │   ├── TW5-Graph by Flibbles.tid
│   │   │   │   │   ├── Tiddler Commander by Mohammad.tid
│   │   │   │   │   ├── TiddlyClip by buggyjay.tid
│   │   │   │   │   ├── TiddlyMap by Felix Kuppers.tid
│   │   │   │   │   ├── TiddlyWiki for Scholars.tid
│   │   │   │   │   ├── Tiddlyshow by Mohammad.tid
│   │   │   │   │   ├── Timelines by Mohammad.tid
│   │   │   │   │   ├── Tinka by Andreas Hahn.tid
│   │   │   │   │   ├── Todolist by Mohammad.tid
│   │   │   │   │   ├── Trashbin by Mohammad.tid
│   │   │   │   │   ├── Utility by Mohammad.tid
│   │   │   │   │   ├── _JD Mobile Layout plugin_ by JD.tid
│   │   │   │   │   ├── _Mal's Sandbox_ by Mal.tid
│   │   │   │   │   ├── _SK_Plugins_ by Stephen Kimmel.tid
│   │   │   │   │   ├── _Slides and Stories_ by Jan.tid
│   │   │   │   │   ├── _TW5-TeXZilla_ plugin by Joe Renes.tid
│   │   │   │   │   ├── _Tekan_ Kanban that stays with you_ by Riz.tid
│   │   │   │   │   ├── datepicker based on Pikaday.tid
│   │   │   │   │   ├── rboue's plugins for TiddlyWiki.tid
│   │   │   │   │   └── vis.js Timeline.tid
│   │   │   │   ├── resources/
│   │   │   │   │   ├── BrainTest.tid
│   │   │   │   │   ├── Code styles and auto format settings for IDEs.tid
│   │   │   │   │   ├── CouchDB Adaptor.tid
│   │   │   │   │   ├── Filter Examples by Tobias Beer.tid
│   │   │   │   │   ├── Font Awesome 5 Free SVGs for TiddlyWiki by morosanuae.tid
│   │   │   │   │   ├── Gospel_Bubbles_by_Rev_David_Gifford.tid
│   │   │   │   │   ├── Grok TiddlyWiki by Soren Bjornstad.tid
│   │   │   │   │   ├── Heeg.ru.tid
│   │   │   │   │   ├── Projectify by Nicolas Petton.tid
│   │   │   │   │   ├── RegExp in Tiddlywiki by Mohammad.tid
│   │   │   │   │   ├── SeeAlso by Matias Goldman.tid
│   │   │   │   │   ├── Semantic Colors by Mohammad.tid
│   │   │   │   │   ├── TB5 a pocket full of tips by Tobias Beer.tid
│   │   │   │   │   ├── TW-Scripts by Mohammad.tid
│   │   │   │   │   ├── TW5 Magick.tid
│   │   │   │   │   ├── TW5-SingleExecutable_by_Jed_Carty.tid
│   │   │   │   │   ├── TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid
│   │   │   │   │   ├── TWCommunitySearch.tid
│   │   │   │   │   ├── TWaddle by Matias Goldman.tid
│   │   │   │   │   ├── TiddlyChrome by Arlen Beiler.tid
│   │   │   │   │   ├── TiddlyDrive Add-on for Google Drive by Joshua Stubbs.tid
│   │   │   │   │   ├── TiddlyServer by Arlen Beiler.tid
│   │   │   │   │   ├── TiddlyWiki Notes.tid
│   │   │   │   │   ├── TiddlyWiki Posts.tid
│   │   │   │   │   ├── TiddlyWiki Video Tutorials by Francis Meetze.tid
│   │   │   │   │   ├── TiddlyWiki extensions for Sublime Text 3 by roma0104.tid
│   │   │   │   │   ├── TiddlyWiki extensions for ViM.tid
│   │   │   │   │   ├── TiddlyWiki guide FR.tid
│   │   │   │   │   ├── TiddlyWiki wu.tid
│   │   │   │   │   ├── TiddlyWiki5 Playground.tid
│   │   │   │   │   ├── TiddlyWiki5 Squared by Iannis Zannos.tid
│   │   │   │   │   ├── Twexe_ Single File Tiddlywiki5 executable.tid
│   │   │   │   │   ├── Widdly by Opennota.tid
│   │   │   │   │   ├── Wikilabs by PMario.tid
│   │   │   │   │   ├── Wills QnD gTD.tid
│   │   │   │   │   ├── _ATWiki_ by Lamusia Project.tid
│   │   │   │   │   ├── _Dropboard_ by Reid Gould.tid
│   │   │   │   │   ├── _Dynamic Tables_ by Jed Carty.tid
│   │   │   │   │   ├── _Hacks_ by Thomas Elmiger.tid
│   │   │   │   │   ├── _In My Socks_ by Jed Carty.tid
│   │   │   │   │   ├── _MathCell_ by Ste Wilson.tid
│   │   │   │   │   ├── _TiddlyServer_ by Matt Lauber.tid
│   │   │   │   │   ├── _TiddlyWiki Knowledge Network_ by Dmitry Sokolov.tid
│   │   │   │   │   ├── _TiddlyWiki Toolmap_ by David Gifford.tid
│   │   │   │   │   ├── _TiddlyWiki5 Bourbon_ from mkt_memory.tid
│   │   │   │   │   ├── _TiddlyWiki5 Forum on Reddit_ by Riz.tid
│   │   │   │   │   ├── _Timimi_ Extension and executable by Riz.tid
│   │   │   │   │   ├── _X3DOM for TiddlyWiki 5_ by Jamal Wills.tid
│   │   │   │   │   ├── _file-backups_ Extension Firefox by pmario.tid
│   │   │   │   │   ├── _muritest_ by Simon Huber.tid
│   │   │   │   │   ├── _savetiddlers_ Extension for Firefox by buggyj.tid
│   │   │   │   │   └── twproxy by Steve Gattuso.tid
│   │   │   │   ├── themes/
│   │   │   │   │   ├── Mono theme by JD.tid
│   │   │   │   │   ├── Notebook theme by Nicolas Petton.tid
│   │   │   │   │   ├── Whitespace a negative-spacious webapp-nostalgic theme by JD.tid
│   │   │   │   │   ├── _Ghostwriter theme by Rory Gibson_ by Riz.tid
│   │   │   │   │   └── _Moments-A little color won't hurt_ by Riz.tid
│   │   │   │   └── tutorials/
│   │   │   │       ├── Creating a baby journal with TiddlyWiki 5.tid
│   │   │   │       ├── GitHub Saver Tutorial by Mohammad.tid
│   │   │   │       ├── Microblogging con TiddlyWiki.tid
│   │   │   │       ├── Moongift on TiddlyWiki.tid
│   │   │   │       ├── Shining Ark Using TiddlyWiki.tid
│   │   │   │       ├── TW5 Tribal Knowledge.tid
│   │   │   │       └── Un wiki sur votre BiblioBox avec TiddlyWiki.tid
│   │   │   ├── communitycards/
│   │   │   │   └── tiddlywiki.files
│   │   │   ├── concepts/
│   │   │   │   ├── Bags and Recipes.tid
│   │   │   │   ├── Brackets.tid
│   │   │   │   ├── Cascades.tid
│   │   │   │   ├── ColourPalettes.tid
│   │   │   │   ├── CompoundTiddlers.tid
│   │   │   │   ├── Concepts.tid
│   │   │   │   ├── CoordinateSystems.tid
│   │   │   │   ├── Current Tiddler.tid
│   │   │   │   ├── Customizing EditTemplate Field Rendering.tid
│   │   │   │   ├── DataTiddlers.tid
│   │   │   │   ├── Date Fields.tid
│   │   │   │   ├── DefaultTiddlers.tid
│   │   │   │   ├── DictionaryTiddlers.tid
│   │   │   │   ├── Dominant Append.tid
│   │   │   │   ├── Edit Template Body Cascade.tid
│   │   │   │   ├── ExternalImages.tid
│   │   │   │   ├── Field Editor Cascade.tid
│   │   │   │   ├── Filters.tid
│   │   │   │   ├── Hard and Soft Links.tid
│   │   │   │   ├── Hard and Soft Transclusions.tid
│   │   │   │   ├── InfoPanel.tid
│   │   │   │   ├── JSONTiddlers.tid
│   │   │   │   ├── KeyboardShortcutTiddler.tid
│   │   │   │   ├── Macros.tid
│   │   │   │   ├── Messages.tid
│   │   │   │   ├── ModuleType.tid
│   │   │   │   ├── Modules.tid
│   │   │   │   ├── Order of Tagged Tiddlers.tid
│   │   │   │   ├── PermaLinks.tid
│   │   │   │   ├── Pragma.tid
│   │   │   │   ├── Railroad Diagrams.tid
│   │   │   │   ├── Selection Constructors.tid
│   │   │   │   ├── ShadowTiddlers.tid
│   │   │   │   ├── Story River.tid
│   │   │   │   ├── Story Tiddler Template Cascade.tid
│   │   │   │   ├── Story Tiddler Template.tid
│   │   │   │   ├── SystemTags.tid
│   │   │   │   ├── SystemTiddlers.tid
│   │   │   │   ├── TagTiddlers.tid
│   │   │   │   ├── TemplateTiddlers.tid
│   │   │   │   ├── Temporary Tiddlers.tid
│   │   │   │   ├── TestCaseTiddlers.tid
│   │   │   │   ├── TextReference.tid
│   │   │   │   ├── Tiddler Colour Cascade.tid
│   │   │   │   ├── Tiddler Icon Cascade.tid
│   │   │   │   ├── TiddlerFields.tid
│   │   │   │   ├── TiddlerLinks.tid
│   │   │   │   ├── Tiddlers.tid
│   │   │   │   ├── TiddlyWiki.tid
│   │   │   │   ├── TiddlyWiki5.tid
│   │   │   │   ├── TiddlyWikiFolders.tid
│   │   │   │   ├── Title List.tid
│   │   │   │   ├── Title Selection.tid
│   │   │   │   ├── Transclusion.tid
│   │   │   │   ├── View Template Body Cascade.tid
│   │   │   │   ├── View Template Title Cascade.tid
│   │   │   │   ├── Wiki.tid
│   │   │   │   └── WikiText.tid
│   │   │   ├── css-variables/
│   │   │   │   ├── --tp-animation-duration CSS Variable.tid
│   │   │   │   ├── --tp-body-font-size Variable.tid
│   │   │   │   ├── --tp-body-line-height Variable.tid
│   │   │   │   ├── --tp-code-font-family Variable.tid
│   │   │   │   ├── --tp-code-wrapping Variable.tid
│   │   │   │   ├── --tp-editor-font-family Variable.tid
│   │   │   │   ├── --tp-font-family Variable.tid
│   │   │   │   ├── --tp-font-size Variable.tid
│   │   │   │   ├── --tp-line-height Variable.tid
│   │   │   │   ├── --tp-sidebar-breakpoint CSS Variable.tid
│   │   │   │   ├── --tp-sidebar-width CSS Variable.tid
│   │   │   │   ├── --tp-story-left CSS Variable.tid
│   │   │   │   ├── --tp-story-right CSS Variable.tid
│   │   │   │   ├── --tp-story-top CSS Variable.tid
│   │   │   │   ├── --tp-story-width CSS Variable.tid
│   │   │   │   ├── --tp-tiddler-width CSS Variable.tid
│   │   │   │   └── --tpc-_ variables.tid
│   │   │   ├── currentTab Variable.tid
│   │   │   ├── customising/
│   │   │   │   ├── Alternative page layouts.tid
│   │   │   │   ├── Configuring startup tiddlers.tid
│   │   │   │   ├── Creating new toolbar buttons.tid
│   │   │   │   ├── Customise TiddlyWiki.tid
│   │   │   │   ├── Customising TiddlyWiki's user interface.tid
│   │   │   │   └── Customising search results.tid
│   │   │   ├── definitions/
│   │   │   │   ├── BT.tid
│   │   │   │   ├── Base64.tid
│   │   │   │   ├── CamelCase.tid
│   │   │   │   ├── Cascading Style Sheets.tid
│   │   │   │   ├── Comma Separated Values.tid
│   │   │   │   ├── ContentType.tid
│   │   │   │   ├── Data URI.tid
│   │   │   │   ├── Definitions.tid
│   │   │   │   ├── Document Object Model.tid
│   │   │   │   ├── Git.tid
│   │   │   │   ├── GitHub.tid
│   │   │   │   ├── GitLab.tid
│   │   │   │   ├── GuerillaWiki.tid
│   │   │   │   ├── HTML Block Elements.tid
│   │   │   │   ├── HyperText Markup Language.tid
│   │   │   │   ├── Intertwingled Innovations.tid
│   │   │   │   ├── JavaScript Object Notation.tid
│   │   │   │   ├── JavaScript.tid
│   │   │   │   ├── JeremyRuston.tid
│   │   │   │   ├── Jermolene.tid
│   │   │   │   ├── KeyboardShortcutDesc

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
boot/** -linguist-generated
**/tiddlywiki.files linguist-language=JSON
**/tiddlywiki.info linguist-language=JSON
**/plugin.info linguist-language=JSON

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve TiddlyWiki 5
title: "[Report] "
type: report

---

<!-- Remove elements, that you do not need -->
<!-- Add screenshots where needed -->

**Problem Description**
<!-- Describe your problem: A clear and concise description of what your problem is -->


**To Reproduce**

Steps to reproduce the behavior:

1. At https://tiddlywiki.com
2. Click on ...
3. Scroll down to ...
4. See ...


**Expected behavior**

As a user,
<!-- As a developer, -->
I would expect ...


**TiddlyWiki Configuration**
<!-- Please complete the following information -->

- Report created with: [Wiki Information](https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FControlPanel%2FWikiInformation)

<!-- Your report comes here -->
<!-- or -->
<!-- Add it manually -->

- Version: <!-- e.g. v5.3.8 -->
- Saving mechanism: <!-- e.g. Node.js, TiddlyDesktop, TiddlyHost etc -->
- Plugins installed: <!-- e.g. Freelinks, TiddlyMap ... other 3rd party plugins -->


**Desktop**
<!-- Please complete the following information -->

- OS: <!--  e.g. iOS -->
- Browser: <!-- e.g. chrome, safari, FireFox -- Version: -->

**Smartphone**
<!-- Please complete the following information -->

- Device: <!-- e.g. iPhone6 -->
- OS: <!-- e.g. iOS8.1 -->
- Browser: <!-- e.g. stock browser, safari, FireFox -- Version: -->


**Additional context**
<!-- Add any other context about the problem here. -->


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Discuss feature request
    url: https://github.com/TiddlyWiki/TiddlyWiki5/discussions
    about: Open new discussion about new feature
  - name: Talk.Tiddlywiki Forum
    url: https://talk.tiddlywiki.org
    about: Join the Forum

================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for TiddlyWiki 5
title: "[IDEA]"
labels: ''
assignees: ''
type: idea

---

**Is your idea related to a problem? Please describe.**

A clear and concise description of what the problem is. Eg:
As a user, I would like [...]

**Describe the solution you'd like**

A clear and concise description of what you want to happen.

**Describe alternatives you've considered**

A clear and concise description of any alternative solutions or features you've considered.

**Additional context**

Add any other context or screenshots about the feature request here.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
================================================
---
name: Pull Request
about: Propose a change to TiddlyWiki 5
title: ""
labels: ''
assignees: ''

---

**Is your PR related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you are proposing**
A clear and concise description of the changes you are proposing. Include images to show visual changes.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.

If you link to discussions elsewhere then please copy and paste the important text, and don't expect readers to scan the entire discussion to find the relevant part.

## Checklist before requesting a review

- [ ] Illustrate any visual changes (however minor) with before/after screenshots
- [ ] Self-review of code
- [ ] Documentation updates (for user-visible changes)
- [ ] Tests (for core code changes)
- [ ] Complies with coding style guidelines (for JavaScript code)


================================================
FILE: .github/workflows/ci.yml
================================================
on:
  pull_request:
  push:
    branches:
      - master
      - tiddlywiki-com
env:
  NODE_VERSION: "22"
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v4
        with:
          node-version: "${{ env.NODE_VERSION }}"
      - run: "./bin/ci-test.sh"
      - uses: actions/upload-artifact@v4
        if: always()
        with:
          name: playwright-report
          path: playwright-report/
          retention-days: 30
  build-prerelease:
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/master'
    needs: test
    env:
      TW5_BUILD_TIDDLYWIKI: "./tiddlywiki.js"
      TW5_BUILD_MAIN_EDITION: "./editions/prerelease"
      TW5_BUILD_OUTPUT: "./output/prerelease"
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v4
        with:
          node-version: "${{ env.NODE_VERSION }}"
      - run: "./bin/ci-pre-build.sh"
      # There's another near-duplicate "Set dynamic environment variables" step in
      # the `build-tiddlywiki-com` job.
      # These _could_ be extracted as a script (or moved into `ci-pre-build.sh`) to do away with the
      # duplication, but, the visibility that comes from having these in the workflow file seems
      # valuable. Environment variables are global variables and setting them at the top-level
      # makes sense.
      # Time to reconsider this decision might be when this setup turns out to be mistake-prone.
      - name: "Set dynamic environment variables"
        run: |
          TW5_BUILD_BRANCH=$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')
          echo "TW5_BUILD_BRANCH=${TW5_BUILD_BRANCH}" >> $GITHUB_ENV
          echo "TW5_BUILD_VERSION=$(./bin/get-plugin-library-version-number)" >> $GITHUB_ENV
          echo "TW5_BUILD_DETAILS=Prerelease built from branch '$TW5_BUILD_BRANCH' at commit $(git rev-parse HEAD) of $(git remote get-url origin) at $(date +'%F %T %Z')" >> $GITHUB_ENV
      - run: "./bin/build-site.sh"
      - run: "./bin/ci-push.sh"
        env:
          GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }}
  build-tiddlywiki-com:
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/tiddlywiki-com'
    needs: test
    env:
      TW5_BUILD_TIDDLYWIKI: "./node_modules/tiddlywiki/tiddlywiki.js"
      TW5_BUILD_MAIN_EDITION: "./editions/tw5.com"
      TW5_BUILD_OUTPUT: "./output"
      TW5_BUILD_ARCHIVE: "./output"
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v4
        with:
          node-version: "${{ env.NODE_VERSION }}"
      - run: "./bin/ci-pre-build.sh"
      # When making a change here, don't forget to see if it also applies to the step
      # with the same name in the `build-prerelease` job.
      - name: "Set dynamic environment variables"
        run: |
          TW5_BUILD_BRANCH=$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')
          echo "TW5_BUILD_BRANCH=${TW5_BUILD_BRANCH}" >> $GITHUB_ENV
          echo "TW5_BUILD_VERSION=$(./bin/get-plugin-library-version-number)" >> $GITHUB_ENV
          echo "TW5_BUILD_DETAILS=Built from branch '$TW5_BUILD_BRANCH' at commit $(git rev-parse HEAD) of $(git remote get-url origin) at $(date +'%F %T %Z')" >> $GITHUB_ENV
      - run: "./bin/build-site.sh"
      - run: "./bin/ci-push.sh"
        env:
          GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }}
      - run: "./bin/build-tw-org.sh"
        env:
          GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }}


================================================
FILE: .github/workflows/cla-check.yml
================================================
name: Check CLA Signature
on:
  pull_request_target:
    types:
      - opened
      - reopened
    paths-ignore:
      - 'licenses/cla-individual.md'
jobs:
  check_cla:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    if: ${{ (github.event.pull_request.user.login != github.repository_owner) }}
    steps:
    - run: |
        if ! curl -s https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/tiddlywiki-com/licenses/cla-individual.md | grep -io "@$USER,"; then
          echo "CLA not signed"
          gh pr comment "$NUMBER" -b "@$USER It appears that this is your first contribution to the project, welcome.
          
          With apologies for the bureaucracy, please could you prepare a separate PR to the 'tiddlywiki-com' branch with your signature for the Contributor License Agreement (see [contributing.md](https://github.com/TiddlyWiki/TiddlyWiki5/blob/master/contributing.md))."
        else
          echo "CLA already signed"
          gh pr comment "$NUMBER" -b "Confirmed: **$USER** has already signed the Contributor License Agreement (see [contributing.md](https://github.com/TiddlyWiki/TiddlyWiki5/blob/master/contributing.md))"
        fi
      env:
        GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        GH_REPO: ${{ github.repository }}
        NUMBER: ${{ github.event.pull_request.number }}
        USER: ${{ github.actor }}


================================================
FILE: .github/workflows/cla-signed.yml
================================================
name: CLA Signed

on:
  pull_request_target:
    types:
      - opened
      - closed
    paths:
      - 'licenses/cla-individual.md'

env:
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  GH_REPO: ${{ github.repository }}
  NUMBER: ${{ github.event.pull_request.number }}
  AUTHOR: ${{ github.event.pull_request.user.login }}

jobs:
  # check if PRs updating the CLA are targetting the tiddlywiki-com branch
  check-signature-branch:
    if: (github.event.pull_request.merged != true) && (github.event.pull_request.user.login != github.repository_owner)
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
    - run: |
        if [[ "$BRANCH" != "tiddlywiki-com" ]]; then
          echo "This CLA signature targets the wrong branch: $BRANCH"
          gh pr comment "$NUMBER" -b "@$AUTHOR Signatures to the CLA must target the 'tiddlywiki-com' branch."
        fi
      env:
        BRANCH: ${{ github.event.pull_request.base.ref }}

  # leave a comment on each open PR by a given author when their signature is added to the CLA
  cla-signed:
    if: (github.event.pull_request.merged == true) && (github.event.pull_request.user.login != github.repository_owner)
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
    - name: List open PRs by user
      id: list-prs
      uses: actions/github-script@v6
      with:
        result-encoding: string
        script: |
          const owner = context.repo.owner,
            repo = context.repo.repo,
            author = context.payload.pull_request.user.login;

          const { data: pullRequests } = await github.rest.pulls.list({
            owner: owner,
            repo: repo,
            state: 'open',
            sort: 'created',
            direction: 'desc',
            per_page: 100
          });
          const userPullRequests = pullRequests.filter(pr => pr.user.login === author),
            prNumbers = userPullRequests.map(pr => pr.number).join(',');
          console.log(`Open pull requests by ${author}:${prNumbers}`);
          return prNumbers;
          
    - name: Comment open PRs by the same author
      run: |
        prs=($(echo ${{ steps.list-prs.outputs.result }} | tr "," "\n"))  
  
        for number in "${prs[@]}"  
        do  
          gh pr comment "$number" -b "**$AUTHOR** has signed the Contributor License Agreement (see [contributing.md](https://github.com/TiddlyWiki/TiddlyWiki5/blob/master/contributing.md))"
        done     


================================================
FILE: .github/workflows/eslint.yml
================================================
name: ESLint

on:
  pull_request:
    types: [opened, synchronize, reopened]
  workflow_dispatch:

concurrency:
  group: lint-${{ github.event.pull_request.number || github.ref_name }}
  cancel-in-progress: true

permissions:
  contents: read
  # Needed for GitHub Checks API
  checks: write

jobs:
  eslint:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v5

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: npm install --include=dev

      - name: Run ESLint with reviewdog (GitHub Checks)
        uses: reviewdog/action-eslint@v1
        with:
          eslint_flags: '.'
          reporter: github-pr-check
          fail_level: error
          level: error
          tool_name: ESLint PR code


================================================
FILE: .github/workflows/pr-check-build-size.yml
================================================
name: Calculate PR build size
on:
  pull_request_target:
    types: [opened, reopened, synchronize]
    paths:
      - 'boot/**'
      - 'core/**'
      - 'themes/tiddlywiki/snowwhite/**'
      - 'themes/tiddlywiki/vanilla/**'

jobs:
  calculate-build-size:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: read
      contents: read
    outputs:
      pr_size: ${{ steps.get_sizes.outputs.pr_size }}
      base_size: ${{ steps.get_sizes.outputs.base_size }}
    steps:
    - name: build-size-check
      id: get_sizes
      uses: TiddlyWiki/cerebrus@v7
      with:
        pr_number: ${{ github.event.pull_request.number }}
        repo: ${{ github.repository }}
        base_ref: ${{ github.event.pull_request.base.ref }}
        github_token: ${{ secrets.GITHUB_TOKEN }}
        mode: size:calc

  dispatch-followup:
    needs: calculate-build-size
    runs-on: ubuntu-latest
    permissions:
      actions: write  # Required to dispatch another workflow
      pull-requests: write
      contents: read
    steps:
    - name: Trigger follow-up workflow
      uses: actions/github-script@v6
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        script: |
          await github.rest.actions.createWorkflowDispatch({
            owner: context.repo.owner,
            repo: context.repo.repo,
            workflow_id: 'pr-comment-build-size.yml',
            ref: 'master',
            inputs: {
              pr_number: '${{ github.event.pull_request.number }}',
              base_ref: '${{ github.event.pull_request.base.ref }}',
              pr_size: '${{ needs.calculate-build-size.outputs.pr_size }}',
              base_size: '${{ needs.calculate-build-size.outputs.base_size }}'
            }
          });

================================================
FILE: .github/workflows/pr-comment-build-size.yml
================================================
name: Comment on PR build size (Trusted workflow)

on:
  workflow_dispatch:
    inputs:
      pr_number:
        required: true
        type: string
      base_ref:
        required: true
        type: string
      pr_size:
        required: true
        type: string
      base_size:
        required: true
        type: string

jobs:
  comment-on-pr:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
      contents: read

    steps:
    - name: Build and check size
      uses: TiddlyWiki/cerebrus@v7
      with:
        pr_number: ${{ inputs.pr_number }}
        repo: ${{ github.repository }}
        base_ref: ${{ inputs.base_ref }}
        github_token: ${{ secrets.GITHUB_TOKEN }}
        mode: size:comment
        pr_size: ${{ inputs.pr_size }}
        base_size: ${{ inputs.base_size }}


================================================
FILE: .github/workflows/pr-validation.yml
================================================
name: PR Validation

on:
  pull_request_target:
    types: [opened, reopened, synchronize]

permissions:
  contents: read
  pull-requests: write
  issues: write
jobs:
  validate-pr:
    runs-on: ubuntu-latest

    steps:
    # Step 1: Validate PR paths
    - name: Validate PR Paths
      uses: TiddlyWiki/cerebrus@v6
      with:
        pr_number: ${{ github.event.pull_request.number }}
        repo: ${{ github.repository }}
        base_ref: ${{ github.event.pull_request.base.ref }}
        github_token: ${{ secrets.GITHUB_TOKEN }}
        mode: rules
      continue-on-error: true
    
    # Step 2: Validate change notes
    - name: Validate Change Notes
      uses: TiddlyWiki/cerebrus@v7
      with:
        pr_number: ${{ github.event.pull_request.number }}
        repo: ${{ github.repository }}
        base_ref: ${{ github.event.pull_request.base.ref }}
        github_token: ${{ secrets.GITHUB_TOKEN }}
        mode: changenotes
      continue-on-error: false



================================================
FILE: .gitignore
================================================
.DS_Store
.c9/
.vs/
.vscode/
.claude/
tmp/
output/
node_modules/
/test-results/
/playwright-report/
/playwright/.cache/
$__StoryList.tid


================================================
FILE: .jshintignore
================================================
plugins/tiddlywiki/browser-sniff/files
plugins/tiddlywiki/codemirror/files/
plugins/tiddlywiki/d3/files/
plugins/tiddlywiki/highlight/files/
plugins/tiddlywiki/jasmine/files/
plugins/tiddlywiki/markdown/files/
plugins/tiddlywiki/markdown/files/
node_modules/


================================================
FILE: .npmignore
================================================
.DS_Store
.c9/
tmp/
output/
node_modules/


================================================
FILE: bin/build-site.sh
================================================
#!/bin/bash

# Build all tiddlywiki.com assets.

# Default to the current version number for building the plugin library

if [  -z "$TW5_BUILD_VERSION" ]; then
    TW5_BUILD_VERSION=v5.4.0
fi

echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]"

# Default to using tw5.com as the main edition for /index.html

if [  -z "$TW5_BUILD_MAIN_EDITION" ]; then
    TW5_BUILD_MAIN_EDITION=./editions/tw5.com
fi

echo "Using TW5_BUILD_MAIN_EDITION as [$TW5_BUILD_MAIN_EDITION]"

# Default to the version of TiddlyWiki installed in this repo

if [  -z "$TW5_BUILD_TIDDLYWIKI" ]; then
    TW5_BUILD_TIDDLYWIKI=./tiddlywiki.js
fi

echo "Using TW5_BUILD_TIDDLYWIKI as [$TW5_BUILD_TIDDLYWIKI]"

# Set up the build details

if [  -z "$TW5_BUILD_DETAILS" ]; then
    TW5_BUILD_DETAILS="$(git symbolic-ref --short HEAD)-$(git rev-parse HEAD) from $(git remote get-url origin)"
fi

echo "Using TW5_BUILD_DETAILS as [$TW5_BUILD_DETAILS]"

if [  -z "$TW5_BUILD_COMMIT" ]; then
	TW5_BUILD_COMMIT="$(git rev-parse HEAD)"
fi

echo "Using TW5_BUILD_COMMIT as [$TW5_BUILD_COMMIT]"

# Set up the build output directory

if [  -z "$TW5_BUILD_OUTPUT" ]; then
    TW5_BUILD_OUTPUT=./output
fi

mkdir -p $TW5_BUILD_OUTPUT

if [  ! -d "$TW5_BUILD_OUTPUT" ]; then
    echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
    exit 1
fi

echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"

echo "Build details: $TW5_BUILD_DETAILS"

# Make the CNAME file that GitHub Pages requires

echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME

# Delete any existing static content

mkdir -p $TW5_BUILD_OUTPUT/static
mkdir -p $TW5_BUILD_OUTPUT/dev
mkdir -p $TW5_BUILD_OUTPUT/dev/static
rm $TW5_BUILD_OUTPUT/static/*
rm $TW5_BUILD_OUTPUT/dev/static/*

# Redirects

echo "<a href='./plugins/tiddlywiki/tw2parser/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/tw2parser/index.html</a>" > $TW5_BUILD_OUTPUT/classicparserdemo.html
echo "<a href='./plugins/tiddlywiki/codemirror/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/codemirror/index.html</a>" > $TW5_BUILD_OUTPUT/codemirrordemo.html
echo "<a href='./plugins/tiddlywiki/highlight/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/highlight/index.html</a>" > $TW5_BUILD_OUTPUT/highlightdemo.html
echo "<a href='./plugins/tiddlywiki/markdown/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/markdown/index.html</a>" > $TW5_BUILD_OUTPUT/markdowndemo.html

# Put the build details into a .tid file so that it can be included in each build (deleted at the end of this script)

echo -e -n "title: $:/build\ncommit: $TW5_BUILD_COMMIT\n\n$TW5_BUILD_DETAILS\n" > $TW5_BUILD_OUTPUT/build.tid

######################################################
#
# Core distributions
#
######################################################

# Conditionally build archive if $TW5_BUILD_ARCHIVE variable is set, otherwise do nothing
#
# /archive/Empty-TiddlyWiki-<version>.html	Empty archived version
# /archive/TiddlyWiki-<version>.html		Full archived version

if [ -n "$TW5_BUILD_ARCHIVE" ]; then

node $TW5_BUILD_TIDDLYWIKI \
	$TW5_BUILD_MAIN_EDITION \
	--version \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_ARCHIVE \
	--build archive \
	|| exit 1
fi

# /index.html			Main site
# /external-(version).html External core version of main site
# /favicon.ico			Favicon for main site
# /static.html			Static rendering of default tiddlers
# /alltiddlers.html		Static rendering of all tiddlers
# /static/*				Static single tiddlers
# /static/static.css	Static stylesheet
# /static/favicon.ico	Favicon for static pages

node $TW5_BUILD_TIDDLYWIKI \
	$TW5_BUILD_MAIN_EDITION \
	--version \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--build favicon static index external-js \
	|| exit 1

# /empty.html					Empty
# /empty-external-core.html		External core empty
# /tiddlywikicore-<version>.js	Core plugin javascript
node $TW5_BUILD_TIDDLYWIKI \
	./editions/empty \
	--output $TW5_BUILD_OUTPUT \
	--build empty emptyexternalcore \
	|| exit 1


# /test.html			Test edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/test \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all test.html text/plain \
	|| exit 1

# /dev/index.html			Developer docs
# /dev/favicon.ico			Favicon for dev site
# /dev/static.html			Static rendering of default tiddlers
# /dev/alltiddlers.html		Static rendering of all tiddlers
# /dev/static/*				Static single tiddlers
# /dev/static/static.css	Static stylesheet
node $TW5_BUILD_TIDDLYWIKI \
	./editions/dev \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/dev \
	--build index favicon static \
	|| exit 1

# /tour.html			tour edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/tour \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all-external-js tour.html text/plain \
	|| exit 1

# /surveys.html			surveys edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/tiddlywiki-surveys \
	--output $TW5_BUILD_OUTPUT \
	--build index \
	|| exit 1

# /share.html				Custom edition for sharing via the URL
node $TW5_BUILD_TIDDLYWIKI \
	./editions/share \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--build share \
	|| exit 1

# /upgrade.html				Custom edition for performing upgrades
node $TW5_BUILD_TIDDLYWIKI \
	./editions/upgrade \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--build upgrade \
	|| exit 1

# /encrypted.html			Copy of the main file encrypted with the password "password"
node $TW5_BUILD_TIDDLYWIKI \
	$TW5_BUILD_MAIN_EDITION \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--build encrypted \
	|| exit 1


######################################################
#
# Editions
#
######################################################

# /editions/xlsx-utils/index.html	xlsx-utils edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/xlsx-utils \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/editions/xlsx-utils/ \
	--build external \
	|| exit 1

# /editions/resumebuilder/index.html	Resume builder edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/resumebuilder \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/editions/resumebuilder/ \
	--build index \
	|| exit 1

# /editions/text-slicer/index.html	Text slicer edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/text-slicer \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/editions/text-slicer/ \
	--build external \
	|| exit 1

# /editions/translators/index.html	Translators edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/translators \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/editions/translators/ \
	--build index \
	|| exit 1

# /editions/introduction/index.html	Introduction edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/introduction \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/editions/introduction/ \
	--build index \
	|| exit 1

# /editions/full/index.html	Full edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/full \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/editions/full/ \
	--build index \
	|| exit 1

# /editions/tw5.com-docs/index.html	tiddlywiki.com docs edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/tw5.com-docs \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/editions/tw5.com-docs/ \
	--build external \
	|| exit 1

# /editions/twitter-archivist/index.html	Twitter Archivist edition
node $TW5_BUILD_TIDDLYWIKI \
	./editions/twitter-archivist \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/editions/twitter-archivist/ \
	--build index \
	|| exit 1

######################################################
#
# Plugin demos
#
######################################################

# /plugins/tiddlywiki/innerwiki/index.html	Demo wiki with Innerwiki plugin

node $TW5_BUILD_TIDDLYWIKI \
	./editions/innerwikidemo \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/innerwiki/index.html text/plain \
	|| exit 1

# /plugins/tiddlywiki/dynaview/index.html	Demo wiki with DynaView plugin
# /plugins/tiddlywiki/dynaview/empty.html	Empty wiki with DynaView plugin

node $TW5_BUILD_TIDDLYWIKI \
	./editions/dynaviewdemo \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/dynaview/index.html text/plain \
	--rendertiddler $:/core/save/empty plugins/tiddlywiki/dynaview/empty.html text/plain \
	|| exit 1

# /plugins/tiddlywiki/katex/index.html	Demo wiki with KaTeX plugin
# /plugins/tiddlywiki/katex/empty.html	Empty wiki with KaTeX plugin

# TODO: Build the static file with the release of 5.1.3
#	--rendertiddler $:/core/templates/static.template.html plugins/tiddlywiki/katex/static.html text/plain \

node $TW5_BUILD_TIDDLYWIKI \
	./editions/katexdemo \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/katex/index.html text/plain \
	--rendertiddler $:/core/save/empty plugins/tiddlywiki/katex/empty.html text/plain \
	|| exit 1

# /plugins/tiddlywiki/codemirror/index.html	Demo wiki with codemirror plugin
# /plugins/tiddlywiki/codemirror/empty.html	Empty wiki with codemirror plugin
node $TW5_BUILD_TIDDLYWIKI \
	./editions/codemirrordemo \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/codemirror/index.html text/plain \
	--rendertiddler $:/core/save/empty plugins/tiddlywiki/codemirror/empty.html text/plain \
	|| exit 1

# /plugins/tiddlywiki/markdown/index.html		Demo wiki with Markdown plugin
# /plugins/tiddlywiki/markdown/empty.html		Empty wiki with Markdown plugin
node $TW5_BUILD_TIDDLYWIKI \
	./editions/markdowndemo \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/markdown/index.html text/plain \
	--rendertiddler $:/core/save/empty plugins/tiddlywiki/markdown/empty.html text/plain \
	|| exit 1

# /plugins/tiddlywiki/tw2parser/index.html		Demo wiki with tw2parser plugin
# /plugins/tiddlywiki/tw2parser/empty.html		Empty wiki with tw2parser plugin
node $TW5_BUILD_TIDDLYWIKI \
	./editions/classicparserdemo \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/tw2parser/index.html text/plain \
	--rendertiddler $:/core/save/empty plugins/tiddlywiki/tw2parser/empty.html text/plain \
	|| exit 1

# /plugins/tiddlywiki/highlight/index.html		Demo wiki with highlight plugin
# /plugins/tiddlywiki/highlight/empty.html		Empty wiki with highlight plugin
node $TW5_BUILD_TIDDLYWIKI \
	./editions/highlightdemo \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/highlight/index.html text/plain \
	--rendertiddler $:/core/save/empty plugins/tiddlywiki/highlight/empty.html text/plain \
	|| exit 1

# /plugins/tiddlywiki/geospatial/index.html		Demo wiki with geospatial plugin
# /plugins/tiddlywiki/geospatial/empty.html		Empty wiki with geospatial plugin
node $TW5_BUILD_TIDDLYWIKI \
	./editions/geospatialdemo \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT \
	--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/geospatial/index.html text/plain \
	--rendertiddler $:/core/save/empty plugins/tiddlywiki/geospatial/empty.html text/plain \
	|| exit 1

######################################################
#
# Language editions
#
######################################################

# Delete any existing static content

rm -rf $TW5_BUILD_OUTPUT/languages/de-AT/static/*
rm -rf $TW5_BUILD_OUTPUT/languages/de-DE/static/*
rm -rf $TW5_BUILD_OUTPUT/languages/es-ES/static/*
rm -rf $TW5_BUILD_OUTPUT/languages/fr-FR/static/*
rm -rf $TW5_BUILD_OUTPUT/languages/ja-JP/static/*
rm -rf $TW5_BUILD_OUTPUT/languages/ko-KR/static/*
rm -rf $TW5_BUILD_OUTPUT/languages/zh-Hans/static/*
rm -rf $TW5_BUILD_OUTPUT/languages/zh-Hant/static/*

# /languages/de-AT/index.html		Demo wiki with de-AT language
# /languages/de-AT/empty.html		Empty wiki with de-AT language
node $TW5_BUILD_TIDDLYWIKI \
	./editions/de-AT \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/languages/de-AT \
	--build favicon empty static index \
	|| exit 1

# /languages/de-DE/index.html		Demo wiki with de-DE language
# /languages/de-DE/empty.html		Empty wiki with de-DE language
node $TW5_BUILD_TIDDLYWIKI \
	./editions/de-DE \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/languages/de-DE \
	--build favicon empty static index \
	|| exit 1

# /languages/es-ES/index.html		Demo wiki with es-ES language
# /languages/es-ES/empty.html		Empty wiki with es-ES language
node $TW5_BUILD_TIDDLYWIKI \
	./editions/es-ES \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/languages/es-ES \
	--build favicon empty static index \
	|| exit 1

# /languages/fr-FR/index.html		Demo wiki with fr-FR language
# /languages/fr-FR/empty.html		Empty wiki with fr-FR language
node $TW5_BUILD_TIDDLYWIKI \
	./editions/fr-FR \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/languages/fr-FR \
	--build favicon empty static index \
	|| exit 1

# /languages/ja-JP/index.html		Demo wiki with ja-JP language
# /languages/ja-JP/empty.html		Empty wiki with ja-JP language
node $TW5_BUILD_TIDDLYWIKI \
	./editions/ja-JP \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/languages/ja-JP \
	--build empty index \
	|| exit 1

# /languages/ko-KR/index.html		Demo wiki with ko-KR language
# /languages/ko-KR/empty.html		Empty wiki with ko-KR language
node $TW5_BUILD_TIDDLYWIKI \
	./editions/ko-KR \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/languages/ko-KR \
	--build favicon empty static index \
	|| exit 1

# /languages/zh-Hans/index.html		Demo wiki with zh-Hans language
# /languages/zh-Hans/empty.html		Empty wiki with zh-Hans language
node $TW5_BUILD_TIDDLYWIKI \
	./editions/zh-Hans \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/languages/zh-Hans \
	--build empty index \
	|| exit 1

# /languages/zh-Hant/index.html		Demo wiki with zh-Hant language
# /languages/zh-Hant/empty.html		Empty wiki with zh-Hant language
node $TW5_BUILD_TIDDLYWIKI \
	./editions/zh-Hant \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/languages/zh-Hant \
	--build empty index \
	|| exit 1

######################################################
#
# Plugin library
#
######################################################

node $TW5_BUILD_TIDDLYWIKI \
	./editions/pluginlibrary \
	--load $TW5_BUILD_OUTPUT/build.tid \
	--output $TW5_BUILD_OUTPUT/library/$TW5_BUILD_VERSION \
	--build library\
	|| exit 1

# Delete the temporary build tiddler

rm $TW5_BUILD_OUTPUT/build.tid || exit 1


================================================
FILE: bin/build-tw-org.sh
================================================
#!/bin/bash

# Build tiddlywiki.org assets.

# Default to the version of TiddlyWiki installed in this repo

if [  -z "$TWORG_BUILD_TIDDLYWIKI" ]; then
    TWORG_BUILD_TIDDLYWIKI=./tiddlywiki.js
fi

echo "Using TWORG_BUILD_TIDDLYWIKI as [$TWORG_BUILD_TIDDLYWIKI]"

# Set up the build details

if [  -z "$TWORG_BUILD_DETAILS" ]; then
    TWORG_BUILD_DETAILS="$(git symbolic-ref --short HEAD)-$(git rev-parse HEAD) from $(git remote get-url origin)"
fi

echo "Using TWORG_BUILD_DETAILS as [$TWORG_BUILD_DETAILS]"

if [  -z "$TWORG_BUILD_COMMIT" ]; then
	TWORG_BUILD_COMMIT="$(git rev-parse HEAD)"
fi

echo "Using TWORG_BUILD_COMMIT as [$TWORG_BUILD_COMMIT]"

# Set up the build output directory

if [  -z "$TWORG_BUILD_OUTPUT" ]; then
    TWORG_BUILD_OUTPUT=$(mktemp -d)
fi

mkdir -p $TWORG_BUILD_OUTPUT

if [  ! -d "$TWORG_BUILD_OUTPUT" ]; then
    echo 'A valid TWORG_BUILD_OUTPUT environment variable must be set'
    exit 1
fi

echo "Using TWORG_BUILD_OUTPUT as [$TWORG_BUILD_OUTPUT]"

# Pull existing GitHub pages content

git clone --depth=1 --branch=main "https://github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" $TWORG_BUILD_OUTPUT

# Make the CNAME file that GitHub Pages requires

echo "tiddlywiki.org" > $TWORG_BUILD_OUTPUT/CNAME

# Delete any existing static content

mkdir -p $TWORG_BUILD_OUTPUT/static
rm $TWORG_BUILD_OUTPUT/static/*

# Put the build details into a .tid file so that it can be included in each build (deleted at the end of this script)

echo -e -n "title: $:/build\ncommit: $TWORG_BUILD_COMMIT\n\n$TWORG_BUILD_DETAILS\n" > $TWORG_BUILD_OUTPUT/build.tid

######################################################
#
# tiddlywiki.org distribution
#
######################################################

# /index.html			Main site
# /favicon.ico			Favicon for main site
# /static.html			Static rendering of default tiddlers
# /alltiddlers.html		Static rendering of all tiddlers
# /static/*				Static single tiddlers
# /static/static.css	Static stylesheet
# /static/favicon.ico	Favicon for static pages
node $TWORG_BUILD_TIDDLYWIKI \
	editions/tw.org \
	--verbose \
	--version \
	--load $TWORG_BUILD_OUTPUT/build.tid \
	--output $TWORG_BUILD_OUTPUT \
	--build favicon static index \
	|| exit 1

# Delete the temporary build tiddler

rm $TWORG_BUILD_OUTPUT/build.tid || exit 1

# Push output back to GitHub

# Exit script immediately if any command fails
set -e

pushd $TWORG_BUILD_OUTPUT
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Actions"
git add -A .
git commit --message "GitHub build: $GITHUB_RUN_NUMBER of $TW5_BUILD_BRANCH ($(date +'%F %T %Z'))"
git remote add deploy "https://$GH_TOKEN@github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" &>/dev/null
git push deploy main &>/dev/null
popd


================================================
FILE: bin/ci-pre-build.sh
================================================
#!/bin/bash

# Install latest current release from npm
# (we need to force because otherwise npm will refuse to install a module of the same name)

npm --force install tiddlywiki || exit 1

# Pull existing GitHub pages content

git clone --depth=1 --branch=master "https://github.com/TiddlyWiki/tiddlywiki.com-gh-pages.git" output


================================================
FILE: bin/ci-push.sh
================================================
#!/bin/bash

# Push output back to GitHub

# Exit script immediately if any command fails
set -e

cd output
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Actions"
git add -A .
git commit --message "GitHub build: $GITHUB_RUN_NUMBER of $TW5_BUILD_BRANCH ($(date +'%F %T %Z'))"
git remote add deploy "https://$GH_TOKEN@github.com/TiddlyWiki/tiddlywiki.com-gh-pages.git" &>/dev/null
git push deploy master &>/dev/null
cd ..


================================================
FILE: bin/ci-test.sh
================================================
#!/bin/bash

# test TiddlyWiki5 for tiddlywiki.com

node ./tiddlywiki.js \
	./editions/test \
	--verbose \
	--version \
	--rendertiddler $:/core/save/all test.html text/plain \
	--test \
	|| exit 1

npm install playwright @playwright/test
npx playwright install chromium firefox --with-deps

npx playwright test


================================================
FILE: bin/clean.sh
================================================
#!/bin/bash

# Remove any output files

find . -regex "^./editions/.*/output/.*" -delete


================================================
FILE: bin/get-plugin-library-version-number
================================================
#!/usr/bin/env node

// Extract raw version number from package.json (without the optional "-prerelease" suffix)

if(!process.env["TW5_BUILD_TIDDLYWIKI"]) {
	throw "TW5_BUILD_TIDDLYWIKI environment variable not set";
}

var fs = require("fs"),
	path = require("path");

var filename = path.resolve(path.dirname(process.env["TW5_BUILD_TIDDLYWIKI"]),"./package.json"),
	json = JSON.parse(fs.readFileSync(filename,"utf8"));

if(!json.version) {
	throw "Missing version number in package.json";
}

process.stdout.write("v" + json.version.split("-")[0]);


================================================
FILE: bin/ginsu.cmd
================================================
@echo off

rem Split the tiddlers out of a TiddlyWiki file

node .\tiddlywiki.js ^
	.\editions\empty ^
	--verbose ^
	--load %1 ^
	--output tmp ^
	--rendertiddlers [!is[system]] $:/core/templates/tid-tiddler ginsu text/plain .tid ^
	--rendertiddler $:/core/templates/split-recipe ginsu\split.recipe text/plain ^
	|| exit 1


================================================
FILE: bin/ginsu.sh
================================================
#!/bin/bash

# Split the tiddlers out of a TiddlyWiki file

node ./tiddlywiki.js \
	./editions/empty \
	--verbose \
	--load $1 \
	--output tmp \
	--rendertiddlers [!is[system]] $:/core/templates/tid-tiddler ginsu text/plain .tid \
	--rendertiddler $:/core/templates/split-recipe ginsu/split.recipe text/plain \
	|| exit 1


================================================
FILE: bin/lazy.cmd
================================================
@echo off

rem serve TiddlyWiki5 over HTTP with lazily loaded images

rem Optional parameter is the username for signing edits

node .\tiddlywiki.js ^
	editions\server ^
	--verbose ^
	--server 8080 $:/core/save/lazy-images text/plain text/html %1 %2^
	|| exit 1


================================================
FILE: bin/lazy.sh
================================================
#!/bin/bash

# serve TiddlyWiki5 over HTTP with lazily loaded images

# Optional parameter is the username for signing edits

node ./tiddlywiki.js \
	editions/tw5.com-server \
	--verbose \
	--server 8080 $:/core/save/lazy-images text/plain text/html $1 $2\
	|| exit 1


================================================
FILE: bin/npm-publish.sh
================================================
#!/bin/bash

# publish to npm

./bin/clean.sh

npm publish || exit 1


================================================
FILE: bin/optimise-svgs.js
================================================
#!/usr/bin/env node

/*
Optimise the SVGs in ./core/images using SVGO from https://github.com/svg/svgo

Install SVGO with the following command in the root of the repo:

npm install svgo@2.3.0
*/

"use strict";

var fs = require("fs"),
	path = require("path"),
	{ optimize } = require("svgo"),
	config = {
		plugins: [
			"cleanupAttrs",
			"removeDoctype",
			"removeXMLProcInst",
			"removeComments",
			"removeMetadata",
			"removeTitle",
			"removeDesc",
			"removeUselessDefs",
			"removeEditorsNSData",
			"removeEmptyAttrs",
			"removeHiddenElems",
			"removeEmptyText",
			"removeEmptyContainers",
			// 'removeViewBox',
			"cleanupEnableBackground",
			"convertStyleToAttrs",
			"convertColors",
			"convertPathData",
			"convertTransform",
			"removeUnknownsAndDefaults",
			"removeNonInheritableGroupAttrs",
			"removeUselessStrokeAndFill",
			"removeUnusedNS",
			"cleanupIDs",
			"cleanupNumericValues",
			"moveElemsAttrsToGroup",
			"moveGroupAttrsToElems",
			"collapseGroups",
			// 'removeRasterImages',
			"mergePaths",
			"convertShapeToPath",
			"sortAttrs",
			//'removeDimensions',
			{name: "removeAttrs", params: { attrs: "(stroke|fill)" } }
		]
	};

var basepath = "./core/images/",
	files = fs.readdirSync(basepath).sort();

files.forEach(function(filename) {
	if(filename.slice(-4) === ".tid") {
		var filepath = path.resolve(basepath,filename),
			data = fs.readFileSync(filepath,"utf8"),
			lines = data.split("\n"),
			blankLine = lines.indexOf(""),
			header = lines.slice(0,blankLine),
			body = lines.slice(blankLine + 1),
			fakeSVG = body.join("\n");
		// A hack to make the new-journal-button work
		fakeSVG = fakeSVG.replace("<<now \"DD\">>","&lt;&lt;now &quot;DD&quot;&gt;&gt;");
		config.path = filepath;
		var result = optimize(fakeSVG,config);
		if(result) {
			var newSVG = header.join("\n") + "\n\n" + result.data.replace("&lt;&lt;now &quot;DD&quot;&gt;&gt;","<<now \"DD\">>");
			fs.writeFileSync(filepath,newSVG);
		} else {
			console.log("Error " + err + " with " + filename);
			process.exit();
		};
	}
});


================================================
FILE: bin/quick-bld.sh
================================================
#!/bin/bash

# Abbreviated build script for building prerelease

tiddlywiki editions/prerelease \
	--verbose \
	--build favicon index empty \
	|| exit 1


================================================
FILE: bin/readme-bld.sh
================================================
#!/bin/bash

# Build readmes from corresponding tiddlers

# Default to the version of TiddlyWiki installed in this repo

if [  -z "$TW5_BUILD_TIDDLYWIKI" ]; then
    TW5_BUILD_TIDDLYWIKI=./tiddlywiki.js
fi

# tw5.com readmes
node $TW5_BUILD_TIDDLYWIKI \
	editions/tw5.com \
	--verbose \
	--output . \
	--build readmes \
	|| exit 1

# tw.org readmes
node $TW5_BUILD_TIDDLYWIKI \
	editions/tw.org \
	--verbose \
	--output . \
	--build readmes \
	|| exit 1


================================================
FILE: bin/readme.md
================================================
<h1 class="">Script Files</h1><p>The <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki5.html">TiddlyWiki5</a> repository contains several scripts in the <code>bin</code> folder that you can use to automate common tasks, or as a useful starting point for your own scripts. See <a class="tc-tiddlylink tc-tiddlylink-missing" href="https://tiddlywiki.com/static/Scripts%2520for%2520building%2520tiddlywiki.com.html">Scripts for building tiddlywiki.com</a> for details of the scripts used to build and release <a class="tc-tiddlylink-external" href="https://tiddlywiki.com/" rel="noopener noreferrer" target="_blank">https://tiddlywiki.com/</a>.</p><p>All the scripts expect to be run from the root folder of the repository.</p><h2 class=""><code>serve</code>: serves tw5.com</h2><pre><code>./bin/serve.sh -h
./bin/serve.sh [edition dir] [username] [password] [host] [port]</code></pre><p>Or:</p><pre><code>./bin/serve.cmd -h
./bin/serve.cmd [edition dir] [username] [password] [host] [port]</code></pre><p>This script starts <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki5.html">TiddlyWiki5</a> running as an HTTP server, defaulting to the content from the <code>tw5.com-server</code> edition. By default, the Node.js serves on port 8080. If the optional <code>username</code> parameter is provided, it is used for signing edits. If the <code>password</code> is provided then HTTP basic authentication is used. Run the script with the <code>-h</code> parameter to see online help.</p><p>To experiment with this configuration, run the script and then visit <code>http://127.0.0.1:8080</code> in a browser.</p><p>Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).</p><h2 class=""><code>test</code>: build and run tests</h2><p>This script runs the <code>test</code> edition of <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on the server to perform the server-side tests and to build <code>test.html</code> for running the tests in the browser.</p><h2 class=""><code>lazy</code>: serves tw5.com with lazily loaded images</h2><pre><code>./bin/lazy.sh &lt;username&gt; [&lt;password&gt;]</code></pre><p>Or:</p><pre><code>./bin/lazy.cmd &lt;username&gt; [&lt;password&gt;]</code></pre><p>This script serves the <code>tw5.com-server</code> edition content with <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/LazyLoading.html">LazyLoading</a> applied to images.
</p>

================================================
FILE: bin/serve.cmd
================================================
:: This script allows you to serve different TiddlyWiki editions. 
::
:: It respects a TW_SERVE_EDITION_PATH environment variable.
:: If this variable is set it will be used. A command line parameter will overwrite it.
::
:: Ensure your server tiddlywiki.info configuration contains
:: these plugins, otherwise saving is not possible:
::   - "tiddlywiki/tiddlyweb"
::   - "tiddlywiki/filesystem"

@echo off
echo.

:: Help Wanted!! 
:: If you know how to improve -help and -version handling let us know

if "%1" == "--help" call :help
if "%1" == "-h" call :help

if "%1" == "--version" call :version
if "%1" == "-v" call :version

if "%1" == "help" (
	call :help
) else (
	call :main %1 %2 %3 %4 %5
)
exit 0

:version
echo TiddlyWiki serve.cmd script version 0.0.2"
echo.
exit 0
goto:eof

:help
echo Serve TiddlyWiki over HTTP
echo.
echo Optional parameters
echo  - %%1 .. edition directory	.. full or relative path to edition directory
echo  - %%2 .. username 		.. for signing edits - can be empty like this: '""'
echo  - %%3 .. password 		.. can be empty like this: '""'
echo  - %%4 .. IP address or HOST 	.. defaults to localhost
echo  - %%5 .. PORT			.. defaults to 8080
echo.
echo Example 1 .\serve .\editions\tw5.com-server username
echo Example 2 .\serve .\editions\tw5.com-server '""' '""' localhost 9090 
echo .. Example 2 defines: empty username, empty password
echo.
echo Help information
echo  -v, --version		.. shows the script version
echo  -h, --help, help	.. shows this help information
echo.

exit 0
goto:eof

:main
if [%1] NEQ [] (
	:: if there is a editions parameter .. use it.
	set TW_SERVE_EDITION_PATH=%1
) else (
	if [%TW_SERVE_EDITION_PATH%] == [] (
		echo Please provide an edition path as your first parameter or
		echo define a valid TW_SERVE_EDITION_PATH environment variable.
		echo.
		echo Using default edition path 'editions\tw5.com-server' because no environment variable is set
		echo.
		set TW_SERVE_EDITION_PATH= editions\tw5.com-server
	)
)

:: The editions path must exist!
if not exist %TW_SERVE_EDITION_PATH%\nul (
	echo The Path: "%TW_SERVE_EDITION_PATH%" does not exist
	exit 1
)

if [%5] == [] (
	echo Using default port 8080
	set PORT=8080
) else (
	echo Using port %5
	set PORT=%5
)

echo Using edition: %TW_SERVE_EDITION_PATH%
echo.

node .\tiddlywiki.js ^
	%TW_SERVE_EDITION_PATH% ^
	--verbose ^
	--server %PORT% $:/core/save/all text/plain text/html %2 %3 %4^
	|| exit 1
goto:eof


================================================
FILE: bin/serve.sh
================================================
#!/bin/bash
#
# This script allows you to serve different TiddlyWiki editions.
#
# It respects a TW_SERVE_EDITION_PATH environment variable.
# If this variable is set it will be used. A command line parameter will overwrite it.
#
# Ensure your server tiddlywiki.info configuration contains
# these plugins, otherwise saving is not possible:
#    - "tiddlywiki/tiddlyweb"
#    - "tiddlywiki/filesystem"

# Global settings
# set -o nounset	#exit if a variable is not set
set -o errexit	#exit on error

# Get command name and path info needed for help text
ARG0=$(basename $0)
#ARG0DIR=$(dirname $0)
#[ $ARG0DIR == "." ] && ARG0DIR=$PWD

# ---- helper functions ----
version () {
	echo "$ARG0, TiddlyWiki serve script version 0.0.2"
	echo
}

usage() {
	version
	echo Usage:$'\t'$ARG0 [edition dir] [username] [password] [host] [port]
	echo
}

help() {
	usage

	echo Optional parameters
	echo
	echo $'\t'\$1 .. edition directory .. full or relative path to edition directory
	echo $'\t'\$2 .. username for signing edits - can be empty like this: \"\"
	echo $'\t'\$3 .. password - can be empty like this: \"\"
	echo $'\t'\$4 .. IP address or HOST name .. defaults to: localhost
	echo $'\t'\$5 .. PORT .. defaults to: 8080
	echo
	echo $'\t'-v .. Version
	echo $'\t'-h .. Help
	echo
	echo Example 1 ./serve ./editions/tw5.com-server username
	echo Example 2 ./serve ./editions/tw5.com-server \"\" \"\" localhost 9090
	echo .. Example 2 defines: empty username, empty password
	echo
}

_log () {
	echo
	echo "---> $1"
}

# error handling for wrong parameters
error() {
    echo "$ARG0: $*" 1>&2
    exit 1
}

# start the server
serve () {
	#echo 1:$1 2:$2 3:$3 4:$4 5:$5

	node ./tiddlywiki.js \
		"$1" \
		--verbose \
		--server "$5" $:/core/save/all text/plain text/html "$2" "$3" "$4" \
		|| exit 1
}

check_edition_directory () {
	# The editions directory must exist and should contain a tiddlywiki.info file
	if [ ! -d $TW_SERVE_EDITION_PATH ]; then
		_log "Edition directory: '$TW_SERVE_EDITION_PATH' does not exist"
		exit 1
	fi
}

# --------------------------------------------------
# command line parameter handler
while getopts vh flag
do
    case "$flag" in
    (h) help; exit 0;;
    (v) version; exit 0;;
    (*) help
		error
		exit 1;;
    esac
done
shift $(expr $OPTIND - 1)

#----------------------------------------------------

# If no edition parameter is provided, use Jeremy's defaults
if [ $# -eq 0 ]; then
	# check if the edition path environment variable is set. If yes use it.
	[ -z $TW_SERVE_EDITION_PATH ] && TW_SERVE_EDITION_PATH="./editions/tw5.com-server"

	# directory must exist
	check_edition_directory

	# serve the default settings.
	serve "$TW_SERVE_EDITION_PATH" "" "" localhost 8080
else
	if [ -z "$5" ]; then 
		PORT=8080 
	else 
		PORT=$5
	fi
	
	# If the 1st parameter (edition) is set, it has priority.
	TW_SERVE_EDITION_PATH=$1

	# directory must exist
	check_edition_directory

	serve "$TW_SERVE_EDITION_PATH" "$2" "$3" "$4" $PORT
fi


================================================
FILE: bin/tankbld.cmd
================================================
@echo off

rem build the Tank edition of TiddlyWiki

rem See https://tank.peermore.com

rem Open the tank edition in TW5 and save the template for the main HTML file

node .\tiddlywiki.js ^
	editions\tw5tank ^
	--verbose ^
	--output tmp ^
	--rendertiddler $:/core/save/all app.html text/plain ^
	|| exit 1

rem Prepend the type information that TiddlyWeb needs to turn the .html file into a .tid file

echo "type: text/html" > tmp\app.txt
echo "" >> tmp\app.txt
type tmp\app.html >> tmp\app.txt


================================================
FILE: bin/tankbld.sh
================================================
#!/bin/bash

# build the Tank edition of TiddlyWiki

# See https://tank.peermore.com

# Open the tank edition in TW5 and save the template for the main HTML file

node ./tiddlywiki.js \
	editions/tw5tank \
	--verbose \
	--output tmp \
	--rendertiddler $:/core/save/all app.html text/plain \
	|| exit 1

# Prepend the type information that TiddlyWeb needs to turn the .html file into a .tid file

echo "type: text/html" > tmp/app.txt
echo "" >> tmp/app.txt
cat tmp/app.html >> tmp/app.txt


================================================
FILE: bin/test.cmd
================================================
@echo off

rem test TiddlyWiki5 for tiddlywiki.com

rem Run the test edition to run the node.js tests and to generate test.html for tests in the browser

node .\tiddlywiki.js ^
	.\editions\test ^
	--verbose ^
	--rendertiddler $:/core/save/all test.html text/plain ^
	|| exit 1


================================================
FILE: bin/test.sh
================================================
#!/bin/bash

# test TiddlyWiki5 for tiddlywiki.com

# Run the test edition to run the node.js tests and to generate test.html for tests in the browser

node ./tiddlywiki.js \
	./editions/test \
	--verbose \
	--version \
	--rendertiddler $:/core/save/all test.html text/plain \
	--test \
	|| exit 1

echo To run the tests in a browser, open "editions/test/output/test.html"


================================================
FILE: bin/update-translation-from-html-file.sh
================================================
#!/bin/bash

# Process translation updates made via the translators edition

# ./bin/update-translation-from-html-file.sh <language-code> <path-to-html-file>

# Assign and check parameters 

LANGUAGE_CODE=$1 
HTML_FILE_PATH=$2

if [ -z "$LANGUAGE_CODE" ]; then
	echo "Missing parameter: language code"
	exit 1
fi

if [ -z "$HTML_FILE_PATH" ]; then
	echo "Missing parameter: path to HTML file"
	exit 1
fi

./tiddlywiki.js editions/translators/ --verbose --unpackplugin $:/languages/$LANGUAGE_CODE --load $HTML_FILE_PATH --build output-files || exit 1

cp -R ./editions/translators/output/language/. ./languages/$LANGUAGE_CODE/ || exit 1



================================================
FILE: bin/verbump.sh
================================================
#!/bin/bash

# Bump to a new version number

if [ -z "$1" ]
  then
    echo "Missing version (eg '5.1.38-prerelease')"
    exit 1
fi

# Set the new version number (will also commit and tag the release)

npm version $1 -m "Version number update for $1" || exit 1

# Make sure our tags are pushed to the origin server

git push origin --tags || exit 1


================================================
FILE: boot/boot.css.tid
================================================
title: $:/boot/boot.css
type: text/css

/*
Basic styles used before we boot up the parsing engine
*/

/*
Error message and password prompt
*/

.tc-error-form {
	font-family: sans-serif;
	color: #fff;
	z-index: 20000;
	position: fixed;
	background-color: rgb(255, 75, 75);
	border: 8px solid rgb(255, 0, 0);
	border-radius: 8px;
	width: 50%;
	margin-left: 25%;
	margin-top: 4em;
	padding: 0 2em 1em 2em;
}

.tc-error-form h1 {
	text-align: center;
}

.tc-error-prompt {
	text-align: center;
	color: #000;
}

.tc-error-message {
	overflow: auto;
	max-height: 40em;
	padding-right: 1em;
	margin: 1em 0;
	white-space: pre-line;
}

.tc-password-wrapper {
    font-family: sans-serif;
	z-index: 20000;
	position: fixed;
	text-align: center;
	width: 200px;
	top: 4em;
	left: 50%;
	margin-left: -144px; /* - width/2 - paddingHorz/2 - border */
	padding: 16px 16px 16px 16px;
	border-radius: 8px;
}

.tc-password-wrapper {
	color: #000;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
	background-color: rgb(197, 235, 183);
	border: 8px solid rgb(164, 197, 152);
}

.tc-password-wrapper form {
	text-align: left;
}

.tc-password-wrapper h1 {
	font-size: 16px;
	line-height: 20px;
	padding-bottom: 16px;
}

.tc-password-wrapper input {
	width: 100%;
}


================================================
FILE: boot/boot.js
================================================
/*\
title: $:/boot/boot.js
type: application/javascript

The main boot kernel for TiddlyWiki. This single file creates a barebones TW environment that is just sufficient to bootstrap the modules containing the main logic of the application.

On the server this file is executed directly to boot TiddlyWiki. In the browser, this file is packed into a single HTML file.

\*/

/* eslint-disable @stylistic/indent */

var _boot = (function($tw) {

"use strict";

// Include bootprefix if we're not given module data
if(!$tw) {
	$tw = require("./bootprefix.js").bootprefix();
}

$tw.utils = $tw.utils || Object.create(null);

/////////////////////////// Standard node.js libraries

var fs, path, vm;
if($tw.node) {
	fs = require("fs");
	path = require("path");
	vm = require("vm");
}

/////////////////////////// Utility functions

$tw.boot.log = function(str) {
	$tw.boot.logMessages = $tw.boot.logMessages || [];
	$tw.boot.logMessages.push(str);
};

/*
Check if an object has a property
*/
$tw.utils.hop = function(object,property) {
	return object ? Object.prototype.hasOwnProperty.call(object,property) : false;
};

/** @deprecated Use Array.isArray instead  */
$tw.utils.isArray = (value) => Array.isArray(value);

/*
Check if an array is equal by value and by reference.
*/
$tw.utils.isArrayEqual = function(array1,array2) {
	if(array1 === array2) {
		return true;
	}
	array1 = array1 || [];
	array2 = array2 || [];
	if(array1.length !== array2.length) {
		return false;
	}
	return array1.every(function(value,index) {
		return value === array2[index];
	});
};

/*
Add an entry to a sorted array if it doesn't already exist, while maintaining the sort order
*/
$tw.utils.insertSortedArray = function(array,value) {
	var low = 0, high = array.length - 1, mid, cmp;
	while(low <= high) {
		mid = (low + high) >> 1;
		cmp = value.localeCompare(array[mid]);
		if(cmp > 0) {
			low = mid + 1;
		} else if(cmp < 0) {
			high = mid - 1;
		} else {
			return array;
		}
	}
	array.splice(low,0,value);
	return array;
};

/*
Push entries onto an array, removing them first if they already exist in the array
	array: array to modify (assumed to be free of duplicates)
	value: a single value to push or an array of values to push
*/
$tw.utils.pushTop = function(array,value) {
	var t,p;
	if($tw.utils.isArray(value)) {
		// Remove any array entries that are duplicated in the new values
		if(value.length !== 0) {
			if(array.length !== 0) {
				if(value.length < array.length) {
					for(t=0; t<value.length; t++) {
						p = array.indexOf(value[t]);
						if(p !== -1) {
							array.splice(p,1);
						}
					}
				} else {
					for(t=array.length-1; t>=0; t--) {
						p = value.indexOf(array[t]);
						if(p !== -1) {
							array.splice(t,1);
						}
					}
				}
			}
			// Push the values on top of the main array
			array.push.apply(array,value);
		}
	} else {
		p = array.indexOf(value);
		if(p !== -1) {
			array.splice(p,1);
		}
		array.push(value);
	}
	return array;
};

/** @deprecated Use instanceof Date instead */
$tw.utils.isDate = (value) => value instanceof Date;

/** @deprecated Use array iterative methods instead */
$tw.utils.each = function(object,callback) {
	if(object) {
		if(Array.isArray(object)) {
			object.every((element,index,array) => {
				const next = callback(element,index,array);
				return next !== false;
			});
		} else {
			Object.entries(object).every((entry) => {
				const next = callback(entry[1], entry[0], object);
				return next !== false;
			});
		}
	}
};

/*
Helper for making DOM elements
tag: tag name
options: see below
Options include:
namespace: defaults to http://www.w3.org/1999/xhtml
attributes: hashmap of attribute values
style: hashmap of styles
text: text to add as a child node
children: array of further child nodes
innerHTML: optional HTML for element
class: class name(s)
document: defaults to current document
eventListeners: array of event listeners (this option won't work until $tw.utils.addEventListeners() has been loaded)
*/
$tw.utils.domMaker = function(tag,options) {
	var options = options || {};
	var doc = options.document || document;
	var element = doc.createElementNS(options.namespace || "http://www.w3.org/1999/xhtml",tag);
	if(options["class"]) {
		element.className = options["class"];
	}
	if(options.text) {
		element.appendChild(doc.createTextNode(options.text));
	}
	$tw.utils.each(options.children,function(child) {
		element.appendChild(child);
	});
	if(options.innerHTML) {
		element.innerHTML = options.innerHTML;
	}
	$tw.utils.each(options.attributes,function(attribute,name) {
		element.setAttribute(name,attribute);
	});
	$tw.utils.each(options.style,function(value,name) {
		element.style[name] = value;
	});
	if(options.eventListeners) {
		$tw.utils.addEventListeners(element,options.eventListeners);
	}
	return element;
};

/*
Display an error and exit
*/
$tw.utils.error = function(err) {
	// Prepare the error message
	var errHeading = ( $tw.language == undefined ? "Internal JavaScript Error" : $tw.language.getString("InternalJavaScriptError/Title") ),
		promptMsg = ( $tw.language == undefined ? "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser" : $tw.language.getString("InternalJavaScriptError/Hint") );
	// Log the error to the console
	console.error($tw.node ? "\x1b[1;31m" + err + "\x1b[0m" : err);
	if($tw.browser && !$tw.node) {
		// Display an error message to the user
		var dm = $tw.utils.domMaker,
			heading = dm("h1",{text: errHeading}),
			prompt = dm("div",{text: promptMsg, "class": "tc-error-prompt"}),
			message = dm("div",{text: err, "class":"tc-error-message"}),
			closeButton = dm("div",{children: [dm("button",{text: ( $tw.language == undefined ? "close" : $tw.language.getString("Buttons/Close/Caption") )})], "class": "tc-error-prompt"}),
			downloadButton = dm("div",{children: [dm("button",{text: ( $tw.language == undefined ? "download tiddlers" : $tw.language.getString("Buttons/EmergencyDownload/Caption") )})], "class": "tc-error-prompt"}),
			form = dm("form",{children: [heading,prompt,downloadButton,message,closeButton], "class": "tc-error-form"});
		document.body.insertBefore(form,document.body.firstChild);
		downloadButton.addEventListener("click",function(event) {
			if($tw && $tw.wiki) {
				var tiddlers = [];
				$tw.wiki.each(function(tiddler,title) {
					tiddlers.push(tiddler.fields);
				});
				var link = dm("a"),
					text = JSON.stringify(tiddlers);
				if(Blob !== undefined) {
					var blob = new Blob([text], {type: "application/json"});
					link.setAttribute("href", URL.createObjectURL(blob));
				} else {
					link.setAttribute("href","data:application/json," + encodeURIComponent(text));
				}
				link.setAttribute("download","emergency-tiddlers-" + (new Date()) + ".json");
				document.body.appendChild(link);
				link.click();
				document.body.removeChild(link);
			} else {
				alert("Emergency tiddler download is not available");
			}
			event.preventDefault();
			return false;
		},true);
		form.addEventListener("submit",function(event) {
			document.body.removeChild(form);
			event.preventDefault();
			return false;
		},true);
		return null;
	} else if(!$tw.browser) {
		// Exit if we're under node.js
		process.exit(1);
	}
};

/*
Use our custom error handler if we're in the browser
*/
if($tw.boot.tasks.trapErrors) {
	window.onerror = function(errorMsg,url,lineNumber) {
		$tw.utils.error(errorMsg);
		return false;
	};
}

/*
Extend an object with the properties from a list of source objects
*/
$tw.utils.extend = function(object /*, sourceObjectList */) {
	$tw.utils.each(Array.prototype.slice.call(arguments,1),function(source) {
		if(source) {
			for(var p in source) {
				object[p] = source[p];
			}
		}
	});
	return object;
};

/*
Fill in any null or undefined properties of an object with the properties from a list of source objects. Each property that is an object is called recursively
*/
$tw.utils.deepDefaults = function(object /*, sourceObjectList */) {
	$tw.utils.each(Array.prototype.slice.call(arguments,1),function(source) {
		if(source) {
			for(var p in source) {
				if(object[p] === null || object[p] === undefined) {
					object[p] = source[p];
				}
				if(typeof object[p] === "object" && typeof source[p] === "object") {
					$tw.utils.deepDefaults(object[p],source[p]);
				}
			}
		}
	});
	return object;
};

/*
Convert a URIComponent encoded string to a string safely
*/
$tw.utils.decodeURIComponentSafe = function(s) {
	var v = s;
	try {
		v = decodeURIComponent(s);
	} catch(e) {}
	return v;
};

/*
Convert a URI encoded string to a string safely
*/
$tw.utils.decodeURISafe = function(s) {
	var v = s;
	try {
		v = decodeURI(s);
	} catch(e) {}
	return v;
};

/*
Convert "&amp;" to &, "&nbsp;" to nbsp, "&lt;" to <, "&gt;" to > and "&quot;" to "
*/
$tw.utils.htmlDecode = function(s) {
	return s.toString().replace(/&lt;/mg,"<").replace(/&nbsp;/mg,"\xA0").replace(/&gt;/mg,">").replace(/&quot;/mg,"\"").replace(/&amp;/mg,"&");
};

/*
Get the browser location.hash. We don't use location.hash because of the way that Firefox auto-urldecodes it (see http://stackoverflow.com/questions/1703552/encoding-of-window-location-hash)
*/
$tw.utils.getLocationHash = function() {
	const href = window.location.href,
		idx = href.indexOf("#");

	if(idx === -1) {
		return "#";
	}

	const afterHash = href.substring(idx + 1);
	if(afterHash.startsWith("#") || afterHash.startsWith("%23")) {
		// Special case: ignore location hash if it itself starts with a #
		return "#";
	}
	return href.substring(idx);
};


/** @deprecated Pad a string to a given length with "0"s. Length defaults to 2 */
$tw.utils.pad = function(value,length = 2) {
	const s = value.toString();
	return s.padStart(length, "0");
};

// Convert a date into UTC YYYYMMDDHHMMSSmmm format
$tw.utils.stringifyDate = function(value) {
	return value.getUTCFullYear() +
			$tw.utils.pad(value.getUTCMonth() + 1) +
			$tw.utils.pad(value.getUTCDate()) +
			$tw.utils.pad(value.getUTCHours()) +
			$tw.utils.pad(value.getUTCMinutes()) +
			$tw.utils.pad(value.getUTCSeconds()) +
			$tw.utils.pad(value.getUTCMilliseconds(),3);
};

// Parse a date from a UTC YYYYMMDDHHMMSSmmm format string
$tw.utils.parseDate = function(value) {
	if(typeof value === "string") {
		var negative = 1;
		if(value.charAt(0) === "-") {
			negative = -1;
			value = value.substr(1);
		}
		var year = parseInt(value.substr(0,4),10) * negative,
			d = new Date(Date.UTC(year,
				parseInt(value.substr(4,2),10)-1,
				parseInt(value.substr(6,2),10),
				parseInt(value.substr(8,2)||"00",10),
				parseInt(value.substr(10,2)||"00",10),
				parseInt(value.substr(12,2)||"00",10),
				parseInt(value.substr(14,3)||"000",10)));
		d.setUTCFullYear(year); // See https://stackoverflow.com/a/5870822
		return d;
	} else if($tw.utils.isDate(value)) {
		return value;
	} else {
		return null;
	}
};

// Stringify an array of tiddler titles into a list string
$tw.utils.stringifyList = function(value) {
	if($tw.utils.isArray(value)) {
		var result = new Array(value.length);
		for(var t=0, l=value.length; t<l; t++) {
			var entry = value[t] || "";
			if(entry.match(/[^\S\xA0]/mg)) {
				result[t] = "[[" + entry + "]]";
			} else {
				result[t] = entry;
			}
		}
		return result.join(" ");
	} else {
		return value || "";
	}
};

// Parse a string array from a bracketted list. For example "OneTiddler [[Another Tiddler]] LastOne"
$tw.utils.parseStringArray = function(value, allowDuplicate) {
	if(typeof value === "string") {
		var memberRegExp = /(?:^|[^\S\xA0])(?:\[\[(.*?)\]\])(?=[^\S\xA0]|$)|([\S\xA0]+)/mg,
			results = [], names = {},
			match;
		do {
			match = memberRegExp.exec(value);
			if(match) {
				var item = match[1] || match[2];
				if(item !== undefined && (!$tw.utils.hop(names,item) || allowDuplicate)) {
					results.push(item);
					names[item] = true;
				}
			}
		} while(match);
		return results;
	} else if($tw.utils.isArray(value)) {
		return value;
	} else {
		return null;
	}
};

// Parse a block of name:value fields. The `fields` object is used as the basis for the return value
$tw.utils.parseFields = function(text,fields) {
	fields = fields || Object.create(null);
	text.split(/\r?\n/mg).forEach(function(line) {
		if(line.charAt(0) !== "#") {
			var p = line.indexOf(":");
			if(p !== -1) {
				var field = line.substr(0, p).trim(),
					value = line.substr(p+1).trim();
				if(field) {
					fields[field] = value;
				}
			}
		}
	});
	return fields;
};

// Safely parse a string as JSON
$tw.utils.parseJSONSafe = function(text,defaultJSON) {
	try {
		return JSON.parse(text);
	} catch(e) {
		if(typeof defaultJSON === "function") {
			return defaultJSON(e);
		} else {
			return defaultJSON || {};
		}
	}
};

/*
Resolves a source filepath delimited with `/` relative to a specified absolute root filepath.
In relative paths, the special folder name `..` refers to immediate parent directory, and the
name `.` refers to the current directory
*/
$tw.utils.resolvePath = function(sourcepath,rootpath) {
	// If the source path starts with ./ or ../ then it is relative to the root
	if(sourcepath.substr(0,2) === "./" || sourcepath.substr(0,3) === "../" ) {
		var src = sourcepath.split("/"),
			root = rootpath.split("/");
		// Remove the filename part of the root
		root.splice(root.length-1,1);
		// Process the source path bit by bit onto the end of the root path
		while(src.length > 0) {
			var c = src.shift();
			if(c === "..") { // Slice off the last root entry for a double dot
				if(root.length > 0) {
					root.splice(root.length-1,1);
				}
			} else if(c !== ".") { // Ignore dots
				root.push(c); // Copy other elements across
			}
		}
		return root.join("/");
	} else {
		// If it isn't relative, just return the path
		if(rootpath) {
			var root = rootpath.split("/");
			// Remove the filename part of the root
			root.splice(root.length - 1, 1);
			return root.join("/") + "/" + sourcepath;
		} else {
			return sourcepath;
		}
	}
};

/*
Parse a semantic version string into its constituent parts -- see https://semver.org
*/
$tw.utils.parseVersion = function(version) {
	var match = /^v?((\d+)\.(\d+)\.(\d+))(?:-([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?(?:\+([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?$/.exec(version);
	if(match) {
		return {
			version: match[1],
			major: parseInt(match[2],10),
			minor: parseInt(match[3],10),
			patch: parseInt(match[4],10),
			prerelease: match[5],
			build: match[6]
		};
	} else {
		return null;
	}
};

/*
Returns +1 if the version string A is greater than the version string B, 0 if they are the same, and +1 if B is greater than A.
Missing or malformed version strings are parsed as 0.0.0
*/
$tw.utils.compareVersions = function(versionStringA,versionStringB) {
	var defaultVersion = {
			major: 0,
			minor: 0,
			patch: 0
		},
		versionA = $tw.utils.parseVersion(versionStringA) || defaultVersion,
		versionB = $tw.utils.parseVersion(versionStringB) || defaultVersion,
		diff = [
			versionA.major - versionB.major,
			versionA.minor - versionB.minor,
			versionA.patch - versionB.patch
		];
	if((diff[0] > 0) || (diff[0] === 0 && diff[1] > 0) || (diff[0] === 0 & diff[1] === 0 & diff[2] > 0)) {
		return +1;
	} else if((diff[0] < 0) || (diff[0] === 0 && diff[1] < 0) || (diff[0] === 0 & diff[1] === 0 & diff[2] < 0)) {
		return -1;
	} else {
		return 0;
	}
};

/*
Returns true if the version string A is greater than the version string B. Returns true if the versions are the same
*/
$tw.utils.checkVersions = function(versionStringA,versionStringB) {
	return $tw.utils.compareVersions(versionStringA,versionStringB) !== -1;
};

/*
Register file type information
options: {flags: flags,deserializerType: deserializerType}
	flags:"image" for image types
	deserializerType: defaults to type if not specified
*/
$tw.utils.registerFileType = function(type,encoding,extension,options) {
	options = options || {};
	if($tw.utils.isArray(extension)) {
		$tw.utils.each(extension,function(extension) {
			$tw.config.fileExtensionInfo[extension] = {type: type};
		});
		extension = extension[0];
	} else {
		$tw.config.fileExtensionInfo[extension] = {type: type};
	}
	$tw.config.contentTypeInfo[type] = {encoding: encoding, extension: extension, flags: options.flags || [], deserializerType: options.deserializerType || type};
};

/*
Given an extension, always access the $tw.config.fileExtensionInfo
using a lowercase extension only.
*/
$tw.utils.getFileExtensionInfo = function(ext) {
	return ext ? $tw.config.fileExtensionInfo[ext.toLowerCase()] : null;
};

/*
Given an extension, get the correct encoding for that file.
defaults to utf8
*/
$tw.utils.getTypeEncoding = function(ext) {
	var extensionInfo = $tw.utils.getFileExtensionInfo(ext),
		type = extensionInfo ? extensionInfo.type : null,
		typeInfo = type ? $tw.config.contentTypeInfo[type] : null;
	return typeInfo ? typeInfo.encoding : "utf8";
};

var globalCheck =[
	"  Object.defineProperty(Object.prototype, '__temp__', {",
	"    get: function () { return this; },",
	"    configurable: true",
	"  });",
	"  if(Object.keys(__temp__).length){",
	"    console.log(\"Warning: Global assignment detected\",Object.keys(__temp__));",
	"    delete Object.prototype.__temp__;",
	"  }",
	"  delete Object.prototype.__temp__;",
].join("\n");

/*
Run code globally with specified context variables in scope
*/
$tw.utils.evalGlobal = function(code,context,filename,sandbox,allowGlobals) {
	var contextCopy = $tw.utils.extend(Object.create(null),context);
	// Get the context variables as a pair of arrays of names and values
	var contextNames = [], contextValues = [];
	$tw.utils.each(contextCopy,function(value,name) {
		contextNames.push(name);
		contextValues.push(value);
	});
	// Add the code prologue and epilogue
	code = [
		"(function(" + contextNames.join(",") + ") {",
		"  (function(){" + code + "\n;})();\n",
		(!$tw.browser && sandbox && !allowGlobals) ? globalCheck : "",
		"\nreturn exports;\n",
		"})"
	].join("");

	// Compile the code into a function
	var fn;
	if($tw.browser) {
		fn = Function("return " + code + "\n\n//# sourceURL=" + filename)(); // See https://github.com/TiddlyWiki/TiddlyWiki5/issues/6839
	} else {
		if(sandbox){
			fn = vm.runInContext(code,sandbox,filename);
		} else {
			fn = vm.runInThisContext(code,filename);
		}
	}
	// Call the function and return the exports
	return fn.apply(null,contextValues);
};
$tw.utils.sandbox = !$tw.browser ? vm.createContext({}) : undefined;
/*
Run code in a sandbox with only the specified context variables in scope
*/
$tw.utils.evalSandboxed = $tw.browser ? $tw.utils.evalGlobal : function(code,context,filename,allowGlobals) {
	return $tw.utils.evalGlobal(
		code,context,filename,
		allowGlobals ? vm.createContext({}) : $tw.utils.sandbox,
		allowGlobals
	);
};

/*
Creates a PasswordPrompt object
*/
$tw.utils.PasswordPrompt = function() {
	// Store of pending password prompts
	this.passwordPrompts = [];
	// Create the wrapper
	this.promptWrapper = $tw.utils.domMaker("div",{"class":"tc-password-wrapper"});
	document.body.appendChild(this.promptWrapper);
	// Hide the empty wrapper
	this.setWrapperDisplay();
};

/*
Hides or shows the wrapper depending on whether there are any outstanding prompts
*/
$tw.utils.PasswordPrompt.prototype.setWrapperDisplay = function() {
	if(this.passwordPrompts.length) {
		this.promptWrapper.style.display = "block";
	} else {
		this.promptWrapper.style.display = "none";
	}
};

/*
Adds a new password prompt. Options are:
submitText: text to use for submit button (defaults to "Login")
serviceName: text of the human readable service name
noUserName: set true to disable username prompt
canCancel: set true to enable a cancel button (callback called with null)
repeatPassword: set true to prompt for the password twice
callback: function to be called on submission with parameter of object {username:,password:}. Callback must return `true` to remove the password prompt
*/
$tw.utils.PasswordPrompt.prototype.createPrompt = function(options) {
	// Create and add the prompt to the DOM
	var self = this,
		submitText = options.submitText || "Login",
		dm = $tw.utils.domMaker,
		children = [dm("h1",{text: options.serviceName})];
	if(!options.noUserName) {
		children.push(dm("input",{
			attributes: {type: "text", name: "username", placeholder: $tw.language.getString("Encryption/Username")}
		}));
	}
	children.push(dm("input",{
		attributes: {
			type: "password",
			name: "password",
			placeholder: ( $tw.language == undefined ? "Password" : $tw.language.getString("Encryption/Password") )
		}
	}));
	if(options.repeatPassword) {
		children.push(dm("input",{
			attributes: {
				type: "password",
				name: "password2",
				placeholder: $tw.language.getString("Encryption/RepeatPassword")
			}
		}));
	}
	if(options.canCancel) {
		children.push(dm("button",{
			text: $tw.language.getString("Encryption/Cancel"),
			attributes: {
				type: "button"
			},
			eventListeners: [{
					name: "click",
					handlerFunction: function(event) {
						self.removePrompt(promptInfo);
						options.callback(null);
					}
				}]
		}));
	}
	children.push(dm("button",{
		attributes: {type: "submit"},
		text: submitText
	}));
	var form = dm("form",{
		attributes: {autocomplete: "off"},
		children: children
	});
	this.promptWrapper.appendChild(form);
	window.setTimeout(function() {
		form.elements[0].focus();
	},10);
	// Add a submit event handler
	var self = this;
	form.addEventListener("submit",function(event) {
		// Collect the form data
		var data = {};
		$tw.utils.each(form.elements,function(element) {
			if(element.name && element.value) {
				data[element.name] = element.value;
			}
		});
		// Check that the passwords match
		if(options.repeatPassword && data.password !== data.password2) {
			alert($tw.language.getString("Encryption/PasswordNoMatch"));
		} else {
			// Call the callback
			if(options.callback(data)) {
				// Remove the prompt if the callback returned true
				self.removePrompt(promptInfo);
			} else {
				// Clear the password if the callback returned false
				$tw.utils.each(form.elements,function(element) {
					if(element.name === "password" || element.name === "password2") {
						element.value = "";
					}
				});
			}
		}
		event.preventDefault();
		return false;
	},true);
	// Add the prompt to the list
	var promptInfo = {
		serviceName: options.serviceName,
		callback: options.callback,
		form: form,
		owner: this
	};
	this.passwordPrompts.push(promptInfo);
	// Make sure the wrapper is displayed
	this.setWrapperDisplay();
	return promptInfo;
};

$tw.utils.PasswordPrompt.prototype.removePrompt = function(promptInfo) {
	var i = this.passwordPrompts.indexOf(promptInfo);
	if(i !== -1) {
		this.passwordPrompts.splice(i,1);
		promptInfo.form.parentNode.removeChild(promptInfo.form);
		this.setWrapperDisplay();
	}
};

/*
Crypto helper object for encrypted content. It maintains the password text in a closure, and provides methods to change
the password, and to encrypt/decrypt a block of text
*/
$tw.utils.Crypto = function() {
	var sjcl = $tw.node ? (global.sjcl || require("./sjcl.js")) : window.sjcl,
		currentPassword = null,
		callSjcl = function(method,inputText,password,options) {
			options = options || {};
			password = password || currentPassword;
			var outputText;
			try {
				if(password) {
					outputText = sjcl[method](password,inputText,options);
				}
			} catch(ex) {
				console.log("Crypto error:" + ex);
				outputText = null;
			}
			return outputText;
		};
	$tw.sjcl = sjcl;
	this.setPassword = function(newPassword) {
		currentPassword = newPassword;
		this.updateCryptoStateTiddler();
	};
	this.updateCryptoStateTiddler = function() {
		if($tw.wiki) {
			var state = currentPassword ? "yes" : "no",
				tiddler = $tw.wiki.getTiddler("$:/isEncrypted");
			if(!tiddler || tiddler.fields.text !== state) {
				$tw.wiki.addTiddler(new $tw.Tiddler({title: "$:/isEncrypted", text: state}));
			}
		}
	};
	this.hasPassword = function() {
		return !!currentPassword;
	};
	this.encrypt = function(text,password) {
		// set default ks:256 -- see: http://bitwiseshiftleft.github.io/sjcl/doc/convenience.js.html
		return callSjcl("encrypt",text,password,{v:1,iter:10000,ks:256,ts:64,mode:"ccm",adata:"",cipher:"aes"});
	};
	this.decrypt = function(text,password) {
		return callSjcl("decrypt",text,password);
	};
};

/////////////////////////// Module mechanism

/*
Execute the module named 'moduleName'. The name can optionally be relative to the module named 'moduleRoot'
*/
$tw.modules.execute = function(moduleName,moduleRoot) {
	var name = moduleName;
	if(moduleName.charAt(0) === ".") {
		name = $tw.utils.resolvePath(moduleName,moduleRoot);
	}
	if(!$tw.modules.titles[name]) {
		if($tw.modules.titles[name + ".js"]) {
			name = name + ".js";
		} else if($tw.modules.titles[name + "/index.js"]) {
			name = name + "/index.js";
		} else if($tw.modules.titles[moduleName]) {
			name = moduleName;
		} else if($tw.modules.titles[moduleName + ".js"]) {
			name = moduleName + ".js";
		} else if($tw.modules.titles[moduleName + "/index.js"]) {
			name = moduleName + "/index.js";
		}
	}
	var moduleInfo = $tw.modules.titles[name],
		tiddler = $tw.wiki.getTiddler(name),
		_exports = {},
		sandbox = {
			module: {exports: _exports},
			//moduleInfo: moduleInfo,
			exports: _exports,
			console: console,
			setInterval: setInterval,
			clearInterval: clearInterval,
			setTimeout: setTimeout,
			clearTimeout: clearTimeout,
			Buffer: $tw.browser ? undefined : Buffer,
			$tw: $tw,
			require: function(title) {
				return $tw.modules.execute(title, name);
			}
		};

	Object.defineProperty(sandbox.module, "id", {
		value: name,
		writable: false,
		enumerable: true,
		configurable: false
	});

	if(!$tw.browser) {
		$tw.utils.extend(sandbox,{
			process: process
		});
	} else {
		/*
		CommonJS optional require.main property:
			In a browser we offer a fake main module which points back to the boot function
			(Theoretically, this may allow TW to eventually load itself as a module in the browser)
		*/
		Object.defineProperty(sandbox.require, "main", {
			value: (typeof(require) !== "undefined") ? require.main : {TiddlyWiki: _boot},
			writable: false,
			enumerable: true,
			configurable: false
		});
	}
	if(!moduleInfo) {
		// We could not find the module on this path
		// Try to defer to browserify etc, or node
		if($tw.browser) {
			if(window.require) {
				try {
					return window.require(moduleName);
				} catch(e) {}
			}
			throw "Cannot find module named '" + moduleName + "' required by module '" + moduleRoot + "', resolved to " + name;
		} else {
			// If we don't have a module with that name, let node.js try to find it
			return require(moduleName);
		}
	}
	// Execute the module if we haven't already done so
	if(!moduleInfo.exports) {
		try {
			// Check the type of the definition
			if(typeof moduleInfo.definition === "function") { // Function
				moduleInfo.exports = _exports;
				moduleInfo.definition(moduleInfo,moduleInfo.exports,sandbox.require);
			} else if(typeof moduleInfo.definition === "string") { // String
				moduleInfo.exports = _exports;
				$tw.utils.evalSandboxed(moduleInfo.definition,sandbox,tiddler.fields.title);
				if(sandbox.module.exports) {
					moduleInfo.exports = sandbox.module.exports; //more codemirror workaround
				}
			} else { // Object
				moduleInfo.exports = moduleInfo.definition;
			}
		} catch(e) {
			if(e instanceof SyntaxError) {
				var line = e.lineNumber || e.line; // Firefox || Safari
				if(typeof(line) != "undefined" && line !== null) {
					$tw.utils.error("Syntax error in boot module " + name + ":" + line + ":\n" + e.stack);
				} else if(!$tw.browser) {
					// this is the only way to get node.js to display the line at which the syntax error appeared,
					// and $tw.utils.error would exit anyway
					// cf. https://bugs.chromium.org/p/v8/issues/detail?id=2589
					throw e;
				} else {
					// Opera: line number is included in e.message
					// Chrome/IE: there's currently no way to get the line number
					$tw.utils.error("Syntax error in boot module " + name + ": " + e.message + "\n" + e.stack);
				}
			} else {
				// line number should be included in e.stack for runtime errors
				$tw.utils.error("Error executing boot module " + name + ": " + String(e) + "\n\n" + e.stack);
			}
		}
	}
	// Return the exports of the module
	return moduleInfo.exports;
};

/*
Apply a callback to each module of a particular type
	moduleType: type of modules to enumerate
	callback: function called as callback(title,moduleExports) for each module
*/
$tw.modules.forEachModuleOfType = function(moduleType,callback) {
	var modules = $tw.modules.types[moduleType];
	$tw.utils.each(modules,function(element,title) {
		callback(title,$tw.modules.execute(title));
	});
};

/*
Get all the modules of a particular type in a hashmap by their `name` field
*/
$tw.modules.getModulesByTypeAsHashmap = function(moduleType,nameField) {
	nameField = nameField || "name";
	var results = Object.create(null);
	$tw.modules.forEachModuleOfType(moduleType,function(title,module) {
		results[module[nameField]] = module;
	});
	return results;
};

/*
Apply the exports of the modules of a particular type to a target object
*/
$tw.modules.applyMethods = function(moduleType,targetObject) {
	if(!targetObject) {
		targetObject = Object.create(null);
	}
	$tw.modules.forEachModuleOfType(moduleType,function(title,module) {
		$tw.utils.each(module,function(element,title,object) {
			targetObject[title] = module[title];
		});
	});
	return targetObject;
};

/*
Return a class created from a modules. The module should export the properties to be added to those of the optional base class
*/
$tw.modules.createClassFromModule = function(moduleExports,baseClass) {
	var newClass = function() {};
	if(baseClass) {
		newClass.prototype = new baseClass();
		newClass.prototype.constructor = baseClass;
	}
	$tw.utils.extend(newClass.prototype,moduleExports);
	return newClass;
};

/*
Return an array of classes created from the modules of a specified type. Each module should export the properties to be added to those of the optional base class
*/
$tw.modules.createClassesFromModules = function(moduleType,subType,baseClass) {
	var classes = Object.create(null);
	$tw.modules.forEachModuleOfType(moduleType,function(title,moduleExports) {
		if(!subType || moduleExports.types[subType]) {
			classes[moduleExports.name] = $tw.modules.createClassFromModule(moduleExports,baseClass);
		}
	});
	return classes;
};

/////////////////////////// Barebones tiddler object

/*
Construct a tiddler object from a hashmap of tiddler fields. If multiple hasmaps are provided they are merged,
taking precedence to the right
*/
$tw.Tiddler = function(/* [fields,] fields */) {
	this.fields = Object.create(null);
	this.cache = Object.create(null);
	for(var c=0; c<arguments.length; c++) {
		var arg = arguments[c],
			src = (arg instanceof $tw.Tiddler) ? arg.fields : arg;
		for(var t in src) {
			if(src[t] === undefined || src[t] === null) {
				if(t in this.fields) {
					delete this.fields[t]; // If we get a field that's undefined, delete any previous field value
				}
			} else {
				// Parse the field with the associated field module (if any)
				var fieldModule = $tw.Tiddler.fieldModules[t],
					value;
				if(fieldModule && fieldModule.parse) {
					value = fieldModule.parse.call(this,src[t]);
				} else {
					value = src[t];
				}
				// Freeze the field to keep it immutable
				if(value != null && typeof value === "object") {
					Object.freeze(value);
				}
				this.fields[t] = value;
			}
		}
	}
	// Freeze the tiddler against modification
	Object.freeze(this.fields);
	Object.freeze(this);
};

$tw.Tiddler.prototype.hasField = function(field) {
	return $tw.utils.hop(this.fields,field);
};

/*
Compare two tiddlers for equality
tiddler: the tiddler to compare
excludeFields: array of field names to exclude from the comparison
*/
$tw.Tiddler.prototype.isEqual = function(tiddler,excludeFields) {
	if(!(tiddler instanceof $tw.Tiddler)) {
		return false;
	}
	excludeFields = excludeFields || [];
	var self = this,
		differences = []; // Fields that have differences
	// Add to the differences array
	function addDifference(fieldName) {
		// Check for this field being excluded
		if(excludeFields.indexOf(fieldName) === -1) {
			// Save the field as a difference
			$tw.utils.pushTop(differences,fieldName);
		}
	}
	// Returns true if the two values of this field are equal
	function isFieldValueEqual(fieldName) {
		var valueA = self.fields[fieldName],
			valueB = tiddler.fields[fieldName];
		// Check for identical string values
		if(typeof(valueA) === "string" && typeof(valueB) === "string" && valueA === valueB) {
			return true;
		}
		// Check for identical array values
		if($tw.utils.isArray(valueA) && $tw.utils.isArray(valueB) && $tw.utils.isArrayEqual(valueA,valueB)) {
			return true;
		}
		// Check for identical date values
		if($tw.utils.isDate(valueA) && $tw.utils.isDate(valueB) && valueA.getTime() === valueB.getTime()) {
			return true;
		}
		// Otherwise the fields must be different
		return false;
	}
	// Compare our fields
	for(var fieldName in this.fields) {
		if(!isFieldValueEqual(fieldName)) {
			addDifference(fieldName);
		}
	}
	// There's a difference for every field in the other tiddler that we don't have
	for(fieldName in tiddler.fields) {
		if(!(fieldName in this.fields)) {
			addDifference(fieldName);
		}
	}
	// Return whether there were any differences
	return differences.length === 0;
};

/*
Register and install the built in tiddler field modules
*/
$tw.modules.define("$:/boot/tiddlerfields/modified","tiddlerfield",{
	name: "modified",
	parse: $tw.utils.parseDate,
	stringify: $tw.utils.stringifyDate
});
$tw.modules.define("$:/boot/tiddlerfields/created","tiddlerfield",{
	name: "created",
	parse: $tw.utils.parseDate,
	stringify: $tw.utils.stringifyDate
});
$tw.modules.define("$:/boot/tiddlerfields/color","tiddlerfield",{
	name: "color",
	editTag: "input",
	editType: "color"
});
$tw.modules.define("$:/boot/tiddlerfields/tags","tiddlerfield",{
	name: "tags",
	parse: $tw.utils.parseStringArray,
	stringify: $tw.utils.stringifyList
});
$tw.modules.define("$:/boot/tiddlerfields/list","tiddlerfield",{
	name: "list",
	parse: $tw.utils.parseStringArray,
	stringify: $tw.utils.stringifyList
});

/////////////////////////// Barebones wiki store

/*
Wiki constructor. State is stored in private members that only a small number of privileged accessor methods have direct access. Methods added via the prototype have to use these accessors and cannot access the state data directly.
options include:
enableIndexers - Array of indexer names to enable, or null to use all available indexers
*/
$tw.Wiki = function(options) {
	options = options || {};
	var tiddlers = Object.create(null), // Hashmap of tiddlers
		tiddlerTitles = null, // Array of tiddler titles
		getTiddlerTitles = function() {
			if(!tiddlerTitles) {
				tiddlerTitles = Object.keys(tiddlers).sort(function(a,b) {return a.localeCompare(b);});
			}
			return tiddlerTitles;
		},
		pluginTiddlers = [], // Array of tiddlers containing registered plugins, ordered by priority
		pluginInfo = Object.create(null), // Hashmap of parsed plugin content
		shadowTiddlers = Object.create(null), // Hashmap by title of {source:, tiddler:}
		shadowTiddlerTitles = null,
		getShadowTiddlerTitles = function() {
			if(!shadowTiddlerTitles) {
				shadowTiddlerTitles = Object.keys(shadowTiddlers).sort(function(a,b) {return a.localeCompare(b);});
			}
			return shadowTiddlerTitles;
		},
		enableIndexers = options.enableIndexers || null,
		indexers = [],
		indexersByName = Object.create(null);

	this.addIndexer = function(indexer,name) {
		// Bail if this indexer is not enabled
		if(enableIndexers && enableIndexers.indexOf(name) === -1) {
			return;
		}
		indexers.push(indexer);
		indexersByName[name] = indexer;
		indexer.init();
	};

	this.getIndexer = function(name) {
		return indexersByName[name] || null;
	};

	// Add a tiddler to the store
	this.addTiddler = function(tiddler) {
		if(!(tiddler instanceof $tw.Tiddler)) {
			tiddler = new $tw.Tiddler(tiddler);
		}
		// Save the tiddler
		if(tiddler) {
			var title = tiddler.fields.title;
			if(title) {
// Uncomment the following line for detailed logs of all tiddler writes
// console.log("Adding",title,tiddler)
				// Record the old tiddler state
				var updateDescriptor = {
					old: {
						tiddler: this.getTiddler(title),
						shadow: this.isShadowTiddler(title),
						exists: this.tiddlerExists(title)
					}
				};
				// Save the new tiddler
				tiddlers[title] = tiddler;
				// Check we've got the title
				tiddlerTitles = $tw.utils.insertSortedArray(tiddlerTitles || [],title);
				// Record the new tiddler state
				updateDescriptor["new"] = {
					tiddler: tiddler,
					shadow: this.isShadowTiddler(title),
					exists: this.tiddlerExists(title)
				};
				// Update indexes
				this.clearCache(title);
				this.clearGlobalCache();
				$tw.utils.each(indexers,function(indexer) {
					indexer.update(updateDescriptor);
				});
				// Queue a change event
				this.enqueueTiddlerEvent(title);
			}
		}
	};

	// Delete a tiddler
	this.deleteTiddler = function(title) {
// Uncomment the following line for detailed logs of all tiddler deletions
// console.log("Deleting",title)
		if($tw.utils.hop(tiddlers,title)) {
			// Record the old tiddler state
			var updateDescriptor = {
				old: {
					tiddler: this.getTiddler(title),
					shadow: this.isShadowTiddler(title),
					exists: this.tiddlerExists(title)
				}
			};
			// Delete the tiddler
			delete tiddlers[title];
			// Delete it from the list of titles
			if(tiddlerTitles) {
				var index = tiddlerTitles.indexOf(title);
				if(index !== -1) {
					tiddlerTitles.splice(index,1);
				}
			}
			// Record the new tiddler state
			updateDescriptor["new"] = {
				tiddler: this.getTiddler(title),
				shadow: this.isShadowTiddler(title),
				exists: this.tiddlerExists(title)
			};
			// Update indexes
			this.clearCache(title);
			this.clearGlobalCache();
			$tw.utils.each(indexers,function(indexer) {
				indexer.update(updateDescriptor);
			});
			// Queue a change event
			this.enqueueTiddlerEvent(title,true);
		}
	};

	// Get a tiddler from the store
	this.getTiddler = function(title) {
		if(title) {
			var t = tiddlers[title];
			if(t !== undefined) {
				return t;
			} else {
				var s = shadowTiddlers[title];
				if(s !== undefined) {
					return s.tiddler;
				}
			}
		}
		return undefined;
	};

	// Get an array of all tiddler titles
	this.allTitles = function() {
		return getTiddlerTitles().slice(0);
	};

	// Iterate through all tiddler titles
	this.each = function(callback) {
		var titles = getTiddlerTitles(),
			index,titlesLength,title;
		for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
			title = titles[index];
			callback(tiddlers[title],title);
		}
	};

	// Get an array of all shadow tiddler titles
	this.allShadowTitles = function() {
		return getShadowTiddlerTitles().slice(0);
	};

	// Iterate through all shadow tiddler titles
	this.eachShadow = function(callback) {
		var titles = getShadowTiddlerTitles(),
			index,titlesLength,title;
		for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
			title = titles[index];
			if(tiddlers[title]) {
				callback(tiddlers[title],title);
			} else {
				var shadowInfo = shadowTiddlers[title];
				callback(shadowInfo.tiddler,title);
			}
		}
	};

	// Iterate through all tiddlers and then the shadows
	this.eachTiddlerPlusShadows = function(callback) {
		var index,titlesLength,title,
			titles = getTiddlerTitles();
		for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
			title = titles[index];
			callback(tiddlers[title],title);
		}
		titles = getShadowTiddlerTitles();
		for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
			title = titles[index];
			if(!tiddlers[title]) {
				var shadowInfo = shadowTiddlers[title];
				callback(shadowInfo.tiddler,title);
			}
		}
	};

	// Iterate through all the shadows and then the tiddlers
	this.eachShadowPlusTiddlers = function(callback) {
		var index,titlesLength,title,
			titles = getShadowTiddlerTitles();
		for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
			title = titles[index];
			if(tiddlers[title]) {
				callback(tiddlers[title],title);
			} else {
				var shadowInfo = shadowTiddlers[title];
				callback(shadowInfo.tiddler,title);
			}
		}
		titles = getTiddlerTitles();
		for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
			title = titles[index];
			if(!shadowTiddlers[title]) {
				callback(tiddlers[title],title);
			}
		}
	};

	// Test for the existence of a tiddler (excludes shadow tiddlers)
	this.tiddlerExists = function(title) {
		return !!$tw.utils.hop(tiddlers,title);
	};

	// Determines if a tiddler is a shadow tiddler, regardless of whether it has been overridden by a real tiddler
	this.isShadowTiddler = function(title) {
		return $tw.utils.hop(shadowTiddlers,title);
	};

	this.getShadowSource = function(title) {
		if($tw.utils.hop(shadowTiddlers,title)) {
			return shadowTiddlers[title].source;
		}
		return null;
	};

	// Get an array of all the currently recognised plugin types
	this.getPluginTypes = function() {
		var types = [];
		$tw.utils.each(pluginTiddlers,function(pluginTiddler) {
			var pluginType = pluginTiddler.fields["plugin-type"];
			if(pluginType && types.indexOf(pluginType) === -1) {
				types.push(pluginType);
			}
		});
		return types;
	};

	// Read plugin info for all plugins, or just an array of titles. Returns the number of plugins updated or deleted
	this.readPluginInfo = function(titles) {
		var results = {
			modifiedPlugins: [],
			deletedPlugins: []
		};
		$tw.utils.each(titles || getTiddlerTitles(),function(title) {
			var tiddler = tiddlers[title];
			if(tiddler) {
				if(tiddler.fields.type === "application/json" && tiddler.hasField("plugin-type") && tiddler.fields.text) {
					pluginInfo[tiddler.fields.title] = $tw.utils.parseJSONSafe(tiddler.fields.text);
					results.modifiedPlugins.push(tiddler.fields.title);
				}
			} else {
				if(pluginInfo[title]) {
					delete pluginInfo[title];
					results.deletedPlugins.push(title);
				}
			}
		});
		return results;
	};

	// Get plugin info for a plugin
	this.getPluginInfo = function(title) {
		return pluginInfo[title];
	};

	// Register the plugin tiddlers of a particular type, or null/undefined for any type, optionally restricting registration to an array of tiddler titles. Return the array of titles affected
	this.registerPluginTiddlers = function(pluginType,titles) {
		var self = this,
			registeredTitles = [],
			checkTiddler = function(tiddler,title) {
				if(tiddler && tiddler.fields.type === "application/json" && tiddler.fields["plugin-type"] && (!pluginType || tiddler.fields["plugin-type"] === pluginType)) {
					var disablingTiddler = self.getTiddler("$:/config/Plugins/Disabled/" + title);
					if(title === "$:/core" || title === "$:/core-server" || !disablingTiddler || (disablingTiddler.fields.text || "").trim() !== "yes") {
						self.unregisterPluginTiddlers(null,[title]); // Unregister the plugin if it's already registered
						pluginTiddlers.push(tiddler);
						registeredTitles.push(tiddler.fields.title);
					}
				}
			};
		if(titles) {
			$tw.utils.each(titles,function(title) {
				checkTiddler(self.getTiddler(title),title);
			});
		} else {
			this.each(function(tiddler,title) {
				checkTiddler(tiddler,title);
			});
		}
		return registeredTitles;
	};

	// Unregister the plugin tiddlers of a particular type, or null/undefined for any type, optionally restricting unregistering to an array of tiddler titles. Returns an array of the titles affected
	this.unregisterPluginTiddlers = function(pluginType,titles) {
		var unregisteredTitles = [];
		// Remove any previous registered plugins of this type
		for(var t=pluginTiddlers.length-1; t>=0; t--) {
			var tiddler = pluginTiddlers[t];
			if(tiddler.fields["plugin-type"] && (!pluginType || tiddler.fields["plugin-type"] === pluginType) && (!titles || titles.indexOf(tiddler.fields.title) !== -1)) {
				unregisteredTitles.push(tiddler.fields.title);
				pluginTiddlers.splice(t,1);
			}
		}
		return unregisteredTitles;
	};

	// Unpack the currently registered plugins, creating shadow tiddlers for their constituent tiddlers
	this.unpackPluginTiddlers = function() {
		// Sort the plugin titles by the `plugin-priority` field, if this field is missing, default to 1
		pluginTiddlers.sort(function(a, b) {
			var priorityA = "plugin-priority" in a.fields ? a.fields["plugin-priority"] : 1;
			var priorityB = "plugin-priority" in b.fields ? b.fields["plugin-priority"] : 1;
			if(priorityA !== priorityB) {
				return priorityA - priorityB;
			} else if(a.fields.title < b.fields.title) {
				return -1;
			} else if(a.fields.title === b.fields.title) {
				return 0;
			} else {
				return +1;
			}
		});
		// Now go through the plugins in ascending order and assign the shadows
		shadowTiddlers = Object.create(null);
		$tw.utils.each(pluginTiddlers,function(tiddler) {
			// Extract the constituent tiddlers
			if($tw.utils.hop(pluginInfo,tiddler.fields.title)) {
				$tw.utils.each(pluginInfo[tiddler.fields.title].tiddlers,function(constituentTiddler,constituentTitle) {
					// Save the tiddler object
					if(constituentTitle) {
						shadowTiddlers[constituentTitle] = {
							source: tiddler.fields.title,
							tiddler: new $tw.Tiddler(constituentTiddler,{title: constituentTitle})
						};
					}
				});
			}
		});
		shadowTiddlerTitles = null;
		this.clearCache(null);
		this.clearGlobalCache();
		$tw.utils.each(indexers,function(indexer) {
			indexer.rebuild();
		});
	};

	if(this.addIndexersToWiki) {
		this.addIndexersToWiki();
	}
};

// Dummy methods that will be filled in after boot
$tw.Wiki.prototype.clearCache =
$tw.Wiki.prototype.clearGlobalCache =
$tw.Wiki.prototype.enqueueTiddlerEvent = function() {};

// Add an array of tiddlers
$tw.Wiki.prototype.addTiddlers = function(tiddlers) {
	for(var t=0; t<tiddlers.length; t++) {
		this.addTiddler(tiddlers[t]);
	}
};

/*
Define all modules stored in ordinary tiddlers
*/
$tw.Wiki.prototype.defineTiddlerModules = function() {
	this.each(function(tiddler,title) {
		// Modules in draft tiddlers are disabled
		if(tiddler.hasField("module-type") && (!tiddler.hasField("draft.of"))) {
			switch(tiddler.fields.type) {
				case "application/javascript":
					// We only define modules that haven't already been defined, because in the browser modules in system tiddlers are defined in inline script
					if(!$tw.utils.hop($tw.modules.titles,tiddler.fields.title)) {
						$tw.modules.define(tiddler.fields.title,tiddler.fields["module-type"],tiddler.fields.text);
					}
					break;
				case "application/json":
					$tw.modules.define(tiddler.fields.title,tiddler.fields["module-type"],$tw.utils.parseJSONSafe(tiddler.fields.text));
					break;
				case "application/x-tiddler-dictionary":
					$tw.modules.define(tiddler.fields.title,tiddler.fields["module-type"],$tw.utils.parseFields(tiddler.fields.text));
					break;
			}
		}
	});
};

/*
Register all the module tiddlers that have a module type
*/
$tw.Wiki.prototype.defineShadowModules = function() {
	var self = this;
	this.eachShadow(function(tiddler,title) {
		// Don't define the module if it is overidden by an ordinary tiddler
		if(!self.tiddlerExists(title) && tiddler.hasField("module-type")) {
			if(tiddler.hasField("draft.of")) {
				// Report a fundamental problem
				console.warn(`TiddlyWiki: Plugins should not contain tiddlers with a 'draft.of' field: ${tiddler.fields.title}`);
				return;
			}
			// Define the module
			$tw.modules.define(tiddler.fields.title,tiddler.fields["module-type"],tiddler.fields.text);
		}
	});
};

/*
Enable safe mode by deleting any tiddlers that override a shadow tiddler
*/
$tw.Wiki.prototype.processSafeMode = function() {
	var self = this,
		overrides = [];
	// Find the overriding tiddlers
	this.each(function(tiddler,title) {
		if(self.isShadowTiddler(title)) {
			console.log(title);
			overrides.push(title);
		}
	});
	// Assemble a report tiddler
	var titleReportTiddler = "TiddlyWiki Safe Mode",
		report = [];
	report.push("TiddlyWiki has been started in [[safe mode|https://tiddlywiki.com/static/SafeMode.html]]. All plugins are temporarily disabled. Most customisations have been disabled by renaming the following tiddlers:");
	// Delete the overrides
	overrides.forEach(function(title) {
		var tiddler = self.getTiddler(title),
			newTitle = "SAFE: " + title;
		self.deleteTiddler(title);
		self.addTiddler(new $tw.Tiddler(tiddler, {title: newTitle}));
		report.push("* [[" + title + "|" + newTitle + "]]");
	});
	report.push();
	this.addTiddler(new $tw.Tiddler({title: titleReportTiddler, text: report.join("\n\n")}));
	// Set $:/DefaultTiddlers to point to our report
	this.addTiddler(new $tw.Tiddler({title: "$:/DefaultTiddlers", text: "[[" + titleReportTiddler + "]]"}));
};

/*
Extracts tiddlers from a typed block of text, specifying default field values
*/
$tw.Wiki.prototype.deserializeTiddlers = function(type,text,srcFields,options) {
	srcFields = srcFields || Object.create(null);
	options = options || {};
	var deserializer = $tw.Wiki.tiddlerDeserializerModules[options.deserializer],
		fields = Object.create(null);
	if(!deserializer) {
		deserializer = $tw.Wiki.tiddlerDeserializerModules[type];
	}
	if(!deserializer && $tw.utils.getFileExtensionInfo(type)) {
		// If we didn't find the serializer, try converting it from an extension to a content type
		type = $tw.utils.getFileExtensionInfo(type).type;
		deserializer = $tw.Wiki.tiddlerDeserializerModules[type];
	}
	if(!deserializer && $tw.config.contentTypeInfo[type]) {
		// see if this type has a different deserializer registered with it
		type = $tw.config.contentTypeInfo[type].deserializerType;
		deserializer = $tw.Wiki.tiddlerDeserializerModules[type];
	}
	if(!deserializer) {
		// If we still don't have a deserializer, treat it as plain text
		deserializer = $tw.Wiki.tiddlerDeserializerModules["text/plain"];
	}
	for(var f in srcFields) {
		fields[f] = srcFields[f];
	}
	if(deserializer) {
		return deserializer.call(this,text,fields,type);
	} else {
		// Return a raw tiddler for unknown types
		fields.text = text;
		return [fields];
	}
};

/*
Register the built in tiddler deserializer modules
*/
var deserializeHeaderComment = function(text,fields) {
		var headerCommentRegExp = new RegExp($tw.config.jsModuleHeaderRegExpString,"mg"),
			match = headerCommentRegExp.exec(text);
		fields.text = text;
		if(match) {
			fields = $tw.utils.parseFields(match[1].split(/\r?\n\r?\n/mg)[0],fields);
		}
		return [fields];
	};
$tw.modules.define("$:/boot/tiddlerdeserializer/js","tiddlerdeserializer",{
	"application/javascript": deserializeHeaderComment
});
$tw.modules.define("$:/boot/tiddlerdeserializer/css","tiddlerdeserializer",{
	"text/css": deserializeHeaderComment
});
$tw.modules.define("$:/boot/tiddlerdeserializer/tid","tiddlerdeserializer",{
	"application/x-tiddler": function(text,fields) {
		var split = text.split(/\r?\n\r?\n/mg);
		if(split.length >= 1) {
			fields = $tw.utils.parseFields(split[0],fields);
		}
		if(split.length >= 2) {
			fields.text = split.slice(1).join("\n\n");
		}
		return [fields];
	}
});
$tw.modules.define("$:/boot/tiddlerdeserializer/tids","tiddlerdeserializer",{
	"application/x-tiddlers": function(text,fields) {
		var titles = [],
			tiddlers = [],
			match = /\r?\n\r?\n/mg.exec(text);
		if(match) {
			fields = $tw.utils.parseFields(text.substr(0,match.index),fields);
			var lines = text.substr(match.index + match[0].length).split(/\r?\n/mg);
			for(var t=0; t<lines.length; t++) {
				var line = lines[t];
				if(line.charAt(0) !== "#") {
					var colonPos= line.indexOf(":");
					if(colonPos !== -1) {
						var tiddler = $tw.utils.extend(Object.create(null),fields);
						tiddler.title = (tiddler.title || "") + line.substr(0,colonPos).trim();
						if(titles.indexOf(tiddler.title) !== -1) {
							console.log("Warning: .multids file contains multiple definitions for " + tiddler.title);
						}
						titles.push(tiddler.title);
						tiddler.text = line.substr(colonPos + 2).trim();
						tiddlers.push(tiddler);
					}
				}
			}
		}
		return tiddlers;
	}
});
$tw.modules.define("$:/boot/tiddlerdeserializer/txt","tiddlerdeserializer",{
	"text/plain": function(text,fields,type) {
		fields.text = text;
		fields.type = type || "text/plain";
		return [fields];
	}
});
$tw.modules.define("$:/boot/tiddlerdeserializer/html","tiddlerdeserializer",{
	"text/html": function(text,fields) {
		fields.text = text;
		fields.type = "text/html";
		return [fields];
	}
});
$tw.modules.define("$:/boot/tiddlerdeserializer/json","tiddlerdeserializer",{
	"application/json": function(text,fields) {
		var isTiddlerValid = function(data) {
				// Not valid if it's not an object with a title property
				if(typeof(data) !== "object" || !$tw.utils.hop(data,"title")) {
					return false;
				}
				for(var f in data) {
					if($tw.utils.hop(data,f)) {
						// Check field name doesn't contain control characters
						if(typeof(data[f]) !== "string" || /[\x00-\x1F]/.test(f)) {
							return false;
						}
					}
				}
				return true;
			},
			isTiddlerArrayValid = function(data) {
				for(var t=0; t<data.length; t++) {
					if(!isTiddlerValid(data[t])) {
						return false;
					}
				}
				return true;
			},
			data = $tw.utils.parseJSONSafe(text);
		if($tw.utils.isArray(data) && isTiddlerArrayValid(data)) {
			return data;
		} else if(isTiddlerValid(data)) {
			return [data];
		} else {
			// Plain JSON file
			fields.text = text;
			fields.type = "application/json";
			return [fields];
		}
	}
});

/////////////////////////// Browser definitions

if($tw.browser && !$tw.node) {

/*
Decrypt any tiddlers stored within the element with the ID "encryptedArea". The function is asynchronous to allow the user to be prompted for a password
	callback: function to be called the decryption is complete
*/
$tw.boot.decryptEncryptedTiddlers = function(callback) {
	var encryptedArea = document.getElementById("encryptedStoreArea");
	if(encryptedArea) {
		var encryptedText = encryptedArea.innerHTML,
			prompt = "Enter a password to decrypt this TiddlyWiki";
		// Prompt for the password
		if($tw.utils.hop($tw.boot,"encryptionPrompts")) {
			prompt = $tw.boot.encryptionPrompts.decrypt;
		}
		$tw.passwordPrompt.createPrompt({
			serviceName: prompt,
			noUserName: true,
			submitText: "Decrypt",
			callback: function(data) {
				// Attempt to decrypt the tiddlers
				$tw.crypto.setPassword(data.password);
				var decryptedText = $tw.crypto.decrypt(encryptedText);
				if(decryptedText) {
					var json = $tw.utils.parseJSONSafe(decryptedText);
					for(var title in json) {
						$tw.preloadTiddler(json[title]);
					}
					// Call the callback
					callback();
					// Exit and remove the password prompt
					return true;
				} else {
					// We didn't decrypt everything, so continue to prompt for password
					return false;
				}
			}
		});
	} else {
		// Just invoke the callback straight away if there weren't any encrypted tiddlers
		callback();
	}
};

/*
Register a deserializer that can extract tiddlers from the DOM
*/
$tw.modules.define("$:/boot/tiddlerdeserializer/dom","tiddlerdeserializer",{
	"(DOM)": function(node) {
		var extractTextTiddlers = function(node) {
				var e = node.firstChild;
				while(e && e.nodeName.toLowerCase() !== "pre") {
					e = e.nextSibling;
				}
				var title = node.getAttribute ? node.getAttribute("title") : null;
				if(e && title) {
					var attrs = node.attributes,
						tiddler = {
							text: $tw.utils.htmlDecode(e.innerHTML)
						};
					for(var i=attrs.length-1; i >= 0; i--) {
						tiddler[attrs[i].name] = attrs[i].value;
					}
					return [tiddler];
				} else {
					return null;
				}
			},
			extractModuleTiddlers = function(node) {
				if(node.hasAttribute && node.hasAttribute("data-tiddler-title")) {
					var text = node.innerHTML,
						s = text.indexOf("{"),
						e = text.lastIndexOf("}");
					if(node.hasAttribute("data-module") && s !== -1 && e !== -1) {
						text = text.substring(s+1,e);
					}
					var fields = {text: text},
						attributes = node.attributes;
					for(var a=0; a<attributes.length; a++) {
						if(attributes[a].nodeName.substr(0,13) === "data-tiddler-") {
							fields[attributes[a].nodeName.substr(13)] = attributes[a].value;
						}
					}
					return [fields];
				} else {
					return null;
				}
			},
			t,result = [];
		if(node) {
			var type = (node.getAttribute && node.getAttribute("type")) || null;
			if(type) {
				// A new-style container with an explicit deserialization type
				result = $tw.wiki.deserializeTiddlers(type,node.textContent);
			} else {
				// An old-style container of classic DIV-based tiddlers
				for(t = 0; t < node.childNodes.length; t++) {
					var childNode = node.childNodes[t],
						tiddlers = extractTextTiddlers(childNode);
					tiddlers = tiddlers || extractModuleTiddlers(childNode);
					if(tiddlers) {
						result.push.apply(result,tiddlers);
					}
				}
			}
		}
		return result;
	}
});

$tw.loadTiddlersBrowser = function() {
	// In the browser, we load tiddlers from certain elements
	var containerSelectors = [
		// IDs for old-style v5.1.x tiddler stores
		"#libraryModules",
		"#modules",
		"#bootKernelPrefix",
		"#bootKernel",
		"#styleArea",
		"#storeArea",
		"#systemArea",
		// Classes for new-style v5.2.x JSON tiddler stores
		"script.tiddlywiki-tiddler-store"
	];
	for(var t=0; t<containerSelectors.length; t++) {
		var nodes = document.querySelectorAll(containerSelectors[t]);
		for(var n=0; n<nodes.length; n++) {
			$tw.wiki.addTiddlers($tw.wiki.deserializeTiddlers("(DOM)",nodes[n]));
		}
	}
};

} else {

/////////////////////////// Server definitions

/*
Get any encrypted tiddlers
*/
$tw.boot.decryptEncryptedTiddlers = function(callback) {
	// Storing encrypted tiddlers on the server isn't supported yet
	callback();
};

} // End of if($tw.browser && !$tw.node)

/////////////////////////// Node definitions

if($tw.node) {

/*
Load the tiddlers contained in a particular file (and optionally extract fields from the accompanying .meta file) returned as {filepath:,type:,tiddlers:[],hasMetaFile:}
*/
$tw.loadTiddlersFromFile = function(filepath,fields) {
	var ext = path.extname(filepath),
		extensionInfo = $tw.utils.getFileExtensionInfo(ext),
		type = extensionInfo ? extensionInfo.type : null,
		typeInfo = type ? $tw.config.contentTypeInfo[type] : null,
		fileSize = fs.statSync(filepath).size,
		data;
	if(fileSize > $tw.config.maxEditFileSize) {
		data = "File " + filepath + " not loaded because it is too large";
		console.log("Warning: " + data);
		ext = ".txt";
	} else {
		data = fs.readFileSync(filepath,typeInfo ? typeInfo.encoding : "utf8");
	}
	var tiddlers = $tw.wiki.deserializeTiddlers(ext,data,fields),
		metadata = $tw.loadMetadataForFile(filepath);
	if(metadata) {
		if(type === "application/json") {
			tiddlers = [{text: data, type: "application/json"}];
		}
		tiddlers = [$tw.utils.extend({},tiddlers[0],metadata)];
	}
	return {filepath: filepath, type: type, tiddlers: tiddlers, hasMetaFile: !!metadata};
};

/*
Load the metadata fields in the .meta file corresponding to a particular file
*/
$tw.loadMetadataForFile = function(filepath) {
	var metafilename = filepath + ".meta";
	if(fs.existsSync(metafilename)) {
		return $tw.utils.parseFields(fs.readFileSync(metafilename,"utf8") || "");
	} else {
		return null;
	}
};

/*
A default set of files for TiddlyWiki to ignore during load.
This matches what NPM ignores, and adds "*.meta" to ignore tiddler
metadata files.
*/
$tw.boot.excludeRegExp = /^\.DS_Store$|^.*\.meta$|^\..*\.swp$|^\._.*$|^\.git$|^\.github$|^\.vscode$|^\.hg$|^\.lock-wscript$|^\.svn$|^\.wafpickle-.*$|^CVS$|^npm-debug\.log$/;

/*
Load all the tiddlers recursively from a directory, including honouring `tiddlywiki.files` files for drawing in external files. Returns an array of {filepath:,type:,tiddlers: [{..fields...}],hasMetaFile:}. Note that no file information is returned for externally loaded tiddlers, just the `tiddlers` property.
*/
$tw.loadTiddlersFromPath = function(filepath,excludeRegExp) {
	excludeRegExp = excludeRegExp || $tw.boot.excludeRegExp;
	var tiddlers = [];
	if(fs.existsSync(filepath)) {
		var stat = fs.statSync(filepath);
		if(stat.isDirectory()) {
			var files = fs.readdirSync(filepath);
			// Look for a tiddlywiki.files file
			if(files.indexOf("tiddlywiki.files") !== -1) {
				Array.prototype.push.apply(tiddlers,$tw.loadTiddlersFromSpecification(filepath,excludeRegExp));
			} else {
				// If not, read all the files in the directory
				$tw.utils.each(files,function(file) {
					if(!excludeRegExp.test(file) && file !== "plugin.info") {
						tiddlers.push.apply(tiddlers,$tw.loadTiddlersFromPath(filepath + path.sep + file,excludeRegExp));
					}
				});
			}
		} else if(stat.isFile()) {
			tiddlers.push($tw.loadTiddlersFromFile(filepath,{title: filepath}));
		}
	}
	return tiddlers;
};

/*
Load all the tiddlers defined by a `tiddlywiki.files` specification file
filepath: pathname of the directory containing the specification file
*/
$tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) {
	var tiddlers = [];
	// Read the specification
	var filesInfo = $tw.utils.parseJSONSafe(fs.readFileSync(filepath + path.sep + "tiddlywiki.files","utf8"), function(e) {
		console.log("Warning: tiddlywiki.files in " + filepath + " invalid: " + e.message);
		return {};
	});

	// Helper to process a file
	var processFile = function(filename,isTiddlerFile,fields,isEditableFile,rootPath) {
		var extInfo = $tw.config.fileExtensionInfo[path.extname(filename)],
			type = (extInfo || {}).type || fields.type || "text/plain",
			typeInfo = $tw.config.contentTypeInfo[type] || {},
			pathname = path.resolve(filepath,filename),
			metadata = $tw.loadMetadataForFile(pathname) || {},
			fileTooLarge = false,
			text, fileTiddlers;

		if("_canonical_uri" in fields) {
			text = "";
		} else if(fs.statSync(pathname).size > $tw.config.maxEditFileSize) {
			var msg = "File " + pathname + " not loaded because it is too large";
			console.log("Warning: " + msg);
			fileTooLarge = true;
			text = isTiddlerFile ? msg : "";
		} else {
			text = fs.readFileSync(pathname,typeInfo.encoding || "utf8");
		}

		if(isTiddlerFile) {
			fileTiddlers = $tw.wiki.deserializeTiddlers(fileTooLarge ? ".txt" : path.extname(pathname),text,metadata) || [];
		} else {
			fileTiddlers =  [$tw.utils.extend({text: text},metadata)];
		}
		var combinedFields = $tw.utils.extend({},fields,metadata);
		if(fileTooLarge && isTiddlerFile) {
			delete combinedFields.type;    // type altered
		}
		$tw.utils.each(fileTiddlers,function(tiddler) {
			$tw.utils.each(combinedFields,function(fieldInfo,name) {
				if(typeof fieldInfo === "string" || $tw.utils.isArray(fieldInfo)) {
					tiddler[name] = fieldInfo;
				} else {
					var value = tiddler[name];
					switch(fieldInfo.source) {
						case "subdirectories":
							value = $tw.utils.stringifyList(path.relative(rootPath, filename).split(path.sep).slice(0, -1));
							break;
						case "filepath":
							value = path.relative(rootPath, filename).split(path.sep).join("/");
							break;
						case "filename":
							value = path.basename(filename);
							break;
						case "filename-uri-decoded":
							value = $tw.utils.decodeURIComponentSafe(path.basename(filename));
							break;
						case "basename":
							value = path.basename(filename,path.extname(filename));
							break;
						case "basename-uri-decoded":
							value = $tw.utils.decodeURIComponentSafe(path.basename(filename,path.extname(filename)));
							break;
						case "extname":
							value = path.extname(filename);
							break;
						case "created":
							value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).birthtime));
							break;
						case "modified":
							value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).mtime));
							break;
					}
					if(fieldInfo.prefix) {
						value = fieldInfo.prefix + value;
					}
					if(fieldInfo.suffix) {
						value = value + fieldInfo.suffix;
					}
					tiddler[name] = value;
				}
			});
		});
		if(isEditableFile) {
			tiddlers.push({filepath: pathname, hasMetaFile: !!metadata && !isTiddlerFile, isEditableFile: true, tiddlers: fileTiddlers});
		} else {
			tiddlers.push({tiddlers: fileTiddlers});
		}
	};
	// Helper to recursively search subdirectories
	var getAllFiles = function(dirPath, recurse, arrayOfFiles) {
		recurse = recurse || false;
		arrayOfFiles = arrayOfFiles || [];
		var files = fs.readdirSync(dirPath);
		files.forEach(function(file) {
			if(recurse && fs.statSync(dirPath + path.sep + file).isDirectory()) {
				arrayOfFiles = getAllFiles(dirPath + path.sep + file, recurse, arrayOfFiles);
			} else if(fs.statSync(dirPath + path.sep + file).isFile()){
				arrayOfFiles.push(path.join(dirPath, path.sep, file));
			}
		});
		return arrayOfFiles;
	};
	// Process the listed tiddlers
	$tw.utils.each(filesInfo.tiddlers,function(tidInfo) {
		if(tidInfo.prefix && tidInfo.suffix) {
			tidInfo.fields.text = {prefix: tidInfo.prefix,suffix: tidInfo.suffix};
		} else if(tidInfo.prefix) {
			tidInfo.fields.text = {prefix: tidInfo.prefix};
		} else if(tidInfo.suffix) {
			tidInfo.fields.text = {suffix: tidInfo.suffix};
		}
		tidInfo.fields = tidInfo.fields || {};
		processFile(tidInfo.file,tidInfo.isTiddlerFile,tidInfo.fields);
	});
	// Process any listed directories
	$tw.utils.each(filesInfo.directories,function(dirSpec) {
		// Read literal directories directly
		if(typeof dirSpec === "string") {
			var pathname = path.resolve(filepath,dirSpec);
			if(fs.existsSync(pathname) && fs.statSync(pathname).isDirectory()) {
				tiddlers.push.apply(tiddlers,$tw.loadTiddlersFromPath(pathname,excludeRegExp));
			}
		} else {
			// Process directory specifier
			var dirPath = path.resolve(filepath,dirSpec.path);
			if(fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory()) {
				var	files = getAllFiles(dirPath, dirSpec.searchSubdirectories),
					fileRegExp = new RegExp(dirSpec.filesRegExp || "^.*$"),
					metaRegExp = /^.*\.meta$/;
				for(var t=0; t<files.length; t++) {
					var thisPath = path.relative(filepath, files[t]),
					filename = path.basename(thisPath);
					if(filename !== "tiddlywiki.files" && !metaRegExp.test(filename) && fileRegExp.test(filename)) {
						dirSpec.fields = dirSpec.fields || {};
						processFile(thisPath,dirSpec.isTiddlerFile,dirSpec.fields,dirSpec.isEditableFile,dirSpec.path);
					}
				}
			} else {
				console.log("Warning: a directory in a tiddlywiki.files file does not exist.");
				console.log("dirPath: " + dirPath);
				console.log("tiddlywiki.files location: " + filepath);
			}
		}
	});
	return tiddlers;
};

/*
Load the tiddlers from a plugin folder, and package them up into a proper JSON plugin tiddler
*/
$tw.loadPluginFolder = function(filepath,excludeRegExp) {
	excludeRegExp = excludeRegExp || $tw.boot.excludeRegExp;
	var infoPath = filepath + path.sep + "plugin.info";
	if(fs.existsSync(filepath) && fs.statSync(filepath).isDirectory()) {
		// Read the plugin information
		if(!fs.existsSync(infoPath) || !fs.statSync(infoPath).isFile()) {
			console.log("Warning: missing plugin.info file in " + filepath);
			return null;
		}
		var pluginInfo = $tw.utils.parseJSONSafe(fs.readFileSync(infoPath,"utf8"),function() {return null;});
		if(!pluginInfo) {
			console.log("warning: invalid JSON in plugin.info file at " + infoPath);
			pluginInfo = {};
		}
		// Read the plugin files
		var pluginFiles = $tw.loadTiddlersFromPath(filepath,excludeRegExp);
		// Save the plugin tiddlers into the plugin info
		pluginInfo.tiddlers = pluginInfo.tiddlers || Object.create(null);
		for(var f=0; f<pluginFiles.length; f++) {
			var tiddlers = pluginFiles[f].tiddlers;
			for(var t=0; t<tiddlers.length; t++) {
				var tiddler= tiddlers[t];
				if(tiddler.title) {
					pluginInfo.tiddlers[tiddler.title] = tiddler;
				}
			}
		}
		// Give the plugin the same version number as the core if it doesn't have one
		if(!("version" in pluginInfo)) {
			pluginInfo.version = $tw.packageInfo.version;
		}
		// Use "plugin" as the plugin-type if we don't have one
		if(!("plugin-type" in pluginInfo)) {
			pluginInfo["plugin-type"] = "plugin";
		}
		pluginInfo.dependents = pluginInfo.dependents || [];
		pluginInfo.type = "application/json";
		// Set plugin text
		pluginInfo.text = JSON.stringify({tiddlers: pluginInfo.tiddlers});
		delete pluginInfo.tiddlers;
		// Deserialise array fields (currently required for the dependents field)
		for(var field in pluginInfo) {
			if($tw.utils.isArray(pluginInfo[field])) {
				pluginInfo[field] = $tw.utils.stringifyList(pluginInfo[field]);
			}
		}
		return pluginInfo;
	} else {
			return null;
	}
};

/*
name: Name of the plugin to find
paths: array of file paths to search for it
Returns the path of the plugin folder
*/
$tw.findLibraryItem = function(name,paths) {
	var pathIndex = 0;
	do {
		var pluginPath = path.resolve(paths[pathIndex],"./" + name);
		if(fs.existsSync(pluginPath) && fs.statSync(pluginPath).isDirectory()) {
			return pluginPath;
		}
	} while(++pathIndex < paths.length);
	return null;
};

/*
name: Name of the plugin to load
paths: array of file paths to search for it
*/
$tw.loadPlugin = function(name,paths) {
	var pluginPath = $tw.findLibraryItem(name,paths);
	if(pluginPath) {
		var pluginFields = $tw.loadPluginFolder(pluginPath);
		if(pluginFields) {
			$tw.wiki.addTiddler(pluginFields);
			return;
		}
	}
	console.log("Warning: Cannot find plugin '" + name + "'");
};

/*
libraryPath: Path of library folder for these plugins (relative to core path)
envVar: Environment variable name for these plugins
Returns an array of search paths
*/
$tw.getLibraryItemSearchPaths = function(libraryPath,envVar) {
	var pluginPaths = [path.resolve($tw.boot.corePath,libraryPath)],
		env;
	if(envVar) {
		env = process.env[envVar];
		if(env) {
			env.split(path.delimiter).map(function(item) {
				if(item) {
					pluginPaths.push(item);
				}
			});
		}
	}
	return pluginPaths;
};

/*
plugins: Array of names of plugins (eg, "tiddlywiki/filesystemadaptor")
libraryPath: Path of library folder for these plugins (relative to core path)
envVar: Environment variable name for these plugins
*/
$tw.loadPlugins = function(plugins,libraryPath,envVar) {
	if(plugins) {
		var pluginPaths = $tw.getLibraryItemSearchPaths(libraryPath,envVar);
		for(var t=0; t<plugins.length; t++) {
			$tw.loadPlugin(plugins[t],pluginPaths);
		}
	}
};

/*
path: path of wiki directory
options:
	parentPaths: array of parent paths that we mustn't recurse into
	readOnly: true if the tiddler file paths should not be retained
*/
$tw.loadWikiTiddlers = function(wikiPath,options) {
	options = options || {};
	var parentPaths = options.parentPaths || [],
		wikiInfoPath = path.resolve(wikiPath,$tw.config.wikiInfo),
		wikiInfo,
		pluginFields;
	// Bail if we don't have a wiki info file
	if(fs.existsSync(wikiInfoPath)) {
		wikiInfo = $tw.utils.parseJSONSafe(fs.readFileSync(wikiInfoPath,"utf8"),function() {return null;});
		if(!wikiInfo) {
			console.log("warning: invalid JSON in tiddlywiki.info file at " + wikiInfoPath);
			wikiInfo = {};
		}
	} else {
		return null;
	}
	// Save the path to the tiddlers folder for the filesystemadaptor
	var config = wikiInfo.config || {};
	if($tw.boot.wikiPath == wikiPath) {
		$tw.boot.wikiTiddlersPath = path.resolve($tw.boot.wikiPath,config["default-tiddler-location"] || $tw.config.wikiTiddlersSubDir);
	}
	// Load any parent wikis
	if(wikiInfo.includeWikis) {
		parentPaths = parentPaths.slice(0);
		parentPaths.push(wikiPath);
		$tw.utils.each(wikiInfo.includeWikis,function(info) {
			if(typeof info === "string") {
				info = {path: info};
			}
			var resolvedIncludedWikiPath = path.resolve(wikiPath,info.path);
			if(parentPaths.indexOf(resolvedIncludedWikiPath) === -1) {
				var subWikiInfo = $tw.loadWikiTiddlers(resolvedIncludedWikiPath,{
					parentPaths: parentPaths,
					readOnly: info["read-only"]
				});
				// Merge the build targets
				wikiInfo.build = $tw.utils.extend([],subWikiInfo.build,wikiInfo.build);
			} else {
				$tw.utils.error("Cannot recursively include wiki " + resolvedIncludedWikiPath);
			}
		});
	}
	// Load any plugins, themes and languages listed in the wiki info file
	$tw.loadPlugins(wikiInfo.plugins,$tw.config.pluginsPath,$tw.config.pluginsEnvVar);
	$tw.loadPlugins(wikiInfo.themes,$tw.config.themesPath,$tw.config.themesEnvVar);
	$tw.loadPlugins(wikiInfo.languages,$tw.config.languagesPath,$tw.config.languagesEnvVar);
	// Load the wiki files, registering them as writable
	var resolvedWikiPath = path.resolve(wikiPath,$tw.config.wikiTiddlersSubDir);
	$tw.utils.each($tw.loadTiddlersFromPath(resolvedWikiPath),function(tiddlerFile) {
		if(!options.readOnly && tiddlerFile.filepath) {
			$tw.utils.each(tiddlerFile.tiddlers,function(tiddler) {
				$tw.boot.files[tiddler.title] = {
					filepath: tiddlerFile.filepath,
					type: tiddlerFile.type,
					hasMetaFile: tiddlerFile.hasMetaFile,
					isEditableFile: config["retain-original-tiddler-path"] || tiddlerFile.isEditableFile || tiddlerFile.filepath.indexOf($tw.boot.wikiTiddlersPath) !== 0
				};
			});
		}
		$tw.wiki.addTiddlers(tiddlerFile.tiddlers);
	});
	if($tw.boot.wikiPath == wikiPath) {
		// Save the original tiddler file locations if requested
		var output = {}, relativePath, fileInfo;
		for(var title in $tw.boot.files) {
			fileInfo = $tw.boot.files[title];
			if(fileInfo.isEditableFile) {
				relativePath = path.relative($tw.boot.wikiTiddlersPath,fileInfo.filepath);
				fileInfo.originalpath = relativePath;
				output[title] =
					path.sep === "/" ?
					relativePath :
					relativePath.split(path.sep).join("/");
			}
		}
		if(Object.keys(output).length > 0){
			$tw.wiki.addTiddler({title: "$:/config/OriginalTiddlerPaths", type: "application/json", text: JSON.stringify(output)});
		}
	}
	// Load any plugins within the wiki folder
	var wikiPluginsPath = path.resolve(wikiPath,$tw.config.wikiPluginsSubDir);
	if(fs.existsSync(wikiPluginsPath)) {
		var pluginFolders = fs.readdirSync(wikiPluginsPath);
		for(var t=0; t<pluginFolders.length; t++) {
			pluginFields = $tw.loadPluginFolder(path.resolve(wikiPluginsPath,"./" + pluginFolders[t]));
			if(pluginFields) {
				$tw.wiki.addTiddler(pluginFields);
			}
		}
	}
	// Load any themes within the wiki folder
	var wikiThemesPath = path.resolve(wikiPath,$tw.config.wikiThemesSubDir);
	if(fs.existsSync(wikiThemesPath)) {
		var themeFolders = fs.readdirSync(wikiThemesPath);
		for(var t=0; t<themeFolders.length; t++) {
			pluginFields = $tw.loadPluginFolder(path.resolve(wikiThemesPath,"./" + themeFolders[t]));
			if(pluginFields) {
				$tw.wiki.addTiddler(pluginFields);
			}
		}
	}
	// Load any languages within the wiki folder
	var wikiLanguagesPath = path.resolve(wikiPath,$tw.config.wikiLanguagesSubDir);
	if(fs.existsSync(wikiLanguagesPath)) {
		var languageFolders = fs.readdirSync(wikiLanguagesPath);
		for(var t=0; t<languageFolders.length; t++) {
			pluginFields = $tw.loadPluginFolder(path.resolve(wikiLanguagesPath,"./" + languageFolders[t]));
			if(pluginFields) {
				$tw.wiki.addTiddler(pluginFields);
			}
		}
	}
	return wikiInfo;
};

$tw.loadTiddlersNode = function() {
	// Load the boot tiddlers
	$tw.utils.each($tw.loadTiddlersFromPath($tw.boot.bootPath),function(tiddlerFile) {
		$tw.wiki.addTiddlers(tiddlerFile.tiddlers);
	});
	// Load the core tiddlers
	$tw.wiki.addTiddler($tw.loadPluginFolder($tw.boot.corePath));
	$tw.wiki.addTiddler($tw.loadPluginFolder($tw.boot.coreServerPath));
	// Load any extra plugins
	$tw.utils.each($tw.boot.extraPlugins,function(name) {
		if(name.charAt(0) === "+") { // Relative path to plugin
			var pluginFields = $tw.loadPluginFolder(name.substring(1));
			if(pluginFields) {
				$tw.wiki.addTiddler(pluginFields);
			}
		} else {
			var parts = name.split("/"),
				type = parts[0];
			if(parts.length  === 3 && ["plugins","themes","languages"].indexOf(type) !== -1) {
				$tw.loadPlugins([parts[1] + "/" + parts[2]],$tw.config[type + "Path"],$tw.config[type + "EnvVar"]);
			}
		}
	});
	// Load the tiddlers from the wiki directory
	if($tw.boot.wikiPath) {
		$tw.boot.wikiInfo = $tw.loadWikiTiddlers($tw.boot.wikiPath);
	}
};

// End of if($tw.node)
}

/////////////////////////// Main startup function called once tiddlers have been decrypted

/*
Startup TiddlyWiki
*/
$tw.boot.initStartup = function(options) {
	// Get the URL hash and check for safe mode
	$tw.locationHash = "#";
	if($tw.browser && !$tw.node) {
		if(location.hash === "#:safe") {
			$tw.safeMode = true;
		} else {
			$tw.locationHash = $tw.utils.getLocationHash();
		}
	}
	// Initialise some more $tw properties
	$tw.utils.deepDefaults($tw,{
		modules: { // Information about each module
			titles: Object.create(null), // hashmap by module title of {fn:, exports:, moduleType:}
			types: {} // hashmap by module type of hashmap of exports
		},
		config: { // Configuration overridables
			pluginsPath: "../plugins/",
			themesPath: "../themes/",
			languagesPath: "../languages/",
			editionsPath: "../editions/",
			wikiInfo: "./tiddlywiki.info",
			wikiPluginsSubDir: "./plugins",
			wikiThemesSubDir: "./themes",
			wikiLanguagesSubDir: "./languages",
			wikiTiddlersSubDir: "./tiddlers",
			wikiOutputSubDir: "./output",
			jsModuleHeaderRegExpString: "^\\/\\*\\\\(?:\\r?\\n)((?:^[^\\r\\n]*(?:\\r?\\n))+?)(^\\\\\\*\\/$(?:\\r?\\n)?)",
			fileExtensionInfo: Object.create(null), // Map file extension to {type:}
			contentTypeInfo: Object.create(null), // Map type to {encoding:,extension:}
			pluginsEnvVar: "TIDDLYWIKI_PLUGIN_PATH",
			themesEnvVar: "TIDDLYWIKI_THEME_PATH",
			languagesEnvVar: "TIDDLYWIKI_LANGUAGE_PATH",
			editionsEnvVar: "TIDDLYWIKI_EDITION_PATH"
		},
		log: {}, // Log flags
		unloadTasks: []
	});
	if(!$tw.boot.tasks.readBrowserTiddlers) {
		// For writable tiddler files, a hashmap of title to {filepath:,type:,hasMetaFile:}
		$tw.boot.files = Object.create(null);
		// System paths and filenames
		$tw.boot.bootPath = options.bootPath || path.dirname(module.filename);
		$tw.boot.corePath = path.resolve($tw.boot.bootPath,"../core");
		$tw.boot.coreServerPath = path.resolve($tw.boot.bootPath,"../core-server");
		// If there's no arguments then default to `--help`
		if($tw.boot.argv.length === 0) {
			$tw.boot.argv = ["--help"];
		}
		// Parse any extra plugin references
		$tw.boot.extraPlugins = $tw.boot.extraPlugins || [];
		while($tw.boot.argv[0] && $tw.boot.argv[0].indexOf("+") === 0) {
			$tw.boot.extraPlugins.push($tw.boot.argv[0].substring(1));
			$tw.boot.argv.splice(0,1);
		}
		// If the first command line argument doesn't start with `--` then we
		// interpret it as the path to the wiki folder, which will otherwise default
		// to the current folder
		if($tw.boot.argv[0] && $tw.boot.argv[0].indexOf("--") !== 0) {
			$tw.boot.wikiPath = $tw.boot.argv[0];
			$tw.boot.argv = $tw.boot.argv.slice(1);
		} else {
			$tw.boot.wikiPath = process.cwd();
		}
		// Read package info
		$tw.packageInfo = $tw.packageInfo || require("../package.json");
		// Check node version number
		if(!$tw.utils.checkVersions(process.version.substr(1),$tw.packageInfo.engines.node.substr(2))) {
			$tw.utils.error("TiddlyWiki5 requires node.js version " + $tw.packageInfo.engines.node);
		}
	}
	// Add file extension information
	$tw.utils.registerFileType("text/vnd.tiddlywiki","utf8",".tid");
	$tw.utils.registerFileType("application/x-tiddler","utf8",".tid");
	$tw.utils.registerFileType("application/x-tiddlers","utf8",".multids");
	$tw.utils.registerFileType("application/x-tiddler-html-div","utf8",".tiddler");
	$tw.utils.registerFileType("text/vnd.tiddlywiki2-recipe","utf8",".recipe");
	$tw.utils.registerFileType("text/plain","utf8",".txt");
	$tw.utils.registerFileType("text/css","utf8",".css");
	$tw.utils.registerFileType("text/html","utf8",[".html",".htm"]);
	$tw.utils.registerFileType("application/hta","utf16le",".hta",{deserializerType:"text/html"});
	$tw.utils.registerFileType("application/javascript","utf8",".js");
	$tw.utils.registerFileType("application/json","utf8",".json");
	$tw.utils.registerFileType("application/pdf","base64",".pdf",{flags:["image"]});
	$tw.utils.registerFileType("application/zip","base64",".zip");
	$tw.utils.registerFileType("application/x-zip-compressed","base64",".zip");
	$tw.utils.registerFileType("image/jpeg","base64",[".jpg",".jpeg"],{flags:["image"]});
	$tw.utils.registerFileType("image/jpg","base64",[".jpg",".jpeg"],{flags:["image"]});
	$tw.utils.registerFileType("image/png","base64",".png",{flags:["image"]});
	$tw.utils.registerFileType("image/gif","base64",".gif",{flags:["image"]});
	$tw.utils.registerFileType("image/webp","base64",".webp",{flags:["image"]});
	$tw.utils.registerFileType("image/heic","base64",".heic",{flags:["image"]});
	$tw.utils.registerFileType("image/heif","base64",".heif",{flags:["image"]});
	$tw.utils.registerFileType("image/avif","base64",".avif",{flags:["image"]});
	$tw.utils.registerFileType("image/svg+xml","utf8",".svg",{flags:["image"]});
	$tw.utils.registerFileType("image/vnd.microsoft.icon","base64",".ico",{flags:["image"]});
	$tw.utils.registerFileType("image/x-icon","base64",".ico",{flags:["image"]});
	$tw.utils.registerFileType("application/wasm","base64",".wasm");
	$tw.utils.registerFileType("font/woff","base64",".woff");
	$tw.utils.registerFileType("font/woff2","base64",".woff2");
	$tw.utils.registerFileType("font/ttf","base64",".ttf");
	$tw.utils.registerFileType("font/otf","base64",".otf");
	$tw.utils.registerFileType("audio/ogg","base64",".ogg");
	$tw.utils.registerFileType("audio/mp4","base64",[".mp4",".m4a"]);
	$tw.utils.registerFileType("video/ogg","base64",[".ogm",".ogv",".ogg"]);
	$tw.utils.registerFileType("video/webm","base64",".webm");
	$tw.utils.registerFileType("video/mp4","base64",".mp4");
	$tw.utils.registerFileType("audio/mp3","base64",".mp3");
	$tw.utils.registerFileType("audio/mpeg","base64",[".mp3",".m2a",".mp2",".mpa",".mpg",".mpga"]);
	$tw.utils.registerFileType("text/markdown","utf8",[".md",".markdown"],{deserializerType:"text/x-markdown"});
	$tw.utils.registerFileType("text/x-markdown","utf8",[".md",".markdown"]);
	$tw.utils.registerFileType("application/enex+xml","utf8",".enex");
	$tw.utils.registerFileType("application/vnd.openxmlformats-officedocument.wordprocessingml.document","base64",".docx");
	$tw.utils.registerFileType("application/msword","base64",".doc");
	$tw.utils.registerFileType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","base64",".xlsx");
	$tw.utils.registerFileType("application/excel","base64",".xls");
	$tw.utils.registerFileType("application/vnd.ms-excel","base64",".xls");
	$tw.utils.registerFileType("application/vnd.openxmlformats-officedocument.presentationml.presentation","base64",".pptx");
	$tw.utils.registerFileType("application/mspowerpoint","base64",".ppt");
	$tw.utils.registerFileType("text/x-bibtex","utf8",".bib",{deserializerType:"application/x-bibtex"});
	$tw.utils.registerFileType("application/x-bibtex","utf8",".bib");
	$tw.utils.registerFileType("application/epub+zip","base64",".epub");
	$tw.utils.registerFileType("application/octet-stream","base64",".octet-stream");
	// Create the wiki store for the app
	$tw.wiki = new $tw.Wiki($tw.safeMode && {enableIndexers: []});
	// Install built in tiddler fields modules
	$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap("tiddlerfield");
	// Install the tiddler deserializer modules
	$tw.Wiki.tiddlerDeserializerModules = Object.create(null);
	$tw.modules.applyMethods("tiddlerdeserializer",$tw.Wiki.tiddlerDeserializerModules);
	// Call unload handlers in the browser
	if($tw.browser) {
		window.onbeforeunload = function(event) {
			event = event || {};
			var result;
			$tw.utils.each($tw.unloadTasks,function(task) {
				var r = task(event);
				if(r) {
					result = r;
				}
			});
			return result;
		};
	}
};
$tw.boot.loadStartup = function(options){

	// Load tiddlers
	if($tw.boot.tasks.readBrowserTiddlers) {
		$tw.loadTiddlersBrowser();
	} else {
		$tw.loadTiddlersNode();
	}
	// Load any preloaded tiddlers
	if($tw.preloadTiddlers) {
		$tw.wiki.addTiddlers($tw.preloadTiddlers);
	}
	// Give hooks a chance to modify the store
	$tw.hooks.invokeHook("th-boot-tiddlers-loaded");
};
$tw.boot.execStartup = function(options){
	// Unpack plugin tiddlers
	$tw.wiki.readPluginInfo();
	$tw.wiki.registerPluginTiddlers("plugin",$tw.safeMode ? ["$:/core"] : undefined);
	$tw.wiki.unpackPluginTiddlers();
	// Process "safe mode"
	if($tw.safeMode) {
		$tw.wiki.processSafeMode();
	}
	// Register typed modules from the tiddlers we've just loaded and any modules within plugins
	// Tiddlers should appear last so that they may overwrite shadows during module registration
	$tw.wiki.defineShadowModules();
	$tw.wiki.defineTiddlerModules();
	// Make sure the crypto state tiddler is up to date
	if($tw.crypto) {
		$tw.crypto.updateCryptoStateTiddler();
	}
	// Gather up any startup modules
	$tw.boot.remainingStartupModules = []; // Array of startup modules
	$tw.modules.forEachModuleOfType("startup",function(title,module) {
		if(module.startup) {
			$tw.boot.remainingStartupModules.push(module);
		}
	});
	// Keep track of the startup tasks that have been executed
	$tw.boot.executedStartupModules = Object.create(null);
	$tw.boot.disabledStartupModules = $tw.boot.disabledStartupModules || [];
	// Repeatedly execute the next eligible task
	$tw.boot.executeNextStartupTask(options.callback);
};
/*
Startup TiddlyWiki
*/
$tw.boot.startup = function(options) {
	options = options || {};
	// Get the URL hash and check for safe mode
	$tw.boot.initStartup(options);
	$tw.boot.loadStartup(options);
	$tw.boot.execStartup(options);
};

/*
Add another unload task
*/
$tw.addUnloadTask = function(task) {
	if($tw.unloadTasks.indexOf(task) === -1) {
		$tw.unloadTasks.push(task);
	}
};

/*
Execute the remaining eligible startup tasks
*/
$tw.boot.executeNextStartupTask = function(callback) {
	// Find the next eligible task
	var taskIndex = 0, task,
		asyncTaskCallback = function() {
			if(task.name) {
				$tw.boot.executedStartupModules[task.name] = true;
			}
			return $tw.boot.executeNextStartupTask(callback);
		};
	while(taskIndex < $tw.boot.remainingStartupModules.length) {
		task = $tw.boot.remainingStartupModules[taskIndex];
		if($tw.boot.isStartupTaskEligible(task)) {
			// Remove this task from the list
			$tw.boot.remainingStartupModules.splice(taskIndex,1);
			// Assemble log message
			var s = ["Startup task:",task.name];
			if(task.platforms) {
				s.push("platforms:",task.platforms.join(","));
			}
			if(task.after) {
				s.push("after:",task.after.join(","));
			}
			if(task.before) {
				s.push("before:",task.before.join(","));
			}
			$tw.boot.log(s.join(" "));
			// Execute task
			if(!$tw.utils.hop(task,"synchronous") || task.synchronous) {
				const thenable = task.startup();
				if(thenable && typeof thenable.then === "function"){
					thenable.then(asyncTaskCallback);
					return true;
				} else {
					return asyncTaskCallback();
				}
			} else {
				task.startup(asyncTaskCallback);
				return true;
			}
		}
		taskIndex++;
	}
	if(typeof callback === "function") {
		callback();
	}
	return false;
};

/*
Returns true if we are running on one of the platforms specified in taskModule's
`platforms` array; or if `platforms` property is not defined.
*/
$tw.boot.doesTaskMatchPlatform = function(taskModule) {
	var platforms = taskModule.platforms;
	if(platforms) {
		for(var t=0; t<platforms.length; t++) {
			switch(platforms[t]) {
				case "browser":
					if($tw.browser) {
						return true;
					}
					break;
				case "node":
					if($tw.node) {
						return true;
					}
					break;
				default:
					$tw.utils.error("Module " + taskModule.name + ": '" + platforms[t] + "' in export.platforms invalid");
			}
		}
		return false;
	}
	return true;
};

$tw.boot.isStartupTaskEligible = function(taskModule) {
	var t;
	// Check that the platform is correct
	if(!$tw.boot.doesTaskMatchPlatform(taskModule)) {
		return false;
	}
	var name = taskModule.name,
		remaining = $tw.boot.remainingStartupModules;
	if(name) {
		// Fail if this module is disabled
		if($tw.boot.disabledStartupModules.indexOf(name) !== -1) {
			return false;
		}
		// Check that no other outstanding tasks must be executed before this one
		for(t=0; t<remaining.length; t++) {
			var task = remaining[t];
			if(task.before && task.before.indexOf(name) !== -1) {
				if($tw.boot.doesTaskMatchPlatform(task) && (!task.name || $tw.boot.disabledStartupModules.indexOf(task.name) === -1)) {
					return false;
				}
			}
		}
	}
	// Check that all of the tasks that we must be performed after has been done
	var after = taskModule.after;
	if(after) {
		for(t=0; t<after.length; t++) {
			if(!$tw.boot.executedStartupModules[after[t]]) {
				return false;
			}
		}
	}
	return true;
};

/*
Global Hooks mechanism which allows plugins to modify default functionality
*/
$tw.hooks = $tw.hooks || { names: {}};

/*
Add hooks to the  hashmap
*/
$tw.hooks.addHook = function(hookName,definition) {
	if($tw.utils.hop($tw.hooks.names,hookName)) {
		$tw.hooks.names[hookName].push(definition);
	}
	else {
		$tw.hooks.names[hookName] = [definition];
	}
};

/*
Delete hooks from the hashmap
*/
$tw.hooks.removeHook = function(hookName,definition) {
	if($tw.utils.hop($tw.hooks.names,hookName)) {
		var p = $tw.hooks.names[hookName].indexOf(definition);
		if(p !== -1) {
			$tw.hooks.names[hookName].splice(p, 1);
		}
	}
};

/*
Invoke the hook by key
*/
$tw.hooks.invokeHook = function(hookName /*, value,... */) {
	var args = Array.prototype.slice.call(arguments,1);
	if($tw.utils.hop($tw.hooks.names,hookName)) {
		for(var i = 0; i < $tw.hooks.names[hookName].length; i++) {
			args[0] = $tw.hooks.names[hookName][i].apply(null,args);
		}
	}
	return args[0];
};

/////////////////////////// Main boot function to decrypt tiddlers and then startup

$tw.boot.boot = function(callback) {
	// Initialise crypto object
	$tw.crypto = new $tw.utils.Crypto();
	// Initialise password prompter
	if($tw.browser && !$tw.node) {
		$tw.passwordPrompt = new $tw.utils.PasswordPrompt();
	}
	// Preload any encrypted tiddlers
	$tw.boot.decryptEncryptedTiddlers(function() {
		// Startup
		$tw.boot.startup({callback: callback});
	});
};

/////////////////////////// Autoboot in the browser

if($tw.browser && !$tw.boot.suppressBoot) {
	$tw.boot.boot();
}

return $tw;

});

/* eslint-enable @stylistic/indent */

if(typeof(exports) !== "undefined") {
	exports.TiddlyWiki = _boot;
} else {
	_boot(window.$tw);
}
//# sourceURL=$:/boot/boot.js


================================================
FILE: boot/bootprefix.js
================================================
/*\
title: $:/boot/bootprefix.js
type: application/javascript

This file sets up the globals that need to be available when JavaScript modules are executed in the browser. The overall sequence is:

# BootPrefix.js
# <module definitions>
# Boot.js

See Boot.js for further details of the boot process.

\*/

/* eslint-disable @stylistic/indent */

var _bootprefix = (function($tw) {

"use strict";

$tw = $tw || Object.create(null);
$tw.boot = $tw.boot || Object.create(null);

// Config
$tw.config = $tw.config || Object.create(null);
$tw.config.maxEditFileSize = 100 * 1024 * 1024; // 100MB

// Detect platforms
if(!("browser" in $tw)) {
	$tw.browser = typeof(window) !== "undefined" && typeof(document) !== "undefined" ? {} : null;
}
if(!("node" in $tw)) {
	$tw.node = typeof(process) === "object" ? {} : null;
}
if(!("nodeWebKit" in $tw)) {
	$tw.nodeWebKit = $tw.node && global.window && global.window.nwDispatcher ? {} : null;
}

// Set default boot tasks
$tw.boot.tasks = {
	trapErrors: !!($tw.browser && !$tw.node),
	readBrowserTiddlers: !!($tw.browser && !$tw.node)
};

/*
Information about each module is kept in an object with these members:
	moduleType: type of module
	definition: object, function or string defining the module; see below
	exports: exports of the module, filled in after execution

The `definition` can be of several types:

* An object can be used to directly specify the exports of the module
* A function with the arguments `module,require,exports` that returns `exports`
* A string function body with the same arguments

Each moduleInfo object is stored in two hashmaps: $tw.modules.titles and $tw.modules.types. The first is indexed by title and the second is indexed by type and then title
*/
$tw.modules = {
	titles: {}, // hashmap by module name of moduleInfo
	types: {} // hashmap by module type and then name of moduleInfo
};

/*
Define a JavaScript tiddler module for later execution
	moduleName: name of module being defined
	moduleType: type of module
	definition: module definition; see discussion above
*/
$tw.modules.define = function(moduleName,moduleType,definition) {
	// Create the moduleInfo
	var moduleInfo = {
		moduleType: moduleType,
		definition: definition,
		exports: undefined
	};
	// If the definition is already an object we can use it as the exports
	if(typeof moduleInfo.definition === "object") {
		moduleInfo.exports = definition;
	}
	// Store the module in the titles hashmap
	if(Object.prototype.hasOwnProperty.call($tw.modules.titles,moduleName)) {
		console.log("Warning: Redefined module - " + moduleName);
	}
	$tw.modules.titles[moduleName] = moduleInfo;
	// Store the module in the types hashmap
	if(!Object.prototype.hasOwnProperty.call($tw.modules.types,moduleType)) {
		$tw.modules.types[moduleType] = {};
	}
	if(Object.prototype.hasOwnProperty.call($tw.modules.types[moduleType],moduleName)) {
		console.log("Warning: Redefined module - " + moduleName);
	}
	$tw.modules.types[moduleType][moduleName] = moduleInfo;
};

/*
External JavaScript can populate this array before calling boot.js in order to preload tiddlers
*/
$tw.preloadTiddlers = $tw.preloadTiddlers || [];

/*
Convenience function for pushing a tiddler onto the preloading array
*/
$tw.preloadTiddler = function(fields) {
	$tw.preloadTiddlers.push(fields);
};

/*
Convenience function for pushing an array of tiddlers onto the preloading array
*/
$tw.preloadTiddlerArray = function(fieldsArray) {
	$tw.preloadTiddlers.push.apply($tw.preloadTiddlers,fieldsArray);
};

return $tw;

});

/* eslint-enable @stylistic/indent */

if(typeof(exports) === "undefined") {
	// Set up $tw global for the browser
	window.$tw = _bootprefix(window.$tw);
} else {
	// Export functionality as a module
	exports.bootprefix = _bootprefix;
}
//# sourceURL=$:/boot/bootprefix.js


================================================
FILE: boot/sjcl.js
================================================
"use strict";var sjcl={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(a){this.toString=function(){return"CORRUPT: "+this.message};this.message=a},invalid:function(a){this.toString=function(){return"INVALID: "+this.message};this.message=a},bug:function(a){this.toString=function(){return"BUG: "+this.message};this.message=a},notReady:function(a){this.toString=function(){return"NOT READY: "+this.message};this.message=a}}};
sjcl.cipher.aes=function(a){this.s[0][0][0]||this.O();var b,c,d,e,f=this.s[0][4],g=this.s[1];b=a.length;var h=1;if(4!==b&&6!==b&&8!==b)throw new sjcl.exception.invalid("invalid aes key size");this.b=[d=a.slice(0),e=[]];for(a=b;a<4*b+28;a++){c=d[a-1];if(0===a%b||8===b&&4===a%b)c=f[c>>>24]<<24^f[c>>16&255]<<16^f[c>>8&255]<<8^f[c&255],0===a%b&&(c=c<<8^c>>>24^h<<24,h=h<<1^283*(h>>7));d[a]=d[a-b]^c}for(b=0;a;b++,a--)c=d[b&3?a:a-4],e[b]=4>=a||4>b?c:g[0][f[c>>>24]]^g[1][f[c>>16&255]]^g[2][f[c>>8&255]]^g[3][f[c&
255]]};
sjcl.cipher.aes.prototype={encrypt:function(a){return t(this,a,0)},decrypt:function(a){return t(this,a,1)},s:[[[],[],[],[],[]],[[],[],[],[],[]]],O:function(){var a=this.s[0],b=this.s[1],c=a[4],d=b[4],e,f,g,h=[],k=[],l,n,m,p;for(e=0;0x100>e;e++)k[(h[e]=e<<1^283*(e>>7))^e]=e;for(f=g=0;!c[f];f^=l||1,g=k[g]||1)for(m=g^g<<1^g<<2^g<<3^g<<4,m=m>>8^m&255^99,c[f]=m,d[m]=f,n=h[e=h[l=h[f]]],p=0x1010101*n^0x10001*e^0x101*l^0x1010100*f,n=0x101*h[m]^0x1010100*m,e=0;4>e;e++)a[e][f]=n=n<<24^n>>>8,b[e][m]=p=p<<24^p>>>8;for(e=
0;5>e;e++)a[e]=a[e].slice(0),b[e]=b[e].slice(0)}};
function t(a,b,c){if(4!==b.length)throw new sjcl.exception.invalid("invalid aes block size");var d=a.b[c],e=b[0]^d[0],f=b[c?3:1]^d[1],g=b[2]^d[2];b=b[c?1:3]^d[3];var h,k,l,n=d.length/4-2,m,p=4,r=[0,0,0,0];h=a.s[c];a=h[0];var q=h[1],v=h[2],w=h[3],x=h[4];for(m=0;m<n;m++)h=a[e>>>24]^q[f>>16&255]^v[g>>8&255]^w[b&255]^d[p],k=a[f>>>24]^q[g>>16&255]^v[b>>8&255]^w[e&255]^d[p+1],l=a[g>>>24]^q[b>>16&255]^v[e>>8&255]^w[f&255]^d[p+2],b=a[b>>>24]^q[e>>16&255]^v[f>>8&255]^w[g&255]^d[p+3],p+=4,e=h,f=k,g=l;for(m=
0;4>m;m++)r[c?3&-m:m]=x[e>>>24]<<24^x[f>>16&255]<<16^x[g>>8&255]<<8^x[b&255]^d[p++],h=e,e=f,f=g,g=b,b=h;return r}
sjcl.bitArray={bitSlice:function(a,b,c){a=sjcl.bitArray.$(a.slice(b/32),32-(b&31)).slice(1);return void 0===c?a:sjcl.bitArray.clamp(a,c-b)},extract:function(a,b,c){var d=Math.floor(-b-c&31);return((b+c-1^b)&-32?a[b/32|0]<<32-d^a[b/32+1|0]>>>d:a[b/32|0]>>>d)&(1<<c)-1},concat:function(a,b){if(0===a.length||0===b.length)return a.concat(b);var c=a[a.length-1],d=sjcl.bitArray.getPartial(c);return 32===d?a.concat(b):sjcl.bitArray.$(b,d,c|0,a.slice(0,a.length-1))},bitLength:function(a){var b=a.length;return 0===
b?0:32*(b-1)+sjcl.bitArray.getPartial(a[b-1])},clamp:function(a,b){if(32*a.length<b)return a;a=a.slice(0,Math.ceil(b/32));var c=a.length;b=b&31;0<c&&b&&(a[c-1]=sjcl.bitArray.partial(b,a[c-1]&2147483648>>b-1,1));return a},partial:function(a,b,c){return 32===a?b:(c?b|0:b<<32-a)+0x10000000000*a},getPartial:function(a){return Math.round(a/0x10000000000)||32},equal:function(a,b){if(sjcl.bitArray.bitLength(a)!==sjcl.bitArray.bitLength(b))return!1;var c=0,d;for(d=0;d<a.length;d++)c|=a[d]^b[d];return 0===
c},$:function(a,b,c,d){var e;e=0;for(void 0===d&&(d=[]);32<=b;b-=32)d.push(c),c=0;if(0===b)return d.concat(a);for(e=0;e<a.length;e++)d.push(c|a[e]>>>b),c=a[e]<<32-b;e=a.length?a[a.length-1]:0;a=sjcl.bitArray.getPartial(e);d.push(sjcl.bitArray.partial(b+a&31,32<b+a?c:d.pop(),1));return d},i:function(a,b){return[a[0]^b[0],a[1]^b[1],a[2]^b[2],a[3]^b[3]]},byteswapM:function(a){var b,c;for(b=0;b<a.length;++b)c=a[b],a[b]=c>>>24|c>>>8&0xff00|(c&0xff00)<<8|c<<24;return a}};
sjcl.codec.utf8String={fromBits:function(a){var b="",c=sjcl.bitArray.bitLength(a),d,e;for(d=0;d<c/8;d++)0===(d&3)&&(e=a[d/4]),b+=String.fromCharCode(e>>>8>>>8>>>8),e<<=8;return decodeURIComponent(escape(b))},toBits:function(a){a=unescape(encodeURIComponent(a));var b=[],c,d=0;for(c=0;c<a.length;c++)d=d<<8|a.charCodeAt(c),3===(c&3)&&(b.push(d),d=0);c&3&&b.push(sjcl.bitArray.partial(8*(c&3),d));return b}};
sjcl.codec.hex={fromBits:function(a){var b="",c;for(c=0;c<a.length;c++)b+=((a[c]|0)+0xf00000000000).toString(16).substr(4);return b.substr(0,sjcl.bitArray.bitLength(a)/4)},toBits:function(a){var b,c=[],d;a=a.replace(/\s|0x/g,"");d=a.length;a=a+"00000000";for(b=0;b<a.length;b+=8)c.push(parseInt(a.substr(b,8),16)^0);return sjcl.bitArray.clamp(c,4*d)}};
sjcl.codec.base32={B:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",X:"0123456789ABCDEFGHIJKLMNOPQRSTUV",BITS:32,BASE:5,REMAINING:27,fromBits:function(a,b,c){var d=sjcl.codec.base32.BASE,e=sjcl.codec.base32.REMAINING,f="",g=0,h=sjcl.codec.base32.B,k=0,l=sjcl.bitArray.bitLength(a);c&&(h=sjcl.codec.base32.X);for(c=0;f.length*d<l;)f+=h.charAt((k^a[c]>>>g)>>>e),g<d?(k=a[c]<<d-g,g+=e,c++):(k<<=d,g-=d);for(;f.length&7&&!b;)f+="=";return f},toBits:function(a,b){a=a.replace(/\s|=/g,"").toUpperCase();var c=sjcl.codec.base32.BITS,
d=sjcl.codec.base32.BASE,e=sjcl.codec.base32.REMAINING,f=[],g,h=0,k=sjcl.codec.base32.B,l=0,n,m="base32";b&&(k=sjcl.codec.base32.X,m="base32hex");for(g=0;g<a.length;g++){n=k.indexOf(a.charAt(g));if(0>n){if(!b)try{return sjcl.codec.base32hex.toBits(a)}catch(p){}throw new sjcl.exception.invalid("this isn't "+m+"!");}h>e?(h-=e,f.push(l^n>>>h),l=n<<c-h):(h+=d,l^=n<<c-h)}h&56&&f.push(sjcl.bitArray.partial(h&56,l,1));return f}};
sjcl.codec.base32hex={fromBits:function(a,b){return sjcl.codec.base32.fromBits(a,b,1)},toBits:function(a){return sjcl.codec.base32.toBits(a,1)}};
sjcl.codec.base64={B:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(a,b,c){var d="",e=0,f=sjcl.codec.base64.B,g=0,h=sjcl.bitArray.bitLength(a);c&&(f=f.substr(0,62)+"-_");for(c=0;6*d.length<h;)d+=f.charAt((g^a[c]>>>e)>>>26),6>e?(g=a[c]<<6-e,e+=26,c++):(g<<=6,e-=6);for(;d.length&3&&!b;)d+="=";return d},toBits:function(a,b){a=a.replace(/\s|=/g,"");var c=[],d,e=0,f=sjcl.codec.base64.B,g=0,h;b&&(f=f.substr(0,62)+"-_");for(d=0;d<a.length;d++){h=f.indexOf(a.charAt(d));
if(0>h)throw new sjcl.exception.invalid("this isn't base64!");26<e?(e-=26,c.push(g^h>>>e),g=h<<32-e):(e+=6,g^=h<<32-e)}e&56&&c.push(sjcl.bitArray.partial(e&56,g,1));return c}};sjcl.codec.base64url={fromBits:function(a){return sjcl.codec.base64.fromBits(a,1,1)},toBits:function(a){return sjcl.codec.base64.toBits(a,1)}};sjcl.hash.sha256=function(a){this.b[0]||this.O();a?(this.F=a.F.slice(0),this.A=a.A.slice(0),this.l=a.l):this.reset()};sjcl.hash.sha256.hash=function(a){return(new sjcl.hash.sha256).update(a).finalize()};
sjcl.hash.sha256.prototype={blockSize:512,reset:function(){this.F=this.Y.slice(0);this.A=[];this.l=0;return this},update:function(a){"string"===typeof a&&(a=sjcl.codec.utf8String.toBits(a));var b,c=this.A=sjcl.bitArray.concat(this.A,a);b=this.l;a=this.l=b+sjcl.bitArray.bitLength(a);if(0x1fffffffffffff<a)throw new sjcl.exception.invalid("Cannot hash more than 2^53 - 1 bits");if("undefined"!==typeof Uint32Array){var d=new Uint32Array(c),e=0;for(b=512+b-(512+b&0x1ff);b<=a;b+=512)u(this,d.subarray(16*e,
16*(e+1))),e+=1;c.splice(0,16*e)}else for(b=512+b-(512+b&0x1ff);b<=a;b+=512)u(this,c.splice(0,16));return this},finalize:function(){var a,b=this.A,c=this.F,b=sjcl.bitArray.concat(b,[sjcl.bitArray.partial(1,1)]);for(a=b.length+2;a&15;a++)b.push(0);b.push(Math.floor(this.l/0x100000000));for(b.push(this.l|0);b.length;)u(this,b.splice(0,16));this.reset();return c},Y:[],b:[],O:function(){function a(a){return 0x100000000*(a-Math.floor(a))|0}for(var b=0,c=2,d,e;64>b;c++){e=!0;for(d=2;d*d<=c;d++)if(0===c%d){e=
!1;break}e&&(8>b&&(this.Y[b]=a(Math.pow(c,.5))),this.b[b]=a(Math.pow(c,1/3)),b++)}}};
function u(a,b){var c,d,e,f=a.F,g=a.b,h=f[0],k=f[1],l=f[2],n=f[3],m=f[4],p=f[5],r=f[6],q=f[7];for(c=0;64>c;c++)16>c?d=b[c]:(d=b[c+1&15],e=b[c+14&15],d=b[c&15]=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+b[c&15]+b[c+9&15]|0),d=d+q+(m>>>6^m>>>11^m>>>25^m<<26^m<<21^m<<7)+(r^m&(p^r))+g[c],q=r,r=p,p=m,m=n+d|0,n=l,l=k,k=h,h=d+(k&l^n&(k^l))+(k>>>2^k>>>13^k>>>22^k<<30^k<<19^k<<10)|0;f[0]=f[0]+h|0;f[1]=f[1]+k|0;f[2]=f[2]+l|0;f[3]=f[3]+n|0;f[4]=f[4]+m|0;f[5]=f[5]+p|0;f[6]=f[6]+r|0;f[7]=
f[7]+q|0}
sjcl.mode.ccm={name:"ccm",G:[],listenProgress:function(a){sjcl.mode.ccm.G.push(a)},unListenProgress:function(a){a=sjcl.mode.ccm.G.indexOf(a);-1<a&&sjcl.mode.ccm.G.splice(a,1)},fa:function(a){var b=sjcl.mode.ccm.G.slice(),c;for(c=0;c<b.length;c+=1)b[c](a)},encrypt:function(a,b,c,d,e){var f,g=b.slice(0),h=sjcl.bitArray,k=h.bitLength(c)/8,l=h.bitLength(g)/8;e=e||64;d=d||[];if(7>k)throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");for(f=2;4>f&&l>>>8*f;f++);f<15-k&&(f=15-k);c=h.clamp(c,
8*(15-f));b=sjcl.mode.ccm.V(a,b,c,d,e,f);g=sjcl.mode.ccm.C(a,g,c,b,e,f);return h.concat(g.data,g.tag)},decrypt:function(a,b,c,d,e){e=e||64;d=d||[];var f=sjcl.bitArray,g=f.bitLength(c)/8,h=f.bitLength(b),k=f.clamp(b,h-e),l=f.bitSlice(b,h-e),h=(h-e)/8;if(7>g)throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");for(b=2;4>b&&h>>>8*b;b++);b<15-g&&(b=15-g);c=f.clamp(c,8*(15-b));k=sjcl.mode.ccm.C(a,k,c,l,e,b);a=sjcl.mode.ccm.V(a,k.data,c,d,e,b);if(!f.equal(k.tag,a))throw new sjcl.exception.corrupt("ccm: tag doesn't match");
return k.data},na:function(a,b,c,d,e,f){var g=[],h=sjcl.bitArray,k=h.i;d=[h.partial(8,(b.length?64:0)|d-2<<2|f-1)];d=h.concat(d,c);d[3]|=e;d=a.encrypt(d);if(b.length)for(c=h.bitLength(b)/8,65279>=c?g=[h.partial(16,c)]:0xffffffff>=c&&(g=h.concat([h.partial(16,65534)],[c])),g=h.concat(g,b),b=0;b<g.length;b+=4)d=a.encrypt(k(d,g.slice(b,b+4).concat([0,0,0])));return d},V:function(a,b,c,d,e,f){var g=sjcl.bitArray,h=g.i;e/=8;if(e%2||4>e||16<e)throw new sjcl.exception.invalid("ccm: invalid tag length");
if(0xffffffff<d.length||0xffffffff<b.length)throw new sjcl.exception.bug("ccm: can't deal with 4GiB or more data");c=sjcl.mode.ccm.na(a,d,c,e,g.bitLength(b)/8,f);for(d=0;d<b.length;d+=4)c=a.encrypt(h(c,b.slice(d,d+4).concat([0,0,0])));return g.clamp(c,8*e)},C:function(a,b,c,d,e,f){var g,h=sjcl.bitArray;g=h.i;var k=b.length,l=h.bitLength(b),n=k/50,m=n;c=h.concat([h.partial(8,f-1)],c).concat([0,0,0]).slice(0,4);d=h.bitSlice(g(d,a.encrypt(c)),0,e);if(!k)return{tag:d,data:[]};for(g=0;g<k;g+=4)g>n&&(sjcl.mode.ccm.fa(g/
k),n+=m),c[3]++,e=a.encrypt(c),b[g]^=e[0],b[g+1]^=e[1],b[g+2]^=e[2],b[g+3]^=e[3];return{tag:d,data:h.clamp(b,l)}}};
sjcl.mode.ocb2={name:"ocb2",encrypt:function(a,b,c,d,e,f){if(128!==sjcl.bitArray.bitLength(c))throw new sjcl.exception.invalid("ocb iv must be 128 bits");var g,h=sjcl.mode.ocb2.S,k=sjcl.bitArray,l=k.i,n=[0,0,0,0];c=h(a.encrypt(c));var m,p=[];d=d||[];e=e||64;for(g=0;g+4<b.length;g+=4)m=b.slice(g,g+4),n=l(n,m),p=p.concat(l(c,a.encrypt(l(c,m)))),c=h(c);m=b.slice(g);b=k.bitLength(m);g=a.encrypt(l(c,[0,0,0,b]));m=k.clamp(l(m.concat([0,0,0]),g),b);n=l(n,l(m.concat([0,0,0]),g));n=a.encrypt(l(n,l(c,h(c))));
d.length&&(n=l(n,f?d:sjcl.mode.ocb2.pmac(a,d)));return p.concat(k.concat(m,k.clamp(n,e)))},decrypt:function(a,b,c,d,e,f){if(128!==sjcl.bitArray.bitLength(c))throw new sjcl.exception.invalid("ocb iv must be 128 bits");e=e||64;var g=sjcl.mode.ocb2.S,h=sjcl.bitArray,k=h.i,l=[0,0,0,0],n=g(a.encrypt(c)),m,p,r=sjcl.bitArray.bitLength(b)-e,q=[];d=d||[];for(c=0;c+4<r/32;c+=4)m=k(n,a.decrypt(k(n,b.slice(c,c+4)))),l=k(l,m),q=q.concat(m),n=g(n);p=r-32*c;m=a.encrypt(k(n,[0,0,0,p]));m=k(m,h.clamp(b.slice(c),p).concat([0,
0,0]));l=k(l,m);l=a.encrypt(k(l,k(n,g(n))));d.length&&(l=k(l,f?d:sjcl.mode.ocb2.pmac(a,d)));if(!h.equal(h.clamp(l,e),h.bitSlice(b,r)))throw new sjcl.exception.corrupt("ocb: tag doesn't match");return q.concat(h.clamp(m,p))},pmac:function(a,b){var c,d=sjcl.mode.ocb2.S,e=sjcl.bitArray,f=e.i,g=[0,0,0,0],h=a.encrypt([0,0,0,0]),h=f(h,d(d(h)));for(c=0;c+4<b.length;c+=4)h=d(h),g=f(g,a.encrypt(f(h,b.slice(c,c+4))));c=b.slice(c);128>e.bitLength(c)&&(h=f(h,d(h)),c=e.concat(c,[-2147483648,0,0,0]));g=f(g,c);
return a.encrypt(f(d(f(h,d(h))),g))},S:function(a){return[a[0]<<1^a[1]>>>31,a[1]<<1^a[2]>>>31,a[2]<<1^a[3]>>>31,a[3]<<1^135*(a[0]>>>31)]}};
sjcl.mode.gcm={name:"gcm",encrypt:function(a,b,c,d,e){var f=b.slice(0);b=sjcl.bitArray;d=d||[];a=sjcl.mode.gcm.C(!0,a,f,d,c,e||128);return b.concat(a.data,a.tag)},decrypt:function(a,b,c,d,e){var f=b.slice(0),g=sjcl.bitArray,h=g.bitLength(f);e=e||128;d=d||[];e<=h?(b=g.bitSlice(f,h-e),f=g.bitSlice(f,0,h-e)):(b=f,f=[]);a=sjcl.mode.gcm.C(!1,a,f,d,c,e);if(!g.equal(a.tag,b))throw new sjcl.exception.corrupt("gcm: tag doesn't match");return a.data},ka:function(a,b){var c,d,e,f,g,h=sjcl.bitArray.i;e=[0,0,
0,0];f=b.slice(0);for(c=0;128>c;c++){(d=0!==(a[Math.floor(c/32)]&1<<31-c%32))&&(e=h(e,f));g=0!==(f[3]&1);for(d=3;0<d;d--)f[d]=f[d]>>>1|(f[d-1]&1)<<31;f[0]>>>=1;g&&(f[0]^=-0x1f000000)}return e},j:function(a,b,c){var d,e=c.length;b=b.slice(0);for(d=0;d<e;d+=4)b[0]^=0xffffffff&c[d],b[1]^=0xffffffff&c[d+1],b[2]^=0xffffffff&c[d+2],b[3]^=0xffffffff&c[d+3],b=sjcl.mode.gcm.ka(b,a);return b},C:function(a,b,c,d,e,f){var g,h,k,l,n,m,p,r,q=sjcl.bitArray;m=c.length;p=q.bitLength(c);r=q.bitLength(d);h=q.bitLength(e);
g=b.encrypt([0,0,0,0]);96===h?(e=e.slice(0),e=q.concat(e,[1])):(e=sjcl.mode.gcm.j(g,[0,0,0,0],e),e=sjcl.mode.gcm.j(g,e,[0,0,Math.floor(h/0x100000000),h&0xffffffff]));h=sjcl.mode.gcm.j(g,[0,0,0,0],d);n=e.slice(0);d=h.slice(0);a||(d=sjcl.mode.gcm.j(g,h,c));for(l=0;l<m;l+=4)n[3]++,k=b.encrypt(n),c[l]^=k[0],c[l+1]^=k[1],c[l+2]^=k[2],c[l+3]^=k[3];c=q.clamp(c,p);a&&(d=sjcl.mode.gcm.j(g,h,c));a=[Math.floor(r/0x100000000),r&0xffffffff,Math.floor(p/0x100000000),p&0xffffffff];d=sjcl.mode.gcm.j(g,d,a);k=b.encrypt(e);
d[0]^=k[0];d[1]^=k[1];d[2]^=k[2];d[3]^=k[3];return{tag:q.bitSlice(d,0,f),data:c}}};sjcl.misc.hmac=function(a,b){this.W=b=b||sjcl.hash.sha256;var c=[[],[]],d,e=b.prototype.blockSize/32;this.w=[new b,new b];a.length>e&&(a=b.hash(a));for(d=0;d<e;d++)c[0][d]=a[d]^909522486,c[1][d]=a[d]^1549556828;this.w[0].update(c[0]);this.w[1].update(c[1]);this.R=new b(this.w[0])};
sjcl.misc.hmac.prototype.encrypt=sjcl.misc.hmac.prototype.mac=function(a){if(this.aa)throw new sjcl.exception.invalid("encrypt on already updated hmac called!");this.update(a);return this.digest(a)};sjcl.misc.hmac.prototype.reset=function(){this.R=new this.W(this.w[0]);this.aa=!1};sjcl.misc.hmac.prototype.update=function(a){this.aa=!0;this.R.update(a)};sjcl.misc.hmac.prototype.digest=function(){var a=this.R.finalize(),a=(new this.W(this.w[1])).update(a).finalize();this.reset();return a};
sjcl.misc.pbkdf2=function(a,b,c,d,e){c=c||1E4;if(0>d||0>c)throw new sjcl.exception.invalid("invalid params to pbkdf2");"string"===typeof a&&(a=sjcl.codec.utf8String.toBits(a));"string"===typeof b&&(b=sjcl.codec.utf8String.toBits(b));e=e||sjcl.misc.hmac;a=new e(a);var f,g,h,k,l=[],n=sjcl.bitArray;for(k=1;32*l.length<(d||1);k++){e=f=a.encrypt(n.concat(b,[k]));for(g=1;g<c;g++)for(f=a.encrypt(f),h=0;h<f.length;h++)e[h]^=f[h];l=l.concat(e)}d&&(l=n.clamp(l,d));return l};
sjcl.prng=function(a){this.c=[new sjcl.hash.sha256];this.m=[0];this.P=0;this.H={};this.N=0;this.U={};this.Z=this.f=this.o=this.ha=0;this.b=[0,0,0,0,0,0,0,0];this.h=[0,0,0,0];this.L=void 0;this.M=a;this.D=!1;this.K={progress:{},seeded:{}};this.u=this.ga=0;this.I=1;this.J=2;this.ca=0x10000;this.T=[0,48,64,96,128,192,0x100,384,512,768,1024];this.da=3E4;this.ba=80};
sjcl.prng.prototype={randomWords:function(a,b){var c=[],d;d=this.isReady(b);var e;if(d===this.u)throw new sjcl.exception.notReady("generator isn't seeded");if(d&this.J){d=!(d&this.I);e=[];var f=0,g;this.Z=e[0]=(new Date).valueOf()+this.da;for(g=0;16>g;g++)e.push(0x100000000*Math.random()|0);for(g=0;g<this.c.length&&(e=e.concat(this.c[g].finalize()),f+=this.m[g],this.m[g]=0,d||!(this.P&1<<g));g++);this.P>=1<<this.c.length&&(this.c.push(new sjcl.hash.sha256),this.m.push(0));this.f-=f;f>this.o&&(this.o=
f);this.P++;this.b=sjcl.hash.sha256.hash(this.b.concat(e));this.L=new sjcl.cipher.aes(this.b);for(d=0;4>d&&(this.h[d]=this.h[d]+1|0,!this.h[d]);d++);}for(d=0;d<a;d+=4)0===(d+1)%this.ca&&y(this),e=z(this),c.push(e[0],e[1],e[2],e[3]);y(this);return c.slice(0,a)},setDefaultParanoia:function(a,b){if(0===a&&"Setting paranoia=0 will ruin your security; use it only for testing"!==b)throw new sjcl.exception.invalid("Setting paranoia=0 will ruin your security; use it only for testing");this.M=a},addEntropy:function(a,
b,c){c=c||"user";var d,e,f=(new Date).valueOf(),g=this.H[c],h=this.isReady(),k=0;d=this.U[c];void 0===d&&(d=this.U[c]=this.ha++);void 0===g&&(g=this.H[c]=0);this.H[c]=(this.H[c]+1)%this.c.length;switch(typeof a){case "number":void 0===b&&(b=1);this.c[g].update([d,this.N++,1,b,f,1,a|0]);break;case "object":c=Object.prototype.toString.call(a);if("[object Uint32Array]"===c){e=[];for(c=0;c<a.length;c++)e.push(a[c]);a=e}else for("[object Array]"!==c&&(k=1),c=0;c<a.length&&!k;c++)"number"!==typeof a[c]&&
(k=1);if(!k){if(void 0===b)for(c=b=0;c<a.length;c++)for(e=a[c];0<e;)b++,e=e>>>1;this.c[g].update([d,this.N++,2,b,f,a.length].concat(a))}break;case "string":void 0===b&&(b=a.length);this.c[g].update([d,this.N++,3,b,f,a.length]);this.c[g].update(a);break;default:k=1}if(k)throw new sjcl.exception.bug("random: addEntropy only supports number, array of numbers or string");this.m[g]+=b;this.f+=b;h===this.u&&(this.isReady()!==this.u&&A("seeded",Math.max(this.o,this.f)),A("progress",this.getProgress()))},
isReady:function(a){a=this.T[void 0!==a?a:this.M];return this.o&&this.o>=a?this.m[0]>this.ba&&(new Date).valueOf()>this.Z?this.J|this.I:this.I:this.f>=a?this.J|this.u:this.u},getProgress:function(a){a=this.T[a?a:this.M];return this.o>=a?1:this.f>a?1:this.f/a},startCollectors:function(){if(!this.D){this.a={loadTimeCollector:B(this,this.ma),mouseCollector:B(this,this.oa),keyboardCollector:B(this,this.la),accelerometerCollector:B(this,this.ea),touchCollector:B(this,this.qa)};if(window.addEventListener)window.addEventListener("load",
this.a.loadTimeCollector,!1),window.addEventListener("mousemove",this.a.mouseCollector,!1),window.addEventListener("keypress",this.a.keyboardCollector,!1),window.addEventListener("devicemotion",this.a.accelerometerCollector,!1),window.addEventListener("touchmove",this.a.touchCollector,!1);else if(document.attachEvent)document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector);else throw new sjcl.exception.bug("can't attach event");
this.D=!0}},stopCollectors:function(){this.D&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,!1),window.removeEventListener("mousemove",this.a.mouseCollector,!1),window.removeEventListener("keypress",this.a.keyboardCollector,!1),window.removeEventListener("devicemotion",this.a.accelerometerCollector,!1),window.removeEventListener("touchmove",this.a.touchCollector,!1)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",
this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.D=!1)},addEventListener:function(a,b){this.K[a][this.ga++]=b},removeEventListener:function(a,b){var c,d,e=this.K[a],f=[];for(d in e)e.hasOwnProperty(d)&&e[d]===b&&f.push(d);for(c=0;c<f.length;c++)d=f[c],delete e[d]},la:function(){C(this,1)},oa:function(a){var b,c;try{b=a.x||a.clientX||a.offsetX||0,c=a.y||a.clientY||a.offsetY||0}catch(d){c=b=0}0!=b&&0!=c&&this.addEntropy([b,c],2,"mouse");C(this,0)},qa:function(a){a=
a.touches[0]||a.changedTouches[0];this.addEntropy([a.pageX||a.clientX,a.pageY||a.clientY],1,"touch");C(this,0)},ma:function(){C(this,2)},ea:function(a){a=a.accelerationIncludingGravity.x||a.accelerationIncludingGravity.y||a.accelerationIncludingGravity.z;if(window.orientation){var b=window.orientation;"number"===typeof b&&this.addEntropy(b,1,"accelerometer")}a&&this.addEntropy(a,2,"accelerometer");C(this,0)}};
function A(a,b){var c,d=sjcl.random.K[a],e=[];for(c in d)d.hasOwnProperty(c)&&e.push(d[c]);for(c=0;c<e.length;c++)e[c](b)}function C(a,b){"undefined"!==typeof window&&window.performance&&"function"===typeof window.performance.now?a.addEntropy(window.performance.now(),b,"loadtime"):a.addEntropy((new Date).valueOf(),b,"loadtime")}function y(a){a.b=z(a).concat(z(a));a.L=new sjcl.cipher.aes(a.b)}function z(a){for(var b=0;4>b&&(a.h[b]=a.h[b]+1|0,!a.h[b]);b++);return a.L.encrypt(a.h)}
function B(a,b){return function(){b.apply(a,arguments)}}sjcl.random=new sjcl.prng(6);
a:try{var D,E,F,G;if(G="undefined"!==typeof module&&module.exports){var H;try{H=require("crypto")}catch(a){H=null}G=E=H}if(G&&E.randomBytes)D=E.randomBytes(128),D=new Uint32Array((new Uint8Array(D)).buffer),sjcl.random.addEntropy(D,1024,"crypto['randomBytes']");else if("undefined"!==typeof window&&"undefined"!==typeof Uint32Array){F=new Uint32Array(32);if(window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(F);else if(window.msCrypto&&window.msCrypto.getRandomValues)window.msCrypto.getRandomValues(F);
else break a;sjcl.random.addEntropy(F,1024,"crypto['getRandomValues']")}}catch(a){"undefined"!==typeof window&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(a))}
sjcl.json={defaults:{v:1,iter:1E4,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},ja:function(a,b,c,d){c=c||{};d=d||{};var e=sjcl.json,f=e.g({iv:sjcl.random.randomWords(4,0)},e.defaults),g;e.g(f,c);c=f.adata;"string"===typeof f.salt&&(f.salt=sjcl.codec.base64.toBits(f.salt));"string"===typeof f.iv&&(f.iv=sjcl.codec.base64.toBits(f.iv));if(!sjcl.mode[f.mode]||!sjcl.cipher[f.cipher]||"string"===typeof a&&100>=f.iter||64!==f.ts&&96!==f.ts&&128!==f.ts||128!==f.ks&&192!==f.ks&&0x100!==f.ks||2>f.iv.length||
4<f.iv.length)throw new sjcl.exception.invalid("json encrypt: invalid parameters");"string"===typeof a?(g=sjcl.misc.cachedPbkdf2(a,f),a=g.key.slice(0,f.ks/32),f.salt=g.salt):sjcl.ecc&&a instanceof sjcl.ecc.elGamal.publicKey&&(g=a.kem(),f.kemtag=g.tag,a=g.key.slice(0,f.ks/32));"string"===typeof b&&(b=sjcl.codec.utf8String.toBits(b));"string"===typeof c&&(f.adata=c=sjcl.codec.utf8String.toBits(c));g=new sjcl.cipher[f.cipher](a);e.g(d,f);d.key=a;f.ct="ccm"===f.mode&&sjcl.arrayBuffer&&sjcl.arrayBuffer.ccm&&
b instanceof ArrayBuffer?sjcl.arrayBuffer.ccm.encrypt(g,b,f.iv,c,f.ts):sjcl.mode[f.mode].encrypt(g,b,f.iv,c,f.ts);return f},encrypt:function(a,b,c,d){var e=sjcl.json,f=e.ja.apply(e,arguments);return e.encode(f)},ia:function(a,b,c,d){c=c||{};d=d||{};var e=sjcl.json;b=e.g(e.g(e.g({},e.defaults),b),c,!0);var f,g;f=b.adata;"string"===typeof b.salt&&(b.salt=sjcl.codec.base64.toBits(b.salt));"string"===typeof b.iv&&(b.iv=sjcl.codec.base64.toBits(b.iv));if(!sjcl.mode[b.mode]||!sjcl.cipher[b.cipher]||"string"===
typeof a&&100>=b.iter||64!==b.ts&&96!==b.ts&&128!==b.ts||128!==b.ks&&192!==b.ks&&0x100!==b.ks||!b.iv||2>b.iv.length||4<b.iv.length)throw new sjcl.exception.invalid("json decrypt: invalid parameters");"string"===typeof a?(g=sjcl.misc.cachedPbkdf2(a,b),a=g.key.slice(0,b.ks/32),b.salt=g.salt):sjcl.ecc&&a instanceof sjcl.ecc.elGamal.secretKey&&(a=a.unkem(sjcl.codec.base64.toBits(b.kemtag)).slice(0,b.ks/32));"string"===typeof f&&(f=sjcl.codec.utf8String.toBits(f));g=new sjcl.cipher[b.cipher](a);f="ccm"===
b.mode&&sjcl.arrayBuffer&&sjcl.arrayBuffer.ccm&&b.ct instanceof ArrayBuffer?sjcl.arrayBuffer.ccm.decrypt(g,b.ct,b.iv,b.tag,f,b.ts):sjcl.mode[b.mode].decrypt(g,b.ct,b.iv,f,b.ts);e.g(d,b);d.key=a;return 1===c.raw?f:sjcl.codec.utf8String.fromBits(f)},decrypt:function(a,b,c,d){var e=sjcl.json;return e.ia(a,e.decode(b),c,d)},encode:function(a){var b,c="{",d="";for(b in a)if(a.hasOwnProperty(b)){if(!b.match(/^[a-z0-9]+$/i))throw new sjcl.exception.invalid("json encode: invalid property name");c+=d+'"'+
b+'":';d=",";switch(typeof a[b]){case "number":case "boolean":c+=a[b];break;case "string":c+='"'+escape(a[b])+'"';break;case "object":c+='"'+sjcl.codec.base64.fromBits(a[b],0)+'"';break;default:throw new sjcl.exception.bug("json encode: unsupported type");}}return c+"}"},decode:function(a){a=a.replace(/\s/g,"");if(!a.match(/^\{.*\}$/))throw new sjcl.exception.invalid("json decode: this isn't json!");a=a.replace(/^\{|\}$/g,"").split(/,/);var b={},c,d;for(c=0;c<a.length;c++){if(!(d=a[c].match(/^\s*(?:(["']?)([a-z][a-z0-9]*)\1)\s*:\s*(?:(-?\d+)|"([a-z0-9+\/%*_.@=\-]*)"|(true|false))$/i)))throw new sjcl.exception.invalid("json decode: this isn't json!");
null!=d[3]?b[d[2]]=parseInt(d[3],10):null!=d[4]?b[d[2]]=d[2].match(/^(ct|adata|salt|iv)$/)?sjcl.codec.base64.toBits(d[4]):unescape(d[4]):null!=d[5]&&(b[d[2]]="true"===d[5])}return b},g:function(a,b,c){void 0===a&&(a={});if(void 0===b)return a;for(var d in b)if(b.hasOwnProperty(d)){if(c&&void 0!==a[d]&&a[d]!==b[d])throw new sjcl.exception.invalid("required parameter overridden");a[d]=b[d]}return a},sa:function(a,b){var c={},d;for(d in a)a.hasOwnProperty(d)&&a[d]!==b[d]&&(c[d]=a[d]);return c},ra:function(a,
b){var c={},d;for(d=0;d<b.length;d++)void 0!==a[b[d]]&&(c[b[d]]=a[b[d]]);return c}};sjcl.encrypt=sjcl.json.encrypt;sjcl.decrypt=sjcl.json.decrypt;sjcl.misc.pa={};sjcl.misc.cachedPbkdf2=function(a,b){var c=sjcl.misc.pa,d;b=b||{};d=b.iter||1E3;c=c[a]=c[a]||{};d=c[d]=c[d]||{firstSalt:b.salt&&b.salt.length?b.salt.slice(0):sjcl.random.randomWords(2,0)};c=void 0===b.salt?d.firstSalt:b.salt;d[c]=d[c]||sjcl.misc.pbkdf2(a,c,b.iter);return{key:d[c].slice(0),salt:c.slice(0)}};
"undefined"!==typeof module&&module.exports&&(module.exports=sjcl);"function"===typeof define&&define([],function(){return sjcl});


================================================
FILE: boot/tiddlywiki.files
================================================
{
	"tiddlers": [
		{
			"file": "sjcl.js",
			"fields": {
				"title": "$:/library/sjcl.js",
				"type": "application/javascript",
				"library": "yes"
			},
			"prefix": "(function(define) {\n",
			"suffix": "\n})(function (_,defined){window.sjcl = defined()})\n"
		},
		{
			"file": "boot.js",
			"fields": {
				"title": "$:/boot/boot.js",
				"type": "application/javascript"
			}
		},
		{
			"file": "bootprefix.js",
			"fields": {
				"title": "$:/boot/bootprefix.js",
				"type": "application/javascript"
			}
		},
		{
			"file": "boot.css.tid",
			"isTiddlerFile": true
		}
	]
}

================================================
FILE: code-of-conduct.md
================================================
<p>This community exists because TiddlyWiki is more useful when people share and work together.</p><p>This community is a beautiful but fragile thing: a collection of diverse people from all over the planet, united in their interest in the project, and their commitment to helping one another achieve and learn more.</p><p>We try to make the community as broad and welcoming as possible by remembering some basic principles of culture and behaviour.</p><p>These principles guide technical and non-technical decisions, and help contributors and leaders support our project and community.</p><ul><li>We are optimistic and hopeful</li><li>We aim to foster a learning environment that is collaborative and safe for everyone</li><li>We recognise that the motivation for sharing and helping is usually for appreciation, and not financial gain, and so we take care to acknowledge and <strong>thank the people who enrich the community by sharing what they have created</strong></li><li>While we are united in our interest in TiddlyWiki, we differ in every other conceivable way. We choose to focus on what unites us, and <strong>avoid unnecessarily mixing contentious topics like religion and politics</strong></li><li>We treat each other with respect, and start with the assumption that <strong>others are acting in good faith</strong></li><li>We avoid discriminatory language</li><li>We try to use our strength as a community to help others</li><li>We avoid responding when angry or upset because we try to de-escalate conflict</li><li>We make sure we critique ideas, not people</li><li>When we disagree with others we do so graciously, and treat others with dignity and respoect</li><li>We do not tolerate intolerance towards others</li><li>We seek first to understand others, and then to be understood</li><li>We have fun</li></ul><p>Our discussions are in English. It is not the first language of many people in the community, nor do we all share the same cultural background and reference points. So we take care to use language that is clear and unambigous, and avoid cultural references or jokes that will not be widely understood.</p><p>It is not acceptable to make jokes or other comments that discriminate by race, gender, sexuality, or other protected characteristic.</p><p>As an inclusive community, we are committed to making sure that TiddlyWiki is an accessible tool that understands the needs of people with disabilities.</p>

================================================
FILE: community/docs/Community Cards Caveats.tid
================================================
title: Community Cards Caveats
created: 20250909171928024
modified: 20250909171928024

''Please note that [[Community Cards]] are a new initiative started in September 2025. There is further work required to complete the team and people information.''


================================================
FILE: community/docs/Community Cards.tid
================================================
title: Community Cards
tags: Community
modified: 20250909171928024
created: 20250909171928024

The purpose of Community Cards is to allow project plans and other community activities to be linked to the people who are involved in them. They also allow people to share their interests and activities in the TiddlyWiki community, and to help people in the TiddlyWiki community get to know each other better.

{{Community Cards Caveats}}

* [[Submitting a Community Card]]
* [[Displaying Community Cards]]


================================================
FILE: community/docs/Displaying Community Cards.tid
================================================
title: Displaying Community Cards
tags: [[Community Cards]]
modified: 20250909171928024
created: 20250909171928024

!! Cards for people

This is an inline card for <<community-card-pill-person title:"@Jermolene">> and <<community-card-pill-person title:"@ericshulman">> which can be used in the middle of a sentence.

This is a stack of inline cards:

<<community-card-pill-stack-person>>

Here is a full format card:

<<community-card-person title:"@Jermolene">>

This is how the card looks when there is no such person:

<<community-card-person title:"@MissingPerson">>

!! Cards for teams

This is a card for a project team:

<<community-card-team title:"Project Team">>

================================================
FILE: community/docs/Submitting a Community Card.tid
================================================
title: Submitting a Community Card
tags: [[Community Cards]]
modified: 20250909171928024
created: 20250909171928024

Anyone associated with the TiddlyWiki community can submit a Community Card. The submission process currently involves making a GitHub pull request but we intend to provide a more user-friendly submission process in the future.

Pull requests to add or update a community card should be made against the `tiddlywiki-com` branch of the [[TiddlyWiki repository|https://github.com/TiddlyWiki/TiddlyWiki5]] in the directory `community/people`.

The card should be a TiddlyWiki tiddler with the following fields:

|!Field |!Required|!Description |
|`title`|Yes |The username of the person represented by the card, starting with `@` (e.g. `@Jermolene`). This is the title of the card and should be unique |
|`tags`|Yes |The tags for the card, including `Community/Person` |
|`fullname`|Yes |The full name of the person or group represented by the card |
|`avatar`|Yes |The base64 representation of the 32x32 avatar image for the person represented by the card |
|`first-sighting`|No |The date of the first sighting in the community of the person represented by the card. This should be in ISO 8601 format (YYYY-MM-DD) |
|`talk.tiddlywiki.org`|Yes |The username of the person or group on the TiddlyWiki Talk forum |
|`github`|No |The username of the person or group on GitHub |
|`linkedin`|No |The URL of the LinkedIn profile for the person or group represented by the card |
|`flickr`|No |The URL of the Flickr profile for the person or group represented by the card |
|`homepage`|No |The URL of the homepage for the person or group represented by the card |
|`email`|No |The email address of the person or group represented by the card |
|`text`|Yes |The text of the card. This should include a brief description of the person or group represented by the card, and any other relevant information |

! Rules for Community Cards

Community cards must observe the following rules. It is intended to enforce them with an automated script, but for the moment they will be manually checked.

* `title` must be unique and start with `@`
* `tags` must include `Community/Person`
* `fullname` must be provided
* `avatar` must be a base64 representation of a 32x32 image, with a limit of 1KB.  [[Squoosh|https://squoosh.app/]] is recommended for resizing and compressing images
* `first-sighting` should be in ISO 8601 format (YYYY-MM-DD)
* `talk.tiddlywiki.org` must be provided
* `text` total size must not exceed 2KB


================================================
FILE: community/people/Arlen22.tid
================================================
title: @Arlen22
tags: Community/Person
fullname: Arlen Beiler
first-sighting: 2011-06-20
talk.tiddlywiki.org: arlen22
github: Arlen22
homepage: arlen22.github.io
avatar: /9j/4AAQSkZJRgABAQAAAQABAAD/2wEEEAAVABUAFQAVABYAFQAYABoAGgAYACEAIwAfACMAIQAwAC0AKQApAC0AMABJADQAOAA0ADgANABJAG8ARQBRAEUARQBRAEUAbwBiAHcAYQBaAGEAdwBiALEAiwB7AHsAiwCxAMwArACiAKwAzAD4AN0A3QD4ATgBKAE4AZcBlwIkEQAVABUAFQAVABYAFQAYABoAGgAYACEAIwAfACMAIQAwAC0AKQApAC0AMABJADQAOAA0ADgANABJAG8ARQBRAEUARQBRAEUAbwBiAHcAYQBaAGEAdwBiALEAiwB7AHsAiwCxAMwArACiAKwAzAD4AN0A3QD4ATgBKAE4AZcBlwIk/8IAEQgAQABAAwEiAAIRAQMRAf/EADAAAAIDAQEAAAAAAAAAAAAAAAMFAQQGAgABAQEBAQEAAAAAAAAAAAAAAAIDAQAE/9oADAMBAAIQAxAAAADIRMd3XctQlXtCTTmB6RFvANDouy4DYwEEar6YVM7ocz57mcqnZys+V2azZU4XZSoiZqhQt9TKOlnO+GOl1HyoUPXLn//EACYQAAICAQQCAgEFAAAAAAAAAAECABEDBBIhMUFRECITFCMycZH/2gAIAQEAAT8AI4Bv4ryAeBAnANHuNidWogEwYHNRsdfA8iruVMOIu6iYtK4c714vgTDpXyOfrQHdifoArEXxM2mR0NeOhUzI+LJzYbuHszCm5hYseZh0gXYWFIai4cWJgFJuFKYvtr2sJRuB9fUzgDHlGMHia2757uYsYc0TNHpsSmzzMONjl9iu74iK6PbWT7gv/RMiZDk+qcA3NXkAVl3gE+ADU1PDVdiaDCGJZjQEyowKANS1ZMwK+HJ+3a0KUDqYnYINxJ3eItDk81M2cZD+NVIrmanU/wAl2gCZiGNiaFziJ3LYIHcXMrLvDABe17EN1vCgqR2TNPnGTBSBbDTeV3c2amdlxPuD2C3H9epqmV628xqsUYmdiuwkVVTSZ0Q/dxwYdScrgBRsqONi2KQX7mo1G4WCK20B6j6p/VpcfMXPVQ9mbhx9eLgZrFGDUZB1DqMrCma4xN8mDcR5qK5Rgw7Hx//EABwRAQEBAQACAwAAAAAAAAAAAAECABEDIhIxQf/aAAgBAgEBPwDVQYpfzd66qDeOSn7yEmH23ffDAi66mug6DM9N8HTAY3//xAAcEQEBAQEAAgMAAAAAAAAAAAABAAIREBIiQVH/2gAIAQMBAT8AglC+rJbdCT1vVC33l83tj2OPLS+AJ3+Tf//Z

I make random software.

================================================
FILE: community/people/ChristianByron.tid
================================================
title: @Christian_Byron
tags: Community/Person
fullname: Christian Byron
talk.tiddlywiki.org: Christian_Byron
github: ceebeetree
linkedin: www.linkedin.com/in/christian-byron-b84a594/
avatar: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAgICAgJCAkKCgkNDgwODRMREBARExwUFhQWFBwrGx8bGx8bKyYuJSMlLiZENS8vNUROQj5CTl9VVV93cXecnNEBCAgICAkICQoKCQ0ODA4NExEQEBETHBQWFBYUHCsbHxsbHxsrJi4lIyUuJkQ1Ly81RE5CPkJOX1VVX3dxd5yc0f/CABEIACAAIAMBIgACEQEDEQH/xAAuAAEBAAMBAAAAAAAAAAAAAAAHBgEDBQQBAAMBAAAAAAAAAAAAAAAAAAABAwX/2gAMAwEAAhADEAAAADv2xtJlY03sqePW3ARS1RSydIhcH//EACcQAAICAgIBAgYDAAAAAAAAAAECAwQFEQASMRMhBhBBk8HRIzJx/9oACAEBAAE/AMFQxs+NExqJLMCwYE+SOT4bF3qr+hAIpRsDQ6lWH0Yco4S/eVniRVQHXZzrZ5dwGQpQtNII2RfJVvHMRl5cbKxC94n/ALp+RxfiKpNcgMMUqPIwjcnWip/I5XtUowaL3Ujir/xt79Glb6/4OZ7MV5oEpUzuIa7MPB14A5jpoYLsEsydo1bbLre+CWEEEYab7Uf74ZYSSThpvtR/vmRmhnuzywp1jZtquta+VPM49qlcy24lf017At7g8uZnHrUsGK3Ez+m3UBvcnXy//8QAHhEAAgEFAAMAAAAAAAAAAAAAAQIDAAQRIkEyUaH/2gAIAQIBAT8AmiuVlZkLEeQOflJPcvMAF0z65V+h0YIW52rBDuxUrztf/8QAIxEBAAEDAwMFAAAAAAAAAAAAAgEAAxEEBSMSQcEiMVJxof/aAAgBAwEBPwC/Z1ZvNBOYz1Gc/lDUat3ySPRM/H2P3W4hcbIldpxnxW3BcjQk9oznzX//2Q==

Hello ~TiddlyWikiers - I have been a long time fan, recent contributor to the TW community. 
Recently I have volunteered to run the [[TiddlyWiki Newsletter|https://tiddlywiki.substack.com/]] to spread the great news about TW.

I have been in the IT industry for about thirty years, mostly as a consultant and technical arcitect.
More recently I went back to study a masters in IT focussing on AI and data science.
Now my partner and I have started our own business ([[Sphere Innovations|https://sphere-innovations.com.au]])  - in consulting and building web applications for small to medium size businesses here in Australia. 


================================================
FILE: community/people/EricShulman.tid
================================================
title: @ericshulman
tags: Community/Person Community/Team/Contributors
fullname: Eric Shulman
first-sighting: 2005-06-21
talk.tiddlywiki.org: ericshulman
github: ericshulman
homepage: tiddlytools.com
email: elsdesign@gmail.com
avatar: iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAD/ElEQVR42o2Tf2iUdRzH37e7rOa222233bab3mqKU9QihCAi+isKwX/sh5UQhGYQhNAvQowRUoghQWDOIJtQmOY0M92ZmVGm0WbTyZI1Nnft99S1jc3dPT9efffg/bHdLn19Hp4HPjzv9/fz+fL5aE58PwUkjzzFVC4P/G/k6E445Pc+uceeaqnv7Ogd6Rq68PPhrc+vkiERWOLT/+Ib8uQHNiXax3BIM0mC+CEtl2G7X9mIeCV+9Ejrr2MAtgkH14SNBRZXrYYPNF86nsXCkx/8dATAsp0JhknQTYJrTHg5SNI0qMekb+aw8Hr74WCKpNNu/0Kck5ymkRMcZz/1Jv5g2CUFbZYelrbMvlBMonHvJK3JuPsdTQxwExc8XG7SxF7OcxGScP6wRGCG/Asjf39VPydTzbQyRBrXBKToBCP/nQQ9VpIDO6SumU3EjUFLzX766HMG0mIvoJnXEbU47GGXc4TGBs3zWp5Jh7F47omdf56hy9lLIz3gyYfZSQMJztFEH3KEDg+bf1dkzkO9Savks7H9NLqnuEw3MEU314nTwABj/MV2R6y8JL+0wKdM8MtX23aFy04dF5mg08QI6XYsemmzRfiMDP5Mg1emK4ienZxi0p0gBfRwhSHAxgXGGeS6tYUdu6TPA3Ofr3Mfj9Bv4zHMDaCTMcBlnG4cJqx64sagN9Ngw3RJoa5R+MftI8k1Wm7NcSsH6KKPFGBbG1n1srQ+06DWpJ59cRhsGKGbo0wBFpDgNGcBcHGsl9BuSZmjfCRHWnv0BtgOcJVWwAZG2cw+3uErAKacZ6hq32PkGWuNSaxsHgIHxqjje5I4/Ms2dCt+BHpcUT4ai0j5sw22TCea2sCBbz3BOjaRFj+JeAE46IoHxlUmlfrmWuZT+8Ae935fjljDe3zpLdEJxGriLHdFtL8mKC2cbbAgIOXVBemwBhHibZq4xN/0YgPrESsRsiMs+C1zEwwFxqBqs4hY2yhlKeIUab5GLEM8SLlVRslu77jZhEwL/ofKKZ4uknxiiLO0cYFGFpJPMTGiRO0iQqtNrX7NxueTcahqv4/FTpgwFYinOcoxtiLKWEwF+U6Mqv5FuVlWSQHzvBWmKmUqIEg1YiMfIu6lhjKCRK0YkXelwoDmIjztWrCot5KQs5R5zKccIVZQwl3cTaVdQVGnfOkrzFbDuvuJWTVuBcXcQ5iFlFFAmBynlBKKH/f6z06pX6r6pJoSQlaeW2gsighi3na1E6HwNSkUUHbS45FXG7ajhIi68+1cO98qtqqJEHzTW6LbEfUstER1ef2llBKhiGqKW7VGUk6lT7dnmS/gnZMf1KPaoI16VWsrA1KhX3dObo5m9VqQpff/AFTcI4hMzFV+AAAAAElFTkSuQmCC

\define wiki(text,topic) [[$text$|https://en.wikipedia.org/wiki/$topic$]]

''Hello! My name is Eric Shulman''. I am the author of ''[[www.TiddlyTools.com|http://www.TiddlyTools.com]] (Small Tools for Big Ideas! &trade;)'', a popular collection of original plugins, macros, widgets, templates and stylesheets for TiddlyWiki that I have created and shared with the TiddlyWiki community.

<<<
Think of TiddlyTools as a ''virtual hardware store and "demonstration showroom"'', offering tools, parts and techniques that provide a rich variety of new functionality and feature enhancements to help you ''turn a general-purpose TiddlyWiki "info-house" into a comfortable, custom-built "info-home"''.

The TiddlyWiki core system provides the basic structure and utilities: the foundation, framing, walls, roof, windows/doors, plumbing, heating, and electrical systems. Then, TiddlyTools helps you with all the "finish work": the appliances, fixtures, lighting, cabinets, furniture, paint, wallpaper, carpeting, etc. ''to best suit your specific needs and personal style''.
<<<

Since the early days of TiddlyWiki (April 2005), I have worked closely with its inventor, [[Jeremy Ruston|https://jermolene.com/]], to help develop and improve TiddlyWiki's core functions. I am also a key contributor and administrator of the online TiddlyWiki [[Discourse|https://talk.TiddlyWiki.org]] and [[GoogleGroups|https://groups.google.com/forum/#!forum/tiddlywiki]] discussion forums, providing ongoing assistance to the worldwide TiddlyWiki community. I have written over 15,000 detailed responses to individual questions posted online.  For several years I was also the lead developer and maintainer of the [[TiddlyWiki Classic|https://classic.tiddlywiki.com/]] codebase.

I was born and raised in suburban Long Island, NY, and attended [[Carnegie Mellon University (CMU)|https://www.cmu.edu/]] in Pittsburgh, PA, where I studied ''Computer Science, Cognitive Psychology, Sociology, Human Factors Design, and Artificial Intelligence''. As an undergraduate at CMU, I was privileged to work with some of the major luminaries in early software research and design, including <<wiki "Herbert Simon" "Herbert_A._Simon">>, <<wiki "Allen Newell" "Allen_Newell">>, <<wiki "James Gosling" "James_Gosling">>, and <<wiki "Raj Reddy" "Raj_Reddy">>. I was also employed in several Computer Science Department research projects, including the development of speech recognition technologies, graphical interface systems, and interactive applications for instruction in physics, art and music. I received a ''Bachelor of Science in "Interactive Systems Design"'' from CMU in 1985.

During my early post-graduate years, I worked for several notable software development companies, including 
<<wiki "Honeywell Information Systems" "Honeywell#Honeywell_Information_Systems">> and <<wiki "Lotus Software" "Lotus_Software">>. I was an integral member of the <<wiki "1-2-3 spreadsheet" 
"Lotus_1-2-3">> development team where I helped create the first GUI-based application interfaces for Microsoft Windows and IBM OS/2.

Since 1998, I have been an ''independent design consultant'', living and working in Silicon Valley, where I apply more than 40 years of experience to provide ''analysis, design and software development services'' for commercial companies and not-for-profit organizations, with emphasis on ''information architecture'' and ''interaction/visual design standards'' to improve ease-of-use for new and existing software products and online environments.


================================================
FILE: community/people/Jermolene.tid
================================================
title: @Jermolene
tags: Community/Person
fullname: Jeremy Ruston
first-sighting: 2004-09-20
talk.tiddlywiki.org: jeremyruston
github: Jermolene
linkedin: www.linkedin.com/in/jermy
flickr: www.flickr.com/photos/jermy/
bluesky: https://bsky.app/profile/jermolene.bsky.social
homepage: jermolene.com
email: jeremy@jermolene.com
avatar: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAgICAgJCAkKCgkNDgwODRMREBARExwUFhQWFBwrGx8bGx8bKyYuJSMlLiZENS8vNUROQj5CTl9VVV93cXecnNEBCAgICAkICQoKCQ0ODA4NExEQEBETHBQWFBYUHCsbHxsbHxsrJi4lIyUuJkQ1Ly81RE5CPkJOX1VVX3dxd5yc0f/CABEIACAAIAMBIgACEQEDEQH/xAAtAAEBAAMAAAAAAAAAAAAAAAAHBgIEBQEBAQEBAAAAAAAAAAAAAAAAAgQBBf/aAAwDAQACEAMQAAAANF4uTuPRhD2nBLnUiJvKM0DtMKy//8QAKxAAAgIBAwMDAQkAAAAAAAAAAQIDBBEABRITITEiMkFxFEJRUmFicoGR/9oACAEBAAE/AInTA6gUGP4ZOQbW1bPsmyUq1q+gmvFPUzZPDkPamtwqU75ks04JakroVcg5RwRjg66NUx25KbzqJYyMngfqSuq0M3NZYIebJIvZozIvI/iNPcp/aalSdJXsS4VcKeIzlvU3jVTcYLNiaGISrjkhWQYDfQ63pYAzCDBsOiu7Dsx4EHH6r2w2ttimjd2IsNErhhJHKI04/uzqxuCxpBYVVWKSHqwMyMSQ33SB7dUJFmlkMYRgnqZgCMf7rf8AeEt3A9YOhjXAb2k8u7dtT1RZeOtXmYxiOPj4ZWY/lb51skqUNnNW/wBNzC7IpB6gQeeB/jq/fqGOaLbowuYn5MAQOw8LjW5Vmeo0qIsqYLLKjHIZmwv9fB1//8QAHxEAAQMEAwEAAAAAAAAAAAAAEQABAgMSIWExMkFR/9oACAECAQE/AD9iTy2lJmHUB8BVKM4SNSOj46a29saX/8QAHREAAgICAwEAAAAAAAAAAAAAAQIAAwQRITGBkf/aAAgBAwEBPwDHpFpJZtamVSiBWT2Yt7hmCDsb+TKtsKqpGg3M/9k=

I'm the original inventor of TiddlyWiki. You can hire me through my consultancy company [[Intertwingled Innovations|https://intertwingledinnovations.com]] or contact me directly.

Further information:

* A recording of the [[keynote I gave at QCon London in April 2024|https://www.infoq.com/presentations/bbc-micro/]], and the [[discussion on talk.tiddlywiki.org|https://talk.tiddlywiki.org/t/recording-of-jeremys-keynote-at-qcon-london-april-2024/10505]]. The talk mixes some nostalgia about my teenage activities with the BBC Micro with thoughts on the development of the software industry and insights gained from working with TiddlyWiki
* An [[interview with me in The Inquirer|https://web.archive.org/web/20111103225832/http://www.theinquirer.net/inquirer/feature/2105529/bt-software-engineer-tells-telco-source]] by Wendy Grossman
* A [[hilarious interview with me|https://www.youtube.com/watch?v=auyIhw8MTmQ]] from British television in 1983
* Here's a video of a presentation I did in 2007 called [["How to Start an Open Source Project"|http://vimeo.com/856110]].


================================================
FILE: community/people/LinOnetwo.tid
================================================
avatar: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAgICAgJCAkKCgkNDgwODRMREBARExwUFhQWFBwrGx8bGx8bKyYuJSMlLiZENS8vNUROQj5CTl9VVV93cXecnNEBCAgICAkICQoKCQ0ODA4NExEQEBETHBQWFBYUHCsbHxsbHxsrJi4lIyUuJkQ1Ly81RE5CPkJOX1VVX3dxd5yc0f/CABEIACAAIAMBIgACEQEDEQH/xAAuAAEAAwEBAAAAAAAAAAAAAAAGAwQHAgUBAAMBAAAAAAAAAAAAAAAAAAACAwT/2gAMAwEAAhADEAAAAOfCWAMdKKetM4wOvY5OcvZnrYf/xAApEAACAQQBBAECBwAAAAAAAAABAgMABAURQQYSIVETFCIxMkJicYKh/9oACAEBAAE/AEtysaStr7mPaPeuazWdMM4gEnfPryW8hBUuZvou2RXRxyreBWPmgyNqs8f8MOQalhdY7Vz+R4/s/qfP+1edNi/zl7HDcFbmS3E8CcMR4INP0PkBhklIm+sZNtFtQiV0nj57Owl+dSrSTFgD6/CtH4VV9lU3oAbPngAVY389lc5URuUZkMxhnR4pvW0VwDqsP1FNmLWYqCpikMbngmliJNY+aKzyTxXS6lRAyg/u5rq+5x2RsuyTa3MQMlvKniRGThTUd1JYXUdzAwDvqVxGdRXMbfrVOD7HBrG3mNEsU8z98TRhl9eRzX//xAAcEQACAgIDAAAAAAAAAAAAAAABAgARAzESIVH/2gAIAQIBAT8ARuXZPsul3Eoje5lBQWBP/8QAGREAAwEBAQAAAAAAAAAAAAAAAAECEiER/9oACAEDAQE/AM98Lk7LJe20z//Z
created: 20251110102157310
first-sighting: 2019-03-01
fullname: Lin Onetwo
github: linonetwo
homepage: https://wiki.onetwo.website/
modified: 20251111184556193
tags: Community/Person Community/Team/Contributors
talk.tiddlywiki.org: linonetwo
title: @linonetwo
type: text/vnd.tiddlywiki

Since 2014, when I started college, I've been on a quest for a lifelong PKM tool. I cherish my life and all my experiences, and I don’t want to forget any of them. When I’m deeply focused on a task, it’s easy to lose sight of other important parts of my life—so I needed a system to help me stay balanced.

Early on, I tried TiddlyWiki several times, but I was initially put off by its save mechanism and markup editing. That changed when I discovered an auto-backup script, which gave me the confidence to fully commit. Over time, I improved the script and eventually transitioned to using TidGi-Desktop and TidGi-Mobile.

Today, my TiddlyWiki holds all my game design ideas and progress logs—it has truly become my second brain. With the help of LLM-powered programming tools, I’ve enhanced it with numerous plugins, allowing me to manage my mind in a more programmable and structured way. As a game developer, TiddlyWiki isn't the core of my professional work; But I've invested so much time because it's fundamentally about upgrading my mind.

Most of my notes are open by default and shared publicly on my homepage as a digital garden.


================================================
FILE: community/people/MotovunJack.tid
================================================
title: @MotovunJack
tags: Community/Person Community/Robot
fullname: Motovun Jack
first-sighting: 2012-01-12
github: MotovunJack
homepage: tiddlywiki.com
avatar: /9j/4AAQSkZJRgABAQAAAQABAAD/2wEEEAAYABgAGAAYABkAGAAaAB0AHQAaACUAKAAjACgAJQA2ADIALgAuADIANgBSADsAPwA7AD8AOwBSAH0ATgBbAE4ATgBbAE4AfQBuAIYAbQBlAG0AhgBuAMYAnACKAIoAnADGAOUAwQC2AMEA5QEWAPgA+AEWAV4BTAFeAckByQJmEQAYABgAGAAYABkAGAAaAB0AHQAaACUAKAAjACgAJQA2ADIALgAuADIANgBSADsAPwA7AD8AOwBSAH0ATgBbAE4ATgBbAE4AfQBuAIYAbQBlAG0AhgBuAMYAnACKAIoAnADGAOUAwQC2AMEA5QEWAPgA+AEWAV4BTAFeAckByQJm/8IAEQgAQABAAwEiAAIRAQMRAf/EADAAAAIDAQEAAAAAAAAAAAAAAAMEAQIFBgABAQEBAQEAAAAAAAAAAAAAAAIDAQAE/9oADAMBAAIQAxAAAADZCfn5vZJz+rnODGtpbpm6O8xzG9lCiszXtikQhtkTBputBxURJuVVYlEdBaQ284mPDj6GmkNUblMxRmi7dKw//8QAKxAAAgIBAgUCBgMBAAAAAAAAAQIAAxESIQQTIkFRFGEjMUJxgaEyNGLR/9oACAEBAAE/AMmX3ilMkjPaV3ragZDtNRmoxpvA2sEqQcHEwJxlwa98nYbCU8TymDfSTvPVKMbZHkQcTU4yDH46tTiE8RxjLXnQp7Dx5MACgKuyqMAS1xXU7kjYTiEbWp3y0IucYbGx6e05hDAqMH/k59o3DfxAE5hss1MNzODdVraxu50ieppH1Tivi8O6eYQ1j4B6guAftChDMNjBqycHcCYJqdj2s3idRBHfpi/1Kie7PDo95w/EMxYM22n9yy5AzBc/iLe7dIqx7kyy2ypyOWoYTofhCyDAZtx4MOmpK9sncyx1NdSq2kBBt3EKf6mgIzDUPIiByuqk7faMLbOyEjuuxEAyo56AgeTA3KL1AYRm1CcvmkgAs2wHjEvPxGIMJPmHUQCQNothr32A0ggeYluplcAK2PlLbTytZUkdwI7V3lAQMgbAfP8AMoCV1AKMOR+pdsc5yD595mMmNIGD4h0vsfupHyBlTKW9znMd+TQnljPWqHYIqhwD1zKsqtjBzCAVAyBicnqG6jbOe0//xAAbEQEBAAMBAQEAAAAAAAAAAAABAAIRIRASQf/aAAgBAgEBPwBYbZDuXvnLE5OrkWJzxI4g33ift//EABsRAAMBAQADAAAAAAAAAAAAAAABEQIhEBJB/9oACAEDAQE/AMqjzHwjGoZXPHTb6Zp1/TRp1khYjW01xHqz/9k=

Motovun Jack is a robot that helps maintain the TiddlyWiki project infrastructure. It is not a person, but rather a set of automated scripts and tool
Download .txt
Showing preview only (377K chars total). Download the full file or copy to clipboard to get everything.
gitextract_q58fy6tj/

├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── PULL_REQUEST_TEMPLATE/
│   │   └── pull_request_template.md
│   └── workflows/
│       ├── ci.yml
│       ├── cla-check.yml
│       ├── cla-signed.yml
│       ├── eslint.yml
│       ├── pr-check-build-size.yml
│       ├── pr-comment-build-size.yml
│       └── pr-validation.yml
├── .gitignore
├── .jshintignore
├── .npmignore
├── bin/
│   ├── build-site.sh
│   ├── build-tw-org.sh
│   ├── ci-pre-build.sh
│   ├── ci-push.sh
│   ├── ci-test.sh
│   ├── clean.sh
│   ├── get-plugin-library-version-number
│   ├── ginsu.cmd
│   ├── ginsu.sh
│   ├── lazy.cmd
│   ├── lazy.sh
│   ├── npm-publish.sh
│   ├── optimise-svgs.js
│   ├── quick-bld.sh
│   ├── readme-bld.sh
│   ├── readme.md
│   ├── serve.cmd
│   ├── serve.sh
│   ├── tankbld.cmd
│   ├── tankbld.sh
│   ├── test.cmd
│   ├── test.sh
│   ├── update-translation-from-html-file.sh
│   └── verbump.sh
├── boot/
│   ├── boot.css.tid
│   ├── boot.js
│   ├── bootprefix.js
│   ├── sjcl.js
│   └── tiddlywiki.files
├── code-of-conduct.md
├── community/
│   ├── docs/
│   │   ├── Community Cards Caveats.tid
│   │   ├── Community Cards.tid
│   │   ├── Displaying Community Cards.tid
│   │   └── Submitting a Community Card.tid
│   ├── people/
│   │   ├── Arlen22.tid
│   │   ├── ChristianByron.tid
│   │   ├── EricShulman.tid
│   │   ├── Jermolene.tid
│   │   ├── LinOnetwo.tid
│   │   ├── MotovunJack.tid
│   │   ├── PMario.tid
│   │   ├── SaqImtiaz.tid
│   │   └── kjharcombe.tid
│   ├── project/
│   │   ├── TiddlyWiki People.tid
│   │   ├── TiddlyWiki Project.tid
│   │   ├── Vacant Positions.tid
│   │   └── teams/
│   │       ├── Core Team.tid
│   │       ├── Developer Experience Team.tid
│   │       ├── Infrastructure Team.tid
│   │       ├── MultiWikiServer Team.tid
│   │       ├── Project Team.tid
│   │       ├── Quality Assurance Team.tid
│   │       ├── Succession Team.tid
│   │       ├── TiddlyWiki Newsletter Team.tid
│   │       └── tagCommunityTeam.tid
│   ├── readme.md
│   └── tools/
│       ├── cards/
│       │   ├── DefaultColourMappings.multids
│       │   ├── Procedures.tid
│       │   ├── Styles.tid
│       │   ├── ViewTemplateBodyCascade.tid
│       │   ├── ViewTemplateBodyTemplatePerson.tid
│       │   └── ViewTemplateBodyTemplateTeam.tid
│       └── icons/
│           ├── person.tid
│           ├── project-team.tid
│           └── team.tid
├── contributing.md
├── core/
│   ├── acknowledgements.tid
│   ├── copyright.tid
│   ├── icon.tid
│   ├── images/
│   │   ├── add-comment.tid
│   │   ├── advanced-search-button.tid
│   │   ├── auto-height.tid
│   │   ├── blank.tid
│   │   ├── bold.tid
│   │   ├── cancel-button.tid
│   │   ├── chevron-down.tid
│   │   ├── chevron-left.tid
│   │   ├── chevron-right.tid
│   │   ├── chevron-up.tid
│   │   ├── clone-button.tid
│   │   ├── close-all-button.tid
│   │   ├── close-button.tid
│   │   ├── close-others-button.tid
│   │   ├── copy-clipboard.tid
│   │   ├── delete-button.tid
│   │   ├── discord.tid
│   │   ├── done-button.tid
│   │   ├── down-arrow.tid
│   │   ├── download-button.tid
│   │   ├── edit-button.tid
│   │   ├── erase.tid
│   │   ├── excise.tid
│   │   ├── export-button.tid
│   │   ├── file.tid
│   │   ├── fixed-height.tid
│   │   ├── fold-all-button.tid
│   │   ├── fold-button.tid
│   │   ├── fold-others-button.tid
│   │   ├── folder.tid
│   │   ├── full-screen-button.tid
│   │   ├── github.tid
│   │   ├── gitter.tid
│   │   ├── globe.tid
│   │   ├── heading-1.tid
│   │   ├── heading-2.tid
│   │   ├── heading-3.tid
│   │   ├── heading-4.tid
│   │   ├── heading-5.tid
│   │   ├── heading-6.tid
│   │   ├── help.tid
│   │   ├── home-button.tid
│   │   ├── import-button.tid
│   │   ├── info-button.tid
│   │   ├── input-button.tid
│   │   ├── italic.tid
│   │   ├── language.tid
│   │   ├── layout-button.tid
│   │   ├── left-arrow.tid
│   │   ├── line-width.tid
│   │   ├── link.tid
│   │   ├── linkify.tid
│   │   ├── list-bullet.tid
│   │   ├── list-number.tid
│   │   ├── list.tid
│   │   ├── locked-padlock.tid
│   │   ├── mail.tid
│   │   ├── mastodon.tid
│   │   ├── menu-button.tid
│   │   ├── minus-button.tid
│   │   ├── mono-block.tid
│   │   ├── mono-line.tid
│   │   ├── network-activity.tid
│   │   ├── new-button.tid
│   │   ├── new-here-button.tid
│   │   ├── new-image-button.tid
│   │   ├── new-journal-button.tid
│   │   ├── opacity.tid
│   │   ├── open-window.tid
│   │   ├── options-button.tid
│   │   ├── paint.tid
│   │   ├── palette.tid
│   │   ├── permalink-button.tid
│   │   ├── permaview-button.tid
│   │   ├── picture.tid
│   │   ├── plugin-generic-language.tid
│   │   ├── plugin-generic-plugin.tid
│   │   ├── plugin-generic-theme.tid
│   │   ├── plus-button.tid
│   │   ├── preview-closed.tid
│   │   ├── preview-open.tid
│   │   ├── print-button.tid
│   │   ├── quote.tid
│   │   ├── refresh-button.tid
│   │   ├── right-arrow.tid
│   │   ├── rotate-left.tid
│   │   ├── save-button-dynamic.tid
│   │   ├── save-button.tid
│   │   ├── size.tid
│   │   ├── spiral.tid
│   │   ├── stamp.tid
│   │   ├── standard-layout.tid
│   │   ├── star-filled.tid
│   │   ├── storyview-classic.tid
│   │   ├── storyview-pop.tid
│   │   ├── storyview-zoomin.tid
│   │   ├── strikethrough.tid
│   │   ├── subscript.tid
│   │   ├── superscript.tid
│   │   ├── tag-button.tid
│   │   ├── theme-button.tid
│   │   ├── timestamp-off.tid
│   │   ├── timestamp-on.tid
│   │   ├── tip.tid
│   │   ├── transcludify.tid
│   │   ├── twitter.tid
│   │   ├── underline.tid
│   │   ├── unfold-all-button.tid
│   │   ├── unfold-button.tid
│   │   ├── unlocked-padlock.tid
│   │   ├── up-arrow.tid
│   │   ├── video.tid
│   │   └── warning.tid
│   ├── language/
│   │   ├── en-GB/
│   │   │   ├── Buttons.multids
│   │   │   ├── ControlPanel.multids
│   │   │   ├── Dates.multids
│   │   │   ├── Docs/
│   │   │   │   ├── ModuleTypes.multids
│   │   │   │   └── PaletteColours.multids
│   │   │   ├── Draft.multids
│   │   │   ├── EditTemplate.multids
│   │   │   ├── Exporters.multids
│   │   │   ├── Fields.multids
│   │   │   ├── Filters.multids
│   │   │   ├── GettingStarted.tid
│   │   │   ├── Help/
│   │   │   │   ├── build.tid
│   │   │   │   ├── clearpassword.tid
│   │   │   │   ├── commands.tid
│   │   │   │   ├── default.tid
│   │   │   │   ├── deletetiddlers.tid
│   │   │   │   ├── editions.tid
│   │   │   │   ├── fetch.tid
│   │   │   │   ├── help.tid
│   │   │   │   ├── import.tid
│   │   │   │   ├── init.tid
│   │   │   │   ├── listen.tid
│   │   │   │   ├── load.tid
│   │   │   │   ├── makelibrary.tid
│   │   │   │   ├── notfound.tid
│   │   │   │   ├── output.tid
│   │   │   │   ├── password.tid
│   │   │   │   ├── render.tid
│   │   │   │   ├── rendertiddler.tid
│   │   │   │   ├── rendertiddlers.tid
│   │   │   │   ├── save.tid
│   │   │   │   ├── savetiddler.tid
│   │   │   │   ├── savetiddlers.tid
│   │   │   │   ├── savewikifolder.tid
│   │   │   │   ├── server.tid
│   │   │   │   ├── setfield.tid
│   │   │   │   ├── unpackplugin.tid
│   │   │   │   ├── verbose.tid
│   │   │   │   └── version.tid
│   │   │   ├── Import.multids
│   │   │   ├── Misc.multids
│   │   │   ├── Modals/
│   │   │   │   └── Download.tid
│   │   │   ├── NewJournal.multids
│   │   │   ├── NewJournalTags.tid
│   │   │   ├── Notifications.multids
│   │   │   ├── Search.multids
│   │   │   ├── SideBar.multids
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── Snippets/
│   │   │   │   ├── FunctionDefinition.tid
│   │   │   │   ├── ListByTag.tid
│   │   │   │   ├── MacroDefinition.tid
│   │   │   │   ├── ProcedureDefinition.tid
│   │   │   │   ├── Table 4x3.tid
│   │   │   │   └── TableOfContents.tid
│   │   │   ├── ThemeTweaks.multids
│   │   │   ├── TiddlerInfo.multids
│   │   │   └── Types/
│   │   │       ├── application_javascript.tid
│   │   │       ├── application_json.tid
│   │   │       ├── application_x_tiddler_dictionary.tid
│   │   │       ├── image_gif.tid
│   │   │       ├── image_jpeg.tid
│   │   │       ├── image_png.tid
│   │   │       ├── image_svg_xml.tid
│   │   │       ├── text_css.tid
│   │   │       ├── text_html.tid
│   │   │       ├── text_plain.tid
│   │   │       ├── text_vnd.tiddlywiki.tid
│   │   │       └── text_vnd.tiddlywiki_multiple.tid
│   │   └── en-GB.tid
│   ├── modules/
│   │   ├── background-actions.js
│   │   ├── config.js
│   │   ├── deserializers.js
│   │   ├── editor/
│   │   │   ├── engines/
│   │   │   │   ├── framed.js
│   │   │   │   └── simple.js
│   │   │   ├── factory.js
│   │   │   └── operations/
│   │   │       ├── bitmap/
│   │   │       │   ├── clear.js
│   │   │       │   ├── resize.js
│   │   │       │   └── rotate-left.js
│   │   │       └── text/
│   │   │           ├── excise.js
│   │   │           ├── focus-editor.js
│   │   │           ├── insert-text.js
│   │   │           ├── make-link.js
│   │   │           ├── prefix-lines.js
│   │   │           ├── replace-all.js
│   │   │           ├── replace-selection.js
│   │   │           ├── save-selection.js
│   │   │           ├── wrap-lines.js
│   │   │           └── wrap-selection.js
│   │   ├── filter-tracker.js
│   │   ├── filterrunprefixes/
│   │   │   ├── all.js
│   │   │   ├── and.js
│   │   │   ├── cascade.js
│   │   │   ├── else.js
│   │   │   ├── except.js
│   │   │   ├── filter.js
│   │   │   ├── intersection.js
│   │   │   ├── let.js
│   │   │   ├── map.js
│   │   │   ├── or.js
│   │   │   ├── reduce.js
│   │   │   ├── sort.js
│   │   │   └── then.js
│   │   ├── filters/
│   │   │   ├── addprefix.js
│   │   │   ├── addsuffix.js
│   │   │   ├── after.js
│   │   │   ├── all/
│   │   │   │   ├── current.js
│   │   │   │   ├── missing.js
│   │   │   │   ├── orphans.js
│   │   │   │   ├── shadows.js
│   │   │   │   ├── tags.js
│   │   │   │   └── tiddlers.js
│   │   │   ├── all.js
│   │   │   ├── backlinks.js
│   │   │   ├── backtranscludes.js
│   │   │   ├── before.js
│   │   │   ├── commands.js
│   │   │   ├── compare.js
│   │   │   ├── contains.js
│   │   │   ├── count.js
│   │   │   ├── crypto.js
│   │   │   ├── days.js
│   │   │   ├── deserialize.js
│   │   │   ├── deserializers.js
│   │   │   ├── duplicateslugs.js
│   │   │   ├── each.js
│   │   │   ├── eachday.js
│   │   │   ├── editiondescription.js
│   │   │   ├── editions.js
│   │   │   ├── else.js
│   │   │   ├── encodings.js
│   │   │   ├── enlist.js
│   │   │   ├── field.js
│   │   │   ├── fields.js
│   │   │   ├── filter.js
│   │   │   ├── format/
│   │   │   │   ├── date.js
│   │   │   │   ├── json.js
│   │   │   │   ├── relativedate.js
│   │   │   │   ├── timestamp.js
│   │   │   │   └── titlelist.js
│   │   │   ├── format.js
│   │   │   ├── function.js
│   │   │   ├── get.js
│   │   │   ├── getindex.js
│   │   │   ├── getvariable.js
│   │   │   ├── has.js
│   │   │   ├── haschanged.js
│   │   │   ├── indexes.js
│   │   │   ├── insertafter.js
│   │   │   ├── insertbefore.js
│   │   │   ├── is/
│   │   │   │   ├── binary.js
│   │   │   │   ├── blank.js
│   │   │   │   ├── current.js
│   │   │   │   ├── draft.js
│   │   │   │   ├── image.js
│   │   │   │   ├── missing.js
│   │   │   │   ├── orphan.js
│   │   │   │   ├── shadow.js
│   │   │   │   ├── system.js
│   │   │   │   ├── tag.js
│   │   │   │   ├── tiddler.js
│   │   │   │   └── variable.js
│   │   │   ├── is.js
│   │   │   ├── json-ops.js
│   │   │   ├── limit.js
│   │   │   ├── links.js
│   │   │   ├── list.js
│   │   │   ├── listed.js
│   │   │   ├── listops.js
│   │   │   ├── lookup.js
│   │   │   ├── match.js
│   │   │   ├── math.js
│   │   │   ├── minlength.js
│   │   │   ├── moduleproperty.js
│   │   │   ├── modules.js
│   │   │   ├── moduletypes.js
│   │   │   ├── next.js
│   │   │   ├── plugintiddlers.js
│   │   │   ├── prefix.js
│   │   │   ├── previous.js
│   │   │   ├── range.js
│   │   │   ├── reduce.js
│   │   │   ├── regexp.js
│   │   │   ├── removeprefix.js
│   │   │   ├── removesuffix.js
│   │   │   ├── sameday.js
│   │   │   ├── search.js
│   │   │   ├── shadowsource.js
│   │   │   ├── slugify.js
│   │   │   ├── sort.js
│   │   │   ├── sortsub.js
│   │   │   ├── splitbefore.js
│   │   │   ├── storyviews.js
│   │   │   ├── strings.js
│   │   │   ├── subfilter.js
│   │   │   ├── substitute.js
│   │   │   ├── subtiddlerfields.js
│   │   │   ├── suffix.js
│   │   │   ├── tag.js
│   │   │   ├── tagging.js
│   │   │   ├── tags.js
│   │   │   ├── then.js
│   │   │   ├── title.js
│   │   │   ├── transcludes.js
│   │   │   ├── unknown.js
│   │   │   ├── untagged.js
│   │   │   ├── variables.js
│   │   │   ├── wikiparserrules.js
│   │   │   └── x-listops.js
│   │   ├── filters.js
│   │   ├── indexers/
│   │   │   ├── back-indexer.js
│   │   │   ├── field-indexer.js
│   │   │   └── tag-indexer.js
│   │   ├── info/
│   │   │   ├── dimensions.js
│   │   │   ├── mediaquerytracker.js
│   │   │   └── platform.js
│   │   ├── keyboard.js
│   │   ├── language.js
│   │   ├── macros/
│   │   │   ├── changecount.js
│   │   │   ├── contrastcolour.js
│   │   │   ├── csvtiddlers.js
│   │   │   ├── displayshortcuts.js
│   │   │   ├── jsontiddler.js
│   │   │   ├── jsontiddlers.js
│   │   │   ├── makedatauri.js
│   │   │   ├── now.js
│   │   │   ├── qualify.js
│   │   │   ├── resolvepath.js
│   │   │   ├── unusedtitle.js
│   │   │   └── version.js
│   │   ├── parsers/
│   │   │   ├── audioparser.js
│   │   │   ├── binaryparser.js
│   │   │   ├── csvparser.js
│   │   │   ├── htmlparser.js
│   │   │   ├── imageparser.js
│   │   │   ├── parseutils.js
│   │   │   ├── pdfparser.js
│   │   │   ├── textparser.js
│   │   │   ├── videoparser.js
│   │   │   └── wikiparser/
│   │   │       ├── rules/
│   │   │       │   ├── codeblock.js
│   │   │       │   ├── codeinline.js
│   │   │       │   ├── commentblock.js
│   │   │       │   ├── commentinline.js
│   │   │       │   ├── conditional.js
│   │   │       │   ├── dash.js
│   │   │       │   ├── emphasis/
│   │   │       │   │   ├── bold.js
│   │   │       │   │   ├── italic.js
│   │   │       │   │   ├── strikethrough.js
│   │   │       │   │   ├── subscript.js
│   │   │       │   │   ├── superscript.js
│   │   │       │   │   └── underscore.js
│   │   │       │   ├── entity.js
│   │   │       │   ├── extlink.js
│   │   │       │   ├── filteredtranscludeblock.js
│   │   │       │   ├── filteredtranscludeinline.js
│   │   │       │   ├── fnprocdef.js
│   │   │       │   ├── hardlinebreaks.js
│   │   │       │   ├── heading.js
│   │   │       │   ├── horizrule.js
│   │   │       │   ├── html.js
│   │   │       │   ├── image.js
│   │   │       │   ├── import.js
│   │   │       │   ├── list.js
│   │   │       │   ├── macrocallblock.js
│   │   │       │   ├── macrocallinline.js
│   │   │       │   ├── macrodef.js
│   │   │       │   ├── mvvdisplayinline.js
│   │   │       │   ├── parameters.js
│   │   │       │   ├── parsermode.js
│   │   │       │   ├── prettyextlink.js
│   │   │       │   ├── prettylink.js
│   │   │       │   ├── quoteblock.js
│   │   │       │   ├── rules.js
│   │   │       │   ├── styleblock.js
│   │   │       │   ├── styleinline.js
│   │   │       │   ├── syslink.js
│   │   │       │   ├── table.js
│   │   │       │   ├── transcludeblock.js
│   │   │       │   ├── transcludeinline.js
│   │   │       │   ├── typedblock.js
│   │   │       │   ├── whitespace.js
│   │   │       │   ├── wikilink.js
│   │   │       │   └── wikilinkprefix.js
│   │   │       ├── wikiparser.js
│   │   │       └── wikirulebase.js
│   │   ├── pluginswitcher.js
│   │   ├── saver-handler.js
│   │   ├── savers/
│   │   │   ├── andtidwiki.js
│   │   │   ├── custom.js
│   │   │   ├── download.js
│   │   │   ├── fsosaver.js
│   │   │   ├── gitea.js
│   │   │   ├── github.js
│   │   │   ├── gitlab.js
│   │   │   ├── manualdownload.js
│   │   │   ├── msdownload.js
│   │   │   ├── postmessage.js
│   │   │   ├── put.js
│   │   │   ├── tiddlyfox.js
│   │   │   ├── tiddlyie.js
│   │   │   ├── twedit.js
│   │   │   └── upload.js
│   │   ├── startup/
│   │   │   ├── browser-messaging.js
│   │   │   ├── eventbus.js
│   │   │   ├── favicon.js
│   │   │   ├── info.js
│   │   │   ├── load-modules.js
│   │   │   ├── password.js
│   │   │   ├── plugins.js
│   │   │   ├── render.js
│   │   │   ├── rootwidget.js
│   │   │   ├── startup.js
│   │   │   ├── story.js
│   │   │   └── windows.js
│   │   ├── story.js
│   │   ├── storyviews/
│   │   │   ├── classic.js
│   │   │   ├── pop.js
│   │   │   └── zoomin.js
│   │   ├── syncer.js
│   │   ├── tiddler.js
│   │   ├── upgraders/
│   │   │   ├── plugins.js
│   │   │   ├── system.js
│   │   │   └── themetweaks.js
│   │   ├── utils/
│   │   │   ├── base64.js
│   │   │   ├── crypto.js
│   │   │   ├── csv.js
│   │   │   ├── deprecated.js
│   │   │   ├── diff-match-patch/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── README.md
│   │   │   │   ├── diff_match_patch.js
│   │   │   │   ├── diff_match_patch_uncompressed.js
│   │   │   │   └── tiddlywiki.files
│   │   │   ├── dom/
│   │   │   │   ├── animations/
│   │   │   │   │   └── slide.js
│   │   │   │   ├── animator.js
│   │   │   │   ├── browser.js
│   │   │   │   ├── csscolorparser.js
│   │   │   │   ├── csscolorparser.js.meta
│   │   │   │   ├── dom.js
│   │   │   │   ├── dragndrop.js
│   │   │   │   ├── http.js
│   │   │   │   ├── keyboard.js
│   │   │   │   ├── modal.js
│   │   │   │   ├── notifier.js
│   │   │   │   ├── popup.js
│   │   │   │   └── scroller.js
│   │   │   ├── errors.js
│   │   │   ├── escapecss.js
│   │   │   ├── fakedom.js
│   │   │   ├── linked-list.js
│   │   │   ├── logger.js
│   │   │   ├── messaging.js
│   │   │   ├── parsetree.js
│   │   │   ├── performance.js
│   │   │   ├── pluginmaker.js
│   │   │   ├── transliterate.js
│   │   │   └── utils.js
│   │   ├── widgets/
│   │   │   ├── action-confirm.js
│   │   │   ├── action-createtiddler.js
│   │   │   ├── action-deletefield.js
│   │   │   ├── action-deletetiddler.js
│   │   │   ├── action-listops.js
│   │   │   ├── action-log.js
│   │   │   ├── action-navigate.js
│   │   │   ├── action-popup.js
│   │   │   ├── action-sendmessage.js
│   │   │   ├── action-setfield.js
│   │   │   ├── action-setmultiplefields.js
│   │   │   ├── audio.js
│   │   │   ├── browse.js
│   │   │   ├── button.js
│   │   │   ├── checkbox.js
│   │   │   ├── codeblock.js
│   │   │   ├── count.js
│   │   │   ├── data.js
│   │   │   ├── diff-text.js
│   │   │   ├── draggable.js
│   │   │   ├── droppable.js
│   │   │   ├── dropzone.js
│   │   │   ├── edit-binary.js
│   │   │   ├── edit-bitmap.js
│   │   │   ├── edit-shortcut.js
│   │   │   ├── edit-text.js
│   │   │   ├── edit.js
│   │   │   ├── element.js
│   │   │   ├── encrypt.js
│   │   │   ├── entity.js
│   │   │   ├── error.js
│   │   │   ├── eventcatcher.js
│   │   │   ├── fieldmangler.js
│   │   │   ├── fields.js
│   │   │   ├── fill.js
│   │   │   ├── genesis.js
│   │   │   ├── image.js
│   │   │   ├── importvariables.js
│   │   │   ├── jsontiddler.js
│   │   │   ├── keyboard.js
│   │   │   ├── let.js
│   │   │   ├── link.js
│   │   │   ├── linkcatcher.js
│   │   │   ├── list.js
│   │   │   ├── log.js
│   │   │   ├── macrocall.js
│   │   │   ├── messagecatcher.js
│   │   │   ├── navigator.js
│   │   │   ├── parameters.js
│   │   │   ├── password.js
│   │   │   ├── qualify.js
│   │   │   ├── radio.js
│   │   │   ├── range.js
│   │   │   ├── raw.js
│   │   │   ├── reveal.js
│   │   │   ├── scrollable.js
│   │   │   ├── select.js
│   │   │   ├── setmultiplevariables.js
│   │   │   ├── setvariable.js
│   │   │   ├── slot.js
│   │   │   ├── testcase.js
│   │   │   ├── text.js
│   │   │   ├── tiddler.js
│   │   │   ├── transclude.js
│   │   │   ├── vars.js
│   │   │   ├── view.js
│   │   │   ├── void.js
│   │   │   ├── widget.js
│   │   │   └── wikify.js
│   │   ├── wiki-bulkops.js
│   │   └── wiki.js
│   ├── palettes/
│   │   ├── Blanca.tid
│   │   ├── Blue.tid
│   │   ├── BrightMute.tid
│   │   ├── ContrastDark.tid
│   │   ├── ContrastLight.tid
│   │   ├── CupertinoDark.tid
│   │   ├── DarkPhotos.tid
│   │   ├── DesertSand.tid
│   │   ├── FlexokiDark.tid
│   │   ├── FlexokiLight.tid
│   │   ├── GruvBoxDark.tid
│   │   ├── Nord.tid
│   │   ├── Rocker.tid
│   │   ├── SolarFlare.tid
│   │   ├── SolarizedDark.tid
│   │   ├── SolarizedLight.tid
│   │   ├── SpartanDay.tid
│   │   ├── SpartanNight.tid
│   │   ├── Twilight.tid
│   │   └── Vanilla.tid
│   ├── plugin.info
│   ├── readme.tid
│   ├── sjcl-license.tid
│   ├── stylesheets/
│   │   └── custom-properties.tid
│   ├── templates/
│   │   ├── MOTW.html.tid
│   │   ├── alltiddlers.template.html.tid
│   │   ├── canonical-uri-external-image.tid
│   │   ├── canonical-uri-external-raw.tid
│   │   ├── canonical-uri-external-text.tid
│   │   ├── css-tiddler.tid
│   │   ├── exporters/
│   │   │   ├── CsvFile.tid
│   │   │   ├── JsonFile.tid
│   │   │   ├── StaticRiver.tid
│   │   │   ├── StaticRiverContent.tid
│   │   │   └── TidFile.tid
│   │   ├── external-js/
│   │   │   ├── save-all-external-js.tid
│   │   │   ├── save-offline-external-js.tid
│   │   │   ├── tiddlywiki.js.load.tid
│   │   │   ├── tiddlywiki.js.tid
│   │   │   ├── tiddlywiki.js.tiddlers.tid
│   │   │   └── tiddlywiki5-external-js.html.tid
│   │   ├── html-div-skinny-tiddler.tid
│   │   ├── html-div-tiddler.tid
│   │   ├── html-json-skinny-tiddler.tid
│   │   ├── html-json-tiddler.tid
│   │   ├── html-tiddler.tid
│   │   ├── javascript-tiddler.tid
│   │   ├── json-tiddler.tid
│   │   ├── module-tiddler.tid
│   │   ├── plain-text-tiddler.tid
│   │   ├── raw-static-tiddler.tid
│   │   ├── save-all.tid
│   │   ├── save-empty.tid
│   │   ├── save-lazy-all.tid
│   │   ├── save-lazy-images.tid
│   │   ├── server/
│   │   │   ├── static.sidebar.wikitext.tid
│   │   │   ├── static.tiddler.html.tid
│   │   │   └── static.tiddler.wikitext.tid
│   │   ├── single.tiddler.window.tid
│   │   ├── social-metadata.tid
│   │   ├── split-recipe.tid
│   │   ├── static-tiddler.tid
│   │   ├── static.area.tid
│   │   ├── static.content.tid
│   │   ├── static.template.css.tid
│   │   ├── static.template.html.tid
│   │   ├── static.tiddler.html.tid
│   │   ├── store.area.template.html.tid
│   │   ├── tid-tiddler.tid
│   │   ├── tiddler-metadata.tid
│   │   ├── tiddlywiki5.html.tid
│   │   ├── version.tid
│   │   └── wikified-tiddler.tid
│   ├── ui/
│   │   ├── AboveStory/
│   │   │   └── tw2-plugin-check.tid
│   │   ├── Actions/
│   │   │   ├── new-image.tid
│   │   │   ├── new-journal.tid
│   │   │   └── new-tiddler.tid
│   │   ├── AdvancedSearch/
│   │   │   ├── Filter.tid
│   │   │   ├── FilterButtons/
│   │   │   │   ├── clear.tid
│   │   │   │   ├── delete.tid
│   │   │   │   ├── dropdown.tid
│   │   │   │   └── export.tid
│   │   │   ├── Shadows.tid
│   │   │   ├── Standard.tid
│   │   │   └── System.tid
│   │   ├── AdvancedSearch.tid
│   │   ├── AlertTemplate.tid
│   │   ├── BinaryWarning.tid
│   │   ├── Components/
│   │   │   ├── VisibleTransclude.tid
│   │   │   ├── plugin-info.tid
│   │   │   └── tag-link.tid
│   │   ├── ControlPanel/
│   │   │   ├── Advanced.tid
│   │   │   ├── Appearance.tid
│   │   │   ├── Basics/
│   │   │   │   └── retain-story-ordering-button.tid
│   │   │   ├── Basics.tid
│   │   │   ├── Cascades/
│   │   │   │   ├── EditTemplateBody.tid
│   │   │   │   ├── FieldEditor.tid
│   │   │   │   ├── StoryTiddler.tid
│   │   │   │   ├── TiddlerColour.tid
│   │   │   │   ├── TiddlerIcon.tid
│   │   │   │   ├── ViewTemplateBody.tid
│   │   │   │   ├── ViewTemplateSubtitle.tid
│   │   │   │   ├── ViewTemplateTags.tid
│   │   │   │   └── ViewTemplateTitle.tid
│   │   │   ├── Cascades.tid
│   │   │   ├── EditorTypes.tid
│   │   │   ├── Info.tid
│   │   │   ├── KeyboardShortcuts.tid
│   │   │   ├── LoadedModules.tid
│   │   │   ├── Modals/
│   │   │   │   └── AddPlugins.tid
│   │   │   ├── Palette.tid
│   │   │   ├── Parsing.tid
│   │   │   ├── Plugins/
│   │   │   │   ├── Add/
│   │   │   │   │   ├── Languages.tid
│   │   │   │   │   ├── Plugins.tid
│   │   │   │   │   ├── Themes.tid
│   │   │   │   │   └── Updates.tid
│   │   │   │   ├── AddPlugins.tid
│   │   │   │   └── Installed/
│   │   │   │       ├── Languages.tid
│   │   │   │       ├── Plugins.tid
│   │   │   │       └── Themes.tid
│   │   │   ├── Plugins.tid
│   │   │   ├── Saving/
│   │   │   │   ├── DownloadSaver.tid
│   │   │   │   ├── General.tid
│   │   │   │   ├── GitHub.tid
│   │   │   │   ├── GitLab.tid
│   │   │   │   ├── TiddlySpot.tid
│   │   │   │   └── gitea.tid
│   │   │   ├── Saving.tid
│   │   │   ├── Settings/
│   │   │   │   ├── ButtonStyles/
│   │   │   │   │   ├── Borderless.tid
│   │   │   │   │   ├── Boxed.tid
│   │   │   │   │   └── Rounded.tid
│   │   │   │   ├── CamelCase.tid
│   │   │   │   ├── DefaultMoreSidebarTab.tid
│   │   │   │   ├── DefaultSidebarTab.tid
│   │   │   │   ├── DefaultTiddlerInfoTab.tid
│   │   │   │   ├── EditorToolbar.tid
│   │   │   │   ├── InfoPanelMode.tid
│   │   │   │   ├── LinkToBehaviour.tid
│   │   │   │   ├── MissingLinks.tid
│   │   │   │   ├── NavigationAddressBar.tid
│   │   │   │   ├── NavigationHistory.tid
│   │   │   │   ├── NavigationPermalinkviewMode.tid
│   │   │   │   ├── PerformanceInstrumentation.tid
│   │   │   │   ├── RecentLimit.tid
│   │   │   │   ├── TitleLinks.tid
│   │   │   │   ├── ToolbarButtonStyle.tid
│   │   │   │   └── ToolbarButtons.tid
│   │   │   ├── Settings.tid
│   │   │   ├── SocialCard.tid
│   │   │   ├── StoryView.tid
│   │   │   ├── Stylesheets.tid
│   │   │   ├── TestCases.tid
│   │   │   ├── TestCasesAll.tid
│   │   │   ├── TestCasesFailed.tid
│   │   │   ├── Theme.tid
│   │   │   ├── TiddlerFields.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   ├── Toolbars/
│   │   │   │   ├── EditToolbar.tid
│   │   │   │   ├── EditorItemTemplate.tid
│   │   │   │   ├── EditorToolbar.tid
│   │   │   │   ├── ItemTemplate.tid
│   │   │   │   ├── PageControls.tid
│   │   │   │   └── ViewToolbar.tid
│   │   │   └── Toolbars.tid
│   │   ├── ControlPanel.tid
│   │   ├── DefaultSearchResultList.tid
│   │   ├── DownloadFullWiki.tid
│   │   ├── EditTemplate/
│   │   │   ├── Preview/
│   │   │   │   ├── diffs-current.tid
│   │   │   │   ├── diffs-shadow.tid
│   │   │   │   ├── output.tid
│   │   │   │   └── showeditpreview.tid
│   │   │   ├── body/
│   │   │   │   ├── canonical-uri.tid
│   │   │   │   └── default.tid
│   │   │   ├── body-editor.tid
│   │   │   ├── body-toolbar-button.tid
│   │   │   ├── body.tid
│   │   │   ├── controls.tid
│   │   │   ├── fieldEditor-default.tid
│   │   │   ├── fields.tid
│   │   │   ├── shadow.tid
│   │   │   ├── tags.tid
│   │   │   ├── title.tid
│   │   │   └── type.tid
│   │   ├── EditTemplate.tid
│   │   ├── EditToolbar/
│   │   │   ├── cancel.tid
│   │   │   ├── delete.tid
│   │   │   └── save.tid
│   │   ├── EditorToolbar/
│   │   │   ├── bold.tid
│   │   │   ├── clear-dropdown.tid
│   │   │   ├── clear.tid
│   │   │   ├── editor-height-dropdown.tid
│   │   │   ├── editor-height.tid
│   │   │   ├── excise-dropdown.tid
│   │   │   ├── excise.tid
│   │   │   ├── file-import.tid
│   │   │   ├── heading-1.tid
│   │   │   ├── heading-2.tid
│   │   │   ├── heading-3.tid
│   │   │   ├── heading-4.tid
│   │   │   ├── heading-5.tid
│   │   │   ├── heading-6.tid
│   │   │   ├── italic.tid
│   │   │   ├── line-width-dropdown.tid
│   │   │   ├── line-width.tid
│   │   │   ├── link-dropdown.tid
│   │   │   ├── link.tid
│   │   │   ├── linkify.tid
│   │   │   ├── list-bullet.tid
│   │   │   ├── list-number.tid
│   │   │   ├── mono-block.tid
│   │   │   ├── mono-line.tid
│   │   │   ├── more-dropdown.tid
│   │   │   ├── more.tid
│   │   │   ├── opacity-dropdown.tid
│   │   │   ├── opacity.tid
│   │   │   ├── paint-dropdown.tid
│   │   │   ├── paint.tid
│   │   │   ├── picture-dropdown.tid
│   │   │   ├── picture.tid
│   │   │   ├── preview-type-dropdown.tid
│   │   │   ├── preview-type.tid
│   │   │   ├── preview.tid
│   │   │   ├── quote.tid
│   │   │   ├── rotate-left.tid
│   │   │   ├── size-dropdown.tid
│   │   │   ├── size.tid
│   │   │   ├── stamp-dropdown-item-template.tid
│   │   │   ├── stamp-dropdown.tid
│   │   │   ├── stamp.tid
│   │   │   ├── strikethrough.tid
│   │   │   ├── subscript.tid
│   │   │   ├── superscript.tid
│   │   │   ├── transcludify.tid
│   │   │   └── underline.tid
│   │   ├── ExportTiddlyWikiCore.tid
│   │   ├── Filters/
│   │   │   ├── AllTags.tid
│   │   │   ├── AllTiddlers.tid
│   │   │   ├── Drafts.tid
│   │   │   ├── Missing.tid
│   │   │   ├── Orphans.tid
│   │   │   ├── OverriddenShadowTiddlers.tid
│   │   │   ├── RecentSystemTiddlers.tid
│   │   │   ├── RecentTiddlers.tid
│   │   │   ├── SessionTiddlers.tid
│   │   │   ├── ShadowTiddlers.tid
│   │   │   ├── StoryList.tid
│   │   │   ├── SystemTags.tid
│   │   │   ├── SystemTiddlers.tid
│   │   │   └── TypedTiddlers.tid
│   │   ├── ImportListing.tid
│   │   ├── ImportPreviews/
│   │   │   ├── Diff.tid
│   │   │   ├── DiffFields.tid
│   │   │   ├── Fields.tid
│   │   │   ├── Text.tid
│   │   │   └── TextRaw.tid
│   │   ├── KeyboardShortcuts/
│   │   │   ├── advanced-search.tid
│   │   │   ├── change-sidebar-layout.tid
│   │   │   ├── new-image.tid
│   │   │   ├── new-journal.tid
│   │   │   ├── new-tiddler.tid
│   │   │   ├── open-control-panel.tid
│   │   │   ├── refresh.tid
│   │   │   ├── save-wiki.tid
│   │   │   ├── sidebar-search.tid
│   │   │   ├── switcher.tid
│   │   │   └── toggle-sidebar.tid
│   │   ├── LayoutSwitcher.tid
│   │   ├── ListItemTemplate.tid
│   │   ├── ListTaggedCascade.tid
│   │   ├── Manager/
│   │   │   ├── ItemMainFields.tid
│   │   │   ├── ItemMainRawText.tid
│   │   │   ├── ItemMainWikifiedText.tid
│   │   │   ├── ItemSidebarColour.tid
│   │   │   ├── ItemSidebarIcon.tid
│   │   │   ├── ItemSidebarTags.tid
│   │   │   └── ItemSidebarTools.tid
│   │   ├── Manager.tid
│   │   ├── MissingTemplate.tid
│   │   ├── MoreSideBar/
│   │   │   ├── All.tid
│   │   │   ├── Drafts.tid
│   │   │   ├── Explorer.tid
│   │   │   ├── Missing.tid
│   │   │   ├── Orphans.tid
│   │   │   ├── Plugins.tid
│   │   │   ├── Recent.tid
│   │   │   ├── Shadows.tid
│   │   │   ├── System.tid
│   │   │   ├── Tags.tid
│   │   │   ├── Types.tid
│   │   │   └── plugins/
│   │   │       ├── Languages.tid
│   │   │       ├── Plugins.tid
│   │   │       └── Theme.tid
│   │   ├── PageControls/
│   │   │   ├── advanced-search.tid
│   │   │   ├── closeall.tid
│   │   │   ├── controlpanel.tid
│   │   │   ├── encryption.tid
│   │   │   ├── export-page.tid
│   │   │   ├── export-tiddlywikicore.tid
│   │   │   ├── fold-all.tid
│   │   │   ├── full-screen.tid
│   │   │   ├── home.tid
│   │   │   ├── import.tid
│   │   │   ├── language.tid
│   │   │   ├── layout.tid
│   │   │   ├── manager.tid
│   │   │   ├── more-page-actions.tid
│   │   │   ├── network-activity.tid
│   │   │   ├── new-image.tid
│   │   │   ├── new-journal.tid
│   │   │   ├── newtiddler.tid
│   │   │   ├── palette.tid
│   │   │   ├── print.tid
│   │   │   ├── refresh.tid
│   │   │   ├── savewiki.tid
│   │   │   ├── storyview.tid
│   │   │   ├── tag-button.tid
│   │   │   ├── theme.tid
│   │   │   ├── timestamp.tid
│   │   │   └── unfold-all.tid
│   │   ├── PageControls.tid
│   │   ├── PageStylesheet.tid
│   │   ├── PageTemplate/
│   │   │   ├── alerts.tid
│   │   │   ├── drafts.tid
│   │   │   ├── pluginreloadwarning.tid
│   │   │   ├── sidebar.tid
│   │   │   ├── story.tid
│   │   │   ├── topleftbar.tid
│   │   │   └── toprightbar.tid
│   │   ├── PageTemplate.tid
│   │   ├── PaletteManager.tid
│   │   ├── PluginInfo.tid
│   │   ├── PluginInfoDefaultContents.tid
│   │   ├── PluginListItemTemplate.tid
│   │   ├── RootTemplate.tid
│   │   ├── SearchResults.tid
│   │   ├── SideBar/
│   │   │   ├── More.tid
│   │   │   ├── Open.tid
│   │   │   ├── Recent.tid
│   │   │   └── Tools.tid
│   │   ├── SideBarLists.tid
│   │   ├── SideBarSegments/
│   │   │   ├── page-controls.tid
│   │   │   ├── search.tid
│   │   │   ├── site-subtitle.tid
│   │   │   ├── site-title.tid
│   │   │   └── tabs.tid
│   │   ├── StoryTiddlerTemplate.tid
│   │   ├── SwitcherModal.tid
│   │   ├── TagManager.tid
│   │   ├── TagPickerTagTemplate.tid
│   │   ├── TagTemplate.tid
│   │   ├── TestCaseTemplate.tid
│   │   ├── TestCases/
│   │   │   ├── DefaultTemplate.tid
│   │   │   ├── DefaultTemplateSourceTabs.tid
│   │   │   ├── RawJSONTemplate.tid
│   │   │   └── actions/
│   │   │       ├── Export.tid
│   │   │       └── Import.tid
│   │   ├── TiddlerFieldTemplate.tid
│   │   ├── TiddlerFields.tid
│   │   ├── TiddlerIcon.tid
│   │   ├── TiddlerInfo/
│   │   │   ├── Advanced/
│   │   │   │   ├── CascadeInfo.tid
│   │   │   │   ├── PluginInfo.tid
│   │   │   │   └── ShadowInfo.tid
│   │   │   ├── Advanced.tid
│   │   │   ├── Fields.tid
│   │   │   ├── List.tid
│   │   │   ├── Listed.tid
│   │   │   ├── References.tid
│   │   │   ├── Tagging.tid
│   │   │   └── Tools.tid
│   │   ├── TiddlerInfo.tid
│   │   ├── TopRightBar/
│   │   │   └── menu.tid
│   │   ├── UntaggedTemplate.tid
│   │   ├── ViewTemplate/
│   │   │   ├── body/
│   │   │   │   ├── blank.tid
│   │   │   │   ├── code.tid
│   │   │   │   ├── default.tid
│   │   │   │   ├── import.tid
│   │   │   │   ├── plugin.tid
│   │   │   │   └── rendered-plain-text/
│   │   │   │       ├── css.tid
│   │   │   │       └── html.tid
│   │   │   ├── body.tid
│   │   │   ├── classic.tid
│   │   │   ├── lazy-loading.tid
│   │   │   ├── subtitle/
│   │   │   │   ├── default.tid
│   │   │   │   ├── modified.tid
│   │   │   │   └── modifier.tid
│   │   │   ├── subtitle.tid
│   │   │   ├── tags/
│   │   │   │   └── default.tid
│   │   │   ├── tags.tid
│   │   │   ├── title/
│   │   │   │   ├── default.tid
│   │   │   │   └── system.tid
│   │   │   ├── title.tid
│   │   │   └── unfold.tid
│   │   ├── ViewTemplate.tid
│   │   ├── ViewToolbar/
│   │   │   ├── clone.tid
│   │   │   ├── close-others.tid
│   │   │   ├── close.tid
│   │   │   ├── edit.tid
│   │   │   ├── export-tiddler.tid
│   │   │   ├── fold-bar.tid
│   │   │   ├── fold-others.tid
│   │   │   ├── fold.tid
│   │   │   ├── info.tid
│   │   │   ├── more-tiddler-actions.tid
│   │   │   ├── new-here.tid
│   │   │   ├── new-journal-here.tid
│   │   │   ├── open-window.tid
│   │   │   ├── permalink.tid
│   │   │   └── permaview.tid
│   │   └── WikiInformation.tid
│   └── wiki/
│       ├── DefaultTiddlers.tid
│       ├── advancedsearch.tid
│       ├── allfields.tid
│       ├── config/
│       │   ├── AnimationDuration.tid
│       │   ├── AutoFocus.tid
│       │   ├── AutoSave.tid
│       │   ├── BitmapEditorColour.tid
│       │   ├── BitmapEditorImageSizes.tid
│       │   ├── BitmapEditorLineWidth.tid
│       │   ├── BitmapEditorLineWidths.tid
│       │   ├── BitmapEditorOpacities.tid
│       │   ├── BitmapEditorOpacity.tid
│       │   ├── DefaultMoreSidebarTab.tid
│       │   ├── DefaultSidebarTab.tid
│       │   ├── DefaultTiddlersRetainStory.tid
│       │   ├── DownloadSaverAutoSave.tid
│       │   ├── Drafts-TypingTimeout.tid
│       │   ├── EditModeFieldnameFilter.tid
│       │   ├── EditTabIndex.tid
│       │   ├── EditTemplateBodyFilters.multids
│       │   ├── EditTemplateFields.multids
│       │   ├── EditorEnableImportFilter.tid
│       │   ├── EditorImportContentTypesFilter.tid
│       │   ├── EditorToolbarButtons.multids
│       │   ├── EditorTypeMappings.multids
│       │   ├── FieldEditorFilters.multids
│       │   ├── GlobalImportFilter.tid
│       │   ├── Manager.multids
│       │   ├── ManagerItemState.multids
│       │   ├── MediaQueryTrackers/
│       │   │   └── DarkLightPreferred.tid
│       │   ├── MissingLinks.tid
│       │   ├── NavigationUpdateAddressBar.tid
│       │   ├── NavigationUpdateHistory.tid
│       │   ├── NewImageType.tid
│       │   ├── OfficialPluginLibrary.tid
│       │   ├── OpenLinkFromInsideRiver.tid
│       │   ├── OpenLinkFromOutsideRiver.tid
│       │   ├── PageControlButtons.multids
│       │   ├── PerformanceInstrumentation.tid
│       │   ├── RecentLimit.tid
│       │   ├── RegisterPluginTypes.multids
│       │   ├── SaveWikiButtonTemplate.tid
│       │   ├── SaverFilter.tid
│       │   ├── SearchAutoFocus.tid
│       │   ├── SearchMinLength.tid
│       │   ├── SearchResultsDefault.tid
│       │   ├── ServerExternalFiltersDefault.tid
│       │   ├── ShortcutInfo.multids
│       │   ├── StoryTiddlerTemplateFilters.multids
│       │   ├── SwitcherTargets.multids
│       │   ├── SyncFilter.tid
│       │   ├── SyncSystemTiddlersFromServer.tid
│       │   ├── TagPillDragFilter.tid
│       │   ├── TagsMinLength.tid
│       │   ├── TextEditorEditorHeightHeight.tid
│       │   ├── TextEditorEditorHeightMode.tid
│       │   ├── TiddlerColourFilters.multids
│       │   ├── TiddlerIconFilters.multids
│       │   ├── TiddlerInfoDefault.tid
│       │   ├── TiddlerInfoMode.tid
│       │   ├── TitleLinks.tid
│       │   ├── ToolbarButtonClass.tid
│       │   ├── ToolbarIcons.tid
│       │   ├── ToolbarText.tid
│       │   ├── ViewTemplateBodyFilters.multids
│       │   ├── ViewTemplateSubtitleFilters.multids
│       │   ├── ViewTemplateTagsFilters.multids
│       │   ├── ViewTemplateTitleFilters.multids
│       │   ├── ViewToolbarButtons.multids
│       │   ├── shortcuts/
│       │   │   ├── shortcuts-linux.multids
│       │   │   ├── shortcuts-mac.multids
│       │   │   ├── shortcuts-not-linux.multids
│       │   │   ├── shortcuts-not-mac.multids
│       │   │   ├── shortcuts-not-windows.multids
│       │   │   ├── shortcuts-windows.multids
│       │   │   └── shortcuts.multids
│       │   ├── ui/
│       │   │   ├── EditTemplate.tid
│       │   │   └── ViewTemplate.tid
│       │   └── wikilink.tid
│       ├── currpalettepreview.tid
│       ├── debugstylesheets.tid
│       ├── download-wiki-button.tid
│       ├── language.tid
│       ├── languageswitcher.tid
│       ├── macros/
│       │   ├── CSS-property.tid
│       │   ├── CSS.tid
│       │   ├── colour-picker.tid
│       │   ├── copy-to-clipboard.tid
│       │   ├── deprecated.tid
│       │   ├── diff.tid
│       │   ├── dumpvariables.tid
│       │   ├── export.tid
│       │   ├── image-picker.tid
│       │   ├── keyboard-driven-input.tid
│       │   ├── lingo.tid
│       │   ├── list.tid
│       │   ├── show-filter-count.tid
│       │   ├── tabs.tid
│       │   ├── tag-picker.tid
│       │   ├── tag.tid
│       │   ├── testcase.tid
│       │   ├── thumbnails.tid
│       │   ├── timeline.tid
│       │   ├── toc.tid
│       │   ├── translink.tid
│       │   ├── tree.tid
│       │   └── utils.tid
│       ├── minifocuseditswitcher.tid
│       ├── minifocusswitcher.tid
│       ├── minilanguageswitcher.tid
│       ├── minithemeswitcher.tid
│       ├── modules.tid
│       ├── palette.tid
│       ├── paletteeditor.tid
│       ├── palettepreview.tid
│       ├── paletteswitcher.tid
│       ├── peek-stylesheets.tid
│       ├── search.tid
│       ├── tags/
│       │   ├── AdvancedSearch.tid
│       │   ├── AdvancedSearchFilterButton.tid
│       │   ├── ControlPanel.tid
│       │   ├── ControlPanelInfo.tid
│       │   ├── ControlPanelPlugins.tid
│       │   ├── EditTemplate.tid
│       │   ├── EditTemplateBodyFilter.tid
│       │   ├── EditToolbar.tid
│       │   ├── EditorToolbar.tid
│       │   ├── ManagerItemMain.tid
│       │   ├── ManagerItemSidebar.tid
│       │   ├── MoreSideBar.tid
│       │   ├── PageControls.tid
│       │   ├── PageTemplate.tid
│       │   ├── PluginLibrary.tid
│       │   ├── SideBar.tid
│       │   ├── SideBarSegment.tid
│       │   ├── StoryTiddlerTemplateFilter.tid
│       │   ├── TestCaseActions.tid
│       │   ├── TextEditorSnippet.tid
│       │   ├── TiddlerColourFilter.tid
│       │   ├── TiddlerIconFilter.tid
│       │   ├── TiddlerInfo.tid
│       │   ├── TiddlerInfoAdvanced.tid
│       │   ├── ViewTemplate.tid
│       │   ├── ViewTemplateBodyFilter.tid
│       │   ├── ViewTemplateSubtitle.tid
│       │   ├── ViewTemplateTitleFilter.tid
│       │   └── ViewToolbar.tid
│       ├── themeswitcher.tid
│       ├── title.tid
│       ├── view.tid
│       └── viewswitcher.tid
├── core-server/
│   ├── commander.js
│   ├── commands/
│   │   ├── build.js
│   │   ├── clearpassword.js
│   │   ├── commands.js
│   │   ├── deletetiddlers.js
│   │   ├── editions.js
│   │   ├── fetch.js
│   │   ├── help.js
│   │   ├── import.js
│   │   ├── init.js
│   │   ├── listen.js
│   │   ├── load.js
│   │   ├── makelibrary.js
│   │   ├── output.js
│   │   ├── password.js
│   │   ├── render.js
│   │   ├── rendertiddler.js
│   │   ├── rendertiddlers.js
│   │   ├── save.js
│   │   ├── savelibrarytiddlers.js
│   │   ├── savetiddler.js
│   │   ├── savetiddlers.js
│   │   ├── savewikifolder.js
│   │   ├── server.js
│   │   ├── setfield.js
│   │   ├── unpackplugin.js
│   │   ├── verbose.js
│   │   └── version.js
│   ├── filesystem.js
│   ├── plugin.info
│   ├── readme.tid
│   ├── server/
│   │   ├── authenticators/
│   │   │   ├── basic.js
│   │   │   └── header.js
│   │   ├── routes/
│   │   │   ├── delete-tiddler.js
│   │   │   ├── get-favicon.js
│   │   │   ├── get-file.js
│   │   │   ├── get-index.js
│   │   │   ├── get-login-basic.js
│   │   │   ├── get-status.js
│   │   │   ├── get-tiddler-html.js
│   │   │   ├── get-tiddler.js
│   │   │   ├── get-tiddlers-json.js
│   │   │   └── put-tiddler.js
│   │   └── server.js
│   ├── startup/
│   │   └── commands.js
│   └── utils/
│       ├── base64.js
│       ├── edition-info.js
│       ├── escapecss.js
│       └── repository.js
├── editions/
│   ├── aws/
│   │   ├── tiddlers/
│   │   │   └── HelloThere.tid
│   │   └── tiddlywiki.info
│   ├── classicparserdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__ShowEditPreview.tid
│   │   │   ├── $__SiteSubtitle.tid
│   │   │   ├── $__SiteTitle.tid
│   │   │   ├── $__coreURL.tid
│   │   │   ├── Basic Formatting.tid
│   │   │   ├── Blockquotes.tid
│   │   │   ├── CSS Formatting.tid
│   │   │   ├── Classic Parser Plugin Demo.tid
│   │   │   ├── Classic Slider Demo.tid
│   │   │   ├── Classic Transclusion.tid
│   │   │   ├── ClassicTabsDemo.tid
│   │   │   ├── Code.tid
│   │   │   ├── Comment Formatting.tid
│   │   │   ├── Developers Notes.tid
│   │   │   ├── HTML Entities.tid
│   │   │   ├── HTML Formatting.tid
│   │   │   ├── Headings.tid
│   │   │   ├── Horizontal Rules.tid
│   │   │   ├── Images.tid
│   │   │   ├── Issues.tid
│   │   │   ├── Line Breaks.tid
│   │   │   ├── Links.tid
│   │   │   ├── Lists.tid
│   │   │   ├── Markup.tid
│   │   │   ├── Monospaced Text.tid
│   │   │   ├── Suppressing Formatting.tid
│   │   │   ├── Tables.tid
│   │   │   ├── slidertest.tid
│   │   │   └── text_x-tiddlywiki typeblock.tid
│   │   └── tiddlywiki.info
│   ├── codemirrordemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── DefaultSidebarTab.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── Draft of LoremIpsum.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── KeyMap.tid
│   │   │   ├── KeymapCheatsheet.tid
│   │   │   ├── LoremIpsum.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── cm-theme.tid
│   │   │   ├── lineNumbers.tid
│   │   │   ├── sidebarlayout.tid
│   │   │   └── styleActiveLine.tid
│   │   └── tiddlywiki.info
│   ├── de-AT/
│   │   ├── tiddlers/
│   │   │   ├── Bilder.tid
│   │   │   ├── Community.tid
│   │   │   ├── Einfuhrung.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── InhaltsVerzeichnis.tid
│   │   │   ├── Konzept.tid
│   │   │   ├── Lexikon.tid
│   │   │   ├── Makros.tid
│   │   │   ├── Referenz.tid
│   │   │   ├── Releases.tid
│   │   │   ├── TWclassic.tid
│   │   │   ├── Video.tid
│   │   │   ├── Widgets.tid
│   │   │   ├── WikiText mehr Beispiele.tid
│   │   │   ├── beispiele/
│   │   │   │   ├── Befreie die Prinzessin.tid
│   │   │   │   ├── EinsA.tid
│   │   │   │   ├── EinsA1.tid
│   │   │   │   ├── EinsB.tid
│   │   │   │   ├── EinsB1.tid
│   │   │   │   ├── EinsC.tid
│   │   │   │   ├── Erstellen von Notizen.tid
│   │   │   │   ├── Finde den Ring.tid
│   │   │   │   ├── Gehe nach Mordor.tid
│   │   │   │   ├── Ideensammlung.tid
│   │   │   │   ├── ReiterDrei.tid
│   │   │   │   ├── ReiterEins.tid
│   │   │   │   ├── ReiterZwei.tid
│   │   │   │   ├── Rette die Welt.tid
│   │   │   │   ├── Task Management Plugins.tid
│   │   │   │   ├── Task Management mit Listen.tid
│   │   │   │   ├── Task Management mit Tags.tid
│   │   │   │   ├── TaskManagement.tid
│   │   │   │   ├── Verhaue den Drachen.tid
│   │   │   │   ├── Was kann TiddlyWiki.tid
│   │   │   │   ├── ZweiA.tid
│   │   │   │   ├── done.tid
│   │   │   │   ├── task.tid
│   │   │   │   ├── tocDrei.tid
│   │   │   │   ├── tocEins.tid
│   │   │   │   └── tocZwei.tid
│   │   │   ├── bilder/
│   │   │   │   ├── AT-DE-CH-favicon.png.meta
│   │   │   │   ├── Bilder Gallerie Beispiel.tid
│   │   │   │   ├── Dev_Thumbnail.jpg.meta
│   │   │   │   ├── Introduction_Video_Thumbnail.jpg.meta
│   │   │   │   ├── Motovun Jack.jpg.meta
│   │   │   │   ├── Motovun_Jack.svg.tid
│   │   │   │   ├── Save-TW.gif.tid
│   │   │   │   ├── Tiddler_Poster.png.tid
│   │   │   │   ├── TiddlyWiki_Classic.png.tid
│   │   │   │   └── download.png.tid
│   │   │   ├── community/
│   │   │   │   ├── Fur_Entwickler.tid
│   │   │   │   └── Wie_kann_ich_helfen_.tid
│   │   │   ├── external/
│   │   │   │   └── tiddlywiki.files
│   │   │   ├── howto/
│   │   │   │   ├── Importieren von Tiddlern.tid
│   │   │   │   ├── Installation von TiddlyWiki mit Node.js.tid
│   │   │   │   ├── Installation.tid
│   │   │   │   ├── Liste aller HowTo's.tid
│   │   │   │   ├── Liste aller Tiddler.tid
│   │   │   │   ├── Speichern auf TiddlySpot.tid
│   │   │   │   ├── Speichern mit Android.tid
│   │   │   │   ├── Speichern mit Chrome.tid
│   │   │   │   ├── Speichern mit Safari.tid
│   │   │   │   ├── Speichern mit TiddlyFox - Android.tid
│   │   │   │   ├── Speichern mit TiddlyFox.tid
│   │   │   │   ├── Speichern mit TiddlyIE.tid
│   │   │   │   ├── Speichern mit Verschlusselung.tid
│   │   │   │   ├── Speichern mit iPad_iPhone.tid
│   │   │   │   ├── TiddlyWiki mit Node.js.tid
│   │   │   │   ├── TiddlyWiki und TiddlyDesktop.tid
│   │   │   │   └── Windows HTA Hack.tid
│   │   │   ├── howto.tid
│   │   │   ├── intro/
│   │   │   │   ├── ErsteSchritte - Android.tid
│   │   │   │   ├── ErsteSchritte - Chrome.tid
│   │   │   │   ├── ErsteSchritte - Firefox.tid
│   │   │   │   ├── ErsteSchritte - Internet Explorer.tid
│   │   │   │   ├── ErsteSchritte - Node.js.tid
│   │   │   │   ├── ErsteSchritte - Safari.tid
│   │   │   │   ├── ErsteSchritte - iOS.tid
│   │   │   │   ├── ErsteSchritte.tid
│   │   │   │   ├── HelloThumbnail.tid
│   │   │   │   ├── HelloThumbnail_-_Classic.tid
│   │   │   │   ├── HelloThumbnail_-_Developers.tid
│   │   │   │   ├── HelloThumbnail_-_Gentle_Guide.tid
│   │   │   │   ├── HelloThumbnail_-_HelpingTiddlyWiki.tid
│   │   │   │   ├── HelloThumbnail_-_Introduction_Video.tid
│   │   │   │   ├── HelloThumbnail_-_Latest_Version.tid
│   │   │   │   └── HelloThumbnail_-_Save.tid
│   │   │   ├── konzept/
│   │   │   │   ├── Informationen_weitergeben.tid
│   │   │   │   ├── Permalink.tid
│   │   │   │   ├── Permaview.tid
│   │   │   │   ├── Philosophy_von_Tiddlern.tid
│   │   │   │   ├── Tagging.tid
│   │   │   │   ├── TiddlyWiki Speichern.tid
│   │   │   │   ├── TiddlyWiki_Strukturieren.tid
│   │   │   │   ├── TiddlyWiki_mit_Dropbox_teilen.tid
│   │   │   │   └── Titel_Listen.tid
│   │   │   ├── lexikon/
│   │   │   │   ├── AddOn.tid
│   │   │   │   ├── AndTidWiki.tid
│   │   │   │   ├── CSS Klassen.tid
│   │   │   │   ├── DataTiddlers.tid
│   │   │   │   ├── Filter.tid
│   │   │   │   ├── FireFox.tid
│   │   │   │   ├── Geviertstrich.tid
│   │   │   │   ├── GitHub.tid
│   │   │   │   ├── Halbgeviertstrich.tid
│   │   │   │   ├── Hyperlinks.tid
│   │   │   │   ├── JeremyRuston.tid
│   │   │   │   ├── MIME-Type.tid
│   │   │   │   ├── Makro.tid
│   │   │   │   ├── MarkDown.tid
│   │   │   │   ├── Node.js.tid
│   │   │   │   ├── OpenSource.tid
│   │   │   │   ├── Open_Source_Initiative.tid
│   │   │   │   ├── Stanford JavaScript Crypto Library.tid
│   │   │   │   ├── Status Tiddler.tid
│   │   │   │   ├── Stylesheet.tid
│   │   │   │   ├── Tags.tid
│   │   │   │   ├── TextReferenz.tid
│   │   │   │   ├── Tiddler.tid
│   │   │   │   ├── TiddlyDesktop.tid
│   │   │   │   ├── TiddlyFox.tid
│   │   │   │   ├── TiddlyIE.tid
│   │   │   │   ├── TiddlySpot.tid
│   │   │   │   ├── TiddlyWiki mit node.js.tid
│   │   │   │   ├── TiddlyWiki on node-webkit.tid
│   │   │   │   ├── TiddlyWiki.tid
│   │   │   │   ├── Transklusion.tid
│   │   │   │   ├── URL.tid
│   │   │   │   ├── UnaMesa.tid
│   │   │   │   ├── Was geschah mit dem alten TiddlyWiki.tid
│   │   │   │   └── WikiLinks.tid
│   │   │   ├── maintainer/
│   │   │   │   ├── ChrisK.tid
│   │   │   │   ├── Wer pflegt diese Edition_.tid
│   │   │   │   └── pmario.tid
│   │   │   ├── makros/
│   │   │   │   ├── Inhaltsverzeichnis-Einfach.tid
│   │   │   │   ├── Inhaltsverzeichnis-Erweiterbar.tid
│   │   │   │   ├── Inhaltsverzeichnis-Selektiv-Erweiterbar.tid
│   │   │   │   ├── Inhaltsverzeichnis-Sortiert.tid
│   │   │   │   ├── ListMacro.tid
│   │   │   │   ├── TableOfContentsMacro.tid
│   │   │   │   ├── TabsMakro.tid
│   │   │   │   ├── VersionMacro.tid
│   │   │   │   ├── list-check.svg.tid
│   │   │   │   ├── list-done.svg.tid
│   │   │   │   └── list-task.svg.tid
│   │   │   ├── referenz/
│   │   │   │   └── Lizenzen.tid
│   │   │   ├── system/
│   │   │   │   ├── $__DefaultTiddlers.tid
│   │   │   │   ├── $__StaticBanner.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__core_ui_Buttons_language.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__editions_tw5.com_github-fork-ribbon.tid
│   │   │   │   ├── $__editions_de-AT-DE_download-empty.tid
│   │   │   │   ├── $__editions_de-AT-DE_iframe-responsive.tid
│   │   │   │   ├── $__editions_de-AT-DE_snippets_download-empty-button.tid
│   │   │   │   ├── $__editions_de-AT-DE_wikitext-macros.tid
│   │   │   │   ├── $__language.tid
│   │   │   │   ├── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   │   │   ├── SelectDefaultTab.tid
│   │   │   │   └── static.content.tid
│   │   │   ├── systemtag/
│   │   │   │   ├── $__TaskStylesheet.tid
│   │   │   │   ├── $___tags_ListIcon.tid
│   │   │   │   ├── $__tags_Stylesheet.tid
│   │   │   │   └── SystemTag.tid
│   │   │   ├── video/
│   │   │   │   ├── Einfuhrungsvideo.tid
│   │   │   │   └── TiddlyWiki mit Firefox fur Android Video.tid
│   │   │   ├── widgets/
│   │   │   │   ├── ImageWidget.tid
│   │   │   │   ├── ImportVariablesWidget.tid
│   │   │   │   ├── LinkWidget.tid
│   │   │   │   ├── ListWidget.tid
│   │   │   │   └── TranscludeWidget.tid
│   │   │   └── wikitext/
│   │   │       ├── Absatz in WikiText.tid
│   │   │       ├── Bilder in WikiText.tid
│   │   │       ├── Code Block in WikiText.tid
│   │   │       ├── Definitionen in WikiText.tid
│   │   │       ├── Formatierungen in WikiText.tid
│   │   │       ├── Gedankenstrich in WikiText.tid
│   │   │       ├── HTML in WikiText.tid
│   │   │       ├── Listen in WikiText.tid
│   │   │       ├── Makros in WikiText.tid
│   │   │       ├── Stil und CSS Klassen in WikiText.tid
│   │   │       ├── Tabellen in WikiText.tid
│   │   │       ├── Transclusion in WikiText.tid
│   │   │       ├── Transklusion in WikiText.tid
│   │   │       ├── Trennlinie in WikiText.tid
│   │   │       ├── Typisierte Blocke in WikiText.tid
│   │   │       ├── Uberschriften in WikiText.tid
│   │   │       ├── Verknupfungen in WikiText.tid
│   │   │       ├── Widgets in WikiText.tid
│   │   │       ├── WikiText.tid
│   │   │       ├── Zeilenumbruch in WikiText.tid
│   │   │       └── Zitate in WikiText.tid
│   │   └── tiddlywiki.info
│   ├── de-AT-server/
│   │   ├── tiddlers/
│   │   │   └── system/
│   │   │       └── favicon.png.meta
│   │   └── tiddlywiki.info
│   ├── de-DE/
│   │   ├── tiddlers/
│   │   │   └── system/
│   │   │       ├── $__StaticBanner.tid
│   │   │       └── $__language.tid
│   │   └── tiddlywiki.info
│   ├── dev/
│   │   ├── tiddlers/
│   │   │   ├── $__github-ribbon.tid
│   │   │   ├── Continuous Deployment.tid
│   │   │   ├── GitHub Branches.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── How to Create a Custom Cascade Entry.tid
│   │   │   ├── How to run a local plugin library for testing.tid
│   │   │   ├── Widget `destroy` method examples.tid
│   │   │   ├── _tw_shared/
│   │   │   │   └── tiddlywiki.files
│   │   │   ├── build/
│   │   │   │   ├── ReadMe for build.jermolene.github.io.tid
│   │   │   │   ├── Releasing a new version of TiddlyWiki.tid
│   │   │   │   ├── Releasing new content for TiddlyWiki.tid
│   │   │   │   └── Scripts for building tiddlywiki.com.tid
│   │   │   ├── from Heigele and Jurke/
│   │   │   │   ├── Caching.tid
│   │   │   │   ├── Conclusion.tid
│   │   │   │   ├── Data Management during Runtime.tid
│   │   │   │   ├── Data Persistence.tid
│   │   │   │   ├── Data-Storage.tid
│   │   │   │   ├── Datamodel.tid
│   │   │   │   ├── Deserializer.tid
│   │   │   │   ├── Event Mechanism.tid
│   │   │   │   ├── Extended Persistence.tid
│   │   │   │   ├── Extending the Store.tid
│   │   │   │   ├── Introduction.tid
│   │   │   │   ├── Messages.tid
│   │   │   │   ├── Microkernel Architecture.tid
│   │   │   │   ├── Microkernel Description.tid
│   │   │   │   ├── Microkernel and Datamodel.tid
│   │   │   │   ├── Microkernel.tid
│   │   │   │   ├── Modularization.tid
│   │   │   │   ├── Module System.tid
│   │   │   │   ├── NEW NEW TOC.tid
│   │   │   │   ├── Parser.tid
│   │   │   │   ├── Persist data.tid
│   │   │   │   ├── RootWidget and Rendering Startup.tid
│   │   │   │   ├── Saver.tid
│   │   │   │   ├── Section Overview.tid
│   │   │   │   ├── Selective Update.tid
│   │   │   │   ├── Startup Process.tid
│   │   │   │   ├── StartupTimeline.png.tid
│   │   │   │   ├── Syncadaptor.tid
│   │   │   │   ├── System Tiddlers.tid
│   │   │   │   ├── Table of Contents.tid
│   │   │   │   ├── Tags and Filter Mechanism.tid
│   │   │   │   ├── The Heart of TiddlyWiki Boot-Kernel.tid
│   │   │   │   ├── The Plugin and Module concept.tid
│   │   │   │   ├── The TiddlyWiki data management concept.tid
│   │   │   │   ├── The User Interface.tid
│   │   │   │   ├── Tiddler as Basic Element.tid
│   │   │   │   ├── TiddlyWiki - A quick Overview.tid
│   │   │   │   ├── TiddlyWiki Core Application.tid
│   │   │   │   ├── TiddlyWiki as Single Page Application.tid
│   │   │   │   ├── TiddlyWiki.tid
│   │   │   │   ├── Timeline of the startup Process.tid
│   │   │   │   ├── Toc.tid
│   │   │   │   ├── Transclusion and TextReference.tid
│   │   │   │   ├── UI and Rendering Pipeline.tid
│   │   │   │   ├── Using Modules to build a Single File Application.tid
│   │   │   │   ├── Widgets.tid
│   │   │   │   ├── WikiText Markup.tid
│   │   │   │   ├── Wikitext.tid
│   │   │   │   └── wikimethod module type.tid
│   │   │   ├── from tw5.com/
│   │   │   │   ├── Contributing to the TiddlyWiki Core.tid
│   │   │   │   ├── Contributing to the TiddlyWiki Plugin Library.tid
│   │   │   │   ├── Developing plugins using Node.js and GitHub.tid
│   │   │   │   ├── FakeDomMechanism.tid
│   │   │   │   ├── How to create a translation for TiddlyWiki.tid
│   │   │   │   ├── How to create plugins in the browser.tid
│   │   │   │   ├── How to customise the password prompt.tid
│   │   │   │   ├── JavaScript Macros.tid
│   │   │   │   ├── TiddlyWiki Architecture.tid
│   │   │   │   ├── TiddlyWiki Coding Style Guidelines.tid
│   │   │   │   ├── TiddlyWiki for Developers.tid
│   │   │   │   ├── TiddlyWiki on node-webkit.tid
│   │   │   │   ├── TiddlyWiki5 Development Environment.tid
│   │   │   │   ├── mechanisms/
│   │   │   │   │   ├── BootMechanism.tid
│   │   │   │   │   ├── EncryptionMechanism.tid
│   │   │   │   │   ├── LazyLoadingMechanism.tid
│   │   │   │   │   ├── ParsingMechanism.tid
│   │   │   │   │   ├── RenderingMechanism.tid
│   │   │   │   │   ├── StartupMechanism.tid
│   │   │   │   │   └── TestingMechanism.tid
│   │   │   │   ├── moduletypes/
│   │   │   │   │   ├── SyncAdaptorModules.tid
│   │   │   │   │   ├── WidgetModules.tid
│   │   │   │   │   └── WikiRuleModules.tid
│   │   │   │   └── package.json for node-webkit.tid
│   │   │   ├── images/
│   │   │   │   ├── Server Architecture.svg.meta
│   │   │   │   ├── Startup Modules.svg.meta
│   │   │   │   ├── TiddlyWiki Architecture.svg.meta
│   │   │   │   ├── apptree.svg.meta
│   │   │   │   ├── arch.svg.meta
│   │   │   │   ├── favicon.png.meta
│   │   │   │   ├── index.svg.meta
│   │   │   │   ├── overview.svg.meta
│   │   │   │   └── rendering.svg.meta
│   │   │   ├── indexer modules.tid
│   │   │   ├── javascript-widget-tutorial/
│   │   │   │   ├── Child widgets tutorial.tid
│   │   │   │   ├── Do nothing widget demo.tid
│   │   │   │   ├── Do nothing widget tutorial.tid
│   │   │   │   ├── Hello World demo.tid
│   │   │   │   ├── Hello World widget tutorial.tid
│   │   │   │   ├── Javascript Widget Tutorial.tid
│   │   │   │   ├── Undefined widget demo.tid
│   │   │   │   ├── Undefined widget tutorial.tid
│   │   │   │   ├── Widget attributes demo I.tid
│   │   │   │   ├── Widget attributes demo II.tid
│   │   │   │   ├── Widget attributes tutorial part I.tid
│   │   │   │   ├── Widget attributes tutorial part II.tid
│   │   │   │   ├── Widget refresh demo I.tid
│   │   │   │   ├── Widget refresh demo II.tid
│   │   │   │   ├── Widget refresh demo III.tid
│   │   │   │   ├── Widget refresh tutorial part I.tid
│   │   │   │   ├── Widget refresh tutorial part II.tid
│   │   │   │   ├── Widget refresh tutorial part III.tid
│   │   │   │   ├── domwidget.js
│   │   │   │   ├── domwidget.js.meta
│   │   │   │   ├── donothing.js
│   │   │   │   ├── donothing.js.meta
│   │   │   │   ├── hello-attribute-optimized.js
│   │   │   │   ├── hello-attribute-optimized.js.meta
│   │   │   │   ├── hello-attribute.js
│   │   │   │   ├── hello-attribute.js.meta
│   │   │   │   ├── hello.js
│   │   │   │   ├── hello.js.meta
│   │   │   │   ├── refreshcount.js
│   │   │   │   ├── refreshcount.js.meta
│   │   │   │   ├── tiddlerfield-norefresh.js
│   │   │   │   ├── tiddlerfield-norefresh.js.meta
│   │   │   │   ├── tiddlerfield.js
│   │   │   │   └── tiddlerfield.js.meta
│   │   │   ├── new/
│   │   │   │   ├── Adding Babel Polyfill to TiddlyWiki.tid
│   │   │   │   ├── Data Storage in Single File TiddlyWiki.tid
│   │   │   │   ├── Data Storage.tid
│   │   │   │   ├── Filter Operators.tid
│   │   │   │   ├── HookMechanism.tid
│   │   │   │   ├── Hook_ th-before-importing.tid
│   │   │   │   ├── Hook_ th-closing-tiddler.tid
│   │   │   │   ├── Hook_ th-page-refreshed.tid
│   │   │   │   ├── Hook_ th-page-refreshing.tid
│   │   │   │   ├── Hook__th-deleting-tiddler.tid
│   │   │   │   ├── Hook__th-editing-tiddler.tid
│   │   │   │   ├── Hook__th-importing-file.tid
│   │   │   │   ├── Hook__th-importing-tiddler.tid
│   │   │   │   ├── Hook__th-navigating.tid
│   │   │   │   ├── Hook__th-relinking-tiddler.tid
│   │   │   │   ├── Hook__th-renaming-tiddler.tid
│   │   │   │   ├── Hook__th-rendering-element.tid
│   │   │   │   ├── Hook__th-server-command-post-start.tid
│   │   │   │   ├── Hook_th-make-tiddler-path.tid
│   │   │   │   ├── ImportLogging.tid
│   │   │   │   ├── ParserSubclassingMechanism.tid
│   │   │   │   ├── TiddlyWiki Drag and Drop Interop.tid
│   │   │   │   ├── Using ES2016 for Writing Plugins.tid
│   │   │   │   ├── Using Notifications.tid
│   │   │   │   ├── Using TiddlyWiki as a library.tid
│   │   │   │   ├── WidgetSubclassingMechanism.tid
│   │   │   │   ├── dragndropinterop.html
│   │   │   │   ├── dragndropinterop.html.meta
│   │   │   │   ├── save-dragndropinterop.tid
│   │   │   │   ├── th-opening-default-tiddlers-list.tid
│   │   │   │   └── th-saving-tiddler.tid
│   │   │   └── system/
│   │   │       ├── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   │       ├── ContributionBanner.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── PatchEncryptionPrompt.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── Sources.tid
│   │   │       ├── StaticBanner.tid
│   │   │       ├── configWikiParserRulesInlineWikilink.tid
│   │   │       ├── fontfamily.tid
│   │   │       ├── github-fork-ribbon.tid
│   │   │       ├── language.tid
│   │   │       ├── palette.tid
│   │   │       ├── palettes-Dev.tid
│   │   │       ├── static.content.tid
│   │   │       ├── theme.tid
│   │   │       └── tw5.com-dev-styles.tid
│   │   └── tiddlywiki.info
│   ├── dynaviewdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── AnimationDuration.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── PerformanceInstrumentation.tid
│   │   │   ├── PreserveScrollPosition.tid
│   │   │   ├── RestoreScrollPositionAtStartup.tid
│   │   │   ├── SideBar-Open.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── TableOfContents.tid
│   │   │   ├── ViewTemplate.tid
│   │   │   └── alice/
│   │   │       ├── Alice TableOfContents.json
│   │   │       ├── Alice in Wonderland (sliced).json
│   │   │       ├── Alice in Wonderland License.tid
│   │   │       └── Alice in Wonderland.tid
│   │   └── tiddlywiki.info
│   ├── empty/
│   │   └── tiddlywiki.info
│   ├── es-ES/
│   │   ├── tiddlers/
│   │   │   ├── $__Acknowledgements.tid
│   │   │   ├── $__AdvancedSearch.tid
│   │   │   ├── $__ContributionBanner.tid
│   │   │   ├── $__CurvedText.tid
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__SVGExampleRadius.tid
│   │   │   ├── $__SiteSubtitle.tid
│   │   │   ├── $__UploadName.tid
│   │   │   ├── $__UploadURL.tid
│   │   │   ├── $__core_ui_DefaultSearchResultList.tid
│   │   │   ├── $__core_ui_ListItemTemplate.tid
│   │   │   ├── $__core_ui_SideBar_Open.tid
│   │   │   ├── $__core_ui_TagTemplate.tid
│   │   │   ├── $__core_ui_ViewTemplate_title.tid
│   │   │   ├── $__edition_tw5.com_dropbox-url.js.tid
│   │   │   ├── $__editions_tw5.com_wikitext-macros.tid
│   │   │   ├── $__plugins_tiddlywiki_railroad_readme.tid
│   │   │   ├── $__theme.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_sidebarbreakpoint.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_storyleft.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_storyright.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_storywidth.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_tiddlerwidth.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_themetweaks.tid
│   │   │   ├── A_Gentle_Guide_to_TiddlyWiki.tid
│   │   │   ├── About.tid
│   │   │   ├── Acknowledgements.tid
│   │   │   ├── Adding_Babel_Polyfill_to_TiddlyWiki.tid
│   │   │   ├── Adding_a_Table_of_Contents_to_the_Sidebar.tid
│   │   │   ├── Adding_a_Twitter_Follow_button.tid
│   │   │   ├── Adopt_a_Titles_Policy.tid
│   │   │   ├── AlertMechanism.tid
│   │   │   ├── Articles.tid
│   │   │   ├── Audio.tid
│   │   │   ├── AutoSave.tid
│   │   │   ├── Blog_Edition.tid
│   │   │   ├── BrowserCompatibility.tid
│   │   │   ├── CamelCase.tid
│   │   │   ├── CodeMirror_Plugin.tid
│   │   │   ├── ColourPalettes.tid
│   │   │   ├── Commands.tid
│   │   │   ├── Community.tid
│   │   │   ├── Compose_ballad.tid
│   │   │   ├── Concepts.tid
│   │   │   ├── Configuring_the_default_TiddlerInfo_tab.tid
│   │   │   ├── Contributing.tid
│   │   │   ├── Contributor_License_Agreement.tid
│   │   │   ├── Contributors.tid
│   │   │   ├── Copying_tiddlers_between_TiddlyWiki_files.tid
│   │   │   ├── CountWidget.tid
│   │   │   ├── Creating_SubStories.tid
│   │   │   ├── Creating_a_custom_export_format.tid
│   │   │   ├── Creating_and_editing_tiddlers.tid
│   │   │   ├── Creating_journal_tiddlers.tid
│   │   │   ├── Current_Tiddler.tid
│   │   │   ├── Customise_TiddlyWiki.tid
│   │   │   ├── Customising_search_results.tid
│   │   │   ├── D3_Plugin.tid
│   │   │   ├── DataTiddlers.tid
│   │   │   ├── DateFormat.tid
│   │   │   ├── Date_Fields.tid
│   │   │   ├── DictionaryTiddlers.tid
│   │   │   ├── Discover_TiddlyWiki.tid
│   │   │   ├── Documentation_Macros.tid
│   │   │   ├── Documentation_Style_Guide.tid
│   │   │   ├── Dominant_Append.tid
│   │   │   ├── Editing_Tiddlers_with_Emacs.tid
│   │   │   ├── Editing_Tiddlers_with_Vim.tid
│   │   │   ├── Editions.tid
│   │   │   ├── Empty_Edition.tid
│   │   │   ├── Encryption.tid
│   │   │   ├── Examples.tid
│   │   │   ├── ExternalImages.tid
│   │   │   ├── Features.tid
│   │   │   ├── Filter_Expression.tid
│   │   │   ├── Filter_Parameter.tid
│   │   │   ├── Filter_Run.tid
│   │   │   ├── Filter_Step.tid
│   │   │   ├── Filter_Syntax.tid
│   │   │   ├── Filter_Whitespace.tid
│   │   │   ├── Filters.tid
│   │   │   ├── Formatting_text_in_TiddlyWiki.tid
│   │   │   ├── Forums.tid
│   │   │   ├── Full_Edition.tid
│   │   │   ├── Future_Proof.tid
│   │   │   ├── Get_the_Ring.tid
│   │   │   ├── GettingStarted.tid
│   │   │   ├── GettingStarted_-_Android.tid
│   │   │   ├── GettingStarted_-_Chrome.tid
│   │   │   ├── GettingStarted_-_Firefox.tid
│   │   │   ├── GettingStarted_-_Internet_Explorer.tid
│   │   │   ├── GettingStarted_-_Node.js.tid
│   │   │   ├── GettingStarted_-_Safari.tid
│   │   │   ├── GettingStarted_-_iOS.tid
│   │   │   ├── Getting_Started_Video.tid
│   │   │   ├── Glosario_en-GB_-__es-ES.tid
│   │   │   ├── Go_to_Mordor.tid
│   │   │   ├── Hard_and_Soft_Links.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── HelloThumbnail_-_Classic.tid
│   │   │   ├── HelloThumbnail_-_Developers.tid
│   │   │   ├── HelloThumbnail_-_Gentle_Guide.tid
│   │   │   ├── HelloThumbnail_-_HelpingTiddlyWiki.tid
│   │   │   ├── HelloThumbnail_-_Introduction_Video.tid
│   │   │   ├── HelloThumbnail_-_Latest_Version.tid
│   │   │   ├── Hidden_Setting__Search_AutoFocus.tid
│   │   │   ├── Hidden_Setting__Typing_Refresh_Delay.tid
│   │   │   ├── Hidden_Settings.tid
│   │   │   ├── Highlight_Plugin.tid
│   │   │   ├── How_to_add_a_banner_for_GitHub_contributions.tid
│   │   │   ├── How_to_add_a_new_tab_to_the_sidebar.tid
│   │   │   ├── How_to_apply_custom_styles_by_tag.tid
│   │   │   ├── How_to_export_tiddlers.tid
│   │   │   ├── How_to_put_the_last_modification_date_in_a_banner.tid
│   │   │   ├── ImageGallery_Example.tid
│   │   │   ├── Images_in_WikiText.tid
│   │   │   ├── ImportTiddlers.tid
│   │   │   ├── Improving_TiddlyWiki_Documentation.tid
│   │   │   ├── InfoPanel.tid
│   │   │   ├── Informacion_para_traductores.tid
│   │   │   ├── Installing_TiddlyWiki_on_Node.js.tid
│   │   │   ├── Installing_a_plugin_from_the_plugin_library.tid
│   │   │   ├── Instruction_Tiddlers.tid
│   │   │   ├── Interactive_Git_Documentation_by_Devin_Weaver.tid
│   │   │   ├── Introducing_TiddlyDesktop_Video.tid
│   │   │   ├── Introduction_Video.tid
│   │   │   ├── Introduction_to_filter_notation.tid
│   │   │   ├── JavaScript.tid
│   │   │   ├── KaTeX_Plugin.tid
│   │   │   ├── KeyboardShortcuts.tid
│   │   │   ├── Kill_the_Dragon.tid
│   │   │   ├── Languages.tid
│   │   │   ├── Latest.tid
│   │   │   ├── LazyLoading.tid
│   │   │   ├── Learning.tid
│   │   │   ├── ListField.tid
│   │   │   ├── ListWidget.tid
│   │   │   ├── Make_the_beds.tid
│   │   │   ├── Making_curved_text_with_SVG.tid
│   │   │   ├── Manually_installing_a_plugin.tid
│   │   │   ├── Markdown_Plugin.tid
│   │   │   ├── MathML.tid
│   │   │   ├── Meetups.tid
│   │   │   ├── Messages.tid
│   │   │   ├── MiSubHistoria.tid
│   │   │   ├── Modals.tid
│   │   │   ├── MySubHistoryList.tid
│   │   │   ├── MySubStoryList.tid
│   │   │   ├── Navigating_between_open_tiddlers.tid
│   │   │   ├── NavigatorWidget.tid
│   │   │   ├── Notifications.tid
│   │   │   ├── OXTWIG.tid
│   │   │   ├── Obadiah_TOC.tid
│   │   │   ├── Order_of_Tagged_Tiddlers.tid
│   │   │   ├── PESpot_Lesson_Planner_by_Patrick_Detzner.tid
│   │   │   ├── Page_and_tiddler_layout_customisation.tid
│   │   │   ├── PermaLinks.tid
│   │   │   ├── Philosophy_of_Tiddlers.tid
│   │   │   ├── Platforms.tid
│   │   │   ├── Plugin_Editions.tid
│   │   │   ├── Plugins.tid
│   │   │   ├── Preserving_open_tiddlers_at_startup.tid
│   │   │   ├── Quine.tid
│   │   │   ├── Railroad_Diagrams.tid
│   │   │   ├── Railroad_Plugin.tid
│   │   │   ├── Reference.tid
│   │   │   ├── Reference_Tiddlers.tid
│   │   │   ├── Resources.tid
│   │   │   ├── Resume_Builder_Edition.tid
│   │   │   ├── SafeMode.tid
│   │   │   ├── SampleAlert.tid
│   │   │   ├── SampleModal.tid
│   │   │   ├── SampleNotification.tid
│   │   │   ├── SampleWizard.tid
│   │   │   ├── SampleWizard2.tid
│   │   │   ├── Saving.tid
│   │   │   ├── Saving_on_Android.tid
│   │   │   ├── Saving_on_InternetExplorer.tid
│   │   │   ├── Saving_on_Safari.tid
│   │   │   ├── Saving_on_TiddlySpot.tid
│   │   │   ├── Saving_on_a_PHP_Server.tid
│   │   │   ├── Saving_on_iPad_iPhone.tid
│   │   │   ├── Saving_with_TiddlyFox.tid
│   │   │   ├── Saving_with_TiddlyFox_on_Android.tid
│   │   │   ├── Saving_with_TiddlyIE.tid
│   │   │   ├── Saving_with_the_HTML5_fallback_saver.tid
│   │   │   ├── Saving_with_the_HTML5_saver.tid
│   │   │   ├── Scalability.tid
│   │   │   ├── Searching_in_TiddlyWiki.tid
│   │   │   ├── Selection_Constructors.tid
│   │   │   ├── Setting_a_favicon.tid
│   │   │   ├── Setting_a_page_background_image.tid
│   │   │   ├── Sharing_a_TiddlyWiki_on_Dropbox.tid
│   │   │   ├── Sharing_your_tiddlers_with_others.tid
│   │   │   ├── Signing_the_Contributor_License_Agreement.tid
│   │   │   ├── Simple_Zork-like_Game_by_Jed_Carty.tid
│   │   │   ├── SingleFileApplication.tid
│   │   │   ├── SinglePageApplication.tid
│   │   │   ├── Some_of_the_things_you_can_do_with_TiddlyWiki.tid
│   │   │   ├── Spelling.tid
│   │   │   ├── Structuring_TiddlyWiki.tid
│   │   │   ├── TW2Parser_Plugin.tid
│   │   │   ├── TagTiddlers.tid
│   │   │   ├── Tagging.tid
│   │   │   ├── TaskManagementExample.tid
│   │   │   ├── Technical_Prose_Style.tid
│   │   │   ├── Ten_reasons_to_switch_to_TiddlyWiki.tid
│   │   │   ├── Text-Slicer_Edition.tid
│   │   │   ├── The_First_Rule_of_Using_TiddlyWiki.tid
│   │   │   ├── TiddlerLinks.tid
│   │   │   ├── Tiddler_Structure.tid
│   │   │   ├── Tiddler_Title_Policy.tid
│   │   │   ├── Tiddlers.tid
│   │   │   ├── TiddlyDesktop.tid
│   │   │   ├── TiddlySpace.tid
│   │   │   ├── TiddlySpot.tid
│   │   │   ├── TiddlyWeb.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   ├── TiddlyWiki5.tid
│   │   │   ├── TiddlyWikiClassic.tid
│   │   │   ├── TiddlyWikiFolders.tid
│   │   │   ├── TiddlyWiki_Hangouts.tid
│   │   │   ├── TiddlyWiki_Video_Tutorials_by_Francis_Meetze.tid
│   │   │   ├── TiddlyWiki_in_the_Sky_for_TiddlyWeb.tid
│   │   │   ├── TiddlyWiki_on_Firefox_for_Android_Video.tid
│   │   │   ├── TiddlyWiki_on_Node.js.tid
│   │   │   ├── TitleField.tid
│   │   │   ├── Title_List.tid
│   │   │   ├── Title_Selection.tid
│   │   │   ├── Tutorials.tid
│   │   │   ├── Typography.tid
│   │   │   ├── Uninstalling_a_plugin.tid
│   │   │   ├── Upgrading.tid
│   │   │   ├── Upgrading_TiddlyWiki_on_Node.js.tid
│   │   │   ├── UsingSVG.tid
│   │   │   ├── Using_Stylesheets.tid
│   │   │   ├── Using_TiddlyWiki_on_Node.js.tid
│   │   │   ├── Using_links_to_navigate_between_tiddlers.tid
│   │   │   ├── Videos.tid
│   │   │   ├── What_happened_to_the_original_TiddlyWiki_.tid
│   │   │   ├── WidgetMessage__tm-add-field.tid
│   │   │   ├── WidgetMessage__tm-add-tag.tid
│   │   │   ├── WidgetMessage__tm-auto-save-wiki.tid
│   │   │   ├── WidgetMessage__tm-browser-refresh.tid
│   │   │   ├── WidgetMessage__tm-cancel-tiddler.tid
│   │   │   ├── WidgetMessage__tm-clear-password.tid
│   │   │   ├── WidgetMessage__tm-close-all-tiddlers.tid
│   │   │   ├── WidgetMessage__tm-close-other-tiddlers.tid
│   │   │   ├── WidgetMessage__tm-close-tiddler.tid
│   │   │   ├── WidgetMessage__tm-delete-tiddler.tid
│   │   │   ├── WidgetMessage__tm-download-file.tid
│   │   │   ├── WidgetMessage__tm-edit-tiddler.tid
│   │   │   ├── WidgetMessage__tm-full-screen.tid
│   │   │   ├── WidgetMessage__tm-home.tid
│   │   │   ├── WidgetMessage__tm-import-tiddlers.tid
│   │   │   ├── WidgetMessage__tm-login.tid
│   │   │   ├── WidgetMessage__tm-logout.tid
│   │   │   ├── WidgetMessage__tm-modal.tid
│   │   │   ├── WidgetMessage__tm-navigate.tid
│   │   │   ├── WidgetMessage__tm-new-tiddler.tid
│   │   │   ├── WidgetMessage__tm-notify.tid
│   │   │   ├── WidgetMessage__tm-perform-import.tid
│   │   │   ├── WidgetMessage__tm-permalink.tid
│   │   │   ├── WidgetMessage__tm-permaview.tid
│   │   │   ├── WidgetMessage__tm-remove-field.tid
│   │   │   ├── WidgetMessage__tm-remove-tag.tid
│   │   │   ├── WidgetMessage__tm-save-tiddler.tid
│   │   │   ├── WidgetMessage__tm-save-wiki.tid
│   │   │   ├── WidgetMessage__tm-server-refresh.tid
│   │   │   ├── WidgetMessage__tm-set-password.tid
│   │   │   ├── Windows_HTA_Hack.tid
│   │   │   ├── Working_with_TiddlyWiki.tid
│   │   │   ├── _A_Thesis_Notebook__by_Alberto_Molina.tid
│   │   │   ├── _PETTIL_-_Forth_for_the_Commodore_PET__by_Charlie_Hitselberger.tid
│   │   │   ├── _TiddlyWiki_for_Scholars__by_Alberto_Molina.tid
│   │   │   ├── images/
│   │   │   │   ├── favicon.png.meta
│   │   │   │   └── green_favicon.png.meta
│   │   │   ├── prueba.tid
│   │   │   ├── system/
│   │   │   │   ├── download-empty-button.tid
│   │   │   │   ├── download-empty.tid
│   │   │   │   └── language.tid
│   │   │   ├── task.tid
│   │   │   └── tv-auto-open-on-import_Variable.tid
│   │   └── tiddlywiki.info
│   ├── es-ES-server/
│   │   ├── tiddlers/
│   │   │   ├── config-Navigation-UpdateAddressBar.tid
│   │   │   ├── config-more-button.tid
│   │   │   └── system/
│   │   │       └── favicon.png.meta
│   │   └── tiddlywiki.info
│   ├── fr-FR/
│   │   ├── tiddlers/
│   │   │   ├── $ _config_ViewTemplateTitleFilters_fr-default.tid
│   │   │   ├── $ _core_ui_ViewTemplate_title_fr-default.tid
│   │   │   ├── $__Acknowledgements.tid
│   │   │   ├── $__ContributionBanner.tid
│   │   │   ├── $__CurvedText.tid
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__SiteSubtitle.tid
│   │   │   ├── $__core_ui_DefaultSearchResultList.tid
│   │   │   ├── $__core_ui_ListItemTemplate.tid
│   │   │   ├── $__deprecated.tid
│   │   │   ├── $__editions_fr-FR_CSS Stylesheets_mesStyles.tid
│   │   │   ├── $__editions_fr-FR_CSS Stylesheets_utils.tid
│   │   │   ├── $__editions_fr-FR_CSS stylesheets_latex.tid
│   │   │   ├── $__editions_fr-FR_Macros_list.tid
│   │   │   ├── $__editions_fr-FR_Macros_timeline-title.tid
│   │   │   ├── $__editions_fr-FR_Macros_toc-caption.tid
│   │   │   ├── $__editions_fr-FR_Macros_wikitexte-exemple.tid
│   │   │   ├── $__editions_tw5.com_doc-macros.tid
│   │   │   ├── $__editions_tw5.com_macro-examples_say-hi-using-variables.tid
│   │   │   ├── $__editions_tw5.com_macro-examples_say-hi.tid
│   │   │   ├── $__editions_tw5.com_operator-macros.tid
│   │   │   ├── $__editions_tw5.com_railroad_macro-parameter-value.tid
│   │   │   ├── $__editions_tw5.com_variable-macros.tid
│   │   │   ├── $__editions_tw5.com_version-macros.tid
│   │   │   ├── $__language_Help_build.tid
│   │   │   ├── $__plugins_tiddlywiki_railroad_readme.tid
│   │   │   ├── $__plugins_tiddlywiki_railroad_syntax-string.tid
│   │   │   ├── $__plugins_tiddlywiki_railroad_syntax.tid
│   │   │   ├── About.tid
│   │   │   ├── Acknowledgements.tid
│   │   │   ├── Adding_a_Twitter_Follow_button.tid
│   │   │   ├── Adopt a Titles Policy.tid
│   │   │   ├── AllTiddlers.tid
│   │   │   ├── Articles.tid
│   │   │   ├── AutoSave.tid
│   │   │   ├── BT Acquisition.tid
│   │   │   ├── BT.tid
│   │   │   ├── Base64.tid
│   │   │   ├── BrowserCompatibility.tid
│   │   │   ├── BuildCommand.tid
│   │   │   ├── ButtonWidget.tid
│   │   │   ├── CamelCase.tid
│   │   │   ├── Cascading_Style_Sheets.tid
│   │   │   ├── Changes to filters in 5.0.9-beta.tid
│   │   │   ├── Chinese (Simplified) Edition.tid
│   │   │   ├── Chinese (Traditional) Edition.tid
│   │   │   ├── CodeMirror_Plugin.tid
│   │   │   ├── Codes HTML.tid
│   │   │   ├── ColourPalettes.tid
│   │   │   ├── Comma-Separated_Values.tid
│   │   │   ├── Commands.tid
│   │   │   ├── Community Links Aggregator.tid
│   │   │   ├── Community.tid
│   │   │   ├── Compose ballad.tid
│   │   │   ├── Concepts.tid
│   │   │   ├── Configurations.tid
│   │   │   ├── ContentType.tid
│   │   │   ├── Contents.tid
│   │   │   ├── Contributing.tid
│   │   │   ├── ContributingTemplate.tid
│   │   │   ├── Contributors.tid
│   │   │   ├── Copying_tiddlers_between_TiddlyWiki_files.tid
│   │   │   ├── Core_Variables.tid
│   │   │   ├── Creating and editing tiddlers.tid
│   │   │   ├── Creating_SubStories.tid
│   │   │   ├── Creating_a_custom_export_format.tid
│   │   │   ├── Creating_journal_tiddlers.tid
│   │   │   ├── Current_Tiddler.tid
│   │   │   ├── Customise TiddlyWiki.tid
│   │   │   ├── Customising_search_results.tid
│   │   │   ├── D3_Plugin.tid
│   │   │   ├── DataTiddlers.tid
│   │   │   ├── Data_URI.tid
│   │   │   ├── DateFormat.tid
│   │   │   ├── Date_Fields.tid
│   │   │   ├── Definitions.tid
│   │   │   ├── Deprecated - What does it mean.tid
│   │   │   ├── Developers.tid
│   │   │   ├── Development of TiddlyWiki5.tid
│   │   │   ├── DictionaryTiddlers.tid
│   │   │   ├── Discover TiddlyWiki.tid
│   │   │   ├── Document_Object_Model.tid
│   │   │   ├── Documentation Style Guide.tid
│   │   │   ├── Documentation pour les traducteurs.tid
│   │   │   ├── Documentation_Macros.tid
│   │   │   ├── Dominant_Append.tid
│   │   │   ├── DraftMechanism.tid
│   │   │   ├── EditTextWidget.tid
│   │   │   ├── Editing_Tiddlers_with_Emacs.tid
│   │   │   ├── Editions.tid
│   │   │   ├── Empty Edition.tid
│   │   │   ├── Encryption.tid
│   │   │   ├── Environment Variables on Node.js.tid
│   │   │   ├── Example_Table_of_Contents__Expandable.tid
│   │   │   ├── Examples.tid
│   │   │   ├── Exporter un sous-ensemble de tiddlers.tid
│   │   │   ├── ExternalImages.tid
│   │   │   ├── Features.tid
│   │   │   ├── Federatial.tid
│   │   │   ├── FederatialLimited.tid
│   │   │   ├── Filter Expression.tid
│   │   │   ├── Filter Parameter.tid
│   │   │   ├── Filter Run.tid
│   │   │   ├── Filter Step.tid
│   │   │   ├── Filter Syntax.tid
│   │   │   ├── Filter Whitespace.tid
│   │   │   ├── FilterOperator_ fields.tid
│   │   │   ├── FilterOperators.tid
│   │   │   ├── Filter_Operators.tid
│   │   │   ├── Filters.tid
│   │   │   ├── First.tid
│   │   │   ├── FirstOne.tid
│   │   │   ├── FirstThree.tid
│   │   │   ├── FirstTwo.tid
│   │   │   ├── Formatting text in TiddlyWiki.tid
│   │   │   ├── Forums.tid
│   │   │   ├── French (France) Edition.tid
│   │   │   ├── Full_Edition.tid
│   │   │   ├── Future.tid
│   │   │   ├── Future_Proof.tid
│   │   │   ├── German (Austria) Edition.tid
│   │   │   ├── German (Germany) Edition.tid
│   │   │   ├── Get the Ring.tid
│   │   │   ├── Getting Started Video.tid
│   │   │   ├── GettingStarted - Android.tid
│   │   │   ├── GettingStarted - Chrome.tid
│   │   │   ├── GettingStarted - Firefox.tid
│   │   │   ├── GettingStarted - Internet Explorer.tid
│   │   │   ├── GettingStarted - Node.js.tid
│   │   │   ├── GettingStarted - Safari.tid
│   │   │   ├── GettingStarted - iOS.tid
│   │   │   ├── GettingStarted.tid
│   │   │   ├── GitHub.tid
│   │   │   ├── Glossaire en-GB -_ fr-FR.tid
│   │   │   ├── Go to Mordor.tid
│   │   │   ├── GroupedLists.tid
│   │   │   ├── Growth of TiddlyWiki.tid
│   │   │   ├── HTML in WikiText.tid
│   │   │   ├── Hard_and_Soft_Links.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── HelloThumbnail - Classic.tid
│   │   │   ├── HelloThumbnail - Developers.tid
│   │   │   ├── HelloThumbnail - Gentle Guide.tid
│   │   │   ├── HelloThumbnail - HelpingTiddlyWiki.tid
│   │   │   ├── HelloThumbnail - Introduction Video.tid
│   │   │   ├── HelloThumbnail - Latest Version.tid
│   │   │   ├── HelpingTiddlyWiki.tid
│   │   │   ├── Highlight_Plugin.tid
│   │   │   ├── History of TiddlyWiki.tid
│   │   │   ├── HistoryMechanism.tid
│   │   │   ├── How to add a banner for GitHub contributions.tid
│   │   │   ├── How to add a new tab to the sidebar.tid
│   │   │   ├── How to build a TiddlyWiki5 from individual tiddlers.tid
│   │   │   ├── How to export tiddlers.tid
│   │   │   ├── How_to_apply_custom_styles_by_tag.tid
│   │   │   ├── How_to_put_the_last_modification_date_in_a_banner.tid
│   │   │   ├── HyperText_Markup_Language.tid
│   │   │   ├── ImageGallery Example.tid
│   │   │   ├── ImageWidget.tid
│   │   │   ├── Images in WikiText.tid
│   │   │   ├── Importing Tiddlers.tid
│   │   │   ├── Improving TiddlyWiki Documentation.tid
│   │   │   ├── InfoPanel.tid
│   │   │   ├── Informations pour les traducteurs.tid
│   │   │   ├── Instruction_Tiddlers.tid
│   │   │   ├── Introducing TiddlyDesktop Video.tid
│   │   │   ├── Introduction Video.tid
│   │   │   ├── Introduction to Filters.tid
│   │   │   ├── Introduction_to_filter_notation.tid
│   │   │   ├── JSONTiddlers.tid
│   │   │   ├── JavaScript.tid
│   │   │   ├── JavaScript_Object_Notation.tid
│   │   │   ├── JeremyRuston.tid
│   │   │   ├── Jermolene.tid
│   │   │   ├── KaTeX_Plugin.tid
│   │   │   ├── KeyboardShortcuts.tid
│   │   │   ├── Kill the Dragon.tid
│   │   │   ├── Languages.tid
│   │   │   ├── Latest.tid
│   │   │   ├── Launch of TiddlyWiki.tid
│   │   │   ├── LazyLoading.tid
│   │   │   ├── Learning.tid
│   │   │   ├── Leaving BT.tid
│   │   │   ├── Lexique.tid
│   │   │   ├── Linking in WikiText.tid
│   │   │   ├── ListField.tid
│   │   │   ├── ListWidget.tid
│   │   │   ├── MacroCallWidget.tid
│   │   │   ├── Macro_Call_Syntax.tid
│   │   │   ├── Macro_Calls_in_WikiText_(Examples).tid
│   │   │   ├── Macro_Definition_Syntax.tid
│   │   │   ├── Macro_Definitions_in_WikiText.tid
│   │   │   ├── Macro_Syntax.tid
│   │   │   ├── Macros in WikiText.tid
│   │   │   ├── Macros.tid
│   │   │   ├── Make the beds.tid
│   │   │   ├── MakeLibraryCommand.tid
│   │   │   ├── Making curved text with SVG.tid
│   │   │   ├── Markdown Plugin.tid
│   │   │   ├── Markdown.tid
│   │   │   ├── MathML.tid
│   │   │   ├── Mechanisms.tid
│   │   │   ├── Meetups.tid
│   │   │   ├── Messages.tid
│   │   │   ├── ModuleType.tid
│   │   │   ├── Modules.tid
│   │   │   ├── Motovun Jack.svg.tid
│   │   │   ├── NW.js.tid
│   │   │   ├── Navigating between open tiddlers.tid
│   │   │   ├── Node.js.tid
│   │   │   ├── NowMacro.tid
│   │   │   ├── Obadiah_TOC.tid
│   │   │   ├── OpenSource.tid
│   │   │   ├── Order_of_Tagged_Tiddlers.tid
│   │   │   ├── Origins of Tiddlywiki.tid
│   │   │   ├── Osmosoft and TiddlySpace.tid
│   │   │   ├── Osmosoft.tid
│   │   │   ├── PESpot_Lesson_Planner_by_Patrick_Detzner.tid
│   │   │   ├── Page and tiddler layout customisation.tid
│   │   │   ├── Percent_Encoding.tid
│   │   │   ├── PermaLinks.tid
│   │   │   ├── Philosophy of Tiddlers.tid
│   │   │   ├── Platforms.tid
│   │   │   ├── Plugins.tid
│   │   │   ├── Preserving_open_tiddlers_at_startup.tid
│   │   │   ├── Quine.tid
│   │   │   ├── Railroad_Plugin.tid
│   │   │   ├── ReadMe.tid
│   │   │   ├── ReadMeBinFolder.tid
│   │   │   ├── Reference.tid
│   │   │   ├── Reference_Tiddlers.tid
│   │   │   ├── Release 5.1.2.tid
│   │   │   ├── ReleaseTemplate.tid
│   │   │   ├── Release_5.1.8.tid
│   │   │   ├── Releases.tid
│   │   │   ├── ReportingBugs.tid
│   │   │   ├── Resources.tid
│   │   │   ├── RevealWidget.tid
│   │   │   ├── RoadMap.tid
│   │   │   ├── SafeMode.tid
│   │   │   ├── Sainte_Anastasie.png.tid
│   │   │   ├── SampleNotification.tid
│   │   │   ├── SampleTabFour.tid
│   │   │   ├── SampleTabOne.tid
│   │   │   ├── SampleTabThree.tid
│   │   │   ├── SampleTabTwo.tid
│   │   │   ├── SampleWizard.tid
│   │   │   ├── SampleWizard2.tid
│   │   │   ├── Saving with the HTML5 saver.tid
│   │   │   ├── Scalability.tid
│   │   │   ├── Searching_in_TiddlyWiki.tid
│   │   │   ├── Selection_Constructors.tid
│   │   │   ├── SetVariableWidget.tid
│   │   │   ├── SetWidget.tid
│   │   │   ├── Setting a favicon.tid
│   │   │   ├── Setting_a_page_background_image.tid
│   │   │   ├── ShadowTiddlers.tid
│   │   │   ├── Share Plugin.tid
│   │   │   ├── Sharing a TiddlyWiki on Dropbox.tid
│   │   │   ├── Sharing your tiddlers with others.tid
│   │   │   ├── Simple_Zork-like_Game_by_Jed_Carty.tid
│   │   │   ├── Some of the things you can do with TiddlyWiki.tid
│   │   │   ├── Spelling.tid
│   │   │   ├── Structuring TiddlyWiki.tid
│   │   │   ├── Styles and Classes in WikiText.tid
│   │   │   ├── SystemTags.tid
│   │   │   ├── SystemTiddlers.tid
│   │   │   ├── TW2Parser_Plugin.tid
│   │   │   ├── TabbedExampleType.tid
│   │   │   ├── Table-of-Contents_Macros.tid
│   │   │   ├── Table-of-Contents_Macros_(Examples).tid
│   │   │   ├── TableOfContents.tid
│   │   │   ├── TableOfContentsMacro Expandable Example.tid
│   │   │   ├── TableOfContentsMacro Selective Expandable Example.tid
│   │   │   ├── TableOfContentsMacro Simple Example.tid
│   │   │   ├── TableOfContentsMacro Sorted Expandable Example.tid
│   │   │   ├── TableOfContentsMacro Tabbed Example.tid
│   │   │   ├── TableOfContentsMacro Tabbed External Example.tid
│   │   │   ├── TableOfContentsMacro.tid
│   │   │   ├── TabsMacro.tid
│   │   │   ├── TagTiddlers.tid
│   │   │   ├── Tagging.tid
│   │   │   ├── TaskManagementExample.tid
│   │   │   ├── Technical_Prose_Style.tid
│   │   │   ├── TemplateTiddlers.tid
│   │   │   ├── Ten reasons to switch to TiddlyWiki.tid
│   │   │   ├── TextReference.tid
│   │   │   ├── The First Rule of Using TiddlyWiki.tid
│   │   │   ├── Third.tid
│   │   │   ├── TiddlerFields.tid
│   │   │   ├── TiddlerFiles.tid
│   │   │   ├── TiddlerLinks.tid
│   │   │   ├── Tiddler_Structure.tid
│   │   │   ├── Tiddler_Title_Policy.tid
│   │   │   ├── Tiddlers.tid
│   │   │   ├── TiddlyFox Apocalypse.tid
│   │   │   ├── TiddlyFox.tid
│   │   │   ├── TiddlyWiki Hangouts.tid
│   │   │   ├── TiddlyWiki on Firefox for Android Video.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   ├── TiddlyWiki2ReadMe.tid
│   │   │   ├── TiddlyWiki5.tid
│   │   │   ├── TiddlyWiki5_Versioning.tid
│   │   │   ├── TiddlyWikiFiles.tid
│   │   │   ├── TiddlyWikiFolders.tid
│   │   │   ├── TiddlyWiki_Releases.tid
│   │   │   ├── TiddlyWiki_in_the_Sky_for_TiddlyWeb.tid
│   │   │   ├── Tirets.tid
│   │   │   ├── Title_List.tid
│   │   │   ├── Title_Selection.tid
│   │   │   ├── Transclusion.tid
│   │   │   ├── Transclusion_Basic_Usage.tid
│   │   │   ├── Tutorials.tid
│   │   │   ├── URI.tid
│   │   │   ├── Upgrading TiddlyWiki on Node.js.tid
│   │   │   ├── Upgrading.tid
│   │   │   ├── Using TiddlyWiki on Node.js.tid
│   │   │   ├── UsingSVG.tid
│   │   │   ├── Using_Stylesheets.tid
│   │   │   ├── Using_links_to_navigate_between_tiddlers.tid
│   │   │   ├── Variables.tid
│   │   │   ├── ViewWidget.tid
│   │   │   ├── What happened to the original TiddlyWiki_.tid
│   │   │   ├── WidgetMessage_ tm-home.tid
│   │   │   ├── Widgets.tid
│   │   │   ├── Wiki.tid
│   │   │   ├── Working with TiddlyWiki.tid
│   │   │   ├── _A Thesis Notebook_ by Alberto Molina.tid
│   │   │   ├── _BJTools_ by buggyj.tid
│   │   │   ├── _BrainTest - tools for a digital brain_ by Danielo Rodriguez.tid
│   │   │   ├── _Briefcase_ by Roma Hicks.tid
│   │   │   ├── _CouchDB Adaptor_ by William Shallum.tid
│   │   │   ├── _PETTIL - Forth for the Commodore PET_ by Charlie Hitselberger.tid
│   │   │   ├── _TiddlyWiki for Scholars_ by Alberto Molina.tid
│   │   │   ├── _TiddlyWiki guide FR_ by Sylvain Naudin.tid
│   │   │   ├── _TiddlyWiki5 Bourbon_ by mkt_memory.tid
│   │   │   ├── _Un wiki sur votre BiblioBox avec TiddlyWiki.tid
│   │   │   ├── community/
│   │   │   │   ├── editions/
│   │   │   │   │   └── _Noteself_ by Danielo Rodriguez.tid
│   │   │   │   └── resources/
│   │   │   │       ├── TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid
│   │   │   │       ├── TiddlyDrive Add-on for Google Drive by Joshua Stubbs.tid
│   │   │   │       ├── TiddlyServer by Arlen Beiler.tid
│   │   │   │       ├── Twexe_ Single File Tiddlywiki5 executable.tid
│   │   │   │       ├── _Timimi_ Extension and executable by Riz.tid
│   │   │   │       ├── _file-backups_ Extension for Firefox by pmario.tid
│   │   │   │       └── _savetiddlers_ Extension for Firefox by buggyj.tid
│   │   │   ├── concepts/
│   │   │   │   ├── Pragma.tid
│   │   │   │   └── WikiText.tid
│   │   │   ├── currentTiddler_Variable.tid
│   │   │   ├── currentTiddler_Variable_(Examples).tid
│   │   │   ├── definitions/
│   │   │   │   └── TiddlyDesktop.tid
│   │   │   ├── done.tid
│   │   │   ├── dumpvariables_Macro.tid
│   │   │   ├── dumpvariables_Macro_(Examples).tid
│   │   │   ├── gettingstarted/
│   │   │   │   ├── GettingStarted - Internet Explorer.tid
│   │   │   │   └── GettingStarted - Safari.tid
│   │   │   ├── hellothere/
│   │   │   │   └── A Gentle Guide to TiddlyWiki.tid
│   │   │   ├── howtos/
│   │   │   │   ├── How to Customize TiddlyDesktop.tid
│   │   │   │   └── Windows HTA Hack.tid
│   │   │   ├── images/
│   │   │   │   ├── favicon.png.meta
│   │   │   │   └── green_favicon.png.meta
│   │   │   ├── list-links_Macro.tid
│   │   │   ├── list-links_Macro_(Examples).tid
│   │   │   ├── nodejs/
│   │   │   │   ├── Installing TiddlyWiki on Node.js.tid
│   │   │   │   ├── Serving TW5 from Android.tid
│   │   │   │   └── TiddlyWiki on Node.js.tid
│   │   │   ├── sampletag1.tid
│   │   │   ├── sampletag2.tid
│   │   │   ├── saving/
│   │   │   │   ├── Emergency Tiddler Export.tid
│   │   │   │   ├── Example config-tiddlyweb-host for IIS.tid
│   │   │   │   ├── Example package.json for IIS.tid
│   │   │   │   ├── Example tiddlywiki.info for IIS.tid
│   │   │   │   ├── Example web.config for IIS.tid
│   │   │   │   ├── Installing TiddlyWiki on Microsoft Internet Information Server.tid
│   │   │   │   ├── Saving on Android.tid
│   │   │   │   ├── Saving on Browser with File System Access API.tid
│   │   │   │   ├── Saving on TidGi Desktop.tid
│   │   │   │   ├── Saving on TiddlyDesktop.tid
│   │   │   │   ├── Saving on TiddlyHost.tid
│   │   │   │   ├── Saving on TiddlySpot.tid
│   │   │   │   ├── Saving on a PHP Server.tid
│   │   │   │   ├── Saving on iPad_iPhone.tid
│   │   │   │   ├── Saving to a Git service.tid
│   │   │   │   ├── Saving via WebDAV.tid
│   │   │   │   ├── Saving via a Minimal Ruby Server.tid
│   │   │   │   ├── Saving with Polly.tid
│   │   │   │   ├── Saving with TW Receiver.tid
│   │   │   │   ├── Saving with TiddlyFox on Android.tid
│   │   │   │   ├── Saving with TiddlyFox.tid
│   │   │   │   ├── Saving with TiddlyIE.tid
│   │   │   │   ├── Saving with the HTML5 fallback saver.tid
│   │   │   │   ├── Saving.tid
│   │   │   │   └── TiddlyWiki Cloud.tid
│   │   │   ├── storyTiddler_Variable.tid
│   │   │   ├── system/
│   │   │   │   ├── $__core_macros_list.tid
│   │   │   │   ├── $__core_macros_tag.tid
│   │   │   │   ├── $__core_ui_SideBar_Open.tid
│   │   │   │   ├── $__core_ui_TagPickerTagTemplate.tid
│   │   │   │   ├── $__editions_fr-FR_util-macros.tid
│   │   │   │   ├── $__editions_tw5.com_wikitext-macros.tid
│   │   │   │   ├── download-empty-button.tid
│   │   │   │   ├── download-empty.tid
│   │   │   │   ├── language.tid
│   │   │   │   └── tw5.com-card-template.tid
│   │   │   ├── task.tid
│   │   │   ├── tiddlydesktop/
│   │   │   │   └── TiddlyDesktop_Releases.tid
│   │   │   ├── widgets/
│   │   │   │   └── TranscludeWidget.tid
│   │   │   └── wikitext/
│   │   │       ├── Block Quotes in WikiText.tid
│   │   │       ├── Code Blocks in WikiText.tid
│   │   │       ├── Dashes in WikiText.tid
│   │   │       ├── Definitions in WikiText.tid
│   │   │       ├── Formatting in WikiText.tid
│   │   │       ├── Hard Linebreaks in WikiText.tid
│   │   │       ├── Headings in WikiText.tid
│   │   │       ├── Horizontal Rules in WikiText.tid
│   │   │       ├── Lists in WikiText.tid
│   │   │       ├── Macro Calls in WikiText.tid
│   │   │       ├── Paragraphs in WikiText.tid
│   │   │       ├── Tables in WikiText.tid
│   │   │       ├── Transclusion and Substitution.tid
│   │   │       ├── Transclusion in WikiText.tid
│   │   │       ├── Transclusion with Templates.tid
│   │   │       ├── Typed Blocks in WikiText.tid
│   │   │       ├── Variables in WikiText.tid
│   │   │       ├── Widgets in WikiText.tid
│   │   │       └── parser/
│   │   │           ├── Block Mode WikiText (Examples).tid
│   │   │           ├── Block Mode WikiText.tid
│   │   │           ├── Inline Mode WikiText.tid
│   │   │           ├── Places where the parser ignores WikiText.tid
│   │   │           ├── WikiText Parser Modes.tid
│   │   │           ├── WikiText parser mode HTML examples.tid
│   │   │           ├── WikiText parser mode transitions.tid
│   │   │           ├── WikiText parser mode_ macro examples.tid
│   │   │           ├── WikiText parser mode_ transclusion examples.tid
│   │   │           └── table-example.tid
│   │   └── tiddlywiki.info
│   ├── fr-FR-server/
│   │   ├── tiddlers/
│   │   │   ├── config-Navigation-UpdateAddressBar.tid
│   │   │   ├── config-more-button.tid
│   │   │   └── system/
│   │   │       └── favicon.png.meta
│   │   └── tiddlywiki.info
│   ├── full/
│   │   ├── tiddlers/
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   └── Startup-SetLanguage.tid
│   │   └── tiddlywiki.info
│   ├── geospatialdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── Features.tid
│   │   │   ├── Flickr Demo.tid
│   │   │   ├── Geospatial Plugin Logo.png.meta
│   │   │   ├── HelloThere.tid
│   │   │   ├── Markers.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── cascades/
│   │   │   │   └── ViewTemplateBodyFilters.tid
│   │   │   ├── cities/
│   │   │   │   ├── LimehouseTownHall-image.jpeg.meta
│   │   │   │   ├── LimehouseTownHall.tid
│   │   │   │   ├── Motovun-image.jpeg.meta
│   │   │   │   ├── Motovun.tid
│   │   │   │   ├── NewYork-image.jpeg.meta
│   │   │   │   ├── NewYork.tid
│   │   │   │   ├── Oxford-image.jpeg.meta
│   │   │   │   ├── Oxford.tid
│   │   │   │   ├── Toronto-image.jpeg.meta
│   │   │   │   ├── Toronto.tid
│   │   │   │   ├── Winchester-image.jpeg.meta
│   │   │   │   └── Winchester.tid
│   │   │   ├── config/
│   │   │   │   ├── FeatureVisbility.multids
│   │   │   │   └── flickr-param.multids
│   │   │   ├── default-import-spec.tid
│   │   │   ├── favicon.png.meta
│   │   │   ├── features/
│   │   │   │   ├── canada-census-subdivision-millesime-popuptemplate.tid
│   │   │   │   ├── canada-census-subdivision-millesime.geojson
│   │   │   │   ├── canada-census-subdivision-millesime.geojson.meta
│   │   │   │   ├── denver-bikerental.tid
│   │   │   │   ├── denver-campus.tid
│   │   │   │   ├── denver-freebus.tid
│   │   │   │   ├── denver-lightrail.tid
│   │   │   │   ├── harvard-glb-volc-geojson-popuptemplate.tid
│   │   │   │   ├── harvard-glb-volc-geojson.json
│   │   │   │   ├── harvard-glb-volc-geojson.json.meta
│   │   │   │   ├── natural-earth-countries-low-res-popuptemplate.tid
│   │   │   │   ├── natural-earth-countries-low-res.json
│   │   │   │   ├── natural-earth-countries-low-res.json.meta
│   │   │   │   ├── us-states-popuptemplate.tid
│   │   │   │   ├── us-states.geojson
│   │   │   │   └── us-states.geojson.meta
│   │   │   ├── real-estate-demo/
│   │   │   │   ├── real-estate-demo.tid
│   │   │   │   ├── schema.json
│   │   │   │   ├── schema.json.meta
│   │   │   │   └── xlsx-utils-import-specs/
│   │   │   │       ├── PropertiesRow.tid
│   │   │   │       ├── PropertiesRowFieldAddress.tid
│   │   │   │       ├── PropertiesRowFieldBroker.tid
│   │   │   │       ├── PropertiesRowFieldCity.tid
│   │   │   │       ├── PropertiesRowFieldLat.tid
│   │   │   │       ├── PropertiesRowFieldLong.tid
│   │   │   │       ├── PropertiesRowFieldPrice.tid
│   │   │   │       ├── PropertiesRowFieldSalesAgent.tid
│   │   │   │       ├── PropertiesRowFieldState.tid
│   │   │   │       ├── PropertiesRowFieldTags.tid
│   │   │   │       ├── PropertiesRowFieldTitle.tid
│   │   │   │       ├── PropertiesRowFieldZipCode.tid
│   │   │   │       ├── PropertiesSheet.tid
│   │   │   │       └── workbook.tid
│   │   │   ├── sidebarlayout.tid
│   │   │   └── ui/
│   │   │       ├── geofeature.tid
│   │   │       ├── geomarker.tid
│   │   │       └── popuptemplate.tid
│   │   └── tiddlywiki.info
│   ├── highlightdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── HighlightExample.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   └── SiteTitle.tid
│   │   └── tiddlywiki.info
│   ├── innerwikidemo/
│   │   ├── tiddlers/
│   │   │   ├── HelloThere.tid
│   │   │   ├── screenshot-7-anchor-1-x.tid
│   │   │   ├── screenshot-7-anchor-1-y.tid
│   │   │   └── system/
│   │   │       ├── $__coreURL.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       └── SiteTitle.tid
│   │   └── tiddlywiki.info
│   ├── introduction/
│   │   ├── themes/
│   │   │   └── hidefurniture/
│   │   │       ├── base.tid
│   │   │       └── plugin.info
│   │   ├── tiddlers/
│   │   │   ├── audio/
│   │   │   │   └── TiddlyWiki.mp3.meta
│   │   │   ├── images/
│   │   │   │   ├── Motovun Jack Big.jpg.meta
│   │   │   │   └── Motovun Jack.svg.meta
│   │   │   ├── slides/
│   │   │   │   ├── Audio.tid
│   │   │   │   ├── CecilyMap.tid
│   │   │   │   ├── Customisation.tid
│   │   │   │   ├── Formatting.tid
│   │   │   │   ├── FormattingDemoText.tid
│   │   │   │   ├── Get Started.tid
│   │   │   │   ├── Images.tid
│   │   │   │   ├── Links.tid
│   │   │   │   ├── Lists.tid
│   │   │   │   ├── Other Story Views.tid
│   │   │   │   ├── Plugins.tid
│   │   │   │   ├── Story Views.tid
│   │   │   │   ├── Tags.tid
│   │   │   │   ├── Themes.tid
│   │   │   │   ├── This is a tag.tid
│   │   │   │   ├── This is another tag.tid
│   │   │   │   ├── Tiddlers.tid
│   │   │   │   ├── TiddlyWiki.tid
│   │   │   │   ├── Transclusion.tid
│   │   │   │   ├── Translations.tid
│   │   │   │   └── blank.json
│   │   │   └── system/
│   │   │       ├── AnimationDuration.tid
│   │   │       ├── BitmapEditorColour.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── page-toolbar-buttons.multids
│   │   │       ├── state-sidebar.tid
│   │   │       ├── styles.tid
│   │   │       ├── theme.tid
│   │   │       ├── view-toolbar-buttons.multids
│   │   │       └── view.tid
│   │   └── tiddlywiki.info
│   ├── ja-JP/
│   │   ├── tiddlers/
│   │   │   ├── $_config_ViewTemplateSubtitle_original-modified.tid
│   │   │   ├── $_config_ViewTemplateTitleFilters_ja-default.tid
│   │   │   ├── $_core_ui_ViewTemplate_title_ja-default.tid
│   │   │   ├── $_editions_ja-JP_Macros_list.tid
│   │   │   ├── $_editions_ja-JP_Macros_timeline-title.tid
│   │   │   ├── $_editions_ja-JP_Macros_toc-caption.tid
│   │   │   ├── $_plugins_tiddlywiki_menubar_items_contents.tid
│   │   │   ├── Hidden Setting_ Import Content Types for Editor.tid
│   │   │   ├── TiddlyWiki Docs PR Maker.tid
│   │   │   ├── Welcome.tid
│   │   │   ├── _TiddlyStudy_ by Kebi.tid
│   │   │   ├── _tw_shared/
│   │   │   │   ├── sites/
│   │   │   │   │   ├── classic.tiddlywiki.com.tid
│   │   │   │   │   ├── links.tiddlywiki.org.tid
│   │   │   │   │   ├── marketplace.tid
│   │   │   │   │   ├── talk.tiddlywiki.org.tid
│   │   │   │   │   ├── tiddlywiki.com.dev.tid
│   │   │   │   │   ├── tiddlywiki.com.prerelease.tid
│   │   │   │   │   ├── tiddlywiki.com.tid
│   │   │   │   │   ├── tiddlywiki.com.upgrade.tid
│   │   │   │   │   └── tiddlywiki.org.tid
│   │   │   │   └── sites.tid
│   │   │   ├── about/
│   │   │   │   ├── About.tid
│   │   │   │   ├── Acknowledgements.tid
│   │   │   │   ├── Archive.tid
│   │   │   │   ├── Contributors.tid
│   │   │   │   ├── Developers.tid
│   │   │   │   ├── Funding TiddlyWiki.tid
│   │   │   │   ├── History of TiddlyWiki.tid
│   │   │   │   ├── License.tid
│   │   │   │   ├── Open Collective.tid
│   │   │   │   ├── Philosophy of Tiddlers.tid
│   │   │   │   ├── The Story of TiddlyWiki.tid
│   │   │   │   └── TiddlyWiki Anniversaries.tid
│   │   │   ├── commands/
│   │   │   │   ├── BuildCommand.tid
│   │   │   │   ├── ClearPasswordCommand.tid
│   │   │   │   ├── Commands.tid
│   │   │   │   ├── CommandsCommand.tid
│   │   │   │   ├── DeleteTiddlersCommand.tid
│   │   │   │   ├── EditionsCommand.tid
│   │   │   │   ├── FetchCommand.tid
│   │   │   │   ├── HelpCommand.tid
│   │   │   │   ├── ImportCommand.tid
│   │   │   │   ├── InitCommand.tid
│   │   │   │   ├── ListenCommand.tid
│   │   │   │   ├── LoadCommand.tid
│   │   │   │   ├── MakeLibraryCommand.tid
│   │   │   │   ├── NamedCommandParameters.tid
│   │   │   │   ├── OutputCommand.tid
│   │   │   │   ├── PasswordCommand.tid
│   │   │   │   ├── RenderCommand.tid
│   │   │   │   ├── RenderTiddlerCommand.tid
│   │   │   │   ├── RenderTiddlersCommand.tid
│   │   │   │   ├── SaveCommand.tid
│   │   │   │   ├── SaveTiddlerCommand.tid
│   │   │   │   ├── SaveTiddlersCommand.tid
│   │   │   │   ├── SaveWikiFolderCommand.tid
│   │   │   │   ├── ServerCommand.tid
│   │   │   │   ├── SetFieldCommand.tid
│   │   │   │   ├── UnpackPluginCommand.tid
│   │   │   │   ├── VerboseCommand.tid
│   │   │   │   └── VersionCommand.tid
│   │   │   ├── community/
│   │   │   │   ├── Articles.tid
│   │   │   │   ├── Community Editions.tid
│   │   │   │   ├── Community Links Aggregator.tid
│   │   │   │   ├── Community Palettes.tid
│   │   │   │   ├── Community Plugins.tid
│   │   │   │   ├── Community Themes.tid
│   │   │   │   ├── Community.tid
│   │   │   │   ├── Examples.tid
│   │   │   │   ├── Forums.tid
│   │   │   │   ├── Improving TiddlyWiki Documentation.tid
│   │   │   │   ├── Latest.tid
│   │   │   │   ├── Meetups.tid
│   │   │   │   ├── OXTWIG.tid
│   │   │   │   ├── Other Resources.tid
│   │   │   │   ├── Resources.tid
│   │   │   │   ├── TiddlyWiki European Meetup 2016.tid
│   │   │   │   ├── TiddlyWiki European Meetup 2017.tid
│   │   │   │   ├── TiddlyWiki Hangouts.tid
│   │   │   │   ├── TiddlyWiki Newsletter.tid
│   │   │   │   ├── TiddlyWiki on the Web.tid
│   │   │   │   ├── Translate TiddlyWiki into your language.tid
│   │   │   │   ├── Tutorials.tid
│   │   │   │   ├── articles/
│   │   │   │   │   ├── _A free, open source wiki revisited_ by Mark Gibbs, NetworkWorld.tid
│   │   │   │   │   ├── _Notizen mit TiddlyWiki systemubergreifend nutzen_ by Michael Sonntag.tid
│   │   │   │   │   ├── _Setting Up a Personal TiddlyWiki Server on OS X_ by Kris Johnson.tid
│   │   │   │   │   ├── _TiddlyWiki 5 im Betatest_ by besim.tid
│   │   │   │   │   └── _TiddlyWiki_ by Sander de Boer.tid
│   │   │   │   ├── docs/
│   │   │   │   │   ├── Community Cards Caveats.tid
│   │   │   │   │   ├── Community Cards.tid
│   │   │   │   │   ├── Displaying Community Cards.tid
│   │   │   │   │   └── Submitting a Community Card.tid
│   │   │   │   ├── editions/
│   │   │   │   │   ├── Drift by Tony K.tid
│   │   │   │   │   ├── Stroll by David Gifford.tid
│   │   │   │   │   ├── Tidme by oflg.tid
│   │   │   │   │   ├── _Cardo-A Task and Project Management Wiki_ by David_Szego.tid
│   │   │   │   │   └── _Noteself_ by Danielo Rodriguez.tid
│   │   │   │   ├── examples/
│   │   │   │   │   ├── A Thesis Notebook.tid
│   │   │   │   │   ├── GitFixUm.tid
│   │   │   │   │   ├── PESpot Lesson Planner by Patrick Detzner.tid
│   │   │   │   │   ├── PETTIL.tid
│   │   │   │   │   ├── Simple Zork like Game.tid
│   │   │   │   │   ├── TriTarget.org by Devin Weaver.tid
│   │   │   │   │   └── _Lucky Sushi_ online shop by sini-Kit.tid
│   │   │   │   ├── plugins/
│   │   │   │   │   ├── GSD5.tid
│   │   │   │   │   ├── TW5-Graph by Flibbles.tid
│   │   │   │   │   └── TiddlyWiki for Scholars.tid
│   │   │   │   ├── project/
│   │   │   │   │   ├── TiddlyWiki People.tid
│   │   │   │   │   ├── TiddlyWiki Project.tid
│   │   │   │   │   └── Vacant Positions.tid
│   │   │   │   ├── resources/
│   │   │   │   │   ├── Gospel_Bubbles_by_Rev_David_Gifford.tid
│   │   │   │   │   ├── Projectify by Nicolas Petton.tid
│   │   │   │   │   ├── TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid
│   │   │   │   │   ├── TiddlyDrive Add-on for Google Drive by Joshua Stubbs.tid
│   │   │   │   │   ├── TiddlyServer by Arlen Beiler.tid
│   │   │   │   │   ├── TiddlyWiki Posts.tid
│   │   │   │   │   ├── Twexe_ Single File Tiddlywiki5 executable.tid
│   │   │   │   │   ├── Wikilabs by PMario.tid
│   │   │   │   │   ├── _Timimi_ Extension and executable by Riz.tid
│   │   │   │   │   ├── _file-backups_ Extension Firefox by pmario.tid
│   │   │   │   │   └── _savetiddlers_ Extension for Firefox by buggyj.tid
│   │   │   │   └── tools/
│   │   │   │       └── cards/
│   │   │   │           └── Procedures.tid
│   │   │   ├── concepts/
│   │   │   │   ├── ExternalImages.tid
│   │   │   │   ├── Filters.tid
│   │   │   │   ├── InfoPanel.tid
│   │   │   │   ├── Order of Tagged Tiddlers.tid
│   │   │   │   ├── PermaLinks.tid
│   │   │   │   ├── Selection Constructors.tid
│   │   │   │   ├── TagTiddlers.tid
│   │   │   │   └── TiddlyWikiFolders.tid
│   │   │   ├── customising/
│   │   │   │   ├── Alternative page layouts.tid
│   │   │   │   ├── Configuring startup tiddlers.tid
│   │   │   │   ├── Creating new toolbar buttons.tid
│   │   │   │   ├── Customise TiddlyWiki.tid
│   │   │   │   ├── Customising TiddlyWiki's user interface.tid
│   │   │   │   └── Customising search results.tid
│   │   │   ├── definitions/
│   │   │   │   └── TiddlyDesktop.tid
│   │   │   ├── demonstrations/
│   │   │   │   ├── KeyboardDrivenInput/
│   │   │   │   │   └── Demonstration_ keyboard-driven-input Macro.tid
│   │   │   │   ├── SampleNotification.tid
│   │   │   │   ├── SampleWizard.tid
│   │   │   │   ├── SampleWizard2.tid
│   │   │   │   └── Tasks/
│   │   │   │       ├── Compose ballad.tid
│   │   │   │       ├── Get the Ring.tid
│   │   │   │       ├── Go to Mordor.tid
│   │   │   │       ├── Kill the Dragon.tid
│   │   │   │       ├── Make the beds.tid
│   │   │   │       ├── TaskManagementExample.tid
│   │   │   │       ├── TaskManagementExampleDraggable.tid
│   │   │   │       ├── TaskManagementExampleDraggableTemplate.tid
│   │   │   │       ├── done.tid
│   │   │   │       └── task.tid
│   │   │   ├── editions/
│   │   │   │   ├── Blog Edition.tid
│   │   │   │   ├── Editions.tid
│   │   │   │   ├── Empty Edition.tid
│   │   │   │   ├── Full Edition.tid
│   │   │   │   ├── Résumé Builder Edition.tid
│   │   │   │   ├── Text Slicer Edition.tid
│   │   │   │   └── XLSX Utilities Edition.tid
│   │   │   ├── features/
│   │   │   │   ├── AutoSave.tid
│   │   │   │   ├── Core Icons.tid
│   │   │   │   ├── DateFormat.tid
│   │   │   │   ├── Deserializers.tid
│   │   │   │   ├── Drag and Drop.tid
│   │   │   │   ├── Features.tid
│   │   │   │   ├── Future Proof.tid
│   │   │   │   ├── Importing Tiddlers.tid
│   │   │   │   ├── JSON in TiddlyWiki.tid
│   │   │   │   ├── LazyLoading.tid
│   │   │   │   ├── Modals.tid
│   │   │   │   ├── Notifications.tid
│   │   │   │   ├── Performance Instrumentation.tid
│   │   │   │   ├── SafeMode.tid
│   │   │   │   ├── Scalability.tid
│   │   │   │   ├── Searching in TiddlyWiki.tid
│   │   │   │   └── StartupActions.tid
│   │   │   ├── fileformats/
│   │   │   │   ├── MultiTiddlerFileSyntax.tid
│   │   │   │   ├── MultiTiddlerFiles.tid
│   │   │   │   └── TiddlerFiles.tid
│   │   │   ├── filters/
│   │   │   │   ├── Introduction to filter notation.tid
│   │   │   │   └── syntax/
│   │   │   │       ├── All Filter Run Prefix.tid
│   │   │   │       ├── And Filter Run Prefix.tid
│   │   │   │       ├── Cascade Filter Run Prefix (Examples).tid
│   │   │   │       ├── Cascade Filter Run Prefix.tid
│   │   │   │       ├── Else Filter Run Prefix.tid
│   │   │   │       ├── Except Filter Run Prefix.tid
│   │   │   │       ├── Filter Expression.tid
│   │   │   │       ├── Filter Filter Run Prefix (Examples).tid
│   │   │   │       ├── Filter Filter Run Prefix.tid
│   │   │   │       ├── Filter Parameter.tid
│   │   │   │       ├── Filter Run Prefix.tid
│   │   │   │       ├── Filter Run.tid
│   │   │   │       ├── Filter Step.tid
│   │   │   │       ├── Filter Syntax.tid
│   │   │   │       ├── Filter Whitespace.tid
│   │   │   │       ├── Interchangeable Filter Run Prefixes.tid
│   │   │   │       ├── Intersection Filter Run Prefix (Examples).tid
│   │   │   │       ├── Intersection Filter Run Prefix.tid
│   │   │   │       ├── Map Filter Run Prefix (Examples).tid
│   │   │   │       ├── Map Filter Run Prefix.tid
│   │   │   │       ├── Named Filter Run Prefix.tid
│   │   │   │       ├── Or Filter Run Prefix.tid
│   │   │   │       ├── Reduce Filter Run Prefix (Examples).tid
│   │   │   │       ├── Reduce Filter Run Prefix.tid
│   │   │   │       ├── Shortcut Filter Run Prefixes.tid
│   │   │   │       ├── Sort Filter Run Prefix (Examples).tid
│   │   │   │       ├── Sort Filter Run Prefix.tid
│   │   │   │       ├── Then Filter Run Prefix (Examples).tid
│   │   │   │       └── then Filter Run Prefix.tid
│   │   │   ├── gettingstarted/
│   │   │   │   ├── GettingStarted - Android.tid
│   │   │   │   ├── GettingStarted - Chrome.tid
│   │   │   │   ├── GettingStarted - Firefox.tid
│   │   │   │   ├── GettingStarted - Internet Explorer.tid
│   │   │   │   ├── GettingStarted - Node.js.tid
│   │   │   │   ├── GettingStarted - Online.tid
│   │   │   │   ├── GettingStarted - Safari.tid
│   │   │   │   ├── GettingStarted - iOS.tid
│   │   │   │   └── GettingStarted.tid
│   │   │   ├── hellothere/
│   │   │   │   ├── A Gentle Guide to TiddlyWiki.tid
│   │   │   │   ├── Discover TiddlyWiki.tid
│   │   │   │   ├── Find Out More.tid
│   │   │   │   ├── HelloThere.tid
│   │   │   │   ├── HelloThumbnail.tid
│   │   │   │   ├── Some of the things you can do with TiddlyWiki.tid
│   │   │   │   ├── Ten reasons to switch to TiddlyWiki.tid
│   │   │   │   ├── Testimonials and Reviews.tid
│   │   │   │   ├── What happened to the original TiddlyWiki_.tid
│   │   │   │   ├── quickstart/
│   │   │   │   │   ├── Quick Start.tid
│   │   │   │   │   ├── desktop.tid
│   │   │   │   │   ├── diy.tid
│   │   │   │   │   ├── tiddlyhost.tid
│   │   │   │   │   └── xememex.tid
│   │   │   │   └── thumbnails/
│   │   │   │       ├── HelloThumbnail - Community Survey.tid
│   │   │   │       ├── HelloThumbnail - Funding.tid
│   │   │   │       ├── HelloThumbnail - Grok TiddlyWiki.tid
│   │   │   │       ├── HelloThumbnail - Intertwingled Innovations.tid
│   │   │   │       ├── HelloThumbnail - Introduction Video.tid
│   │   │   │       ├── HelloThumbnail - Latest Version.tid
│   │   │   │       ├── HelloThumbnail - Marketplace.tid
│   │   │   │       ├── HelloThumbnail - MultiWikiServer.tid
│   │   │   │       ├── HelloThumbnail - Newsletter.tid
│   │   │   │       ├── HelloThumbnail - TW5-Graph.tid
│   │   │   │       ├── HelloThumbnail - TiddlyWiki Privacy.tid
│   │   │   │       ├── HelloThumbnail - TiddlyWikiLinks.tid
│   │   │   │       └── HelloThumbnail - Twenty Years of TiddlyWiki.tid
│   │   │   ├── hiddensettings/
│   │   │   │   ├── Hidden Setting Content to be displayed for empty story.tid
│   │   │   │   ├── Hidden Setting Default Story Ordering.tid
│   │   │   │   ├── Hidden Setting Default Tiddler Colour.tid
│   │   │   │   ├── Hidden Setting Default Tiddler Icon.tid
│   │   │   │   ├── Hidden Setting EditTabIndex.tid
│   │   │   │   ├── Hidden Setting HtmlParserDisableSandbox.tid
│   │   │   │   ├── Hidden Setting NewImageType.tid
│   │   │   │   ├── Hidden Setting SaveWikiButton Filename.tid
│   │   │   │   ├── Hidden Setting SaveWikiButton Template.tid
│   │   │   │   ├── Hidden Setting Search-NavigateOnEnter.tid
│   │   │   │   ├── Hidden Setting SearchMinLength.tid
│   │   │   │   ├── Hidden Setting ShowEditPreviewPerTiddler.tid
│   │   │   │   ├── Hidden Setting Sync System Tiddlers From Server.tid
│   │   │   │   ├── Hidden Setting SyncLogging.tid
│   │   │   │   ├── Hidden Setting SyncPollingInterval.tid
│   │   │   │   ├── Hidden Setting TagsMinLength.tid
│   │   │   │   ├── Hidden Setting ViewTemplate and EditTemplate.tid
│   │   │   │   ├── Hidden Setting_ Disable Drag and Drop.tid
│   │   │   │   ├── Hidden Setting_ Disable Lazy Loading.tid
│   │   │   │   ├── Hidden Setting_ Enable File Import in Editor_1.tid
│   │   │   │   ├── Hidden Setting_ More Tabs Horizontal.tid
│   │   │   │   ├── Hidden Setting_ Scroll Top Adjustment.tid
│   │   │   │   ├── Hidden Setting_ Search AutoFocus.tid
│   │   │   │   ├── Hidden Setting_ Tag Pill Drag Filter.tid
│   │   │   │   ├── Hidden Setting_ Typin Refresh Delay.tid
│   │   │   │   └── Hidden Settings.tid
│   │   │   ├── hire-jeremy/
│   │   │   │   ├── Hire Jeremy Sidebar Segment.tid
│   │   │   │   └── HireJeremy.tid
│   │   │   ├── howtos/
│   │   │   │   ├── Adding a Twitter Follow button.tid
│   │   │   │   ├── Adding_a_table_of_contents_to_the_sidebar.tid
│   │   │   │   ├── Adopt a Titles Policy.tid
│   │   │   │   ├── Concatenating text and variables using macro substitution.tid
│   │   │   │   ├── Configuring the default TiddlerInfo tab.tid
│   │   │   │   ├── Constructing JSON tiddlers.tid
│   │   │   │   ├── Creating SubStories.tid
│   │   │   │   ├── Creating a custom export format.tid
│   │   │   │   ├── Creating a splash screen.tid
│   │   │   │   ├── Custom Styles by title.tid
│   │   │   │   ├── Custom Styles by userClass.tid
│   │   │   │   ├── Custom tag pill styles.tid
│   │   │   │   ├── Custom_Attribute_Selectors.tid
│   │   │   │   ├── Custom_Styles_FAQ.tid
│   │   │   │   ├── Custom_styles_by_data-tags.tid
│   │   │   │   ├── Debugging Stylesheets.tid
│   │   │   │   ├── Editing Tiddlers with Emacs.tid
│   │   │   │   ├── Editing Tiddlers with Vim.tid
│   │   │   │   ├── Editor toolbar.tid
│   │   │   │   ├── Formatting List Results as Tables with CSS - Specified Columns Methods.tid
│   │   │   │   ├── Formatting List Results as Tables with CSS - Variable Column Method.tid
│   │   │   │   ├── Formatting_List_Results_as_Tables_(no_CSS).tid
│   │   │   │   ├── Generating Static Sites with TiddlyWiki.tid
│   │   │   │   ├── Height of text editor.tid
│   │   │   │   ├── How to add a banner for GitHub contributions.tid
│   │   │   │   ├── How to apply custom styles by tag.tid
│   │   │   │   ├── How to apply custom styles.tid
│   │   │   │   ├── How to build a TiddlyWiki5 from individual tiddlers.tid
│   │   │   │   ├── How to change the sort order of sub-branches in a TOC macro.tid
│   │   │   │   ├── How to create a custom story tiddler template.tid
│   │   │   │   ├── How to create a custom tiddler colour rule.tid
│   │   │   │   ├── How to create a custom tiddler icon rule.tid
│   │   │   │   ├── How to create keyboard shortcuts.tid
│   │   │   │   ├── How to customize TiddlyDesktop.tid
│   │   │   │   ├── How to embed PDF and other documents.tid
│   │   │   │   ├── How to export tiddlers.tid
│   │   │   │   ├── How to hide the authors and other fields with CSS.tid
│   │   │   │   ├── How to put the last modification date in a banner.tid
│   │   │   │   ├── How to update TiddlyWiki to the latest version.tid
│   │   │   │   ├── How to widen tiddlers (aka story river).tid
│   │   │   │   ├── How_to_add_a_new_tab_to_the_sidebar.tid
│   │   │   │   ├── How_to_turn_off_camel_case_linking.tid
│   │   │   │   ├── Insert link.tid
│   │   │   │   ├── Insert picture.tid
│   │   │   │   ├── KeyboardShortcuts.tid
│   │   │   │   ├── Making a custom journal button.tid
│   │   │   │   ├── Making curved text with SVG.tid
│   │   │   │   ├── Modifying JSON tiddlers.tid
│   │   │   │   ├── More actions.tid
│   │   │   │   ├── Preserving open tiddlers at startup.tid
│   │   │   │   ├── Reading data from JSON tiddlers.tid
│   │   │   │   ├── Setting a favicon.tid
│   │   │   │   ├── Setting a page background image.tid
│   │   │   │   ├── Sharing a TiddlyWiki on Dropbox.tid
│   │   │   │   ├── Simple ways to write protect tiddlers.tid
│   │   │   │   ├── Structuring TiddlyWiki.tid
│   │   │   │   ├── Tagging.tid
│   │   │   │   ├── Text preview.tid
│   │   │   │   ├── The First Rule of Using TiddlyWiki.tid
│   │   │   │   ├── Upgrading.tid
│   │   │   │   ├── Using Excise.tid
│   │   │   │   ├── Using SVG.tid
│   │   │   │   ├── Using Stamp.tid
│   │   │   │   ├── Using Stylesheets.tid
│   │   │   │   ├── Using TiddlyWiki for GitHub project documentation.tid
│   │   │   │   ├── Using a custom path prefix with the client-server edition.tid
│   │   │   │   ├── Visible Transclusions.tid
│   │   │   │   ├── Windows HTA Hack.tid
│   │   │   │   └── faq/
│   │   │   │       ├── csFAQ_dynamic_stylesheet.tid
│   │   │   │       ├── csFAQ_how_can_i_use_custom_field.tid
│   │   │   │       ├── csFAQ_what_if_tiddler_has_no_tags.tid
│   │   │   │       ├── csFAQ_what_this_and_that_tag.tid
│   │   │   │       └── csFAQ_what_this_or_that_tag.tid
│   │   │   ├── images/
│   │   │   │   ├── Icon Gallery.tid
│   │   │   │   ├── favicon.png.meta
│   │   │   │   └── green_favicon.png.meta
│   │   │   ├── languages/
│   │   │   │   ├── Castellano (Espana) Edition.tid
│   │   │   │   ├── Chinese (Simplified) Edition.tid
│   │   │   │   ├── Chinese (Traditional) Edition.tid
│   │   │   │   ├── French (France) Edition.tid
│   │   │   │   ├── German (Austria) Edition.tid
│   │   │   │   ├── German (Germany) Edition.tid
│   │   │   │   ├── Japanese (Japan) Edition.tid
│   │   │   │   ├── Korean (Korea Republic) Edition.tid
│   │   │   │   └── Languages.tid
│   │   │   ├── learning/
│   │   │   │   ├── Copying tiddlers between TiddlyWiki files.tid
│   │   │   │   ├── Introduction to Lists.tid
│   │   │   │   └── Learning.tid
│   │   │   ├── marketplace/
│   │   │   │   └── TiddlyWiki Marketplace.tid
│   │   │   ├── mechanisms/
│   │   │   │   ├── AlertMechanism.tid
│   │   │   │   └── DragAndDropMechanism.tid
│   │   │   ├── menubar/
│   │   │   │   └── gettingstarted.tid
│   │   │   ├── nodejs/
│   │   │   │   ├── Building TiddlyWikiClassic.tid
│   │   │   │   ├── Customising Tiddler File Naming.tid
│   │   │   │   ├── Environment Variables on Node.js.tid
│   │   │   │   ├── Installing TiddlyWiki Prerelease on Node.js.tid
│   │   │   │   ├── Installing TiddlyWiki on Node.js.tid
│   │   │   │   ├── Installing custom plugins on Node.js.tid
│   │   │   │   ├── Installing official plugins on Node.js.tid
│   │   │   │   ├── Scripts for TiddlyWiki on Node.js.tid
│   │   │   │   ├── Serving TW5 from Android.tid
│   │   │   │   ├── TiddlyWiki on Node.js.tid
│   │   │   │   ├── Uninstalling a plugin with Node.js.tid
│   │   │   │   ├── Upgrading TiddlyWiki on Node.js.tid
│   │   │   │   ├── Using TiddlyWiki on Node.js.tid
│   │   │   │   ├── Working with the TiddlyWiki5 repository.tid
│   │   │   │   ├── tiddlywiki.files_Files.tid
│   │   │   │   └── tiddlywiki.info_Files.tid
│   │   │   ├── platforms/
│   │   │   │   └── Platforms.tid
│   │   │   ├── plugins/
│   │   │   │   ├── Amazon Web Services Plugin.tid
│   │   │   │   ├── BrowserStorage Plugin.tid
│   │   │   │   ├── CodeMirror Plugin.tid
│   │   │   │   ├── Consent Banner Plugin.tid
│   │   │   │   ├── D3 Plugin.tid
│   │   │   │   ├── Dynaview Plugin.tid
│   │   │   │   ├── External Attachments Plugin.tid
│   │   │   │   ├── Highlight Plugin.tid
│   │   │   │   ├── Innerwiki Plugin.tid
│   │   │   │   ├── Installing a plugin from the plugin library.tid
│   │   │   │   ├── JSZip Plugin.tid
│   │   │   │   ├── KaTeX Plugin.tid
│   │   │   │   ├── Manually installing a plugin.tid
│   │   │   │   ├── Markdown Plugin.tid
│   │   │   │   ├── Mobile Drag And Drop Shim Plugin.tid
│   │   │   │   ├── OfficialPlugins.tid
│   │   │   │   ├── Plugin Editions.tid
│   │   │   │   ├── Plugin Ordering.tid
│   │   │   │   ├── Plugins.tid
│   │   │   │   ├── Railroad Plugin.tid
│   │   │   │   ├── SaveTrail Plugin.tid
│   │   │   │   ├── Share Plugin.tid
│   │   │   │   ├── TW2Parser Plugin.tid
│   │   │   │   ├── Twitter Plugin.tid
│   │   │   │   └── Uninstalling a plugin.tid
│   │   │   ├── releasenotes/
│   │   │   │   └── Releases.tid
│   │   │   ├── roadmap/
│   │   │   │   └── RoadMap.tid
│   │   │   ├── saving/
│   │   │   │   ├── Emergency Tiddler Export.tid
│   │   │   │   ├── Encryption.tid
│   │   │   │   ├── Example config-tiddlyweb-host for IIS.txt
│   │   │   │   ├── Example config-tiddlyweb-host for IIS.txt.meta
│   │   │   │   ├── Example package.json for IIS.txt
│   │   │   │   ├── Example package.json for IIS.txt.meta
│   │   │   │   ├── Example tiddlywiki.info for IIS.txt
│   │   │   │   ├── Example tiddlywiki.info for IIS.txt.meta
│   │   │   │   ├── Example web.config for IIS.txt
│   │   │   │   ├── Example web.config for IIS.txt.meta
│   │   │   │   ├── Installing TiddlyWiki on Microsoft Internet Information Server.tid
│   │   │   │   ├── Saving on Android.tid
│   │   │   │   ├── Saving on Browser with TiddlyStow.tid
│   │   │   │   ├── Saving on Browser with the File System Access API.tid
│   │   │   │   ├── Saving on TidGi.tid
│   │   │   │   ├── Saving on TiddlyDesktop.tid
│   │   │   │   ├── Saving on TiddlyHost.tid
│   │   │   │   ├── Saving on a PHP Server.tid
│   │   │   │   ├── Saving on iPad_iPhone.tid
│   │   │   │   ├── Saving to a Git service.tid
│   │   │   │   ├── Saving via WebDAV.tid
│   │   │   │   ├── Saving via a Minimal Web Server.tid
│   │   │   │   ├── Saving via minimal Ruby server.tid
│   │   │   │   ├── Saving with Polly.tid
│   │   │   │   ├── Saving with TW Receiver.tid
│   │   │   │   ├── Saving with TiddlyFox.tid
│   │   │   │   ├── Saving with TiddlyIE.tid
│   │   │   │   ├── Saving with TiddlyPWA.tid
│   │   │   │   ├── Saving with the HTML5 saver.tid
│   │   │   │   ├── Saving.tid
│   │   │   │   ├── TiddlyBucket - Save to AWS or Google Storage.tid
│   │   │   │   └── TiddlyWiki in the Sky for Dropbox.tid
│   │   │   ├── system/
│   │   │   │   ├── $_core_macros_list.tid
│   │   │   │   ├── $_core_macros_tag.tid
│   │   │   │   ├── $_core_ui_SideBar_Open.tid
│   │   │   │   ├── $_core_ui_TagPickerTagTemplate.tid
│   │   │   │   ├── TableOfContents.tid
│   │   │   │   ├── download-empty-button.tid
│   │   │   │   ├── download-empty.tid
│   │   │   │   └── language.tid
│   │   │   ├── testimonials/
│   │   │   │   ├── Testimonials - Joe Armstrong.tid
│   │   │   │   ├── Testimonials - Network World.tid
│   │   │   │   └── Testimonials - Product Hunt.tid
│   │   │   ├── videos/
│   │   │   │   ├── Getting Started Video.tid
│   │   │   │   ├── Introducing TiddlyDesktop Video.tid
│   │   │   │   ├── Introduction Video.tid
│   │   │   │   ├── TiddlyWiki on Firefox for Android Video.tid
│   │   │   │   ├── Videos.tid
│   │   │   │   └── Working with the TiddlyWiki5 repository video.tid
│   │   │   ├── wikitext/
│   │   │   │   ├── Images in WikiText.tid
│   │   │   │   └── Styles and Classes in WikiText.tid
│   │   │   └── workingwithtw/
│   │   │       ├── Audio.tid
│   │   │       ├── BrowserCompatibility.tid
│   │   │       ├── Creating and editing tiddlers.tid
│   │   │       ├── Creating journal tiddlers.tid
│   │   │       ├── Formatting text in TiddlyWiki.tid
│   │   │       ├── Navigating between open tiddlers.tid
│   │   │       ├── Performance.tid
│   │   │       ├── Sharing your tiddlers with others.tid
│   │   │       ├── Using links to navigate between tiddlers.tid
│   │   │       └── Working with TiddlyWiki.tid
│   │   └── tiddlywiki.info
│   ├── katexdemo/
│   │   ├── tiddlers/
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__coreURL.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── KaTeX.tid
│   │   │   ├── LaTeX.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   └── TiddlyWiki5.tid
│   │   └── tiddlywiki.info
│   ├── ko-KR/
│   │   ├── tiddlers/
│   │   │   ├── images/
│   │   │   │   ├── favicon.png.meta
│   │   │   │   └── green_favicon.png.meta
│   │   │   └── system/
│   │   │       ├── $--core-ui-DefaultSearchResultList.tid
│   │   │       ├── $--core-ui-ListItemTemplate.tid
│   │   │       ├── $--core-ui-SideBar-Open.tid
│   │   │       ├── $--core-ui-TagTemplate.tid
│   │   │       ├── $--core-ui-ViewTemplate-title.tid
│   │   │       ├── $--editions-ko-KR-Macros-list.tid
│   │   │       ├── $--editions-ko-KR-Macros-timeline-title.tid
│   │   │       ├── $--editions-ko-KR-Macros-toc-caption.tid
│   │   │       ├── ContributionBanner.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── Sources.tid
│   │   │       ├── StaticBanner.tid
│   │   │       ├── download-empty-button.tid
│   │   │       ├── download-empty.tid
│   │   │       ├── language.tid
│   │   │       └── static.content.tid
│   │   └── tiddlywiki.info
│   ├── ko-KR-server/
│   │   ├── tiddlers/
│   │   │   ├── config-Navigation-UpdateAddressBar.tid
│   │   │   ├── config-more-button.tid
│   │   │   └── system/
│   │   │       └── favicon.png.meta
│   │   └── tiddlywiki.info
│   ├── markdowndemo/
│   │   ├── tiddlers/
│   │   │   ├── $__coreURL.tid
│   │   │   ├── DefaultMissingType.tid
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── MarkdownTutorial.tid
│   │   │   ├── QuickDemo.tid
│   │   │   ├── QuickDemoSource.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   └── SiteTitle.tid
│   │   └── tiddlywiki.info
│   ├── pluginlibrary/
│   │   ├── tiddlers/
│   │   │   ├── GettingStarted.tid
│   │   │   ├── PrereleaseLocalPluginLibrary.tid
│   │   │   ├── meta/
│   │   │   │   ├── SiteSubtitle.tid
│   │   │   │   └── SiteTitle.tid
│   │   │   └── system/
│   │   │       └── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   └── tiddlywiki.info
│   ├── prerelease/
│   │   ├── tiddlers/
│   │   │   ├── SaveTrailPlugin-enable.tid
│   │   │   ├── palette.tid
│   │   │   ├── sidebarlayout.tid
│   │   │   ├── sidebarwidth.tid
│   │   │   ├── system/
│   │   │   │   ├── DefaultTiddlers.tid
│   │   │   │   ├── PrereleaseLocalPluginLibrary.tid
│   │   │   │   ├── PrereleaseOfficialPluginLibrary.tid
│   │   │   │   ├── SiteDomain.tid
│   │   │   │   ├── SitePreviewUrl.tid
│   │   │   │   ├── SiteSubtitle.tid
│   │   │   │   ├── SiteTitle.tid
│   │   │   │   ├── SiteUrl.tid
│   │   │   │   ├── TiddlyWiki Pre-release.tid
│   │   │   │   ├── configPerformanceInstrumentation.tid
│   │   │   │   ├── configWikiParserRulesInlineWikilink.tid
│   │   │   │   ├── download-empty.tid
│   │   │   │   ├── favicon.png.meta
│   │   │   │   ├── stickytitles.tid
│   │   │   │   ├── styles.tid
│   │   │   │   └── temp-my-scroll-position.tid
│   │   │   ├── theme.tid
│   │   │   └── view.tid
│   │   └── tiddlywiki.info
│   ├── resumebuilder/
│   │   ├── tiddlers/
│   │   │   ├── Edit Existing Items.tid
│   │   │   ├── Preview and Set Options.tid
│   │   │   ├── Preview.tid
│   │   │   ├── Print Version.tid
│   │   │   ├── Resume Options.tid
│   │   │   ├── Resume Wizard.tid
│   │   │   ├── Top Bar Buttons.tid
│   │   │   ├── data/
│   │   │   │   ├── $__data_Personal Information.tid
│   │   │   │   ├── $__data_ResumeList.tid
│   │   │   │   ├── $__data_ResumeTitle_Resume.tid
│   │   │   │   └── $__data_ResumeTitle_Resume2.tid
│   │   │   ├── display/
│   │   │   │   ├── $__display_Contact Information Display.tid
│   │   │   │   ├── $__display_Education Display.tid
│   │   │   │   ├── $__display_Objective Display.tid
│   │   │   │   ├── $__display_Previous Employment Display.tid
│   │   │   │   ├── $__display_Resume Title Display.tid
│   │   │   │   └── $__display_Skills and Expertise Display.tid
│   │   │   ├── documentation/
│   │   │   │   ├── Help.tid
│   │   │   │   └── Making a new section.tid
│   │   │   ├── input/
│   │   │   │   ├── $__input_Contact Information.tid
│   │   │   │   ├── $__input_Education.tid
│   │   │   │   ├── $__input_ObjectiveInput1.tid
│   │   │   │   ├── $__input_ObjectiveInput2.tid
│   │   │   │   ├── $__input_Previous Employment.tid
│   │   │   │   ├── $__input_Resume Title.tid
│   │   │   │   ├── $__input_Resume Title2.tid
│   │   │   │   └── $__input_Skills and Expertise.tid
│   │   │   ├── options/
│   │   │   │   ├── $__options_Contact Information Options.tid
│   │   │   │   ├── $__options_Education Options.tid
│   │   │   │   ├── $__options_Objective Options.tid
│   │   │   │   ├── $__options_Previous Employment Options.tid
│   │   │   │   ├── $__options_Skills Options.tid
│   │   │   │   ├── $__options_Title Options.tid
│   │   │   │   └── Layout Options.tid
│   │   │   ├── settings/
│   │   │   │   ├── $__settings_Default_Contact Information Display.tid
│   │   │   │   ├── $__settings_Default_Education Display.tid
│   │   │   │   ├── $__settings_Default_Objective Display.tid
│   │   │   │   ├── $__settings_Default_Objective.tid
│   │   │   │   ├── $__settings_Default_Previous Employment Display.tid
│   │   │   │   ├── $__settings_Default_Resume Title Display.tid
│   │   │   │   ├── $__settings_Default_ResumeTitle.tid
│   │   │   │   ├── $__settings_Default_Skills and Expertise Display.tid
│   │   │   │   └── $__settings_Global.tid
│   │   │   ├── system/
│   │   │   │   ├── $__DefaultTiddlers.tid
│   │   │   │   ├── $__SiteSubtitle.tid
│   │   │   │   ├── $__SiteTitle.tid
│   │   │   │   ├── $__config_DefaultSidebarTab.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid
│   │   │   │   ├── $__config_PageControlButtons_Visibility_$__core_ui_Buttons_new-tiddler.tid
│   │   │   │   ├── $__core_ui_SideBar_More.tid
│   │   │   │   ├── $__core_ui_SideBar_Open.tid
│   │   │   │   ├── $__core_ui_SideBar_Recent.tid
│   │   │   │   ├── $__core_ui_SideBar_Tools.tid
│   │   │   │   └── $__view.tid
│   │   │   ├── temp tiddlers/
│   │   │   │   ├── $__temp_NewSection_InputTiddler.tid
│   │   │   │   ├── $__temp_NewSection_OptionsTiddler.tid
│   │   │   │   ├── $__temp_NewSection_TemplateTiddler.tid
│   │   │   │   └── $__temp_Objective.tid
│   │   │   ├── templates/
│   │   │   │   ├── $__template_ContactInformationTemplate.tid
│   │   │   │   ├── $__template_EducationTemplate.tid
│   │   │   │   ├── $__template_ObjectiveTemplate.tid
│   │   │   │   ├── $__template_ObjectiveTemplate2.tid
│   │   │   │   ├── $__template_PreviousEmploymentTemplate.tid
│   │   │   │   ├── $__template_ResumeTitleTemplate.tid
│   │   │   │   ├── $__template_ResumeTitleTemplate2.tid
│   │   │   │   ├── $__template_SkillsAndExpertiseTemplate.tid
│   │   │   │   └── GenericSectionDisplayTemplate.tid
│   │   │   └── tools/
│   │   │       └── New Section Creation Tool.tid
│   │   └── tiddlywiki.info
│   ├── server/
│   │   └── tiddlywiki.info
│   ├── server-external-js/
│   │   ├── tiddlers/
│   │   │   ├── config/
│   │   │   │   ├── $__DefaultTiddlers.tid
│   │   │   │   └── $__config_SaveWikiButton_Filename.tid
│   │   │   └── external/
│   │   │       └── tiddlywiki.files
│   │   └── tiddlywiki.info
│   ├── share/
│   │   └── tiddlywiki.info
│   ├── test/
│   │   ├── playwright.spec.js
│   │   ├── tiddlers/
│   │   │   ├── DefaultTiddlers.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── SiteSubtitle.tid
│   │   │   ├── SiteTitle.tid
│   │   │   └── tests/
│   │   │       ├── data/
│   │   │       │   ├── conditionals/
│   │   │       │   │   ├── Basic.tid
│   │   │       │   │   ├── BlockMode.tid
│   │   │       │   │   ├── Else.tid
│   │   │       │   │   ├── Elseif.tid
│   │   │       │   │   ├── MissingEndIf.tid
│   │   │       │   │   ├── MultipleResults.tid
│   │   │       │   │   ├── Nested.tid
│   │   │       │   │   └── NestedElseif.tid
│   │   │       │   ├── csv-cases.tid
│   │   │       │   ├── custom-operators/
│   │   │       │   │   ├── NestedParameterised.tid
│   │   │       │   │   ├── Parameterised.tid
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── data-widget/
│   │   │       │   │   ├── ImportCompound.tid
│   │   │       │   │   ├── ImportCustomTitle.tid
│   │   │       │   │   ├── ImportFilter.tid
│   │   │       │   │   ├── ImportTiddler.tid
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── deserializers/
│   │   │       │   │   ├── case 1.tid
│   │   │       │   │   ├── case 2.tid
│   │   │       │   │   ├── case 3.tid
│   │   │       │   │   ├── case 4.tid
│   │   │       │   │   ├── case 5.tid
│   │   │       │   │   └── case 6.tid
│   │   │       │   ├── filters/
│   │   │       │   │   ├── Base64.tid
│   │   │       │   │   ├── DiffMergePatch1.tid
│   │   │       │   │   ├── DiffMergePatch2.tid
│   │   │       │   │   ├── DiffMergePatch3.tid
│   │   │       │   │   ├── Recursion.tid
│   │   │       │   │   ├── fake-variables.tid
│   │   │       │   │   └── substitute.tid
│   │   │       │   ├── functions/
│   │   │       │   │   ├── FunctionAttributes.tid
│   │   │       │   │   ├── FunctionDefaultValues.tid
│   │   │       │   │   ├── FunctionFilterrunVariables.tid
│   │   │       │   │   ├── FunctionFilterrunVariables2.tid
│   │   │       │   │   ├── FunctionFilterrunVariables3.tid
│   │   │       │   │   ├── FunctionFilterrunVariables4.tid
│   │   │       │   │   ├── FunctionOperator.tid
│   │   │       │   │   ├── FunctionSubstituteResolution.tid
│   │   │       │   │   ├── IndentedFunctions.tid
│   │   │       │   │   ├── MissingFunction.tid
│   │   │       │   │   ├── RunawayRecursiveFunctions.tid
│   │   │       │   │   ├── UndefinedParameters.tid
│   │   │       │   │   ├── VariableLeakage.tid
│   │   │       │   │   ├── VariablesEnumeration.tid
│   │   │       │   │   └── WikifiedFunctions.tid
│   │   │       │   ├── genesis-widget/
│   │   │       │   │   ├── Block.tid
│   │   │       │   │   ├── DollarSigns.tid
│   │   │       │   │   ├── EmptyType.tid
│   │   │       │   │   ├── MultipleAttributes.tid
│   │   │       │   │   ├── RedefineLet.tid
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── importvariables/
│   │   │       │   │   ├── WithSetWidgets.tid
│   │   │       │   │   ├── WithSetWidgets2.tid
│   │   │       │   │   └── WithSetWidgetsAndMacros.tid
│   │   │       │   ├── let-filter-prefix/
│   │   │       │   │   ├── ResultList.tid
│   │   │       │   │   ├── ResultListUnnamedVariable.tid
│   │   │       │   │   ├── ShortcutSyntax.tid
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── list-widget/
│   │   │       │   │   ├── WithEmptyParagraphTemplate.tid
│   │   │       │   │   ├── WithExplicitTemplates.tid
│   │   │       │   │   ├── WithExplicitTemplatesInBlockMode.tid
│   │   │       │   │   ├── WithExplicitTemplatesOverriddenByAttributes.tid
│   │   │       │   │   ├── WithJoinTemplate.tid
│   │   │       │   │   ├── WithJoinTemplateInBlockMode.tid
│   │   │       │   │   ├── WithLimit.tid
│   │   │       │   │   └── WithMissingTemplate.tid
│   │   │       │   ├── macros/
│   │   │       │   │   ├── EndInBody.tid
│   │   │       │   │   ├── IndentedEnd.tid
│   │   │       │   │   ├── MismatchedNamedEnd.tid
│   │   │       │   │   ├── WhitespaceOnlyWithEnd.tid
│   │   │       │   │   ├── WhitespaceOnlyWithEnd2.tid
│   │   │       │   │   ├── dynamic-macros/
│   │   │       │   │   │   ├── Attribute.tid
│   │   │       │   │   │   └── Standalone.tid
│   │   │       │   │   ├── nested-macros/
│   │   │       │   │   │   ├── NestedMacros-indented.tid
│   │   │       │   │   │   ├── NestedMacros-indented2.tid
│   │   │       │   │   │   └── NestedMacros.tid
│   │   │       │   │   ├── trailing-newlines/
│   │   │       │   │   │   └── TrailingNewlines.tid
│   │   │       │   │   └── unusedtitle/
│   │   │       │   │       ├── basic-params-draft-exists.tid
│   │   │       │   │       ├── basic-params-empty-tiddler-exists.tid
│   │   │       │   │       ├── basic-params-empty.tid
│   │   │       │   │       ├── basic-params-tiddlers-exist.tid
│   │   │       │   │       ├── basic-params.tid
│   │   │       │   │       ├── template-empty-params-tiddler-exist.tid
│   │   │       │   │       ├── template-empty-params.tid
│   │   │       │   │       ├── template-startCount.tid
│   │   │       │   │       └── template.tid
│   │   │       │   ├── messages/
│   │   │       │   │   ├── tm-import-tiddler/
│   │   │       │   │   │   ├── CustomTitle.tid
│   │   │       │   │   │   ├── NoAutoOpen.tid
│   │   │       │   │   │   ├── NoAutoOpenViaVar.tid
│   │   │       │   │   │   └── default.tid
│   │   │       │   │   └── tm-new-tiddler/
│   │   │       │   │       ├── create-a-new-tiddler-with-a-tag.tid
│   │   │       │   │       ├── default.tid
│   │   │       │   │       ├── new-from-template-with-tag.tid
│   │   │       │   │       ├── new-from-template-without-tag.tid
│   │   │       │   │       └── new-with-tag.tid
│   │   │       │   ├── multi-valued-variables/
│   │   │       │   │   ├── AttributeFirstValue.tid
│   │   │       │   │   ├── DefaultParameterMVV.tid
│   │   │       │   │   ├── Function.tid
│   │   │       │   │   ├── InlineDisplay.tid
│   │   │       │   │   ├── InlineDisplaySeparator.tid
│   │   │       │   │   ├── InlineFilterDisplay.tid
│   │   │       │   │   ├── InlineFilterDisplaySeparator.tid
│   │   │       │   │   ├── MissingVariable.tid
│   │   │       │   │   ├── NegatedTitle.tid
│   │   │       │   │   ├── Operands.tid
│   │   │       │   │   ├── Parameters.tid
│   │   │       │   │   ├── ParametersShortcut.tid
│   │   │       │   │   ├── Simple.tid
│   │   │       │   │   ├── TranscludeParameter.tid
│   │   │       │   │   ├── TranscludeParameterDirectly.tid
│   │   │       │   │   └── TranscludeParameterFunction.tid
│   │   │       │   ├── pragmas/
│   │   │       │   │   ├── Parsermode-indented.tid
│   │   │       │   │   ├── Parsermode.tid
│   │   │       │   │   ├── WhitespaceAfterPragma.tid
│   │   │       │   │   └── WhitespaceNoPragma.tid
│   │   │       │   ├── procedures/
│   │   │       │   │   ├── EndInBody.tid
│   │   │       │   │   ├── IndentedEnd.tid
│   │   │       │   │   ├── MismatchedNamedEnd.tid
│   │   │       │   │   ├── Nested-indented.tid
│   │   │       │   │   ├── Nested.tid
│   │   │       │   │   ├── TrailingNewlines.tid
│   │   │       │   │   ├── WhitespaceOnlyWithEnd.tid
│   │   │       │   │   └── WhitespaceOnlyWithEnd2.tid
│   │   │       │   ├── reserved-wikitext/
│   │   │       │   │   └── ReservedWikiText.tid
│   │   │       │   ├── serialize/
│   │   │       │   │   ├── Attribute.tid
│   │   │       │   │   ├── BlockRule.tid
│   │   │       │   │   ├── BoldEmphasis.tid
│   │   │       │   │   ├── CodeBlock.tid
│   │   │       │   │   ├── CommentBlock.tid
│   │   │       │   │   ├── CommentInline.tid
│   │   │       │   │   ├── Conditional.tid
│   │   │       │   │   ├── Dash.tid
│   │   │       │   │   ├── DynamicMacroMixed.tid
│   │   │       │   │   ├── DynamicMacroParams.tid
│   │   │       │   │   ├── DynamicWidgetAttribute.tid
│   │   │       │   │   ├── Entity.tid
│   │   │       │   │   ├── ExtLink.tid
│   │   │       │   │   ├── FilteredTranscludeBlock.tid
│   │   │       │   │   ├── FilteredTranscludeInline.tid
│   │   │       │   │   ├── FunctionDefinition.tid
│   │   │       │   │   ├── HardLineBreaks.tid
│   │   │       │   │   ├── Heading.tid
│   │   │       │   │   ├── Html.tid
│   │   │       │   │   ├── Image.tid
│   │   │       │   │   ├── Import.tid
│   │   │       │   │   ├── ItalicEmphasis.tid
│   │   │       │   │   ├── List.tid
│   │   │       │   │   ├── MacroCallBlock.tid
│   │   │       │   │   ├── MacroCallInline.tid
│   │   │       │   │   ├── MacroDef.tid
│   │   │       │   │   ├── Parameters.tid
│   │   │       │   │   ├── ParserMode.tid
│   │   │       │   │   ├── PrettyExtLink.tid
│   │   │       │   │   ├── PrettyLink.tid
│   │   │       │   │   ├── QuoteBlock.tid
│   │   │       │   │   ├── RulesPragma.tid
│   │   │       │   │   ├── SimpleText.tid
│   │   │       │   │   ├── SoftLineBreak.tid
│   │   │       │   │   ├── StrikethroughEmphasis.tid
│   │   │       │   │   ├── StyleBlock.tid
│   │   │       │   │   ├── StyleBlock2.tid
│   │   │       │   │   ├── StyleInline.tid
│   │   │       │   │   ├── SubscriptEmphasis.tid
│   │   │       │   │   ├── SuperscriptEmphasis.tid
│   │   │       │   │   ├── SysLink.tid
│   │   │       │   │   ├── Table.tid
│   │   │       │   │   ├── TranscludeBlock.tid
│   │   │       │   │   ├── TranscludeInline.tid
│   │   │       │   │   ├── TypedBlock1.tid
│   │   │       │   │   ├── TypedBlock2.tid
│   │   │       │   │   ├── UnderscoreEmphasis.tid
│   │   │       │   │   ├── VoidElements.tid
│   │   │       │   │   ├── WikiLink.tid
│   │   │       │   │   └── WikiLinkPrefix.tid
│   │   │       │   ├── tabs-macro/
│   │   │       │   │   ├── expected-test-tabs-horizontal-a.tid
│   │   │       │   │   ├── expected-test-tabs-horizontal-all.tid
│   │   │       │   │   └── expected-test-tabs-vertical.tid
│   │   │       │   ├── this-tiddler/
│   │   │       │   │   └── Simple.tid
│   │   │       │   ├── transclude/
│   │   │       │   │   ├── CustomWidget-ActionWidget.tid
│   │   │       │   │   ├── CustomWidget-CodeblockOverride-TextParser.tid
│   │   │       │   │   ├── CustomWidget-Fail.tid
│   │   │       │   │   ├── CustomWidget-Override-Codeblock.tid
│   │   │       │   │   ├── CustomWidget-OverrideTransclude.tid
│   │   │       │   │   ├── CustomWidget-RawAndSlotted.tid
│   │   │       │   │   ├── CustomWidget-Simple-Indented.tid
│   │   │       │   │   ├── CustomWidget-Simple.tid
│   │   │       │   │   ├── CustomWidget-Slotted-Empty.tid
│   │   │       │   │   ├── CustomWidget-Slotted.tid
│   │   │       │   │   ├── CustomWidget-TextWidgetOverride.tid
│   │   │       │   │   ├── CustomWidget-TextWidgetOverrideWithSlot.tid
│   │   │       │   │   ├── CustomWidget-Unoverride-Codeblock.tid
│   │   │       │   │   ├── CustomWidget-VariableAttribute.tid
│   │   │       │   │   ├── JavaScript-Macro.tid
│   │   │       │   │   ├── Macro-Missing.tid
│   │   │       │   │   ├── Macro-Plain.tid
│   │   │       │   │   ├── Macro-Simple.tid
│   │   │       │   │   ├── MissingTarget.tid
│   │   │       │   │   ├── MissingTiddlerAttribute.tid
│   │   │       │   │   ├── MissingTiddlerAttributeFiltered.tid
│   │   │       │   │   ├── Parameterised-Depth.tid
│   │   │       │   │   ├── Parameterised-Mode.tid
│   │   │       │   │   ├── Parameterised-Name-Values.tid
│   │   │       │   │   ├── Parameterised-ParseTreeNodes.tid
│   │   │       │   │   ├── Parameterised-Positional-Shortcut-Parameters.tid
│   │   │       │   │   ├── Parameterised-Positional-Shortcut.tid
│   │   │       │   │   ├── Parameterised-Positional-Variables.tid
│   │   │       │   │   ├── Parameterised-Positional.tid
│   │   │       │   │   ├── Parameterised-Shortcut-Parameters.tid
│   │   │       │   │   ├── Parameterised-Shortcut-ParametersIndented.tid
│   │   │       │   │   ├── Parameterised-Shortcut.tid
│   │   │       │   │   ├── Parameterised-Simple.tid
│   │   │       │   │   ├── Parameterised-SlotFillParseTreeNodes.tid
│   │   │       │   │   ├── Parameterised-Slotted-Missing.tid
│   │   │       │   │   ├── Parameterised-Slotted.tid
│   │   │       │   │   ├── Procedures-Double-Underscore.tid
│   │   │       │   │   ├── Procedures-Whitespace.tid
│   │   │       │   │   ├── Procedures-Whitespace2.tid
│   │   │       │   │   ├── Procedures-Whitespace3.tid
│   │   │       │   │   ├── Recursion.tid
│   │   │       │   │   ├── Typed.tid
│   │   │       │   │   ├── Variable-Refreshing.tid
│   │   │       │   │   └── Variable-Static.tid
│   │   │       │   └── widgets/
│   │   │       │       ├── DataAttributes/
│   │   │       │       │   ├── ButtonWidget-DataAttributes.tid
│   │   │       │       │   ├── CheckboxWidget-DataAttributes.tid
│   │   │       │       │   ├── DraggableWidget-DataAttributes.tid
│   │   │       │       │   ├── DroppableWidget-DataAttributes.tid
│   │   │       │       │   ├── LinkWidget-DataAttributes.tid
│   │   │       │       │   ├── OrderedStyleAttributes.tid
│   │   │       │       │   └── SelectWidget-DataAttributes.tid
│   │   │       │       ├── ElementWidgetEventAttributes.tid
│   │   │       │       ├── ElementWidgetStyleAttributes.tid
│   │   │       │       ├── ElementWidgetStyleAttributes2.tid
│   │   │       │       ├── LetWidgetSelfReferences.tid
│   │   │       │       ├── LetWidgetUndefinedVariable.tid
│   │   │       │       ├── SubstitutedAttributes.tid
│   │   │       │       └── view/
│   │   │       │           ├── ViewWidget-field-format-text-doubleurlencoded.tid
│   │   │       │           ├── ViewWidget-field-format-text-htmlencoded.tid
│   │   │       │           ├── ViewWidget-field-format-text-htmltextencoded.tid
│   │   │       │           ├── ViewWidget-field-format-text-urlencoded.tid
│   │   │       │           ├── ViewWidget-field-format-text.tid
│   │   │       │           ├── ViewWidget-field-index.tid
│   │   │       │           ├── ViewWidget-field-text.tid
│   │   │       │           ├── ViewWidget-field-title.tid
│   │   │       │           └── ViewWidget-format-date-template.tid
│   │   │       ├── from-tw5.com/
│   │   │       │   └── tiddlywiki.files
│   │   │       ├── modules/
│   │   │       │   └── utils/
│   │   │       │       └── test-csv.js
│   │   │       ├── test-action-deletefield.js
│   │   │       ├── test-action-widgets.js
│   │   │       ├── test-backlinks.js
│   │   │       ├── test-backtranscludes.js
│   │   │       ├── test-checkbox-widget.js
│   │   │       ├── test-compare-filter.js
│   │   │       ├── test-deserialize-operator.js
│   │   │       ├── test-deserializers.js
│   │   │       ├── test-fakedom.js
│   │   │       ├── test-filters.js
│   │   │       ├── test-html-parser.js
│   │   │       ├── test-json-filters.js
│   │   │       ├── test-linked-list.js
│   │   │       ├── test-parsetextreference.js
│   │   │       ├── test-plugins.js
│   │   │       ├── test-popup.js
│   │   │       ├── test-prefixes-filter.js
│   │   │       ├── test-tags-operator.js
│   │   │       ├── test-tags.js
│   │   │       ├── test-tiddler.js
│   │   │       ├── test-utils.js
│   │   │       ├── test-widget-event.js
│   │   │       ├── test-widget-getVariableInfo.js
│   │   │       ├── test-widget.js
│   │   │       ├── test-wikitext-parser.js
│   │   │       ├── test-wikitext-serialize.js
│   │   │       ├── test-wikitext-tabs-macro.js
│   │   │       └── test-wikitext.js
│   │   └── tiddlywiki.info
│   ├── testcommonjs/
│   │   ├── tiddlers/
│   │   │   ├── GettingStarted.tid
│   │   │   ├── absolute/
│   │   │   │   ├── b.js
│   │   │   │   ├── program.js
│   │   │   │   └── submodule/
│   │   │   │       └── a.js
│   │   │   ├── allTests.js
│   │   │   ├── cyclic/
│   │   │   │   ├── a.js
│   │   │   │   ├── b.js
│   │   │   │   └── program.js
│   │   │   ├── determinism/
│   │   │   │   ├── program.js
│   │   │   │   └── submodule/
│   │   │   │       └── a.js
│   │   │   ├── exactExports/
│   │   │   │   ├── a.js
│   │   │   │   └── program.js
│   │   │   ├── hasOwnProperty/
│   │   │   │   ├── hasOwnProperty.js
│   │   │   │   ├── program.js
│   │   │   │   └── toString.js
│   │   │   ├── method/
│   │   │   │   ├── a.js
│   │   │   │   └── program.js
│   │   │   ├── missing/
│   │   │   │   └── program.js
│   │   │   ├── monkeys/
│   │   │   │   ├── a.js
│   │   │   │   └── program.js
│   │   │   ├── nested/
│   │   │   │   ├── a/
│   │   │   │   │   └── b/
│   │   │   │   │       └── c/
│   │   │   │   │           └── d.js
│   │   │   │   └── program.js
│   │   │   ├── relative/
│   │   │   │   ├── program.js
│   │   │   │   └── submodule/
│   │   │   │       ├── a.js
│   │   │   │       └── b.js
│   │   │   ├── test.js
│   │   │   └── transitive/
│   │   │       ├── a.js
│   │   │       ├── b.js
│   │   │       ├── c.js
│   │   │       └── program.js
│   │   └── tiddlywiki.info
│   ├── text-slicer/
│   │   ├── tiddlers/
│   │   │   ├── HelloThere.tid
│   │   │   ├── Sample Text.tid
│   │   │   └── system/
│   │   │       ├── $__coreURL.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── sidebarlayout.tid
│   │   │       └── storyleft.tid
│   │   └── tiddlywiki.info
│   ├── tiddlywiki-surveys/
│   │   ├── scripts/
│   │   │   ├── extract-text-tiddlers-via-console.js
│   │   │   ├── import-great-interview-project-json.sh
│   │   │   └── readme.md
│   │   ├── tiddlers/
│   │   │   ├── 2010-great-interview-project/
│   │   │   │   ├── images/
│   │   │   │   │   ├── aamaadmitw5.jpg.meta
│   │   │   │   │   ├── alexhough.jpg.meta
│   │   │   │   │   ├── amalfaro-wrk.jpg.meta
│   │   │   │   │   ├── andrewbarbour.jpg.meta
│   │   │   │   │   ├── calmo.jpg.meta
│   │   │   │   │   ├── climatechange3.jpg.meta
│   │   │   │   │   ├── colmbritton.jpg.meta
│   │   │   │   │   ├── dickon.jpg.meta
│   │   │   │   │   ├── frankfurtkid.jpg.meta
│   │   │   │   │   ├── gjrobert.jpg.meta
│   │   │   │   │   ├── kosmaton.jpg.meta
│   │   │   │   │   ├── mama.jpg.meta
│   │   │   │   │   ├── martinlindner.jpg.meta
│   │   │   │   │   ├── matt.jpg.meta
│   │   │   │   │   ├── passingby.jpg.meta
│   │   │   │   │   ├── pmario.jpg.meta
│   │   │   │   │   ├── poulstaugaard.jpg.meta
│   │   │   │   │   ├── rouilj.jpg.meta
│   │   │   │   │   ├── smandoli.jpg.meta
│   │   │   │   │   ├── ubi.jpg.meta
│   │   │   │   │   ├── webid4me.jpg.meta
│   │   │   │   │   └── yakov.jpg.meta
│   │   │   │   └── text/
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - amalfaro-wrk - 2013-07-01T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - climatechange3 - 2010-12-01T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Do you keep adding new features to your existing TiddlyWiki(s)_.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - aamaadmitw5 - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - calmo - 2010-12-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - climatechange3 - 2010-12-01T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - gjrobert - 2013-09-15T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - pmario - 2011-04-05T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - poulstaugaard - 2011-03-06T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - ubi - 2010-11-29T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - webid4me - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How did you first discover TiddlyWiki_.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for you as an information publisher_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for you as an information publisher_ - mama - 2010-11-25T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for you as an information publisher_.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for your target audience_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for your target audience_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has TiddlyWiki saved time for your target audience_.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - andrewbarbour - 2010-11-28T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - climatechange3 - 2010-12-01T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - mama - 2010-11-26T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How has the TiddlyWiki community helped you_.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_ - smandoli - 2010-12-25T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you been able to contribute back to the TiddlyWiki community_.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - mama - 2010-11-25T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How have you found training novice users to use and understand TiddlyWiki_.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - andrewbarbour - 2010-11-28T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - colmbritton - 2010-12-21T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - matt - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_ - yakov - 2011-02-21T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many TiddlyWikis have you created and do you use regularly_.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - mama - 2011-08-17T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - martinlindner - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many other people have you introduced to TiddlyWiki_.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How many tiddlers and how many megabytes in your largest TiddlyWiki_.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_ - mama - 2010-12-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_ - martinlindner - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - How might you use TiddlyWiki in the future_.tid
│   │   │   │       ├── 2010 - Interview Question.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - andrewbarbour - 2010-11-28T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - gjrobert - 2013-09-15T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - kosmaton - 2011-03-10T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - mama - 2010-12-02T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - poulstaugaard - 2011-03-06T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What do you think of the name TiddlyWiki and the term _tiddler__.tid
│   │   │   │       ├── 2010 - What features of TiddlyWiki made it suitable for your target audience_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What features of TiddlyWiki made it suitable for your target audience_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What features of TiddlyWiki made it suitable for your target audience_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What features of TiddlyWiki made it suitable for your target audience_.tid
│   │   │   │       ├── 2010 - What is the most challenging thing about using TiddlyWiki_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What is the most challenging thing about using TiddlyWiki_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What is the most challenging thing about using TiddlyWiki_ - smandoli - 2010-12-25T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What is the most challenging thing about using TiddlyWiki_.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - aamaadmitw5 - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - climatechange3 - 2010-12-02T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - dickon - 2012-03-18T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - mama - 2010-11-20T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - martinlindner - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - pmario - 2011-04-05T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - poulstaugaard - 2011-03-12T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - webid4me - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - What was it about TiddlyWiki that captured your interest_.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - aamaadmitw5 - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - alexhough - 2010-12-08T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - pmario - 2011-04-05T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - smandoli - 2010-12-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - webid4me - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_ - yakov - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which aspects of TiddlyWiki do you find most valuable_.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_ - climatechange3 - 2010-12-01T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_ - pmario - 2011-04-06T23_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Which plugins do you rely on the most_.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - frankfurtkid - 2010-11-16T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - mama - 2010-11-24T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - passingby - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - rouilj - 2010-11-27T00_00_00.000Z.tid
│   │   │   │       ├── 2010 - Who is the target audience for your TiddlyWiki(s)_ - webid4me - 2014-09-23T23_00_00.000Z.tid
│   │   │   │       └── 2010 - Who is the target audience for your TiddlyWiki(s)_.tid
│   │   │   ├── 2025-community-survey/
│   │   │   │   ├── Community Survey 2025 Answer 00001.json
│   │   │   │   ├── Community Survey 2025 Answer 00002.json
│   │   │   │   ├── Community Survey 2025 Answer 00003.json
│   │   │   │   ├── Community Survey 2025 Answer 00004.tid
│   │   │   │   ├── Community Survey 2025 Answer 00005.json
│   │   │   │   ├── Community Survey 2025 Answer 00006.json
│   │   │   │   ├── Community Survey 2025 Answer 00007.tid
│   │   │   │   ├── Community Survey 2025 Answer 00008.tid
│   │   │   │   ├── Community Survey 2025 Answer 00009.json
│   │   │   │   ├── Community Survey 2025 Answer 00010.tid
│   │   │   │   ├── Community Survey 2025 Answer 00011.tid
│   │   │   │   ├── Community Survey 2025 Answer 00012.json
│   │   │   │   ├── Community Survey 2025 Answer 00013.tid
│   │   │   │   ├── Community Survey 2025 Answer 00014.json
│   │   │   │   ├── Community Survey 2025 Answer 00015.json
│   │   │   │   ├── Community Survey 2025 Answer 00016.tid
│   │   │   │   ├── Community Survey 2025 Answer 00017.json
│   │   │   │   ├── Community Survey 2025 Answer 00018.json
│   │   │   │   ├── Community Survey 2025 Answer 00019.json
│   │   │   │   ├── Community Survey 2025 Answer 00020.json
│   │   │   │   ├── Community Survey 2025 Answer 00021.tid
│   │   │   │   ├── Community Survey 2025 Answer 00022.json
│   │   │   │   ├── Community Survey 2025 Answer 00023.json
│   │   │   │   ├── Community Survey 2025 Answer 00024.json
│   │   │   │   ├── Community Survey 2025 Answer 00025.tid
│   │   │   │   ├── Community Survey 2025 Answer 00026.json
│   │   │   │   ├── Community Survey 2025 Answer 00027.tid
│   │   │   │   ├── Community Survey 2025 Answer 00028.json
│   │   │   │   ├── Community Survey 2025 Answer 00029.json
│   │   │   │   ├── Community Survey 2025 Answer 00030.json
│   │   │   │   ├── Community Survey 2025 Answer 00031.json
│   │   │   │   ├── Community Survey 2025 Answer 00032.tid
│   │   │   │   ├── Community Survey 2025 Answer 00033.json
│   │   │   │   ├── Community Survey 2025 Answer 00034.json
│   │   │   │   ├── Community Survey 2025 Answer 00035.tid
│   │   │   │   ├── Community Survey 2025 Answer 00036.tid
│   │   │   │   ├── Community Survey 2025 Answer 00037.json
│   │   │   │   ├── Community Survey 2025 Answer 00038.json
│   │   │   │   ├── Community Survey 2025 Answer 00039.json
│   │   │   │   ├── Community Survey 2025 Answer 00040.json
│   │   │   │   ├── Community Survey 2025 Answer 00041.json
│   │   │   │   ├── Community Survey 2025 Answer 00042.json
│   │   │   │   ├── Community Survey 2025 Answer 00043.json
│   │   │   │   ├── Community Survey 2025 Answer 00044.json
│   │   │   │   ├── Community Survey 2025 Answer 00045.json
│   │   │   │   ├── Community Survey 2025 Answer 00046.json
│   │   │   │   ├── Community Survey 2025 Answer 00047.json
│   │   │   │   ├── Community Survey 2025 Answer 00048.tid
│   │   │   │   ├── Community Survey 2025 Answer 00049.json
│   │   │   │   ├── Community Survey 2025 Answer 00050.json
│   │   │   │   ├── Community Survey 2025 Answer 00051.json
│   │   │   │   ├── Community Survey 2025 Answer 00052.json
│   │   │   │   ├── Community Survey 2025 Answer 00053.json
│   │   │   │   ├── Community Survey 2025 Answer 00054.json
│   │   │   │   ├── Community Survey 2025 Answer 00055.json
│   │   │   │   ├── Community Survey 2025 Answer 00056.tid
│   │   │   │   ├── Community Survey 2025 Answer 00057.json
│   │   │   │   ├── Community Survey 2025 Answer 00058.json
│   │   │   │   ├── Community Survey 2025 Answer 00059.json
│   │   │   │   ├── Community Survey 2025 Answer 00060.tid
│   │   │   │   ├── Community Survey 2025 Answer 00061.json
│   │   │   │   ├── Community Survey 2025 Answer 00062.json
│   │   │   │   ├── Community Survey 2025 Answer 00063.json
│   │   │   │   ├── Community Survey 2025 Answer 00064.json
│   │   │   │   ├── Community Survey 2025 Answer 00065.tid
│   │   │   │   ├── Community Survey 2025 Answer 00066.json
│   │   │   │   ├── Community Survey 2025 Answer 00067.tid
│   │   │   │   ├── Community Survey 2025 Answer 00068.json
│   │   │   │   ├── Community Survey 2025 Answer 00069.tid
│   │   │   │   ├── Community Survey 2025 Answer 00070.tid
│   │   │   │   ├── Community Survey 2025 Answer 00071.json
│   │   │   │   ├── Community Survey 2025 Answer 00072.json
│   │   │   │   ├── Community Survey 2025 Answer 00073.tid
│   │   │   │   ├── Community Survey 2025 Answer 00074.tid
│   │   │   │   ├── Community Survey 2025 Answer 00075.json
│   │   │   │   ├── Community Survey 2025 Answer 00076.json
│   │   │   │   ├── Community Survey 2025 Answer 00077.json
│   │   │   │   ├── Community Survey 2025 Answer 00078.json
│   │   │   │   ├── Community Survey 2025 Answer 00079.json
│   │   │   │   ├── Community Survey 2025 Answer 00080.json
│   │   │   │   ├── Community Survey 2025 Answer 00081.json
│   │   │   │   ├── Community Survey 2025 Answer 00082.json
│   │   │   │   ├── Community Survey 2025 Answer 00083.json
│   │   │   │   ├── Community Survey 2025 Answer 00084.json
│   │   │   │   ├── Community Survey 2025 Answer 00085.json
│   │   │   │   ├── Community Survey 2025 Answer 00086.json
│   │   │   │   ├── Community Survey 2025 Answer 00087.tid
│   │   │   │   ├── Community Survey 2025 Answer 00088.tid
│   │   │   │   ├── Community Survey 2025 Answer 00089.json
│   │   │   │   ├── Community Survey 2025 Answer 00090.json
│   │   │   │   ├── Community Survey 2025 Answer 00091.tid
│   │   │   │   ├── Community Survey 2025 Answer 00092.json
│   │   │   │   ├── Community Survey 2025 Answer 00093.json
│   │   │   │   ├── Community Survey 2025 Answer 00094.tid
│   │   │   │   ├── Community Survey 2025 Answer 00095.json
│   │   │   │   ├── Community Survey 2025 Answer 00096.tid
│   │   │   │   ├── Community Survey 2025 Answer 00097.json
│   │   │   │   ├── Community Survey 2025 Answer 00098.json
│   │   │   │   ├── Community Survey 2025 Answer 00099.json
│   │   │   │   ├── Community Survey 2025 Answer 00100.json
│   │   │   │   ├── Community Survey 2025 Answer 00101.json
│   │   │   │   ├── Community Survey 2025 Answer 00102.tid
│   │   │   │   ├── Community Survey 2025 Answer 00103.json
│   │   │   │   ├── Community Survey 2025 Answer 00104.json
│   │   │   │   ├── Community Survey 2025 Answer 00105.json
│   │   │   │   ├── Community Survey 2025 Answer 00106.tid
│   │   │   │   ├── Community Survey 2025 Answer 00107.json
│   │   │   │   ├── Community Survey 2025 Answer 00108.json
│   │   │   │   ├── Community Survey 2025 Answer 00109.json
│   │   │   │   ├── Community Survey 2025 Answer 00110.json
│   │   │   │   ├── Community Survey 2025 Answer 00111.json
│   │   │   │   ├── Community Survey 2025 Answer 00112.json
│   │   │   │   ├── Community Survey 2025 Answer 00113.json
│   │   │   │   ├── Community Survey 2025 Answer 00114.json
│   │   │   │   ├── Community Survey 2025 Answer 00115.tid
│   │   │   │   ├── Community Survey 2025 Answer 00116.json
│   │   │   │   ├── Community Survey 2025 Answer 00117.json
│   │   │   │   ├── Community Survey 2025 Answer 00118.json
│   │   │   │   ├── Community Survey 2025 Answer 00119.json
│   │   │   │   ├── Community Survey 2025 Answer 00120.json
│   │   │   │   ├── Community Survey 2025 Answer 00121.json
│   │   │   │   ├── Community Survey 2025 Answer 00122.json
│   │   │   │   ├── Community Survey 2025 Answer 00123.json
│   │   │   │   ├── Community Survey 2025 Answer 00124.json
│   │   │   │   ├── Community Survey 2025 Answer 00125.tid
│   │   │   │   ├── Community Survey 2025 Answer 00126.json
│   │   │   │   ├── Community Survey 2025 Answer 00127.json
│   │   │   │   ├── Community Survey 2025 Answer 00128.json
│   │   │   │   ├── Community Survey 2025 Answer 00129.json
│   │   │   │   ├── Community Survey 2025 Answer 00130.json
│   │   │   │   ├── Community Survey 2025 Answer 00131.json
│   │   │   │   ├── Community Survey 2025 Answer 00132.json
│   │   │   │   ├── Community Survey 2025 Answer 00133.tid
│   │   │   │   ├── Community Survey 2025 Answer 00134.tid
│   │   │   │   ├── Community Survey 2025 Answer 00135.json
│   │   │   │   ├── Community Survey 2025 Answer 00136.tid
│   │   │   │   ├── Community Survey 2025 Answer 00137.json
│   │   │   │   ├── Community Survey 2025 Answer 00138.tid
│   │   │   │   ├── Community Survey 2025 Answer 00139.json
│   │   │   │   ├── Community Survey 2025 Answer 00140.json
│   │   │   │   ├── Community Survey 2025 Answer 00141.json
│   │   │   │   ├── Community Survey 2025 Answer 00142.json
│   │   │   │   ├── Community Survey 2025 Answer 00143.json
│   │   │   │   ├── Community Survey 2025 Answer 00144.json
│   │   │   │   ├── Community Survey 2025 Answer 00145.tid
│   │   │   │   ├── Community Survey 2025 Answer 00146.tid
│   │   │   │   ├── Community Survey 2025 Answer 00147.tid
│   │   │   │   ├── Community Survey 2025 Answer 00148.json
│   │   │   │   ├── Community Survey 2025 Answer 00149.json
│   │   │   │   ├── Community Survey 2025 Answer 00150.json
│   │   │   │   ├── Community Survey 2025 Answer 00151.json
│   │   │   │   ├── Community Survey 2025 Answer 00152.json
│   │   │   │   ├── Community Survey 2025 Answer 00153.json
│   │   │   │   ├── Community Survey 2025 Answer 00154.json
│   │   │   │   ├── Community Survey 2025 Answer 00155.tid
│   │   │   │   ├── Community Survey 2025 Answer 00156.json
│   │   │   │   ├── Community Survey 2025 Answer 00157.json
│   │   │   │   ├── Community Survey 2025 Answer 00158.json
│   │   │   │   ├── Community Survey 2025 Answer 00159.json
│   │   │   │   ├── Community Survey 2025 Answer 00160.json
│   │   │   │   ├── Community Survey 2025 Answer 00161.json
│   │   │   │   ├── Community Survey 2025 Answer 00162.json
│   │   │   │   ├── Community Survey 2025 Answer 00163.json
│   │   │   │   ├── Community Survey 2025 Answer 00164.tid
│   │   │   │   ├── Community Survey 2025 Answer 00165.json
│   │   │   │   ├── Community Survey 2025 Answer 00166.json
│   │   │   │   ├── Community Survey 2025 Answer 00167.json
│   │   │   │   ├── Community Survey 2025 Answer 00168.tid
│   │   │   │   ├── Community Survey 2025 Answer 00169.json
│   │   │   │   ├── Community Survey 2025 Answer 00170.json
│   │   │   │   ├── Community Survey 2025 Answer 00171.json
│   │   │   │   ├── Community Survey 2025 Answer 00172.json
│   │   │   │   ├── Community Survey 2025 Answer 00173.json
│   │   │   │   ├── Community Survey 2025 Answer 00174.tid
│   │   │   │   ├── Community Survey 2025 Answer 00175.tid
│   │   │   │   ├── Community Survey 2025 Answer 00176.tid
│   │   │   │   ├── Community Survey 2025 Answer 00177.json
│   │   │   │   ├── Community Survey 2025 Answer 00178.tid
│   │   │   │   ├── Community Survey 2025 Answer 00179.json
│   │   │   │   ├── Community Survey 2025 Answer 00180.json
│   │   │   │   ├── Community Survey 2025 Answer 00181.json
│   │   │   │   ├── Community Survey 2025 Answer 00182.tid
│   │   │   │   ├── Community Survey 2025 Answer 00183.json
│   │   │   │   ├── Community Survey 2025 Answer 00184.json
│   │   │   │   ├── Community Survey 2025 Answer 00185.json
│   │   │   │   ├── Community Survey 2025 Answer 00186.json
│   │   │   │   ├── Community Survey 2025 Answer 00187.json
│   │   │   │   ├── Community Survey 2025 Answer 00188.tid
│   │   │   │   ├── Community Survey 2025 Answer 00189.json
│   │   │   │   ├── Community Survey 2025 Answer 00190.tid
│   │   │   │   ├── Community Survey 2025 Answer 00191.json
│   │   │   │   ├── Community Survey 2025 Answer 00192.json
│   │   │   │   ├── Community Survey 2025 Answer 00193.json
│   │   │   │   ├── Community Survey 2025 Answer 00194.tid
│   │   │   │   ├── Community Survey 2025 Answer 00195.json
│   │   │   │   ├── Community Survey 2025 Answer 00196.json
│   │   │   │   ├── Community Survey 2025 Answer 00197.tid
│   │   │   │   └── Community Survey 2025 Answer 00198.json
│   │   │   └── app/
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── Definitions.tid
│   │   │       ├── HelloThere.tid
│   │   │       ├── Questions.json
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── Styles.tid
│   │   │       ├── The Great TiddlyWiki Interview Project 2010.tid
│   │   │       ├── TiddlyWiki Community Survey 2025.tid
│   │   │       ├── ViewTemplate.tid
│   │   │       ├── XLSX Import Specs/
│   │   │       │   ├── row.tid
│   │   │       │   ├── sheet.tid
│   │   │       │   └── workbook.tid
│   │   │       ├── default-import-spec.tid
│   │   │       ├── open-state.multids
│   │   │       ├── palette.tid
│   │   │       ├── palettes - Naporitan.tid
│   │   │       └── state - sidebar.tid
│   │   └── tiddlywiki.info
│   ├── tour/
│   │   ├── tiddlers/
│   │   │   ├── Solar System/
│   │   │   │   ├── Asteroid (253) Mathilde Image.png.meta
│   │   │   │   ├── Asteroid.tid
│   │   │   │   ├── Comet Image.png.meta
│   │   │   │   ├── Comet.tid
│   │   │   │   ├── Earth Image.png.meta
│   │   │   │   ├── Earth's Moon Image.png.meta
│   │   │   │   ├── Earth's Moon.tid
│   │   │   │   ├── Earth.tid
│   │   │   │   ├── Jupiter Image.png.meta
│   │   │   │   ├── Jupiter.tid
│   │   │   │   ├── Kuiper belt.tid
│   │   │   │   ├── Mars Image.png.meta
│   │   │   │   ├── Mars.tid
│   │   │   │   ├── Mercury Image.png.meta
│   │   │   │   ├── Mercury.tid
│   │   │   │   ├── Milky Way Image.png.meta
│   │   │   │   ├── Milky Way.tid
│   │   │   │   ├── Moon.tid
│   │   │   │   ├── Neptune Image.png.meta
│   │   │   │   ├── Neptune.tid
│   │   │   │   ├── Planet Image.png.meta
│   │   │   │   ├── Planet.tid
│   │   │   │   ├── Pluto Image.png.meta
│   │   │   │   ├── Pluto.tid
│   │   │   │   ├── Saturn Image.png.meta
│   │   │   │   ├── Saturn.tid
│   │   │   │   ├── Solar System Image.png.meta
│   │   │   │   ├── Solar System.tid
│   │   │   │   ├── Sun Image.png.meta
│   │   │   │   ├── Sun.tid
│   │   │   │   ├── Uranus Image.png.meta
│   │   │   │   ├── Uranus.tid
│   │   │   │   ├── Venus Image.png.meta
│   │   │   │   └── Venus.tid
│   │   │   └── System/
│   │   │       ├── $__coreURL.tid
│   │   │       ├── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── HelloThere.tid
│   │   │       ├── SiteSubtitle.tid
│   │   │       ├── SiteTitle.tid
│   │   │       ├── configAutoStartTour.tid
│   │   │       └── styles.tid
│   │   └── tiddlywiki.info
│   ├── translators/
│   │   ├── tiddlers/
│   │   │   ├── Extracting Translations.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── Instructions for Translators.tid
│   │   │   └── system/
│   │   │       ├── $__status_UserName.tid
│   │   │       ├── DefaultTiddlers.tid
│   │   │       ├── PageControlButtonsVisibility.multids
│   │   │       ├── palette.tid
│   │   │       └── sidebarstate.tid
│   │   └── tiddlywiki.info
│   ├── tw.org/
│   │   ├── tiddlers/
│   │   │   ├── $__DefaultTiddlers.tid
│   │   │   ├── $__SiteSubtitle.tid
│   │   │   ├── $__SiteTitle.tid
│   │   │   ├── $__config_DefaultSidebarTab.tid
│   │   │   ├── $__core_templates_static.content.tid
│   │   │   ├── $__favicon.ico.png.meta
│   │   │   ├── $__palette.tid
│   │   │   ├── $__palettes_BlueFlavour
│   │   │   ├── $__palettes_BlueFlavour.meta
│   │   │   ├── $__palettes_FlowingSun
│   │   │   ├── $__palettes_FlowingSun.meta
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_bodyfontsize.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_bodylineheight.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid
│   │   │   ├── $__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
│   │   │   ├── Code of Conduct.tid
│   │   │   ├── Fundraising.tid
│   │   │   ├── HelloThere.tid
│   │   │   ├── Table of Contents.tid
│   │   │   ├── TiddlyWiki.tid
│   │   │   └── _tw_shared/
│   │   │       └── tiddlywiki.files
│   │   └── tiddlywiki.info
│   ├── tw5.com/
│   │   ├── tiddlers/
│   │   │   ├── Concatenating a text reference to create a URL.tid
│   │   │   ├── Concatenating variables to create a URL.tid
│   │   │   ├── Core CSS Variables.tid
│   │   │   ├── Core Classes.tid
│   │   │   ├── Core Functions.tid
│   │   │   ├── Core Messages.tid
│   │   │   ├── Core Procedures.tid
│   │   │   ├── Core Widgets.tid
│   │   │   ├── Deprecated Core Classes.tid
│   │   │   ├── Deprecated core macros.tid
│   │   │   ├── HTML Tags.tid
│   │   │   ├── Hidden Setting_ Import Content Types for Editor.tid
│   │   │   ├── Operators without parameters.tid
│   │   │   ├── Selection Constructors Conditional.tid
│   │   │   ├── String Operators.tid
│   │   │   ├── Tag Operators.tid
│   │   │   ├── Tags.tid
│   │   │   ├── TestCases_WikifyWidget_RenderHTML.tid
│   │   │   ├── TestCases_WikifyWidget_RenderSVGURI.tid
│   │   │   ├── TestCases_WikifyWidget_WidgetValue_Fail.tid
│   │   │   ├── TestCases_WikifyWidget_WidgetValue_Success.tid
│   │   │   ├── TestCases_WikifyWidget_WordCount_Fail.tid
│   │   │   ├── TestCases_WikifyWidget_WordCount_Success.tid
│   │   │   ├── TiddlyWiki Docs PR Maker.tid
│   │   │   ├── Title.tid
│   │   │   ├── Welcome.tid
│   │   │   ├── Writing stylesheets in vanilla CSS.tid
│   │   │   ├── _TiddlyStudy_ by Kebi.tid
│   │   │   ├── _tw_shared/
│   │   │   │   ├── Motovun Jack.svg.meta
│   │   │   │   ├── doc-utilities/
│   │   │   │   │   ├── doc-macros.tid
│   │   │   │   │   ├── doc-styles.tid
│   │   │   │   │   ├── version-macros.tid
│   │   │   │   │   └── wikitext-macros.tid
│   │   │   │   ├── favicons/
│   │   │   │   │   ├── classic.tiddlywiki.com.png.meta
│   │   │   │   │   ├── links.tiddlywiki.org.png.meta
│   │   │   │   │   ├── markplace.png.meta
│   │   │   │   │   ├── mws.tiddlywiki.com.png.meta
│   │   │   │   │   ├── talk.tiddlywiki.org.svg.meta
│   │   │   │   │   ├── tiddlywiki.com.dev.png.meta
│   │   │   │   │   ├── tiddlywiki.com.png.meta
│   │   │   │   │   ├── tiddlywiki.com.prerelease.png.meta
│   │   │   │   │   ├── tiddlywiki.com.upgrade.png.meta
│   │   │   │   │   └── tiddlywiki.org.png.meta
│   │   │   │   ├── sites/
│   │   │   │   │   ├── classic.tiddlywiki.com.tid
│   │   │   │   │   ├── links.tiddlywiki.org.tid
│   │   │   │   │   ├── marketplace.tid
│   │   │   │   │   ├── mws.tiddlywiki.com.tid
│   │   │   │   │   ├── talk.tiddlywiki.org.tid
│   │   │   │   │   ├── tiddlywiki.com.dev.tid
│   │   │   │   │   ├── tiddlywiki.com.prerelease.tid
│   │   │   │   │   ├── tiddlywiki.com.tid
│   │   │   │   │   ├── tiddlywiki.com.upgrade.tid
│   │   │   │   │   └── tiddlywiki.org.tid
│   │   │   │   ├── sites.tid
│   │   │   │   ├── styles.tid
│   │   │   │   └── tags-TiddlyWikiSites.tid
│   │   │   ├── about/
│   │   │   │   ├── About.tid
│   │   │   │   ├── Acknowledgements.tid
│   │   │   │   ├── Archive.tid
│   │   │   │   ├── Contributors.tid
│   │   │   │   ├── Developers.tid
│   │   │   │   ├── Filter Syntax History.tid
│   │   │   │   ├── Funding TiddlyWiki.tid
│   │   │   │   ├── History of TiddlyWiki.tid
│   │   │   │   ├── License.tid
│   │   │   │   ├── Open Collective.tid
│   │   │   │   ├── Philosophy of Tiddlers.tid
│   │   │   │   ├── The Story of TiddlyWiki.tid
│   │   │   │   └── TiddlyWiki Anniversaries.tid
│   │   │   ├── actionTiddlerList Variable.tid
│   │   │   ├── cards/
│   │   │   │   ├── card-procedures.tid
│   │   │   │   └── card-styles.tid
│   │   │   ├── commands/
│   │   │   │   ├── BuildCommand.tid
│   │   │   │   ├── ClearPasswordCommand.tid
│   │   │   │   ├── Commands.tid
│   │   │   │   ├── CommandsCommand.tid
│   │   │   │   ├── DeleteTiddlersCommand.tid
│   │   │   │   ├── EditionsCommand.tid
│   │   │   │   ├── FetchCommand.tid
│   │   │   │   ├── HelpCommand.tid
│   │   │   │   ├── ImportCommand.tid
│   │   │   │   ├── InitCommand.tid
│   │   │   │   ├── ListenCommand.tid
│   │   │   │   ├── LoadCommand.tid
│   │   │   │   ├── MakeLibraryCommand.tid
│   │   │   │   ├── NamedCommandParameters.tid
│   │   │   │   ├── OutputCommand.tid
│   │   │   │   ├── PasswordCommand.tid
│   │   │   │   ├── RenderCommand.tid
│   │   │   │   ├── RenderTiddlerCommand.tid
│   │   │   │   ├── RenderTiddlersCommand.tid
│   │   │   │   ├── SaveCommand.tid
│   │   │   │   ├── SaveTiddlerCommand.tid
│   │   │   │   ├── SaveTiddlersCommand.tid
│   │   │   │   ├── SaveWikiFolderCommand.tid
│   │   │   │   ├── ServerCommand.tid
│   │   │   │   ├── SetFieldCommand.tid
│   │   │   │   ├── UnpackPluginCommand.tid
│   │   │   │   ├── VerboseCommand.tid
│   │   │   │   └── VersionCommand.tid
│   │   │   ├── community/
│   │   │   │   ├── Articles.tid
│   │   │   │   ├── Chinese Community.tid
│   │   │   │   ├── Community Editions.tid
│   │   │   │   ├── Community Links Aggregator.tid
│   │   │   │   ├── Community Palettes.tid
│   │   │   │   ├── Community Plugins.tid
│   │   │   │   ├── Community Survey 2025.tid
│   │   │   │   ├── Community Themes.tid
│   │   │   │   ├── Community.tid
│   │   │   │   ├── Contributing.tid
│   │   │   │   ├── Contributor License Agreement.tid
│   │   │   │   ├── Examples.tid
│   │   │   │   ├── Forums.tid
│   │   │   │   ├── HelpingTiddlyWiki.tid
│   │   │   │   ├── Improving TiddlyWiki Documentation.tid
│   │   │   │   ├── Latest.tid
│   │   │   │   ├── Meetups.tid
│   │   │   │   ├── OXTWIG.tid
│   │   │   │   ├── Other Resources.tid
│   │   │   │   ├── ReportingBugs.tid
│   │   │   │   ├── Resources.tid
│   │   │   │   ├── Signing the Contributor License Agreement.tid
│   │   │   │   ├── TW Icons by morosanuae.tid
│   │   │   │   ├── TiddlyWiki Camp Paris.tid
│   │   │   │   ├── TiddlyWiki Hangouts.tid
│   │   │   │   ├── TiddlyWiki Newsletter.tid
│   │   │   │   ├── TiddlyWiki on the Web.tid
│   │   │   │   ├── TiddlyWiki_European_Meetup_2016.tid
│   │   │   │   ├── TiddlyWiki_European_Meetup_2017.tid
│   │   │   │   ├── Translate TiddlyWiki into your language.tid
│   │   │   │   ├── Tutorials.tid
│   │   │   │   ├── articles/
│   │   │   │   │   ├── _A free, open source wiki revisited_ by Mark Gibbs, NetworkWorld.tid
│   │   │   │   │   ├── _Notizen mit TiddlyWiki systemubergreifend nutzen_ by Michael Sonntag.tid
│   │   │   │   │   ├── _Setting Up a Personal TiddlyWiki Server on OS X_ by Kris Johnson.tid
│   │   │   │   │   ├── _TiddlyWiki 5 im Betatest_ by besim.tid
│   │   │   │   │   └── _TiddlyWiki_ by Sander de Boer.tid
│   │   │   │   ├── editions/
│   │   │   │   │   ├── Drift by Tony K.tid
│   │   │   │   │   ├── Stroll by David Gifford.tid
│   │   │   │   │   ├── Tidme by oflg.tid
│   │   │   │   │   ├── _Cardo-A Task and Project Management Wiki_ by David_Szego.tid
│   │   │   │   │   └── _Noteself_ by Danielo Rodriguez.tid
│   │   │   │   ├── examples/
│   │   │   │   │   ├── A Thesis Notebook.tid
│   │   │   │   │   ├── GitFixUm.tid
│   │   │   │   │   ├── PESpot Lesson Planner by Patrick Detzner.tid
│   │   │   │   │   ├── PETTIL.tid
│   │   │   │   │   ├── Reveal.js by Devin Weaver.tid
│   │   │   │   │   ├── Simple Zork like Game.tid
│   │   │   │   │   ├── TriTarget.org by Devin Weaver.tid
│   │   │   │   │   └── _Lucky Sushi_ online shop by sini-Kit.tid
│   │   │   │   ├── links/
│   │   │   │   │   ├── TalkTiddlyWiki.tid
│   │   │   │   │   ├── TiddlyWiki on Discord.tid
│   │   │   │   │   ├── TiddlyWiki on GitHub.tid
│   │   │   │   │   ├── TiddlyWiki on Mastodon.tid
│   │   │   │   │   ├── TiddlyWiki on Open Collective.tid
│   │   │   │   │   ├── TiddlyWiki on Reddit.tid
│   │   │   │   │   ├── TiddlyWiki on YouTube.tid
│   │   │   │   │   └── external-links-view-template.tid
│   │   │   │   ├── palettes/
│   │   │   │   │   ├── Dracula for tiddlywiki.tid
│   │   │   │   │   └── palletes by JD.tid
│   │   │   │   ├── plugins/
│   │   │   │   │   ├── Ace Editor Plugin by Joerg Plewe.tid
│   │   │   │   │   ├── BJHacks.tid
│   │   │   │   │   ├── Disqus comments plugin by bimlas.tid
│   │   │   │   │   ├── Encrypt single tiddler plugin.tid
│   │   │   │   │   ├── Eucalys Tiddly World.tid
│   │   │   │   │   ├── FSRS4TW by oflg.tid
│   │   │   │   │   ├── Favorites by Mohammad.tid
│   │   │   │   │   ├── Full Text Search Plugin by Rob Hoelz.tid
│   │   │   │   │   ├── GSD5.tid
│   │   │   │   │   ├── IndexedDB Plugin by Andreas Abeck.tid
│   │   │   │   │   ├── Json Mangler plugin by Joshua Fontany.tid
│   │   │   │   │   ├── Kin filter operator by bimlas.tid
│   │   │   │   │   ├── Kookma Plugin Library by Mohammad.tid
│   │   │   │   │   ├── Leaflet_maps_plugin_by_Sylvain_Comte.tid
│   │   │   │   │   ├── Locator plugin by bimlas.tid
│   │   │   │   │   ├── MathJax Plugin by Martin Kantor.tid
│   │   │   │   │   ├── Plugins by TheDiveO.tid
│   │   │   │   │   ├── Refnotes by Mohammad.tid
│   │   │   │   │   ├── Searchwikis by Mohammad.tid
│   │   │   │   │   ├── Shiraz by Mohammad.tid
│   │   │   │   │   ├── Slider by Mohammad.tid
│   │   │   │   │   ├── TW5-Graph by Flibbles.tid
│   │   │   │   │   ├── Tiddler Commander by Mohammad.tid
│   │   │   │   │   ├── TiddlyClip by buggyjay.tid
│   │   │   │   │   ├── TiddlyMap by Felix Kuppers.tid
│   │   │   │   │   ├── TiddlyWiki for Scholars.tid
│   │   │   │   │   ├── Tiddlyshow by Mohammad.tid
│   │   │   │   │   ├── Timelines by Mohammad.tid
│   │   │   │   │   ├── Tinka by Andreas Hahn.tid
│   │   │   │   │   ├── Todolist by Mohammad.tid
│   │   │   │   │   ├── Trashbin by Mohammad.tid
│   │   │   │   │   ├── Utility by Mohammad.tid
│   │   │   │   │   ├── _JD Mobile Layout plugin_ by JD.tid
│   │   │   │   │   ├── _Mal's Sandbox_ by Mal.tid
│   │   │   │   │   ├── _SK_Plugins_ by Stephen Kimmel.tid
│   │   │   │   │   ├── _Slides and Stories_ by Jan.tid
│   │   │   │   │   ├── _TW5-TeXZilla_ plugin by Joe Renes.tid
│   │   │   │   │   ├── _Tekan_ Kanban that stays with you_ by Riz.tid
│   │   │   │   │   ├── datepicker based on Pikaday.tid
│   │   │   │   │   ├── rboue's plugins for TiddlyWiki.tid
│   │   │   │   │   └── vis.js Timeline.tid
│   │   │   │   ├── resources/
│   │   │   │   │   ├── BrainTest.tid
│   │   │   │   │   ├── Code styles and auto format settings for IDEs.tid
│   │   │   │   │   ├── CouchDB Adaptor.tid
│   │   │   │   │   ├── Filter Examples by Tobias Beer.tid
│   │   │   │   │   ├── Font Awesome 5 Free SVGs for TiddlyWiki by morosanuae.tid
│   │   │   │   │   ├── Gospel_Bubbles_by_Rev_David_Gifford.tid
│   │   │   │   │   ├── Grok TiddlyWiki by Soren Bjornstad.tid
│   │   │   │   │   ├── Heeg.ru.tid
│   │   │   │   │   ├── Projectify by Nicolas Petton.tid
│   │   │   │   │   ├── RegExp in Tiddlywiki by Mohammad.tid
│   │   │   │   │   ├── SeeAlso by Matias Goldman.tid
│   │   │   │   │   ├── Semantic Colors by Mohammad.tid
│   │   │   │   │   ├── TB5 a pocket full of tips by Tobias Beer.tid
│   │   │   │   │   ├── TW-Scripts by Mohammad.tid
│   │   │   │   │   ├── TW5 Magick.tid
│   │   │   │   │   ├── TW5-SingleExecutable_by_Jed_Carty.tid
│   │   │   │   │   ├── TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid
│   │   │   │   │   ├── TWCommunitySearch.tid
│   │   │   │   │   ├── TWaddle by Matias Goldman.tid
│   │   │   │   │   ├── TiddlyChrome by Arlen Beiler.tid
│   │   │   │   │   ├── TiddlyDrive Add-on for Google Drive by Joshua Stubbs.tid
│   │   │   │   │   ├── TiddlyServer by Arlen Beiler.tid
│   │   │   │   │   ├── TiddlyWiki Notes.tid
│   │   │   │   │   ├── TiddlyWiki Posts.tid
│   │   │   │   │   ├── TiddlyWiki Video Tutorials by Francis Meetze.tid
│   │   │   │   │   ├── TiddlyWiki extensions for Sublime Text 3 by roma0104.tid
│   │   │   │   │   ├── TiddlyWiki extensions for ViM.tid
│   │   │   │   │   ├── TiddlyWiki guide FR.tid
│   │   │   │   │   ├── TiddlyWiki wu.tid
│   │   │   │   │   ├── TiddlyWiki5 Playground.tid
│   │   │   │   │   ├── TiddlyWiki5 Squared by Iannis Zannos.tid
│   │   │   │   │   ├── Twexe_ Single File Tiddlywiki5 executable.tid
│   │   │   │   │   ├── Widdly by Opennota.tid
│   │   │   │   │   ├── Wikilabs by PMario.tid
│   │   │   │   │   ├── Wills QnD gTD.tid
│   │   │   │   │   ├── _ATWiki_ by Lamusia Project.tid
│   │   │   │   │   ├── _Dropboard_ by Reid Gould.tid
│   │   │   │   │   ├── _Dynamic Tables_ by Jed Carty.tid
│   │   │   │   │   ├── _Hacks_ by Thomas Elmiger.tid
│   │   │   │   │   ├── _In My Socks_ by Jed Carty.tid
│   │   │   │   │   ├── _MathCell_ by Ste Wilson.tid
│   │   │   │   │   ├── _TiddlyServer_ by Matt Lauber.tid
│   │   │   │   │   ├── _TiddlyWiki Knowledge Network_ by Dmitry Sokolov.tid
│   │   │   │   │   ├── _TiddlyWiki Toolmap_ by David Gifford.tid
│   │   │   │   │   ├── _TiddlyWiki5 Bourbon_ from mkt_memory.tid
│   │   │   │   │   ├── _TiddlyWiki5 Forum on Reddit_ by Riz.tid
│   │   │   │   │   ├── _Timimi_ Extension and executable by Riz.tid
│   │   │   │   │   ├── _X3DOM for TiddlyWiki 5_ by Jamal Wills.tid
│   │   │   │   │   ├── _file-backups_ Extension Firefox by pmario.tid
│   │   │   │   │   ├── _muritest_ by Simon Huber.tid
│   │   │   │   │   ├── _savetiddlers_ Extension for Firefox by buggyj.tid
│   │   │   │   │   └── twproxy by Steve Gattuso.tid
│   │   │   │   ├── themes/
│   │   │   │   │   ├── Mono theme by JD.tid
│   │   │   │   │   ├── Notebook theme by Nicolas Petton.tid
│   │   │   │   │   ├── Whitespace a negative-spacious webapp-nostalgic theme by JD.tid
│   │   │   │   │   ├── _Ghostwriter theme by Rory Gibson_ by Riz.tid
│   │   │   │   │   └── _Moments-A little color won't hurt_ by Riz.tid
│   │   │   │   └── tutorials/
│   │   │   │       ├── Creating a baby journal with TiddlyWiki 5.tid
│   │   │   │       ├── GitHub Saver Tutorial by Mohammad.tid
│   │   │   │       ├── Microblogging con TiddlyWiki.tid
│   │   │   │       ├── Moongift on TiddlyWiki.tid
│   │   │   │       ├── Shining Ark Using TiddlyWiki.tid
│   │   │   │       ├── TW5 Tribal Knowledge.tid
│   │   │   │       └── Un wiki sur votre BiblioBox avec TiddlyWiki.tid
│   │   │   ├── communitycards/
│   │   │   │   └── tiddlywiki.files
│   │   │   ├── concepts/
│   │   │   │   ├── Bags and Recipes.tid
│   │   │   │   ├── Brackets.tid
│   │   │   │   ├── Cascades.tid
│   │   │   │   ├── ColourPalettes.tid
│   │   │   │   ├── CompoundTiddlers.tid
│   │   │   │   ├── Concepts.tid
│   │   │   │   ├── CoordinateSystems.tid
│   │   │   │   ├── Current Tiddler.tid
│   │   │   │   ├── Customizing EditTemplate Field Rendering.tid
│   │   │   │   ├── DataTiddlers.tid
│   │   │   │   ├── Date Fields.tid
│   │   │   │   ├── DefaultTiddlers.tid
│   │   │   │   ├── DictionaryTiddlers.tid
│   │   │   │   ├── Dominant Append.tid
│   │   │   │   ├── Edit Template Body Cascade.tid
│   │   │   │   ├── ExternalImages.tid
│   │   │   │   ├── Field Editor Cascade.tid
│   │   │   │   ├── Filters.tid
│   │   │   │   ├── Hard and Soft Links.tid
│   │   │   │   ├── Hard and Soft Transclusions.tid
│   │   │   │   ├── InfoPanel.tid
│   │   │   │   ├── JSONTiddlers.tid
│   │   │   │   ├── KeyboardShortcutTiddler.tid
│   │   │   │   ├── Macros.tid
│   │   │   │   ├── Messages.tid
│   │   │   │   ├── ModuleType.tid
│   │   │   │   ├── Modules.tid
│   │   │   │   ├── Order of Tagged Tiddlers.tid
│   │   │   │   ├── PermaLinks.tid
│   │   │   │   ├── Pragma.tid
│   │   │   │   ├── Railroad Diagrams.tid
│   │   │   │   ├── Selection Constructors.tid
│   │   │   │   ├── ShadowTiddlers.tid
│   │   │   │   ├── Story River.tid
│   │   │   │   ├── Story Tiddler Template Cascade.tid
│   │   │   │   ├── Story Tiddler Template.tid
│   │   │   │   ├── SystemTags.tid
│   │   │   │   ├── SystemTiddlers.tid
│   │   │   │   ├── TagTiddlers.tid
│   │   │   │   ├── TemplateTiddlers.tid
│   │   │   │   ├── Temporary Tiddlers.tid
│   │   │   │   ├── TestCaseTiddlers.tid
│   │   │   │   ├── TextReference.tid
│   │   │   │   ├── Tiddler Colour Cascade.tid
│   │   │   │   ├── Tiddler Icon Cascade.tid
│   │   │   │   ├── TiddlerFields.tid
│   │   │   │   ├── TiddlerLinks.tid
│   │   │   │   ├── Tiddlers.tid
│   │   │   │   ├── TiddlyWiki.tid
│   │   │   │   ├── TiddlyWiki5.tid
│   │   │   │   ├── TiddlyWikiFolders.tid
│   │   │   │   ├── Title List.tid
│   │   │   │   ├── Title Selection.tid
│   │   │   │   ├── Transclusion.tid
│   │   │   │   ├── View Template Body Cascade.tid
│   │   │   │   ├── View Template Title Cascade.tid
│   │   │   │   ├── Wiki.tid
│   │   │   │   └── WikiText.tid
│   │   │   ├── css-variables/
│   │   │   │   ├── --tp-animation-duration CSS Variable.tid
│   │   │   │   ├── --tp-body-font-size Variable.tid
│   │   │   │   ├── --tp-body-line-height Variable.tid
│   │   │   │   ├── --tp-code-font-family Variable.tid
│   │   │   │   ├── --tp-code-wrapping Variable.tid
│   │   │   │   ├── --tp-editor-font-family Variable.tid
│   │   │   │   ├── --tp-font-family Variable.tid
│   │   │   │   ├── --tp-font-size Variable.tid
│   │   │   │   ├── --tp-line-height Variable.tid
│   │   │   │   ├── --tp-sidebar-breakpoint CSS Variable.tid
│   │   │   │   ├── --tp-sidebar-width CSS Variable.tid
│   │   │   │   ├── --tp-story-left CSS Variable.tid
│   │   │   │   ├── --tp-story-right CSS Variable.tid
│   │   │   │   ├── --tp-story-top CSS Variable.tid
│   │   │   │   ├── --tp-story-width CSS Variable.tid
│   │   │   │   ├── --tp-tiddler-width CSS Variable.tid
│   │   │   │   └── --tpc-_ variables.tid
│   │   │   ├── currentTab Variable.tid
│   │   │   ├── customising/
│   │   │   │   ├── Alternative page layouts.tid
│   │   │   │   ├── Configuring startup tiddlers.tid
│   │   │   │   ├── Creating new toolbar buttons.tid
│   │   │   │   ├── Customise TiddlyWiki.tid
│   │   │   │   ├── Customising TiddlyWiki's user interface.tid
│   │   │   │   └── Customising search results.tid
│   │   │   ├── definitions/
│   │   │   │   ├── BT.tid
│   │   │   │   ├── Base64.tid
│   │   │   │   ├── CamelCase.tid
│   │   │   │   ├── Cascading Style Sheets.tid
│   │   │   │   ├── Comma Separated Values.tid
│   │   │   │   ├── ContentType.tid
│   │   │   │   ├── Data URI.tid
│   │   │   │   ├── Definitions.tid
│   │   │   │   ├── Document Object Model.tid
│   │   │   │   ├── Git.tid
│   │   │   │   ├── GitHub.tid
│   │   │   │   ├── GitLab.tid
│   │   │   │   ├── GuerillaWiki.tid
│   │   │   │   ├── HTML Block Elements.tid
│   │   │   │   ├── HyperText Markup Language.tid
│   │   │   │   ├── Intertwingled Innovations.tid
│   │   │   │   ├── JavaScript Object Notation.tid
│   │   │   │   ├── JavaScript.tid
│   │   │   │   ├── JeremyRuston.tid
│   │   │   │   ├── Jermolene.tid
│   │   │   │   ├── KeyboardShortcutDescriptor.tid
│   │   │   │   ├── Legacy.tid
│   │   │   │   ├── Markdown.tid
│   │   │   │   ├── MathML.tid
│   │   │   │   ├──
Download .txt
Showing preview only (201K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2210 symbols across 166 files)

FILE: boot/boot.js
  function addDifference (line 1066) | function addDifference(fieldName) {
  function isFieldValueEqual (line 1074) | function isFieldValueEqual(fieldName) {

FILE: boot/sjcl.js
  function t (line 6) | function t(a,b,c){if(4!==b.length)throw new sjcl.exception.invalid("inva...
  function a (line 19) | function a(a){return 0x100000000*(a-Math.floor(a))|0}
  function u (line 21) | function u(a,b){var c,d,e,f=a.F,g=a.b,h=f[0],k=f[1],l=f[2],n=f[3],m=f[4]...
  function A (line 48) | function A(a,b){var c,d=sjcl.random.K[a],e=[];for(c in d)d.hasOwnPropert...
  function C (line 48) | function C(a,b){"undefined"!==typeof window&&window.performance&&"functi...
  function y (line 48) | function y(a){a.b=z(a).concat(z(a));a.L=new sjcl.cipher.aes(a.b)}
  function z (line 48) | function z(a){for(var b=0;4>b&&(a.h[b]=a.h[b]+1|0,!a.h[b]);b++);return a...
  function B (line 49) | function B(a,b){return function(){b.apply(a,arguments)}}

FILE: core-server/commands/savewikifolder.js
  function WikiFolderMaker (line 59) | function WikiFolderMaker(wikiFolderPath,wikiFilter,commander,options) {

FILE: core-server/server/authenticators/basic.js
  function BasicAuthenticator (line 17) | function BasicAuthenticator(server) {

FILE: core-server/server/authenticators/header.js
  function HeaderAuthenticator (line 12) | function HeaderAuthenticator(server) {

FILE: core-server/server/server.js
  function Server (line 29) | function Server(options) {
  function sendResponse (line 118) | function sendResponse(request,response,statusCode,headers,data,encoding) {

FILE: core-server/utils/base64.js
  function base64ToBytes (line 18) | function base64ToBytes(base64) {
  function bytesToBase64 (line 23) | function bytesToBase64(bytes) {

FILE: core/modules/background-actions.js
  class BackgroundActionDispatcher (line 12) | class BackgroundActionDispatcher {
    method constructor (line 13) | constructor(filterTracker, wiki) {
    method trackFilter (line 31) | trackFilter(title) {
    method untrackFilter (line 44) | untrackFilter(enterValue) {
    method process (line 52) | process(changes) {
  class BackgroundActionTracker (line 66) | class BackgroundActionTracker {
    method constructor (line 67) | constructor({wiki, title, trackFilter, actions}) {
    method process (line 107) | process(changes) {
    method destroy (line 111) | destroy() {

FILE: core/modules/deserializers.js
  function deserializeHtmlFile (line 78) | function deserializeHtmlFile(text,fields) {
  function deserializeNewStoreArea (line 88) | function deserializeNewStoreArea(text,storeAreaEnd,type,fields) {
  function deserializeStoreArea (line 100) | function deserializeStoreArea(text,storeAreaEnd,isTiddlyWiki5,fields) {

FILE: core/modules/editor/engines/framed.js
  function FramedEngine (line 14) | function FramedEngine(options) {

FILE: core/modules/editor/engines/simple.js
  function SimpleEngine (line 14) | function SimpleEngine(options) {

FILE: core/modules/editor/factory.js
  function editTextWidgetFactory (line 20) | function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {

FILE: core/modules/editor/operations/text/excise.js
  function isMarkdown (line 12) | function isMarkdown(mediaType) {

FILE: core/modules/editor/operations/text/wrap-selection.js
  function togglePrefixSuffix (line 49) | function togglePrefixSuffix() {
  function removePrefixSuffix (line 68) | function removePrefixSuffix(options) {
  function addPrefixSuffix (line 80) | function addPrefixSuffix() {

FILE: core/modules/filter-tracker.js
  class FilterTracker (line 12) | class FilterTracker {
    method constructor (line 13) | constructor(wiki) {
    method handleChangeEvent (line 19) | handleChangeEvent(changes) {
    method track (line 32) | track(options = {}) {
    method untrack (line 57) | untrack(id) {
    method processTrackers (line 61) | processTrackers() {
    method processTracker (line 67) | processTracker(id) {
    method processChanges (line 92) | processChanges(changes) {

FILE: core/modules/filters.js
  function parseFilterOperation (line 24) | function parseFilterOperation(operators,filterString,p) {

FILE: core/modules/filters/all.js
  function getAllFilterOperators (line 16) | function getAllFilterOperators() {

FILE: core/modules/filters/format.js
  function getFormatFilterOperators (line 12) | function getFormatFilterOperators() {

FILE: core/modules/filters/is.js
  function getIsFilterOperators (line 14) | function getIsFilterOperators() {

FILE: core/modules/filters/json-ops.js
  function getDataItemValueAsStrings (line 135) | function getDataItemValueAsStrings(data,indexes) {
  function getDataItemKeysAsStrings (line 145) | function getDataItemKeysAsStrings(data,indexes) {
  function convertDataItemValueToStrings (line 155) | function convertDataItemValueToStrings(item) {
  function convertDataItemKeysToStrings (line 188) | function convertDataItemKeysToStrings(item) {
  function getDataItemType (line 212) | function getDataItemType(data,indexes) {
  function getItemAtIndex (line 229) | function getItemAtIndex(item,index) {
  function traverseIndexChain (line 245) | function traverseIndexChain(data,indexes,stopBeforeLast) {
  function getDataItem (line 266) | function getDataItem(data,indexes) {
  function setDataItem (line 273) | function setDataItem(data,indexes,value) {
  function deleteDataItem (line 304) | function deleteDataItem(data,indexes) {

FILE: core/modules/filters/math.js
  function getVarianceFromArray (line 195) | function getVarianceFromArray(values,mean) {
  function makeNumericBinaryOperator (line 202) | function makeNumericBinaryOperator(fnCalc) {
  function makeNumericReducingOperator (line 213) | function makeNumericReducingOperator(fnCalc,initialValue,fnFinal) {
  function makeNumericArrayOperator (line 234) | function makeNumericArrayOperator(fnCalc) {

FILE: core/modules/filters/strings.js
  function diffLineWordMode (line 84) | function diffLineWordMode(text1,text2,mode) {
  function makeStringBinaryOperator (line 127) | function makeStringBinaryOperator(fnCalc) {
  function makeStringReducingOperator (line 137) | function makeStringReducingOperator(fnCalc,initialValue) {

FILE: core/modules/indexers/back-indexer.js
  function BackIndexer (line 9) | function BackIndexer(wiki) {
  function BackSubIndexer (line 31) | function BackSubIndexer(indexer,extractor) {

FILE: core/modules/indexers/field-indexer.js
  function FieldIndexer (line 14) | function FieldIndexer(wiki) {

FILE: core/modules/indexers/tag-indexer.js
  function TagIndexer (line 12) | function TagIndexer(wiki) {
  function TagSubIndexer (line 40) | function TagSubIndexer(indexer,iteratorMethod) {

FILE: core/modules/info/dimensions.js
  class WindowDimensionsTracker (line 12) | class WindowDimensionsTracker {
    method constructor (line 13) | constructor(updateCallback) {
    method buildTiddlers (line 26) | buildTiddlers(win,windowId) {
    method clearTiddlers (line 34) | clearTiddlers(windowId) {
    method getUpdateHandler (line 40) | getUpdateHandler(win,windowId) {
    method trackWindow (line 53) | trackWindow(win,windowId) {
    method untrackWindow (line 60) | untrackWindow(windowId) {

FILE: core/modules/info/mediaquerytracker.js
  function track (line 15) | function track(title) {
  function untrack (line 43) | function untrack(enterValue) {
  function fnEnter (line 49) | function fnEnter(title) {
  function fnLeave (line 52) | function fnLeave(title,enterValue) {
  function fnChange (line 55) | function fnChange(title,enterValue) {

FILE: core/modules/keyboard.js
  function KeyboardManager (line 126) | function KeyboardManager(options) {

FILE: core/modules/language.js
  function Language (line 16) | function Language(options) {

FILE: core/modules/macros/csvtiddlers.js
  function quoteAndEscape (line 71) | function quoteAndEscape(value) {

FILE: core/modules/pluginswitcher.js
  function PluginSwitcher (line 20) | function PluginSwitcher(options) {

FILE: core/modules/saver-handler.js
  function SaverHandler (line 17) | function SaverHandler(options) {

FILE: core/modules/startup/browser-messaging.js
  function loadIFrame (line 21) | function loadIFrame(url,callback) {
  function unloadIFrame (line 61) | function unloadIFrame(url){
  function saveIFrameInfoTiddler (line 72) | function saveIFrameInfoTiddler(iframeInfo) {

FILE: core/modules/startup/eventbus.js
  method on (line 17) | on(event,handler) {
  method off (line 25) | off(event,handler) {
  method once (line 32) | once(event,handler) {
  method emit (line 40) | emit(event,data) {

FILE: core/modules/startup/render.js
  function refresh (line 83) | function refresh() {

FILE: core/modules/startup/story.js
  function openStartupTiddlers (line 117) | function openStartupTiddlers(options) {
  function updateLocationHash (line 184) | function updateLocationHash(options) {

FILE: core/modules/story.js
  function Story (line 18) | function Story(options) {

FILE: core/modules/storyviews/zoomin.js
  function findTitleDomNode (line 128) | function findTitleDomNode(widget,targetClass) {

FILE: core/modules/syncer.js
  function Syncer (line 35) | function Syncer(options) {
  function checkIsDirty (line 206) | function checkIsDirty() {
  function SaveTiddlerTask (line 525) | function SaveTiddlerTask(syncer,title) {
  function DeleteTiddlerTask (line 563) | function DeleteTiddlerTask(syncer,title) {
  function LoadTiddlerTask (line 590) | function LoadTiddlerTask(syncer,title) {
  function SyncFromServerTask (line 617) | function SyncFromServerTask(syncer) {

FILE: core/modules/utils/base64.js
  function base64ToBytes (line 19) | function base64ToBytes(base64) {
  function bytesToBase64 (line 24) | function bytesToBase64(bytes) {

FILE: core/modules/utils/diff-match-patch/diff_match_patch.js
  function h (line 2) | function h(t){if(null==t?void 0:t.__resolved)return t;const n=l(l({},i),...
  function o (line 2) | function o(t,n){return[t,n]}
  function f (line 2) | function f(t,n,e,s=!0,r){const l=h(e);void 0===r&&(r=l.diffTimeout<=0?Nu...
  function a (line 2) | function a(t,n,e,s,r,l){const i=t.substring(0,s),h=n.substring(0,r),g=t....
  function c (line 2) | function c(t,n){const e=[],s={};let r=4e4;function l(t){let n="",l=0,i=-...
  function u (line 2) | function u(t,n){for(let e=0;e<t.length;e++){const s=t[e][1],r=[];for(let...
  function p (line 2) | function p(t,n){if(!t||!n||t.charAt(0)!==n.charAt(0))return 0;let e=0,s=...
  function b (line 2) | function b(t,n){if(!t||!n||t.charAt(t.length-1)!==n.charAt(n.length-1))r...
  function d (line 2) | function d(t,n){const e=t.length,s=n.length;if(0===e||0===s)return 0;e>s...
  function m (line 2) | function m(t){let n=!1;const e=[];let s=0,r=null,l=0,i=0,h=0,f=0,a=0;for...
  function O (line 2) | function O(t){function n(t,n){if(!t||!n)return 6;const e=t.charAt(t.leng...
  function $ (line 2) | function $(t,n={}){const{diffEditCost:e=i.diffEditCost}=n;let s=!1;const...
  function k (line 2) | function k(t){t.push(o(0,""));let n,e=0,s=0,r=0,l="",i="";for(;e<t.lengt...
  function v (line 2) | function v(t,n){let e,s=0,r=0,l=0,i=0;for(e=0;e<t.length&&(1!==t[e][0]&&...
  function E (line 2) | function E(t){const n=[];for(let e=0;e<t.length;e++)1!==t[e][0]&&(n[e]=t...
  function I (line 2) | function I(t){const n=[];for(let e=0;e<t.length;e++)t[e][0]!==g&&(n[e]=t...
  function j (line 2) | function j(t){let n=0,e=0,s=0;for(let r=0;r<t.length;r++){const l=t[r][0...
  function T (line 2) | function T(t,n,e,s){if(null==t||null==n||null==e)throw new Error("Null i...
  function C (line 2) | function C(t,n,e,s){const r=h(s);if(n.length>r.matchMaxBits)throw new Er...
  function D (line 2) | function D(t){const n={};for(let e=0;e<t.length;e++)n[t.charAt(e)]=0;for...
  function L (line 2) | function L(t,n,e){if(0===n.length)return;if(null===t.start2)throw new Er...
  function U (line 2) | function U(t,n,e,s={}){const r=F(F({},i),s);let l,h;if("string"==typeof ...
  function R (line 2) | function R(t){const n=[];for(let e=0;e<t.length;e++){const s=t[e],r=q();...
  function z (line 2) | function z(t,n={}){const{patchMargin:e=i.patchMargin}=n;let s="";for(let...
  function X (line 2) | function X(t,n){const e=h(n);for(let s=0;s<t.length;s++){if(t[s].length1...
  function q (line 2) | function q(){const t={diffs:[],start1:null,start2:null,length1:0,length2...

FILE: core/modules/utils/diff-match-patch/diff_match_patch_uncompressed.js
  function resolveOptions (line 28) | function resolveOptions(options) {
  constant DIFF_DELETE (line 36) | const DIFF_DELETE = -1;
  constant DIFF_INSERT (line 37) | const DIFF_INSERT = 1;
  constant DIFF_EQUAL (line 38) | const DIFF_EQUAL = 0;
  function createDiff (line 39) | function createDiff(op, text) {
  function diffMain (line 42) | function diffMain(text1, text2, options, opt_checklines = true, opt_dead...
  function diffCompute (line 75) | function diffCompute(text1, text2, options, checklines, deadline) {
  function diffLineMode (line 110) | function diffLineMode(text1, text2, options, deadline) {
  function diffBisect (line 154) | function diffBisect(text1, text2, options, deadline) {
  function diffBisectSplit (line 236) | function diffBisectSplit(text1, text2, options, x, y, deadline) {
  function diffLinesToChars (line 245) | function diffLinesToChars(text1, text2) {
  function diffCharsToLines (line 280) | function diffCharsToLines(diffs, lineArray) {
  function diffCommonPrefix (line 289) | function diffCommonPrefix(text1, text2) {
  function diffCommonSuffix (line 307) | function diffCommonSuffix(text1, text2) {
  function diffCommonOverlap (line 326) | function diffCommonOverlap(text1, text2) {
  function diffHalfMatch (line 352) | function diffHalfMatch(text1, text2, options) {
  function diffCleanupSemantic (line 408) | function diffCleanupSemantic(diffs) {
  function diffCleanupSemanticLossless (line 484) | function diffCleanupSemanticLossless(diffs) {
  function diffCleanupEfficiency (line 560) | function diffCleanupEfficiency(diffs, options = {}) {
  function diffCleanupMerge (line 614) | function diffCleanupMerge(diffs) {
  function diffXIndex (line 702) | function diffXIndex(diffs, loc) {
  function diffPrettyHtml (line 725) | function diffPrettyHtml(diffs) {
  function diffText1 (line 749) | function diffText1(diffs) {
  function diffText2 (line 757) | function diffText2(diffs) {
  function diffLevenshtein (line 765) | function diffLevenshtein(diffs) {
  function diffToDelta (line 789) | function diffToDelta(diffs) {
  function diffFromDelta (line 806) | function diffFromDelta(text1, delta) {
  function matchMain (line 844) | function matchMain(text, pattern, loc, options) {
  function matchBitap (line 858) | function matchBitap(text, pattern, loc, options) {
  function matchAlphabet (line 925) | function matchAlphabet(pattern) {
  function patchAddContext (line 950) | function patchAddContext(patch, text, options) {
  function patchMake (line 977) | function patchMake(a, opt_b, opt_c, options = {}) {
  function patchDeepCopy (line 1059) | function patchDeepCopy(patches) {
  function patchApply (line 1076) | function patchApply(patches, text, options) {
  function patchAddPadding (line 1152) | function patchAddPadding(patches, options = {}) {
  function patchSplitMax (line 1193) | function patchSplitMax(patches, options) {
  function patchToText (line 1261) | function patchToText(patches) {
  function patchFromText (line 1267) | function patchFromText(textline) {
  function createPatch (line 1325) | function createPatch() {

FILE: core/modules/utils/dom/animations/slide.js
  function slideOpen (line 12) | function slideOpen(domNode,options) {
  function slideClosed (line 65) | function slideClosed(domNode,options) {

FILE: core/modules/utils/dom/animator.js
  function Animator (line 12) | function Animator() {

FILE: core/modules/utils/dom/csscolorparser.js
  function clamp_css_byte (line 100) | function clamp_css_byte(i) {  // Clamp to integer 0 .. 255.
  function clamp_css_float (line 105) | function clamp_css_float(f) {  // Clamp to float 0.0 .. 1.0.
  function parse_css_int (line 109) | function parse_css_int(str) {  // int or percentage.
  function parse_css_float (line 115) | function parse_css_float(str) {  // float or percentage.
  function css_hue_to_rgb (line 121) | function css_hue_to_rgb(m1, m2, h) {
  function parseCSSColor (line 131) | function parseCSSColor(css_str) {

FILE: core/modules/utils/dom/dragndrop.js
  function parseJSONTiddlers (line 246) | function parseJSONTiddlers(json,fallbackTitle) {
  function dragEventContainsType (line 257) | function dragEventContainsType(event,targetType) {

FILE: core/modules/utils/dom/http.js
  function HttpClient (line 17) | function HttpClient(options) {
  function HttpClientRequest (line 106) | function HttpClientRequest(options) {

FILE: core/modules/utils/errors.js
  function TranscludeRecursionError (line 10) | function TranscludeRecursionError() {

FILE: core/modules/utils/linked-list.js
  function LinkedList (line 13) | function LinkedList() {
  function _removeOne (line 110) | function _removeOne(list,value) {
  function _linkToEnd (line 153) | function _linkToEnd(list,value) {
  function _assertString (line 187) | function _assertString(value) {

FILE: core/modules/utils/logger.js
  function Logger (line 17) | function Logger(componentName,options) {

FILE: core/modules/utils/messaging.js
  function BrowserMessagingSubscriber (line 24) | function BrowserMessagingSubscriber(options) {
  function BrowserMessagingPublisher (line 68) | function BrowserMessagingPublisher(options) {

FILE: core/modules/utils/performance.js
  function Performance (line 12) | function Performance(enabled) {

FILE: core/modules/utils/utils.js
  function safeCopy (line 249) | function safeCopy(obj) {
  function diff_linesToPartsMunge_ (line 973) | function diff_linesToPartsMunge_(text,mode) {

FILE: core/modules/widgets/button.js
  constant ALLOWED_SELECTED_ARIA_ATTR (line 12) | const ALLOWED_SELECTED_ARIA_ATTR = ["aria-checked", "aria-selected", "ar...

FILE: core/modules/widgets/data.js
  function hasPayloadChanged (line 175) | function hasPayloadChanged(a,b) {

FILE: core/modules/widgets/diff-text.js
  function diffLineWordMode (line 150) | function diffLineWordMode(text1,text2,mode,editCost) {

FILE: core/modules/widgets/importvariables.js
  function haveListedTiddlersChanged (line 112) | function haveListedTiddlersChanged() {

FILE: core/modules/widgets/navigator.js
  function isUnmodifiedShadow (line 189) | function isUnmodifiedShadow(title) {
  function confirmEditShadow (line 192) | function confirmEditShadow(title) {

FILE: core/modules/widgets/widget.js
  method getVariableInfo (line 336) | getVariableInfo(name,opts = {}) {
  method getVariable (line 349) | getVariable(name,opts) {
  method variables (line 357) | get variables() {

FILE: core/modules/wiki-bulkops.js
  function renameTiddler (line 15) | function renameTiddler(fromTitle,toTitle,options) {
  function relinkTiddler (line 34) | function relinkTiddler(fromTitle,toTitle,options) {

FILE: core/modules/wiki.js
  function moveItemInList (line 756) | function moveItemInList(title) {

FILE: editions/dev/tiddlers/javascript-widget-tutorial/domwidget.js
  function createDomWidget (line 11) | function createDomWidget(domCreatorFunction) {

FILE: editions/test/tiddlers/tests/test-action-deletefield.js
  function setupWiki (line 16) | function setupWiki(condition, targetField, wikiOptions) {
  function generateTestConditions (line 50) | function generateTestConditions() {
  function generateActionWikitext (line 77) | function generateActionWikitext(condition, targetField) {
  function generateTestContext (line 89) | function generateTestContext(action, tiddler) {

FILE: editions/test/tiddlers/tests/test-action-widgets.js
  function setupWiki (line 16) | function setupWiki(wikiOptions) {

FILE: editions/test/tiddlers/tests/test-backlinks.js
  function setupWiki (line 12) | function setupWiki(wikiOptions) {

FILE: editions/test/tiddlers/tests/test-checkbox-widget.js
  function createWidgetNode (line 19) | function createWidgetNode(parseTreeNode,wiki) {
  function parseText (line 26) | function parseText(text,wiki,options) {
  function renderWidgetNode (line 31) | function renderWidgetNode(widgetNode) {
  function findNodeOfType (line 41) | function findNodeOfType(targetType, currentNode) {

FILE: editions/test/tiddlers/tests/test-deserializers.js
  function executeTestCase (line 16) | function executeTestCase(title,expectedOutput) {

FILE: editions/test/tiddlers/tests/test-filters.js
  function testWithAndWithoutIndexers (line 65) | function testWithAndWithoutIndexers(options) {
  function setupWiki (line 83) | function setupWiki(wikiOptions) {
  function runTests (line 217) | function runTests(wiki) {

FILE: editions/test/tiddlers/tests/test-html-parser.js
  function FakeParser (line 12) | function FakeParser() {

FILE: editions/test/tiddlers/tests/test-linked-list.js
  function newPair (line 30) | function newPair(initialArray) {
  function pushTop (line 39) | function pushTop(pair, valueOrValues) {
  function push (line 46) | function push(pair, values) {
  function remove (line 53) | function remove(pair, valueOrValues) {
  function toReverseArray (line 62) | function toReverseArray(list) {
  function compare (line 81) | function compare(pair) {

FILE: editions/test/tiddlers/tests/test-tags-operator.js
  function setupWiki (line 26) | function setupWiki(wikiOptions) {
  function runTests (line 44) | function runTests(wiki,wikiOptions) {

FILE: editions/test/tiddlers/tests/test-tags.js
  function setupWiki (line 26) | function setupWiki(wikiOptions) {
  function runTests (line 96) | function runTests(wiki,wikiOptions) {

FILE: editions/test/tiddlers/tests/test-tiddler.js
  function compareTiddlers (line 14) | function compareTiddlers(fieldsA,fieldsB,excludeFields) {

FILE: editions/test/tiddlers/tests/test-widget-event.js
  function createWidgetNode (line 12) | function createWidgetNode(parseTreeNode,wiki,parentWidget) {
  function listener (line 50) | function listener(e) {
  function listener1 (line 176) | function listener1(e) {
  function listener2 (line 180) | function listener2(e) {
  function listener (line 198) | function listener(e) {

FILE: editions/test/tiddlers/tests/test-widget-getVariableInfo.js
  function createWidgetNode (line 15) | function createWidgetNode(parseTreeNode,wiki) {
  function parseText (line 22) | function parseText(text,wiki,options) {
  function renderWidgetNode (line 27) | function renderWidgetNode(widgetNode) {

FILE: editions/test/tiddlers/tests/test-widget.js
  function createWidgetNode (line 16) | function createWidgetNode(parseTreeNode,wiki) {
  function parseText (line 23) | function parseText(text,wiki,options) {
  function renderWidgetNode (line 28) | function renderWidgetNode(widgetNode) {
  function refreshWidgetNode (line 36) | function refreshWidgetNode(widgetNode,wrapper,changes) {
  function wikiparse (line 948) | function wikiparse(text) {

FILE: editions/tiddlywiki-surveys/scripts/extract-text-tiddlers-via-console.js
  function stringifyList (line 1) | function stringifyList(value) {

FILE: plugins/tiddlywiki/async/files/async.min.v1.5.0.js
  function n (line 1) | function n(){}
  function t (line 1) | function t(n){return n}
  function e (line 1) | function e(n){return!!n}
  function r (line 1) | function r(n){return!n}
  function u (line 1) | function u(n){return function(){if(null===n)throw new Error("Callback wa...
  function i (line 1) | function i(n){return function(){null!==n&&(n.apply(this,arguments),n=nul...
  function o (line 1) | function o(n){return M(n)||"number"==typeof n.length&&n.length>=0&&n.len...
  function c (line 1) | function c(n,t){for(var e=-1,r=n.length;++e<r;)t(n[e],e,n)}
  function a (line 1) | function a(n,t){for(var e=-1,r=n.length,u=Array(r);++e<r;)u[e]=t(n[e],e,...
  function f (line 1) | function f(n){return a(Array(n),function(n,t){return t})}
  function l (line 1) | function l(n,t,e){return c(n,function(n,r,u){e=t(e,n,r,u)}),e}
  function s (line 1) | function s(n,t){c(W(n),function(e){t(n[e],e)})}
  function p (line 1) | function p(n,t){for(var e=0;e<n.length;e++)if(n[e]===t)return e;return-1}
  function h (line 1) | function h(n){var t,e,r=-1;return o(n)?(t=n.length,function(){return r++...
  function m (line 1) | function m(n,t){return t=null==t?n.length-1:+t,function(){for(var e=Math...
  function y (line 1) | function y(n){return function(t,e,r){return n(t,r)}}
  function v (line 1) | function v(t){return function(e,r,o){o=i(o||n),e=e||[];var c=h(e);if(0>=...
  function d (line 1) | function d(n){return function(t,e,r){return n(C.eachOf,t,e,r)}}
  function g (line 1) | function g(n){return function(t,e,r,u){return n(v(e),t,r,u)}}
  function k (line 1) | function k(n){return function(t,e,r){return n(C.eachOfSeries,t,e,r)}}
  function b (line 1) | function b(t,e,r,u){u=i(u||n),e=e||[];var c=o(e)?[]:{};t(e,function(n,t,...
  function w (line 1) | function w(n,t,e,r){var u=[];n(t,function(n,t,r){e(n,function(e){e&&u.pu...
  function O (line 1) | function O(n,t,e,r){w(n,t,function(n,t){e(n,function(n){t(!n)})},r)}
  function S (line 1) | function S(n,t,e){return function(r,u,i,o){function c(){o&&o(e(!1,void 0...
  function E (line 1) | function E(n,t){return t}
  function L (line 1) | function L(t,e,r){r=r||n;var u=o(e)?[]:{};t(e,function(n,t,e){n(m(functi...
  function I (line 1) | function I(n,t,e,r){var u=[];n(t,function(n,t,r){e(n,function(n,t){u=u.c...
  function x (line 1) | function x(t,e,r){function i(t,e,r,u){if(null!=u&&"function"!=typeof u)t...
  function j (line 1) | function j(n){return m(function(t,e){t.apply(null,e.concat([m(function(t...
  function A (line 1) | function A(n){return function(t,e,r){n(f(t),e,r)}}
  function T (line 1) | function T(n){return m(function(t,e){var r=m(function(e){var r=this,u=e....
  function z (line 1) | function z(n){return m(function(t){var e=t.pop();t.push(function(){var n...
  function o (line 1) | function o(n){f--,n?r(n):null===c&&0>=f&&r(null)}
  function o (line 1) | function o(){var n=!0;return null===a?r(null):(e(t[a],a,u(function(t){if...
  function r (line 1) | function r(n,t){var e=n.criteria,r=t.criteria;return r>e?-1:e>r?1:0}
  function u (line 1) | function u(n){d.unshift(n)}
  function o (line 1) | function o(n){var t=p(d,n);t>=0&&d.splice(t,1)}
  function a (line 1) | function a(){h--,c(d.slice(0),function(n){n()})}
  function i (line 1) | function i(){return e>v&&l(g,function(n,t){return n&&y.hasOwnProperty(t)...
  function c (line 1) | function c(){i()&&(v++,o(c),h[h.length-1](d,y))}
  function r (line 1) | function r(n,t){if("number"==typeof t)n.times=parseInt(t,10)||i;else{if(...
  function u (line 1) | function u(n,t){function e(n,e){return function(r){n(function(n,t){r(!n|...
  function r (line 1) | function r(n){return m(function(t,u){if(t)e.apply(null,[t].concat(u));el...
  function t (line 1) | function t(e){function r(){return n.length&&n[e].apply(null,arguments),r...
  function r (line 1) | function r(n,t){return n.priority-t.priority}
  function u (line 1) | function u(n,t,e){for(var r=-1,u=n.length-1;u>r;){var i=r+(u-r+1>>>1);e(...
  function i (line 1) | function i(t,e,i,o){if(null!=o&&"function"!=typeof o)throw new Error("ta...
  function r (line 1) | function r(n){return n?i(n):void o(r)}

FILE: plugins/tiddlywiki/aws/modules/utils.js
  function getFile (line 19) | function getFile(region,bucketName,title,callback) {
  function putFile (line 45) | function putFile(region,bucketName,title,text,type,callback) {

FILE: plugins/tiddlywiki/bibtex/files/bibtexParse.js
  function BibtexParser (line 29) | function BibtexParser() {

FILE: plugins/tiddlywiki/browser-sniff/files/bowser.js
  function detect (line 18) | function detect(ua) {

FILE: plugins/tiddlywiki/browser-storage/rawmarkup.js
  function hookBootTiddlersLoaded (line 24) | function hookBootTiddlersLoaded() {

FILE: plugins/tiddlywiki/browser-storage/util.js
  function BrowserStorageUtil (line 12) | function BrowserStorageUtil(wiki,options) {

FILE: plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/css-hint.js
  function d (line 1) | function d(e){for(var t in e)s&&0!=t.lastIndexOf(s,0)||a.push(t)}

FILE: plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/html-hint.js
  function c (line 1) | function c(l){for(var t in d)d.hasOwnProperty(t)&&(l.attrs[t]=d[t])}

FILE: plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/javascript-hint.js
  function g (line 1) | function g(t,e){for(var r=0,n=t.length;r<n;++r)e(t[r])}
  function r (line 1) | function r(t,e,r,n){var i=t.getCursor(),o=r(t,i);if(!/\b(?:string|commen...
  function n (line 1) | function n(t,e){t=t.getTokenAt(e);return e.ch==t.start+1&&"."==t.string....

FILE: plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/show-hint.js
  function n (line 1) | function n(t,e){var i;this.cm=t,this.options=e,this.widget=null,this.deb...
  function M (line 1) | function M(t){return"string"==typeof t?t:t.text}
  function O (line 1) | function O(t,e){for(;e&&e!=t;){if("LI"===e.nodeName.toUpperCase()&&e.par...
  function i (line 1) | function i(o,t){this.id="cm-complete-"+Math.floor(Math.random(1e6)),this...
  function r (line 1) | function r(t,e,i,n){t.async?t(e,n,i):(t=t(e,i))&&t.then?t.then(n):n(t)}

FILE: plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/xml-hint.js
  function T (line 1) | function T(t,e,r){return r?0<=t.indexOf(e):0==t.lastIndexOf(e,0)}
  function P (line 1) | function P(){return{list:l,from:g?I(i.line,null==a?o.start:a):i,to:g?I(i...

FILE: plugins/tiddlywiki/codemirror-closebrackets/files/addon/edit/closebrackets.js
  function y (line 1) | function y(e,t){return"pairs"==t&&"string"==typeof e?e:("object"==typeof...
  function r (line 1) | function r(e){for(var t=0;t<e.length;t++){var n=e.charAt(t),r="'"+n+"'";...
  function O (line 1) | function O(e){var t=e.state.closeBrackets;return t&&!t.override&&e.getMo...
  function m (line 1) | function m(e,t){for(var n=[],r=e.listSelections(),i=0,a=0;a<r.length;a++...
  function s (line 1) | function s(e,t){e=e.getRange(k(t.line,t.ch-1),k(t.line,t.ch+1));return 2...

FILE: plugins/tiddlywiki/codemirror-closebrackets/files/addon/edit/matchbrackets.js
  function y (line 1) | function y(t){return t&&t.bracketRegex||/[(){}[\]]/}
  function f (line 1) | function f(t,e,n){var r=t.getLineHandle(e.line),i=e.ch-1,c=n&&n.afterCur...
  function o (line 1) | function o(t,e,n,r,i){for(var c=i&&i.maxScanLineLength||1e4,a=i&&i.maxSc...
  function e (line 1) | function e(t,e,n){for(var r=t.state.matchBrackets.maxHighlightLineLength...
  function i (line 1) | function i(t){t.operation(function(){t.state.matchBrackets.currentlyHigh...
  function c (line 1) | function c(t){t.state.matchBrackets&&t.state.matchBrackets.currentlyHigh...

FILE: plugins/tiddlywiki/codemirror-closetag/files/addon/edit/closetag.js
  function r (line 3) | function r(e,t){for(var n=e.listSelections(),o=[],r=t?"/":"</",a=e.getOp...
  function T (line 3) | function T(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,o=e.length;...
  function j (line 3) | function j(e,t,n,o,r){if(y.scanForClosingTag){var a=Math.min(e.lastLine(...

FILE: plugins/tiddlywiki/codemirror-closetag/files/addon/fold/xml-fold.js
  function c (line 3) | function c(e,n){return e.line-n.line||e.ch-n.ch}
  function a (line 3) | function a(e,n,t,i){this.line=n,this.ch=t,this.cm=e,this.text=e.getLine(...
  function s (line 3) | function s(e,n){var t=e.cm.getTokenTypeAt(l(e.line,n));return t&&/\btag\...
  function r (line 3) | function r(e){return!(e.line>=e.max)&&(e.ch=0,e.text=e.cm.getLine(++e.li...
  function h (line 3) | function h(e){return!(e.line<=e.min)&&(e.text=e.cm.getLine(--e.line),e.c...
  function F (line 3) | function F(e){for(;;){var n=e.text.indexOf(">",e.ch);if(-1==n){if(r(e))c...
  function x (line 3) | function x(e){for(;;){var n=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1...
  function g (line 3) | function g(e){for(;;){i.lastIndex=e.ch;var n=i.exec(e.text);if(!n){if(r(...
  function v (line 3) | function v(e,n){for(var t=[];;){var i,r=g(e),u=e.line,f=e.ch-(r?r[0].len...
  function d (line 3) | function d(e,n){for(var t=[];;){var i=function(e){for(;;){var n=e.ch?e.t...

FILE: plugins/tiddlywiki/codemirror-keymap-emacs/files/keymap/emacs.js
  function l (line 1) | function l(e,t){return e.line==t.line&&e.ch==t.ch}
  function i (line 1) | function i(e){o.push(e),50<o.length&&o.shift()}
  function n (line 1) | function n(e){return o[o.length-(e?Math.min(e,1):1)]||""}
  function u (line 1) | function u(e,t,n,r,a){null==a&&(a=e.getRange(t,n)),"grow"==r&&s&&s.cm==e...
  function r (line 1) | function r(e,t,n){return e.findPosH(t,n,"char",!0)}
  function a (line 1) | function a(e,t,n){return e.findPosH(t,n,"word",!0)}
  function d (line 1) | function d(e,t,n){return e.findPosV(t,n,"line",e.doc.sel.goalColumn)}
  function f (line 1) | function f(e,t,n){return e.findPosV(t,n,"page",e.doc.sel.goalColumn)}
  function p (line 1) | function p(e,t,n){for(var r=t.line,a=e.getLine(r),o=/\S/.test(n<0?a.slic...
  function g (line 1) | function g(e,t,n){for(var r=t.line,a=t.ch,o=e.getLine(t.line),i=!1;;){va...
  function C (line 1) | function C(e,t,n){var r;if(e.findMatchingBracket&&(r=e.findMatchingBrack...
  function h (line 1) | function h(e,t){var n=e.state.emacsPrefix;return n?(L(e),"-"==n?-1:Numbe...
  function w (line 1) | function w(t){var r="string"==typeof t?function(e){e.execCommand(t)}:t;r...
  function m (line 1) | function m(e,t,n,r){var a=h(e);a<0&&(r=-r,a=-a);for(var o=0;o<a;++o){var...
  function k (line 1) | function k(t,n){function e(e){e.extendSelection(m(e,e.getCursor(),t,n))}...
  function S (line 1) | function S(e,t,n,r){for(var a,o=e.listSelections(),i=o.length;i--;)u(e,a...
  function A (line 1) | function A(e,t){if(e.somethingSelected()){for(var n,r=e.listSelections()...
  function b (line 1) | function b(e,t){e.state.emacsPrefix?"-"!=t&&(e.state.emacsPrefix+=t):(e....
  function x (line 1) | function x(e,t){e.state.emacsPrefixMap||v.hasOwnProperty(t)||L(e)}
  function L (line 1) | function L(e){e.state.emacsPrefix=null,e.off("keyHandled",x),e.off("inpu...
  function P (line 1) | function P(e,t){var n=h(e);if(1<n&&"+input"==t.origin){for(var r=t.text....
  function R (line 1) | function R(e,t){"string"==typeof t&&(/^\d$/.test(t)||"Ctrl-U"==t)||(e.re...
  function y (line 1) | function y(e){e.setExtending(!1),e.setCursor(e.getCursor())}
  function W (line 1) | function W(e,t,n){var r,a;e.openDialog?e.openDialog((e=t,r=document.crea...
  function U (line 1) | function U(e,t){var n=e.getCursor(),r=e.findPosH(n,1,"word");e.replaceRa...
  function E (line 1) | function E(t){D[t]=function(e){b(e,t)},M["Ctrl-"+t]=function(e){b(e,t)},...

FILE: plugins/tiddlywiki/codemirror-keymap-sublime-text/files/addons/comment/comment.js
  function f (line 1) | function f(e){e=e.search(x);return-1==e?0:e}
  function O (line 1) | function O(e,n){var t=e.getMode();return!1!==t.useInnerComments&&t.inner...

FILE: plugins/tiddlywiki/codemirror-keymap-sublime-text/files/keymap/sublime.js
  function t (line 1) | function t(d,m){d.extendSelectionsBy(function(e){if(d.display.shift||d.d...
  function n (line 1) | function n(l,s){if(l.isReadOnly())return h.Pass;l.operation(function(){f...
  function c (line 1) | function c(e,t){for(var n=t.ch,r=n,o=e.getLine(t.line);n&&h.isWordChar(o...
  function o (line 1) | function o(e,t){for(var n=e.listSelections(),r=[],o=0;o<n.length;o++){va...
  function i (line 1) | function i(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){var ...
  function l (line 1) | function l(e){return e?/\bpunctuation\b/.test(e)?e:void 0:null}
  function s (line 1) | function s(l,s,a){if(l.isReadOnly())return h.Pass;for(var c,e=l.listSele...
  function a (line 1) | function a(s,a){s.operation(function(){for(var e=s.listSelections(),t=[]...
  function u (line 1) | function u(e){var t=e.getCursor("from"),n=e.getCursor("to");if(0==h.cmpP...
  function d (line 1) | function d(e,t){var n,r,o=u(e);o&&(n=o.query,r=e.getSearchCursor(n,t?o.t...

FILE: plugins/tiddlywiki/codemirror-keymap-vim/files/keymap/vim.js
  function t (line 1) | function t(b){var L=b.Pos;function r(e,t){e=e.state.vim;if(!e||e.insertM...

FILE: plugins/tiddlywiki/codemirror-mode-css/files/mode/css/css.js
  function e (line 1) | function e(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;r...
  function v (line 1) | function v(e,t){return a=t,e}
  function x (line 1) | function x(i){return function(e,t){for(var r,o=!1;null!=(r=e.next());){i...
  function z (line 1) | function z(e,t){return e.next(),e.match(/^\s*[\"\')]/,!1)?t.tokenize=nul...
  function j (line 1) | function j(e,t,r){this.type=e,this.indent=t,this.prev=r}
  function P (line 1) | function P(e,t,r,o){return e.context=new j(r,t.indentation()+(!1===o?0:n...
  function K (line 1) | function K(e){return e.context.prev&&(e.context=e.context.prev),e.contex...
  function q (line 1) | function q(e,t,r){return _[r.context.type](e,t,r)}
  function C (line 1) | function C(e,t,r,o){for(var i=o||1;0<i;i--)r.context=r.context.prev;retu...
  function B (line 1) | function B(e){e=e.current().toLowerCase();i=h.hasOwnProperty(e)?"atom":b...
  function y (line 1) | function y(e,t){for(var r,o=!1;null!=(r=e.next());){if(o&&"/"==r){t.toke...

FILE: plugins/tiddlywiki/codemirror-mode-htmlembedded/files/addon/mode/multiplex.js
  function f (line 1) | function f(e,n,t,i){if("string"==typeof n)return r=e.indexOf(n,t),i&&-1<...

FILE: plugins/tiddlywiki/codemirror-mode-htmlmixed/files/mode/htmlmixed/htmlmixed.js
  function d (line 1) | function d(t,e){e=t.match(a[t=e]||(a[t]=new RegExp("\\s+"+t+"\\s*=\\s*('...
  function g (line 1) | function g(t,e){return new RegExp((e?"^":"")+"</\\s*"+t+"\\s*>","i")}
  function o (line 1) | function o(t,e){for(var a in t)for(var n=e[a]||(e[a]=[]),l=t[a],o=l.leng...
  function u (line 1) | function u(t,e){var a,o,r,n=c.token(t,e.htmlState),l=/\btag\b/.test(n);r...

FILE: plugins/tiddlywiki/codemirror-mode-javascript/files/mode/javascript/javascript.js
  function n (line 1) | function n(e){return{type:e,style:"keyword"}}
  function i (line 1) | function i(e,t,r){return H=e,D=r,t}
  function d (line 1) | function d(e,t){var a,r=e.next();if('"'==r||"'"==r)return t.tokenize=(a=...
  function K (line 1) | function K(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=d;b...
  function L (line 1) | function L(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"=...
  function Q (line 1) | function Q(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf...
  function X (line 1) | function X(e,t,r,n,a,i){this.indented=e,this.column=t,this.type=r,this.p...
  function Y (line 1) | function Y(e,t,r,n,a){var i=e.cc;for(c.state=e,c.stream=a,c.marked=null,...
  function s (line 1) | function s(){for(var e=arguments.length-1;0<=e;e--)c.cc.push(arguments[e])}
  function p (line 1) | function p(){return s.apply(null,arguments),!0}
  function Z (line 1) | function Z(e,t){for(var r=t;r;r=r.next)if(r.name==e)return 1}
  function a (line 1) | function a(e){var t=c.state;if(c.marked="def",W){if(t.context)if("var"==...
  function ee (line 1) | function ee(e){return"public"==e||"private"==e||"protected"==e||"abstrac...
  function te (line 1) | function te(e,t,r){this.prev=e,this.vars=t,this.block=r}
  function re (line 1) | function re(e,t){this.name=e,this.next=t}
  function m (line 1) | function m(){c.state.context=new te(c.state.context,c.state.localVars,!1...
  function ae (line 1) | function ae(){c.state.context=new te(c.state.context,c.state.localVars,!...
  function k (line 1) | function k(){c.state.localVars=c.state.context.vars,c.state.context=c.st...
  function v (line 1) | function v(n,a){function e(){var e=c.state,t=e.indented;if("stat"==e.lex...
  function y (line 1) | function y(){var e=c.state;e.lexical.prev&&(")"==e.lexical.type&&(e.inde...
  function w (line 1) | function w(r){return function e(t){return t==r?p():";"==r||"}"==t||")"==...
  function b (line 1) | function b(e,t){return"var"==e?p(v("vardef",t),qe,w(";"),y):"keyword a"=...
  function ie (line 1) | function ie(e){if("("==e)return p(S,w(")"))}
  function x (line 1) | function x(e,t){return ce(e,t,!1)}
  function h (line 1) | function h(e,t){return ce(e,t,!0)}
  function oe (line 1) | function oe(e){return"("!=e?s():p(v(")"),g,w(")"),y)}
  function ce (line 1) | function ce(e,t,r){if(c.state.fatArrowAt==c.stream.start){var n=r?fe:le;...
  function g (line 1) | function g(e){return e.match(/[;\}\)\],]/)?s():s(x)}
  function j (line 1) | function j(e,t){return","==e?p(g):M(e,t,!1)}
  function M (line 1) | function M(e,t,r){var n=0==r?j:M,a=0==r?x:h;return"=>"==e?p(m,r?fe:le,k)...
  function se (line 1) | function se(e,t){return"quasi"!=e?s():"${"!=t.slice(t.length-2)?p(se):p(...
  function ue (line 1) | function ue(e){if("}"==e)return c.marked="string-2",c.state.tokenize=L,p...
  function le (line 1) | function le(e){return Q(c.stream,c.state),s("{"==e?b:x)}
  function fe (line 1) | function fe(e){return Q(c.stream,c.state),s("{"==e?b:h)}
  function de (line 1) | function de(e,t){if("target"==t)return c.marked="keyword",p(j)}
  function pe (line 1) | function pe(e,t){if("target"==t)return c.marked="keyword",p(M)}
  function me (line 1) | function me(e){return":"==e?p(y,b):s(j,w(";"),y)}
  function ke (line 1) | function ke(e){if("variable"==e)return c.marked="property",p()}
  function ve (line 1) | function ve(e,t){return"async"==e?(c.marked="property",p(ve)):"variable"...
  function ye (line 1) | function ye(e){return"variable"!=e?s(A):(c.marked="property",p(q))}
  function A (line 1) | function A(e){return":"==e?p(h):"("==e?s(q):void 0}
  function V (line 1) | function V(n,a,i){function o(e,t){var r;return(i?-1<i.indexOf(e):","==e)...
  function we (line 1) | function we(e,t,r){for(var n=3;n<arguments.length;n++)c.cc.push(argument...
  function be (line 1) | function be(e){return"}"==e?p():s(b,be)}
  function E (line 1) | function E(e,t){if(u)return":"==e?p(z):"?"==t?p(E):void 0}
  function xe (line 1) | function xe(e,t){if(u&&(":"==e||"in"==t))return p(z)}
  function he (line 1) | function he(e){if(u&&":"==e)return c.stream.match(/^\s*\w+\s+is\b/,!1)?p...
  function ge (line 1) | function ge(e,t){if("is"==t)return c.marked="keyword",p()}
  function z (line 1) | function z(e,t){return"keyof"==t||"typeof"==t||"infer"==t||"readonly"==t...
  function je (line 1) | function je(e){if("=>"==e)return p(z)}
  function Me (line 1) | function Me(e){return e.match(/[\}\)\]]/)?p():","==e||";"==e?p(Me):s(Ae,...
  function Ae (line 1) | function Ae(e,t){return"variable"==e||"keyword"==c.style?(c.marked="prop...
  function Ve (line 1) | function Ve(e,t){return"quasi"!=e?s():"${"!=t.slice(t.length-2)?p(Ve):p(...
  function Ee (line 1) | function Ee(e){if("}"==e)return c.marked="string-2",c.state.tokenize=L,p...
  function ze (line 1) | function ze(e,t){return"variable"==e&&c.stream.match(/^\s*[?:]/,!1)||"?"...
  function I (line 1) | function I(e,t){return"<"==t?p(v(">"),V(z,">"),y,I):"|"==t||"."==e||"&"=...
  function Ie (line 1) | function Ie(e,t){if("<"==t)return p(v(">"),V(z,">"),y,I)}
  function Te (line 1) | function Te(){return s(z,$e)}
  function $e (line 1) | function $e(e,t){if("="==t)return p(z)}
  function qe (line 1) | function qe(e,t){return"enum"==t?(c.marked="keyword",p(Ze)):s(T,E,$,_e)}
  function T (line 1) | function T(e,t){return u&&ee(t)?(c.marked="keyword",p(T)):"variable"==e?...
  function Ce (line 1) | function Ce(e,t){return"variable"!=e||c.stream.match(/^\s*:/,!1)?("varia...
  function Se (line 1) | function Se(){return s(T,$)}
  function $ (line 1) | function $(e,t){if("="==t)return p(h)}
  function _e (line 1) | function _e(e){if(","==e)return p(qe)}
  function Oe (line 1) | function Oe(e,t){if("keyword b"==e&&"else"==t)return p(v("form","else"),...
  function Pe (line 1) | function Pe(e,t){return"await"==t?p(Pe):"("==e?p(v(")"),Ne,y):void 0}
  function Ne (line 1) | function Ne(e){return"var"==e?p(qe,Ue):("variable"==e?p:s)(Ue)}
  function Ue (line 1) | function Ue(e,t){return")"==e?p():";"==e?p(Ue):"in"==t||"of"==t?(c.marke...
  function q (line 1) | function q(e,t){return"*"==t?(c.marked="keyword",p(q)):"variable"==e?(a(...
  function C (line 1) | function C(e,t){return"*"==t?(c.marked="keyword",p(C)):"variable"==e?(a(...
  function We (line 1) | function We(e,t){return"keyword"==e||"variable"==e?(c.marked="type",p(We...
  function S (line 1) | function S(e,t){return"@"==t&&p(x,S),"spread"==e?p(S):u&&ee(t)?(c.marked...
  function Be (line 1) | function Be(e,t){return("variable"==e?Fe:He)(e,t)}
  function Fe (line 1) | function Fe(e,t){if("variable"==e)return a(t),p(He)}
  function He (line 1) | function He(e,t){return"<"==t?p(v(">"),V(Te,">"),y,He):"extends"==t||"im...
  function _ (line 1) | function _(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t|...
  function De (line 1) | function De(e,t){if("!"==t)return p(De);if("?"==t)return p(De);if(":"==e...
  function Ge (line 1) | function Ge(e,t){return"*"==t?(c.marked="keyword",p(Xe,w(";"))):"default...
  function Je (line 1) | function Je(e,t){return"as"==t?(c.marked="keyword",p(w("variable"))):"va...
  function Ke (line 1) | function Ke(e){return"string"==e?p():"("==e?s(x):"."==e?s(j):s(Le,Qe,Xe)}
  function Le (line 1) | function Le(e,t){return"{"==e?we(Le,"}"):("variable"==e&&a(t),"*"==t&&(c...
  function Qe (line 1) | function Qe(e){if(","==e)return p(Le,Qe)}
  function Re (line 1) | function Re(e,t){if("as"==t)return c.marked="keyword",p(Le)}
  function Xe (line 1) | function Xe(e,t){if("from"==t)return c.marked="keyword",p(x)}
  function Ye (line 1) | function Ye(e){return"]"==e?p():s(V(h,"]"))}
  function Ze (line 1) | function Ze(){return s(v("form"),T,w("{"),v("}"),V(et,"}"),y,y)}
  function et (line 1) | function et(){return s(T,$)}
  function tt (line 1) | function tt(e,t,r){return t.tokenize==d&&/^(?:operator|sof|keyword [bcd]...

FILE: plugins/tiddlywiki/codemirror-mode-markdown/files/mode/markdown/markdown.js
  function C (line 1) | function C(t,e,i){return(e.f=e.inline=i)(t,e)}
  function S (line 1) | function S(t,e,i){return(e.f=e.block=i)(t,e)}
  function n (line 1) | function n(t){var e;return t.linkTitle=!1,t.linkHref=!1,t.linkText=!1,t....
  function a (line 1) | function a(t,e){var i=t.column()===e.indentation,n=!(n=e.prevLine.stream...
  function v (line 1) | function v(t,e){var i,n=g.token(t,e.htmlState);return u||("xml"==(i=w.in...
  function B (line 1) | function B(t,e){var i,n=e.listStack[e.listStack.length-1]||0,u=e.indenta...
  function L (line 1) | function L(t){var e,i=[];if(t.formatting){i.push(c.formatting),"string"=...
  function e (line 1) | function e(t,e){if(t.match(i,!0))return L(e)}
  function T (line 1) | function T(t,e){var i=e.text(t,e);if(void 0!==i)return i;if(e.list)retur...
  function M (line 1) | function M(t,e){return">"===t.next()?(e.f=e.inline=T,d.highlightFormatti...
  function q (line 1) | function q(t,e){if(t.eatSpace())return null;var n,t=t.next();return"("==...
  function b (line 1) | function b(t,e){return t.match(/^([^\]\\]|\\.)*\]:/,!1)?(e.f=o,t.next(),...
  function o (line 1) | function o(t,e){var i;return t.match("]:",!0)?(e.f=e.inline=l,d.highligh...
  function l (line 1) | function l(t,e){return t.eatSpace()?null:(t.match(/^[^\s]+/,!0),void 0==...

FILE: plugins/tiddlywiki/codemirror-mode-x-tiddlywiki/files/mode/tiddlywiki/tiddlywiki.js
  function p (line 1) | function p(e,t,r){return(t.tokenize=r)(e,t)}
  function $ (line 1) | function $(e,t){var r=e.sol(),n=e.peek();if(t.block=!1,r&&/[<\/\*{}\-]/....
  function v (line 1) | function v(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=$;b...
  function w (line 1) | function w(e,t){for(var r,n=!1;r=e.next();){if("'"==r&&n){t.tokenize=$;b...
  function x (line 1) | function x(e,t){var r=t.block;return r&&e.current()||(!r&&e.match(b)||r&...
  function y (line 1) | function y(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=$;b...
  function z (line 1) | function z(e,t){for(var r,n=!1;r=e.next();){if("_"==r&&n){t.tokenize=$;b...
  function g (line 1) | function g(e,t){for(var r,n=!1;r=e.next();){if("-"==r&&n){t.tokenize=$;b...
  function W (line 1) | function W(e,t){if("<<"==e.current())return"macro";var r=e.next();return...

FILE: plugins/tiddlywiki/codemirror-mode-xml/files/mode/xml/xml.js
  function c (line 1) | function c(e,n){function t(t){return(n.tokenize=t)(e,n)}var r=e.next();r...
  function d (line 1) | function d(t,e){var n,r,o=t.next();return">"==o||"/"==o&&t.eat(">")?(e.t...
  function o (line 1) | function o(n,r){return function(t,e){for(;!t.eol();){if(t.match(r)){e.to...
  function s (line 1) | function s(t){return t&&t.toLowerCase()}
  function f (line 1) | function f(t,e,n){this.prev=t.context,this.tagName=e||"",this.indent=t.i...
  function m (line 1) | function m(t){t.context&&(t.context=t.context.prev)}
  function g (line 1) | function g(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName...
  function p (line 1) | function p(t,e,n){return"openTag"==t?(n.tagStart=e.column(),h):"closeTag...
  function h (line 1) | function h(t,e,n){return"word"==t?(n.tagName=e.current(),a="tag",w):u.al...
  function x (line 1) | function x(t,e,n){var r;return"word"==t?(r=e.current(),n.context&&n.cont...
  function b (line 1) | function b(t,e,n){return"endTag"!=t?(a="error",b):(m(n),p)}
  function k (line 1) | function k(t,e,n){return a="error",b(t,0,n)}
  function w (line 1) | function w(t,e,n){return"word"==t?(a="attribute",T):"endTag"==t||"selfcl...
  function T (line 1) | function T(t,e,n){return"equals"==t?v:(u.allowMissing||(a="error"),w(t,0...
  function v (line 1) | function v(t,e,n){return"string"==t?N:"word"==t&&u.allowUnquoted?(a="str...
  function N (line 1) | function N(t,e,n){return"string"==t?N:w(t,0,n)}

FILE: plugins/tiddlywiki/codemirror-search-replace/files/addon/search/jump-to-line.js
  function l (line 1) | function l(e,o){var r=Number(o);return/^[-+]/.test(o)?e.getCursor().line...

FILE: plugins/tiddlywiki/codemirror-search-replace/files/addon/search/search.js
  function r (line 1) | function r(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this...
  function p (line 1) | function p(e){return e.state.search||(e.state.search=new r)}
  function n (line 1) | function n(e){return"string"==typeof e&&e==e.toLowerCase()}
  function d (line 1) | function d(e,r,o){return e.getSearchCursor(r,o,{caseFold:n(r),multiline:...
  function m (line 1) | function m(e,r,o,t,n){e.openDialog?e.openDialog(r,n,{value:t,selectValue...
  function h (line 1) | function h(e){return e.replace(/\\([nrt\\])/g,function(e,r){return"n"==r...
  function a (line 1) | function a(e){var r=e.match(/^\/(.*)\/([a-z]*)$/);if(r)try{e=new RegExp(...
  function y (line 1) | function y(e,r,o){var t;r.queryText=o,r.query=a(o),e.removeOverlay(r.ove...
  function o (line 1) | function o(n,r,e,o){var t=p(n);if(t.query)return g(n,r);var a,i,s,c,l,u=...
  function g (line 1) | function g(o,t,n){o.operation(function(){var e=p(o),r=d(o,e.query,t?e.po...
  function v (line 1) | function v(r){r.operation(function(){var e=p(r);e.lastQuery=e.query,e.qu...
  function x (line 1) | function x(e,r){var o,t=e?document.createElement(e):document.createDocum...
  function C (line 1) | function C(e){var r=x("label",{className:"CodeMirror-search-label"},e.ph...
  function b (line 1) | function b(r,t,n){r.operation(function(){for(var o,e=d(r,t);e.findNext()...
  function t (line 1) | function t(u,e){var r,o,t;u.getOption("readOnly")||(r=u.getSelection()||...

FILE: plugins/tiddlywiki/codemirror-search-replace/files/addon/search/searchcursor.js
  function m (line 1) | function m(t,e){for(var n,i=null!=(i=(n=t).flags)?i:(n.ignoreCase?"i":""...
  function d (line 1) | function d(t){return/\\s|\\n|\n|\\W|\\D|\[\^/.test(t.source)}
  function a (line 1) | function a(t,e,n){e=m(e,"g");for(var i=n.line,r=n.ch,o=t.lastLine();i<=o...
  function o (line 1) | function o(t,e,n){if(!d(e))return a(t,e,n);e=m(e,"gm");for(var i=1,r=n.l...
  function L (line 1) | function L(t,e,n){for(var i,r=0;r<=t.length;){e.lastIndex=r;var o=e.exec...
  function O (line 1) | function O(t,e,n){e=m(e,"g");for(var i=n.line,r=n.ch,o=t.firstLine();o<=...
  function h (line 1) | function h(t,e,n){if(!d(e))return O(t,e,n);e=m(e,"gm");for(var i=1,r=t.g...
  function y (line 1) | function y(t,e,n,i){if(t.length==e.length)return n;for(var r=0,o=n+Math....
  function l (line 1) | function l(t,e,n,i){if(!e.length)return null;var r=i?p:v,o=r(e).split(/\...
  function c (line 1) | function c(t,e,n,i){if(!e.length)return null;var r=i?p:v,o=r(e).split(/\...
  function i (line 1) | function i(n,i,t,e){var r;this.atOccurrence=!1,this.afterEmptyMatch=!1,t...

FILE: plugins/tiddlywiki/codemirror/engine.js
  function getCmConfig (line 34) | function getCmConfig() {
  function CodeMirrorEngine (line 81) | function CodeMirrorEngine(options) {

FILE: plugins/tiddlywiki/codemirror/files/addon/dialog/dialog.js
  function f (line 1) | function f(e,o,n){var e=e.getWrapperElement(),t=e.appendChild(document.c...
  function p (line 1) | function p(e,o){e.state.currentNotificationClose&&e.state.currentNotific...
  function u (line 1) | function u(e){"string"==typeof e?l.value=e:i||(i=!0,s.rmClass(t.parentNo...
  function a (line 1) | function a(){r||(r=!0,s.rmClass(t.parentNode,"dialog-opened"),t.parentNo...
  function r (line 1) | function r(){i||(i=!0,clearTimeout(n),s.rmClass(t.parentNode,"dialog-ope...

FILE: plugins/tiddlywiki/codemirror/files/addon/selection/activeline.js
  function l (line 1) | function l(e){for(var t=0;t<e.state.activeLines.length;t++)e.removeLineC...
  function o (line 1) | function o(t,e){for(var n=[],i=0;i<e.length;i++){var o=e[i],r=t.getOptio...
  function r (line 1) | function r(e,t){o(e,t.ranges)}

FILE: plugins/tiddlywiki/codemirror/files/codemirror.js
  function J (line 1) | function J(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}
  function te (line 1) | function te(e){for(var t=e.childNodes.length;0<t;--t)e.removeChild(e.fir...
  function y (line 1) | function y(e,t){return te(e).appendChild(t)}
  function M (line 1) | function M(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n...
  function ne (line 1) | function ne(e,t,n,r){e=M(e,t,n,r);return e.setAttribute("role","presenta...
  function re (line 1) | function re(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e....
  function N (line 1) | function N(e){var t,n=e.ownerDocument||e;try{t=e.activeElement}catch(e){...
  function ie (line 1) | function ie(e,t){var n=e.className;J(t).test(n)||(e.className+=(n?" ":""...
  function oe (line 1) | function oe(e,t){for(var n=e.split(" "),r=0;r<n.length;r++)n[r]&&!J(n[r]...
  function ae (line 1) | function ae(e){return e.display.wrapper.ownerDocument}
  function ue (line 1) | function ue(e){return ce(e.display.wrapper)}
  function ce (line 1) | function ce(e){return e.getRootNode?e.getRootNode():e.ownerDocument}
  function he (line 1) | function he(e){return ae(e).defaultView}
  function de (line 1) | function de(e){var t=Array.prototype.slice.call(arguments,1);return func...
  function fe (line 1) | function fe(e,t,n){for(var r in t=t||{},e)!e.hasOwnProperty(r)||!1===n&&...
  function S (line 1) | function S(e,t,n,r,i){null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.len...
  function pe (line 1) | function pe(){this.id=null,this.f=null,this.time=0,this.handler=de(this....
  function L (line 1) | function L(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}
  function we (line 1) | function we(e,t,n){for(var r=0,i=0;;){var o=e.indexOf("\t",r),l=(o=-1==o...
  function Ce (line 1) | function Ce(e){for(;xe.length<=e;)xe.push(z(xe)+" ");return xe[e]}
  function z (line 1) | function z(e){return e[e.length-1]}
  function Se (line 1) | function Se(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}
  function Le (line 1) | function Le(){}
  function ke (line 1) | function ke(e,t){e=Object.create?Object.create(e):(Le.prototype=e,new Le...
  function Me (line 1) | function Me(e){return/\w/.test(e)||"€"<e&&(e.toUpperCase()!=e.toLowerCas...
  function Ne (line 1) | function Ne(e,t){return t?!!(-1<t.source.indexOf("\\w")&&Me(e))||t.test(...
  function Oe (line 1) | function Oe(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return;return 1}
  function De (line 1) | function De(e){return 768<=e.charCodeAt(0)&&Ae.test(e)}
  function We (line 1) | function We(e,t,n){for(;(n<0?0<t:t<e.length)&&De(e.charAt(t));)t+=n;retu...
  function He (line 1) | function He(e,t,n){for(var r=n<t?-1:1;;){if(t==n)return t;var i=(t+n)/2,...
  function Pe (line 1) | function Pe(e,t,n){var r;Fe=null;for(var i=0;i<e.length;++i){var o=e[i];...
  function Ue (line 1) | function Ue(e,t,n){this.level=e,this.from=t,this.to=n}
  function Ve (line 1) | function Ve(e,t){var n=e.order;return n=null==n?e.order=Ge(e.text,t):n}
  function je (line 1) | function je(e,t){return e._handlers&&e._handlers[t]||Ke}
  function T (line 1) | function T(e,t,n){var r;e.removeEventListener?e.removeEventListener(t,n,...
  function O (line 1) | function O(e,t){var n=je(e,t);if(n.length)for(var r=Array.prototype.slic...
  function A (line 1) | function A(e,t,n){return"string"==typeof t&&(t={type:t,preventDefault:fu...
  function Xe (line 1) | function Xe(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(va...
  function Ye (line 1) | function Ye(e,t){return 0<je(e,t).length}
  function $e (line 1) | function $e(e){e.prototype.on=function(e,t){k(this,e,t)},e.prototype.off...
  function D (line 1) | function D(e){e.preventDefault?e.preventDefault():e.returnValue=!1}
  function _e (line 1) | function _e(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}
  function qe (line 1) | function qe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.r...
  function Ze (line 1) | function Ze(e){D(e),_e(e)}
  function Qe (line 1) | function Qe(e){return e.target||e.srcElement}
  function Je (line 1) | function Je(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?...
  function ut (line 1) | function ut(e){if("string"==typeof e&&at.hasOwnProperty(e))e=at[e];else ...
  function ct (line 1) | function ct(e,t){t=ut(t);var n=st[t.name];if(!n)return ct(e,"text/plain"...
  function dt (line 1) | function dt(e,t){fe(t,ht.hasOwnProperty(e)?ht[e]:ht[e]={})}
  function ft (line 1) | function ft(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t)...
  function pt (line 1) | function pt(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t...
  function gt (line 1) | function gt(e,t,n){return!e.startState||e.startState(t,n)}
  function W (line 1) | function W(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is n...
  function mt (line 1) | function mt(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,funct...
  function vt (line 1) | function vt(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)...
  function yt (line 1) | function yt(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height...
  function H (line 1) | function H(e){if(null==e.parent)return null;for(var t=e.parent,n=L(t.lin...
  function bt (line 1) | function bt(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r)...
  function wt (line 1) | function wt(e,t){return t>=e.first&&t<e.first+e.size}
  function xt (line 1) | function xt(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}
  function F (line 1) | function F(e,t,n){if(void 0===n&&(n=null),!(this instanceof F))return ne...
  function P (line 1) | function P(e,t){return e.line-t.line||e.ch-t.ch}
  function Ct (line 1) | function Ct(e,t){return e.sticky==t.sticky&&0==P(e,t)}
  function St (line 1) | function St(e){return F(e.line,e.ch)}
  function Lt (line 1) | function Lt(e,t){return P(e,t)<0?t:e}
  function kt (line 1) | function kt(e,t){return P(e,t)<0?e:t}
  function Tt (line 1) | function Tt(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}
  function E (line 1) | function E(e,t){if(t.line<e.first)return F(e.first,0);var n=e.first+e.si...
  function Mt (line 1) | function Mt(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=E(e,t[r]);return n}
  function i (line 1) | function i(e){return n?e.toLowerCase():e}
  function Nt (line 1) | function Nt(e,t){this.state=e,this.lookAhead=t}
  function At (line 1) | function At(t,n,r,e){for(var a=[t.state.modeGen],i={},u=(It(t,n.text,t.d...
  function Dt (line 1) | function Dt(e,t,n){var r,i,o;return t.styles&&t.styles[0]==e.state.modeG...
  function Wt (line 1) | function Wt(n,r,e){var t=n.doc,i=n.display;if(!t.mode.startState)return ...
  function Ht (line 1) | function Ht(e,t,n,r){var i=e.doc.mode,o=new g(t,e.options.tabSize,n);for...
  function Ft (line 1) | function Ft(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode)ret...
  function Pt (line 1) | function Pt(e,t,n,r){for(var i=0;i<10;i++){r&&(r[0]=pt(e,n).mode);var o=...
  function Rt (line 1) | function Rt(e,t,n,r){var i,o,l=e.doc,s=l.mode,a=W(l,(t=E(l,t)).line),u=W...
  function zt (line 1) | function zt(e,t){if(e)for(;;){var n=e.match(/(?:^|\s+)line-(background-)...
  function It (line 1) | function It(e,t,n,r,i,o,l){var s=n.flattenSpans,a=(null==s&&(s=e.options...
  function Ut (line 1) | function Ut(e,t,n){this.marker=e,this.from=t,this.to=n}
  function Vt (line 1) | function Vt(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker...
  function Kt (line 1) | function Kt(e,t){if(t.full)return null;var n=wt(e,t.from.line)&&W(e,t.fr...
  function jt (line 1) | function jt(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.fr...
  function Xt (line 1) | function Xt(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n]...
  function Yt (line 1) | function Yt(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine...
  function $t (line 1) | function $t(e){return e.inclusiveLeft?-1:0}
  function _t (line 1) | function _t(e){return e.inclusiveRight?1:0}
  function qt (line 1) | function qt(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;va...
  function Zt (line 1) | function Zt(e,t){var n,r=Gt&&e.markedSpans;if(r)for(var i,o=0;o<r.length...
  function Qt (line 1) | function Qt(e){return Zt(e,!0)}
  function Jt (line 1) | function Jt(e){return Zt(e,!1)}
  function en (line 1) | function en(e,t,n,r,i){var e=W(e,t),o=Gt&&e.markedSpans;if(o)for(var l=0...
  function tn (line 1) | function tn(e){for(var t;t=Qt(e);)e=t.find(-1,!0).line;return e}
  function nn (line 1) | function nn(e,t){var e=W(e,t),n=tn(e);return e==n?t:H(n)}
  function rn (line 1) | function rn(e,t){if(t>e.lastLine())return t;var n,r=W(e,t);if(!on(e,r))r...
  function on (line 1) | function on(e,t){var n=Gt&&t.markedSpans;if(n)for(var r,i=0;i<n.length;+...
  function ln (line 1) | function ln(e){for(var t=0,n=(e=tn(e)).parent,r=0;r<n.lines.length;++r){...
  function sn (line 1) | function sn(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=Q...
  function an (line 1) | function an(e){var n=e.display,e=e.doc;n.maxLine=W(e,e.first),n.maxLineL...
  function dn (line 1) | function dn(e,t){if(!e||/^\s*$/.test(e))return null;t=t.addModeClass?hn:...
  function fn (line 1) | function fn(e,t){var n=ne("span",null,null,x?"padding-right: .1px":null)...
  function pn (line 1) | function pn(e){var t=M("span","•","cm-invalidchar");return t.title="\\u"...
  function gn (line 1) | function gn(e,t,n,r,i,o,l){if(t){var s=e.splitSpaces?function(e,t){if(1<...
  function mn (line 1) | function mn(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,...
  function vn (line 1) | function vn(e,t,n){this.line=t,this.rest=function(e){for(var t,n;t=Jt(e)...
  function yn (line 1) | function yn(e,t,n){for(var r=[],i=t;i<n;i=l){var o=new vn(e.doc,W(e.doc,...
  function b (line 1) | function b(e,t){var n=je(e,t);if(n.length)for(var r,i=Array.prototype.sl...
  function xn (line 1) | function xn(){var e=wn;wn=null;for(var t=0;t<e.length;++t)e[t]()}
  function Cn (line 1) | function Cn(e,t,n,r){for(var i=0;i<t.changes.length;i++){var o=t.changes...
  function Sn (line 1) | function Sn(e){return e.node==e.text&&(e.node=M("div",null,null,"positio...
  function Ln (line 1) | function Ln(e,t){var n=e.display.externalMeasured;return n&&n.line==t.li...
  function kn (line 1) | function kn(e,t){e=e,(i=(n=t).bgClass?n.bgClass+" "+(n.line.bgClass||"")...
  function Tn (line 1) | function Tn(e,t,n,r){t.gutter&&(t.node.removeChild(t.gutter),t.gutter=nu...
  function Mn (line 1) | function Mn(e,t,n){if(Nn(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.le...
  function Nn (line 1) | function Nn(e,t,n,r,i){if(t.widgets)for(var o=Sn(n),l=0,s=t.widgets;l<s....
  function On (line 1) | function On(e){if(null!=e.height)return e.height;var t,n=e.doc.cm;return...
  function An (line 1) | function An(e,t){for(var n=Qe(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n...
  function Dn (line 1) | function Dn(e){return e.lineSpace.offsetTop}
  function Wn (line 1) | function Wn(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}
  function Hn (line 1) | function Hn(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=y(e.mea...
  function Fn (line 1) | function Fn(e){return ge-e.display.nativeBarWidth}
  function Pn (line 1) | function Pn(e){return e.display.scroller.clientWidth-Fn(e)-e.display.bar...
  function En (line 1) | function En(e){return e.display.scroller.clientHeight-Fn(e)-e.display.ba...
  function Rn (line 1) | function Rn(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure...
  function zn (line 1) | function zn(e,t,n,r){return Gn(e,Bn(e,t),n,r)}
  function In (line 1) | function In(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.d...
  function Bn (line 1) | function Bn(e,t){var n,r,i=H(t),o=In(e,i),e=(o&&!o.text?o=null:o&&o.chan...
  function Gn (line 1) | function Gn(e,t,n,r,i){var o,l=(n=t.before?-1:n)+(r||"");if(t.cache.hasO...
  function Kn (line 1) | function Kn(e,t,n){for(var r,i,o,l,s,a,u=0;u<e.length;u+=3)if(s=e[u],a=e...
  function jn (line 1) | function jn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,...
  function Xn (line 1) | function Xn(e){e.display.externalMeasure=null,te(e.display.lineMeasure);...
  function Yn (line 1) | function Yn(e){Xn(e),e.display.cachedCharWidth=e.display.cachedTextHeigh...
  function $n (line 1) | function $n(e){return m&&$?-(e.body.getBoundingClientRect().left-parseIn...
  function _n (line 1) | function _n(e){return m&&$?-(e.body.getBoundingClientRect().top-parseInt...
  function qn (line 1) | function qn(e){var t=tn(e).widgets,n=0;if(t)for(var r=0;r<t.length;++r)t...
  function Zn (line 1) | function Zn(e,t,n,r,i){if(i||(i=qn(t),n.top+=i,n.bottom+=i),"line"==r)re...
  function Qn (line 1) | function Qn(e,t,n){if("div"==n)return t;var r=t.left,t=t.top,n=("page"==...
  function Jn (line 1) | function Jn(e,t,n,r,i){return Zn(e,r=r||W(e.doc,t.line),zn(e,r,t.ch,i),n)}
  function er (line 1) | function er(n,e,r,i,o,l){function s(e,t){e=Gn(n,o,e,t?"right":"left",l);...
  function tr (line 1) | function tr(e,t){var n=0,t=(t=E(e.doc,t),e.options.lineWrapping||(n=cr(e...
  function nr (line 1) | function nr(e,t,n,r,i){e=F(e,t,n);return e.xRel=i,r&&(e.outside=r),e}
  function rr (line 1) | function rr(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return nr(...
  function ir (line 1) | function ir(t,e,n,r){r-=qn(e);var e=e.text.length,i=He(function(e){retur...
  function or (line 1) | function or(e,t,n,r){return ir(e,t,n=n||Bn(e,t),Zn(e,t,Gn(e,n,r),"line")...
  function lr (line 1) | function lr(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}
  function sr (line 1) | function sr(n,r,i,o,l,s,a){var e,t=He(function(e){var e=l[e],t=1!=e.leve...
  function ar (line 1) | function ar(e,t,n,r,i,o,l){for(var l=ir(e,t,r,l),s=l.begin,a=l.end,u=(/\...
  function ur (line 1) | function ur(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(...
  function cr (line 1) | function cr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t...
  function hr (line 1) | function hr(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t....
  function dr (line 1) | function dr(e){return e.scroller.getBoundingClientRect().left-e.sizer.ge...
  function fr (line 1) | function fr(r){var i=ur(r.display),o=r.options.lineWrapping,l=o&&Math.ma...
  function pr (line 1) | function pr(e){var t=e.doc,n=fr(e);t.iter(function(e){var t=n(e);t!=e.he...
  function gr (line 1) | function gr(e,t,n,r){var i=e.display;if(!n&&"true"==Qe(t).getAttribute("...
  function mr (line 1) | function mr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.vie...
  function R (line 1) | function R(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.d...
  function vr (line 1) | function vr(e,t,n){e.curOp.viewChanged=!0;var r=e.display,i=e.display.ex...
  function yr (line 1) | function yr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display...
  function br (line 1) | function br(e,t,n,r){var i,o=mr(e,t),l=e.display.view;if(!Gt||n==e.doc.f...
  function wr (line 1) | function wr(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[...
  function xr (line 1) | function xr(e){e.display.input.showSelection(e.display.input.prepareSele...
  function Cr (line 1) | function Cr(e,t){void 0===t&&(t=!0);var n=e.doc,r={},i=r.cursors=documen...
  function Sr (line 1) | function Sr(e,t,n){var r=er(e,t,"div",null,null,!e.options.singleCursorH...
  function Lr (line 1) | function Lr(e,t){return e.top-t.top||e.left-t.left}
  function kr (line 1) | function kr(e){var t,n;e.state.focused&&(t=e.display,clearInterval(t.bli...
  function Tr (line 1) | function Tr(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||N...
  function Mr (line 1) | function Mr(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.stat...
  function Nr (line 1) | function Nr(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.st...
  function Or (line 1) | function Or(e,t){e.state.delayingBlurEvent||(e.state.focused&&(O(e,"blur...
  function Ar (line 1) | function Ar(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=Math.max(0,t....
  function Dr (line 1) | function Dr(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var n=e....
  function Wr (line 1) | function Wr(e,t,n){var r,i=n&&null!=n.top?Math.max(0,n.top):e.scroller.s...
  function Hr (line 1) | function Hr(e,t){var n=e.display,r=ur(e.display),i=(t.top<0&&(t.top=0),(...
  function Fr (line 1) | function Fr(e,t){null!=t&&(Rr(e),e.curOp.scrollTop=(null==e.curOp.scroll...
  function Pr (line 1) | function Pr(e){Rr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:...
  function Er (line 1) | function Er(e,t,n){null==t&&null==n||Rr(e),null!=t&&(e.curOp.scrollLeft=...
  function Rr (line 1) | function Rr(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,zr...
  function zr (line 1) | function zr(e,t,n,r){t=Hr(e,{left:Math.min(t.left,n.left),top:Math.min(t...
  function Ir (line 1) | function Ir(e,t){Math.abs(e.doc.scrollTop-t)<2||(d||ri(e,{top:t}),Br(e,t...
  function Br (line 1) | function Br(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight...
  function Gr (line 1) | function Gr(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWi...
  function Ur (line 1) | function Ur(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.do...
  function Vr (line 1) | function Vr(e,t,n){this.cm=n;var r=this.vert=M("div",[M("div",null,null,...
  function Kr (line 1) | function Kr(){}
  function jr (line 1) | function jr(e,t){t=t||Ur(e);var n=e.display.barWidth,r=e.display.barHeig...
  function Xr (line 1) | function Xr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style....
  function $r (line 1) | function $r(n){n.display.scrollbars&&(n.display.scrollbars.clear(),n.dis...
  function qr (line 1) | function qr(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,for...
  function Zr (line 1) | function Zr(e){e=e.curOp;if(e){var t=function(e){for(var t=0;t<e.ops.len...
  function h (line 1) | function h(e,t){if(e.curOp)return t();qr(e);try{return t()}finally{Zr(e)}}
  function I (line 1) | function I(e,t){return function(){if(e.curOp)return t.apply(e,arguments)...
  function t (line 1) | function t(e){return function(){if(this.curOp)return e.apply(this,argume...
  function n (line 1) | function n(t){return function(){var e=this.cm;if(!e||e.curOp)return t.ap...
  function Qr (line 1) | function Qr(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highl...
  function Jr (line 1) | function Jr(l){var s,a,u,c=l.doc;c.highlightFrontier>=l.display.viewTo||...
  function ti (line 1) | function ti(e,t){var n=e.display,r=e.doc;if(t.editorIsHidden)return yr(e...
  function ni (line 1) | function ni(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWr...
  function ri (line 1) | function ri(e,t){var n,t=new ei(e,t);ti(e,t)&&(Ar(e),ni(e,t),n=Ur(e),xr(...
  function ii (line 1) | function ii(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"p...
  function oi (line 1) | function oi(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.disp...
  function li (line 1) | function li(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.fir...
  function si (line 1) | function si(e){var t,n,r,i;if(e.options.lineNumbers)return t=e.doc,t=xt(...
  function ai (line 1) | function ai(e,t){for(var n=[],r=!1,i=0;i<e.length;i++){var o=e[i],l=null...
  function ui (line 1) | function ui(e){var t=e.gutters,n=e.gutterSpecs;te(t),e.lineGutter=null;f...
  function ci (line 1) | function ci(e){ui(e.display),R(e),li(e)}
  function hi (line 1) | function hi(e,t,n,r){var i=this,o=(this.input=n,i.scrollbarFiller=M("div...
  function pi (line 1) | function pi(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.det...
  function gi (line 1) | function gi(e){e=pi(e);return e.x*=fi,e.y*=fi,e}
  function mi (line 1) | function mi(e,t){m&&102==V&&(null==e.display.chromeScrollHack?e.display....
  function vi (line 1) | function vi(e,t,n){var r=e&&e.options.selectionsMayTouch,e=t[n];t.sort(f...
  function yi (line 1) | function yi(e,t){return new B([new G(e,t||e)],0)}
  function bi (line 1) | function bi(e){return e.text?F(e.from.line+e.text.length-1,z(e.text).len...
  function wi (line 1) | function wi(e,t){if(P(e,t.from)<0)return e;if(P(e,t.to)<=0)return bi(t);...
  function xi (line 1) | function xi(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel...
  function Ci (line 1) | function Ci(e,t,n){return e.line==t.line?F(n.line,e.ch-t.ch+n.ch):F(n.li...
  function Si (line 1) | function Si(e){e.doc.mode=ct(e.options,e.doc.modeOption),Li(e)}
  function Li (line 1) | function Li(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),...
  function ki (line 1) | function ki(e,t){return 0==t.from.ch&&0==t.to.ch&&""==z(t.text)&&(!e.cm|...
  function Ti (line 1) | function Ti(e,o,t,l){function i(e){return t?t[e]:null}function n(e,t,n){...
  function Mi (line 1) | function Mi(e,s,a){!function e(t,n,r){if(t.linked)for(var i=0;i<t.linked...
  function Ni (line 1) | function Ni(e,t){if(t.cm)throw new Error("This document is already in us...
  function Oi (line 1) | function Oi(e){("rtl"==e.doc.direction?ie:ee)(e.display.lineDiv,"CodeMir...
  function Ai (line 1) | function Ai(e){this.done=[],this.undone=[],this.undoDepth=e?e.undoDepth:...
  function Di (line 1) | function Di(e,t){var n={from:St(t.from),to:bi(t),text:mt(e,t.from,t.to)}...
  function Wi (line 1) | function Wi(e){for(;e.length;){if(!z(e).ranges)break;e.pop()}}
  function Hi (line 1) | function Hi(e,t,n,r){var i,o,l=e.history,s=(l.undone.length=0,+new Date)...
  function Fi (line 1) | function Fi(e,t,n,r){var i,o,l,s=e.history,a=r&&r.origin;n==s.lastSelOp|...
  function Pi (line 1) | function Pi(e,t){var n=z(t);n&&n.ranges&&n.equals(e)||t.push(e)}
  function Ei (line 1) | function Ei(t,n,e,r){var i=n["spans_"+t.id],o=0;t.iter(Math.max(t.first,...
  function Ri (line 1) | function Ri(e,t){var n=t["spans_"+e.id];if(!n)return null;for(var r=[],i...
  function zi (line 1) | function zi(e,t){var n=Ri(e,t),r=Kt(e,t);if(!n)return r;if(!r)return n;f...
  function Ii (line 1) | function Ii(e,t,n){for(var r=[],i=0;i<e.length;++i){var o=e[i];if(o.rang...
  function Bi (line 1) | function Bi(e,t,n,r){return r?(r=e.anchor,n&&((e=P(t,r)<0)!=P(n,r)<0?(r=...
  function Gi (line 1) | function Gi(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend))...
  function Ui (line 1) | function Ui(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o...
  function Vi (line 1) | function Vi(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,U(e,vi(e.cm,i,e....
  function Ki (line 1) | function Ki(e,t,n,r){U(e,yi(t,n),r)}
  function ji (line 1) | function ji(e,t,n){var r=e.history.done,i=z(r);i&&i.ranges?Xi(e,r[r.leng...
  function U (line 1) | function U(e,t,n){Xi(e,t,n),Fi(e,e.sel,e.cm?e.cm.curOp.id:NaN,n)}
  function Xi (line 1) | function Xi(e,t,n){(Ye(e,"beforeSelectionChange")||e.cm&&Ye(e.cm,"before...
  function Yi (line 1) | function Yi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput...
  function $i (line 1) | function $i(e){Yi(e,_i(e,e.sel,null,!1))}
  function _i (line 1) | function _i(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var l=t.ranges...
  function qi (line 1) | function qi(e,t,n,r,i){var o=W(e,t.line);if(o.markedSpans)for(var l=0;l<...
  function Zi (line 1) | function Zi(e,t,n,r,i){r=r||1,i=qi(e,t,n,r,i)||!i&&qi(e,t,n,r,!0)||qi(e,...
  function Qi (line 1) | function Qi(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?E(e,F(t.line-1))...
  function Ji (line 1) | function Ji(e){e.setSelection(F(e.firstLine(),0),F(e.lastLine()),ve)}
  function eo (line 1) | function eo(i,e,t){var o={canceled:!1,from:e.from,to:e.to,text:e.text,or...
  function to (line 1) | function to(e,t,n){if(e.cm){if(!e.cm.curOp)return I(e.cm,to)(e,t,n);if(e...
  function no (line 1) | function no(e,n){var t,r;1==n.text.length&&""==n.text[0]&&0==P(n.from,n....
  function ro (line 1) | function ro(i,o,e){var t=i.cm&&i.cm.state.suppressEdits;if(!t||e){for(va...
  function io (line 1) | function io(e,t){if(0!=t&&(e.first+=t,e.sel=new B(Se(e.sel.ranges,functi...
  function oo (line 1) | function oo(e,t,n,r){if(e.cm&&!e.cm.curOp)return I(e.cm,oo)(e,t,n,r);if(...
  function lo (line 1) | function lo(e,t,n,r,i){var o;P(r=r||n,n)<0&&(n=(o=[r,n])[0],r=o[1]),"str...
  function so (line 1) | function so(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}
  function ao (line 1) | function ao(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],l=!0;if(o.ra...
  function uo (line 1) | function uo(e,t){var n=t.from.line,r=t.to.line,t=t.text.length-(r-n)-1;a...
  function co (line 1) | function co(e,t,n,r){var i=t,o=t;return"number"==typeof t?o=W(e,Tt(e,t))...
  function ho (line 1) | function ho(e){this.lines=e,this.parent=null;for(var t=0,n=0;n<e.length;...
  function fo (line 1) | function fo(e){this.children=e;for(var t=0,n=0,r=0;r<e.length;++r){var i...
  function po (line 1) | function po(e,t,n){if(n)for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r...
  function go (line 1) | function go(e,t,n){ln(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&...
  function mo (line 1) | function mo(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++vo}
  function yo (line 1) | function yo(r,i,o,e,t){if(e&&e.shared)return f=r,n=i,l=o,a=t,(s=fe(s=e))...
  function wo (line 1) | function wo(e){return e.findMarks(F(e.first,0),e.clipPos(F(e.lastLine())...
  function xo (line 1) | function xo(o){for(var e=0;e<o.length;e++)!function(e){var t=o[e],n=[t.p...
  function f (line 1) | function f(e,t,n,r,i){if(!(this instanceof f))return new f(e,t,n,r,i);nu...
  function Lo (line 1) | function Lo(e){var r=this;if(ko(r),!A(r,e)&&!An(r.display,e)){D(e),w&&(S...
  function ko (line 1) | function ko(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e....
  function To (line 1) | function To(t){if(document.getElementsByClassName){for(var e=document.ge...
  function No (line 1) | function No(){var e;Mo||(k(window,"resize",function(){null==e&&(e=setTim...
  function Oo (line 1) | function Oo(e){var t=e.display;t.cachedCharWidth=t.cachedTextHeight=t.ca...
  function Po (line 1) | function Po(e){var t,n,r,i,o=e.split(/-(?!$)/);e=o[o.length-1];for(var l...
  function Eo (line 1) | function Eo(e){var t,n,r={};for(t in e)if(e.hasOwnProperty(t)){var i=e[t...
  function Ro (line 1) | function Ro(e,t,n,r){var i=(t=Go(t)).call?t.call(e,r):t[e];if(!1===i)ret...
  function zo (line 1) | function zo(e){e="string"==typeof e?e:Ao[e.keyCode];return"Ctrl"==e||"Al...
  function Io (line 1) | function Io(e,t,n){var r=e;return t.altKey&&"Alt"!=r&&(e="Alt-"+e),(Z?t....
  function Bo (line 1) | function Bo(e,t){if(K&&34==e.keyCode&&e.char)return!1;var n=Ao[e.keyCode...
  function Go (line 1) | function Go(e){return"string"==typeof e?Fo[e]:e}
  function Uo (line 1) | function Uo(t,e){for(var n=t.doc.sel.ranges,r=[],i=0;i<n.length;i++){for...
  function Vo (line 1) | function Vo(e,t,n){t=We(e.text,t+n,n);return t<0||t>e.text.length?null:t}
  function Ko (line 1) | function Ko(e,t,n){e=Vo(e,t.ch,n);return null==e?null:new F(t.line,e,n<0...
  function jo (line 1) | function jo(e,t,n,r,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o,l,s,a,...
  function Xo (line 1) | function Xo(t,n,s,e){var a=Ve(n,t.doc.direction);if(!a)return Ko(n,s,e);...
  function $o (line 1) | function $o(e,t){var n=W(e.doc,t),r=tn(n);return jo(!0,e,r,t=r!=n?H(r):t...
  function _o (line 1) | function _o(e,t){var n=$o(e,t.line),r=W(e.doc,n.line),e=Ve(r,e.doc.direc...
  function qo (line 1) | function qo(e,t,n){if("string"==typeof t&&!(t=Yo[t]))return!1;e.display....
  function Qo (line 1) | function Qo(e,t,n,r){var i=e.state.keySeq;if(i){if(zo(t))return"handled"...
  function Jo (line 1) | function Jo(e,t,n,r){r=function(e,t,n){for(var r=0;r<e.state.keyMaps.len...
  function el (line 1) | function el(t,e){var n=Bo(e,!0);return!!n&&(e.shiftKey&&!t.state.keySeq?...
  function nl (line 1) | function nl(e){var t,n,r,i=this;function o(e){18!=e.keyCode&&e.altKey||(...
  function rl (line 1) | function rl(e){16==e.keyCode&&(this.doc.sel.shift=!1),A(this,e)}
  function il (line 1) | function il(e){var t=this;if(!(e.target&&e.target!=t.display.input.getFi...
  function ol (line 1) | function ol(e,t,n){this.time=e,this.pos=t,this.button=n}
  function al (line 1) | function al(e){var t,n,r,i,o,l,s,a,u,c=this,h=c.display;A(c,e)||h.active...
  function ul (line 1) | function ul(e,t,n){if("char"==n)return new G(t,t);if("word"==n)return e....
  function cl (line 1) | function cl(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.tou...
  function hl (line 1) | function hl(e,t){return cl(e,t,"gutterClick",!0)}
  function dl (line 1) | function dl(e,t){var n,r;An(e.display,t)||(r=t,Ye(n=e,"gutterContextMenu...
  function fl (line 1) | function fl(e){e.display.wrapper.className=e.display.wrapper.className.r...
  function vl (line 1) | function vl(e,t,n){!t!=!(n&&n!=pl)&&(n=e.display.dragFunctions,(t=t?k:T)...
  function yl (line 1) | function yl(e){e.options.lineWrapping?(ie(e.display.wrapper,"CodeMirror-...
  function p (line 1) | function p(e,t){var n=this;if(!(this instanceof p))return new p(e,t);thi...
  function wl (line 1) | function wl(e,t,n,r){var i,o=e.doc,l=("smart"==(n=null==n?"add":n)&&(o.m...
  function Cl (line 1) | function Cl(e){xl=e}
  function Sl (line 1) | function Sl(e,t,n,r,i){var o=e.doc,l=(e.display.shift=!1,r=r||o.sel,+new...
  function Ll (line 1) | function Ll(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");...
  function kl (line 1) | function kl(e,t){if(e.options.electricChars&&e.options.smartIndent)for(v...
  function Tl (line 1) | function Tl(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var ...
  function Ml (line 1) | function Ml(e,t,n,r){e.setAttribute("autocorrect",n?"on":"off"),e.setAtt...
  function Nl (line 1) | function Nl(){var e=M("textarea",null,null,"position: absolute; bottom: ...
  function Ol (line 1) | function Ol(n,r,i,o,l){var e=r,t=i,s=W(n,r.line),a=l&&"rtl"==n.direction...
  function Al (line 1) | function Al(e,t,n,r){var i,o,l,s=e.doc,a=t.left;for("page"==r?(i=Math.mi...
  function r (line 1) | function r(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.l...
  function Dl (line 1) | function Dl(e,t){var n=In(e,t.line);if(!n||n.hidden)return null;var r=W(...
  function Wl (line 1) | function Wl(e,t){return t&&(e.bad=!0),e}
  function Hl (line 1) | function Hl(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineD...
  function a (line 1) | function a(e){for(var t=e.target;t;t=t.parentNode){if(t==s)return 1;if(/...
  function n (line 1) | function n(e){if(a(e)&&!A(l,e)){if(l.somethingSelected())Cl({lineWise:!1...
  function h (line 1) | function h(){a&&(n+=u,c&&(n+=u),a=c=!1)}
  function d (line 1) | function d(e){e&&(h(),n+=e)}
  function i (line 1) | function i(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polli...
  function o (line 1) | function o(e,t,r,n){Fl.defaults[e]=t,r&&(Pl[e]=n?function(e,t,n){n!=pl&&...
  function t (line 1) | function t(e){if(!A(i,e)){if(i.somethingSelected())Cl({lineWise:!1,text:...
  function h (line 1) | function h(){var e,t;null!=a.selectionStart&&(t="​"+((e=l.somethingSelec...
  function d (line 1) | function d(){var e,t;o.contextMenuPending==d&&(o.contextMenuPending=!1,o...
  function n (line 1) | function n(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e}
  function r (line 1) | function r(){t.value=s.getValue()}

FILE: plugins/tiddlywiki/confetti/confetti-manager.js
  function ConfettiManager (line 13) | function ConfettiManager() {

FILE: plugins/tiddlywiki/confetti/files/confetti.js
  function noop (line 13) | function noop() {}
  function promise (line 17) | function promise(func) {
  function decorate (line 75) | function decorate(worker) {
  function convert (line 196) | function convert(val, transform) {
  function isOk (line 200) | function isOk(val) {
  function prop (line 204) | function prop(options, name, transform) {
  function onlyPositiveInt (line 211) | function onlyPositiveInt(number){
  function randomInt (line 215) | function randomInt(min, max) {
  function toDecimal (line 220) | function toDecimal(str) {
  function colorsToRgb (line 224) | function colorsToRgb(colors) {
  function hexToRgb (line 228) | function hexToRgb(str) {
  function getOrigin (line 242) | function getOrigin(options) {
  function setCanvasWindowSize (line 250) | function setCanvasWindowSize(canvas) {
  function setCanvasRectSize (line 255) | function setCanvasRectSize(canvas) {
  function getCanvas (line 261) | function getCanvas(zIndex) {
  function ellipse (line 273) | function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, ...
  function randomPhysics (line 282) | function randomPhysics(opts) {
  function updateFetti (line 311) | function updateFetti(context, fetti) {
  function animate (line 370) | function animate(canvas, fettis, resizer, size, done) {
  function confettiCannon (line 435) | function confettiCannon(canvas, globalOpts) {
  function getDefaultFire (line 602) | function getDefaultFire() {

FILE: plugins/tiddlywiki/dynannotate/modules/element-spotlight.js
  function ElementSpotlight (line 11) | function ElementSpotlight() {
  function animationLoop (line 77) | function animationLoop(selectors) {

FILE: plugins/tiddlywiki/dynannotate/modules/legacy-selection-tracker.js
  function LegacySelectionTracker (line 14) | function LegacySelectionTracker(wiki,options) {

FILE: plugins/tiddlywiki/dynannotate/modules/selection-tracker.js
  function SelectionTracker (line 12) | function SelectionTracker(wiki,options) {

FILE: plugins/tiddlywiki/dynaview/dynaview.js
  function onLoad (line 61) | function onLoad(event) {
  function onScroll (line 68) | function onScroll(event) {
  function onResize (line 75) | function onResize(event) {
  function worker (line 82) | function worker() {
  function setZoomClasses (line 93) | function setZoomClasses() {
  function checkVisibility (line 111) | function checkVisibility() {
  function updateAddressBar (line 153) | function updateAddressBar() {
  function saveScrollPosition (line 166) | function saveScrollPosition() {
  function restoreScrollPosition (line 184) | function restoreScrollPosition() {
  function scrollToTiddler (line 199) | function scrollToTiddler(tiddlerDetails) {
  function shouldPreserveScrollPosition (line 218) | function shouldPreserveScrollPosition() {
  function findTopmostTiddler (line 222) | function findTopmostTiddler() {
  function saveViewportDimensions (line 243) | function saveViewportDimensions() {

FILE: plugins/tiddlywiki/evernote/modules/enex-deserializer.js
  function getTextContent (line 111) | function getTextContent(node,selector) {
  function convertDate (line 115) | function convertDate(isoDate) {
  function fixAttachmentReference (line 119) | function fixAttachmentReference(contentNode, md5Hash, mimeType, name) {
  function fixAttachmentReference (line 136) | function fixAttachmentReference(contentNode, md5Hash, mimeType, name) {

FILE: plugins/tiddlywiki/external-attachments/startup.js
  function makePathRelative (line 61) | function makePathRelative(sourcepath,rootpath,options) {
  function test_makePathRelative (line 104) | function test_makePathRelative() {

FILE: plugins/tiddlywiki/filesystem/filesystemadaptor.js
  function FileSystemAdaptor (line 15) | function FileSystemAdaptor(options) {

FILE: plugins/tiddlywiki/freelinks/aho-corasick.js
  function AhoCorasick (line 18) | function AhoCorasick() {
  function countNodes (line 171) | function countNodes(node) {

FILE: plugins/tiddlywiki/freelinks/text.js
  function computeTiddlerTitleInfo (line 173) | function computeTiddlerTitleInfo(self,ignoreCase) {

FILE: plugins/tiddlywiki/geospatial/files/leaflet.js/leaflet-src.js
  function extend (line 22) | function extend(dest) {
  function F (line 37) | function F() {}
  function bind (line 47) | function bind(fn, obj) {
  function stamp (line 67) | function stamp(obj) {
  function throttle (line 81) | function throttle(fn, time, context) {
  function wrapNum (line 113) | function wrapNum(x, range, includeMax) {
  function falseFn (line 122) | function falseFn() { return false; }
  function formatNum (line 128) | function formatNum(num, precision) {
  function trim (line 136) | function trim(str) {
  function splitWords (line 142) | function splitWords(str) {
  function setOptions (line 148) | function setOptions(obj, options) {
  function getParamString (line 163) | function getParamString(obj, existingUrl, uppercase) {
  function template (line 178) | function template(str, data) {
  function indexOf (line 200) | function indexOf(array, el) {
  function getPrefixed (line 215) | function getPrefixed(name) {
  function timeoutDefer (line 222) | function timeoutDefer(fn) {
  function requestAnimFrame (line 240) | function requestAnimFrame(fn, context, immediate) {
  function cancelAnimFrame (line 250) | function cancelAnimFrame(id) {
  method lastId (line 261) | get lastId () { return lastId; }
  function Class (line 289) | function Class() {}
  function checkDeprecatedMixinEvents (line 400) | function checkDeprecatedMixinEvents(includes) {
  function Point (line 781) | function Point(x, y, round) {
  function toPoint (line 962) | function toPoint(x, y, round) {
  function Bounds (line 1003) | function Bounds(a, b) {
  function toBounds (line 1189) | function toBounds(a, b) {
  function LatLngBounds (line 1226) | function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])
  function toLatLngBounds (line 1439) | function toLatLngBounds(a, b) {
  function LatLng (line 1471) | function LatLng(lat, lng, alt) {
  function toLatLng (line 1555) | function toLatLng(a, b, c) {
  function Transformation (line 1807) | function Transformation(a, b, c, d) {
  function toTransformation (line 1859) | function toTransformation(a, b, c, d) {
  function svgCreate (line 1893) | function svgCreate(name) {
  function pointsToPath (line 1900) | function pointsToPath(rings, closed) {
  function userAgentContains (line 2095) | function userAgentContains(str) {
  function addPointerListener (line 2164) | function addPointerListener(obj, type, handler) {
  function removePointerListener (line 2177) | function removePointerListener(obj, type, handler) {
  function _globalPointerDown (line 2185) | function _globalPointerDown(e) {
  function _globalPointerMove (line 2189) | function _globalPointerMove(e) {
  function _globalPointerUp (line 2195) | function _globalPointerUp(e) {
  function _addPointerDocListener (line 2199) | function _addPointerDocListener() {
  function _handlePointer (line 2212) | function _handlePointer(handler, e) {
  function _onPointerStart (line 2224) | function _onPointerStart(handler, e) {
  function makeDblclick (line 2239) | function makeDblclick(event) {
  function addDoubleTapListener (line 2257) | function addDoubleTapListener(obj, handler) {
  function removeDoubleTapListener (line 2317) | function removeDoubleTapListener(obj, handlers) {
  function get (line 2356) | function get(id) {
  function getStyle (line 2363) | function getStyle(el, style) {
  function create$1 (line 2375) | function create$1(tagName, className, container) {
  function remove (line 2387) | function remove(el) {
  function empty (line 2396) | function empty(el) {
  function toFront (line 2404) | function toFront(el) {
  function toBack (line 2413) | function toBack(el) {
  function hasClass (line 2422) | function hasClass(el, name) {
  function addClass (line 2432) | function addClass(el, name) {
  function removeClass (line 2446) | function removeClass(el, name) {
  function setClass (line 2456) | function setClass(el, name) {
  function getClass (line 2467) | function getClass(el) {
  function setOpacity (line 2479) | function setOpacity(el, value) {
  function _setOpacityIE (line 2487) | function _setOpacityIE(el, value) {
  function testProp (line 2514) | function testProp(props) {
  function setTransform (line 2529) | function setTransform(el, offset, scale) {
  function setPosition (line 2543) | function setPosition(el, point) {
  function getPosition (line 2559) | function getPosition(el) {
  function disableImageDrag (line 2606) | function disableImageDrag() {
  function enableImageDrag (line 2612) | function enableImageDrag() {
  function preventOutline (line 2622) | function preventOutline(element) {
  function restoreOutline (line 2636) | function restoreOutline() {
  function getSizedParentNode (line 2646) | function getSizedParentNode(element) {
  function getScale (line 2657) | function getScale(element) {
  method disableTextSelection (line 2689) | get disableTextSelection () { return disableTextSelection; }
  method enableTextSelection (line 2690) | get enableTextSelection () { return enableTextSelection; }
  function on (line 2715) | function on(obj, types, fn, context) {
  function off (line 2750) | function off(obj, types, fn, context) {
  function batchRemove (line 2778) | function batchRemove(obj, filterFn) {
  function addOne (line 2793) | function addOne(obj, type, fn, context) {
  function removeOne (line 2837) | function removeOne(obj, type, fn, context, id) {
  function stopPropagation (line 2867) | function stopPropagation(e) {
  function disableScrollPropagation (line 2882) | function disableScrollPropagation(el) {
  function disableClickPropagation (line 2890) | function disableClickPropagation(el) {
  function preventDefault (line 2901) | function preventDefault(e) {
  function stop (line 2912) | function stop(e) {
  function getPropagationPath (line 2922) | function getPropagationPath(ev) {
  function getMousePosition (line 2941) | function getMousePosition(e, container) {
  function getWheelDelta (line 2971) | function getWheelDelta(e) {
  function isExternalTarget (line 2984) | function isExternalTarget(el, e) {
  function r (line 3494) | function r(i) {
  function sinh (line 3509) | function sinh(n) { return (Math.exp(n) - Math.exp(-n)) / 2; }
  function cosh (line 3510) | function cosh(n) { return (Math.exp(n) + Math.exp(-n)) / 2; }
  function tanh (line 3511) | function tanh(n) { return sinh(n) / cosh(n); }
  function w (line 3515) | function w(s) { return w0 * (cosh(r0) / cosh(r0 + rho * s)); }
  function u (line 3516) | function u(s) { return w0 * (cosh(r0) * tanh(r0 + rho * s) - sinh(r0)) /...
  function easeOut (line 3518) | function easeOut(t) { return 1 - Math.pow(1 - t, 1.5); }
  function frame (line 3524) | function frame() {
  function createMap (line 4862) | function createMap(id, options) {
  function createCorner (line 5013) | function createCorner(vSide, hSide) {
  function clipPolygon (line 6177) | function clipPolygon(points, bounds, round) {
  function polygonCenter (line 6223) | function polygonCenter(latlngs, crs) {
  function centroid (line 6279) | function centroid(coords) {
  function simplify (line 6316) | function simplify(points, tolerance) {
  function pointToSegmentDistance (line 6334) | function pointToSegmentDistance(p, p1, p2) {
  function closestPointOnSegment (line 6340) | function closestPointOnSegment(p, p1, p2) {
  function _simplifyDP (line 6345) | function _simplifyDP(points, sqTolerance) {
  function _simplifyDPStep (line 6367) | function _simplifyDPStep(points, markers, sqTolerance, first, last) {
  function _reducePoints (line 6390) | function _reducePoints(points, sqTolerance) {
  function clipSegment (line 6412) | function clipSegment(a, b, bounds, useLastCode, round) {
  function _getEdgeIntersection (line 6447) | function _getEdgeIntersection(a, b, code, bounds, round) {
  function _getBitCode (line 6474) | function _getBitCode(p, bounds) {
  function _sqDist (line 6493) | function _sqDist(p1, p2) {
  function _sqClosestPointOnSegment (line 6500) | function _sqClosestPointOnSegment(p, p1, p2, sqDist) {
  function isFlat (line 6529) | function isFlat(latlngs) {
  function _flat (line 6533) | function _flat(latlngs) {
  function polylineCenter (line 6541) | function polylineCenter(latlngs, crs) {
  function icon (line 7465) | function icon(options) {
  function marker (line 8095) | function marker(latlng, options) {
  function circleMarker (line 8345) | function circleMarker(latlng, options) {
  function circle (line 8451) | function circle(latlng, options, legacyOptions) {
  function polyline (line 8748) | function polyline(latlngs, options) {
  function polygon (line 8904) | function polygon(latlngs, options) {
  function geometryToLayer (line 9066) | function geometryToLayer(geojson, options) {
  function _pointToLayer (line 9130) | function _pointToLayer(pointToLayerFn, geojson, latlng, options) {
  function coordsToLatLng (line 9139) | function coordsToLatLng(coords) {
  function coordsToLatLngs (line 9147) | function coordsToLatLngs(coords, levelsDeep, _coordsToLatLng) {
  function latLngToCoords (line 9164) | function latLngToCoords(latlng, precision) {
  function latLngsToCoords (line 9175) | function latLngsToCoords(latlngs, levelsDeep, closed, precision) {
  function getFeature (line 9192) | function getFeature(layer, newGeometry) {
  function asFeature (line 9200) | function asFeature(geojson) {
  function geoJSON (line 9341) | function geoJSON(geojson, options) {
  function videoOverlay (line 9712) | function videoOverlay(video, bounds, options) {
  function svgOverlay (line 9759) | function svgOverlay(el, bounds, options) {
  function divIcon (line 11105) | function divIcon(options) {
  function gridLayer (line 12023) | function gridLayer(options) {
  function tileLayer (line 12306) | function tileLayer(url, options) {
  function tileLayerWMS (line 12438) | function tileLayerWMS(url, options) {
  function canvas (line 13053) | function canvas(options) {
  function svg (line 13393) | function svg(options) {
  function rectangle (line 13490) | function rectangle(latLngBounds, options) {

FILE: plugins/tiddlywiki/geospatial/files/leaflet.js/leaflet.js
  function l (line 5) | function l(t){for(var e,i,n=1,o=arguments.length;n<o;n++)for(e in i=argu...
  function N (line 5) | function N(){}
  function a (line 5) | function a(t,e){var i,n=Array.prototype.slice;return t.bind?t.bind.apply...
  function h (line 5) | function h(t){return"_leaflet_id"in t||(t._leaflet_id=++D),t._leaflet_id}
  function j (line 5) | function j(t,e,i){var n,o,s=function(){n=!1,o&&(r.apply(i,o),o=!1)},r=fu...
  function H (line 5) | function H(t,e,i){var n=e[1],e=e[0],o=n-e;return t===n&&i?t:((t-e)%o+o)%...
  function u (line 5) | function u(){return!1}
  function i (line 5) | function i(t,e){return!1===e?t:(e=Math.pow(10,void 0===e?6:e),Math.round...
  function W (line 5) | function W(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}
  function F (line 5) | function F(t){return W(t).split(/\s+/)}
  function c (line 5) | function c(t,e){for(var i in Object.prototype.hasOwnProperty.call(t,"opt...
  function U (line 5) | function U(t,e,i){var n,o=[];for(n in t)o.push(encodeURIComponent(i?n.to...
  function q (line 5) | function q(t,i){return t.replace(V,function(t,e){e=i[e];if(void 0===e)th...
  function G (line 5) | function G(t,e){for(var i=0;i<t.length;i++)if(t[i]===e)return i;return-1}
  function Y (line 5) | function Y(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}
  function J (line 5) | function J(t){var e=+new Date,i=Math.max(0,16-(e-X));return X=e+i,window...
  function x (line 5) | function x(t,e,i){if(!i||$!==J)return $.call(window,a(t,e));t.call(e)}
  function r (line 5) | function r(t){t&&Q.call(window,t)}
  method lastId (line 5) | get lastId(){return D}
  function et (line 5) | function et(){}
  function e (line 5) | function e(){c(this),this.initialize&&this.initialize.apply(this,argumen...
  function p (line 5) | function p(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e}
  function m (line 5) | function m(t,e,i){return t instanceof p?t:d(t)?new p(t[0],t[1]):null==t?...
  function f (line 5) | function f(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.ext...
  function _ (line 5) | function _(t,e){return!t||t instanceof f?t:new f(t,e)}
  function s (line 5) | function s(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.ext...
  function g (line 5) | function g(t,e){return t instanceof s?t:new s(t,e)}
  function v (line 5) | function v(t,e,i){if(isNaN(t)||isNaN(e))throw new Error("Invalid LatLng ...
  function w (line 5) | function w(t,e,i){return t instanceof v?t:d(t)&&"object"!=typeof t[0]?3=...
  function at (line 5) | function at(t,e,i,n){d(t)?(this._a=t[0],this._b=t[1],this._c=t[2],this._...
  function ht (line 5) | function ht(t,e,i,n){return new at(t,e,i,n)}
  function ct (line 5) | function ct(t){return document.createElementNS("http://www.w3.org/2000/s...
  function dt (line 5) | function dt(t,e){for(var i,n,o,s,r="",a=0,h=t.length;a<h;a++){for(i=0,n=...
  function y (line 5) | function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}
  function Jt (line 5) | function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListene...
  function $t (line 5) | function $t(t){Yt[t.pointerId]=t}
  function Qt (line 5) | function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}
  function te (line 5) | function te(t){delete Yt[t.pointerId]}
  function ee (line 5) | function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){f...
  function ne (line 5) | function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t...
  function _e (line 5) | function _e(t){return"string"==typeof t?document.getElementById(t):t}
  function pe (line 5) | function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];ret...
  function P (line 5) | function P(t,e,i){t=document.createElement(t);return t.className=e||"",i...
  function T (line 5) | function T(t){var e=t.parentNode;e&&e.removeChild(t)}
  function me (line 5) | function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}
  function fe (line 5) | function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}
  function ge (line 5) | function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,...
  function ve (line 5) | function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(...
  function M (line 5) | function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.len...
  function z (line 5) | function z(t,e){void 0!==t.classList?t.classList.remove(e):ye(t,W((" "+x...
  function ye (line 5) | function ye(t,e){void 0===t.className.baseVal?t.className=e:t.className....
  function xe (line 5) | function xe(t){return void 0===(t=t.correspondingElement?t.corresponding...
  function C (line 5) | function C(t,e){if("opacity"in t.style)t.style.opacity=e;else if("filter...
  function we (line 5) | function we(t){for(var e=document.documentElement.style,i=0;i<t.length;i...
  function be (line 5) | function be(t,e,i){e=e||new p(0,0);t.style[ue]=(b.ie3d?"translate("+e.x+...
  function Z (line 5) | function Z(t,e){t._leaflet_pos=e,b.any3d?be(t,e):(t.style.left=e.x+"px",...
  function Pe (line 5) | function Pe(t){return t._leaflet_pos||new p(0,0)}
  function Le (line 5) | function Le(){S(window,"dragstart",O)}
  function Te (line 5) | function Te(){k(window,"dragstart",O)}
  function Me (line 5) | function Me(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(ze(),le=(h...
  function ze (line 5) | function ze(){he&&(he.style.outlineStyle=le,le=he=void 0,k(window,"keydo...
  function Ce (line 5) | function Ce(t){for(;!((t=t.parentNode).offsetWidth&&t.offsetHeight||t===...
  function Ze (line 5) | function Ze(t){var e=t.getBoundingClientRect();return{x:e.width/t.offset...
  method disableTextSelection (line 5) | get disableTextSelection(){return re}
  method enableTextSelection (line 5) | get enableTextSelection(){return ae}
  function S (line 5) | function S(t,e,i,n){if(e&&"object"==typeof e)for(var o in e)ke(t,o,e[o],...
  function k (line 5) | function k(t,e,i,n){if(1===arguments.length)Se(t),delete t[E];else if(e&...
  function Se (line 5) | function Se(t,e){for(var i in t[E]){var n=i.split(/\d/)[0];e&&!e(n)||Oe(...
  function ke (line 5) | function ke(e,t,i,n){var o,s,r=t+h(i)+(n?"_"+h(n):"");e[E]&&e[E][r]||(s=...
  function Oe (line 5) | function Oe(t,e,i,n,o){o=o||e+h(i)+(n?"_"+h(n):"");var s,r,i=t[E]&&t[E][...
  function Ae (line 5) | function Ae(t){return t.stopPropagation?t.stopPropagation():t.originalEv...
  function Be (line 5) | function Be(t){return ke(t,"wheel",Ae),this}
  function Ie (line 5) | function Ie(t){return S(t,"mousedown touchstart dblclick contextmenu",Ae...
  function O (line 5) | function O(t){return t.preventDefault?t.preventDefault():t.returnValue=!...
  function Re (line 5) | function Re(t){return O(t),Ae(t),this}
  function Ne (line 5) | function Ne(t){if(t.composedPath)return t.composedPath();for(var e=[],i=...
  function De (line 5) | function De(t,e){var i,n;return e?(n=(i=Ze(e)).boundingClientRect,new p(...
  function He (line 5) | function He(t){return b.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-...
  function We (line 5) | function We(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;...
  function d (line 5) | function d(t){t=(i*i-h*h+(t?-1:1)*c*c*l*l)/(2*(t?i:h)*c*l),t=Math.sqrt(t...
  function _ (line 5) | function _(t){return(Math.exp(t)-Math.exp(-t))/2}
  function p (line 5) | function p(t){return(Math.exp(t)+Math.exp(-t))/2}
  function f (line 5) | function f(t){return h*(p(m)*(_(t=m+u*t)/p(t))-_(m))/c}
  function Ue (line 5) | function Ue(t){return new B(t)}
  function t (line 5) | function t(t,e){i[t+e]=P("div",n+t+" "+n+e,o)}
  function Je (line 5) | function Je(t,e,i){for(var n,o,s,r,a,h,l,u=[1,4,2,8],c=0,d=t.length;c<d;...
  function $e (line 5) | function $e(t,e){var i,n,o,s,r,a,h;if(!t||0===t.length)throw new Error("...
  function Qe (line 5) | function Qe(t){for(var e=0,i=0,n=0,o=0;o<t.length;o++){var s=w(t[o]);e+=...
  function ei (line 5) | function ei(t,e){if(e&&t.length){var i=t=function(t,e){for(var i=[t[0]],...
  function ii (line 5) | function ii(t,e,i){return Math.sqrt(ri(t,e,i,!0))}
  function ni (line 5) | function ni(t,e,i,n,o){var s,r,a,h=n?ti:si(t,i),l=si(e,i);for(ti=l;;){if...
  function oi (line 5) | function oi(t,e,i,n,o){var s,r,a=e.x-t.x,e=e.y-t.y,h=n.min,n=n.max;retur...
  function si (line 5) | function si(t,e){var i=0;return t.x<e.min.x?i|=1:t.x>e.max.x&&(i|=2),t.y...
  function ri (line 5) | function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0<...
  function I (line 5) | function I(t){return!d(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}
  function ai (line 5) | function ai(t){return console.warn("Deprecated use of _flat, please use ...
  function hi (line 5) | function hi(t,e){var i,n,o,s,r,a;if(!t||0===t.length)throw new Error("la...
  function e (line 5) | function e(t,e,i){return(e=e.exec(t))&&e[i]}
  function bi (line 5) | function bi(t,e){var i,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coo...
  function Pi (line 5) | function Pi(t,e,i,n){return t?t(e,i):new mi(i,n&&n.markersInheritOptions...
  function Li (line 5) | function Li(t){return new v(t[1],t[0],t[2])}
  function Ti (line 5) | function Ti(t,e,i){for(var n,o=[],s=0,r=t.length;s<r;s++)n=e?Ti(t[s],e-1...
  function Mi (line 5) | function Mi(t,e){return void 0!==(t=w(t)).alt?[i(t.lng,e),i(t.lat,e),i(t...
  function zi (line 5) | function zi(t,e,i,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(e?zi(t[s...
  function Ci (line 5) | function Ci(t,e){return t.feature?l({},t.feature,{geometry:e}):Zi(e)}
  function Zi (line 5) | function Zi(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:...
  function Si (line 5) | function Si(t,e){return new wi(t,e)}
  function ji (line 5) | function ji(t,e){return new Di(t,e)}
  function Ui (line 5) | function Ui(t){return b.canvas?new Fi(t):null}
  function Ki (line 5) | function Ki(t){return b.svg||b.vml?new Gi(t):null}

FILE: plugins/tiddlywiki/geospatial/files/turf.js/turf.6.5.0.js
  function o (line 1) | function o(t,e,n){void 0===n&&(n={});var r={type:"Feature"};return(0===n...
  function s (line 1) | function s(t,e,n){switch(t){case"Point":return a(e).geometry;case"LineSt...
  function a (line 1) | function a(t,e,n){if(void 0===n&&(n={}),!t)throw new Error("coordinates ...
  function u (line 1) | function u(t,e,n){return void 0===n&&(n={}),f(t.map((function(t){return ...
  function l (line 1) | function l(t,e,n){void 0===n&&(n={});for(var r=0,i=t;r<i.length;r++){var...
  function c (line 1) | function c(t,e,n){return void 0===n&&(n={}),f(t.map((function(t){return ...
  function h (line 1) | function h(t,e,n){if(void 0===n&&(n={}),t.length<2)throw new Error("coor...
  function p (line 1) | function p(t,e,n){return void 0===n&&(n={}),f(t.map((function(t){return ...
  function f (line 1) | function f(t,e){void 0===e&&(e={});var n={type:"FeatureCollection"};retu...
  function g (line 1) | function g(t,e,n){return void 0===n&&(n={}),o({type:"MultiLineString",co...
  function d (line 1) | function d(t,e,n){return void 0===n&&(n={}),o({type:"MultiPoint",coordin...
  function y (line 1) | function y(t,e,n){return void 0===n&&(n={}),o({type:"MultiPolygon",coord...
  function v (line 1) | function v(t,e,n){return void 0===n&&(n={}),o({type:"GeometryCollection"...
  function _ (line 1) | function _(t,e){if(void 0===e&&(e=0),e&&!(e>=0))throw new Error("precisi...
  function m (line 1) | function m(t,e){void 0===e&&(e="kilometers");var r=n[e];if(!r)throw new ...
  function x (line 1) | function x(t,e){void 0===e&&(e="kilometers");var r=n[e];if(!r)throw new ...
  function E (line 1) | function E(t,e){return w(x(t,e))}
  function b (line 1) | function b(t){var e=t%360;return e<0&&(e+=360),e}
  function w (line 1) | function w(t){return 180*(t%(2*Math.PI))/Math.PI}
  function I (line 1) | function I(t){return t%360*Math.PI/180}
  function N (line 1) | function N(t,e,n){if(void 0===e&&(e="kilometers"),void 0===n&&(n="kilome...
  function S (line 1) | function S(t,e,n){if(void 0===e&&(e="meters"),void 0===n&&(n="kilometers...
  function C (line 1) | function C(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)}
  function P (line 1) | function P(t){return!!t&&t.constructor===Object}
  function M (line 1) | function M(t){if(!t)throw new Error("bbox is required");if(!Array.isArra...
  function L (line 1) | function L(t){if(!t)throw new Error("id is required");if(-1===["string",...
  function R (line 1) | function R(t,e,n){if(null!==t)for(var r,i,o,s,a,u,l,c,h=0,p=0,f=t.type,g...
  function T (line 1) | function T(t,e,n,r){var i=n;return R(t,(function(t,r,o,s,a){i=0===r&&voi...
  function A (line 1) | function A(t,e){var n;switch(t.type){case"FeatureCollection":for(n=0;n<t...
  function D (line 1) | function D(t,e,n){var r=n;return A(t,(function(t,i){r=0===i&&void 0===n?...
  function F (line 1) | function F(t,e){if("Feature"===t.type)e(t,0);else if("FeatureCollection"...
  function k (line 1) | function k(t,e,n){var r=n;return F(t,(function(t,i){r=0===i&&void 0===n?...
  function G (line 1) | function G(t){var e=[];return R(t,(function(t){e.push(t)})),e}
  function q (line 1) | function q(t,e){var n,r,i,o,s,a,u,l,c,h,p=0,f="FeatureCollection"===t.ty...
  function B (line 1) | function B(t,e,n){var r=n;return q(t,(function(t,i,o,s,a){r=0===i&&void ...
  function z (line 1) | function z(t,e){q(t,(function(t,n,r,i,s){var a,u=null===t?null:t.type;sw...
  function j (line 1) | function j(t,e,n){var r=n;return z(t,(function(t,i,o){r=0===i&&0===o&&vo...
  function U (line 1) | function U(t,e){z(t,(function(t,n,r){var i=0;if(t.geometry){var o=t.geom...
  function V (line 1) | function V(t,e,n){var r=n,i=!1;return U(t,(function(t,o,s,a,u){r=!1===i&...
  function X (line 1) | function X(t,e){if(!t)throw new Error("geojson is required");z(t,(functi...
  function Y (line 1) | function Y(t,e,n){var r=n;return X(t,(function(t,i,o,s){r=0===i&&void 0=...
  function H (line 1) | function H(t,e){if(!P(e=e||{}))throw new Error("options is invalid");var...
  function W (line 1) | function W(t,e){if(!P(e=e||{}))throw new Error("options is invalid");var...
  function Z (line 1) | function Z(t){var e=[1/0,1/0,-1/0,-1/0];return R(t,(function(t){e[0]>t[0...
  function K (line 1) | function K(t){if(!t)throw new Error("coord is required");if(!Array.isArr...
  function Q (line 1) | function Q(t){if(Array.isArray(t))return t;if("Feature"===t.type){if(nul...
  function $ (line 1) | function $(t){if(t.length>1&&C(t[0])&&C(t[1]))return!0;if(Array.isArray(...
  function tt (line 1) | function tt(t,e,n){if(!e||!n)throw new Error("type and name required");i...
  function et (line 1) | function et(t,e,n){if(!t)throw new Error("No feature passed");if(!n)thro...
  function nt (line 1) | function nt(t,e,n){if(!t)throw new Error("No featureCollection passed");...
  function rt (line 1) | function rt(t){return"Feature"===t.type?t.geometry:t}
  function it (line 1) | function it(t,e){return"FeatureCollection"===t.type?"FeatureCollection":...
  function lt (line 6) | function lt(t){if(null==t)throw new TypeError("Object.assign cannot be c...
  function ft (line 43) | function ft(t,e,n){n=n||{};for(var r=Object.keys(ht),i=0;i<r.length;i++)...
  function gt (line 43) | function gt(t,e,n){return(t-e)/(n-e)}
  function dt (line 43) | function dt(t){return 0===t.cval||15===t.cval}
  function yt (line 43) | function yt(t){dt(t)||5===t.cval||10===t.cval||(t.cval=15)}
  function vt (line 43) | function vt(t,e){return"top"===e?[t.top,1]:"bottom"===e?[t.bottom,0]:"ri...
  function _t (line 43) | function _t(t,e){if(!P(e=e||{}))throw new Error("options is invalid");va...
  function Et (line 43) | function Et(t,e,n,r,i){bt(t,e,n||0,r||t.length-1,i||It)}
  function bt (line 43) | function bt(t,e,n,r,i){for(;r>n;){if(r-n>600){var o=r-n+1,s=e-n+1,a=Math...
  function wt (line 43) | function wt(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}
  function It (line 43) | function It(t,e){return t<e?-1:t>e?1:0}
  function Ct (line 43) | function Ct(t,e){if(!(this instanceof Ct))return new Ct(t,e);this._maxEn...
  function Pt (line 43) | function Pt(t,e,n){if(!n)return e.indexOf(t);for(var r=0;r<e.length;r++)...
  function Mt (line 43) | function Mt(t,e){Lt(t,0,t.children.length,e,t)}
  function Lt (line 43) | function Lt(t,e,n,r,i){i||(i=Gt(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0...
  function Ot (line 43) | function Ot(t,e){return t.minX=Math.min(t.minX,e.minX),t.minY=Math.min(t...
  function Rt (line 43) | function Rt(t,e){return t.minX-e.minX}
  function Tt (line 43) | function Tt(t,e){return t.minY-e.minY}
  function At (line 43) | function At(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}
  function Dt (line 43) | function Dt(t){return t.maxX-t.minX+(t.maxY-t.minY)}
  function Ft (line 43) | function Ft(t,e){return t.minX<=e.minX&&t.minY<=e.minY&&e.maxX<=t.maxX&&...
  function kt (line 43) | function kt(t,e){return e.minX<=t.maxX&&e.minY<=t.maxY&&e.maxX>=t.minX&&...
  function Gt (line 43) | function Gt(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX...
  function qt (line 43) | function qt(t,e,n,r,i){for(var o,s=[e,n];s.length;)(n=s.pop())-(e=s.pop(...
  function Bt (line 43) | function Bt(t){var e={exports:{}};return t(e,e.exports),e.exports}
  function e (line 43) | function e(t,e){for(var n=new Array(t.length-1),r=1;r<t.length;++r)for(v...
  function n (line 43) | function n(t){if(1===t.length)return t[0];if(2===t.length)return["sum(",...
  function r (line 43) | function r(t){if(2===t.length)return[["sum(prod(",t[0][0],",",t[1][1],")...
  function i (line 43) | function i(t){for(var i=[],o=[],s=function(t){for(var e=new Array(t),n=0...
  function u (line 43) | function u(t){var e=a[t.length];return e||(e=a[t.length]=i(t.length)),e....
  function Qt (line 43) | function Qt(t,e){if(!(this instanceof Qt))return new Qt(t,e);if(this.dat...
  function $t (line 43) | function $t(t,e){return t<e?-1:t>e?1:0}
  function ie (line 43) | function ie(t,e,n){e=Math.max(0,void 0===e?2:e),n=n||0;for(var r,i=funct...
  function oe (line 43) | function oe(t,e,n,r,i,o,s){for(var a=new Zt(null,se),u=t.data;u;){for(va...
  function se (line 43) | function se(t,e){return t.dist-e.dist}
  function ae (line 43) | function ae(t,e,n){if(ue(t,n)||ue(e,n))return 0;var r=ge(t[0],t[1],e[0],...
  function ue (line 43) | function ue(t,e){return t[0]>=e.minX&&t[0]<=e.maxX&&t[1]>=e.minY&&t[1]<=...
  function le (line 43) | function le(t,e,n){for(var r,i,o,s,a=Math.min(t[0],e[0]),u=Math.min(t[1]...
  function ce (line 43) | function ce(t){var e=t.p,n=t.next.p;return t.minX=Math.min(e[0],n[0]),t....
  function he (line 43) | function he(t,e){var n={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,max...
  function pe (line 43) | function pe(t,e){var n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r}
  function fe (line 43) | function fe(t,e,n){var r=e[0],i=e[1],o=n[0]-r,s=n[1]-i;if(0!==o||0!==s){...
  function ge (line 43) | function ge(t,e,n,r,i,o,s,a){var u,l,c,h,p=n-t,f=r-e,g=s-i,d=a-o,y=t-i,v...
  function de (line 43) | function de(t,e){void 0===e&&(e={}),e.concavity=e.concavity||1/0;var n=[...
  function ye (line 43) | function ye(t,e,n){if(void 0===n&&(n={}),!t)throw new Error("point is re...
  function ve (line 43) | function ve(t,e,n){var r=!1;e[0][0]===e[e.length-1][0]&&e[0][1]===e[e.le...
  function _e (line 43) | function _e(t,e){var n=[];return F(t,(function(t){var r=!1;if("Point"===...
  function me (line 43) | function me(t,e,n){void 0===n&&(n={});var r=K(t),i=K(e),o=I(i[1]-r[1]),s...
  function xe (line 43) | function xe(t,e){var n=!1;return f(function(t){if(t.length<3)return[];t....
  function be (line 43) | function be(t,e){return e.x-t.x}
  function we (line 43) | function we(t){var e,n,r,i,o,s=t.length;t:for(;s;)for(n=t[--s],e=t[--s],...
  function Ie (line 43) | function Ie(t){if(!t)throw new Error("geojson is required");switch(t.typ...
  function Ne (line 43) | function Ne(t){var e={type:"Feature"};return Object.keys(t).forEach((fun...
  function Se (line 43) | function Se(t){var e={};return t?(Object.keys(t).forEach((function(n){va...
  function Ce (line 43) | function Ce(t){var e={type:t.type};return t.bbox&&(e.bbox=t.bbox),"Geome...
  function Pe (line 43) | function Pe(t){var e=t;return"object"!=typeof e[0]?e.slice():e.map((func...
  function Me (line 43) | function Me(t,e){if(void 0===e&&(e={}),!P(e=e||{}))throw new Error("opti...
  function Le (line 43) | function Le(t){return t[0].toString()+","+t[1].toString()}
  function Oe (line 43) | function Oe(t){return t}
  function Re (line 43) | function Re(t,e){var n=function(t){if(null==t)return Oe;var e,n,r=t.scal...
  function Te (line 43) | function Te(t,e){var n={},r={},i={},o=[],s=-1;function a(t,e){for(var r ...
  function Ae (line 43) | function Ae(t,e){var n={},r=[],i=[];function o(t){t.forEach((function(e)...
  function Fe (line 43) | function Fe(t,e,n,r,i,o){3===arguments.length&&(r=o=Array,i=null);for(va...
  function ke (line 43) | function ke(t,e){return t[0]===e[0]&&t[1]===e[1]}
  function ze (line 43) | function ze(t){qe[0]=t[0],qe[1]=t[1];var e=Be[0]^Be[1];return 2147483647...
  function je (line 43) | function je(t){var e,n,r,i,o=t.coordinates,s=t.lines,a=t.rings,u=functio...
  function Ue (line 43) | function Ue(t,e,n,r){Ve(t,e,n),Ve(t,e,e+r),Ve(t,e+r,n)}
  function Ve (line 43) | function Ve(t,e,n){for(var r,i=e+(n---e>>1);e<i;++e,--n)r=t[e],t[e]=t[n]...
  function Xe (line 43) | function Xe(t){var e,n,r={};for(e in t)r[e]=null==(n=t[e])?{type:null}:(...
  function Ye (line 43) | function Ye(t){var e={type:"GeometryCollection",geometries:t.features.ma...
  function He (line 43) | function He(t){var e,n=We(t.geometry);for(e in null!=t.id&&(n.id=t.id),n...
  function We (line 43) | function We(t){if(null==t)return{type:null};var e="GeometryCollection"==...
  function Je (line 43) | function Je(t,e){var n=function(t){var e=1/0,n=1/0,r=-1/0,i=-1/0;functio...
  function Ze (line 43) | function Ze(t){var e,n=t[0],r=t[1];return r<n&&(e=n,n=r,r=e),n+31*r}
  function Ke (line 43) | function Ke(t,e){var n,r=t[0],i=t[1],o=e[0],s=e[1];return i<r&&(n=r,r=i,...
  function Qe (line 43) | function Qe(t,e){if(void 0===e&&(e={}),"FeatureCollection"!==it(t))throw...
  function $e (line 43) | function $e(t,e){if(void 0===e&&(e={}),!P(e=e||{}))throw new Error("opti...
  function tn (line 43) | function tn(t,e){void 0===e&&(e={});var n="object"==typeof e?e.mutate:e;...
  function en (line 43) | function en(t){var e=Q(t);if(2===e.length&&!nn(e[0],e[1]))return e;var n...
  function nn (line 43) | function nn(t,e){return t[0]===e[0]&&t[1]===e[1]}
  function rn (line 43) | function rn(t,e,n){var r=n[0],i=n[1],o=t[0],s=t[1],a=e[0],u=e[1],l=a-o,c...
  function on (line 43) | function on(t,e,n){var r=e.x,i=e.y,o=n.x-r,s=n.y-i;if(0!==o||0!==s){var ...
  function sn (line 43) | function sn(t,e,n,r,i){for(var o,s=r,a=e+1;a<n;a++){var u=on(t[a],t[e],t...
  function an (line 43) | function an(t,e){var n=t.length-1,r=[t[0]];return sn(t,0,n,e,r),r.push(t...
  function un (line 43) | function un(t,e,n){if(t.length<=2)return t;var r=void 0!==e?e*e:1;return...
  function ln (line 43) | function ln(t,e,n){return un(t.map((function(t){return{x:t[0],y:t[1],z:t...
  function cn (line 43) | function cn(t,e,n){return t.map((function(t){var r=t.map((function(t){re...
  function hn (line 43) | function hn(t){return!(t.length<3)&&!(3===t.length&&t[2][0]===t[0][0]&&t...
  function t (line 43) | function t(t){this.points=t.points||[],this.duration=t.duration||1e4,thi...
  function fn (line 43) | function fn(t,e){void 0===e&&(e={});for(var n=e.resolution||1e4,r=e.shar...
  function gn (line 43) | function gn(t,e){void 0===e&&(e={});var n=Number(t[0]),r=Number(t[1]),i=...
  function dn (line 43) | function dn(t){return gn(Z(t))}
  function yn (line 43) | function yn(t){var e=t[0],n=t[1],r=t[2],i=t[3];if(me(t.slice(0,2),[r,n])...
  function vn (line 43) | function vn(t,e,n,r){void 0===r&&(r={});var i=K(t),o=I(i[0]),s=I(i[1]),u...
  function _n (line 43) | function _n(t,e,n){void 0===n&&(n={});for(var r=n.steps||64,i=n.properti...
  function mn (line 43) | function mn(t,e,n){if(void 0===n&&(n={}),!0===n.final)return function(t,...
  function xn (line 43) | function xn(t,e){void 0===e&&(e={});var n=Z(t);return a([(n[0]+n[2])/2,(...
  function En (line 43) | function En(t,e){void 0===e&&(e={});var n=0,r=0,i=0;return R(t,(function...
  function bn (line 43) | function bn(t){var e=[];return"FeatureCollection"===t.type?F(t,(function...
  function Nn (line 43) | function Nn(t,e,n){n=n||2;var r,i,o,s,a,u,l,c=e&&e.length,h=c?e[0]*n:t.l...
  function Sn (line 43) | function Sn(t,e,n,r,i){var o,s;if(i===Hn(t,e,n,r)>0)for(o=e;o<n;o+=r)s=V...
  function Cn (line 43) | function Cn(t,e){if(!t)return t;e||(e=t);var n,r=t;do{if(n=!1,r.steiner|...
  function Pn (line 43) | function Pn(t,e,n,r,i,o,s){if(t){!s&&o&&function(t,e,n,r){var i=t;do{nul...
  function Mn (line 43) | function Mn(t){var e=t.prev,n=t,r=t.next;if(qn(e,n,r)>=0)return!1;for(va...
  function Ln (line 43) | function Ln(t,e,n,r){var i=t.prev,o=t,s=t.next;if(qn(i,o,s)>=0)return!1;...
  function On (line 43) | function On(t,e,n){var r=t;do{var i=r.prev,o=r.next.next;!Bn(i,o)&&zn(i,...
  function Rn (line 43) | function Rn(t,e,n,r,i,o){var s=t;do{for(var a=s.next.next;a!==s.prev;){i...
  function Tn (line 43) | function Tn(t,e){return t.x-e.x}
  function An (line 43) | function An(t,e){if(e=function(t,e){var n,r=e,i=t.x,o=t.y,s=-1/0;do{if(o...
  function Dn (line 43) | function Dn(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&(...
  function Fn (line 43) | function Fn(t){var e=t,n=t;do{e.x<n.x&&(n=e),e=e.next}while(e!==t);retur...
  function kn (line 43) | function kn(t,e,n,r,i,o,s,a){return(i-s)*(e-a)-(t-s)*(o-a)>=0&&(t-s)*(r-...
  function Gn (line 43) | function Gn(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){v...
  function qn (line 43) | function qn(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}
  function Bn (line 43) | function Bn(t,e){return t.x===e.x&&t.y===e.y}
  function zn (line 43) | function zn(t,e,n,r){return!!(Bn(t,e)&&Bn(n,r)||Bn(t,r)&&Bn(n,e))||qn(t,...
  function jn (line 43) | function jn(t,e){return qn(t.prev,t,t.next)<0?qn(t,e,t.next)>=0&&qn(t,t....
  function Un (line 43) | function Un(t,e){var n=new Yn(t.i,t.x,t.y),r=new Yn(e.i,e.x,e.y),i=t.nex...
  function Vn (line 43) | function Vn(t,e,n,r){var i=new Yn(t,e,n);return r?(i.next=r.next,i.prev=...
  function Xn (line 43) | function Xn(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.n...
  function Yn (line 43) | function Yn(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=n...
  function Hn (line 43) | function Hn(t,e,n,r){for(var i=0,o=e,s=n-r;o<n;o+=r)i+=(t[s]-t[o])*(t[o+...
  function Wn (line 43) | function Wn(t){var e=function(t){for(var e=t[0][0].length,n={vertices:[]...
  function Jn (line 43) | function Jn(t,e){if(!t)throw new Error("targetPoint is required");if(!e)...
  function Zn (line 43) | function Zn(t){if(!t)throw new Error("geojson is required");var e=[];ret...
  function n (line 43) | function n(t,e,n){void 0===n&&(n={});var r={type:"Feature"};return(0===n...
  function r (line 43) | function r(t,e,r){if(void 0===r&&(r={}),!t)throw new Error("coordinates ...
  function i (line 43) | function i(t,e,r){void 0===r&&(r={});for(var i=0,o=t;i<o.length;i++){var...
  function o (line 43) | function o(t,e,r){if(void 0===r&&(r={}),t.length<2)throw new Error("coor...
  function s (line 43) | function s(t,e){void 0===e&&(e={});var n={type:"FeatureCollection"};retu...
  function a (line 43) | function a(t,e,r){return void 0===r&&(r={}),n({type:"MultiLineString",co...
  function u (line 43) | function u(t,e,r){return void 0===r&&(r={}),n({type:"MultiPoint",coordin...
  function l (line 43) | function l(t,e,r){return void 0===r&&(r={}),n({type:"MultiPolygon",coord...
  function c (line 43) | function c(t,n){void 0===n&&(n="kilometers");var r=e.factors[n];if(!r)th...
  function h (line 43) | function h(t,n){void 0===n&&(n="kilometers");var r=e.factors[n];if(!r)th...
  function p (line 43) | function p(t){return 180*(t%(2*Math.PI))/Math.PI}
  function f (line 43) | function f(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)}
  function Qn (line 43) | function Qn(t,e,n){if(null!==t)for(var r,i,o,s,a,u,l,c,h=0,p=0,f=t.type,...
  function $n (line 43) | function $n(t,e){var n;switch(t.type){case"FeatureCollection":for(n=0;n<...
  function tr (line 43) | function tr(t,e){if("Feature"===t.type)e(t,0);else if("FeatureCollection...
  function er (line 43) | function er(t,e){var n,r,i,o,s,a,u,l,c,h,p=0,f="FeatureCollection"===t.t...
  function nr (line 43) | function nr(t,e){er(t,(function(t,n,r,i,o){var s,a=null===t?null:t.type;...
  function rr (line 43) | function rr(t,e){nr(t,(function(t,n,r){var i=0;if(t.geometry){var o=t.ge...
  function ir (line 43) | function ir(t,e){if(!t)throw new Error("geojson is required");nr(t,(func...
  function wr (line 43) | function wr(t){var e=[1/0,1/0,-1/0,-1/0];return br.coordEach(t,(function...
  function Pr (line 43) | function Pr(t){var e=Nt(t);return e.insert=function(t){if("Feature"!==t....
  function Or (line 43) | function Or(t,e){var n={},r=[];if("LineString"===t.type&&(t=o(t)),"LineS...
  function Rr (line 43) | function Rr(t,e){var n=Q(t),r=Q(e);if(2!==n.length)throw new Error("<int...
  function Tr (line 43) | function Tr(t,e,n){void 0===n&&(n={});var r=a([1/0,1/0],{dist:1/0}),i=0;...
  function Ar (line 43) | function Ar(t,n,r){void 0===r&&(r={});var i=K(t),o=K(n);return o[0]+=o[0...
  function Dr (line 43) | function Dr(t,e,n){if(void 0===n&&(n={}),n.method||(n.method="geodesic")...
  function Fr (line 43) | function Fr(t,e){return t[0]*e[0]+t[1]*e[1]}
  function kr (line 43) | function kr(t,e,n){return"planar"===n.method?Ar(t,e,n):me(t,e,n)}
  function Gr (line 43) | function Gr(t,e,n,r,i,o,s,a){var u,l,c,h,p={x:null,y:null,onLine1:!1,onL...
  function qr (line 43) | function qr(t){for(var e=function(t){if("FeatureCollection"!==t.type)ret...
  function Br (line 43) | function Br(t,e,n,r,i,o){return Math.sqrt((i-n)*(i-n)+(o-r)*(o-r))===Mat...
  function jr (line 43) | function jr(t){return B(t,(function(t,e){return t+function(t){var e,n=0;...
  function Ur (line 43) | function Ur(t){var e=0;if(t&&t.length>0){e+=Math.abs(Vr(t[0]));for(var n...
  function Vr (line 43) | function Vr(t){var e,n,r,i,o,s,a=0,u=t.length;if(u>2){for(s=0;s<u;s++)s=...
  function Xr (line 43) | function Xr(t){return t*Math.PI/180}
  function Yr (line 43) | function Yr(t,e){return void 0===e&&(e={}),V(t,(function(t,n){var r=n.ge...
  function Hr (line 43) | function Hr(t,e,n,r){if(!P(r=r||{}))throw new Error("options is invalid"...
  function Wr (line 43) | function Wr(t,e,n){void 0===n&&(n={});for(var r=K(t),i=Q(e),o=0;o<i.leng...
  function Jr (line 43) | function Jr(t,e,n,r,i){var o=n[0],s=n[1],a=t[0],u=t[1],l=e[0],c=e[1],h=l...
  function Zr (line 43) | function Zr(t,e){var n=rt(t),r=rt(e),i=n.type,o=r.type;switch(i){case"Po...
  function Kr (line 43) | function Kr(t,e){return!(t[0]>e[0])&&(!(t[2]<e[2])&&(!(t[1]>e[1])&&!(t[3...
  function Qr (line 43) | function Qr(t,e){return t[0]===e[0]&&t[1]===e[1]}
  function $r (line 43) | function $r(t,e){return[(t[0]+e[0])/2,(t[1]+e[1])/2]}
  function ti (line 43) | function ti(t,e,n){void 0===n&&(n={}),n.mask&&!n.units&&(n.units="kilome...
  function ei (line 43) | function ei(t,e){void 0===e&&(e={});var n=e.precision,r=e.coordinates,i=...
  function ni (line 43) | function ni(t){if(!t)throw new Error("geojson is required");var e=[];ret...
  function ri (line 43) | function ri(t,e,n){if("Polygon"!==t.geometry.type)throw new Error("The i...
  function ii (line 43) | function ii(t,e){if(!t||!e)return!1;if(t.length!==e.length)return!1;for(...
  function oi (line 43) | function oi(t){if("Feature"!=t.type)throw new Error("The input must a ge...
  function ui (line 43) | function ui(t,e){if(void 0===e&&(e=!0),3!=t.length)throw new Error("This...
  function li (line 43) | function li(t){for(var e=0,n=0;n<t.length-1;n++)t[n][0]<t[e][0]&&(e=n);i...
  function ci (line 43) | function ci(t,e){if(!t||!e)return!1;if(t.length!=e.length)return!1;for(v...
  function hi (line 43) | function hi(t,e){return(t%e+e)%e}
  function _i (line 43) | function _i(t,e){var n=[],r=Mr();return z(e,(function(e){if(n.forEach((f...
  function mi (line 43) | function mi(t,e){var n=[],r=Q(t)[0],i=Q(t)[t.geometry.coordinates.length...
  function xi (line 43) | function xi(t,e){if(!e.features.length)throw new Error("lines must conta...
  function Ei (line 43) | function Ei(t,e){return t[0]===e[0]&&t[1]===e[1]}
  function bi (line 43) | function bi(t,e,n,r,i){void 0===i&&(i={});var o=i.steps||64,s=wi(n),a=wi...
  function wi (line 43) | function wi(t){var e=t%360;return e<0&&(e+=360),e}
  function Ii (line 43) | function Ii(t,e){void 0===e&&(e={});var n=rt(t);switch(e.properties||"Fe...
  function Ni (line 43) | function Ni(t,e){return void 0===e&&(e={}),Si(rt(t).coordinates,e.proper...
  function Si (line 43) | function Si(t,e){return t.length>1?g(t,e):h(t[0],e)}
  function Ci (line 43) | function Ci(t,e){var n,r,i;void 0===e&&(e={});var o=e.properties,s=null=...
  function Pi (line 43) | function Pi(t,e,n,r){e=e||("Feature"===t.type?t.properties:{});var i=rt(...
  function Mi (line 43) | function Mi(t){var e=t[0],n=e[0],r=e[1],i=t[t.length-1],o=i[0],s=i[1];re...
  function Li (line 43) | function Li(t,e){var n,r,i,o,s,a,u;for(r=1;r<=8;r*=2){for(n=[],o=!(Ri(i=...
  function Oi (line 43) | function Oi(t,e,n,r){return 8&n?[t[0]+(e[0]-t[0])*(r[3]-t[1])/(e[1]-t[1]...
  function Ri (line 43) | function Ri(t,e){var n=0;return t[0]<e[0]?n|=1:t[0]>e[2]&&(n|=2),t[1]<e[...
  function Ti (line 43) | function Ti(t,e){for(var n=[],r=0,i=t;r<i.length;r++){var o=Li(i[r],e);o...
  function n (line 43) | function n(t){var e=[];for(var n in t)e.push(n);return e}
  function r (line 43) | function r(t){return"[object Arguments]"==Object.prototype.toString.call...
  function i (line 43) | function i(t){return t&&"object"==typeof t&&"number"==typeof t.length&&O...
  function r (line 43) | function r(t){return null==t}
  function i (line 43) | function i(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)...
  function ki (line 43) | function ki(t,e,n){if(void 0===n&&(n={}),!P(n=n||{}))throw new Error("op...
  function Gi (line 43) | function Gi(t,e){var n=Q(e),r=Q(t),i=r[0],o=r[r.length-1],s=t.geometry.c...
  function qi (line 43) | function qi(t){var e=t%360;return e<0&&(e+=360),e}
  function Bi (line 43) | function Bi(t,e,n){var r;return void 0===n&&(n={}),(r=n.final?zi(K(e),K(...
  function zi (line 43) | function zi(t,e){var n=I(t[1]),r=I(e[1]),i=I(e[0]-t[0]);i>Math.PI&&(i-=2...
  function ji (line 43) | function ji(t,n,r,i){void 0===i&&(i={});var o=n<0,s=N(Math.abs(n),i.unit...
  function Ui (line 43) | function Ui(t,e,n,r,i,o){for(var s=0;s<t.length;s++){var a=t[s],u=t[s+1]...
  function Vi (line 43) | function Vi(t,e,n){return Xi(t,e,n)>0}
  function Xi (line 43) | function Xi(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(n[0]-t[0])*(e[1]-t[1])}
  function Yi (line 43) | function Yi(t){for(var e,n,r=Q(t),i=0,o=1;o<r.length;)e=n||r[0],i+=((n=r...
  function Hi (line 43) | function Hi(t,e){switch("Feature"===t.type?t.geometry.type:t.type){case"...
  function Wi (line 43) | function Wi(t,e){Yi(t)===e&&t.reverse()}
  function Ji (line 43) | function Ji(t,e){Yi(t[0])!==e&&t[0].reverse();for(var n=1;n<t.length;n++...
  function Zi (line 43) | function Zi(t,e){if(!P(e=e||{}))throw new Error("options is invalid");va...
  function $i (line 80) | function $i(t,e,n,r){r=r||{};for(var i=Object.keys(Ki),o=0;o<i.length;o+...
  function Vo (line 80) | function Vo(t,e,n){return(t-e)/(n-e)}
  function Xo (line 80) | function Xo(t){return t.constructor.toString().indexOf("Array")>-1}
  function Yo (line 80) | function Yo(t,e,n,r,i,o){for(var s=t.cells[n][e],a=s.cval_real,u=e+r,l=n...
  function Ho (line 80) | function Ho(t){if(t.edges.length>0){var e=t.edges[t.edges.length-1],n=t....
  function Wo (line 80) | function Wo(t,e,n,r){var i,o,s,a,u,l=t.cval;switch(e){case-1:switch(r){c...
  function Jo (line 80) | function Jo(t){var e=[],n=[];t.forEach((function(t){var r=jr(l([t]));n.p...
  function Zo (line 80) | function Zo(t){for(var e=t.map((function(t){return{lrCoordinates:t,group...
  function Ko (line 80) | function Ko(t,e){for(var n=bn(t),r=0;r<n.features.length;r++)if(!ye(n.fe...
  function Qo (line 80) | function Qo(t){for(var e=0;e<t.length;e++)if(!1===t[e].grouped)return!1;...
  function $o (line 80) | function $o(t,e,n){if(!P(n=n||{}))throw new Error("options is invalid");...
  function ts (line 80) | function ts(t,e,n){if(!P(n=n||{}))throw new Error("options is invalid");...
  function es (line 80) | function es(t,e,n){var r="Point"===it(t);return n=function(t,e){null==e&...
  function ns (line 80) | function ns(t){var e=t[0],n=t[1];return[n[0]-e[0],n[1]-e[1]]}
  function rs (line 80) | function rs(t,e){return t[0]*e[1]-e[0]*t[1]}
  function is (line 80) | function is(t,e){return!function(t,e){return 0===rs(ns(t),ns(e))}(t,e)&&...
  function os (line 80) | function os(t,e,n){var r=[],i=E(e,n),o=Q(t),s=[];return o.forEach((funct...
  function ss (line 80) | function ss(t,e,n){var r=e[0]-t[0],i=e[1]-t[1],o=n[0]-e[0];return functi...
  function as (line 80) | function as(t,e){return e.geometry.coordinates[0].every((function(e){ret...
  function t (line 80) | function t(e){this.id=t.buildId(e),this.coordinates=e,this.innerEdges=[]...
  function t (line 80) | function t(t,e){this.from=t,this.to=e,this.next=void 0,this.label=void 0...
  function t (line 80) | function t(){this.edges=[],this.polygon=void 0,this.envelope=void 0}
  function t (line 80) | function t(){this.edges=[],this.nodes={}}
  function ps (line 80) | function ps(t,e){var n=!0;return z(t,(function(t){z(e,(function(e){if(!1...
  function fs (line 80) | function fs(t,e){for(var n=0;n<t.coordinates.length-1;n++)if(ds(t.coordi...
  function gs (line 80) | function gs(t,e){for(var n=0,r=e.coordinates;n<r.length;n++){if(ye(r[n],...
  function ds (line 80) | function ds(t,e,n){var r=n[0]-t[0],i=n[1]-t[1],o=e[0]-t[0],s=e[1]-t[1];r...
  function ys (line 80) | function ys(t,e){return!(t[0]>e[0])&&(!(t[2]<e[2])&&(!(t[1]>e[1])&&!(t[3...
  function vs (line 80) | function vs(t,e){return t[0]===e[0]&&t[1]===e[1]}
  function _s (line 80) | function _s(t,e){return[(t[0]+e[0])/2,(t[1]+e[1])/2]}
  function ms (line 80) | function ms(t,e){for(var n=!1,r=!1,i=t.coordinates.length,o=0;o<i&&!n&&!...
  function xs (line 80) | function xs(t,e){return Or(t,Ni(e)).features.length>0}
  function Es (line 80) | function Es(t,e){for(var n=!1,r=!1,i=t.coordinates.length,o=0;o<i&&(!n||...
  function bs (line 80) | function bs(t,e,n,r){var i=n[0]-t[0],o=n[1]-t[1],s=e[0]-t[0],a=e[1]-t[1]...
  function Is (line 80) | function Is(t){return t.coordinates.map((function(e){return{type:t.type....
  function Ns (line 80) | function Ns(t,e){return t.hasOwnProperty("coordinates")?t.coordinates.le...
  function Ss (line 80) | function Ss(t,e){return Fi(t,e,{strict:!0})}
  function Ps (line 80) | function Ps(t,e){var n=!1;return z(t,(function(t){z(e,(function(e){if(!0...
  function e (line 80) | function e(t,e,n,r){this.dataset=[],this.epsilon=1,this.minPts=2,this.di...
  function e (line 80) | function e(t,e,n){this.k=3,this.dataset=[],this.assignments=[],this.cent...
  function e (line 80) | function e(t,e,n){this._queue=[],this._priorities=[],this._sorting="desc...
  function n (line 80) | function n(t,e,n,r){this.epsilon=1,this.minPts=1,this.distance=this._euc...
  function Bs (line 80) | function Bs(t,e,n){n=n||[];for(var r=0;r<t;r++)n[r]=e;return n}
  function js (line 80) | function js(t,e){return b(Bi(t[0],t[1]))===b(Bi(e[0],e[1]))}
  function Us (line 80) | function Us(t,e){if(t.geometry&&t.geometry.type)return t.geometry.type;i...
  function Vs (line 80) | function Vs(t){for(var e=t,n=[];e.parent;)n.unshift(e),e=e.parent;return n}
  function Ys (line 80) | function Ys(t,e){e=e||{},this.nodes=[],this.diagonal=!!e.diagonal,this.g...
  function Hs (line 80) | function Hs(t,e,n){this.x=t,this.y=e,this.weight=n}
  function Ws (line 80) | function Ws(t){this.content=[],this.scoreFunction=t}
  function Js (line 80) | function Js(t,e){for(var n=0;n<e.features.length;n++)if(ye(t,e.features[...
  function Zs (line 80) | function Zs(t){return function(){return t}}
  function Ks (line 80) | function Ks(t){return t[0]}
  function Qs (line 80) | function Qs(t){return t[1]}
  function $s (line 80) | function $s(){this._=null}
  function ta (line 80) | function ta(t){t.U=t.C=t.L=t.R=t.P=t.N=null}
  function ea (line 80) | function ea(t,e){var n=e,r=e.R,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n...
  function na (line 80) | function na(t,e){var n=e,r=e.L,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n...
  function ra (line 80) | function ra(t){for(;t.L;)t=t.L;return t}
  function ia (line 80) | function ia(t,e,n,r){var i=[null,null],o=Pa.push(i)-1;return i.left=t,i....
  function oa (line 80) | function oa(t,e,n){var r=[e,n];return r.left=t,r}
  function sa (line 80) | function sa(t,e,n,r){t[0]||t[1]?t.left===n?t[1]=r:t[0]=r:(t[0]=r,t.left=...
  function aa (line 80) | function aa(t,e,n,r,i){var o,s=t[0],a=t[1],u=s[0],l=s[1],c=0,h=1,p=a[0]-...
  function ua (line 80) | function ua(t,e,n,r,i){var o=t[1];if(o)return!0;var s,a,u=t[0],l=t.left,...
  function la (line 80) | function la(t,e){var n=t.site,r=e.left,i=e.right;return n===i&&(i=r,r=n)...
  function ca (line 80) | function ca(t,e){return e[+(e.left!==t.site)]}
  function ha (line 80) | function ha(t,e){return e[+(e.left===t.site)]}
  function ga (line 80) | function ga(){ta(this),this.x=this.y=this.arc=this.site=this.cy=null}
  function da (line 80) | function da(t){var e=t.P,n=t.N;if(e&&n){var r=e.site,i=t.site,o=n.site;i...
  function ya (line 80) | function ya(t){var e=t.circle;e&&(e.P||(pa=e.N),Ca.remove(e),fa.push(e),...
  function _a (line 80) | function _a(){ta(this),this.edge=this.site=this.circle=null}
  function ma (line 80) | function ma(t){var e=va.pop()||new _a;return e.site=t,e}
  function xa (line 80) | function xa(t){ya(t),Na.remove(t),va.push(t),ta(t)}
  function Ea (line 80) | function Ea(t){var e=t.circle,n=e.x,r=e.cy,i=[n,r],o=t.P,s=t.N,a=[t];xa(...
  function ba (line 80) | function ba(t){for(var e,n,r,i,o=t[0],s=t[1],a=Na._;a;)if((r=wa(a,s)-o)>...
  function wa (line 80) | function wa(t,e){var n=t.site,r=n[0],i=n[1],o=i-e;if(!o)return r;var s=t...
  function Ia (line 80) | function Ia(t,e){var n=t.N;if(n)return wa(n,e);var r=t.site;return r[1]=...
  function Oa (line 80) | function Oa(t,e){return e[1]-t[1]||e[0]-t[0]}
  function Ra (line 80) | function Ra(t,e){var n,r,i,o=t.sort(Oa).pop();for(Pa=[],Sa=new Array(t.l...
  function Ta (line 80) | function Ta(t){return(t=t.slice()).push(t[0]),l([t])}
  function Aa (line 80) | function Aa(t,e,n,r){var i=(r=r||{}).steps||64,o=r.units||"kilometers",s...
  function Da (line 80) | function Da(t){var e=t*Math.PI/180;return Math.tan(e)}
  function Fa (line 80) | function Fa(t,e){void 0===e&&(e={});var n=0,r=0,i=0;return q(t,(function...
  function ka (line 80) | function ka(t,e,n,r,i){var o=r.tolerance||.001,s=0,u=0,l=0,c=0;if(F(n,(f...
  function Ga (line 80) | function Ga(t,e){return{x:t[0]-e[0],y:t[1]-e[1]}}
  function qa (line 80) | function qa(t,e){var n=0,r=0;R(t,(function(i,o,s,a,u){u>n&&(n=u,r=o,e.pu...
  function Ba (line 80) | function Ba(t,e){var n=0,r=0,i=0;R(t,(function(o,s,a,u,l){u>i&&(i=u,r=s,...
  function za (line 80) | function za(t,e,n){void 0===n&&(n=2);var r=K(t),i=K(e),o=r[0]-i[0],s=r[1...
  function ja (line 80) | function ja(t,e){var n=(e=e||{}).threshold||1e4,r=e.p||2,i=e.binary||!1,...
  function Ua (line 80) | function Ua(t){for(var e=0,n=0,r=t;n<r.length;n++){e+=r[n]}return e/t.le...
  function Va (line 80) | function Va(t,e){return void 0===e&&(e={}),Ya(t,"mercator",e)}
  function Xa (line 80) | function Xa(t,e){return void 0===e&&(e={}),Ya(t,"wgs84",e)}
  function Ya (line 80) | function Ya(t,e,n){void 0===n&&(n={});var r=(n=n||{}).mutate;if(!t)throw...
  function Ha (line 80) | function Ha(t){var e=Math.PI/180,n=6378137,r=20037508.342789244,i=[n*(Ma...
  function Wa (line 80) | function Wa(t){var e=180/Math.PI,n=6378137;return[t[0]*e/n,(.5*Math.PI-2...
  function Ka (line 80) | function Ka(t){return Array.isArray(t)?nu(t):t&&t.bbox?nu(t.bbox):[360*e...
  function Qa (line 80) | function Qa(t,e){void 0===e&&(e={}),null==t&&(t=1);for(var n=[],r=0;r<t;...
  function $a (line 80) | function $a(t,e){void 0===e&&(e={}),null==t&&(t=1),C(e.num_vertices)&&vo...
  function tu (line 80) | function tu(t,e){if(void 0===e&&(e={}),!P(e=e||{}))throw new Error("opti...
  function eu (line 80) | function eu(){return Math.random()-.5}
  function nu (line 80) | function nu(t){return[Math.random()*(t[2]-t[0])+t[0],Math.random()*(t[3]...
  function iu (line 80) | function iu(t,e){if(!t)throw new Error("geojson is required");if("Featur...
  function ou (line 80) | function ou(t,e,n){if(!t)throw new Error("geojson is required");if("Feat...
  function su (line 80) | function su(t,e,n,r){var i=r;return ou(t,e,(function(t,e,o){i=0===o&&voi...
  function au (line 80) | function au(t,e){var n={};return F(t,(function(t,r){var i=t.properties||...
  function uu (line 80) | function uu(t,e){if(void 0===t)return!1;var n=typeof e;if("number"===n||...
  function lu (line 80) | function lu(t,e){for(var n=Object.keys(e),r=0;r<n.length;r++){var i=n[r]...
  function cu (line 80) | function cu(t,e){if(!e)return{};if(!e.length)return{};for(var n={},r=0;r...
  function fu (line 88) | function fu(t,e){return t>e?1:t<e?-1:0}
  function gu (line 88) | function gu(t,e,n){for(var r=new pu(null,null),i=r,o=r;;){var s=n(t,e.ke...
  function du (line 88) | function du(t,e,n,r){var i=new pu(t,e);if(null===n)return i.left=i.right...
  function yu (line 88) | function yu(t,e,n){var r=null,i=null;if(e){var o=n((e=gu(t,e,n)).key,t);...
  function vu (line 88) | function vu(t,e,n,r,i){if(t){r(e+(n?"└── ":"├── ")+i(t)+"\n");var o=e+(n...
  function t (line 88) | function t(t){void 0===t&&(t=fu),this._root=null,this._size=0,this._comp...
  function mu (line 88) | function mu(t,e,n,r){var i=r-n;if(i>0){var o=n+Math.floor(i/2),s=t[o],a=...
  function xu (line 88) | function xu(t,e,n){var r=n-e;if(r>0){var i=e+Math.floor(r/2),o=xu(t,e,i)...
  function Eu (line 88) | function Eu(t,e,n,r,i){if(!(n>=r)){for(var o=t[n+r>>1],s=n-1,a=r+1;;){do...
  function bu (line 88) | function bu(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a...
  function wu (line 88) | function wu(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.e...
  function Iu (line 88) | function Iu(t,e,n){return e&&wu(t.prototype,e),n&&wu(t,n),t}
  function t (line 88) | function t(){bu(this,t),this.reset()}
  function t (line 88) | function t(){bu(this,t),this.tree=new _u,this.round(0)}
  function t (line 88) | function t(e,n){bu(this,t),void 0===e.events?e.events=[this]:e.events.pu...
  function t (line 88) | function t(e,n,r,i){bu(this,t),this.id=++zu,this.leftSE=e,e.segment=this...
  function t (line 88) | function t(e,n,r){if(bu(this,t),!Array.isArray(e)||0===e.length)throw ne...
  function t (line 88) | function t(e,n){if(bu(this,t),!Array.isArray(e))throw new Error("Input g...
  function t (line 88) | function t(e,n){if(bu(this,t),!Array.isArray(e))throw new Error("Input g...
  function t (line 88) | function t(e){bu(this,t),this.events=e;for(var n=0,r=e.length;n<r;n++)e[...
  function t (line 88) | function t(e){bu(this,t),this.exteriorRing=e,e.poly=this,this.interiorRi...
  function t (line 88) | function t(e){bu(this,t),this.rings=e,this.polys=this._composePolys(e)}
  function t (line 88) | function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[...
  function t (line 88) | function t(){bu(this,t)}
  function e (line 88) | function e(e){t.call(this,e),this.name="IllegalArgumentException",this.m...
  function al (line 88) | function al(){}
  function e (line 88) | function e(){t.call(this,"Projective point not representable on the Cart...
  function e (line 88) | function e(e){t.call(this,e),this.name="RuntimeException",this.message=e...
  function e (line 88) | function e(){if(t.call(this),0===arguments.length)t.call(this);else if(1...
  function e (line 88) | function e(){t.apply(this,arguments)}
  function oc (line 88) | function oc(t){this.message=t||""}
  function e (line 88) | function e(){t.apply(this,arguments)}
  function uc (line 88) | function uc(t){this.message=t||""}
  function e (line 88) | function e(){t.call(this),this.array_=[],arguments[0]instanceof ic&&this...
  function e (line 88) | function e(e){t.call(this),this.arrayList_=e,this.position_=0}
  function e (line 88) | function e(){if(t.call(this),0===arguments.length);else if(1===arguments...
  function e (line 88) | function e(){t.apply(this,arguments)}
  function _c (line 88) | function _c(t){this.message=t||""}
  function mc (line 88) | function mc(){}
  function e (line 88) | function e(){t.call(this),this.array_=[],arguments[0]instanceof ic&&this...
  function e (line 88) | function e(e){t.call(this),this.hashSet_=e,this.position_=0}
  function bc (line 88) | function bc(t){return null===t?0:t.color}
  function wc (line 88) | function wc(t){return null===t?null:t.parent}
  function Ic (line 88) | function Ic(t,e){null!==t&&(t.color=e)}
  function Nc (line 88) | function Nc(t){return null===t?null:t.left}
  function Sc (line 88) | function Sc(t){return null===t?null:t.right}
  function Cc (line 88) | function Cc(){this.root_=null,this.size_=0}
  function Mc (line 88) | function Mc(){}
  function Lc (line 88) | function Lc(){this.array_=[],arguments[0]instanceof ic&&this.addAll(argu...
  function e (line 88) | function e(e,n){if(t.call(this,n),this._geometries=e||[],t.hasNullElemen...
  function e (line 88) | function e(){t.apply(this,arguments)}
  function zc (line 88) | function zc(){}
  function jc (line 88) | function jc(){}
  function Vc (line 88) | function Vc(){}
  function Xc (line 88) | function Xc(){}
  function Yc (line 88) | function Yc(){}
  function e (line 88) | function e(e,n){t.call(this,n),this._points=null,this.init(e)}
  function e (line 88) | function e(e,n){t.call(this,n),this._coordinates=e||null,this.init(this....
  function e (line 88) | function e(e,n,r){if(t.call(this,r),this._shell=null,this._holes=null,nu...
  function e (line 88) | function e(){t.apply(this,arguments)}
  function e (line 88) | function e(e,n){e instanceof ul&&n instanceof _h&&(e=n.getCoordinateSequ...
  function e (line 88) | function e(){t.apply(this,arguments)}
  function e (line 88) | function e(){t.call(this),this.map_=new Map}
  function Ph (line 88) | function Ph(t){this.message=t||""}
  function Mh (line 88) | function Mh(){this.array_=[]}
  function e (line 88) | function e(n,r){t.call(this,e.msgWithCoord(n,r)),this.pt=r?new ul(r):nul...
  function e (line 88) | function e(){var e=arguments[0],n=arguments[1];t.call(this,e,n)}
  function e (line 88) | function e(){var e=arguments[0],n=arguments[1];t.call(this,e,n)}
  function e (line 88) | function e(){t.call(this),this._coord=null,this._edges=null;var e=argume...
  function e (line 88) | function e(){var e=arguments[0],n=arguments[1];if(t.call(this,e),this._i...
  function e (line 88) | function e(n){n=n||e.DEFAULT_NODE_CAPACITY,t.call(this,n)}
  function e (line 88) | function e(){var e=arguments[0];t.call(this,e)}
  function e (line 88) | function e(e){e?t.call(this,e):t.call(this),this._monoChains=new lc,this...
  function e (line 88) | function e(){t.call(this),this._si=null;var e=arguments[0];this._si=e}
  function e (line 88) | function e(){t.call(this),this._resultAreaEdgeList=null,this._label=null...
  function e (line 88) | function e(){t.apply(this,arguments)}
  function e (line 88) | function e(){if(t.call(this),this.pts=null,this._env=null,this.eiList=ne...
  function e (line 88) | function e(){t.call(this),this._hotPixel=null,this._parentEdge=null,this...
  function e (line 88) | function e(e,n,r){t.call(this),this._snapTolerance=e||null,this._snapPts...
  function e (line 88) | function e(){t.call(this),this.events=new lc,this.nOverlaps=null}
  function e (line 88) | function e(){t.call(this),this._item=null;var e=arguments[0],n=arguments...
  function e (line 88) | function e(){t.call(this),this._node1=null,this._node2=null;var e=argume...
  function e (line 88) | function e(){if(t.call(this),this._parentGeom=null,this._lineEdgeMap=new...
  function e (line 88) | function e(){var e=arguments[0],n=arguments[1];t.call(this,e,n),this._pt...
  function qg (line 88) | function qg(){return new Bg}
  function Bg (line 88) | function Bg(){this.reset()}
  function jg (line 88) | function jg(t,e,n){var r=t.s=e+n,i=r-e,o=r-i;t.t=e-o+(n-i)}
  function nd (line 88) | function nd(t){return t>1?0:t<-1?Vg:Math.acos(t)}
  function rd (line 88) | function rd(t){return t>1?Xg:t<-1?-Xg:Math.asin(t)}
  function id (line 88) | function id(){}
  function od (line 88) | function od(t,e){t&&ad.hasOwnProperty(t.type)&&ad[t.type](t,e)}
  function ud (line 88) | function ud(t,e,n){var r,i=-1,o=t.length-n;for(e.lineStart();++i<o;)r=t[...
  function ld (line 88) | function ld(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)ud(t[n]...
  function cd (line 88) | function cd(t){return[Qg(t[1],t[0]),rd(t[2])]}
  function hd (line 88) | function hd(t){var e=t[0],n=t[1],r=$g(n);return[r*$g(e),r*td(e),td(n)]}
  function pd (line 88) | function pd(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}
  function fd (line 88) | function fd(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1...
  function gd (line 88) | function gd(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}
  function dd (line 88) | function dd(t,e){return[t[0]*e,t[1]*e,t[2]*e]}
  function yd (line 88) | function yd(t){var e=ed(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t...
  function vd (line 88) | function vd(t,e){function n(n,r){return n=t(n,r),e(n[0],n[1])}return t.i...
  function _d (line 88) | function _d(t,e){return[t>Vg?t-Hg:t<-Vg?t+Hg:t,e]}
  function md (line 88) | function md(t){return function(e,n){return[(e+=t)>Vg?e-Hg:e<-Vg?e+Hg:e,n]}}
  function xd (line 88) | function xd(t){var e=md(t);return e.invert=md(-t),e}
  function Ed (line 88) | function Ed(t,e){var n=$g(t),r=td(t),i=$g(e),o=td(e);function s(t,e){var...
  function bd (line 88) | function bd(t,e){(e=hd(e))[0]-=t,yd(e);var n=nd(-e[1]);return((-e[2]<0?-...
  function wd (line 88) | function wd(){var t,e=[];return{point:function(e,n){t.push([e,n])},lineS...
  function Id (line 88) | function Id(t,e){return Zg(t[0]-e[0])<Ug&&Zg(t[1]-e[1])<Ug}
  function Nd (line 88) | function Nd(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this....
  function Sd (line 88) | function Sd(t,e,n,r,i){var o,s,a=[],u=[];if(t.forEach((function(t){if(!(...
  function Cd (line 88) | function Cd(t){if(e=t.length){for(var e,n,r=0,i=t[0];++r<e;)i.n=n=t[r],n...
  function Pd (line 88) | function Pd(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}
  function Od (line 88) | function Od(t){for(var e,n,r,i=t.length,o=-1,s=0;++o<i;)s+=t[o].length;f...
  function Ad (line 88) | function Ad(t,e,n,r){function i(i,o){return t<=i&&i<=n&&e<=o&&o<=r}funct...
  function Fd (line 88) | function Fd(t){return t}
  function jd (line 88) | function jd(t,e,n,r){return function(i,o){var s,a,u,l=e(o),c=i.invert(r[...
  function Ud (line 88) | function Ud(t){return t.length>1}
  function Vd (line 88) | function Vd(t,e){return((t=t.x)[0]<0?t[1]-Xg-Ug:Xg-t[1])-((e=e.x)[0]<0?e...
  function Yd (line 88) | function Yd(t,e){var n=$g(t),r=n>0,i=Zg(n)>Ug;function o(t,e){return $g(...
  function Hd (line 88) | function Hd(t){return function(e){var n=new Wd;for(var r in t)n[r]=t[r];...
  function Wd (line 88) | function Wd(){}
  function Jd (line 88) | function Jd(t,e,n){var r=e[1][0]-e[0][0],i=e[1][1]-e[0][1],o=t.clipExten...
  function Kd (line 88) | function Kd(t,e){return+e?function(t,e){function n(r,i,o,s,a,u,l,c,h,p,f...
  function $d (line 88) | function $d(t){return function(t){var e,n,r,i,o,s,a,u,l,c,h=150,p=480,f=...
  function ey (line 88) | function ey(){return $d(ty).scale(79.4188).clipAngle(179.999)}
  function ny (line 88) | function ny(t,n,r,i){var s=t.properties||{},a="Feature"===t.type?t.geome...
  function ry (line 88) | function ry(t){return Array.isArray(t[0])?ry(t[0]):isNaN(t[0])}
  function iy (line 88) | function iy(t,e){return"object"!=typeof t[0]?e(t):t.map((function(t){ret...
  function oy (line 88) | function oy(t,e){return"object"!=typeof t[0]?e.invert(t):t.map((function...
  function sy (line 88) | function sy(t,e,n){void 0===n&&(n={});var r=rt(t),i=rt(e),o=$u.intersect...
  function ay (line 88) | function ay(t,e,n){void 0===n&&(n={});var r=JSON.stringify(n.properties|...
  function uy (line 88) | function uy(t,e,n,r,i,o){for(var s=[],a=0;a<6;a++){var u=t[0]+e*i[a],c=t...
  function ly (line 88) | function ly(t,e,n,r,i,o){for(var s=[],a=0;a<6;a++){var u=[];u.push(t),u....
  function cy (line 88) | function cy(t){return y(t)}
  function hy (line 88) | function hy(t){return l(t&&t.geometry.coordinates||[[[180,90],[-180,90],...
  function py (line 88) | function py(t,e,n){return void 0===n&&(n={}),function(t,e,n,r){void 0===...
  function fy (line 88) | function fy(t,e,n){void 0===n&&(n={});for(var r=[],i=e/me([t[0],t[1]],[t...
  function r (line 88) | function r(r){return new Ra(r.map((function(n,i){var o=[Math.round(t(n,i...

FILE: plugins/tiddlywiki/geospatial/operators/lookup.js
  function getPolygonsContainingPoint (line 30) | function getPolygonsContainingPoint(featureCollection,point) {

FILE: plugins/tiddlywiki/geospatial/operators/transformation.js
  function makeTransformation (line 20) | function makeTransformation(methodName) {
  function geojsonOp (line 36) | function geojsonOp(geojsonObjects, op) {

FILE: plugins/tiddlywiki/geospatial/widgets/geomap.js
  function loadBaseLayer (line 121) | function loadBaseLayer(layerInfo) {

FILE: plugins/tiddlywiki/highlight/highlightblock.js
  constant TYPE_MAPPINGS_BASE (line 11) | const TYPE_MAPPINGS_BASE = "$:/config/HighlightPlugin/TypeMappings/";

FILE: plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/boot.js
  function extend (line 153) | function extend(destination, source) {

FILE: plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/jasmine-html.js
  function ResultsStateBuilder (line 31) | function ResultsStateBuilder() {
  function HtmlReporter (line 76) | function HtmlReporter(options) {
  function HtmlSpecFilter (line 534) | function HtmlSpecFilter(options) {
  function ResultsNode (line 547) | function ResultsNode(result, type, parent) {
  function QueryString (line 571) | function QueryString(options) {

FILE: plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/jasmine.js
  function getJasmineRequire (line 41) | function getJasmineRequire() {
  function anyMatch (line 499) | function anyMatch(pattern, lines) {
  function callerFile (line 528) | function callerFile() {
  function Spec (line 551) | function Spec(attrs) {
  function Order (line 746) | function Order(options) {
  function Env (line 797) | function Env(options) {
  function JsApiReporter (line 1761) | function JsApiReporter(options) {
  function Any (line 1881) | function Any(expectedObject) {
  function Anything (line 1931) | function Anything() {}
  function ArrayContaining (line 1945) | function ArrayContaining(sample) {
  function ArrayWithExactContents (line 1973) | function ArrayWithExactContents(sample) {
  function Empty (line 2005) | function Empty() {}
  function Falsy (line 2031) | function Falsy() {}
  function NotEmpty (line 2046) | function NotEmpty() {}
  function ObjectContaining (line 2073) | function ObjectContaining(sample) {
  function getPrototype (line 2077) | function getPrototype(obj) {
  function hasProperty (line 2089) | function hasProperty(obj, property) {
  function StringMatching (line 2123) | function StringMatching(expected) {
  function Truthy (line 2144) | function Truthy() {}
  function CallTracker (line 2162) | function CallTracker() {
  function messageChannelImpl (line 2276) | function messageChannelImpl(global, setTimeout) {
  function getClearStack (line 2313) | function getClearStack(global) {
  function Clock (line 2353) | function Clock(global, delayedFunctionSchedulerFactory, mockDate) {
  function FakeTimeout (line 2517) | function FakeTimeout() {}
  function DelayedFunctionScheduler (line 2531) | function DelayedFunctionScheduler() {
  function ExpectationFailed (line 2697) | function ExpectationFailed() {}
  function ExceptionFormatter (line 2710) | function ExceptionFormatter(options) {
  function Expectation (line 2806) | function Expectation(options) {
  function AsyncExpectation (line 2844) | function AsyncExpectation(options) {
  function wrapSyncCompare (line 2884) | function wrapSyncCompare(name, matcherFactory) {
  function wrapAsyncCompare (line 2891) | function wrapAsyncCompare(name, matcherFactory) {
  function addCoreMatchers (line 2905) | function addCoreMatchers(prototype, matchers, wrapper) {
  function addFilter (line 2912) | function addFilter(source, filter) {
  function negatedFailureMessage (line 2918) | function negatedFailureMessage(result, matcherName, args, util) {
  function negate (line 2933) | function negate(result) {
  function defaultNegativeCompare (line 2940) | function defaultNegativeCompare() {
  function defaultNegativeCompare (line 2951) | function defaultNegativeCompare() {
  function ContextAddingFilter (line 2960) | function ContextAddingFilter(message) {
  function ExpectationFilterChain (line 2985) | function ExpectationFilterChain(maybeFilter, prev) {
  function buildExpectationResult (line 3033) | function buildExpectationResult(options) {
  function Expector (line 3098) | function Expector(options) {
  function defaultMessage (line 3128) | function defaultMessage() {
  function generateErrorMsg (line 3179) | function generateErrorMsg(domain, usage) {
  function GlobalErrors (line 3191) | function GlobalErrors(global) {
  function prefix (line 3304) | function prefix(passed) {
  function prefix (line 3374) | function prefix(passed) {
  function defaultFormatter (line 3429) | function defaultFormatter (actual, expected, path) {
  function isAsymmetric (line 3493) | function isAsymmetric(obj) {
  function asymmetricMatch (line 3497) | function asymmetricMatch(a, b, customTesters, diffBuilder) {
  function equals (line 3523) | function equals(a, b, customTesters, diffBuilder) {
  function eq (line 3532) | function eq(a, b, aStack, bStack, customTesters, diffBuilder) {
  function keys (line 3829) | function keys(obj, isArray) {
  function has (line 3859) | function has(obj, key) {
  function isFunction (line 3863) | function isFunction(obj) {
  function objectKeysAreDifferentFormatter (line 3867) | function objectKeysAreDifferentFormatter(actual, expected, path) {
  function constructorsAreDifferentFormatter (line 3889) | function constructorsAreDifferentFormatter(actual, expected, path) {
  function actualArrayIsLongerFormatter (line 3900) | function actualArrayIsLongerFormatter(actual, expected, path) {
  function formatKeyValuePairs (line 3907) | function formatKeyValuePairs(obj) {
  function nothing (line 3924) | function nothing() {
  function ObjectPath (line 3949) | function ObjectPath(components) {
  function formatPropertyAccess (line 3969) | function formatPropertyAccess(prop) {
  function map (line 3981) | function map(array, fn) {
  function isValidIdentifier (line 3989) | function isValidIdentifier(string) {
  function toBe (line 4022) | function toBe(util) {
  function toBeCloseTo (line 4053) | function toBeCloseTo() {
  function toBeDefined (line 4088) | function toBeDefined() {
  function toBeFalsy (line 4109) | function toBeFalsy() {
  function toBeGreaterThan (line 4131) | function toBeGreaterThan() {
  function toBeGreaterThanOrEqual (line 4154) | function toBeGreaterThanOrEqual() {
  function toBeLessThan (line 4176) | function toBeLessThan() {
  function toBeLessThanOrEqual (line 4199) | function toBeLessThanOrEqual() {
  function toBeNaN (line 4221) | function toBeNaN() {
  function toBeNegativeInfinity (line 4250) | function toBeNegativeInfinity() {
  function toBeNull (line 4279) | function toBeNull() {
  function toBePositiveInfinity (line 4300) | function toBePositiveInfinity() {
  function toBeTruthy (line 4329) | function toBeTruthy() {
  function toBeUndefined (line 4350) | function toBeUndefined() {
  function toContain (line 4373) | function toContain(util, customEqualityTesters) {
  function toEqual (line 4398) | function toEqual(util, customEqualityTesters) {
  function toHaveBeenCalled (line 4433) | function toHaveBeenCalled() {
  function toHaveBeenCalledBefore (line 4472) | function toHaveBeenCalledBefore() {
  function toHaveBeenCalledTimes (line 4533) | function toHaveBeenCalledTimes() {
  function toHaveBeenCalledWith (line 4574) | function toHaveBeenCalledWith(util, customEqualityTesters) {
  function toHaveClass (line 4617) | function toHaveClass(util, customEqualityTesters) {
  function isElement (line 4631) | function isElement(maybeEl) {
  function toMatch (line 4653) | function toMatch() {
  function toThrow (line 4685) | function toThrow(util) {
  function toThrowError (line 4747) | function toThrowError () {
  function pass (line 4880) | function pass(message) {
  function fail (line 4887) | function fail(message) {
  function toThrowMatching (line 4908) | function toThrowMatching() {
  function thrownDescription (line 4940) | function thrownDescription(thrown) {
  function pass (line 4949) | function pass(message) {
  function fail (line 4956) | function fail(message) {
  function MockDate (line 4967) | function MockDate(global) {
  function PrettyPrinter (line 5051) | function PrettyPrinter() {
  function hasCustomToString (line 5058) | function hasCustomToString(value) {
  function truncate (line 5327) | function truncate(s, maxlen) {
  function MaxCharsReachedError (line 5336) | function MaxCharsReachedError() {
  function keys (line 5343) | function keys(obj, isArray) {
  function StopExecutionError (line 5380) | function StopExecutionError() {}
  function once (line 5384) | function once(fn) {
  function emptyFn (line 5396) | function emptyFn() {}
  function QueueRunner (line 5398) | function QueueRunner(attrs) {
  function runNext (line 5465) | function runNext() {
  function onException (line 5525) | function onException(e) {
  function onPromiseRejection (line 5530) | function onPromiseRejection(e) {
  function ReportDispatcher (line 5568) | function ReportDispatcher(methods, queueRunnerFactory) {
  function Spy (line 5994) | function Spy(name, originalFn, customStrategies) {
  function SpyStrategyDispatcher (line 6080) | function SpyStrategyDispatcher(strategyArgs) {
  function StrategyDict (line 6107) | function StrategyDict(strategyFactory) {
  function SpyFactory (line 6145) | function SpyFactory(getCustomStrategies) {
  function SpyRegistry (line 6193) | function SpyRegistry(options) {
  function SpyStrategy (line 6345) | function SpyStrategy(options) {
  function createCustomPlan (line 6367) | function createCustomPlan(factory) {
  function StackTrace (line 6472) | function StackTrace(error) {
  function tryParseFrames (line 6508) | function tryParseFrames(lines) {
  function first (line 6538) | function first(items, fn) {
  function extractMessage (line 6550) | function extractMessage(message, stackLines) {
  function messagePrefixLength (line 6561) | function messagePrefixLength(message, stackLines) {
  function Suite (line 6582) | function Suite(attrs) {
  function removeFns (line 6667) | function removeFns(queueableFns) {
  function isFailure (line 6755) | function isFailure(args) {
  function Timer (line 6772) | function Timer(options) {
  function TreeProcessor (line 6797) | function TreeProcessor(attrs) {
  function UserContext (line 7013) | function UserContext() {

FILE: plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/json2.js
  function f (line 169) | function f(n) {
  function quote (line 203) | function quote(string) {
  function str (line 220) | function str(key, holder) {
  function walk (line 416) | function walk(holder, key) {

FILE: plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/node_boot.js
  function extend (line 32) | function extend(destination, source) {

FILE: plugins/tiddlywiki/jasmine/files/jasmine/lib/command.js
  function Command (line 27) | function Command(projectBaseDir, examplesDir, print) {
  function isFileArg (line 62) | function isFileArg(arg) {
  function parseOptions (line 66) | function parseOptions(argv) {
  function runJasmine (line 125) | function runJasmine(jasmine, env, print) {
  function initJasmine (line 161) | function initJasmine(options) {
  function installExamples (line 173) | function installExamples(options) {
  function help (line 202) | function help(options) {
  function version (line 234) | function version(options) {
  function lPad (line 240) | function lPad(str, length) {
  function copyFiles (line 248) | function copyFiles(srcDir, destDir, pattern) {
  function makeDirStructure (line 257) | function makeDirStructure(absolutePath) {
  function isEnvironmentVariable (line 269) | function isEnvironmentVariable(command) {
  function setEnvironmentVariables (line 274) | function setEnvironmentVariables(commands) {

FILE: plugins/tiddlywiki/jasmine/files/jasmine/lib/filters/console_spec_filter.js
  function ConsoleSpecFilter (line 3) | function ConsoleSpecFilter(options) {

FILE: plugins/tiddlywiki/jasmine/files/jasmine/lib/jasmine.js
  function Jasmine (line 10) | function Jasmine(options) {
  function addFiles (line 159) | function addFiles(kind) {
  function exitIfAllStreamsCompleted (line 214) | function exitIfAllStreamsCompleted() {

FILE: plugins/tiddlywiki/jasmine/files/jasmine/lib/reporters/console_reporter.js
  function ConsoleReporter (line 8) | function ConsoleReporter() {

FILE: plugins/tiddlywiki/jasmine/jasmine-plugin.js
  function evalInContext (line 64) | function evalInContext(title) {

FILE: plugins/tiddlywiki/jasmine/run-wiki-based-tests.js
  function readMultipleTiddlersTiddler (line 58) | function readMultipleTiddlersTiddler(title) {
  function createWidgetNode (line 75) | function createWidgetNode(parser,wiki) {
  function parseText (line 79) | function parseText(text,wiki,options) {
  function renderWidgetNode (line 83) | function renderWidgetNode(widgetNode) {
  function refreshWidgetNode (line 91) | function refreshWidgetNode(widgetNode,wrapper) {

FILE: plugins/tiddlywiki/jszip/files/jszip.min.v2.6.1.js
  function e (line 12) | function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&re...
  function d (line 12) | function d(a){if(a){this.data=a,this.length=this.data.length,this.index=...
  function d (line 12) | function d(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,...
  function d (line 12) | function d(a){this.data=null,this.length=0,this.index=0,this.zero=0}
  function d (line 12) | function d(a,b){return this instanceof d?(this.files={},this.comment=nul...
  function d (line 12) | function d(a){this.data=a,this.length=this.data.length,this.index=0,this...
  function d (line 12) | function d(a,b){this.data=a,b||(this.data=f.string2binary(this.data)),th...
  function d (line 12) | function d(a){a&&(this.data=a,this.length=this.data.length,this.index=0,...
  function d (line 12) | function d(a){return a}
  function e (line 12) | function e(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);retu...
  function f (line 12) | function f(a){var b=65536,d=[],e=a.length,f=c.getTypeOf(a),g=0,h=!0;try{...
  function g (line 12) | function g(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];return b}
  function d (line 12) | function d(a,b){this.files=[],this.loadOptions=b,a&&this.load(a)}
  function d (line 12) | function d(a,b){this.options=a,this.loadOptions=b}
  function d (line 13) | function d(a){if(!(this instanceof d))return new d(a);this.options=i.ass...
  function e (line 13) | function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return ...
  function f (line 13) | function f(a,b){return b=b||{},b.raw=!0,e(a,b)}
  function g (line 13) | function g(a,b){return b=b||{},b.gzip=!0,e(a,b)}
  function d (line 13) | function d(a){if(!(this instanceof d))return new d(a);this.options=h.ass...
  function e (line 13) | function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return ...
  function f (line 13) | function f(a,b){return b=b||{},b.raw=!0,e(a,b)}
  function d (line 13) | function d(a,b){if(b<65537&&(a.subarray&&g||!a.subarray&&f))return Strin...
  function d (line 13) | function d(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c...
  function d (line 13) | function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a...
  function e (line 13) | function e(a,b,c,d){var e=f,g=d+c;a^=-1;for(var h=d;h<g;h++)a=a>>>8^e[25...
  function d (line 13) | function d(a,b){return a.msg=I[b],b}
  function e (line 13) | function e(a){return(a<<1)-(a>4?9:0)}
  function f (line 13) | function f(a){for(var b=a.length;--b>=0;)a[b]=0}
  function g (line 13) | function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0...
  function h (line 13) | function h(a,b){F._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a....
  function i (line 13) | function i(a,b){a.pending_buf[a.pending++]=b}
  function j (line 13) | function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pen...
  function k (line 13) | function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_...
  function l (line 13) | function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_lengt...
  function m (line 13) | function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead...
  function n (line 13) | function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf...
  function o (line 13) | function o(a,b){for(var c,d;;){if(a.lookahead<la){if(m(a),a.lookahead<la...
  function p (line 13) | function p(a,b){for(var c,d,e;;){if(a.lookahead<la){if(m(a),a.lookahead<...
  function q (line 13) | function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ka){if(m(a...
  function r (line 13) | function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead))...
  function s (line 13) | function s(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_lengt...
  function t (line 13) | function t(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=D[a.le...
  function u (line 13) | function u(){this.strm=null,this.status=0,this.pending_buf=null,this.pen...
  function v (line 13) | function v(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_t...
  function w (line 13) | function w(a){var b=v(a);return b===O&&t(a.state),b}
  function x (line 13) | function x(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,O...
  function y (line 13) | function y(a,b,c,e,f,g){if(!a)return Q;var h=1;if(b===T&&(b=6),e<0?(h=0,...
  function z (line 13) | function z(a,b){return y(a,b,$,aa,ba,Y)}
  function A (line 13) | function A(a,b){var c,h,k,l;if(!a||!a.state||b>N||b<0)return a?d(a,Q):Q;...
  function B (line 13) | function B(a){var b;return a&&a.state?(b=a.state.status,b!==na&&b!==oa&&...
  function C (line 13) | function C(a,b){var c,d,e,g,h,i,j,k,l=b.length;if(!a||!a.state)return Q;...
  function d (line 13) | function d(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=...
  function d (line 13) | function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<...
  function e (line 13) | function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this....
  function f (line 13) | function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=...
  function g (line 13) | function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.w...
  function h (line 13) | function h(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(...
  function i (line 13) | function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,...
  function j (line 13) | function j(a){return i(a,sa)}
  function k (line 13) | function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;...
  function l (line 13) | function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<...
  function m (line 13) | function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,r,pa,qa,ra,sa,ta,ua,va,wa,xa...
  function n (line 14) | function n(a){if(!a||!a.state)return G;var b=a.state;return b.window&&(b...
  function o (line 14) | function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?G:(c.h...
  function p (line 14) | function p(a,b){var c,d,e,f=b.length;return a&&a.state?(c=a.state,0!==c....
  function d (line 14) | function d(a){for(var b=a.length;--b>=0;)a[b]=0}
  function e (line 14) | function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_ba...
  function f (line 14) | function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}
  function g (line 14) | function g(a){return a<256?ia[a]:ia[256+(a>>>7)]}
  function h (line 14) | function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending...
  function i (line 14) | function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b<<a.bi_valid&65535,h(a,a.bi...
  function j (line 14) | function j(a,b,c){i(a,c[2*b],c[2*b+1])}
  function k (line 14) | function k(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}
  function l (line 14) | function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a....
  function m (line 14) | function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc....
  function n (line 14) | function n(a,b,c){var d,e,f=new Array(W+1),g=0;for(d=1;d<=W;d++)f[d]=g=g...
  function o (line 14) | function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;d<Q-1;d++)for(ka...
  function p (line 14) | function p(a){var b;for(b=0;b<S;b++)a.dyn_ltree[2*b]=0;for(b=0;b<T;b++)a...
  function q (line 14) | function q(a){a.bi_valid>8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a....
  function r (line 14) | function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a....
  function s (line 14) | function s(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<...
  function t (line 14) | function t(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_le...
  function u (line 14) | function u(a,b,c){var d,e,f,h,k=0;if(0!==a.last_lit)do d=a.pending_buf[a...
  function v (line 14) | function v(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.sta...
  function w (line 14) | function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3)...
  function x (line 14) | function x(a,b,c){var d,e,f=-1,g=b[1],h=0,k=7,l=4;for(0===g&&(k=138,l=3)...
  function y (line 14) | function y(a){var b;for(w(a,a.dyn_ltree,a.l_desc.max_code),w(a,a.dyn_dtr...
  function z (line 14) | function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;e<d...
  function A (line 14) | function A(a){var b,c=4093624447;for(b=0;b<=31;b++,c>>>=1)if(1&c&&0!==a....
  function B (line 14) | function B(a){pa||(o(),pa=!0),a.l_desc=new f(a.dyn_ltree,ma),a.d_desc=ne...
  function C (line 14) | function C(a,b,c,d){i(a,(L<<1)+(d?1:0),3),r(a,b,c,!0)}
  function D (line 14) | function D(a){i(a,M<<1,3),j(a,Z,ga),l(a)}
  function E (line 14) | function E(a,b,c,d){var e,f,g=0;a.level>0?(a.strm.data_type===K&&(a.strm...
  function F (line 14) | function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a...
  function d (line 14) | function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_i...

FILE: plugins/tiddlywiki/jszip/startup.js
  function loadZipTiddler (line 61) | function loadZipTiddler(title) {
  function saveZipTiddler (line 78) | function saveZipTiddler(title,zip) {
  function downloadZipFile (line 89) | function downloadZipFile(title,filename) {

FILE: plugins/tiddlywiki/markdown-legacy/files/remarkable.js
  function n (line 1) | function n(e){return o=e,(n=t)&&r.call(n,o)?t[e]:e;var n,o}
  function s (line 1) | function s(e,t){return!!e&&o.call(e,t)}
  function i (line 1) | function i(e){return[].slice.call(arguments,1).forEach(function(t){if(t)...
  function u (line 1) | function u(e){return e.indexOf("\\")<0?e:e.replace(a,"$1")}
  function l (line 1) | function l(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(6553...
  function c (line 1) | function c(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);...
  function f (line 1) | function f(e,t){var r=0,o=n(t);return t!==o?o:35===t.charCodeAt(0)&&h.te...
  function g (line 1) | function g(e){return e.indexOf("&")<0?e:e.replace(p,f)}
  function v (line 1) | function v(e){return b[e]}
  function k (line 1) | function k(e){return d.test(e)?e.replace(m,v):e}
  function w (line 1) | function w(){this.rules=i({},y),this.getBreak=y.getBreak}
  function C (line 1) | function C(){this.__rules__=[],this.__cache__=null}
  function E (line 1) | function E(e,t,r,n,o){this.src=e,this.env=n,this.options=r,this.parser=t...
  function D (line 1) | function D(e,t){var r,n,o,s=-1,i=e.posMax,a=e.pos,u=e.isInLabel;if(e.isI...
  function _ (line 1) | function _(e,t,r,n){var o,s,i,a,u,l;if(42!==e.charCodeAt(0))return-1;if(...
  function B (line 1) | function B(e){var t=g(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}
  function q (line 1) | function q(e,t){var r,n,o,s=t,i=e.posMax;if(60===e.src.charCodeAt(t)){fo...
  function F (line 1) | function F(e,t){var r,n=t,o=e.posMax,s=e.src.charCodeAt(t);if(34!==s&&39...
  function M (line 1) | function M(e){return e.trim().replace(/\s+/g," ").toUpperCase()}
  function S (line 1) | function S(e,t,r,n){var o,s,i,a,u,l,c,p,h;if(91!==e.charCodeAt(0))return...
  function L (line 1) | function L(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1")}
  function U (line 1) | function U(e,t){return!(t<0||t>=e.length)&&!I.test(e[t])}
  function H (line 1) | function H(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}
  function G (line 1) | function G(){this.options={},this.ruler=new C;for(var e=0;e<V.length;e++...
  function $ (line 1) | function $(e,t,r,n,o){var s,i,a,u,l,c,p;for(this.src=e,this.parser=t,thi...
  function Z (line 1) | function Z(e,t){var r,n,o;return(n=e.bMarks[t]+e.tShift[t])>=(o=e.eMarks...
  function W (line 1) | function W(e,t){var r,n=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];if(n+1>=o)...
  function Q (line 1) | function Q(e,t){var r=e.bMarks[t]+e.blkIndent,n=e.eMarks[t];return e.src...
  function X (line 1) | function X(e,t){var r,n,o=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];return o...
  function te (line 1) | function te(){this.ruler=new C;for(var e=0;e<ee.length;e++)this.ruler.pu...
  function se (line 1) | function se(e){switch(e){case 10:case 92:case 96:case 42:case 95:case 94...
  function ue (line 1) | function ue(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}
  function le (line 1) | function le(e,t){var r,n,o,s=t,i=!0,a=!0,u=e.posMax,l=e.src.charCodeAt(t...
  function de (line 1) | function de(e,t){return e=e.source,t=t||"",function r(n,o){return n?(o=o...
  function we (line 1) | function we(){this.ruler=new C;for(var e=0;e<xe.length;e++)this.ruler.pu...
  function Ce (line 1) | function Ce(e){var t=e.trim().toLowerCase();return-1===(t=g(t)).indexOf(...
  function De (line 1) | function De(e,t,r){this.src=t,this.env=r,this.options=e.options,this.tok...
  function _e (line 1) | function _e(e,t){"string"!=typeof e&&(t=e,e="default"),t&&null!=t.linkif...
  function Be (line 1) | function Be(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var ...
  function qe (line 1) | function qe(e,t){for(var r=e.length-1;r>=0;r--)!0===t(e[r])&&e.splice(r,1)}
  function Fe (line 1) | function Fe(e){throw new Error("Unhandled case for value: '"+e+"'")}
  function e (line 1) | function e(e){void 0===e&&(e={}),this.tagName="",this.attrs={},this.inne...
  function e (line 1) | function e(e){void 0===e&&(e={}),this.newWindow=!1,this.truncate={},this...
  function e (line 1) | function e(e){this.__jsduckDummyDocProp=null,this.matchedText="",this.of...
  function Re (line 1) | function Re(e,t){function r(){this.constructor=e}Le(e,t),e.prototype=nul...
  function t (line 1) | function t(t){var r=e.call(this,t)||this;return r.email="",r.email=t.ema...
  function t (line 1) | function t(t){var r=e.call(this,t)||this;return r.serviceName="",r.hasht...
  function t (line 1) | function t(t){var r=e.call(this,t)||this;return r.serviceName="twitter",...
  function t (line 1) | function t(t){var r=e.call(this,t)||this;return r.number="",r.plusSign=!...
  function t (line 1) | function t(t){var r=e.call(this,t)||this;return r.url="",r.urlMatchType=...
  function t (line 1) | function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.loca...
  function h (line 1) | function h(e){"m"===e?A(1):r.test(e)&&A()}
  function f (line 1) | function f(e,t){":"===e?r.test(t)?(l=2,c=new it(Ne({},c,{hasMailtoPrefix...
  function g (line 1) | function g(e){"."===e?l=3:"@"===e?l=4:r.test(e)||y()}
  function d (line 1) | function d(e){"."===e?y():"@"===e?y():r.test(e)?l=2:y()}
  function m (line 1) | function m(e){nt.test(e)?l=5:y()}
  function b (line 1) | function b(e){"."===e?l=7:"-"===e?l=6:nt.test(e)||x()}
  function v (line 1) | function v(e){"-"===e||"."===e?x():nt.test(e)?l=5:x()}
  function k (line 1) | function k(e){"."===e||"-"===e?x():nt.test(e)?(l=5,c=new it(Ne({},c,{has...
  function A (line 1) | function A(e){void 0===e&&(e=2),l=e,c=new it({idx:u})}
  function y (line 1) | function y(){l=0,c=i}
  function x (line 1) | function x(){if(c.hasDomainDot){var r=e.slice(c.idx,u);/[-.]$/.test(r)&&...
  function e (line 1) | function e(){}
  function t (line 1) | function t(t){var r,n=e.call(this,t)||this;return n.stripPrefix={scheme:...
  function t (line 1) | function t(t){var r=e.call(this,t)||this;return r.serviceName="twitter",...
  function t (line 1) | function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.matc...
  function t (line 1) | function t(t){var r=e.call(this,t)||this;return r.serviceName="twitter",...
  function ht (line 1) | function ht(e,t){for(var r=t.onOpenTag,n=t.onCloseTag,o=t.onText,s=t.onC...
  function e (line 1) | function e(t){void 0===t&&(t={}),this.version=e.version,this.urls={},thi...
  function mt (line 1) | function mt(e){return/^<\/a\s*>/i.test(e)}
  function bt (line 1) | function bt(){var e=[],t=new gt({stripPrefix:!1,url:!0,email:!0,replaceF...
  function vt (line 1) | function vt(e){var t,r,n,o,s,i,a,u,l,c,p,h,f,g,d=e.tokens,m=null;for(r=0...

FILE: plugins/tiddlywiki/markdown-legacy/wrapper.js
  function parseAsBoolean (line 18) | function parseAsBoolean(tiddlerName) {
  function findTagWithType (line 52) | function findTagWithType(nodes, startPoint, type, level) {
  function convertNodes (line 75) | function convertNodes(remarkableTree, isStartOfInline) {

FILE: plugins/tiddlywiki/markdown/markdown-it-katex.js
  function isValidDelim (line 23) | function isValidDelim(state, pos) {
  function math_inline (line 55) | function math_inline(state, silent) {
  function math_inline_block (line 118) | function math_inline_block(state, silent) {

FILE: plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js
  function encodeTWMark (line 22) | function encodeTWMark(match) {
  function escapeTWMarks (line 27) | function escapeTWMarks(s) {
  function render_code_inline (line 34) | function render_code_inline(tokens,idx,options,env,slf) {
  function render_code_block (line 41) | function render_code_block(tokens,idx) {
  function render_fence (line 45) | function render_fence(tokens,idx) {
  function render_paragraph_open (line 51) | function render_paragraph_open(tokens,idx) {
  function render_paragraph_close (line 55) | function render_paragraph_close(tokens,idx) {
  function render_footnote_ref (line 60) | function render_footnote_ref(tokens,idx,options,env,slf) {
  function render_footnote_open (line 71) | function render_footnote_open(tokens,idx,options,env,slf) {
  function render_footnote_anchor (line 80) | function render_footnote_anchor(tokens,idx,options,env,slf) {
  function render_text_special (line 92) | function render_text_special(tokens,idx) {
  function render_tw_expr (line 99) | function render_tw_expr(tokens,idx) {
  function render_token_attrs (line 106) | function render_token_attrs(token) {
  function findNextMatch (line 126) | function findNextMatch(ruleinfo,pos) {
  function tw_macrocallinline (line 136) | function tw_macrocallinline(state,silent) {
  function tw_transcludeinline (line 154) | function tw_transcludeinline(state,silent) {
  function tw_filteredtranscludeinline (line 172) | function tw_filteredtranscludeinline(state,silent) {
  function tw_block (line 196) | function tw_block(state,startLine,endLine,silent) {
  function tw_image (line 246) | function tw_image(state,silent) {
  function tw_prettylink (line 285) | function tw_prettylink(state,silent) {
  function tw_prettyextlink (line 323) | function tw_prettyextlink(state,silent) {
  function extendHtmlInline (line 360) | function extendHtmlInline(origRule) {
  function extendParseLinkLabel (line 393) | function extendParseLinkLabel(origFunc) {
  function extendInlineParse (line 406) | function extendInlineParse(thisArg,origFunc,twInlineRules) {
  function wikify (line 422) | function wikify(state) {

FILE: plugins/tiddlywiki/markdown/wrapper.js
  function parseAsBoolean (line 14) | function parseAsBoolean(tiddlerName) {
  function setupWikiRules (line 33) | function setupWikiRules(pluginOptions) {
  function createMarkdownEngine (line 96) | function createMarkdownEngine(markdownItOptions, pluginOptions) {
  function deactivateLinks (line 134) | function deactivateLinks(tree) {
  function isCodified (line 149) | function isCodified(node) {
  function decodeEntities (line 156) | function decodeEntities(s) {
  function parseStringLiteralExtended (line 162) | function parseStringLiteralExtended(source,pos) {
  function processWikiTree (line 183) | function processWikiTree(tree,hasWikiLinkRule) {
  function MarkdownParser (line 213) | function MarkdownParser(type,text,options) {

FILE: plugins/tiddlywiki/pluginlibrary/libraryserver.js
  function removePrefix (line 67) | function removePrefix(string,prefix) {
  function httpGet (line 76) | function httpGet(url,callback) {

FILE: plugins/tiddlywiki/qrcode/barcodereader.js
  function onScanSuccess (line 48) | function onScanSuccess(decodedText, decodedResult) {
  function onScanFailure (line 55) | function onScanFailure(errorMessage) {

FILE: plugins/tiddlywiki/qrcode/files/qrcode/qrcode.js
  function qrPolynomial (line 912) | function qrPolynomial(num, shift) {

FILE: plugins/tiddlywiki/qrcode/makeqr.js
  function generateQrCode (line 44) | function generateQrCode(text,options) {

FILE: plugins/tiddlywiki/railroad/files/railroad-diagrams.js
  function subclassOf (line 28) | function subclassOf(baseClass, superClass) {
  function unnull (line 33) | function unnull(/* children */) {
  function determineGaps (line 37) | function determineGaps(outer, inner) {
  function wrapString (line 47) | function wrapString(value) {
  function SVG (line 52) | function SVG(name, attrs, text) {
  function FakeSVG (line 63) | function FakeSVG(tagName, attrs, text){
  function Path (line 114) | function Path(x,y,attrs) {
  function Diagram (line 166) | function Diagram(twOptions, items) {
  function Sequence (line 230) | function Sequence(items) {
  function Choice (line 262) | function Choice(normal, items) {
  function Optional (line 325) | function Optional(item, skip) {
  function OneOrMore (line 335) | function OneOrMore(item, rep, wantArrow) {
  function ZeroOrMore (line 386) | function ZeroOrMore(item, rep, skip, wantArrow) {
  function Start (line 391) | function Start(type) {
  function End (line 413) | function End(type) {
  function Terminal (line 434) | function Terminal(text) {
  function NonTerminal (line 456) | function NonTerminal(text) {
  function Comment (line 478) | function Comment(text) {
  function Skip (line 499) | function Skip() {
  function Link (line 513) | function Link(item,options) {

FILE: plugins/tiddlywiki/savetrail/savetrail.js
  function SaveTrailSyncAdaptor (line 81) | function SaveTrailSyncAdaptor(options) {
  function saveTiddlerFile (line 123) | function saveTiddlerFile(tiddler,options) {

FILE: plugins/tiddlywiki/sax/files/lib/sax.js
  function SAXParser (line 45) | function SAXParser (strict, opt) {
  function F (line 84) | function F () {}
  function checkBufferLength (line 99) | function checkBufferLength (parser) {
  function clearBuffers (line 135) | function clearBuffers (parser) {
  function flushBuffers (line 141) | function flushBuffers (parser) {
  function createStream (line 172) | function createStream (strict, opt) {
  function SAXStream (line 176) | function SAXStream (strict, opt) {
  function isWhitespace (line 286) | function isWhitespace (c) {
  function isQuote (line 290) | function isQuote (c) {
  function isAttribEnd (line 294) | function isAttribEnd (c) {
  function isMatch (line 298) | function isMatch (regex, c) {
  function notMatch (line 302) | function notMatch (regex, c) {
  function emit (line 623) | function emit (parser, event, data) {
  function emitNode (line 627) | function emitNode (parser, nodeType, data) {
  function closeText (line 632) | function closeText (parser) {
  function textopts (line 638) | function textopts (opt, text) {
  function error (line 644) | function error (parser, er) {
  function end (line 657) | function end (parser) {
  function strictFail (line 672) | function strictFail (parser, message) {
  function newTag (line 681) | function newTag (parser) {
  function qname (line 694) | function qname (name, attribute) {
  function attrib (line 709) | function attrib (parser) {
  function openTag (line 761) | function openTag (parser, selfClosing) {
  function closeTag (line 840) | function closeTag (parser) {
  function parseEntity (line 911) | function parseEntity (parser) {
  function beginWhiteSpace (line 944) | function beginWhiteSpace (parser, c) {
  function charAt (line 957) | function charAt (chunk, i) {
  function write (line 965) | function write (chunk) {

FILE: plugins/tiddlywiki/share/rawmarkup.js
  function actionProceed (line 90) | function actionProceed() {
  function actionCancel (line 97) | function actionCancel() {
  function removeWarningBanner (line 104) | function removeWarningBanner() {

FILE: plugins/tiddlywiki/text-slicer/modules/slicer.js
  function Slicer (line 22) | function Slicer(options) {

FILE: plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js
  function TiddlyWebAdaptor (line 15) | function TiddlyWebAdaptor(options) {

FILE: plugins/tiddlywiki/tw2parser/classictransclude.js
  function getsectionname (line 14) | function getsectionname(title) {
  function getslicename (line 23) | function getslicename(title) {
  function gettiddlername (line 32) | function gettiddlername(title) {

FILE: plugins/tiddlywiki/tw2parser/parameteradapter.js
  function getsectionname (line 19) | function getsectionname(title) {
  function getslicename (line 28) | function getslicename(title) {
  function gettiddlername (line 37) | function gettiddlername(title) {

FILE: plugins/tiddlywiki/twitter-archivist/archivist.js
  function TwitterArchivist (line 14) | function TwitterArchivist(options) {
  function TwitterArchivistSourceNodeJs (line 195) | function TwitterArchivistSourceNodeJs(options) {
  function TwitterArchivistSourceBrowser (line 222) | function TwitterArchivistSourceBrowser(options) {
  function arrayBufferToBase64 (line 271) | function arrayBufferToBase64(arrayBuffer) {
  function AsyncIteratorForEach (line 324) | async function AsyncIteratorForEach(iter, callback) {

FILE: plugins/tiddlywiki/wikitext-serialize/rules/conditional.js
  function serializeElseIf (line 16) | function serializeElseIf(listNode) {

FILE: plugins/tiddlywiki/wikitext-serialize/rules/list.js
  function isListNode (line 18) | function isListNode(node) {
  function findMarker (line 27) | function findMarker(listTag, itemTag) {
  function serializeList (line 37) | function serializeList(node, markerPrefix) {

FILE: plugins/tiddlywiki/wikitext-serialize/rules/transcludeblock.js
  function handleTransclude (line 13) | function handleTransclude(transcludeNode) {
  function handleTiddler (line 39) | function handleTiddler(tiddlerNode) {

FILE: plugins/tiddlywiki/wikitext-serialize/utils/parsetree.js
  function initSerializers (line 12) | function initSerializers(Parser) {

FILE: plugins/tiddlywiki/xmldom/files/dom-parser.js
  function DOMParser (line 1) | function DOMParser(options){
  function buildErrorHandler (line 31) | function buildErrorHandler(errorImpl,domBuilder,locator){
  function DOMHandler (line 66) | function DOMHandler() {
  function position (line 69) | function position(locator,node){
  function _locator (line 185) | function _locator(l){
  function _toString (line 190) | function _toString(chars,start,length){
  function appendElement (line 237) | function appendElement (hander,node) {

FILE: plugins/tiddlywiki/xmldom/files/dom.js
  function copy (line 8) | function copy(src,dest){
  function _extends (line 17) | function _extends(Class,Super){
  function DOMException (line 74) | function DOMException(code, message) {
  function NodeList (line 94) | function NodeList() {
  function LiveNodeList (line 120) | function LiveNodeList(node,refresh){
  function _updateLiveList (line 125) | function _updateLiveList(list){
  function NamedNodeMap (line 147) | function NamedNodeMap() {
  function _findNodeIndex (line 150) | function _findNodeIndex(list,node){
  function _addNamedNode (line 157) | function _addNamedNode(el,list,newAttr,oldAttr){
  function _removeNamedNode (line 172) | function _removeNamedNode(el,list,attr){
  function DOMImplementation (line 258) | function DOMImplementation(/* Object */ features) {
  function Node (line 313) | function Node() {
  function _xmlEncoder (line 412) | function _xmlEncoder(c){
  function _visitNode (line 428) | function _visitNode(node,callback){
  function Document (line 441) | function Document(){
  function _onAddAttribute (line 443) | function _onAddAttribute(doc,el,newAttr){
  function _onRemoveAttribute (line 451) | function _onRemoveAttribute(doc,el,newAttr,remove){
  function _onUpdateChild (line 459) | function _onUpdateChild(doc,el,newChild){
  function _removeChild (line 487) | function _removeChild(parentNode,child){
  function _insertBefore (line 506) | function _insertBefore(parentNode,newChild,nextChild){
  function _appendSingleChild (line 546) | function _appendSingleChild(parentNode,newChild){
  function Element (line 714) | function Element() {
  function Attr (line 808) | function Attr() {
  function CharacterData (line 814) | function CharacterData() {
  function Text (line 845) | function Text() {
  function Comment (line 864) | function Comment() {
  function CDATASection (line 872) | function CDATASection() {
  function DocumentType (line 881) | function DocumentType() {
  function Notation (line 886) | function Notation() {
  function Entity (line 891) | function Entity() {
  function EntityReference (line 896) | function EntityReference() {
  function DocumentFragment (line 901) | function DocumentFragment() {
  function ProcessingInstruction (line 908) | function ProcessingInstruction() {
  function XMLSerializer (line 912) | function XMLSerializer(){}
  function nodeSerializeToString (line 917) | function nodeSerializeToString(isHtml,nodeFilter){
  function needNamespaceDefine (line 938) | function needNamespaceDefine(node,isHTML, visibleNamespaces) {
  function serializeToString (line 967) | function serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){
  function importNode (line 1095) | function impo
Copy disabled (too large) Download .json
Condensed preview — 8546 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (25,987K chars).
[
  {
    "path": ".gitattributes",
    "chars": 150,
    "preview": "boot/** -linguist-generated\n**/tiddlywiki.files linguist-language=JSON\n**/tiddlywiki.info linguist-language=JSON\n**/plug"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 1413,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve TiddlyWiki 5\ntitle: \"[Report] \"\ntype: report\n\n---\n\n<!-- R"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 283,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Discuss feature request\n    url: https://github.com/TiddlyWiki/Tidd"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 602,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for TiddlyWiki 5\ntitle: \"[IDEA]\"\nlabels: ''\nassignees: ''\ntype: idea\n\n-"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE/pull_request_template.md",
    "chars": 1105,
    "preview": "---\nname: Pull Request\nabout: Propose a change to TiddlyWiki 5\ntitle: \"\"\nlabels: ''\nassignees: ''\n\n---\n\n**Is your PR rel"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 3474,
    "preview": "on:\n  pull_request:\n  push:\n    branches:\n      - master\n      - tiddlywiki-com\nenv:\n  NODE_VERSION: \"22\"\njobs:\n  test:\n"
  },
  {
    "path": ".github/workflows/cla-check.yml",
    "chars": 1381,
    "preview": "name: Check CLA Signature\non:\n  pull_request_target:\n    types:\n      - opened\n      - reopened\n    paths-ignore:\n      "
  },
  {
    "path": ".github/workflows/cla-signed.yml",
    "chars": 2483,
    "preview": "name: CLA Signed\n\non:\n  pull_request_target:\n    types:\n      - opened\n      - closed\n    paths:\n      - 'licenses/cla-i"
  },
  {
    "path": ".github/workflows/eslint.yml",
    "chars": 854,
    "preview": "name: ESLint\n\non:\n  pull_request:\n    types: [opened, synchronize, reopened]\n  workflow_dispatch:\n\nconcurrency:\n  group:"
  },
  {
    "path": ".github/workflows/pr-check-build-size.yml",
    "chars": 1747,
    "preview": "name: Calculate PR build size\non:\n  pull_request_target:\n    types: [opened, reopened, synchronize]\n    paths:\n      - '"
  },
  {
    "path": ".github/workflows/pr-comment-build-size.yml",
    "chars": 819,
    "preview": "name: Comment on PR build size (Trusted workflow)\n\non:\n  workflow_dispatch:\n    inputs:\n      pr_number:\n        require"
  },
  {
    "path": ".github/workflows/pr-validation.yml",
    "chars": 976,
    "preview": "name: PR Validation\n\non:\n  pull_request_target:\n    types: [opened, reopened, synchronize]\n\npermissions:\n  contents: rea"
  },
  {
    "path": ".gitignore",
    "chars": 137,
    "preview": ".DS_Store\n.c9/\n.vs/\n.vscode/\n.claude/\ntmp/\noutput/\nnode_modules/\n/test-results/\n/playwright-report/\n/playwright/.cache/\n"
  },
  {
    "path": ".jshintignore",
    "chars": 259,
    "preview": "plugins/tiddlywiki/browser-sniff/files\nplugins/tiddlywiki/codemirror/files/\nplugins/tiddlywiki/d3/files/\nplugins/tiddlyw"
  },
  {
    "path": ".npmignore",
    "chars": 42,
    "preview": ".DS_Store\n.c9/\ntmp/\noutput/\nnode_modules/\n"
  },
  {
    "path": "bin/build-site.sh",
    "chars": 14943,
    "preview": "#!/bin/bash\n\n# Build all tiddlywiki.com assets.\n\n# Default to the current version number for building the plugin library"
  },
  {
    "path": "bin/build-tw-org.sh",
    "chars": 2764,
    "preview": "#!/bin/bash\n\n# Build tiddlywiki.org assets.\n\n# Default to the version of TiddlyWiki installed in this repo\n\nif [  -z \"$T"
  },
  {
    "path": "bin/ci-pre-build.sh",
    "chars": 331,
    "preview": "#!/bin/bash\n\n# Install latest current release from npm\n# (we need to force because otherwise npm will refuse to install "
  },
  {
    "path": "bin/ci-push.sh",
    "chars": 464,
    "preview": "#!/bin/bash\n\n# Push output back to GitHub\n\n# Exit script immediately if any command fails\nset -e\n\ncd output\ngit config -"
  },
  {
    "path": "bin/ci-test.sh",
    "chars": 312,
    "preview": "#!/bin/bash\n\n# test TiddlyWiki5 for tiddlywiki.com\n\nnode ./tiddlywiki.js \\\n\t./editions/test \\\n\t--verbose \\\n\t--version \\\n"
  },
  {
    "path": "bin/clean.sh",
    "chars": 89,
    "preview": "#!/bin/bash\n\n# Remove any output files\n\nfind . -regex \"^./editions/.*/output/.*\" -delete\n"
  },
  {
    "path": "bin/get-plugin-library-version-number",
    "chars": 550,
    "preview": "#!/usr/bin/env node\n\n// Extract raw version number from package.json (without the optional \"-prerelease\" suffix)\n\nif(!pr"
  },
  {
    "path": "bin/ginsu.cmd",
    "chars": 322,
    "preview": "@echo off\n\nrem Split the tiddlers out of a TiddlyWiki file\n\nnode .\\tiddlywiki.js ^\n\t.\\editions\\empty ^\n\t--verbose ^\n\t--l"
  },
  {
    "path": "bin/ginsu.sh",
    "chars": 322,
    "preview": "#!/bin/bash\n\n# Split the tiddlers out of a TiddlyWiki file\n\nnode ./tiddlywiki.js \\\n\t./editions/empty \\\n\t--verbose \\\n\t--l"
  },
  {
    "path": "bin/lazy.cmd",
    "chars": 262,
    "preview": "@echo off\n\nrem serve TiddlyWiki5 over HTTP with lazily loaded images\n\nrem Optional parameter is the username for signing"
  },
  {
    "path": "bin/lazy.sh",
    "chars": 268,
    "preview": "#!/bin/bash\n\n# serve TiddlyWiki5 over HTTP with lazily loaded images\n\n# Optional parameter is the username for signing e"
  },
  {
    "path": "bin/npm-publish.sh",
    "chars": 69,
    "preview": "#!/bin/bash\n\n# publish to npm\n\n./bin/clean.sh\n\nnpm publish || exit 1\n"
  },
  {
    "path": "bin/optimise-svgs.js",
    "chars": 2056,
    "preview": "#!/usr/bin/env node\n\n/*\nOptimise the SVGs in ./core/images using SVGO from https://github.com/svg/svgo\n\nInstall SVGO wit"
  },
  {
    "path": "bin/quick-bld.sh",
    "chars": 153,
    "preview": "#!/bin/bash\n\n# Abbreviated build script for building prerelease\n\ntiddlywiki editions/prerelease \\\n\t--verbose \\\n\t--build "
  },
  {
    "path": "bin/readme-bld.sh",
    "chars": 454,
    "preview": "#!/bin/bash\n\n# Build readmes from corresponding tiddlers\n\n# Default to the version of TiddlyWiki installed in this repo\n"
  },
  {
    "path": "bin/readme.md",
    "chars": 2711,
    "preview": "<h1 class=\"\">Script Files</h1><p>The <a class=\"tc-tiddlylink tc-tiddlylink-resolves\" href=\"https://tiddlywiki.com/static"
  },
  {
    "path": "bin/serve.cmd",
    "chars": 2428,
    "preview": ":: This script allows you to serve different TiddlyWiki editions. \n::\n:: It respects a TW_SERVE_EDITION_PATH environment"
  },
  {
    "path": "bin/serve.sh",
    "chars": 2970,
    "preview": "#!/bin/bash\n#\n# This script allows you to serve different TiddlyWiki editions.\n#\n# It respects a TW_SERVE_EDITION_PATH e"
  },
  {
    "path": "bin/tankbld.cmd",
    "chars": 495,
    "preview": "@echo off\n\nrem build the Tank edition of TiddlyWiki\n\nrem See https://tank.peermore.com\n\nrem Open the tank edition in TW5"
  },
  {
    "path": "bin/tankbld.sh",
    "chars": 488,
    "preview": "#!/bin/bash\n\n# build the Tank edition of TiddlyWiki\n\n# See https://tank.peermore.com\n\n# Open the tank edition in TW5 and"
  },
  {
    "path": "bin/test.cmd",
    "chars": 277,
    "preview": "@echo off\n\nrem test TiddlyWiki5 for tiddlywiki.com\n\nrem Run the test edition to run the node.js tests and to generate te"
  },
  {
    "path": "bin/test.sh",
    "chars": 373,
    "preview": "#!/bin/bash\n\n# test TiddlyWiki5 for tiddlywiki.com\n\n# Run the test edition to run the node.js tests and to generate test"
  },
  {
    "path": "bin/update-translation-from-html-file.sh",
    "chars": 637,
    "preview": "#!/bin/bash\n\n# Process translation updates made via the translators edition\n\n# ./bin/update-translation-from-html-file.s"
  },
  {
    "path": "bin/verbump.sh",
    "chars": 350,
    "preview": "#!/bin/bash\n\n# Bump to a new version number\n\nif [ -z \"$1\" ]\n  then\n    echo \"Missing version (eg '5.1.38-prerelease')\"\n "
  },
  {
    "path": "boot/boot.css.tid",
    "chars": 1242,
    "preview": "title: $:/boot/boot.css\ntype: text/css\n\n/*\nBasic styles used before we boot up the parsing engine\n*/\n\n/*\nError message a"
  },
  {
    "path": "boot/boot.js",
    "chars": 90891,
    "preview": "/*\\\ntitle: $:/boot/boot.js\ntype: application/javascript\n\nThe main boot kernel for TiddlyWiki. This single file creates a"
  },
  {
    "path": "boot/bootprefix.js",
    "chars": 3795,
    "preview": "/*\\\ntitle: $:/boot/bootprefix.js\ntype: application/javascript\n\nThis file sets up the globals that need to be available w"
  },
  {
    "path": "boot/sjcl.js",
    "chars": 25378,
    "preview": "\"use strict\";var sjcl={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(a){this.toS"
  },
  {
    "path": "boot/tiddlywiki.files",
    "chars": 586,
    "preview": "{\n\t\"tiddlers\": [\n\t\t{\n\t\t\t\"file\": \"sjcl.js\",\n\t\t\t\"fields\": {\n\t\t\t\t\"title\": \"$:/library/sjcl.js\",\n\t\t\t\t\"type\": \"application/ja"
  },
  {
    "path": "code-of-conduct.md",
    "chars": 2434,
    "preview": "<p>This community exists because TiddlyWiki is more useful when people share and work together.</p><p>This community is "
  },
  {
    "path": "community/docs/Community Cards Caveats.tid",
    "chars": 252,
    "preview": "title: Community Cards Caveats\ncreated: 20250909171928024\nmodified: 20250909171928024\n\n''Please note that [[Community Ca"
  },
  {
    "path": "community/docs/Community Cards.tid",
    "chars": 503,
    "preview": "title: Community Cards\ntags: Community\nmodified: 20250909171928024\ncreated: 20250909171928024\n\nThe purpose of Community "
  },
  {
    "path": "community/docs/Displaying Community Cards.tid",
    "chars": 673,
    "preview": "title: Displaying Community Cards\ntags: [[Community Cards]]\nmodified: 20250909171928024\ncreated: 20250909171928024\n\n!! C"
  },
  {
    "path": "community/docs/Submitting a Community Card.tid",
    "chars": 2522,
    "preview": "title: Submitting a Community Card\ntags: [[Community Cards]]\nmodified: 20250909171928024\ncreated: 20250909171928024\n\nAny"
  },
  {
    "path": "community/people/Arlen22.tid",
    "chars": 1491,
    "preview": "title: @Arlen22\ntags: Community/Person\nfullname: Arlen Beiler\nfirst-sighting: 2011-06-20\ntalk.tiddlywiki.org: arlen22\ngi"
  },
  {
    "path": "community/people/ChristianByron.tid",
    "chars": 1725,
    "preview": "title: @Christian_Byron\ntags: Community/Person\nfullname: Christian Byron\ntalk.tiddlywiki.org: Christian_Byron\ngithub: ce"
  },
  {
    "path": "community/people/EricShulman.tid",
    "chars": 5203,
    "preview": "title: @ericshulman\ntags: Community/Person Community/Team/Contributors\nfullname: Eric Shulman\nfirst-sighting: 2005-06-21"
  },
  {
    "path": "community/people/Jermolene.tid",
    "chars": 2375,
    "preview": "title: @Jermolene\ntags: Community/Person\nfullname: Jeremy Ruston\nfirst-sighting: 2004-09-20\ntalk.tiddlywiki.org: jeremyr"
  },
  {
    "path": "community/people/LinOnetwo.tid",
    "chars": 2293,
    "preview": "avatar: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAgICAgJCAkKCgkNDgwODRMREBARExwUFhQWFBwrGx8bGx8bKyYuJSMlLiZENS8vNUROQj5CTl9VVV93"
  },
  {
    "path": "community/people/MotovunJack.tid",
    "chars": 2057,
    "preview": "title: @MotovunJack\ntags: Community/Person Community/Robot\nfullname: Motovun Jack\nfirst-sighting: 2012-01-12\ngithub: Mot"
  },
  {
    "path": "community/people/PMario.tid",
    "chars": 4254,
    "preview": "avatar: UklGRiwIAABXRUJQVlA4WAoAAAAwAAAAPwAAPwAASUNDUCACAAAAAAIgbGNtcwRAAABtbnRyR1JBWVhZWiAH6QALAAoACwADAAZhY3NwTVNGVAAA"
  },
  {
    "path": "community/people/SaqImtiaz.tid",
    "chars": 18678,
    "preview": "title: @saqimtiaz\ntags: Community/Person\nfullname: Saq Imtiaz\nfirst-sighting: 2006-02-25\ntalk.tiddlywiki.org: saqimtiaz\n"
  },
  {
    "path": "community/people/kjharcombe.tid",
    "chars": 14219,
    "preview": "title: @kjharcombe\ntags: Community/Person\nfullname: Keiran harcombe\nfirst-sighting: 2026-03-16\ntalk.tiddlywiki.org: kjha"
  },
  {
    "path": "community/project/TiddlyWiki People.tid",
    "chars": 572,
    "preview": "title: TiddlyWiki People\nmodified: 20250909171928024\ncreated: 20250909171928024\ntags: Community About\n\nMembers of the Ti"
  },
  {
    "path": "community/project/TiddlyWiki Project.tid",
    "chars": 378,
    "preview": "title: TiddlyWiki Project\nmodified: 20250909171928024\ncreated: 20250909171928024\ntags: Community About\n\nThe TiddlyWiki P"
  },
  {
    "path": "community/project/Vacant Positions.tid",
    "chars": 187,
    "preview": "title: Vacant Positions\ntags: [[TiddlyWiki Project]]\n\nIf you are interested in volunteering to help the project please g"
  },
  {
    "path": "community/project/teams/Core Team.tid",
    "chars": 240,
    "preview": "title: Core Team\ntags: Community/Team\nmodified: 20250909171928024\ncreated: 20250909171928024\nleader: @Jermolene\nteam: @s"
  },
  {
    "path": "community/project/teams/Developer Experience Team.tid",
    "chars": 1002,
    "preview": "title: Developer Experience Team\ntags: Community/Team\nmodified: 20251109200632671\ncreated: 20251109200632671\nleader: @pm"
  },
  {
    "path": "community/project/teams/Infrastructure Team.tid",
    "chars": 586,
    "preview": "created: 20250909171928024\nmodified: 20251110133437795\ntags: Community/Team\nleader: @kjharcombe \nteam: @MotovunJack\ntitl"
  },
  {
    "path": "community/project/teams/MultiWikiServer Team.tid",
    "chars": 224,
    "preview": "title: MultiWikiServer Team\ntags: Community/Team\nmodified: 20250909171928024\ncreated: 20250909171928024\nleader: @Arlen22"
  },
  {
    "path": "community/project/teams/Project Team.tid",
    "chars": 559,
    "preview": "title: Project Team\ntags: Community/Team\nmodified: 20250909171928024\ncreated: 20250909171928024\nicon: $:/tiddlywiki/comm"
  },
  {
    "path": "community/project/teams/Quality Assurance Team.tid",
    "chars": 394,
    "preview": "title: Quality Assurance Team\ncreated: 20251112125742296\nmodified: 20251112125742296\ntags: Community/Team\nteam: \nleader:"
  },
  {
    "path": "community/project/teams/Succession Team.tid",
    "chars": 748,
    "preview": "title: Succession Team\ntags: Community/Team\nmodified: 20250909171928024\ncreated: 20250909171928024\nleader: @Jermolene\nte"
  },
  {
    "path": "community/project/teams/TiddlyWiki Newsletter Team.tid",
    "chars": 694,
    "preview": "title: TiddlyWiki Newsletter Team\ntags: Community/Team\nmodified: 20251219090709874\ncreated: 20250909171928024\nleader: @C"
  },
  {
    "path": "community/project/teams/tagCommunityTeam.tid",
    "chars": 254,
    "preview": "title: Community/Team\nmodified: 20250909171928024\ncreated: 20250909171928024\nlist: [[Project Team]] [[Core Team]] [[Docu"
  },
  {
    "path": "community/readme.md",
    "chars": 249,
    "preview": "# Community Records and Resources\n\nThese raw tiddlers comprise the community records and resources for the TiddlyWiki pr"
  },
  {
    "path": "community/tools/cards/DefaultColourMappings.multids",
    "chars": 616,
    "preview": "title: $:/config/DefaultColourMappings/\n\ncommunity-card-background: #ffffee\ncommunity-card-foreground: #441111\ncommunity"
  },
  {
    "path": "community/tools/cards/Procedures.tid",
    "chars": 7633,
    "preview": "title: $:/tiddlywiki/community/cards/Procedures\ntags: $:/tags/Global\n\n\\procedure community-card-display-jpeg-field(field"
  },
  {
    "path": "community/tools/cards/Styles.tid",
    "chars": 4242,
    "preview": "title: $:/tiddlywiki/community/cards/Styles\ntags: $:/tags/Stylesheet\n\n.tc-community-card {\n\tdisplay: flex;\n\tflex-directi"
  },
  {
    "path": "community/tools/cards/ViewTemplateBodyCascade.tid",
    "chars": 287,
    "preview": "title: $:/tiddlywiki/community/cards/ViewTemplateBodyCascade\ntags: $:/tags/ViewTemplateBodyFilter\nlist-before:\n\n[tag[Com"
  },
  {
    "path": "community/tools/cards/ViewTemplateBodyTemplatePerson.tid",
    "chars": 142,
    "preview": "title: $:/tiddlywiki/community/cards/ViewTemplateBodyTemplatePerson\n\n<$transclude $variable=\"community-card-person\" titl"
  },
  {
    "path": "community/tools/cards/ViewTemplateBodyTemplateTeam.tid",
    "chars": 139,
    "preview": "title: $:/tiddlywiki/community/cards/ViewTemplateBodyTemplateTeam\n\n<$transclude $variable=\"community-card-team\" title=<<"
  },
  {
    "path": "community/tools/icons/person.tid",
    "chars": 895,
    "preview": "title: $:/tiddlywiki/community/icons/person\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<"
  },
  {
    "path": "community/tools/icons/project-team.tid",
    "chars": 5044,
    "preview": "title: $:/tiddlywiki/community/icons/project-team\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> hei"
  },
  {
    "path": "community/tools/icons/team.tid",
    "chars": 2379,
    "preview": "title: $:/tiddlywiki/community/icons/team\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<si"
  },
  {
    "path": "contributing.md",
    "chars": 9376,
    "preview": "<h1 class=\"\">Contributing to <a class=\"tc-tiddlylink tc-tiddlylink-resolves\" href=\"https://tiddlywiki.com/static/TiddlyW"
  },
  {
    "path": "core/acknowledgements.tid",
    "chars": 420,
    "preview": "title: $:/Acknowledgements\n\nTiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascri"
  },
  {
    "path": "core/copyright.tid",
    "chars": 1659,
    "preview": "title: $:/core/copyright.txt\ntype: text/plain\n\nTiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nC"
  },
  {
    "path": "core/icon.tid",
    "chars": 1739,
    "preview": "title: $:/core/icon\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> viewBox=\"0 0 128 "
  },
  {
    "path": "core/images/add-comment.tid",
    "chars": 551,
    "preview": "title: $:/core/images/add-comment\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/advanced-search-button.tid",
    "chars": 650,
    "preview": "title: $:/core/images/advanced-search-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<"
  },
  {
    "path": "core/images/auto-height.tid",
    "chars": 955,
    "preview": "title: $:/core/images/auto-height\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/blank.tid",
    "chars": 173,
    "preview": "title: $:/core/images/blank\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc"
  },
  {
    "path": "core/images/bold.tid",
    "chars": 1097,
    "preview": "title: $:/core/images/bold\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc-"
  },
  {
    "path": "core/images/cancel-button.tid",
    "chars": 738,
    "preview": "title: $:/core/images/cancel-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/chevron-down.tid",
    "chars": 716,
    "preview": "title: $:/core/images/chevron-down\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/chevron-left.tid",
    "chars": 714,
    "preview": "title: $:/core/images/chevron-left\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/chevron-right.tid",
    "chars": 721,
    "preview": "title: $:/core/images/chevron-right\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/chevron-up.tid",
    "chars": 711,
    "preview": "title: $:/core/images/chevron-up\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> clas"
  },
  {
    "path": "core/images/clone-button.tid",
    "chars": 942,
    "preview": "title: $:/core/images/clone-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/close-all-button.tid",
    "chars": 1032,
    "preview": "title: $:/core/images/close-all-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>"
  },
  {
    "path": "core/images/close-button.tid",
    "chars": 623,
    "preview": "title: $:/core/images/close-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/close-others-button.tid",
    "chars": 599,
    "preview": "title: $:/core/images/close-others-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<si"
  },
  {
    "path": "core/images/copy-clipboard.tid",
    "chars": 1181,
    "preview": "title: $:/core/images/copy-clipboard\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> "
  },
  {
    "path": "core/images/delete-button.tid",
    "chars": 594,
    "preview": "title: $:/core/images/delete-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/discord.tid",
    "chars": 1082,
    "preview": "title: $:/core/images/discord\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\""
  },
  {
    "path": "core/images/done-button.tid",
    "chars": 466,
    "preview": "title: $:/core/images/done-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/down-arrow.tid",
    "chars": 438,
    "preview": "title: $:/core/images/down-arrow\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> clas"
  },
  {
    "path": "core/images/download-button.tid",
    "chars": 797,
    "preview": "title: $:/core/images/download-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>>"
  },
  {
    "path": "core/images/edit-button.tid",
    "chars": 1016,
    "preview": "title: $:/core/images/edit-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/erase.tid",
    "chars": 509,
    "preview": "title: $:/core/images/erase\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc"
  },
  {
    "path": "core/images/excise.tid",
    "chars": 980,
    "preview": "title: $:/core/images/excise\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"t"
  },
  {
    "path": "core/images/export-button.tid",
    "chars": 745,
    "preview": "title: $:/core/images/export-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/file.tid",
    "chars": 678,
    "preview": "title: $:/core/images/file\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc-"
  },
  {
    "path": "core/images/fixed-height.tid",
    "chars": 509,
    "preview": "title: $:/core/images/fixed-height\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/fold-all-button.tid",
    "chars": 854,
    "preview": "title: $:/core/images/fold-all-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>>"
  },
  {
    "path": "core/images/fold-button.tid",
    "chars": 790,
    "preview": "title: $:/core/images/fold-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/fold-others-button.tid",
    "chars": 1206,
    "preview": "title: $:/core/images/fold-others-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<siz"
  },
  {
    "path": "core/images/folder.tid",
    "chars": 912,
    "preview": "title: $:/core/images/folder\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"t"
  },
  {
    "path": "core/images/full-screen-button.tid",
    "chars": 446,
    "preview": "title: $:/core/images/full-screen-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<siz"
  },
  {
    "path": "core/images/github.tid",
    "chars": 1083,
    "preview": "title: $:/core/images/github\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"t"
  },
  {
    "path": "core/images/gitter.tid",
    "chars": 242,
    "preview": "title: $:/core/images/gitter\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"t"
  },
  {
    "path": "core/images/globe.tid",
    "chars": 2107,
    "preview": "title: $:/core/images/globe\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc"
  },
  {
    "path": "core/images/heading-1.tid",
    "chars": 471,
    "preview": "title: $:/core/images/heading-1\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class"
  },
  {
    "path": "core/images/heading-2.tid",
    "chars": 1304,
    "preview": "title: $:/core/images/heading-2\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class"
  },
  {
    "path": "core/images/heading-3.tid",
    "chars": 1538,
    "preview": "title: $:/core/images/heading-3\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class"
  },
  {
    "path": "core/images/heading-4.tid",
    "chars": 420,
    "preview": "title: $:/core/images/heading-4\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class"
  },
  {
    "path": "core/images/heading-5.tid",
    "chars": 1220,
    "preview": "title: $:/core/images/heading-5\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class"
  },
  {
    "path": "core/images/heading-6.tid",
    "chars": 1830,
    "preview": "title: $:/core/images/heading-6\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class"
  },
  {
    "path": "core/images/help.tid",
    "chars": 1103,
    "preview": "title: $:/core/images/help\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc-"
  },
  {
    "path": "core/images/home-button.tid",
    "chars": 699,
    "preview": "title: $:/core/images/home-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/import-button.tid",
    "chars": 827,
    "preview": "title: $:/core/images/import-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/info-button.tid",
    "chars": 518,
    "preview": "title: $:/core/images/info-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/input-button.tid",
    "chars": 632,
    "preview": "title: $:/core/images/input-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/italic.tid",
    "chars": 242,
    "preview": "title: $:/core/images/italic\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"t"
  },
  {
    "path": "core/images/language.tid",
    "chars": 2059,
    "preview": "title: $:/core/images/language\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class="
  },
  {
    "path": "core/images/layout-button.tid",
    "chars": 405,
    "preview": "title: $:/core/images/layout-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/left-arrow.tid",
    "chars": 490,
    "preview": "created: 20150315234410875\nmodified: 20150315235324760\ntags: $:/tags/Image\ntitle: $:/core/images/left-arrow\n\n\\parameters"
  },
  {
    "path": "core/images/line-width.tid",
    "chars": 511,
    "preview": "title: $:/core/images/line-width\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> clas"
  },
  {
    "path": "core/images/link.tid",
    "chars": 1097,
    "preview": "title: $:/core/images/link\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc-"
  },
  {
    "path": "core/images/linkify.tid",
    "chars": 617,
    "preview": "title: $:/core/images/linkify\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\""
  },
  {
    "path": "core/images/list-bullet.tid",
    "chars": 750,
    "preview": "title: $:/core/images/list-bullet\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/list-number.tid",
    "chars": 2377,
    "preview": "title: $:/core/images/list-number\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/list.tid",
    "chars": 1554,
    "preview": "title: $:/core/images/list\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc-"
  },
  {
    "path": "core/images/locked-padlock.tid",
    "chars": 569,
    "preview": "title: $:/core/images/locked-padlock\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> "
  },
  {
    "path": "core/images/mail.tid",
    "chars": 739,
    "preview": "title: $:/core/images/mail\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc-"
  },
  {
    "path": "core/images/mastodon.tid",
    "chars": 1441,
    "preview": "title: $:/core/images/mastodon\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class="
  },
  {
    "path": "core/images/menu-button.tid",
    "chars": 325,
    "preview": "title: $:/core/images/menu-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/minus-button.tid",
    "chars": 437,
    "preview": "title: $:/core/images/minus-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/mono-block.tid",
    "chars": 12890,
    "preview": "title: $:/core/images/mono-block\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> clas"
  },
  {
    "path": "core/images/mono-line.tid",
    "chars": 2013,
    "preview": "title: $:/core/images/mono-line\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class"
  },
  {
    "path": "core/images/network-activity.tid",
    "chars": 3550,
    "preview": "title: $:/core/images/network-activity\ntags: $:/tags/Image\n\n<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-network-acti"
  },
  {
    "path": "core/images/new-button.tid",
    "chars": 459,
    "preview": "title: $:/core/images/new-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> clas"
  },
  {
    "path": "core/images/new-here-button.tid",
    "chars": 1315,
    "preview": "title: $:/core/images/new-here-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>>"
  },
  {
    "path": "core/images/new-image-button.tid",
    "chars": 1468,
    "preview": "title: $:/core/images/new-image-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>"
  },
  {
    "path": "core/images/new-journal-button.tid",
    "chars": 1133,
    "preview": "title: $:/core/images/new-journal-button\ntags: $:/tags/Image\n\n<$parameters size=\"22pt\" day=<<now \"DD\">>><svg width=<<siz"
  },
  {
    "path": "core/images/opacity.tid",
    "chars": 1148,
    "preview": "title: $:/core/images/opacity\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\""
  },
  {
    "path": "core/images/open-window.tid",
    "chars": 713,
    "preview": "title: $:/core/images/open-window\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/options-button.tid",
    "chars": 1333,
    "preview": "title: $:/core/images/options-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> "
  },
  {
    "path": "core/images/paint.tid",
    "chars": 879,
    "preview": "title: $:/core/images/paint\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc"
  },
  {
    "path": "core/images/palette.tid",
    "chars": 1194,
    "preview": "title: $:/core/images/palette\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\""
  },
  {
    "path": "core/images/permalink-button.tid",
    "chars": 914,
    "preview": "title: $:/core/images/permalink-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>"
  },
  {
    "path": "core/images/permaview-button.tid",
    "chars": 1351,
    "preview": "title: $:/core/images/permaview-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>"
  },
  {
    "path": "core/images/picture.tid",
    "chars": 1041,
    "preview": "title: $:/core/images/picture\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\""
  },
  {
    "path": "core/images/plugin-generic-language.tid",
    "chars": 853,
    "preview": "title: $:/core/images/plugin-generic-language\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height="
  },
  {
    "path": "core/images/plugin-generic-plugin.tid",
    "chars": 864,
    "preview": "title: $:/core/images/plugin-generic-plugin\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<"
  },
  {
    "path": "core/images/plugin-generic-theme.tid",
    "chars": 1133,
    "preview": "title: $:/core/images/plugin-generic-theme\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<s"
  },
  {
    "path": "core/images/plus-button.tid",
    "chars": 489,
    "preview": "title: $:/core/images/plus-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/preview-closed.tid",
    "chars": 977,
    "preview": "title: $:/core/images/preview-closed\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> "
  },
  {
    "path": "core/images/preview-open.tid",
    "chars": 729,
    "preview": "title: $:/core/images/preview-open\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/print-button.tid",
    "chars": 711,
    "preview": "title: $:/core/images/print-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/quote.tid",
    "chars": 723,
    "preview": "title: $:/core/images/quote\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc"
  },
  {
    "path": "core/images/refresh-button.tid",
    "chars": 662,
    "preview": "title: $:/core/images/refresh-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> "
  },
  {
    "path": "core/images/right-arrow.tid",
    "chars": 440,
    "preview": "title: $:/core/images/right-arrow\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/rotate-left.tid",
    "chars": 529,
    "preview": "title: $:/core/images/rotate-left\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/save-button-dynamic.tid",
    "chars": 1398,
    "preview": "title: $:/core/images/save-button-dynamic\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<si"
  },
  {
    "path": "core/images/save-button.tid",
    "chars": 791,
    "preview": "title: $:/core/images/save-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/size.tid",
    "chars": 484,
    "preview": "title: $:/core/images/size\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc-"
  },
  {
    "path": "core/images/spiral.tid",
    "chars": 2015,
    "preview": "title: $:/core/images/spiral\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"t"
  },
  {
    "path": "core/images/stamp.tid",
    "chars": 552,
    "preview": "title: $:/core/images/stamp\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc"
  },
  {
    "path": "core/images/standard-layout.tid",
    "chars": 1051,
    "preview": "title: $:/core/images/standard-layout\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>>"
  },
  {
    "path": "core/images/star-filled.tid",
    "chars": 565,
    "preview": "title: $:/core/images/star-filled\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/storyview-classic.tid",
    "chars": 699,
    "preview": "title: $:/core/images/storyview-classic\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size"
  },
  {
    "path": "core/images/storyview-pop.tid",
    "chars": 845,
    "preview": "title: $:/core/images/storyview-pop\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/storyview-zoomin.tid",
    "chars": 482,
    "preview": "title: $:/core/images/storyview-zoomin\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>"
  },
  {
    "path": "core/images/strikethrough.tid",
    "chars": 1867,
    "preview": "title: $:/core/images/strikethrough\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/subscript.tid",
    "chars": 1356,
    "preview": "title: $:/core/images/subscript\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class"
  },
  {
    "path": "core/images/superscript.tid",
    "chars": 1359,
    "preview": "title: $:/core/images/superscript\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cla"
  },
  {
    "path": "core/images/tag-button.tid",
    "chars": 1091,
    "preview": "title: $:/core/images/tag-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> clas"
  },
  {
    "path": "core/images/theme-button.tid",
    "chars": 1134,
    "preview": "title: $:/core/images/theme-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/timestamp-off.tid",
    "chars": 781,
    "preview": "title: $:/core/images/timestamp-off\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/timestamp-on.tid",
    "chars": 909,
    "preview": "title: $:/core/images/timestamp-on\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/tip.tid",
    "chars": 1089,
    "preview": "title: $:/core/images/tip\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc-i"
  },
  {
    "path": "core/images/transcludify.tid",
    "chars": 4480,
    "preview": "title: $:/core/images/transcludify\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> cl"
  },
  {
    "path": "core/images/twitter.tid",
    "chars": 871,
    "preview": "title: $:/core/images/twitter\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\""
  },
  {
    "path": "core/images/underline.tid",
    "chars": 729,
    "preview": "title: $:/core/images/underline\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class"
  },
  {
    "path": "core/images/unfold-all-button.tid",
    "chars": 860,
    "preview": "title: $:/core/images/unfold-all-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size"
  },
  {
    "path": "core/images/unfold-button.tid",
    "chars": 808,
    "preview": "title: $:/core/images/unfold-button\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> c"
  },
  {
    "path": "core/images/unlocked-padlock.tid",
    "chars": 658,
    "preview": "title: $:/core/images/unlocked-padlock\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>"
  },
  {
    "path": "core/images/up-arrow.tid",
    "chars": 483,
    "preview": "created: 20150316000544368\nmodified: 20150316000831867\ntags: $:/tags/Image\ntitle: $:/core/images/up-arrow\n\n\\parameters ("
  },
  {
    "path": "core/images/video.tid",
    "chars": 626,
    "preview": "title: $:/core/images/video\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc"
  },
  {
    "path": "core/images/warning.tid",
    "chars": 496,
    "preview": "title: $:/core/images/warning\ntags: $:/tags/Image\n\n\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\""
  },
  {
    "path": "core/language/en-GB/Buttons.multids",
    "chars": 8117,
    "preview": "title: $:/language/Buttons/\n\nAdvancedSearch/Caption: advanced search\nAdvancedSearch/Hint: Advanced search\nCancel/Caption"
  },
  {
    "path": "core/language/en-GB/ControlPanel.multids",
    "chars": 17299,
    "preview": "title: $:/language/ControlPanel/\n\nAdvanced/Caption: Advanced\nAdvanced/Hint: Internal information about this TiddlyWiki\nA"
  },
  {
    "path": "core/language/en-GB/Dates.multids",
    "chars": 2365,
    "preview": "title: $:/language/\n\nDate/DaySuffix/1: st\nDate/DaySuffix/2: nd\nDate/DaySuffix/3: rd\nDate/DaySuffix/4: th\nDate/DaySuffix/"
  }
]

// ... and 8346 more files (download for full content)

About this extraction

This page contains the full source code of the TiddlyWiki/TiddlyWiki5 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 8546 files (22.9 MB), approximately 6.5M tokens, and a symbol index with 2210 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!