
Como posso definir um comando para reter apenas o nome de domínio de um link, por exemplohttp://www.google.com/search?=bangfornecerá apenas google.com e o exibirá como campo de organização para uma referência de URL?
Muito obrigado
Responder1
Este é realmente um pedido nada trivial, e eu recomendo fortemente que você preencha o organization
campo manualmente (seu menor problema é a capitalização do nome da organização: você não gostaria url = {http://nssdc.gsfc.nasa.gov/planetary/factsheet/moonfact.html}
de sair como organization = {nasa}
, mas organization = {NASA}
).
Alguma solução mais ou menos útil como prova de conceito com biblatex
e biber
.
Este mapa de origem vai para o preâmbulo.
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[overwrite=false]{
\step[fieldsource=url, match=\regexp{^((?:f|ht)tps?://)?(?:www\.)?([^/]+)}, final]
\step[fieldset=organization, fieldvalue={$2}]
}
}
}
Ele tenta extrair a parte do domínio de uma URL do url
campo e mapeá-la para o organization
campo. Como se livrar de subdomínios não é uma tarefa trivial, especialmente se você levar em conta que existem TLDs como .co.uk
, .info
, .de
, .com
etc., eles ainda estão incluídos.
\documentclass{article}
\usepackage[style=authoryear, backend=biber]{biblatex}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ELECTRONIC{MEMSnet,
title = {What is {MEMS}?},
url = {http://www.memsnet.org/mems/what_is.html},
urldate = {2013-12-01},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[overwrite=false]{
\step[fieldsource=url, match=\regexp{^((?:f|ht)tps?://)?(?:www\.)?([^/]+)}, final]
\step[fieldset=organization, fieldvalue={$2}]
}
}
}
\begin{document}
\nocite{MEMSnet,wilde,markey}
\printbibliography
\end{document}
dá
Ambas as questões mencionadas acima podem ser observadas aqui: Provavelmente gostaríamos de ver MEMSnet
em vez de memsnet.org
e CTAN
em vez de tug.ctan.org
.