Everything below happened in one session, ending in ISE_v7_bundle_FINAL.zip (13 files). Andrew is inserting this into his own v7.0 build by hand β no install performed here, just code + manuals uploaded to the host and attached to the master ISE forum post.
.md/.txt/.text/.json to a much wider set of attachment types.word_index_misc.json): .md, .txt, .text, .json, .html. .html gets tags/scripts/ styles stripped (strip_html_for_indexing(), regex-based, decodes entities) before tokenising, so markup doesn't pollute the word index β checksum is still computed on the original raw file.FILENAME_ONLY_EXTENSIONS, no content read, no tokenising, no word-index entries β viewable via the file viewer, filename/topic searchable only): .py, .php, .js, .sh, .sql, .css, .c, .cpp, .java, .rb, .go, .rs, .pl, .xml, .yml/.yaml, .ini, .conf.read_text_file() now tries utf-8 β cp1252 β latin-1 in order (latin-1 never fails to decode something) instead of skip-and-log-only.misc_store.json entries now record source_encoding; the end-of-run summary splits "decoded via fallback" from genuinely unreadable files.* / ?)fnmatch-based scan over word-index keys and filename/topic strings when a term contains a wildcard character; plain terms keep the original fast exact/substring path.QueryParser.py β Tokeniser.py β ANDMatcher.py β IndexLookup.py, a different pipeline. Documented as the one remaining open item./help fake search keyword + footerβheader linkISE_help.html: one shared static page (in The_ISE_Project/, web-accessible per .htaccess) explaining real quote/wildcard behavior per source β including the confirmed ISE-posts single-quote gap (single-quoting a word returns nothing, since it's not treated as a phrase marker and the literal quote characters become part of the search string).query.strip().lower() == "/help" and copy that one file's content into whatever --html path the PHP bridge requested β no bridge/PHP changes needed.ise_theme.css β the one copy of all 15 theme palettes (14 named
<link rel="stylesheet">by all four HTML outputs instead of each embedding its own copy.
ise_theme.js β the one canonical theme list + setTheme()/ persistence logic; populates each page's <select id="themeSelect"> dynamically rather than four hand-written <option> lists.ise_theme_early.js β tiny render-blocking script loaded in <head> before ise_theme.css, applies the saved theme before first paint to prevent a visible flash-to-wrong-theme on load.78%/130% Verdana, Arial, Helvetica, sans-serif) across all three results pages β PDF and Misc had been defaulting to plain browser 16px with no explicit size set..htaccess updated: *.css and *.js given the same Allow from all treatment *.html already had.ISE_text_viewer.html: fetches the real dlattach URL via JS and renders it in a scrollable, monospace box β fetch() isn't subject to the Content-Disposition: attachment header that was forcing a download prompt on every "Open file" click, unlike a direct link click..mdβlmv / .htmlβbrowser 3-way split was tried and explicitly reverted β the lmv integration depended on LMVBBC.php source that wasn't available this session, so it was unverified guesswork and got dropped in favor of the uniform, fully-verified approach.)ISE_Manual.md and ISE_Python_Scripts_Manual.md updated throughout to match β extension scope, wildcard support, the /help feature, .html reclassification, the file-layout tree.ISE_help.html by URL instead of duplicating the explanation inline β one source of truth, not two that can drift.ISE_v7_bundle_FINAL.zip, 13 files)search.py β ISE (posts) search
PDFsearch.py β ISEpdf search
MiscSearch.py β ISEmisc search
MiscIndexer.py β ISEmisc index builder
ResultFormatter.py β ISE (posts) HTML output
ISE_help.html β shared /help page
ISE_text_viewer.html β ISEmisc scrollable file viewer
ise_theme.css β shared theme palette (15 themes)
ise_theme.js β shared theme list + switcher logic
ise_theme_early.js β render-blocking theme-flash fix
.htaccess β *.css/*.js/*.html allow rules
ISE_Manual.md β operator manual
ISE_Python_Scripts_Manual.md β Python scripts reference
All .py files compile clean. All new/edited HTML+JS+CSS manually verified (decode-chain logic, wildcard matching, URL construction).
ANDMatcher.py/IndexLookup.py/QueryParser.py/ Tokeniser.py (not uploaded this session) to implement against the same pattern used for PDF/Misc.ISE_help.html, ISE_text_viewer.html, ise_theme.css, ise_theme.js, ise_theme_early.js all need to sit directly in The_ISE_Project/, alongside search.py/PDFsearch.py/ MiscSearch.py β all three scripts locate the theme/help files via os.path.dirname(os.path.abspath(__file__)), so they must be siblings, not elsewhere in the tree.