[dreamwidth/dreamwidth] e99dca: Update the
Jun. 10th, 2026 05:31 amBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: e99dca7ebc7913a29891f49c248a54c5454d9cdb https://github.com/dreamwidth/dreamwidth/commit/e99dca7ebc7913a29891f49c248a54c5454d9cdb Author: Mark Smith mark@dreamwidth.org Date: 2026-06-10 (Wed, 10 Jun 2026)
Changed paths: M doc/BML-MIGRATION.md
Log Message:
Update the BML→TT migration guide for the Foundation-restyle era (#3583)
- Update the BML→TT migration guide for the Foundation-restyle era
Replace the "no visible change" scope rule with the current one (faithful behavior, markup restyled to Foundation, validated with before/after screenshots) and document the patterns and gotchas learned from the /tools/memories and /manage/moodthemes conversions: Foundation grid/button recipes, form.checkbox semantics, recursive BLOCK/INCLUDE templates, extracting inline head JS to htdocs/js (and the build-static.sh concat-URL gotcha), ML keys referenced from shared Perl modules, porting-time hardening wins, per-worker cache staleness during live testing, and a new §13 on taking and embedding screenshots with bin/dev/screenshot.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- Fix inaccuracies found while auditing the migration guide
Verified every claim in the guide against the code; three were wrong or stale. The cheatsheet said error.tt takes a string-or-arrayref message, but the template prints [% message %] raw, so an arrayref renders as ARRAY(0x…). The deadphrases section predated the texttool changes: strings now auto-load from shipped .text files (no load step), and deadphrases.dat is applied by the explicit texttool.pl deadphrases command, not by load. And site.root / site.imgroot are not defined in the site.* constants namespace at all — they silently render as empty strings, which happens to produce working root-relative URLs; the guide now says so instead of presenting them as real values. Also points at t/ml.t from the pre-push checklist.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- Correct the site.root note: real per-request value, empty only in dev
The previous commit claimed site.root / site.imgroot are undefined and render as empty strings. Wrong: the site.* namespace has two sources -- static keys are compile-time constants ($site_constants), and root, imgroot, jsroot, shoproot, and statroot are set per-request by DW::Template::Plugin (unresolvable constants-namespace keys defer to a runtime stash lookup, which finds the plugin's hash). They only render empty in the dev container because the dev config blanks $LJ::SITEROOT et al; on production site.root is the absolute base URL.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
[dreamwidth/dreamwidth] 65fd01: Seed the dev container with fixed test accounts an...
Jun. 10th, 2026 01:46 amBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 65fd0137eae77e1276ba8f9093b864f98e32e07e https://github.com/dreamwidth/dreamwidth/commit/65fd0137eae77e1276ba8f9093b864f98e32e07e Author: Mark Smith mark@dreamwidth.org Date: 2026-06-10 (Wed, 10 Jun 2026)
Changed paths: M .devcontainer/setup.sh A bin/dev/seed-testdata
Log Message:
Seed the dev container with fixed test accounts and content (#3579)
- Seed the dev container with fixed test accounts and content
Add bin/dev/seed-testdata, an idempotent Perl seeder that creates a small, constant set of accounts/content via the real DW APIs so the dev environment (and screenshots) have deterministic data to depend on. Wired into .devcontainer/setup.sh so every container is seeded on create; also runnable by hand (perl bin/dev/seed-testdata) and safe to re-run (skips anything that already exists, keyed on username).
Fixture set (shared password "dreamwidth"): - test_user personal; bio; public + access-only + private entries, tags on the public one, a comment from test_friend - test_friend personal; mutual circle (trust+watch) with test_user; one entry - test_paid personal; premium paid time; one entry - test_comm community; test_user maintainer, test_friend member; one entry
Uses LJ::Test's t_post_fake_entry/t_post_fake_comm_entry, LJ::User->create_personal /create_community, add_edge, LJ::Comment->create, and DW::Pay::add_paid_time, so the data stays valid as the underlying code evolves. The seeder is named without a .pl extension (like the other bin/dev tools) so it's outside tidyall/00-compile.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- Seed varied tags across entries
Tag all three of test_user's entries (reusing names so usage counts differ: test=3, personal=2, others=1, across public/access/private) plus the friend, paid, and community entries, so the /manage/tags histogram, per-tag security breakdown, and tag pages have realistic data. Adds a tag_entry helper.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
[dreamwidth/dreamwidth] 383328: Add bin/dev/screenshot dev-server screenshot tool ...
Jun. 10th, 2026 01:46 amBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 383328592e5c59c4dfad94b7d49bda6807aa5dc9 https://github.com/dreamwidth/dreamwidth/commit/383328592e5c59c4dfad94b7d49bda6807aa5dc9 Author: Mark Smith mark@dreamwidth.org Date: 2026-06-10 (Wed, 10 Jun 2026)
Changed paths: A .claude/skills/screenshot-dev-page/SKILL.md A bin/dev/screenshot A bin/dev/screenshot.js
Log Message:
Add bin/dev/screenshot dev-server screenshot tool + skill (#3578)
bin/dev/screenshot renders a page from the local Starman dev server to a PNG with headless Google Chrome, for visually checking how a change looks (e.g. after a BML->TT migration). It self-bootstraps on first run: installs Chrome from Google's signed apt repo (per the packaging policy) and puppeteer-core into /opt/dw-screenshot, ensures Starman is up (--restart to pick up new routes), optionally logs in via /mobile/login (--user/--password) to capture authenticated pages, and writes a full-page PNG. bin/dev/screenshot.js is the puppeteer driver. Neither is .pl/.pm/.t so they're outside tidyall/00-compile.
.claude/skills/screenshot-dev-page documents the workflow for future sessions (run inside the devcontainer via docker exec, copy the PNG out, the Starman-restart and auth gotchas).
Co-authored-by: Claude Opus 4.8 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Open for 2026: Summer of the 69
Jun. 9th, 2026 11:14 pmContributions are open to all sorts of non-gen-AI works and content, from recs to fics to art to crafts to podfic to vids to just about anything legal you can think of, and are open to all fandoms and original works. The fest features themes introduced weekly that themselves typically run for two weeks, to give participants some inspiration to work off of. There's also a comment meme in the style of old-fashioned kink memes, where you can prompt scenarios to your heart's content!
To learn more, go to
Come check it out!
celebrity20in20 Round 21
Jun. 9th, 2026 11:11 am
Link: Round 21 Sign Ups | Round 21 Themes
Description:
Schedule: Round 21 sign ups are open NOW. Icons are due June 28, 2026.
[dreamwidth/dreamwidth] 319f69: Auto-load ML strings from files on demand; make te...
Jun. 8th, 2026 12:40 amBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 319f69340bf7ba01c258ae77204e608d6e0437f8 https://github.com/dreamwidth/dreamwidth/commit/319f69340bf7ba01c258ae77204e608d6e0437f8 Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/texttool.pl M cgi-bin/LJ/Lang.pm A t/ml.t
Log Message:
Auto-load ML strings from files on demand; make texttool load non-destructive (#3577)
- Auto-load ML strings from files on demand; stop load from deleting
Make the translation system populate itself from the shipped .text/.dat files
so deploying a web container (with new .tt/.text strings) is enough -- no
explicit texttool.pl load step is needed.
LJ::Lang::get_text: on a production server, when a general-domain string isn't in the database yet, read it from the source file (which already ships with the code) and persist it as the 'en' root with childrenlatest, so every language gets a fallback ml_latest row -- exactly what
texttool.pl makeusabledoes at load time, just on demand for one string. The write is best-effort (eval-guarded) so it can never break rendering. Dev servers are unchanged: they read straight from the files (no DB writes) so edits show immediately. All ML lookups funnel through get_text (the TT| mlfilter calls it directly; BML/$ML/error_ml reach it via the registered ml_getter hook), so this one change covers every page.LJ::Lang::set_text: keep the in-process %TXT_CACHE in step with memcache (set it for the written language, delete it for each child language walked), so a long-lived worker that had already cached a string as missing won't keep serving the stale miss after an auto-load.
texttool.pl: split dead-phrase removal out of poptext/load into a new, explicit
deadphrasescommand. load/poptext now only add and update text; they never delete. This lets a migration move keys (foo.bml.text -> foo.tt.text) and ship without the old keys being deleted from hosts still running the old code -- rundeadphraseslater, once the new code is everywhere, to retire them.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- Add t/ml.t covering the ML system basics and file auto-load
First real test coverage of LJ::Lang::get_text/get_text_multi/set_text: the set/get round trip, the cache-coherence fix (a set_text clears a previously cached miss), parent/child fallback via childrenlatest, and the new production auto-load-from-file behavior (dev reads the file without persisting; prod auto-loads and persists, materializing the child-language fallback row). The previous only language test (t/langdatfile.t) covered just the file parser.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
[dreamwidth/dreamwidth] 9cf0c4: Expand the
Jun. 7th, 2026 10:42 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 9cf0c4888aa7b3e09295314a6b54283aa2d3308f https://github.com/dreamwidth/dreamwidth/commit/9cf0c4888aa7b3e09295314a6b54283aa2d3308f Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M doc/BML-MIGRATION.md
Log Message:
Expand the BML→TT migration guide
Add the migrate/deprecate/leave decision section, the multi-value (get_all) and filter-in-expression template gotchas, the JS-escaping note, the Starman-restart caveat, and cheatsheet rows for the BML markup shortcuts, raw query strings, merged %FORM, bad_input, and requirepost; dedupe overlapping notes.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
[dreamwidth/dreamwidth] d9306e: Convert /manage/tags from BML to Template Toolkit ...
Jun. 7th, 2026 09:53 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: d9306edef801b3efb88c9522590f1a79e751c6bd https://github.com/dreamwidth/dreamwidth/commit/d9306edef801b3efb88c9522590f1a79e751c6bd Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/deadphrases.dat A cgi-bin/DW/Controller/Manage/Tags.pm R htdocs/manage/tags.bml R htdocs/manage/tags.bml.text A views/manage/tags.tt A views/manage/tags.tt.text
Log Message:
Convert /manage/tags from BML to Template Toolkit (#3574)
- Convert /manage/tags from BML to Template Toolkit
Move the tag-management page off BML to a DW::Controller plus a Template Toolkit view.
- cgi-bin/DW/Controller/Manage/Tags.pm registers /manage/tags (no_cache) and uses controller( anonymous => 0, authas => 1, form_auth => 1 ), so you can manage your own or a community's tags. It dispatches the page's several POST actions (add via the image submit, delete, rename, merge, show-posts redirect, save permission levels), collecting failures in a DW::FormErrors object, and builds the tag list, the usage histogram levels, and the permission-level select options for the template.
- views/manage/tags.tt reproduces the markup (every element id/class js/tags.js hooks is preserved), injects the ml.* label object and the per-tag JS array that js/tags.js reads, and sets the body onLoad=initTagPage() via sections.bodyopts.
- Resources (js/tags.js, stc/tags.css) load in the controller so the CSS can use $LJ::OLD_RES_PRIORITY. The 'tags disabled' message is now a self-contained .disabled key rather than borrowing /edittags.bml.disabled (edittags is already on TT). Old /manage/tags.bml.* keys are retired in deadphrases.dat.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- Fix multi-select tag actions reading only one selected tag
The tag <select ... > is multiple, so the form posts several tags=
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
[dreamwidth/dreamwidth] 5f7773: Convert /support/help from BML to Template Toolkit...
Jun. 7th, 2026 09:50 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 5f77732d3ba94d371cdb04f4ec589f134118a65a https://github.com/dreamwidth/dreamwidth/commit/5f77732d3ba94d371cdb04f4ec589f134118a65a Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/deadphrases.dat A cgi-bin/DW/Controller/Support/Help.pm R htdocs/support/help.bml R htdocs/support/help.bml.text A views/support/help.tt A views/support/help.tt.text
Log Message:
Convert /support/help from BML to Template Toolkit (#3576)
Move the support board to DW::Controller::Support::Help + views/support/help.tt. The controller does the state/category filtering, sorting, abstracts, status classification and point calc, and builds the per-request display rows and the dropdown option lists; the template renders the table, the filter form, and the mass close/move form (which posts to the already-migrated /support/actmulti with its checkboxes and ids/spcatid/ret fields plus form_auth). The page-local row CSS and the row-toggle JS move into the head section. The .bml.text moves to views/support/help.tt.text -- with the one .state.else.text value un-wrapped from BML tags -- and the old keys are deadphrased.
Co-authored-by: Claude Opus 4.8 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
[dreamwidth/dreamwidth] 2ef0d6: Mark the legacy entry-post page and its image popu...
Jun. 7th, 2026 09:44 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 2ef0d63c6a5675c071174157d512d1bd24f922da https://github.com/dreamwidth/dreamwidth/commit/2ef0d63c6a5675c071174157d512d1bd24f922da Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M htdocs/imgupload.bml M htdocs/update.bml
Log Message:
Mark the legacy entry-post page and its image popup as deprecated (#3575)
The new Template Toolkit entry editor (DW::Controller::Entry, /entry/new) supersedes the legacy /update post form for users in the "updatepage" beta. Add a deprecation note to the top of htdocs/update.bml and to htdocs/imgupload.bml (the "Insert Image" popup reachable only from the legacy editor's entry.js/InOb flow), to be removed once the new editor leaves beta. editjournal.bml is left alone -- its entry-picker view is still live and linked from the nav; only its per-entry edit form redirects to the new editor.
Co-authored-by: Claude Opus 4.8 (1M context) noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
[dreamwidth/dreamwidth] ea4e22: Convert /support/append_request from BML to Templa...
Jun. 7th, 2026 09:34 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: ea4e22afc7c6b820c2af73e9b9be1b5204deac3c https://github.com/dreamwidth/dreamwidth/commit/ea4e22afc7c6b820c2af73e9b9be1b5204deac3c Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/deadphrases.dat A cgi-bin/DW/Controller/Support/AppendRequest.pm R htdocs/support/append_request.bml R htdocs/support/append_request.bml.text A views/support/append_request.tt A views/support/append_request.tt.text
Log Message:
Convert /support/append_request from BML to Template Toolkit (#3573)
Move the support reply/action processor to DW::Controller::Support::AppendRequest + views/support/append_request.tt. It's the POST target behind the see_request reply form and the act.tt reopen form: it appends a user-facing and/or internal response and runs the staff actions (touch/untouch, change category, approve a screened response, change summary, bounce-to-email-and-close), then renders a confirmation with navigation links. Input errors map to error_ml (bml.requirepost for the POST guard); the page keeps the support auth-token model (anonymous => 1, no form_auth) since requesters reach it via emailed auth links. The .bml.text moves to views/support/append_request.tt.text and the old keys are deadphrased.
Co-authored-by: Claude Opus 4.8 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
[dreamwidth/dreamwidth] 9b6be8: Convert /customize/preview_redirect from BML to Te...
Jun. 7th, 2026 09:22 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 9b6be8bc35d9c70b295b93d9ee8f286f7bf22642 https://github.com/dreamwidth/dreamwidth/commit/9b6be8bc35d9c70b295b93d9ee8f286f7bf22642 Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/deadphrases.dat M cgi-bin/DW/Controller/Customize.pm R htdocs/customize/preview_redirect.bml R htdocs/customize/preview_redirect.bml.text A views/customize/preview_redirect.tt.text
Log Message:
Convert /customize/preview_redirect from BML to Template Toolkit (#3572)
Move the theme-preview redirect into DW::Controller::Customize (alongside /customize/viewuser) as preview_redirect_handler. It resolves a themeid or layoutid to a preview style for the viewer's own journal and redirects there with ?s2id=; the three error cases use error_ml. The page has no view of its own, so only the .bml.text strings move (to views/customize/preview_redirect.tt.text) and the old keys are deadphrased.
Co-authored-by: Claude Opus 4.8 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
[dreamwidth/dreamwidth] ac44b7: Convert /support/actmulti from BML to Template Too...
Jun. 7th, 2026 09:21 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: ac44b74b89f7a39d2dc10b0c971cd06a2eb6b581 https://github.com/dreamwidth/dreamwidth/commit/ac44b74b89f7a39d2dc10b0c971cd06a2eb6b581 Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/deadphrases.dat A cgi-bin/DW/Controller/Support/ActMulti.pm R htdocs/support/actmulti.bml R htdocs/support/actmulti.bml.text A views/support/actmulti.tt.text
Log Message:
Convert /support/actmulti from BML to Template Toolkit (#3570)
Move the support mass-action endpoint (close / close-with-points / move)
off BML to DW::Controller::Support::ActMulti. The page renders no markup
of its own (every path is a redirect or an error_ml/success_ml message),
so there is no .tt template -- just the controller plus the renamed
.tt.text. controller( form_auth => 1 ) replaces the manual login +
check_form_auth; the %s-format ret redirect and the close-with-points
overflow &mark= are preserved. The supportlog inserts are now
parameterized (shared logrequests helper), fixing a latent SQL
injection via category names in the move notice.
Co-authored-by: Claude Opus 4.8 (1M context) noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
[dreamwidth/dreamwidth] 1ef818: Convert /support/stock_answers from BML to TT + ex...
Jun. 7th, 2026 09:17 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 1ef818a800718b1fdb3b4c755f0ff027dd050c51 https://github.com/dreamwidth/dreamwidth/commit/1ef818a800718b1fdb3b4c755f0ff027dd050c51 Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/deadphrases.dat A cgi-bin/DW/Controller/Support/StockAnswers.pm M doc/BML-MIGRATION.md R htdocs/support/stock_answers.bml R htdocs/support/stock_answers.bml.text A views/support/stock_answers.tt A views/support/stock_answers.tt.text
Log Message:
Convert /support/stock_answers from BML to TT + expand migration guide (#3569)
- Convert /support/stock_answers from BML to Template Toolkit
Move the support stock-answers management page off BML to a DW::Controller plus a Template Toolkit view.
- cgi-bin/DW/Controller/Support/StockAnswers.pm registers /support/stock_answers (no_cache). Access control is per-category and can't use controller()'s global privcheck: viewing requires supportviewstocks on at least one category (LJ::Support::support_check_priv), editing requires admin:supporthelp (globally or for the category). The three POST actions (action:new / action:save / action:delete) validate, hit support_answers directly, and redirect back with added/saved/deleted flags (POST-then-redirect); form auth is handled by controller( form_auth => 1 ).
- views/support/stock_answers.tt renders two modes: the new-answer form and the category listing (with per-answer view links / edit forms). Uses form.select/textbox/textarea/submit; the delete button keeps its confirm() onclick.
- Prose and the previously-hardcoded labels (title, Category:, Show, Save Answer, the select placeholders) are pulled into views/support/stock_answers.tt.text alongside the existing strings; the old /support/stock_answers.bml.* keys are retired in deadphrases.dat.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- Expand BML-MIGRATION guide with patterns from recent conversions
Fold in lessons from the /manage/subscriptions/filters and /support/stock_answers conversions:
- controller: no_cache routing option; per-object priv checks (when global privcheck isn't enough); POST handling (multiple action:* buttons, POST-then-redirect vs POST-then-render); loading CSS/JS in the controller when an option needs a Perl global like $LJ::OLD_RES_PRIORITY.
- template: form control helpers (form.select flat items, form.submit with pass-through attributes like onclick); a 'client-side JS-driven pages' section (preserve element ids, inject DW.currentUser / DW.userIsPaid).
- strings: a note on untranslated hardcoded strings (judgment call), and a git-mv rename / leftover .bml.text caveat.
- cheatsheet rows for LJ::img, resource loading, and the LJ::html_* form helpers.
- two new worked examples (the filters and stock_answers pages).
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
[dreamwidth/dreamwidth] 12aa9a: Convert /support/act from BML to Template Toolkit ...
Jun. 7th, 2026 09:13 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 12aa9a7e5b6e270b26482f31fa7ba85d04ca2459 https://github.com/dreamwidth/dreamwidth/commit/12aa9a7e5b6e270b26482f31fa7ba85d04ca2459 Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/deadphrases.dat A cgi-bin/DW/Controller/Support/Act.pm R htdocs/support/act.bml R htdocs/support/act.bml.text A views/support/act.tt A views/support/act.tt.text
Log Message:
Convert /support/act from BML to Template Toolkit (#3571)
Migrate the support-request action page (touch/reopen, close, lock, unlock) to DW::Controller::Support::Act + views/support/act.tt. The page is reached via signed /support/act?action;spid;authcode[;splid] links from the support tooling and notification emails; the controller parses that semicolon command from the raw query string, performs the action via LJ::Support (answer point-crediting and the close DB write included), redirects where the BML did, and renders the result states. Whole-page errors use error_ml; the .bml.text moves to views/support/act.tt.text and the old keys are deadphrased.
Co-authored-by: Claude Opus 4.8 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
[dreamwidth/dreamwidth] 43a6c4: Convert the /mobile interface from BML to Template...
Jun. 7th, 2026 08:56 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 43a6c48a908f82086132ca7f3214e1ff76bdcb1f https://github.com/dreamwidth/dreamwidth/commit/43a6c48a908f82086132ca7f3214e1ff76bdcb1f Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/deadphrases.dat A cgi-bin/DW/Controller/Mobile/Index.pm A cgi-bin/DW/Controller/Mobile/Post.pm A cgi-bin/DW/Controller/Mobile/Read.pm R htdocs/mobile/index.bml R htdocs/mobile/index.bml.text R htdocs/mobile/login.bml.text R htdocs/mobile/post.bml R htdocs/mobile/post.bml.text R htdocs/mobile/read.bml R htdocs/mobile/read.bml.text A views/mobile/index.tt A views/mobile/index.tt.text A views/mobile/post.tt A views/mobile/post.tt.text A views/mobile/read.tt A views/mobile/read.tt.text
Log Message:
Convert the /mobile interface from BML to Template Toolkit (#3568)
Migrate the three remaining mobile BML pages -- /mobile/ (hub), /mobile/post, and /mobile/read -- to DW::Controller::Mobile::{Index,Post,Read} plus views/mobile/.tt, finishing the mobile interface conversion begun with /mobile/login. Page logic (protocol posting with lj-mood/lj-music parsing, reading-page content filters and pagination) moves into the controllers; the templates are standalone (no_sitescheme). The .bml.text string files are git mv'd to views/mobile/.tt.text and the retired .bml.* keys deadphrased. Also remove a leftover htdocs/mobile/login.bml.text -- an identical duplicate the /mobile/login conversion left behind, which kept its .bml.* keys alive. URLs and behavior are unchanged.
Co-authored-by: Claude Opus 4.8 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
[dreamwidth/dreamwidth] bf62bc: Convert /manage/subscriptions/filters from BML to ...
Jun. 7th, 2026 08:18 pmBranch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: bf62bcb8591bacad50f1d1a851663c2d7da2e1f4 https://github.com/dreamwidth/dreamwidth/commit/bf62bcb8591bacad50f1d1a851663c2d7da2e1f4 Author: Mark Smith mark@dreamwidth.org Date: 2026-06-08 (Mon, 08 Jun 2026)
Changed paths: M bin/upgrading/deadphrases.dat A cgi-bin/DW/Controller/Manage/Subscriptions/Filters.pm R htdocs/manage/subscriptions/filters.bml R htdocs/manage/subscriptions/filters.bml.text A views/manage/subscriptions/filters.tt A views/manage/subscriptions/filters.tt.text
Log Message:
Convert /manage/subscriptions/filters from BML to Template Toolkit (#3567)
Move the subscription-filters management page off BML to a DW::Controller plus a Template Toolkit view. The page is mostly a static shell driven by js/subfilters.js (AJAX to _rpccontentfilters), so the conversion is structural:
- cgi-bin/DW/Controller/Manage/Subscriptions/Filters.pm registers /manage/subscriptions/filters, requires login, and loads the jquery resource group plus stc/subfilters.css and js/subfilters.js (the resource loading stays in Perl so it can use $LJ::OLD_RES_PRIORITY).
- views/manage/subscriptions/filters.tt reproduces the markup verbatim -- every cf-* element id is preserved because subfilters.js hooks them -- and emits the DW.currentUser / DW.userIsPaid globals the JS needs from remote.user / remote.is_paid.
- Prose (intro text, the free-account warning, the filter-option explanatory phrases, the page title) is pulled into views/manage/subscriptions/filters.tt.text as ML strings; short control labels and dropdown option values are left hardcoded as they were.
- The old /manage/subscriptions/filters.bml.accessfilters key is retired in deadphrases.dat.
Co-authored-by: Claude Opus 4.8 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications