Re: [elinks-users] Piping the HTML source of a page open in ELinks to another application

2012-09-20 Thread John Magolske
* 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


Re: [elinks-users] Piping the HTML source of a page open in ELinks to another application

2012-09-11 Thread John Magolske
* 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.

I'm guessing the only way to do this would be through something like
a Lua scripting approach. If so, might anyone know of a script that
could provide a good starting point to learn from?

Thanks,

John

-- 
John Magolske
http://B79.net/contact
___
elinks-users mailing list
elinks-users@linuxfromscratch.org
http://linuxfromscratch.org/mailman/listinfo/elinks-users