[prev in list] [next in list] [prev in thread] [next in thread] 

List:       konq-e
Subject:    Re: Announcement: MIME handling added + other changes
From:       Matthew Sheats <sheats () los-alamos ! net>
Date:       2002-07-03 18:37:34
[Download RAW message or body]


	Could someone point me to where these modifications exist in 
source?  Looking at the CVS tree for konq/e nothing seems to have changed 
in months.

	Thanks, Matt Sheats


On Wed, 26 Jun 2002, Paul Chitescu wrote:

> Hi!
> 
> In the last day have added a bunch of things to konq/e. Since the README
> file is almost empty this mail will document the new features until the
> documentation gets updated.
> 
> New configuration options:
> 
>     --enable-ftp  Compile in support for the FTP protocol - it is no longer
> in by default (adds about 50K of code);
>     --enable-cgi  Compile support for external protocol handlers (adds about
> 4K of code);
>     --enable-localbar  Make part of the toolbar disableable (by JS) or in
> launch panel;
>     --enable-launchpanel  Support for a special frame (named _launch_panel)
> to be used as launcher - key F2;
>     --enable-fontsubs  Support for Qt font name substitution when not
> provided by some other environment.
> 
> Protocol handlers:
> 
> [Local Protocols]
> name1=/full-directory-path
> name2=*/full-directory-path
> name3=!/full-path-to-executable
> ...
> 
> The first form just prepends the path to the URL path and tries to retrive
> the file exactly as the file: protocol.
> 
> The second form does the same but for executable files it executes them and
> returns the generated output.
> 
> The third form runs the executable no matter what the URL is, allowing it to
> perform any operations.
> 
> The environment variables are set as follows:
> GATEWAY_INTERFACE=LOCAL-CGI/1.1
> PROTOCOL_NAME=name-of-protocol
> SCRIPT_NAME=/path-of-executable-relative-to-protocol-base
> SCRIPT_FILENAME=/full-path-of-executable
> REQUEST_METHOD=GET
> REQUEST_URI=original-URI
> 
> SERVER_NAME=server-name-if-provided
> SERVER_PORT=server-port-if-provided
> QUERY_STRING=query-string-if-provided
> PROTOCOL_USER_NAME=unencoded-user-name-if-provided
> PROTOCOL_USER_PASS=unencoded-password-if-provided
> PROTOCOL_REFERER=referrer-url-if-available
> 
> Before execution the working directory is changed to the directory of the
> executable (so you don't need absolute paths for data files). No parameters
> are sent on the command line. stderr and stdin are not redirected, only
> stdout.
> 
> Note that no headers (not even MIME type) are processed! The output must
> contain only data.
> 
> [External Protocols]
> name1=command
> name2=@partial-url
> ...
> 
> The first form starts a /bin/sh -c with the full URL as argument. The
> working directory is NOT set. It does exactly like currently documented on
> the web page.
> 
> The second form performs a redirection, it prepends the partial URL to the
> specified one (with protocol: removed) and tries to go to that address.
> 
> Handling MIME types:
> 
> [MIME Handlers]
> type1,type2,...,typeN=-
> type,...=@type-alias
> type,...=|new-type|/full-path-to-filter
> type,...=/full-path-to-executable
> type,...=*/full-path-to-executable
> ...
> 
> The first form (-) marks the MIME type as invalid.
> 
> The second form (@) perform aliasing, the data is interpreted as being of
> type type-alias. Think of it as a null (type change only) filter.
> 
> The third form (|...|) sets up a data filter. The incoming data is piped
> trough the external filter and later interpreted according to new-type.
> 
> The last two forms execute a /bin/sh -c with the URL as argument. The
> working directory is NOT set. The version with (*) does not disconnect from
> server but instead tries to pipe the incoming data to the application trough
> stdin.
> 
> You can set a handler to multiple protocols, add them separated by commas.
> Incoming types are matched in the following order: type/subtype, type/*,
> */subtype, */*
> 
> Data path is as follows:
> protocol -> [filter|alias] -> {executable|browser}
> 
> While it's possible to add code to chain filters this is not currently
> implemented.
> 
> Font substitution:
> 
> [Font Substitutions]
> name1=replacement1
> name2=replacement2
> ...
> 
> 
> Examples:
> 
> [Local Protocols]
> short=/usr/local/konqe/shortcuts
> about=*/usr/local/konqe/about
> cgi=*/usr/local/konqe/cgi-bin
> mailbox=!/usr/local/konqe/mailbox-convert.cgi
> 
> [External Protocols]
> exec=/usr/local/konqe/exe-wrapper
> mailto=@file:/usr/local/konqe/mail-form.html?from=
> gg=@http://www.google.com/search?q=
> 
> [MIME Handlers]
> text/plain,text/source-code=|text/html|/usr/local/konqe/text2html.sh
> application/gzip=|text/html|/bin/zcat
> text/xhtml,text/x-html=@text/html
> application/mp3=@audio/mpeg
> application/octet-stream=/usr/local/konqe/wget-wrapper
> application/*,video/*=-
> audio/mpeg,audio/mp3,audio/x-mp3=*/usr/local/konqe/madplay-wrapper.sh
> 
> [Font Substitutions]
> arial=Caliban
> courier=Monospace
> 
> 
> WARNING!!!
> The data filter and execution with pipe are implemented using non-blocking
> IO in the same thread as the UI and are not quite stable. I just didn't want
> to create yet another job type and thread. Please experiment with the
> applications you intend to use this way. There should be no problem if these
> can consume the data fast enough but applications like audio/video players
> will cause trouble.
> 
> Needless to say that thorough testing is required. Try to build with
> combinations of configuration options. If enabled, see how CGI, filtering
> and piped execution work.
> 
> 
> Regards,
> 
> Paul
> 
> --
>  Paul Chitescu
>  pchitescu@null.ro   http://pchitescu.null.ro/   ICQ:22641673
>  Any spammers will be painfully squeezed into /dev/null
> 
> 
> _______________________________________________
> konq-e mailing list
> konq-e@mail.kde.org
> http://mail.kde.org/mailman/listinfo/konq-e
> 
> 

_______________________________________________
konq-e mailing list
konq-e@mail.kde.org
http://mail.kde.org/mailman/listinfo/konq-e
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic