Can't you just use one of hooks (e.g., eww-after-render-hook) where you inspect the URL and if it's .org, just change the mode?
This should be trivial to do, I think. Jean Louis <bugs@gnu.support> writes: > This wish request is related to Emacs EWW and Org mode. > > Please make EWW recognize Org file when served by WWW server. Currently > it does not recognize the MIME type text/x-org and opens the file as > text, it does not invoke the org mode. In my opinion, it should. > > Inspect following file by using lynx: > > $ lynx -head https://gnu.support/files/tmp/example.org > > uHTTP/1.1 200 OK > Server: nginx/1.14.2 > Date: Tue, 25 Oct 2022 12:04:26 GMT > Content-Type: text/x-org > Content-Length: 364 > Last-Modified: Tue, 25 Oct 2022 11:58:22 GMT > Connection: close > ETag: "6357cf5e-16c" > Accept-Ranges: bytes > > One can see that Content-Type is text/x-org > > My expectation is that EWW opens the Org file served by WWW server in > Org mode. But it doesn't. Can this be done? > > This will open opportunity to directly serve Org files by using WWW > servers and to browse such files through Emacs, meaning, bunch of notes, > tasks and similar may be kept online, with or without protection and > directly accessed by Emacs. It becomes new area or WWO or World Wide Org > environment. > > > > In GNU Emacs 29.0.50 (build 7, x86_64-pc-linux-gnu, X toolkit, cairo > version 1.17.6, Xaw3d scroll bars) of 2022-10-10 built on > protected.rcdrun.com > Repository revision: ed436db1320339862fad5ac754a6ec42de06c766 > Repository branch: master > Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 > System Description: Parabola GNU/Linux-libre > > Configured using: > 'configure --with-x-toolkit=lucid' > > Configured features: > ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG > JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY > PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS > WEBP X11 XAW3D XDBE XIM XINPUT2 XPM LUCID ZLIB > > Important settings: > value of $LC_ALL: en_US.UTF-8 > value of $LANG: de_DE.UTF-8 > value of $XMODIFIERS: @im=exwm-xim > locale-coding-system: utf-8-unix > > Major mode: Message > > Minor modes in effect: > mml-mode: t > tooltip-mode: t > global-eldoc-mode: t > show-paren-mode: t > electric-indent-mode: t > mouse-wheel-mode: t > tool-bar-mode: t > menu-bar-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-mode: t > blink-cursor-mode: t > line-number-mode: t > auto-fill-function: message-do-auto-fill > transient-mark-mode: t > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > abbrev-mode: t > > Load-path shadows: > None found. > > Features: > (shadow sort emacsbug mail-extr org-timer org-colview org-clock > org-attach org-id org-archive org-agenda org-refile ol-eww eww xdg > url-queue thingatpt mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus > nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig > gnus-sum shr pixel-fill kinsoku url-file svg dom browse-url url > url-proxy url-privacy url-expand url-methods url-history url-cookie > generate-lisp-file url-domsuf url-util url-parse auth-source cl-seq > eieio eieio-core cl-macs url-vars gnus-group gnus-undo gnus-start > gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo > parse-time gnus-spec gnus-int gnus-range message sendmail mailcap > yank-media puny rfc822 mml mml-sec password-cache epa derived epg > rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 > rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus > nnheader gnus-util text-property-search mail-utils range mm-util > mail-prsvr wid-edit ol-docview doc-view filenotify jka-compr image-mode > exif dired dired-loaddefs ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi > reporter org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro > org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-osc > ansi-color ring org-list org-faces org-entities noutline outline icons > org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic json map > byte-opt gv bytecomp byte-compile cconv bibtex iso8601 time-date subr-x > ol rx org-keys oc org-compat advice org-macs org-loaddefs format-spec > find-func cal-menu calendar cal-loaddefs cl-loaddefs cl-lib rmc > iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks > lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd > tool-bar dnd fontset image regexp-opt fringe tabulated-list replace > newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar > rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock > font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq > simple cl-generic indonesian philippine cham georgian utf-8-lang > misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms > cp51932 hebrew greek romanian slovak czech european ethiopic indian > cyrillic chinese composite emoji-zwj charscript charprop case-table > epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button > loaddefs faces cus-face macroexp files window text-properties overlay > sha1 md5 base64 format env code-pages mule custom widget keymap > hashtable-print-readable backquote threads dbusbind inotify lcms2 > dynamic-setting system-font-setting font-render-setting cairo x-toolkit > xinput2 x multi-tty make-network-process emacs) > > Memory information: > ((conses 16 180979 11753) > (symbols 48 19853 2) > (strings 32 68758 1519) > (string-bytes 1 2167162) > (vectors 16 37547) > (vector-slots 8 408250 18213) > (floats 8 277 76) > (intervals 56 424 0) > (buffers 1000 12)) > > -- > Jean > > Take action in Free Software Foundation campaigns: > https://www.fsf.org/campaigns > > In support of Richard M. Stallman > https://stallmansupport.org/