* John Magolske b79...@gmail.com [120814 23:02]:
I'm looking for a way to pipe the HTML of a page open in ELinks to
another application without having to re-download the page.
I have a ELinks mapping script that automates saving a web-page
to text -- with two keypresses the HTML is converted to text and
automatically opened in Vim for editing saving to an appropriate
location. Very handy, but this approach uses URI passing and %c,
which involves re-downloading the HTML source over the net.
[...]
What I'd like to be able to do is pipe the source of an open page
through `elinks -dump` without an internet connection, and without
having to manually save it somewhere first.
After reading a few helpful threads [1] from the archives of this list
and looking over the contrib/lua/hooks.lua file, I pieced together a
solution which seems to work fairly well. Not having much experience
with Lua, it's quite possible this can be more correct/clean. Any
suggestions for improvement are welcome. Might be time to pick up the
Programming in Lua book...
The relevant bits from my ~/.elinks/hooks.lua file:
-- Convert HTML to plaintext open file in Vim
function save_to_text ()
-- See if we can obtain the local document.
local doc = current_document()
if doc then
-- Create a temporary file
local tmp = tmpname ()
-- Write document into the temporary file.
writeto (tmp) write (doc) writeto()
-- convert HTML to plaintext and open Vim in a new tmux window
execute(
elinks -dump -no-references -no-numbering ..tmp.. | ..tmp...txt
;\
echo \\n\n[saved on: `date +%Y\/%m\/%d\\ %a\\ %k:%M\\ %Z` ]\
..tmp...txt ;\
echo ..current_url ().. ..tmp...txt;\
tmux new-window -n vim-elink \vim \..tmp...txt)
-- Tell elinks to delete after this function.
table.insert (tmp_files, tmp)
end
end
-- Convert HTML to markdown open file in Vim
function save_to_markd ()
-- See if we can obtain the local document.
local doc = current_document()
if doc then
-- Create a temporary file
local tmp = tmpname ()
-- Write document into the temporary file.
writeto (tmp) write (doc) writeto()
-- convert HTML to markdown and open Vim in a new tmux window
execute(
pandoc -r html -w markdown --no-wrap --reference-links ..tmp.. |
..tmp...txt ;\
echo \\n\n[saved on: `date +%Y\/%m\/%d\\ %a\\ %k:%M\\ %Z` ]\
..tmp...txt ;\
echo ..current_url ().. ..tmp...txt ;\
tmux new-window -n vim-elink \vim \ ..tmp...txt)
-- Tell elinks to delete after this function.
table.insert (tmp_files, tmp)
end
end
console_hook_functions = {
txt = save_to_text,
mkd = save_to_markd,
}
bind_key (main, Ctrl-H, save_to_text)
bind_key (main, Ctrl-G, save_to_markd)
[1]
http://archives.linuxfromscratch.org/mail-archives/elinks-users/2006-March/001109.html
http://archives.linuxfromscratch.org/mail-archives/elinks-users/2006-April/001120.html
Regards,
John
--
John Magolske
http://B79.net/contact
___
elinks-users mailing list
elinks-users@linuxfromscratch.org
http://linuxfromscratch.org/mailman/listinfo/elinks-users