On 18/12/2012 10:58 p.m., Tim Chase wrote:
> On 12/18/12 20:36, Cesar Romani wrote:
>> If I have the following line:
>> <a href="http://www.whatever.com";>SomeTitle</a>
>>
>> How to create the file SomeTitle.txt with the content (without the
>> dashes):
>> --------------------
>> [InternetShortcut]
>> URL=http://www.whatever.com
>> --------------------
>
> The other pair of answers I saw come back on this extract the
> information that you request, but don't write out the content to
> files of the name contained in the<a>...</a>  tag.  You might try
> the following:
>
> function! WriteShortcut(whole, name, url)
>    call writefile(['[InternetShortcut]', 'URL='.(a:url), ''],
> (a:name).'.txt')
>    return a:whole
> endfunction
>
> with which you can then use
>
> %s/\c<\s*a\s\+href\s*=\(['"]\)\(\%(\1\@![^/]\)\+\)\1\s*>\([^<]*\)</\=WriteShortcut(submatch(0),
> submatch(3), submatch(2))/g
>
> as a rough approximation to extract the various bits, create a file
> with the corresponding name, and then populate it with the
> associated contents.  It should be fairly forgiving on whitespace
> and single-vs-double-quotes around the URL.  Places that I know it
> falls over:
>
> -<a>  tags with other attributes such as class='...'
>
> -<a>...</a>  nodes with sub-elements in them such as<a
> href="http://example.com>My<b>COOL</b>  site!!!</a>
>
> It also doesn't trim off whitespace, so it uses the entire text node
> as the filename, meaning that if you have
>
>    <a href="...">   text</a>
>
> it will name the file "<space><space>text<space><space>.txt" so you
> may want to sanitize the filename before passing it to writefile()

Thanks, it works fine. If the name contained in the <a>...</a> contains
illegal characters, such as : * ? / | how can I convert them to - or
remove them?

Regards,

--
Cesar

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to