Div, grad, curl in curvilinear coordinates

I've a lot of different formulas for div, grad, curl, and laplacian in different coordinate systems. How are these formulas derived? What's the general procedure for finding the formula of say the Laplacian in spherical coordinates (or even in non-orthogonal coordinates)?

EDIT:

From Wikipedia's page on skew coordinates it looks like the definitions of these things are:

• $\operatorname{grad} f = \sum_i \mathbf e^i \frac {\partial f}{\partial q^i}$
• $\operatorname{div} \mathbf a = \frac 1{\sqrt{g}} \sum_i \frac{\partial}{\partial q^i}(\sqrt{g}a^i)$
• $\operatorname{div} \mathbf A = \frac 1{\sqrt{g}} \sum_{i,j} \frac{\partial}{\partial q^i}(\sqrt{g}a^{ij}\mathbf e_j)$
• $\Delta f = \operatorname{div}\operatorname{grad} f$
• $\Delta \mathbf a = \operatorname{div}\operatorname{grad} \mathbf a$
• $\operatorname{curl} \mathbf a = \sum_{i,j,k} \mathbf e_k\epsilon^{ijk}\frac{\partial a_i}{\partial q^i}$

where $f$ is a scalar field, $\mathbf e_i$ are the covariant basis vectors, $\mathbf a$ is a vector field, $\mathbf A$ is a second order tensor field, $q^i$ are the generalized coordinates, and $g$ is the determinant of the matrix with columns $\mathbf e_i$ (I guess the coordinates of those basis vectors wrt to some orthogonal basis).

Does this look correct?

If so, where does $g$ come from? Do I really need to relate each of my basis vectors to some orthogonal basis set? Shouldn't we need the metric tensor somewhere?