Como configurar um vimwiki PRIVADO no Dropbox.com

Como configurar um vimwiki PRIVADO no Dropbox.com

Presumo que aqueles que estão lendo esta página saibam o que são vimwiki e dropbox.com e para que servem, então posso entrar diretamente na minha confusão.

A maneira comum de configurar um vimwiki PRIVADO no Dropbox é simplesmente deixar seus diretórios vimwiki na pasta Dropbox (mas não Dropbox/Public/ porque seria PÚBLICO). O Dropbox permite a visualização direta do html com a url dropbox.com/***: por exemplo, a index.htmlpode ser acessada pela url https://dl-web.dropbox.com/get/Wiki/html/index.html?w=bfead71a, sendo adicionada após o nome do arquivo uma string especificada, ?w=bfead71a.

Portanto, se dentro de index.html houver referência a A.html, que está localizado na mesma pasta em que index.html está, ele deve ser acessado usando alguma url como https://dl-web.dropbox.com/get/Wiki/html/index.html?w=SPECIFIED_STRING. Mas é aparentemente impossível hackear o vimwiki para corrigir os hrefs em htmls convertidos dessa maneira.

Existe alguma abordagem que pode resolver esse problema?

Responder1

Basta procurar por "href" em '.vim/autoload/vimwiki_html.vim' e adicionar a string especificada quando apropriado.

Por exemplo, mude isso:

  let link = '<a href="'.vimwiki#safe_link(a:src).
        \ '.html">'.a:caption.'</a>'

para isso:

  let link = '<a href="'.vimwiki#safe_link(a:src).
        \ '.html?w=SPECIFIED_STRING">'.a:caption.'</a>'

Claro, para torná-lo menos hackeado e permitir a publicação em diferentes alvos, você gostaria de tornar isso condicional e configurável ;-)

Uma abordagem para torná-lo configurável seria introduzir uma nova variável global, por exemplo g:vimwiki_internal_link. Faça disso um padrão no qual o nome do wiki será inserido:

let g:vimwiki_internal_link=textbefore__textafter

Por padrão, o valor seria __.html, e você poderia alterá-lo para __.html?w=SPECIFIED_STRING. Então você teria que adicionar código a '.vim/autoload/vimwiki_html.vim' para fazer a substituição.

informação relacionada