(Answer modified to (i) add a "MathDescription" environment and (ii) demonstrate compatibility with the enumitem package.)
Here's a LuaLaTeX-based solution. It defines three new environments called MathItemize
, MathEnumerate
, and MathDescription
. The environments work just like the "ordinary" itemize
, enumerate
, and description
environments, except that all material (other than the descriptive labels in the MathDescription
environment) is typeset in math mode instead of text mode.
If need be, \displaystyle
can be inserted after \item
in order to render an item's contents in displaymath mode. Use
\item \displaystyle \hfill <formula> \hfill
to center-set the display-math material.
The code appears to work very well with the enumitem
package. To wit, the example below below loads the enumitem
package and changes some of the default settings of the itemize
and enumerate
environments.
As the OP's write-up and comments do not seem to indicate a need for nested lists, the code works only for non-nested lists.

% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{amsmath} % for "\text" macro
\usepackage{url,hyperref}
\hypersetup{colorlinks=true}
%% Check compatibility with "enumitem" package...
\usepackage{enumitem}
\setlist{itemsep=1ex}
\setlist[itemize]{label=$\star$}
\setlist[enumerate]{label=\roman*), leftmargin=*, widest = iii}
\usepackage{luacode,luatexbase}
%% Lua-side code: Three Boolean variables, two new
%% functions, & calls to assign the new functions to
%% the "process_input_buffer" callback
\begin{luacode}
env_type_1 = false
env_type_2 = false
first_list_item = true
function change_item_properties_itemenum ( line )
if (env_type_1 == true) then
if (first_list_item == true) then
line = string.gsub( line, "\\item", "\\item $" )
first_list_item = false
else
line = string.gsub( line, "\\item", "$ \\item $" )
end
end
return (line)
end
function change_item_properties_desc ( line )
if (env_type_2 == true) then
if (first_list_item == true) then
line = string.gsub( line, "(\\item.-%[.-%])", "%0 $" )
first_list_item = false
else
line = string.gsub( line, "(\\item.-%[.-%])", "$ %0 $" )
end
end
return (line)
end
luatexbase.add_to_callback ( "process_input_buffer",
change_item_properties_itemenum,
"MathModeItemizeEnumerate" )
luatexbase.add_to_callback ( "process_input_buffer",
change_item_properties_desc,
"MathModeDescription" )
\end{luacode}
%% TeX-side code -- Three new environments:
%% MathItemize, MathEnumerate, MathDescription
\newenvironment{MathItemize}%
{\directlua{ env_type_1 = true }
\begin{itemize} }%
{$\end{itemize}
\directlua{ env_type_1 = false
first_list_item = true}}
\newenvironment{MathEnumerate}%
{\directlua{ env_type_1 = true }
\begin{enumerate}}%
{$\end{enumerate}
\directlua{ env_type_1 = false
first_list_item = true}}
\newenvironment{MathDescription}%
{\directlua{ env_type_2 = true }
\begin{description}}%
{$\end{description}
\directlua{ env_type_2 = false
first_list_item = true}}
\begin{document}
\noindent
A \verb+MathItemize+ list
\begin{MathItemize}
\item E=mc^2
\item e^{i\pi}+1=0
\item \text{ducks} + \text{caffeine}
= \text{\url{https://i.stack.imgur.com/GVksc.gif}}
\end{MathItemize}
\bigskip\noindent
An ``ordinary'' \verb+itemize+ list
\begin{itemize}
\item Hello world.
\item Goodbye world.
\end{itemize}
\bigskip\noindent
A \verb+MathEnumerate+ list
\begin{MathEnumerate}
\item a^2+b^2=c^2
\item \displaystyle \hfill \sum_{k=1}^\infty \frac{1}{k^2} = \frac{\pi^2}{6} \hfill
\item 1+1=2
\end{MathEnumerate}
\bigskip\noindent
A \verb+MathDescription+ list
\begin{MathDescription}
\item [Einstein] \hfill E=mc^2 \hfill
\item[Euler] e^{i\pi}+1=0
\item [Pythagoras] a^2+b^2=c^2
\end{MathDescription}
\bigskip\noindent
Finally, an ``ordinary'' \verb+enumerate+ list
\begin{enumerate}[widest=ii]
\item abcdef, and
\item uvwxyz.
\end{enumerate}
\end{document}
\item
s and process them.gather
oralign
. Why would you need bullets or similar things?<3