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