Placing text along node shape

tikz-pgf

I'd like to place text along the shape of a node. The MWE below generates the following image. I'd like the text 'Classic First Program' to follow the circle of the node shape.

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node [label=above:Classic First Program, align=center,circle,font=\huge,draw] {Hello\\ World!};
\end{tikzpicture}
\end{document}

enter image description here

Is there an automated way to do this without self-defining another path that matches the node shape? I'd like to be able to change the interior text (and hence the node shape) without also having to adjust the label text.

Best Answer

Maybe there is an easy way, but I could not find it.

\documentclass[tikz, border=1 cm]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\node[
circle, 
draw,
align=center,
font=\huge,
decoration={text along path, text align=center, reverse path=true, text={Classic First Program}},
postaction={decorate}, 
rotate=-90,
]  {\rotatebox[origin=c]{90}{Hello}\,\rotatebox[origin=c]{90}{World!}};
\end{tikzpicture}
\end{document}

Circle with text inside and along top

Edit: An alternative way:

\documentclass[tikz, border=1 cm]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\node[
circle, 
draw,
align=center,
font=\huge,
text opacity=0,
decoration={text along path, text align=center, reverse path=true, text={Classic First Program}},
postaction={decorate}, 
rotate=-90,
label={[align=center, font=\huge]center:Hello\\World!},
]  {Hello\\World!};
\end{tikzpicture}
\end{document}

Circle with text inside and along top

Edit: I did it :o)

\documentclass[tikz, border=1 cm]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\node[
circle, 
draw,
align=center,
font=\huge,
decoration={text along path, text align=center, reverse path=true, text={Classic First Program}},
postaction={transform canvas={rotate=-90}, postaction={decorate}}, 
]  {Hello\\World!};
\end{tikzpicture}
\end{document}