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.html
pode 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.