I realize that this may be a subjective question, but I think this site is the best place for this.
I am trying to determine if any trailing punctuation should be part of the link text. The typical style for quotes is to include any trailing punctuation as part of the quote, so am wondering if the same should apply to links.
Here is an example of a case where (in my opinion) it looks better if the punctuation is part of the link only for the case where a box is used to indicate the link, but for the case where color, or underlining is used to indicate the link then perhaps it is best to leave it out. That is, for the box style, use the second version, but use the first version for ther other two styles.

Notes:
I am not yet decided on the style to use for various reasons:
One of the problems with colored links is that is not apparent if there are two links: One to "the" and another to "yahoo" in this example. Granted in this case it is clear from the English text, but consider that the link was instead to refer to a compound word where both words could have their own link or a link to the compound word. Perhaps a better example would be a colored link such as:

So, is this two links: one to "normal", and one to "force", or just one link to "normal force"?
The underlined links have other issues in that it is not easy to get underlining completely working as I want it as per Using soul with indirect formatting applied (using macro with 2 parameters, one possibly optional).
All three have problems when the link text starts on one line and ends on the subsequent line. The box version is the only solution that I am aware of that has a chance to remedy this by leaving an open box on the right hand side on the first line, and an open box on the left hand side on the 2md line (of course this is still to be implemented)
References:
- There is a a follow-up question about Automating processing of trailing punctuation (if any) for hyperlinks.
Code:
% The following allows to have one version of this code for this questions,
% and the follow up at:
%
% https://tex.stackexchange.com/questions/125358/automating-processing-of-trailing-punctuation-if-any-for-hyperlinks
%
%\def\SmartVersion{}% Leave commented for this question.
\documentclass{article}
\usepackage{xparse}
\usepackage{xcolor}
\usepackage{soul}
\usepackage{xstring}
\usepackage{xspace}
\usepackage[colorlinks=true]{hyperref}
%% ----------------------------------------------------------------
%% https://tex.stackexchange.com/questions/36894/
%% underline-omitting-the-descenders
%%
%%
\makeatletter
\ExplSyntaxOn
\cs_new:Npn \white_text:n #1
{
\fp_set:Nn \l_tmpa_fp {.01}
\fp_mul:Nn \l_tmpa_fp {#1}
\llap{\textcolor{white}{\the\SOUL@syllable}\hspace{\fp_to_decimal:N \l_tmpa_fp em}}
\llap{\textcolor{white}{\the\SOUL@syllable}\hspace{-\fp_to_decimal:N \l_tmpa_fp em}}
}
\NewDocumentCommand{\whiten}{ m }
{
\int_step_function:nnnN {1}{1}{#1} \white_text:n
}
\ExplSyntaxOff
\NewDocumentCommand{ \varul }{ D<>{5} O{0.2ex} O{0.1ex} +m } {%
\begingroup
\setul{#2}{#3}%
\def\SOUL@uleverysyllable{%
\setbox0=\hbox{\the\SOUL@syllable}%
\ifdim\dp0>\z@
\SOUL@ulunderline{\phantom{\the\SOUL@syllable}}%
\whiten{#1}%
\llap{%
\the\SOUL@syllable
\SOUL@setkern\SOUL@charkern
}%
\else
\SOUL@ulunderline{%
\the\SOUL@syllable
\SOUL@setkern\SOUL@charkern
}%
\fi}%
\ul{#4}%
\endgroup
}%
\makeatother
%% ----------------------------------------------------------------
\newcommand{\CreateLinkA}[2]{%
\hypersetup{pdfborder={0 0 1}, urlcolor=.}%
\href{#1}{#2}%
}%
\newcommand{\CreateLinkB}[2]{%
\hypersetup{pdfborder={0 0 0}, urlcolor=red}%
\href{#1}{#2}%
}%
\newcommand{\CreateLinkC}[2]{%
\hypersetup{colorlinks=false,urlcolor=.}%
\setulcolor{blue}%
\href{#1}{\varul[0.5pt][1.0pt]{#2}}%
}%
\makeatletter
\newcommand{\CreateLink}[3]{%
\IfStrEqCase{#1}{%
{1}{\CreateLinkA{#2}{#3}}%
{2}{\CreateLinkB{#2}{#3}}%
{3}{\CreateLinkC{#2}{#3}}%
}%
\ifdefined\SmartVersion% "If" clause is unused in this question
% If the next character is anything other than a space,
% include that char as part of the text.
% The "-" is supposed to whatever the next character is,
% but don't know how to get that character.
% Note that the "-" is shown in all cases, so this is NOT working.
\@ifnextchar{\space}{\space}{-}%
\else
\xspace%
\fi
}%
\makeatother
\begin{document}
\textbf{Punctuation NOT part of link:}\medskip
\par Go and check out \CreateLink{1}{www.yahoo.com}{the yahoo}, and also\ldots
\par Go and check out \CreateLink{2}{www.yahoo.com}{the yahoo}, and also\ldots
\par Go and check out \CreateLink{3}{www.yahoo.com}{the yahoo}, and also\ldots
\bigskip
\textbf{Punctuation part of link:}\medskip
\par Go and check out \CreateLink{1}{www.yahoo.com}{the yahoo,} and also\ldots
\par Go and check out \CreateLink{2}{www.yahoo.com}{the yahoo,} and also\ldots
\par Go and check out \CreateLink{3}{www.yahoo.com}{the yahoo,} and also\ldots
\end{document}