To directly get a triangular wave from a 555 you would need to monitor the charge on the capacitor.
The problem is, this capacitor is charged by a resistor and hence the rate of charge decreases as the capacitor charges. This leads to a waveform that is
not quite triangular.
In order to get a straight line, the capacitor needs to be charged and discharged via a constant current source.
Using a normal 555 oscilator circuit this isn't easily possible.
One option is to use "
constant current diodes" placed back to back (these are essentially jfets with the drain tied to the source) in the charge and discharge path. Again this is tricky with a normal 555 circuit, so I would opt for the variation where the output is used to control charging and discharging.
As mentioned earlier the output is high impedance and would need to be buffered in most cases.
In addition, because the current is programmed by the constant current devices, it is tricky to change the current. Thus changing the frequency is most easily done by changing the capacitor. Also the constant current diodes are often not tightly matched and their current will vary with temperature. Thus the exact rise and fall rate will vary (and with it, the frequency).
This isn't a great solution, but it is one which uses (mostly) just a 555.
Here is a circuit which uses a pair of variable constant current sources to do what you ask (but it's quite a bit more complex than just a 555).
When I look at the various options, Davenn's solution is better than shoe-horning a 555 into something.