diff --git a/src/c3nav/site/static/site/js/c3nav.js b/src/c3nav/site/static/site/js/c3nav.js index defc0d4a..16784cdc 100644 --- a/src/c3nav/site/static/site/js/c3nav.js +++ b/src/c3nav/site/static/site/js/c3nav.js @@ -880,16 +880,34 @@ c3nav = { return html[0].outerHTML; }, _build_location_label: function(location) { - var text = location.label_override || location.title, new_text = [''], len=0; - for (segment of text.split(' ')) { + var text = location.label_override || location.title, segments = [''], new_segments=[''], new_text = [''], len=0, since_last=0; + segments = text.split(' '); + for (var segment of segments) { + if (segment.length > 12) { + for (char of text) { + new_segments[new_segments.length - 1] += char; + since_last++; + if ('.,-:;!?'.indexOf(char) >= 0) { + new_segments.push(''); + } + } + } else { + new_segments.push(segment); + } + } + for (var segment of new_segments) { + segment += ' '; if (len === 0 || len+segment.length < 12) { - new_text[new_text.length-1] += (len?' ':'')+$('
').text(segment).html(); + new_text[new_text.length-1] += $('
').text(segment).html(); len += segment.length; } else { new_text.push(segment); len = segment.length; } } + for (var i=0;i').append($('').html(' '+new_text.join(' 
 ')+' ')); html.css('font-size', location.label_settings.font_size+'px'); return L.marker(L.GeoJSON.coordsToLatLng(location.point.slice(1)), {